aboutsummaryrefslogtreecommitdiff
path: root/engines/agos
diff options
context:
space:
mode:
authorTravis Howell2009-09-24 00:38:29 +0000
committerTravis Howell2009-09-24 00:38:29 +0000
commitc4f6d91777b510f192bd16fe22bee784342a4326 (patch)
tree7f8ddcc88e8008f0735d9f91cc58b45ac1bd15fc /engines/agos
parent3045ecce2fb3cf0d8688e0f9dc23ffcdd4d85855 (diff)
downloadscummvm-rg350-c4f6d91777b510f192bd16fe22bee784342a4326.tar.gz
scummvm-rg350-c4f6d91777b510f192bd16fe22bee784342a4326.tar.bz2
scummvm-rg350-c4f6d91777b510f192bd16fe22bee784342a4326.zip
Fix bug #2865191 - NoPatience hangs after undo.
svn-id: r44281
Diffstat (limited to 'engines/agos')
-rw-r--r--engines/agos/agos.h2
-rw-r--r--engines/agos/script_pp.cpp27
2 files changed, 14 insertions, 15 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index 291ebb71f6..ae82e28c1a 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -2058,7 +2058,7 @@ public:
void opp_resetGameTime();
void opp_resetPVCount();
void opp_setPathValues();
- void opp_restartClock();
+ void opp_pauseClock();
protected:
typedef void (AGOSEngine_PuzzlePack::*OpcodeProcPuzzlePack) ();
diff --git a/engines/agos/script_pp.cpp b/engines/agos/script_pp.cpp
index 3fbfd43afd..a6a20217da 100644
--- a/engines/agos/script_pp.cpp
+++ b/engines/agos/script_pp.cpp
@@ -279,8 +279,8 @@ void AGOSEngine_PuzzlePack::setupOpcodes() {
OPCODE(opp_resetPVCount),
/* 192 */
OPCODE(opp_setPathValues),
- OPCODE(off_stopClock),
- OPCODE(opp_restartClock),
+ OPCODE(off_restartClock),
+ OPCODE(opp_pauseClock),
OPCODE(off_setColour),
};
@@ -311,6 +311,7 @@ void AGOSEngine_PuzzlePack::opp_restoreOopsPosition() {
uint i;
getNextWord();
+ getNextWord();
if (_oopsValid) {
for (i = 0; i < _numVars; i++) {
@@ -318,12 +319,10 @@ void AGOSEngine_PuzzlePack::opp_restoreOopsPosition() {
}
i = _variableArray[999] * 100 + 11;
setWindowImage(4,i);
- if (getBitFlag(110)) {
- _gameTime += 10;
- } else {
- // Swampy adventures
- _gameTime += 30;
- }
+ _gameTime += 10;
+ // Swampy adventures
+ if (!getBitFlag(110))
+ _gameTime += 20;
_oopsValid = false;
}
}
@@ -361,12 +360,14 @@ void AGOSEngine_PuzzlePack::opp_setShortText() {
void AGOSEngine_PuzzlePack::opp_loadHiScores() {
// 105: load high scores
getVarOrByte();
+ //loadHiScores();
}
void AGOSEngine_PuzzlePack::opp_checkHiScores() {
// 106: check high scores
getVarOrByte();
getVarOrByte();
+ //checkHiScores();
}
void AGOSEngine_PuzzlePack::opp_sync() {
@@ -390,7 +391,6 @@ void AGOSEngine_PuzzlePack::opp_saveUserGame() {
// Swampy adventures
saveGame(1, NULL);
}
-
//saveHiScores()
}
@@ -451,11 +451,10 @@ void AGOSEngine_PuzzlePack::opp_setPathValues() {
_pathValues[_PVCount++] = getVarOrByte();
}
-void AGOSEngine_PuzzlePack::opp_restartClock() {
- // 194: resume clock
- if (_clockStopped != 0)
- _gameTime += getTime() - _clockStopped;
- _clockStopped = 0;
+void AGOSEngine_PuzzlePack::opp_pauseClock() {
+ // 194: pause clock
+ if (_clockStopped == 0)
+ _clockStopped = getTime();
}
} // End of namespace AGOS