diff options
-rw-r--r-- | engines/agos/agos.h | 1 | ||||
-rw-r--r-- | engines/agos/items.cpp | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h index 5faa24d131..c15f5a4d11 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -1054,6 +1054,7 @@ public: void o4_animate(); void o4_loadHiScores(); void o4_checkHiScores(); + void o4_sync(); void o4_loadUserGame(); void o4_saveOopsPosition(); void o4_resetGameTime(); diff --git a/engines/agos/items.cpp b/engines/agos/items.cpp index d76ed0be5c..b277c49c8a 100644 --- a/engines/agos/items.cpp +++ b/engines/agos/items.cpp @@ -643,6 +643,7 @@ void AGOSEngine::setupOpcodes() { opcode_table[105] = &AGOSEngine::o4_loadHiScores; opcode_table[106] = &AGOSEngine::o4_checkHiScores; opcode_table[107] = &AGOSEngine::o3_addBox; + opcode_table[120] = &AGOSEngine::o4_sync; opcode_table[122] = &AGOSEngine::o3_oracleTextDown; opcode_table[123] = &AGOSEngine::o3_oracleTextUp; opcode_table[124] = &AGOSEngine::o3_ifTime; @@ -2638,6 +2639,15 @@ void AGOSEngine::o4_checkHiScores() { getVarOrByte(); } +void AGOSEngine::o4_sync() { + // 120: sync + uint a = getVarOrWord(); + if (a == 8001 | a == 8101 || a == 8201 || a == 8301 || a == 8401) { + _marks &= ~(1 << 2); + } + sendSync(a); +} + void AGOSEngine::o4_loadUserGame() { // 133: load usergame } |