Fix bug #2865191 - NoPatience hangs after undo.

svn-id: r44281
This commit is contained in:
Travis Howell 2009-09-24 00:38:29 +00:00
parent 3045ecce2f
commit c4f6d91777
2 changed files with 14 additions and 15 deletions

View file

@ -2058,7 +2058,7 @@ public:
void opp_resetGameTime(); void opp_resetGameTime();
void opp_resetPVCount(); void opp_resetPVCount();
void opp_setPathValues(); void opp_setPathValues();
void opp_restartClock(); void opp_pauseClock();
protected: protected:
typedef void (AGOSEngine_PuzzlePack::*OpcodeProcPuzzlePack) (); typedef void (AGOSEngine_PuzzlePack::*OpcodeProcPuzzlePack) ();

View file

@ -279,8 +279,8 @@ void AGOSEngine_PuzzlePack::setupOpcodes() {
OPCODE(opp_resetPVCount), OPCODE(opp_resetPVCount),
/* 192 */ /* 192 */
OPCODE(opp_setPathValues), OPCODE(opp_setPathValues),
OPCODE(off_stopClock), OPCODE(off_restartClock),
OPCODE(opp_restartClock), OPCODE(opp_pauseClock),
OPCODE(off_setColour), OPCODE(off_setColour),
}; };
@ -310,6 +310,7 @@ void AGOSEngine_PuzzlePack::opp_restoreOopsPosition() {
// 32: restore oops position // 32: restore oops position
uint i; uint i;
getNextWord();
getNextWord(); getNextWord();
if (_oopsValid) { if (_oopsValid) {
@ -318,12 +319,10 @@ void AGOSEngine_PuzzlePack::opp_restoreOopsPosition() {
} }
i = _variableArray[999] * 100 + 11; i = _variableArray[999] * 100 + 11;
setWindowImage(4,i); setWindowImage(4,i);
if (getBitFlag(110)) { _gameTime += 10;
_gameTime += 10; // Swampy adventures
} else { if (!getBitFlag(110))
// Swampy adventures _gameTime += 20;
_gameTime += 30;
}
_oopsValid = false; _oopsValid = false;
} }
} }
@ -361,12 +360,14 @@ void AGOSEngine_PuzzlePack::opp_setShortText() {
void AGOSEngine_PuzzlePack::opp_loadHiScores() { void AGOSEngine_PuzzlePack::opp_loadHiScores() {
// 105: load high scores // 105: load high scores
getVarOrByte(); getVarOrByte();
//loadHiScores();
} }
void AGOSEngine_PuzzlePack::opp_checkHiScores() { void AGOSEngine_PuzzlePack::opp_checkHiScores() {
// 106: check high scores // 106: check high scores
getVarOrByte(); getVarOrByte();
getVarOrByte(); getVarOrByte();
//checkHiScores();
} }
void AGOSEngine_PuzzlePack::opp_sync() { void AGOSEngine_PuzzlePack::opp_sync() {
@ -390,7 +391,6 @@ void AGOSEngine_PuzzlePack::opp_saveUserGame() {
// Swampy adventures // Swampy adventures
saveGame(1, NULL); saveGame(1, NULL);
} }
//saveHiScores() //saveHiScores()
} }
@ -451,11 +451,10 @@ void AGOSEngine_PuzzlePack::opp_setPathValues() {
_pathValues[_PVCount++] = getVarOrByte(); _pathValues[_PVCount++] = getVarOrByte();
} }
void AGOSEngine_PuzzlePack::opp_restartClock() { void AGOSEngine_PuzzlePack::opp_pauseClock() {
// 194: resume clock // 194: pause clock
if (_clockStopped != 0) if (_clockStopped == 0)
_gameTime += getTime() - _clockStopped; _clockStopped = getTime();
_clockStopped = 0;
} }
} // End of namespace AGOS } // End of namespace AGOS