aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/agos.h1
-rw-r--r--engines/agos/items.cpp10
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
}