diff options
author | Travis Howell | 2004-07-31 10:14:05 +0000 |
---|---|---|
committer | Travis Howell | 2004-07-31 10:14:05 +0000 |
commit | 6d52fbe0b10bba3e8ae5f328bb186f8048bc0c8d (patch) | |
tree | 41c9e70825bfecaf7839f613afeb42f21112d883 | |
parent | cef2de6a691288d26f9bdba912fdfa373ffa204e (diff) | |
download | scummvm-rg350-6d52fbe0b10bba3e8ae5f328bb186f8048bc0c8d.tar.gz scummvm-rg350-6d52fbe0b10bba3e8ae5f328bb186f8048bc0c8d.tar.bz2 scummvm-rg350-6d52fbe0b10bba3e8ae5f328bb186f8048bc0c8d.zip |
Add support for Russian Simon1.
svn-id: r14376
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | simon/charset.cpp | 106 | ||||
-rw-r--r-- | simon/simon.cpp | 3 | ||||
-rw-r--r-- | simon/verb.cpp | 25 |
4 files changed, 131 insertions, 4 deletions
@@ -418,6 +418,7 @@ Simon the Sorcerer: 1 & 2 it - Italian es - Spanish hb - Hebrew + ru - Russian 5.3) Graphics filters: diff --git a/simon/charset.cpp b/simon/charset.cpp index cafb549009..5cf47802e0 100644 --- a/simon/charset.cpp +++ b/simon/charset.cpp @@ -373,6 +373,7 @@ void SimonEngine::video_putchar_newline(FillOrCopyStruct *fcs) { } #ifdef __PALM_OS__ +static const byte *russian_video_font; static const byte *french_video_font; static const byte *german_video_font; static const byte *hebrew_video_font; @@ -380,6 +381,107 @@ static const byte *italian_video_font; static const byte *spanish_video_font; static const byte *video_font; #else +static const byte russian_video_font[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 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, + 72, 84, 84, 116, 84, 84, 72, 0, + 0, 112, 136, 240, 136, 136, 240, 0, + 0, 0, 0, 0, 0, 48, 48, 96, + 0, 0, 0, 240, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, + 32, 16, 0, 112, 8, 248, 120, 0, + 0, 0, 96, 48, 40, 40, 112, 0, + 0, 0, 112, 88, 20, 20, 56, 0, + 0, 0, 120, 4, 28, 4, 120, 0, + 112, 136, 8, 16, 32, 0, 32, 0, + 0, 0, 84, 84, 84, 84, 56, 4, + 56, 68, 68, 124, 68, 68, 68, 0, + 124, 36, 32, 56, 36, 36, 120, 0, + 120, 36, 36, 56, 36, 36, 120, 0, + 124, 36, 32, 32, 32, 32, 112, 0, + 56, 40, 40, 40, 40, 40, 124, 68, + 124, 36, 32, 56, 32, 36, 124, 0, + 84, 84, 84, 56, 84, 84, 84, 0, + 56, 68, 4, 24, 4, 68, 56, 0, + 68, 68, 76, 84, 100, 68, 68, 0, + 100, 40, 40, 48, 40, 36, 100, 0, + 28, 36, 36, 36, 36, 36, 100, 0, + 68, 108, 84, 68, 68, 68, 68, 0, + 68, 68, 68, 124, 68, 68, 68, 0, + 56, 68, 68, 68, 68, 68, 56, 0, + 124, 68, 68, 68, 68, 68, 68, 0, + 120, 36, 36, 56, 32, 32, 112, 0, + 56, 68, 64, 64, 64, 68, 56, 0, + 124, 84, 16, 16, 16, 16, 56, 0, + 100, 36, 36, 28, 4, 4, 56, 0, + 56, 84, 84, 84, 56, 16, 56, 0, + 108, 40, 16, 16, 40, 40, 108, 0, + 72, 72, 72, 72, 72, 72, 60, 4, + 76, 72, 72, 56, 8, 8, 28, 0, + 84, 84, 84, 84, 84, 84, 60, 0, + 84, 84, 84, 84, 84, 84, 56, 4, + 56, 68, 4, 28, 4, 68, 56, 0, + 0, 0, 68, 100, 84, 84, 100, 0, + 0, 0, 72, 84, 116, 84, 72, 0, + 0, 0, 60, 68, 60, 36, 100, 0, + 0, 0, 120, 4, 24, 4, 120, 0, + 0, 0, 100, 40, 48, 40, 100, 0, + 60, 68, 68, 60, 36, 68, 68, 0, + 0, 0, 56, 4, 60, 68, 60, 0, + 60, 64, 32, 56, 68, 68, 56, 0, + 48, 72, 80, 120, 68, 68, 56, 0, + 0, 0, 120, 4, 56, 64, 60, 0, + 56, 4, 4, 60, 68, 68, 56, 0, + 0, 0, 56, 68, 120, 64, 56, 0, + 40, 0, 56, 68, 120, 64, 56, 0, + 0, 0, 84, 84, 56, 84, 84, 0, + 64, 0, 192, 64, 64, 64, 224, 0, + 0, 0, 68, 68, 68, 68, 60, 0, + 56, 0, 68, 68, 68, 68, 60, 0, + 192, 64, 64, 64, 64, 64, 224, 0, + 0, 0, 28, 36, 36, 36, 100, 0, + 0, 0, 68, 108, 84, 68, 68, 0, + 0, 0, 56, 68, 68, 68, 56, 0, + 0, 0, 68, 68, 124, 68, 68, 0, + 0, 0, 124, 68, 68, 68, 68, 0, + 0, 0, 120, 36, 36, 56, 32, 112, + 0, 0, 60, 64, 64, 64, 60, 0, + 0, 0, 124, 84, 16, 16, 56, 0, + 0, 0, 68, 68, 60, 4, 56, 0, + 48, 16, 56, 84, 84, 56, 16, 56, + 0, 0, 68, 40, 16, 40, 68, 0, + 0, 0, 72, 72, 72, 72, 60, 4, + 0, 0, 76, 72, 72, 56, 8, 28, + 0, 0, 84, 84, 84, 84, 60, 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, + 252, 252, 252, 252, 252, 252, 252, 252, + 240, 240, 240, 240, 240, 240, 240, 240, +}; + static const byte french_video_font[] = { 0, 0, 0, 0, 0, 0, 0, 0, 32, 112, 112, 32, 32, 0, 32, 0, @@ -997,7 +1099,9 @@ void SimonEngine::video_putchar_drawchar(FillOrCopyStruct *fcs, uint x, uint y, dst = dx_lock_2(); dst += y * _dx_surface_pitch + x * 8 + fcs->textColumnOffset; - if (_language == 20) { + if (_language == 21) { + src = russian_video_font + (chr - 0x20) * 8; + } else if (_language == 20) { src = hebrew_video_font + (chr - 0x20) * 8; } else if (_language == 5) { src = spanish_video_font + (chr - 0x20) * 8; diff --git a/simon/simon.cpp b/simon/simon.cpp index 445bd15538..cf9065706b 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -4743,9 +4743,6 @@ void SimonEngine::go() { _subtitles = true; } - if (_language == 4 || (_language > 5 && _language < 20)) - error("The only known versions are English, French, German, Hebrew, Italian and Spanish"); - while (1) { hitarea_stuff(); handle_verb_clicked(_verb_hitarea); diff --git a/simon/verb.cpp b/simon/verb.cpp index a30adb4742..28f24b2303 100644 --- a/simon/verb.cpp +++ b/simon/verb.cpp @@ -26,6 +26,23 @@ namespace Simon { +static const char *const russian_verb_names[] = { + "Ietj _", + "Qnotrft< pa", + "Nt_r[t<", + "Ecjdat<", + + "Q=fst<", + "C^]t<", + "Ha_r[t<", + "Isqom<^ocat<", + + "Docorjt<", + "Qp]t<", + "Neft<", + "Eat<" +}; + static const char *const hebrew_verb_names[] = { "LJ @L", "DQZKL RL", @@ -128,6 +145,12 @@ static const char *const english_verb_names[] = { "Give" }; +static const char *const russian_verb_prep_names[] = { + "", "", "", "", + "", "", "", "s yfn?", + "", "", "", "_onu ?" +}; + static const char *const hebrew_verb_prep_names[] = { "", "", "", "", "", "", "", "RM ND ?", @@ -198,6 +221,7 @@ void SimonEngine::focusVerb(uint hitarea_id) { if (_show_preposition) { switch (_language) { + case 21: verb_prep_names = russian_verb_prep_names; break; case 20: verb_prep_names = hebrew_verb_prep_names; break; case 5: verb_prep_names = spanish_verb_prep_names; break; case 3: verb_prep_names = italian_verb_prep_names; break; @@ -209,6 +233,7 @@ void SimonEngine::focusVerb(uint hitarea_id) { txt = verb_prep_names[hitarea_id]; } else { switch (_language) { + case 21: verb_names = russian_verb_names; break; case 20: verb_names = hebrew_verb_names; break; case 5: verb_names = spanish_verb_names; break; case 3: verb_names = italian_verb_names; break; |