aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/graphics.h
diff options
context:
space:
mode:
authorMatthew Stewart2018-03-11 19:22:24 -0400
committerEugene Sandulenko2018-08-09 08:37:30 +0200
commitfd26d0a790342b086fc9430d3cb9d4449104e6ce (patch)
tree422c66a91b1bab3fa3d6e87f6b8aac58e834b609 /engines/startrek/graphics.h
parent295c55c510d8ebdbfb453ea769fff243bdfb4e0c (diff)
downloadscummvm-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-xengines/startrek/graphics.h22
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;
};
}