aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/gui/gui_menu.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/gui/gui_menu.h')
-rw-r--r--engines/sci/gui/gui_menu.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/engines/sci/gui/gui_menu.h b/engines/sci/gui/gui_menu.h
index 32fbbbaf9a..c511ea7c95 100644
--- a/engines/sci/gui/gui_menu.h
+++ b/engines/sci/gui/gui_menu.h
@@ -31,7 +31,7 @@ namespace Sci {
enum {
SCI_MENU_ATTRIBUTE_SAID = 0x6d,
SCI_MENU_ATTRIBUTE_TEXT = 0x6e,
- SCI_MENU_ATTRIBUTE_KEY = 0x6f,
+ SCI_MENU_ATTRIBUTE_KEYPRESS = 0x6f,
SCI_MENU_ATTRIBUTE_ENABLED = 0x70,
SCI_MENU_ATTRIBUTE_TAG = 0x71
};
@@ -46,8 +46,8 @@ struct GuiMenuEntry {
uint16 id;
Common::String text;
- GuiMenuEntry(uint16 id_)
- : id(id_) { }
+ GuiMenuEntry(uint16 curId)
+ : id(curId) { }
};
typedef Common::List<GuiMenuEntry *> GuiMenuList;
@@ -60,28 +60,35 @@ struct GuiMenuItemEntry {
uint16 keyModifier;
bool separatorLine;
Common::String said;
+ reg_t saidVmPtr;
Common::String text;
+ reg_t textVmPtr;
Common::String textRightAligned;
- GuiMenuItemEntry(uint16 menuId_, uint16 id_)
- : menuId(menuId_), id(id_),
- enabled(true), tag(0), keyPress(0), keyModifier(0), separatorLine(false) { }
+ GuiMenuItemEntry(uint16 curMenuId, uint16 curId)
+ : menuId(curMenuId), id(curId),
+ enabled(true), tag(0), keyPress(0), keyModifier(0), separatorLine(false) {
+ saidVmPtr = NULL_REG;
+ textVmPtr = NULL_REG;
+ }
};
typedef Common::List<GuiMenuItemEntry *> GuiMenuItemList;
class SciGuiMenu {
public:
- SciGuiMenu(SciGuiGfx *gfx, SciGuiText *text, SciGuiScreen *screen);
+ SciGuiMenu(SegManager *segMan, SciGuiGfx *gfx, SciGuiText *text, SciGuiScreen *screen);
~SciGuiMenu();
- void add(Common::String title, Common::String content);
+ 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);
void drawBar();
private:
+ GuiMenuItemEntry *findItem(uint16 menuId, uint16 itemId);
+ SegManager *_segMan;
SciGuiGfx *_gfx;
SciGuiText *_text;
SciGuiScreen *_screen;