aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--saga/ite_introproc.cpp122
-rw-r--r--saga/scene.h1
2 files changed, 70 insertions, 53 deletions
diff --git a/saga/ite_introproc.cpp b/saga/ite_introproc.cpp
index fd22d091db..4520f70604 100644
--- a/saga/ite_introproc.cpp
+++ b/saga/ite_introproc.cpp
@@ -40,6 +40,10 @@
namespace Saga {
+using Common::UNK_LANG;
+using Common::EN_USA;
+using Common::DE_DEU;
+
LoadSceneParams ITE_IntroList[] = {
{RID_ITE_INTRO_ANIM_SCENE, kLoadByResourceId, NULL, Scene::SC_ITEIntroAnimProc, false, kTransitionNoFade, 0},
{RID_ITE_CAVE_SCENE_1, kLoadByResourceId, NULL, Scene::SC_ITEIntroCave1Proc, false, kTransitionFadeNoInterface, 0},
@@ -145,11 +149,8 @@ enum {
kITEPCCD = (1 << 1),
kITEMac = (1 << 2),
kITEWyrmKeep = (1 << 3),
- kITEDe = (1 << 4),
kITEAny = 0xffff,
- kITENotWyrmKeep = kITEAny & ~kITEWyrmKeep,
- kITENotDe = kITEAny & ~kITEDe,
- kITENotDeNotWyrm = kITENotWyrmKeep & ~kITEDe
+ kITENotWyrmKeep = kITEAny & ~kITEWyrmKeep
};
// Queue a page of credits text. The original interpreter did word-wrapping
@@ -157,13 +158,18 @@ enum {
EVENT *Scene::ITEQueueCredits(int delta_time, int duration, int n_credits, const INTRO_CREDIT credits[]) {
int game;
+ Common::Language lang;
// The assumption here is that all WyrmKeep versions have the same
// credits, regardless of which operating system they're for.
if (_vm->getFeatures() & GF_LANG_DE) {
- game = kITEDe;
- } else if (_vm->getFeatures() & GF_WYRMKEEP) {
+ lang = DE_DEU;
+ } else {
+ lang = EN_USA;
+ }
+
+ if (_vm->getFeatures() & GF_WYRMKEEP) {
game = kITEWyrmKeep;
} else if (_vm->getFeatures() & GF_MAC_RESOURCES) {
game = kITEMac;
@@ -182,6 +188,10 @@ EVENT *Scene::ITEQueueCredits(int delta_time, int duration, int n_credits, const
int credits_height = 0;
for (i = 0; i < n_credits; i++) {
+ if (credits[i].lang != lang && credits[i].lang != UNK_LANG) {
+ continue;
+ }
+
if (!(credits[i].game & game)) {
continue;
}
@@ -219,6 +229,10 @@ EVENT *Scene::ITEQueueCredits(int delta_time, int duration, int n_credits, const
text_entry.text_x = 160;
for (i = 0; i < n_credits; i++) {
+ if (credits[i].lang != lang && credits[i].lang != UNK_LANG) {
+ continue;
+ }
+
if (!(credits[i].game & game)) {
continue;
}
@@ -707,16 +721,16 @@ int Scene::ITEIntroValleyProc(int param) {
EVENT *q_event;
static const INTRO_CREDIT credits[] = {
- {kITENotDe, kCHeader, "Producer"},
- {kITEDe, kCHeader, "Produzent"},
- {kITEAny, kCText, "Walter Hochbrueckner"},
- {kITENotDe, kCHeader, "Executive Producer"},
- {kITEDe, kCHeader, "Ausf\201hrender Produzent"},
- {kITEAny, kCText, "Robert McNally"},
- {kITEWyrmKeep, kCHeader, "2nd Executive Producer"},
- {kITENotWyrmKeep, kCHeader, "Publisher"},
- {kITENotDeNotWyrm, kCHeader, "Herausgeber"},
- {kITEAny, kCText, "Jon Van Caneghem"}
+ {EN_USA, kITEAny, kCHeader, "Producer"},
+ {DE_DEU, kITEAny, kCHeader, "Produzent"},
+ {UNK_LANG, kITEAny, kCText, "Walter Hochbrueckner"},
+ {EN_USA, kITEAny, kCHeader, "Executive Producer"},
+ {DE_DEU, kITEAny, kCHeader, "Ausf\201hrender Produzent"},
+ {UNK_LANG, kITEAny, kCText, "Robert McNally"},
+ {UNK_LANG, kITEWyrmKeep, kCHeader, "2nd Executive Producer"},
+ {EN_USA, kITENotWyrmKeep, kCHeader, "Publisher"},
+ {DE_DEU, kITENotWyrmKeep, kCHeader, "Herausgeber"},
+ {UNK_LANG, kITEAny, kCText, "Jon Van Caneghem"}
};
int n_credits = ARRAYSIZE(credits);
@@ -813,33 +827,35 @@ int Scene::ITEIntroTreeHouseProc(int param) {
EVENT *q_event;
static const INTRO_CREDIT credits1[] = {
- {kITENotDe, kCHeader, "Game Design"},
- {kITEDe, kCHeader, "Spielentwurf"},
- {kITEAny, kCText, "Talin, Joe Pearce, Robert McNally"},
- {kITENotDe, kCText, "and Carolly Hauksdottir"},
- {kITEDe, kCText, "und Carolly Hauksdottir"},
- {kITENotDe, kCHeader, "Screenplay and Dialog"},
- {kITEDe, kCHeader, "Geschichte und Dialoge"},
- {kITENotDe, kCText, "Robert Leh, Len Wein, and Bill Rotsler"},
- {kITEDe, kCText, "Robert Leh, Len Wein und Bill Rotsler"}
+ {EN_USA, kITEAny, kCHeader, "Game Design"},
+ {DE_DEU, kITEAny, kCHeader, "Spielentwurf"},
+ {UNK_LANG, kITEAny, kCText, "Talin, Joe Pearce, Robert McNally"},
+ {EN_USA, kITEAny, kCText, "and Carolly Hauksdottir"},
+ {DE_DEU, kITEAny, kCText, "und Carolly Hauksdottir"},
+ {EN_USA, kITEAny, kCHeader, "Screenplay and Dialog"},
+ {EN_USA, kITEAny, kCText, "Robert Leh, Len Wein, and Bill Rotsler"},
+ {DE_DEU, kITEAny, kCHeader, "Geschichte und Dialoge"},
+ {DE_DEU, kITEAny, kCText, "Robert Leh, Len Wein und Bill Rotsler"}
};
int n_credits1 = ARRAYSIZE(credits1);
static const INTRO_CREDIT credits2[] = {
- {kITEWyrmKeep, kCHeader, "Art Direction"},
- {kITEWyrmKeep, kCText, "Allison Hershey"},
- {kITENotDe, kCHeader, "Art"},
- {kITEDe, kCHeader, "Grafiken"},
- {kITEAny, kCText, "Edward Lacabanne, Glenn Price, April Lee,"},
- {kITEWyrmKeep, kCText, "Lisa Sample, Brian Dowrick, Reed Waller,"},
- {kITEWyrmKeep, kCText, "Allison Hershey and Talin"},
- {kITENotWyrmKeep, kCText, "Lisa Iennaco, Brian Dowrick, Reed"},
- {kITENotDeNotWyrm, kCText, "Waller, Allison Hershey and Talin"},
- {kITEDe, kCText, "Waller, Allison Hershey und Talin"},
- {kITENotDeNotWyrm, kCHeader, "Art Direction"},
- {kITEDe, kCHeader, "Grafische Leitung"},
- {kITENotWyrmKeep, kCText, "Allison Hershey"}
+ {UNK_LANG, kITEWyrmKeep, kCHeader, "Art Direction"},
+ {UNK_LANG, kITEWyrmKeep, kCText, "Allison Hershey"},
+ {EN_USA, kITEAny, kCHeader, "Art"},
+ {DE_DEU, kITEAny, kCHeader, "Grafiken"},
+ {UNK_LANG, kITEWyrmKeep, kCText, "Ed Lacabanne, Glenn Price, April Lee,"},
+ {UNK_LANG, kITENotWyrmKeep, kCText, "Edward Lacabanne, Glenn Price, April Lee,"},
+ {UNK_LANG, kITEWyrmKeep, kCText, "Lisa Sample, Brian Dowrick, Reed Waller,"},
+ {EN_USA, kITEWyrmKeep, kCText, "Allison Hershey and Talin"},
+ {DE_DEU, kITEWyrmKeep, kCText, "Allison Hershey und Talin"},
+ {EN_USA, kITENotWyrmKeep, kCText, "Lisa Iennaco, Brian Dowrick, Reed"},
+ {EN_USA, kITENotWyrmKeep, kCText, "Waller, Allison Hershey and Talin"},
+ {DE_DEU, kITEAny, kCText, "Waller, Allison Hershey und Talin"},
+ {EN_USA, kITENotWyrmKeep, kCHeader, "Art Direction"},
+ {DE_DEU, kITENotWyrmKeep, kCHeader, "Grafische Leitung"},
+ {UNK_LANG, kITENotWyrmKeep, kCText, "Allison Hershey"}
};
int n_credits2 = ARRAYSIZE(credits2);
@@ -898,26 +914,26 @@ int Scene::ITEIntroFairePathProc(int param) {
EVENT *q_event;
static const INTRO_CREDIT credits1[] = {
- {kITENotDe, kCHeader, "Programming"},
- {kITEDe, kCHeader, "Programmiert von"},
- {kITEAny, kCText, "Talin, Walter Hochbrueckner,"},
- {kITENotDe, kCText, "Joe Burks and Robert Wiggins"},
- {kITEDe, kCText, "Joe Burks und Robert Wiggins"},
- {kITEPCCD | kITEWyrmKeep, kCHeader, "Additional Programming"},
- {kITEPCCD | kITEWyrmKeep, kCText, "John Bolton"},
- {kITEMac, kCHeader, "Macintosh Version"},
- {kITEMac, kCText, "Michael McNally and Robert McNally"},
- {kITENotDe, kCHeader, "Music and Sound"},
- {kITEDe, kCHeader, "Musik und Sound"},
- {kITEAny, kCText, "Matt Nathan"}
+ {EN_USA, kITEAny, kCHeader, "Programming"},
+ {DE_DEU, kITEAny, kCHeader, "Programmiert von"},
+ {UNK_LANG, kITEAny, kCText, "Talin, Walter Hochbrueckner,"},
+ {EN_USA, kITEAny, kCText, "Joe Burks and Robert Wiggins"},
+ {DE_DEU, kITEAny, kCText, "Joe Burks und Robert Wiggins"},
+ {EN_USA, kITEPCCD | kITEWyrmKeep, kCHeader, "Additional Programming"},
+ {EN_USA, kITEPCCD | kITEWyrmKeep, kCText, "John Bolton"},
+ {UNK_LANG, kITEMac, kCHeader, "Macintosh Version"},
+ {UNK_LANG, kITEMac, kCText, "Michael McNally and Robert McNally"},
+ {EN_USA, kITEAny, kCHeader, "Music and Sound"},
+ {DE_DEU, kITEAny, kCHeader, "Musik und Sound"},
+ {UNK_LANG, kITEAny, kCText, "Matt Nathan"}
};
int n_credits1 = ARRAYSIZE(credits1);
static const INTRO_CREDIT credits2[] = {
- {kITENotDe, kCHeader, "Directed by"},
- {kITEDe, kCHeader, "Regie"},
- {kITEAny, kCText, "Talin"}
+ {EN_USA, kITEAny, kCHeader, "Directed by"},
+ {DE_DEU, kITEAny, kCHeader, "Regie"},
+ {UNK_LANG, kITEAny, kCText, "Talin"}
};
int n_credits2 = ARRAYSIZE(credits2);
diff --git a/saga/scene.h b/saga/scene.h
index f92661bb04..21f2ac31e7 100644
--- a/saga/scene.h
+++ b/saga/scene.h
@@ -206,6 +206,7 @@ struct INTRO_DIALOGUE {
};
struct INTRO_CREDIT {
+ Common::Language lang;
int game;
int type;
const char *string;