aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorTravis Howell2003-02-05 09:29:37 +0000
committerTravis Howell2003-02-05 09:29:37 +0000
commit465296ef4eb3915d0ca9afabf47824b69857b369 (patch)
tree27ca2a7fc1151a6c27411a697848ecd441d6ff34 /simon
parenta3f0758bddbc10224e556ed87f96abec7912a048 (diff)
downloadscummvm-rg350-465296ef4eb3915d0ca9afabf47824b69857b369.tar.gz
scummvm-rg350-465296ef4eb3915d0ca9afabf47824b69857b369.tar.bz2
scummvm-rg350-465296ef4eb3915d0ca9afabf47824b69857b369.zip
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
Diffstat (limited to 'simon')
-rw-r--r--simon/items.cpp25
-rw-r--r--simon/simon.cpp107
-rw-r--r--simon/verb.cpp24
3 files changed, 142 insertions, 14 deletions
diff --git a/simon/items.cpp b/simon/items.cpp
index bd82f3907b..11d1ec054c 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 c0f55bb670..53f355fa3f 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 f75dfce31f..eb29eb5162 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];