aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.h
diff options
context:
space:
mode:
authorDenis Kasak2009-07-25 03:28:04 +0000
committerDenis Kasak2009-07-25 03:28:04 +0000
commitd28658984dcceb7c090af9f7040d1490239a820b (patch)
tree93da0bc4e38c273f4c27f7eb4be3e461bcab0493 /engines/draci/game.h
parentb7e97efb7fbd26c91693082339466308c52e7e08 (diff)
downloadscummvm-rg350-d28658984dcceb7c090af9f7040d1490239a820b.tar.gz
scummvm-rg350-d28658984dcceb7c090af9f7040d1490239a820b.tar.bz2
scummvm-rg350-d28658984dcceb7c090af9f7040d1490239a820b.zip
* Added DraciEngine::_initArchive and made Game use it. Fixes a memory bug because Game uses pointers from the init archive which should outlive it (but didn't previously).
* Added support for setting loop status to Game. * Made some GPL commands check whether we are in the correct loop status before executing. svn-id: r42731
Diffstat (limited to 'engines/draci/game.h')
-rw-r--r--engines/draci/game.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/engines/draci/game.h b/engines/draci/game.h
index 2cee3e024d..6be44cdd68 100644
--- a/engines/draci/game.h
+++ b/engines/draci/game.h
@@ -132,6 +132,12 @@ struct Room {
GPL2Program _program;
};
+enum LoopStatus {
+ kStatusGate, kStatusOrdinary, kStatusInventory,
+ kStatusDialogue, kStatusTalk, kStatusStrange,
+ kStatusFade
+};
+
class Game {
public:
@@ -185,15 +191,22 @@ public:
int getMarkedAnimationIndex();
void setMarkedAnimationIndex(int index);
+ void setLoopStatus(LoopStatus status);
+ LoopStatus getLoopStatus();
+
private:
DraciEngine *_vm;
- int *_variables;
+
GameInfo _info;
- Person *_persons;
uint *_dialogOffsets;
+
+ int *_variables;
byte *_iconStatus;
+ Person *_persons;
GameObject *_objects;
+
Room _currentRoom;
+ LoopStatus _loopStatus;
int _markedAnimationIndex; //!< Used by the Mark GPL command
};