aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/startrek.h
diff options
context:
space:
mode:
authorMatthew Stewart2018-05-16 18:21:34 -0400
committerEugene Sandulenko2018-08-09 08:37:30 +0200
commit2120ce106210538c9508be1e275bdba97ddda63a (patch)
treee255e695c4c0253fba4545fa935f0c450a5ef1b2 /engines/startrek/startrek.h
parent2731ae228795ca1a8d823f147212ef5c22261598 (diff)
downloadscummvm-rg350-2120ce106210538c9508be1e275bdba97ddda63a.tar.gz
scummvm-rg350-2120ce106210538c9508be1e275bdba97ddda63a.tar.bz2
scummvm-rg350-2120ce106210538c9508be1e275bdba97ddda63a.zip
STARTREK: Action menu
Diffstat (limited to 'engines/startrek/startrek.h')
-rw-r--r--engines/startrek/startrek.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index 8031bcb557..b146df8c8f 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -26,6 +26,7 @@
#include "common/events.h"
#include "common/list.h"
#include "common/ptr.h"
+#include "common/random.h"
#include "common/rect.h"
#include "common/scummsys.h"
#include "common/str.h"
@@ -137,7 +138,7 @@ enum OptionMenuButtons {
};
enum TrekEventType {
- TREKEVENT_TICK = 0, // DOS clock changes (see updateClockTicks)
+ TREKEVENT_TICK = 0, // DOS clock changes
TREKEVENT_LBUTTONDOWN = 1,
TREKEVENT_MOUSEMOVE = 2,
TREKEVENT_LBUTTONUP = 3,
@@ -153,6 +154,8 @@ struct TrekEvent {
uint32 tick;
};
+// Commands: Signals that can be passed to "handleAwayMissionCommands" or to room-specfiic
+// code.
enum Commands {
COMMAND_TICK = 0,
COMMAND_CLICKED_ON_OBJECT = 1,
@@ -172,6 +175,16 @@ struct Command {
: type(_type), b1(_b1), b2(_b2), b3(_b3) {}
};
+// Actions that can be used on away missions.
+enum Acton {
+ ACTION_WALK = 1,
+ ACTION_USE = 2,
+ ACTION_GET = 3,
+ ACTION_LOOK = 4,
+ ACTION_TALK = 5,
+ ACTION_OPTIONS = 13 // Not really an action, but selectable from action menu
+};
+
struct StarTrekGameDescription;
class Graphics;
@@ -292,6 +305,7 @@ public:
void chooseMousePositionFromSprites(Sprite *sprites, int numSprites, int spriteIndex, int mode);
void drawMenuButtonOutline(SharedPtr<Bitmap> bitmap, byte color);
void showOptionsMenu(int x, int y);
+ int showActionMenu();
void loadMenuButtons(String mnuFilename, int xpos, int ypos);
void setVisibleMenuButtons(uint32 bits);
void disableMenuButtons(uint32 bits);
@@ -299,6 +313,7 @@ public:
int handleMenuEvents(uint32 ticksUntilClickingEnabled, bool arg4);
void unloadMenuButtons();
+ void chooseMouseBitmapForAction(int action, bool withRedOutline);
void showSaveMenu();
void showLoadMenu();
void showQuitGamePrompt(int x, int y);
@@ -333,6 +348,9 @@ public:
void playMovie(Common::String filename);
void playMovieMac(Common::String filename);
+ // Misc
+ uint16 getRandomWord();
+
public:
int _gameMode;
@@ -355,6 +373,7 @@ public:
bool _warpHotspotsActive;
int16 _activeWarpHotspot;
int16 _activeDoorWarpHotspot;
+ int16 _lookActionBitmapIndex;
Object _objectList[MAX_OBJECTS];
Object * const _kirkObject;
@@ -393,6 +412,8 @@ public:
Sound *_sound;
private:
+ Common::RandomSource _randomSource;
+
Common::MacResManager *_macResFork;
SharedPtr<Room> _room;
SharedPtr<IWFile> _iwFile;