RCS file: /cvsroot/scummvm/scummvm/simon/items.cpp,v
retrieving revision 1.80
diff -u -r1.80 items.cpp
|
|
|
995 | 995 | if (_game & GF_TALKIE) |
996 | 996 | d = _array_4[a]; |
997 | 997 | |
998 | | if (d != 0 && !_subtitles) { |
| 998 | if (d != 0) |
999 | 999 | talk_with_speech(d, b); |
1000 | | } else if (s != NULL) { |
| 1000 | if (s != NULL && (d == 0 || _subtitles)) |
1001 | 1001 | talk_with_text(b, c, s, tv->a, tv->b, tv->c); |
1002 | | } |
1003 | 1002 | } |
1004 | 1003 | break; |
1005 | 1004 | |
… |
… |
|
1234 | 1233 | if (_game == GAME_SIMON1CD32 || _game == GAME_SIMON1TALKIE || _game == GAME_SIMON1WIN) { |
1235 | 1234 | if (child != NULL && child->avail_props & 0x200) { |
1236 | 1235 | uint offs = getOffsetOfChild2Param(child, 0x200); |
1237 | | if (!_subtitles) |
1238 | | talk_with_speech(child->array[offs], a); |
| 1236 | talk_with_speech(child->array[offs], a); |
1239 | 1237 | } else if (child != NULL && child->avail_props & 0x100) { |
1240 | 1238 | uint offs = getOffsetOfChild2Param(child, 0x100); |
1241 | | if (!_subtitles) |
1242 | | talk_with_speech(child->array[offs] + 3550, a); |
| 1239 | talk_with_speech(child->array[offs] + 3550, a); |
1243 | 1240 | } |
1244 | 1241 | } else if (_game == GAME_SIMON2TALKIE || _game == GAME_SIMON2WIN) { |
1245 | 1242 | if (child != NULL && child->avail_props & 0x200) { |
… |
… |
|
1289 | 1286 | } |
1290 | 1287 | } |
1291 | 1288 | |
1292 | | if (!_subtitles) |
1293 | | talk_with_speech(var200, a); |
| 1289 | talk_with_speech(var200, a); |
1294 | 1290 | } |
1295 | 1291 | |
1296 | 1292 | } |
RCS file: /cvsroot/scummvm/scummvm/simon/simon.cpp,v
retrieving revision 1.231
diff -u -r1.231 simon.cpp
|
|
|
245 | 245 | _continous_mainscript = 0; |
246 | 246 | _continous_vgascript = 0; |
247 | 247 | _draw_images_debug = 0; |
248 | | _subtitles = 0; |
| 248 | _subtitles = true; |
249 | 249 | _mouse_cursor = 0; |
250 | 250 | _vga_var9 = 0; |
251 | 251 | _script_unk_1 = 0; |
… |
… |
|
430 | 430 | _debugMode = detector->_debugMode; |
431 | 431 | _debugLevel = detector->_debugLevel; |
432 | 432 | _language = detector->_language; |
| 433 | _noSubtitles = detector->_noSubtitles; |
433 | 434 | } |
434 | 435 | |
435 | 436 | SimonEngine::~SimonEngine() { |
… |
… |
|
2037 | 2038 | case GAME_SIMON1TALKIE: |
2038 | 2039 | case GAME_SIMON1WIN: |
2039 | 2040 | case GAME_SIMON1CD32: |
2040 | | if (speech_id != 0 && !_subtitles) { |
| 2041 | if (speech_id != 0) |
2041 | 2042 | talk_with_speech(speech_id, num_1); |
2042 | | } else if (string_ptr != NULL) { |
| 2043 | if (string_ptr != NULL && _subtitles) |
2043 | 2044 | talk_with_text(num_1, num_2, (const char *)string_ptr, tv->a, tv->b, tv->c); |
2044 | | } |
2045 | 2045 | break; |
2046 | 2046 | |
2047 | 2047 | case GAME_SIMON1DEMO: |
… |
… |
|
2054 | 2054 | case GAME_SIMON2TALKIE: |
2055 | 2055 | case GAME_SIMON2WIN: |
2056 | 2056 | case GAME_SIMON2MAC: |
2057 | | if (speech_id != 0 && num_1 == 1 && !_subtitles) |
| 2057 | if (speech_id != 0 && num_1 == 1) |
2058 | 2058 | talk_with_speech(speech_id, num_1); |
2059 | 2059 | |
2060 | 2060 | if (speech_id != 0 && !_subtitles) |
… |
… |
|
2729 | 2729 | _exit_cutscene = false; |
2730 | 2730 | _skip_speech = false; |
2731 | 2731 | while (_vga_wait_for != 0) { |
2732 | | if (_skip_speech) { |
2733 | | if (_game & GF_SIMON2) { |
2734 | | if (_vga_wait_for == 200 && !vc_get_bit(14)) { |
2735 | | skip_speech(); |
2736 | | break; |
2737 | | } |
| 2732 | if (_skip_speech && _game & GF_SIMON2) { |
| 2733 | if (_vga_wait_for == 200 && !vc_get_bit(14)) { |
| 2734 | skip_speech(); |
| 2735 | break; |
2738 | 2736 | } |
2739 | 2737 | } else if (_exit_cutscene) { |
2740 | 2738 | if (vc_get_bit(9)) { |
… |
… |
|
3742 | 3740 | void SimonEngine::talk_with_speech(uint speech_id, uint num_1) { |
3743 | 3741 | if (!(_game & GF_SIMON2)) { |
3744 | 3742 | if (speech_id == 9999) { |
| 3743 | if (_subtitles) |
| 3744 | return; |
3745 | 3745 | if (!(_bit_array[0] & 0x4000) && !(_bit_array[1] & 0x1000)) { |
3746 | 3746 | _bit_array[0] |= 0x4000; |
3747 | 3747 | _variableArray[100] = 0xF; |
… |
… |
|
3749 | 3749 | o_wait_for_vga(0x82); |
3750 | 3750 | } |
3751 | 3751 | _skip_vga_wait = true; |
3752 | | return; |
3753 | | } |
3754 | | if (num_1 < 100) { |
| 3752 | } else { |
| 3753 | if (_subtitles && _scriptvar_2) { |
| 3754 | start_vga_code(4, 2, 204, 0, 0, 0); |
| 3755 | o_wait_for_vga(204); |
| 3756 | o_kill_sprite_simon1(204); |
| 3757 | } |
3755 | 3758 | o_kill_sprite_simon1(num_1 + 201); |
3756 | | } |
3757 | | |
3758 | | _sound->playVoice(speech_id); |
3759 | | |
3760 | | if (num_1 < 100) { |
| 3759 | _sound->playVoice(speech_id); |
3761 | 3760 | start_vga_code(4, 2, num_1 + 201, 0, 0, 0); |
3762 | 3761 | } |
3763 | 3762 | } else { |
… |
… |
|
3779 | 3778 | } |
3780 | 3779 | o_kill_sprite_simon2(2, num_1 + 2); |
3781 | 3780 | _sound->playVoice(speech_id); |
3782 | | |
3783 | 3781 | start_vga_code(4, 2, num_1 + 2, 0, 0, 0); |
3784 | 3782 | } |
3785 | 3783 | } |
… |
… |
|
4395 | 4393 | if (_debugLevel == 4) |
4396 | 4394 | _start_mainscript = true; |
4397 | 4395 | |
4398 | | if (_sound->hasVoice()) { |
| 4396 | if (_game & GF_TALKIE) |
| 4397 | if (_noSubtitles) |
| 4398 | _subtitles = false; |
| 4399 | |
| 4400 | if (!(_sound->hasVoice())) |
4399 | 4401 | _subtitles = false; |
4400 | | } else { |
4401 | | _subtitles = true; |
4402 | | } |
4403 | 4402 | |
4404 | 4403 | if (_language == 4 || (_language > 5 && _language < 20)) |
4405 | 4404 | error("Only English, French, German, Hebrew, Italian and Spanish are supported"); |
4406 | 4405 | |
4407 | | //Only English and German voice files were produced |
4408 | | if (_language >= 2) |
4409 | | _subtitles = true; |
4410 | | |
4411 | 4406 | while (1) { |
4412 | 4407 | hitarea_stuff(); |
4413 | 4408 | handle_verb_clicked(_verb_hitarea); |
… |
… |
|
4482 | 4477 | |
4483 | 4478 | case OSystem::EVENT_RBUTTONDOWN: |
4484 | 4479 | if (_game & GF_SIMON2) |
4485 | | _skip_speech = true; |
| 4480 | _skip_speech = true; |
4486 | 4481 | else |
4487 | | _exit_cutscene = true; |
4488 | | break; |
| 4482 | _exit_cutscene = true; |
| 4483 | break; |
4489 | 4484 | |
4490 | 4485 | default: |
4491 | 4486 | break; |
RCS file: /cvsroot/scummvm/scummvm/simon/simon.h,v
retrieving revision 1.73
diff -u -r1.73 simon.h
|
|
|
186 | 186 | uint16 _debugMode; |
187 | 187 | uint16 _debugLevel; |
188 | 188 | uint16 _language; |
| 189 | bool _noSubtitles; |
189 | 190 | bool _start_mainscript; |
190 | 191 | bool _continous_mainscript; |
191 | 192 | bool _continous_vgascript; |