aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.h
diff options
context:
space:
mode:
authorDenis Kasak2009-07-31 04:32:33 +0000
committerDenis Kasak2009-07-31 04:32:33 +0000
commit18a8b5b3af96bc0d74167db27552956b646cd0d0 (patch)
tree73d27e06aa7d265b781019b0a106800d8e686a5a /engines/draci/game.h
parent167b6da23050a60ee0d56c6b435c3c1bbb159d8a (diff)
downloadscummvm-rg350-18a8b5b3af96bc0d74167db27552956b646cd0d0.tar.gz
scummvm-rg350-18a8b5b3af96bc0d74167db27552956b646cd0d0.tar.bz2
scummvm-rg350-18a8b5b3af96bc0d74167db27552956b646cd0d0.zip
* Added Game::runGateProgram()
* Added a separate mechanism to Game to keep track both of the current room number and the next room/gate. Periodically, I check whether the new room differs from the old one and, if it does, I do the change. Doing it any other would is nearly impossible because of the way the original scripts were written. * Added GPL command Script::newRoom(). Rooms can now be traversed by clicking on their exits. Also, the intro animation partly works. Some parts go by far too soon. I assume this is because the engine still lacks a dialogue GPL command. * Fixed bug where the gates array of a room was not cleared between uses. * Save old jump value when we enter Script::run() and restore it in the end (mimicking the original engine). * Fixed small bug where the gate was supposed to be stored as the first in-game variable and not the room number. svn-id: r42957
Diffstat (limited to 'engines/draci/game.h')
-rw-r--r--engines/draci/game.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/engines/draci/game.h b/engines/draci/game.h
index c6168d6d49..1e488ca083 100644
--- a/engines/draci/game.h
+++ b/engines/draci/game.h
@@ -131,6 +131,7 @@ struct Room {
double _pers0, _persStep;
byte _escRoom;
byte _numGates;
+ Common::Array<int> _gates;
GPL2Program _program;
};
@@ -223,6 +224,10 @@ public:
bool shouldExitLoop() { return _shouldExitLoop; }
void setExitLoop(bool exit) { _shouldExitLoop = exit; }
+ void runGateProgram(int gate);
+
+ bool _roomChange;
+
private:
DraciEngine *_vm;
@@ -236,6 +241,8 @@ private:
Room _currentRoom;
int _currentGate;
+ int _newRoom;
+ int _newGate;
LoopStatus _loopStatus;