[Scummvm-cvs-logs] SF.net SVN: scummvm:[44958] scummvm/trunk/engines/draci
spalek at users.sourceforge.net
spalek at users.sourceforge.net
Mon Oct 12 01:28:40 CEST 2009
Revision: 44958
http://scummvm.svn.sourceforge.net/scummvm/?rev=44958&view=rev
Author: spalek
Date: 2009-10-11 23:28:40 +0000 (Sun, 11 Oct 2009)
Log Message:
-----------
Implemented a few more harmless GPL2 commands
Modified Paths:
--------------
scummvm/trunk/engines/draci/game.cpp
scummvm/trunk/engines/draci/game.h
scummvm/trunk/engines/draci/script.cpp
scummvm/trunk/engines/draci/script.h
Modified: scummvm/trunk/engines/draci/game.cpp
===================================================================
--- scummvm/trunk/engines/draci/game.cpp 2009-10-11 23:01:59 UTC (rev 44957)
+++ scummvm/trunk/engines/draci/game.cpp 2009-10-11 23:28:40 UTC (rev 44958)
@@ -219,6 +219,7 @@
setRoomNum(kNoEscRoom);
rememberRoomNumAsPrevious();
scheduleEnteringRoomUsingGate(_info._startRoom, 0);
+ _pushedNewRoom = _pushedNewGate = -1;
}
void Game::loop() {
@@ -1426,6 +1427,18 @@
_newGate = gate;
}
+void Game::pushNewRoom() {
+ _pushedNewRoom = _newRoom;
+ _pushedNewGate = _newGate;
+}
+
+void Game::popNewRoom() {
+ if (_loopStatus != kStatusInventory && _pushedNewRoom >= 0) {
+ scheduleEnteringRoomUsingGate(_pushedNewRoom, _pushedNewGate);
+ _pushedNewRoom = _pushedNewGate = -1;
+ }
+}
+
void Game::setLoopStatus(LoopStatus status) {
_loopStatus = status;
}
Modified: scummvm/trunk/engines/draci/game.h
===================================================================
--- scummvm/trunk/engines/draci/game.h 2009-10-11 23:01:59 UTC (rev 44957)
+++ scummvm/trunk/engines/draci/game.h 2009-10-11 23:28:40 UTC (rev 44958)
@@ -281,6 +281,8 @@
int getPreviousRoomNum() const;
void rememberRoomNumAsPrevious();
void scheduleEnteringRoomUsingGate(int room, int gate);
+ void pushNewRoom();
+ void popNewRoom();
double getPers0() const;
double getPersStep() const;
@@ -371,6 +373,8 @@
int _newRoom;
int _newGate;
int _previousRoom;
+ int _pushedNewRoom; // used in GPL programs
+ int _pushedNewGate;
uint *_dialogueOffsets;
int _currentDialogue;
Modified: scummvm/trunk/engines/draci/script.cpp
===================================================================
--- scummvm/trunk/engines/draci/script.cpp 2009-10-11 23:01:59 UTC (rev 44957)
+++ scummvm/trunk/engines/draci/script.cpp 2009-10-11 23:28:40 UTC (rev 44958)
@@ -70,9 +70,9 @@
{ 15, 1, "ExecInit", 1, { 3 }, &Script::execInit },
{ 15, 2, "ExecLook", 1, { 3 }, &Script::execLook },
{ 15, 3, "ExecUse", 1, { 3 }, &Script::execUse },
- { 16, 1, "RepaintInventory", 0, { 0 }, NULL },
- { 16, 2, "ExitInventory", 0, { 0 }, NULL },
- { 17, 1, "ExitMap", 0, { 0 }, NULL },
+ { 16, 1, "RepaintInventory", 0, { 0 }, NULL }, // not used in the original game files
+ { 16, 2, "ExitInventory", 0, { 0 }, NULL }, // not used in the original game files
+ { 17, 1, "ExitMap", 0, { 0 }, NULL }, // not used in the original game files
{ 18, 1, "LoadMusic", 1, { 2 }, NULL },
{ 18, 2, "StartMusic", 0, { 0 }, NULL },
{ 18, 3, "StopMusic", 0, { 0 }, NULL },
@@ -87,9 +87,12 @@
{ 22, 2, "EnableQuickHero", 0, { 0 }, NULL },
{ 23, 1, "DisableSpeedText", 0, { 0 }, NULL },
{ 23, 2, "EnableSpeedText", 0, { 0 }, NULL },
- { 24, 1, "QuitGame", 0, { 0 }, NULL },
- { 25, 1, "PushNewRoom", 0, { 0 }, NULL },
- { 25, 2, "PopNewRoom", 0, { 0 }, NULL },
+ { 24, 1, "QuitGame", 0, { 0 }, &Script::quitGame },
+ { 25, 1, "PushNewRoom", 0, { 0 }, &Script::pushNewRoom },
+ { 25, 2, "PopNewRoom", 0, { 0 }, &Script::popNewRoom },
+ // The following commands are not even defined in the game
+ // sources, but their numbers are allocated for internal
+ // purposes of the old player.
{ 26, 1, "ShowCheat", 0, { 0 }, NULL },
{ 26, 2, "HideCheat", 0, { 0 }, NULL },
{ 26, 3, "ClearCheat", 1, { 1 }, NULL },
@@ -823,6 +826,18 @@
_endProgram = true;
}
+void Script::quitGame(Common::Queue<int> ¶ms) {
+ _vm->_game->setQuit(true);
+}
+
+void Script::pushNewRoom(Common::Queue<int> ¶ms) {
+ _vm->_game->pushNewRoom();
+}
+
+void Script::popNewRoom(Common::Queue<int> ¶ms) {
+ _vm->_game->popNewRoom();
+}
+
/**
* @brief Evaluates mathematical expressions
* @param reader Stream reader set to the beginning of the expression
Modified: scummvm/trunk/engines/draci/script.h
===================================================================
--- scummvm/trunk/engines/draci/script.h 2009-10-11 23:01:59 UTC (rev 44957)
+++ scummvm/trunk/engines/draci/script.h 2009-10-11 23:28:40 UTC (rev 44958)
@@ -133,6 +133,9 @@
void setPalette(Common::Queue<int> ¶ms);
void blackPalette(Common::Queue<int> ¶ms);
void loadPalette(Common::Queue<int> ¶ms);
+ void quitGame(Common::Queue<int> ¶ms);
+ void pushNewRoom(Common::Queue<int> ¶ms);
+ void popNewRoom(Common::Queue<int> ¶ms);
int operAnd(int op1, int op2) const;
int operOr(int op1, int op2) const;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list