From c4f6d91777b510f192bd16fe22bee784342a4326 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Thu, 24 Sep 2009 00:38:29 +0000 Subject: Fix bug #2865191 - NoPatience hangs after undo. svn-id: r44281 --- engines/agos/agos.h | 2 +- engines/agos/script_pp.cpp | 27 +++++++++++++-------------- 2 files changed, 14 insertions(+), 15 deletions(-) (limited to 'engines/agos') 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), }; @@ -310,6 +310,7 @@ void AGOSEngine_PuzzlePack::opp_restoreOopsPosition() { // 32: restore oops position uint i; + getNextWord(); getNextWord(); if (_oopsValid) { @@ -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 -- cgit v1.2.3