aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorTravis Howell2003-10-08 07:38:48 +0000
committerTravis Howell2003-10-08 07:38:48 +0000
commit802a2a1310cea01a95c5d9a698440a221a418043 (patch)
treee5dcee4601d128911a23693032db464b3b402c62 /simon
parent7adf0ff1fcd4e22c957455bb4ab7e24dc7a07e72 (diff)
downloadscummvm-rg350-802a2a1310cea01a95c5d9a698440a221a418043.tar.gz
scummvm-rg350-802a2a1310cea01a95c5d9a698440a221a418043.tar.bz2
scummvm-rg350-802a2a1310cea01a95c5d9a698440a221a418043.zip
Fix display of verb name text when verb is selected in Simon the Sorcerer 1 and enable for all versions of the game.
svn-id: r10677
Diffstat (limited to 'simon')
-rw-r--r--simon/simon.cpp3
-rw-r--r--simon/simon.h1
-rw-r--r--simon/verb.cpp101
3 files changed, 97 insertions, 8 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp
index 1330d83177..bb4b25133d 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -284,7 +284,6 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)
_video_var_8 = 0;
_use_palette_delay = 0;
_sync_flag_2 = 0;
- _hitarea_unk_6 = 0;
_in_callback = 0;
_cepe_flag = 0;
_copy_partial_mode = 0;
@@ -1379,7 +1378,6 @@ void SimonEngine::setup_cond_c_helper() {
_last_hitarea = 0;
_hitarea_object_item = NULL;
- _hitarea_unk_6 = true;
last = _last_hitarea_2_ptr;
defocusHitarea();
@@ -1415,7 +1413,6 @@ out_of_here:
_last_hitarea_3 = 0;
_last_hitarea = 0;
_last_hitarea_2_ptr = NULL;
- _hitarea_unk_6 = false;
}
void SimonEngine::startSubroutine170() {
diff --git a/simon/simon.h b/simon/simon.h
index c5f47671f2..7dfc856c60 100644
--- a/simon/simon.h
+++ b/simon/simon.h
@@ -174,7 +174,6 @@ protected:
byte _video_var_8;
bool _use_palette_delay;
bool _sync_flag_2;
- bool _hitarea_unk_6;
bool _in_callback;
bool _cepe_flag;
byte _copy_partial_mode;
diff --git a/simon/verb.cpp b/simon/verb.cpp
index 108ce5406c..256a8e92b0 100644
--- a/simon/verb.cpp
+++ b/simon/verb.cpp
@@ -26,7 +26,92 @@
namespace Simon {
-static const char *const verb_names[] = {
+static const char *const hebrew_verb_names[] = {
+ "LJ @L",
+ "DQZKL RL",
+ "TZG",
+ "DFF",
+
+ "@KEL",
+ "DXM",
+ "QBEX",
+ "DYZNY",
+
+ "CAX @L",
+ "DQX",
+ "LAY",
+ "ZO"
+};
+
+static const char *const spanish_verb_names[] = {
+ "Caminar",
+ "Mirar",
+ "Abrir",
+ "Mover",
+
+ "Consumir",
+ "Coger",
+ "Cerrar",
+ "Usar",
+
+ "Hablar",
+ "Quitar",
+ "Llevar",
+ "Dar"
+};
+
+static const char *const italian_verb_names[] = {
+ "Vai verso",
+ "Osserva",
+ "Apri",
+ "Sposta",
+
+ "Mangia",
+ "Raccogli",
+ "Chiudi",
+ "Usa",
+
+ "Parla a",
+ "Togli",
+ "Indossa",
+ "Dai"
+};
+
+static const char *const french_verb_names[] = {
+ "Aller vers",
+ "Regarder",
+ "Ouvrir",
+ "D/placer",
+
+ "Consommer",
+ "Prendre",
+ "Fermer",
+ "Utiliser",
+
+ "Parler ;",
+ "Enlever",
+ "Mettre",
+ "Donner"
+};
+
+static const char *const german_verb_names[] = {
+ "Gehe zu",
+ "Schau an",
+ ";ffne",
+ "Bewege",
+
+ "Verzehre",
+ "Nimm",
+ "Schlie+e",
+ "Benutze",
+
+ "Rede mit",
+ "Entferne",
+ "Trage",
+ "Gib"
+};
+
+static const char *const english_verb_names[] = {
"Walk to",
"Look at",
"Open",
@@ -99,14 +184,14 @@ void SimonEngine::defocusHitarea() {
hitareaChangedHelper();
_hitarea_ptr_7 = last;
- if (last != NULL && _hitarea_unk_6 &&
- (ha = findHitAreaByID(200)) && (ha->flags & 0x40) && !(last->flags & 0x40))
+ if (last != NULL && (ha = findHitAreaByID(200)) && (ha->flags & 0x40) && !(last->flags & 0x40))
focusVerb(last->id);
}
void SimonEngine::focusVerb(uint hitarea_id) {
uint x;
const char *txt;
+ const char * const *verb_names;
const char * const *verb_prep_names;
hitarea_id -= 101;
@@ -123,7 +208,15 @@ void SimonEngine::focusVerb(uint hitarea_id) {
CHECK_BOUNDS(hitarea_id, english_verb_prep_names);
txt = verb_prep_names[hitarea_id];
} else {
- CHECK_BOUNDS(hitarea_id, verb_names);
+ switch (_language) {
+ case 20: verb_names = hebrew_verb_names; break;
+ case 5: verb_names = spanish_verb_names; break;
+ case 3: verb_names = italian_verb_names; break;
+ case 2: verb_names = french_verb_names; break;
+ case 1: verb_names = german_verb_names; break;
+ default: verb_names = english_verb_names; break;
+ }
+ CHECK_BOUNDS(hitarea_id, english_verb_names);
txt = verb_names[hitarea_id];
}
x = (53 - strlen(txt)) * 3;