aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--simon/simon.cpp1
-rw-r--r--simon/simon.h1
-rw-r--r--simon/verb.cpp41
3 files changed, 39 insertions, 4 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp
index ac1b253a96..79d3eecc76 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -177,6 +177,7 @@ SimonState::SimonState(GameDetector *detector, OSystem *syst)
_debugMode = detector->_debugMode;
_debugLevel = detector->_debugLevel;
+ _language = detector->_language;
_effects_paused = false;
_ambient_paused = false;
diff --git a/simon/simon.h b/simon/simon.h
index e63bc251d0..242e00083d 100644
--- a/simon/simon.h
+++ b/simon/simon.h
@@ -181,6 +181,7 @@ public:
bool _mouse_pos_changed;
uint16 _debugMode;
uint16 _debugLevel;
+ uint16 _language;
bool _start_mainscript;
bool _continous_mainscript;
bool _continous_vgascript;
diff --git a/simon/verb.cpp b/simon/verb.cpp
index 7a7a069175..f75dfce31f 100644
--- a/simon/verb.cpp
+++ b/simon/verb.cpp
@@ -41,13 +41,30 @@ static const char *const verb_names[] = {
"Give"
};
-static const char *const verb_prep_names[] = {
+static const char *const italian_verb_prep_names[] = {
+ "", "", "", "",
+ "", "", "", "con che cosa ?",
+ "", "", "", "a chi ?"
+};
+
+static const char *const french_verb_prep_names[] = {
+ "", "", "", "",
+ "", "", "", "avec quoi ?",
+ "", "", "", "; qui ?"
+};
+
+static const char *const german_verb_prep_names[] = {
+ "", "", "", "",
+ "", "", "", "mit was ?",
+ "", "", "", "zu wem ?"
+};
+
+static const char *const english_verb_prep_names[] = {
"", "", "", "",
"", "", "", "with what ?",
"", "", "", "to whom ?"
};
-
void SimonState::defocusHitarea()
{
HitArea *last;
@@ -81,10 +98,26 @@ void SimonState::focusVerb(uint hitarea_id)
hitarea_id -= 101;
- CHECK_BOUNDS(hitarea_id, verb_prep_names);
+ if (_language == 3) {
+ CHECK_BOUNDS(hitarea_id, italian_verb_prep_names);
+ } else if (_language == 2) {
+ CHECK_BOUNDS(hitarea_id, french_verb_prep_names);
+ } else if (_language == 1) {
+ CHECK_BOUNDS(hitarea_id, german_verb_prep_names);
+ } else {
+ CHECK_BOUNDS(hitarea_id, english_verb_prep_names);
+ }
if (_show_preposition) {
- txt = verb_prep_names[hitarea_id];
+ if (_language == 3) {
+ txt = italian_verb_prep_names[hitarea_id];
+ } else if (_language == 2) {
+ txt = french_verb_prep_names[hitarea_id];
+ } else if (_language == 1) {
+ txt = german_verb_prep_names[hitarea_id];
+ } else {
+ txt = english_verb_prep_names[hitarea_id];
+ }
} else {
txt = verb_names[hitarea_id];
}