diff options
author | Martin Kiewitz | 2009-11-11 21:22:04 +0000 |
---|---|---|
committer | Martin Kiewitz | 2009-11-11 21:22:04 +0000 |
commit | 1bc60e9d8515c91576debcba6d618bc74258db11 (patch) | |
tree | 1314582c6f9b32f2f2a474a46b06258c03840c92 /engines/sci/gui | |
parent | 958ad94d8c54e97dacde560418758eb044945544 (diff) | |
download | scummvm-rg350-1bc60e9d8515c91576debcba6d618bc74258db11.tar.gz scummvm-rg350-1bc60e9d8515c91576debcba6d618bc74258db11.tar.bz2 scummvm-rg350-1bc60e9d8515c91576debcba6d618bc74258db11.zip |
SCI/newgui: call menuReset() on game_init(), fixes double menu in pq2
svn-id: r45843
Diffstat (limited to 'engines/sci/gui')
-rw-r--r-- | engines/sci/gui/gui.cpp | 6 | ||||
-rw-r--r-- | engines/sci/gui/gui.h | 1 | ||||
-rw-r--r-- | engines/sci/gui/gui_menu.cpp | 1 | ||||
-rw-r--r-- | engines/sci/gui/gui_menu.h | 1 |
4 files changed, 9 insertions, 0 deletions
diff --git a/engines/sci/gui/gui.cpp b/engines/sci/gui/gui.cpp index 7b5769130c..f84a0f973a 100644 --- a/engines/sci/gui/gui.cpp +++ b/engines/sci/gui/gui.cpp @@ -317,6 +317,12 @@ void SciGui::drawMenuBar(bool clear) { } } +void SciGui::menuReset() { + delete _menu; + _menu = new SciGuiMenu(_s->_segMan, _gfx, _text, _screen, _cursor); + _menu->init(_s->gfx_state); +} + void SciGui::menuAdd(Common::String title, Common::String content, reg_t contentVmPtr) { _menu->add(title, content, contentVmPtr); } diff --git a/engines/sci/gui/gui.h b/engines/sci/gui/gui.h index 13756f37ae..150c84bed3 100644 --- a/engines/sci/gui/gui.h +++ b/engines/sci/gui/gui.h @@ -81,6 +81,7 @@ public: virtual void drawStatus(const char *text, int16 colorPen, int16 colorBack); virtual void drawMenuBar(bool clear); + virtual void menuReset(); virtual void menuAdd(Common::String title, Common::String content, reg_t contentVmPtr); virtual void menuSet(uint16 menuId, uint16 itemId, uint16 attributeId, reg_t value); virtual reg_t menuGet(uint16 menuId, uint16 itemId, uint16 attributeId); diff --git a/engines/sci/gui/gui_menu.cpp b/engines/sci/gui/gui_menu.cpp index 0a1e049e09..713bfa0f45 100644 --- a/engines/sci/gui/gui_menu.cpp +++ b/engines/sci/gui/gui_menu.cpp @@ -55,6 +55,7 @@ SciGuiMenu::SciGuiMenu(SegManager *segMan, SciGuiGfx *gfx, SciGuiText *text, Sci } SciGuiMenu::~SciGuiMenu() { + // TODO: deallocate _list and _itemList } void SciGuiMenu::init(GfxState *gfxstate) { diff --git a/engines/sci/gui/gui_menu.h b/engines/sci/gui/gui_menu.h index d6e3555df0..59765f8d0f 100644 --- a/engines/sci/gui/gui_menu.h +++ b/engines/sci/gui/gui_menu.h @@ -83,6 +83,7 @@ public: ~SciGuiMenu(); void init(GfxState *gfxstate); + void reset(); void add(Common::String title, Common::String content, reg_t contentVmPtr); void setAttribute(uint16 menuId, uint16 itemId, uint16 attributeId, reg_t value); reg_t getAttribute(uint16 menuId, uint16 itemId, uint16 attributeId); |