diff options
author | Matthew Stewart | 2018-03-11 19:22:24 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-09 08:37:30 +0200 |
commit | fd26d0a790342b086fc9430d3cb9d4449104e6ce (patch) | |
tree | 422c66a91b1bab3fa3d6e87f6b8aac58e834b609 /engines/startrek/graphics.h | |
parent | 295c55c510d8ebdbfb453ea769fff243bdfb4e0c (diff) | |
download | scummvm-rg350-fd26d0a790342b086fc9430d3cb9d4449104e6ce.tar.gz scummvm-rg350-fd26d0a790342b086fc9430d3cb9d4449104e6ce.tar.bz2 scummvm-rg350-fd26d0a790342b086fc9430d3cb9d4449104e6ce.zip |
STARTREK: Begin implementing event system.
Textbox now responds to mouse input.
Diffstat (limited to 'engines/startrek/graphics.h')
-rwxr-xr-x | engines/startrek/graphics.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/engines/startrek/graphics.h b/engines/startrek/graphics.h index 62c49f2d01..578abdf705 100755 --- a/engines/startrek/graphics.h +++ b/engines/startrek/graphics.h @@ -47,23 +47,24 @@ const int MAX_SPRITES = 32; const int MAX_MENUBUTTONS = 16; // This is arbitrary, the original game has no such limit const int TEXTBOX_WIDTH = 26; +const int MAX_TEXTBOX_LINES = 12; // Keeps track of data for a list of buttons making up a menu struct Menu { Sprite sprites[MAX_MENUBUTTONS]; uint16 retvals[MAX_MENUBUTTONS]; - uint16 buttonVar2; + uint32 disabledButtons; SharedPtr<FileStream> menuFile; uint16 numButtons; - uint16 buttonVar1; + int16 selectedButton; SharedPtr<Menu> nextMenu; Menu() : nextMenu(SharedPtr<Menu>()) {} }; class Graphics; -typedef String (Graphics::*TextGetterFunc)(int, int, String *); +typedef String (Graphics::*TextGetterFunc)(int, void *, String *); class Graphics { @@ -115,11 +116,12 @@ private: // text.cpp (TODO: separate class) public: int showText(TextGetterFunc textGetter, int var, int xoffset, int yoffset, int textColor, bool loopChoices, int maxTextLines, int arg10); - String tmpFunction(int choiceIndex, int var, String *headerTextOutput); - String readTextFromRdf(int choiceIndex, int rdfVar, String *headerTextOutput); + + String readTextFromRdf(int choiceIndex, void *data, String *headerTextOutput); + String readTextFromBuffer(int choiceIndex, void *data, String *headerTextOutput); private: - int handleTextboxEvents(uint32 arg0, bool arg4); + int handleTextboxEvents(uint32 ticksUntilClickingEnabled, bool arg4); SharedPtr<TextBitmap> initTextSprite(int *xoffsetPtr, int *yoffsetPtr, byte textColor, int numTextLines, bool withHeader, Sprite *sprite); void drawMainText(SharedPtr<TextBitmap> bitmap, int numTextLines, int numTextboxLines, const String &text, bool withHeader); @@ -134,20 +136,24 @@ private: String skipTextAudioPrompt(const String &str); String playTextAudio(const String &str); + int getMenuButtonAt(const Menu &menu, int x, int y); + void drawMenuButtonOutline(SharedPtr<Bitmap> bitmap, byte color); void loadMenuButtons(String mnuFilename, int xpos, int ypos); void setMenuButtonVar2Bits(uint32 bits); void clearMenuButtonVar2Bits(uint32 bits); + uint16 _textboxVar1; uint32 _textboxVar2; uint32 _textboxVar3; - uint16 _textboxVar4; - uint16 _textboxVar5; uint16 _textboxVar6; uint16 _textboxVar7; bool _textboxHasMultipleChoices; SharedPtr<Menu> _activeMenu; + + uint16 _textboxButtonVar4; + uint16 _word_4B422; }; } |