From 5a8f3df4e8b131c3d393ebd0bea1b4ed08bd815e Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Fri, 29 Sep 2006 05:31:33 +0000 Subject: Added/stubbed some Puzzle Pack opcodes that are different compared to The Feeble Files. Didn't make much difference. svn-id: r24001 --- engines/simon/items.cpp | 39 ++++++++++++++++++++++++++++++++------- engines/simon/simon.h | 5 +++++ 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/engines/simon/items.cpp b/engines/simon/items.cpp index 07d4479790..4661d0c8d4 100644 --- a/engines/simon/items.cpp +++ b/engines/simon/items.cpp @@ -450,21 +450,28 @@ void SimonEngine::setupOpcodes() { case GType_PP: // Confirmed opcode_table[30] = &SimonEngine::o4_opcode30; + opcode_table[37] = &SimonEngine::o4_checkTiles; opcode_table[38] = &SimonEngine::o4_opcode38; opcode_table[105] = &SimonEngine::o4_loadHiScores; opcode_table[106] = &SimonEngine::o4_checkHiScores; + opcode_table[133] = &SimonEngine::o4_loadUserGame; opcode_table[166] = NULL; opcode_table[167] = NULL; opcode_table[168] = NULL; opcode_table[169] = NULL; + opcode_table[173] = &SimonEngine::o4_saveOopsPosition; + opcode_table[191] = &SimonEngine::o4_resetPVCount; + opcode_table[192] = &SimonEngine::o4_setPathValues; // Code difference, check if triggered opcode_table[132] = &SimonEngine::o3_saveUserGame, - opcode_table[187] = NULL; + opcode_table[187] = NULL; // Reset game time? + + // Code difference. Some kind of logging? + opcode_table[190] = &SimonEngine::o2_waitMark; // To check opcode_table[23] = &SimonEngine::o3_chance; - opcode_table[37] = &SimonEngine::o3_jumpOut; opcode_table[65] = &SimonEngine::o3_addTextBox; opcode_table[70] = &SimonEngine::o3_printLongText; opcode_table[83] = &SimonEngine::o2_rescan; @@ -476,20 +483,15 @@ void SimonEngine::setupOpcodes() { opcode_table[124] = &SimonEngine::o3_ifTime; opcode_table[127] = &SimonEngine::o3_playTune; opcode_table[131] = &SimonEngine::o3_setTime; - opcode_table[133] = &SimonEngine::o3_loadUserGame; opcode_table[134] = &SimonEngine::o3_listSaveGames; opcode_table[161] = &SimonEngine::o3_screenTextBox; opcode_table[165] = &SimonEngine::o3_isAdjNoun; opcode_table[171] = &SimonEngine::o3_hyperLinkOn; opcode_table[172] = &SimonEngine::o3_hyperLinkOff; - opcode_table[173] = &SimonEngine::o3_checkPaths; opcode_table[177] = &SimonEngine::o3_screenTextPObj; opcode_table[181] = &SimonEngine::o3_mouseOff; opcode_table[188] = &SimonEngine::o2_isShortText; opcode_table[189] = &SimonEngine::o2_clearMarks; - opcode_table[190] = &SimonEngine::o2_waitMark; - opcode_table[191] = &SimonEngine::o3_resetPVCount; - opcode_table[192] = &SimonEngine::o3_setPathValues; opcode_table[193] = &SimonEngine::o3_stopClock; opcode_table[194] = &SimonEngine::o3_restartClock; opcode_table[195] = &SimonEngine::o3_setColour; @@ -2365,6 +2367,11 @@ void SimonEngine::o4_opcode30() { getNextItemPtr(); } +void SimonEngine::o4_checkTiles() { + // for MahJongg game + getVarOrByte(); +} + void SimonEngine::o4_opcode38() { getVarOrByte(); getNextItemPtr(); @@ -2379,6 +2386,24 @@ void SimonEngine::o4_checkHiScores() { getVarOrByte(); } +void SimonEngine::o4_loadUserGame() { +} + +void SimonEngine::o4_saveOopsPosition() { +} + +void SimonEngine::o4_resetPVCount() { + _PVCount = 0; + _GPVCount = 0; +} + +void SimonEngine::o4_setPathValues() { + _pathValues[_PVCount++] = getVarOrByte(); + _pathValues[_PVCount++] = getVarOrByte(); + _pathValues[_PVCount++] = getVarOrByte(); + _pathValues[_PVCount++] = getVarOrByte(); +} + // ----------------------------------------------------------------------- int SimonEngine::runScript() { diff --git a/engines/simon/simon.h b/engines/simon/simon.h index dac1f8f046..5786cb126b 100644 --- a/engines/simon/simon.h +++ b/engines/simon/simon.h @@ -1041,9 +1041,14 @@ public: // Opcodes, Puzzle Pack only void o4_opcode30(); + void o4_checkTiles(); void o4_opcode38(); void o4_loadHiScores(); void o4_checkHiScores(); + void o4_loadUserGame(); + void o4_saveOopsPosition(); + void o4_resetPVCount(); + void o4_setPathValues(); protected: void drawImages(VC10_state *state); -- cgit v1.2.3