From 465296ef4eb3915d0ca9afabf47824b69857b369 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Wed, 5 Feb 2003 09:29:37 +0000 Subject: [PATCH] Add guess word for spanish version Add better hebrew support, font doesn't seem quite right though. Divide quit section into languages svn-id: r6585 --- simon/items.cpp | 25 ++++++----- simon/simon.cpp | 107 +++++++++++++++++++++++++++++++++++++++++++++++- simon/verb.cpp | 24 ++++++++++- 3 files changed, 142 insertions(+), 14 deletions(-) diff --git a/simon/items.cpp b/simon/items.cpp index bd82f3907b2..11d1ec054c0 100644 --- a/simon/items.cpp +++ b/simon/items.cpp @@ -1313,16 +1313,21 @@ void SimonState::o_quit_if_user_presses_y() { for (;;) { delay(1); - switch (_key_pressed) { - case 'y': - case 'o': // french - case 'j': // german - _system->quit(); - break; - - case 'n': - goto get_out; - } + if (_key_pressed == 'f' && _language == 20) // Hebrew + _system->quit(); + // FIXME Exact key press for Spanish verison unknown + if (_key_pressed == 'y' && _language == 5) // Spanish + _system->quit(); + if (_key_pressed == 's' && _language == 3) // Italian + _system->quit(); + if (_key_pressed == 'o' && _language == 2) // French + _system->quit(); + if (_key_pressed == 'j' && _language == 1) // German + _system->quit(); + if (_key_pressed == 'y' && _language == 0) // English + _system->quit(); + if (_key_pressed == 'n') + goto get_out; } get_out:; } diff --git a/simon/simon.cpp b/simon/simon.cpp index c0f55bb6708..53f355fa3fd 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -3235,7 +3235,6 @@ void SimonState::processSpecialKeys() if (_game & GAME_SIMON2) _exit_cutscene = true; break; - case 't': _vk_t_toggle ^= 1; if (_game == GAME_SIMON1TALKIE || _game == GAME_SIMON1WIN && _vk_t_toggle) @@ -3720,6 +3719,107 @@ void SimonState::video_putchar_newline(FillOrCopyStruct *fcs) fcs->textRow++; } +static const byte hebrew_video_font[] = { + 0, 0, 0, 0, 0, 0, 0, 0, //4, 43, 0, 178, 0, 38, 0, 176, + 32, 112, 112, 32, 32, 0, 32, 0, + 48, 48, 96, 0, 0, 0, 0, 0, + 0, 144, 0, 96, 144, 144, 104, 0, + 0, 144, 0, 96, 144, 144, 96, 0, + 0, 144, 0, 144, 144, 144, 96, 0, + 0, 16, 40, 16, 42, 68, 58, 0, + 48, 48, 96, 0, 0, 0, 0, 0, + 0, 4, 8, 8, 8, 8, 4, 0, + 0, 32, 16, 16, 16, 16, 32, 0, + 0, 0, 20, 8, 62, 8, 20, 0, + 0, 112, 136, 240, 136, 136, 240, 0, + 0, 0, 0, 0, 0, 48, 48, 96, + 0, 0, 0, 240, 100, 0, 178, 0, + 9, 0, 176, 48, 48, 0, 16, 32, + 0, 120, 112, 64, 56, 0, 112, 136, + 152, 168, 200, 136, 112, 0, 32, 96, + 32, 32, 32, 32, 112, 0, 112, 136, + 8, 48, 64, 136, 248, 0, 112, 136, + 8, 48, 8, 136, 112, 0, 16, 48, + 80, 144, 248, 16, 56, 0, 248, 128, + 240, 8, 8, 136, 112, 0, 48, 64, + 128, 240, 136, 136, 112, 0, 248, 136, + 8, 16, 32, 32, 32, 0, 112, 136, + 136, 112, 136, 136, 112, 0, 112, 136, + 136, 120, 8, 16, 96, 0, 0, 0, + 48, 48, 0, 48, 48, 0, 5, 5, + 4, 6, 5, 3, 4, 5, 6, 3, + 5, 5, 4, 6, 5, 3, 4, 6, + 5, 6, 6, 6, 5, 5, 5, 6, + 5, 6, 6, 6, 6, 6, 112, 136, + 8, 16, 32, 0, 32, 0, 0, 0, + 144, 80, 160, 144, 144, 0, 0, 0, + 224, 32, 32, 32, 240, 0, 0, 0, + 224, 32, 96, 160, 160, 0, 0, 0, + 248, 16, 16, 16, 16, 0, 0, 0, + 240, 16, 16, 144, 144, 0, 0, 0, + 192, 64, 64, 64, 64, 0, 0, 0, + 224, 64, 32, 64, 64, 0, 0, 0, + 240, 144, 144, 144, 144, 0, 0, 0, + 184, 168, 136, 136, 112, 0, 0, 0, + 192, 64, 0, 0, 0, 0, 0, 0, + 240, 16, 16, 16, 16, 16, 0, 0, + 224, 16, 16, 16, 224, 0, 128, 128, + 224, 32, 32, 32, 192, 0, 0, 0, + 248, 72, 72, 72, 120, 0, 0, 0, + 176, 208, 144, 144, 176, 0, 0, 0, + 192, 64, 64, 64, 64, 64, 0, 0, + 96, 32, 32, 32, 224, 0, 0, 0, + 248, 72, 72, 72, 48, 0, 0, 0, + 80, 80, 80, 80, 224, 0, 0, 0, + 248, 72, 104, 8, 8, 8, 0, 0, + 248, 72, 104, 8, 248, 0, 0, 0, + 216, 72, 48, 16, 16, 16, 0, 0, + 144, 80, 32, 16, 240, 0, 0, 0, + 240, 16, 144, 160, 128, 128, 0, 0, + 240, 16, 16, 16, 16, 0, 0, 0, + 168, 168, 200, 136, 112, 0, 0, 0, + 240, 80, 80, 80, 208, 0, 0, 14, + 8, 8, 8, 8, 14, 0, 0, 128, + 64, 32, 16, 8, 4, 0, 0, 112, + 16, 16, 16, 16, 112, 0, 0, 48, + 72, 64, 72, 48, 16, 48, 0, 80, + 0, 96, 32, 40, 48, 0, 32, 16, + 0, 152, 144, 144, 232, 0, 0, 0, + 112, 8, 120, 136, 120, 0, 192, 64, + 80, 104, 72, 72, 112, 0, 0, 0, + 112, 136, 128, 136, 112, 0, 24, 16, + 80, 176, 144, 144, 112, 0, 0, 0, + 112, 136, 248, 128, 112, 0, 48, 72, + 64, 224, 64, 64, 224, 0, 0, 0, + 104, 144, 144, 112, 136, 112, 192, 64, + 80, 104, 72, 72, 200, 0, 64, 0, + 192, 64, 64, 64, 224, 0, 8, 0, + 8, 8, 8, 8, 136, 112, 192, 64, + 72, 80, 96, 80, 200, 0, 192, 64, + 64, 64, 64, 64, 224, 0, 0, 0, + 144, 216, 168, 136, 136, 0, 0, 0, + 240, 136, 136, 136, 136, 0, 0, 0, + 112, 136, 136, 136, 112, 0, 0, 0, + 176, 72, 72, 112, 64, 224, 0, 0, + 104, 144, 144, 112, 16, 56, 0, 0, + 176, 72, 72, 64, 224, 0, 0, 0, + 120, 128, 112, 8, 240, 0, 64, 64, + 240, 64, 64, 72, 48, 0, 0, 0, + 144, 144, 144, 144, 104, 0, 0, 0, + 136, 136, 136, 80, 32, 0, 0, 0, + 136, 136, 168, 216, 144, 0, 0, 0, + 136, 80, 32, 80, 136, 0, 0, 0, + 136, 136, 136, 112, 32, 192, 0, 0, + 248, 144, 32, 72, 248, 0, 32, 80, + 0, 96, 144, 144, 96, 0, 0, 14, + 8, 48, 8, 8, 14, 0, 0, 8, + 8, 8, 8, 8, 8, 0, 0, 112, + 16, 12, 16, 16, 112, 0, 0, 0, + 0, 0, 0, 0, 248, 0, 139, 2, + 178, 252, 8, 0, 176, 240, 8, 0, + 176, 32, 33, 34, 35, 36, 37, 38, +}; + static const byte video_font[] = { 0, 0, 0, 0, 0, 0, 0, 0, 32, 112, 112, 32, 32, 0, 32, 0, @@ -3832,7 +3932,10 @@ void SimonState::video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y, b dst = dx_lock_2(); dst += y * _dx_surface_pitch + x * 8 + fcs->textColumnOffset; - src = video_font + (chr - 0x20) * 8; + if (_language == 20) + src = hebrew_video_font + (chr - 0x20) * 8; + else + src = video_font + (chr - 0x20) * 8; color = fcs->text_color; diff --git a/simon/verb.cpp b/simon/verb.cpp index f75dfce31f8..eb29eb51626 100644 --- a/simon/verb.cpp +++ b/simon/verb.cpp @@ -41,6 +41,18 @@ static const char *const verb_names[] = { "Give" }; +static const char *const hebrew_verb_prep_names[] = { + "", "", "", "", + "", "", "", "RM ND ?", + "", "", "", "LNI ?" +}; + +static const char *const spanish_verb_prep_names[] = { + "", "", "", "", + "", "", "", "con qu/ ?", + "", "", "", "qui/n ?" +}; + static const char *const italian_verb_prep_names[] = { "", "", "", "", "", "", "", "con che cosa ?", @@ -98,7 +110,11 @@ void SimonState::focusVerb(uint hitarea_id) hitarea_id -= 101; - if (_language == 3) { + if (_language == 20) { + CHECK_BOUNDS(hitarea_id, hebrew_verb_prep_names); + } else if (_language == 5) { + CHECK_BOUNDS(hitarea_id, spanish_verb_prep_names); + } else if (_language == 3) { CHECK_BOUNDS(hitarea_id, italian_verb_prep_names); } else if (_language == 2) { CHECK_BOUNDS(hitarea_id, french_verb_prep_names); @@ -109,7 +125,11 @@ void SimonState::focusVerb(uint hitarea_id) } if (_show_preposition) { - if (_language == 3) { + if (_language == 20) { + CHECK_BOUNDS(hitarea_id, hebrew_verb_prep_names); + } else if (_language == 5) { + txt = spanish_verb_prep_names[hitarea_id]; + } else if (_language == 3) { txt = italian_verb_prep_names[hitarea_id]; } else if (_language == 2) { txt = french_verb_prep_names[hitarea_id];