diff options
-rw-r--r-- | common/gameDetector.cpp | 2 | ||||
-rw-r--r-- | common/gameDetector.h | 2 | ||||
-rw-r--r-- | simon/debug.cpp | 2 | ||||
-rw-r--r-- | simon/intern.h | 4 | ||||
-rw-r--r-- | simon/items.cpp | 4 | ||||
-rw-r--r-- | simon/res.cpp | 1 | ||||
-rw-r--r-- | simon/simon.cpp | 5 |
7 files changed, 13 insertions, 7 deletions
diff --git a/common/gameDetector.cpp b/common/gameDetector.cpp index 594bba0ca8..3221aa3a01 100644 --- a/common/gameDetector.cpp +++ b/common/gameDetector.cpp @@ -158,6 +158,8 @@ const VersionSettings version_settings[] = { {"simon1win", "Simon the Sorcerer 1 Talkie for Windows", GID_SIMON_FIRST+6, 99, 99, 99, 0, "SIMON.GME"}, {"simon2win", "Simon the Sorcerer 2 Talkie for Windows", GID_SIMON_FIRST+7, 99, 99, 99, 0, "GSPTR30"}, {"simon2win", "Simon the Sorcerer 2 Talkie for Windows", GID_SIMON_FIRST+7, 99, 99, 99, 0, "GSPTR30."}, + {"simon2amiga", "Simon the Sorcerer 2 Talkie for Amiga", GID_SIMON_FIRST+23, 99, 99, 99, 0, "GSPTR30."}, + {"simon2mac", "Simon the Sorcerer 2 Talkie for Mac", GID_SIMON_FIRST+23, 99, 99, 99, 0, "GSPTR30."}, {"simon1demo", "Simon the Sorcerer 1 for DOS (Demo)", GID_SIMON_FIRST+8, 99, 99, 99, 0, "GDEMO"}, {"simon2demo", "Simon the Sorcerer 2 Talkie for DOS (Demo)", GID_SIMON_FIRST+5, 99, 99, 99, 0, "GSPTR30"}, diff --git a/common/gameDetector.h b/common/gameDetector.h index bcf423d795..4a6d5e8163 100644 --- a/common/gameDetector.h +++ b/common/gameDetector.h @@ -56,7 +56,7 @@ enum GameId { /* Simon the Sorcerer */ GID_SIMON_FIRST = 20, - GID_SIMON_LAST = GID_SIMON_FIRST + 8 + GID_SIMON_LAST = GID_SIMON_FIRST + 23 }; enum GameFeatures { diff --git a/simon/debug.cpp b/simon/debug.cpp index a6e9281f06..01d8233527 100644 --- a/simon/debug.cpp +++ b/simon/debug.cpp @@ -42,7 +42,7 @@ byte *SimonState::dumpOpcode(byte *p) st = s = simon1dos_opcode_name_table[opcode]; } else if (_game == GAME_SIMON1TALKIE || _game == GAME_SIMON1WIN) { st = s = simon1talkie_opcode_name_table[opcode]; - } else if (_game == GAME_SIMON2TALKIE || _game == GAME_SIMON2WIN) { + } else if (_game == GAME_SIMON2TALKIE || _game & GAME_SIMON2WIN) { st = s = simon2talkie_opcode_name_table[opcode]; } else { st = s = simon2dos_opcode_name_table[opcode]; diff --git a/simon/intern.h b/simon/intern.h index ee787db968..f9e8f22f29 100644 --- a/simon/intern.h +++ b/simon/intern.h @@ -137,6 +137,7 @@ enum { GAME_WIN = 2, GAME_TALKIE = 4, GAME_DEMO = 8, + GAME_MAC = 16, GAME_SIMON1DOS = 0, GAME_SIMON2DOS = GAME_SIMON2, @@ -144,7 +145,8 @@ enum { GAME_SIMON2TALKIE = GAME_SIMON2 + GAME_TALKIE, GAME_SIMON1WIN = GAME_WIN + GAME_TALKIE, GAME_SIMON2WIN = GAME_SIMON2 + GAME_WIN + GAME_TALKIE, - GAME_SIMON1DEMO = GAME_DEMO + GAME_SIMON1DEMO = GAME_DEMO, + GAME_SIMON2MAC = GAME_SIMON2WIN + GAME_MAC }; #endif diff --git a/simon/items.cpp b/simon/items.cpp index fcdd416c57..134d5efc95 100644 --- a/simon/items.cpp +++ b/simon/items.cpp @@ -996,7 +996,7 @@ int SimonState::runScript() ThreeValues *tv = getThreeValues(b); talk_with_text(b, c, s, tv->a, tv->b, tv->c); - } else if (_game == GAME_SIMON2TALKIE || _game == GAME_SIMON2WIN) { + } else if (_game == GAME_SIMON2TALKIE || _game & GAME_SIMON2WIN) { const char *s = (const char *)getStringPtrByID(_stringid_array_3[a]); ThreeValues *tv = getThreeValues(b); uint d = _array_4[a]; @@ -1258,7 +1258,7 @@ void SimonState::o_177() talk_with_text(a, b, s, tv->a, tv->b, tv->c); } - } else if (_game == GAME_SIMON2TALKIE || _game == GAME_SIMON2WIN) { + } else if (_game == GAME_SIMON2TALKIE || _game & GAME_SIMON2WIN) { const char *s = NULL; ThreeValues *tv = NULL; char buf[256]; diff --git a/simon/res.cpp b/simon/res.cpp index f6ccae921d..474e7120ad 100644 --- a/simon/res.cpp +++ b/simon/res.cpp @@ -272,6 +272,7 @@ byte *SimonState::readSingleOpcode(File *in, byte *ptr) break; case GAME_SIMON2TALKIE: case GAME_SIMON2WIN: + case GAME_SIMON2MAC: table = opcode_arg_table_simon2win; break; case GAME_SIMON1DOS: diff --git a/simon/simon.cpp b/simon/simon.cpp index aa184749d7..961c03dc80 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -1782,6 +1782,7 @@ void SimonState::o_print_str() case GAME_SIMON2TALKIE: case GAME_SIMON2WIN: + case GAME_SIMON2MAC: if (speech_id != 0 && num_1 == 1 && !_vk_t_toggle) talk_with_speech(speech_id, num_1); @@ -4495,7 +4496,7 @@ void SimonState::go() _sdl_buf = (byte *)calloc(320 * 200, 1); _sdl_buf_attached = (byte *)calloc(320 * 200, 1); - if (_game == GAME_SIMON2TALKIE || _game == GAME_SIMON2WIN) { + if (_game == GAME_SIMON2TALKIE || _game & GAME_SIMON2WIN) { gss = &simon2win_settings; } else if (_game == GAME_SIMON2DOS) { gss = &simon2dos_settings; @@ -4534,7 +4535,7 @@ void SimonState::go() if (_sound->hasVoice()) { _vk_t_toggle = false; } else { - _vk_t_toggle = true; + _vk_t_toggle = false; } midi._midi_sfx_toggle = false; |