mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-24 21:21:05 +00:00
TINSEL: Added support for the 3,4 and 5 FLAGS (multi lingual) versions of DW (only 4 flags version has been tested; see also bug #2048383)
svn-id: r34210
This commit is contained in:
parent
2e9bdfb3b1
commit
396d815e15
@ -24,8 +24,6 @@
|
||||
* This file contains configuration functionality
|
||||
*/
|
||||
|
||||
//#define USE_3FLAGS 1
|
||||
|
||||
#include "tinsel/config.h"
|
||||
#include "tinsel/dw.h"
|
||||
#include "tinsel/sound.h"
|
||||
@ -47,7 +45,7 @@ int volVoice = MAXSAMPVOL;
|
||||
int speedText = DEFTEXTSPEED;
|
||||
int bSubtitles = false;
|
||||
int bSwapButtons = 0;
|
||||
LANGUAGE language = TXT_ENGLISH;
|
||||
LANGUAGE g_language = TXT_ENGLISH;
|
||||
int bAmerica = 0;
|
||||
|
||||
|
||||
@ -68,6 +66,32 @@ void WriteConfig(void) {
|
||||
//ConfMan.setBool("swap_buttons", bSwapButtons ? 1 : 0);
|
||||
//ConfigData.language = language; // not necessary, as language has been set in the launcher
|
||||
//ConfigData.bAmerica = bAmerica; // EN_USA / EN_GRB
|
||||
|
||||
// Store language for multilingual versions
|
||||
if ((_vm->getFeatures() & GF_USE_3FLAGS) || (_vm->getFeatures() & GF_USE_4FLAGS) || (_vm->getFeatures() & GF_USE_5FLAGS)) {
|
||||
Common::Language lang;
|
||||
switch (g_language) {
|
||||
case TXT_FRENCH:
|
||||
lang = Common::FR_FRA;
|
||||
break;
|
||||
case TXT_GERMAN:
|
||||
lang = Common::DE_DEU;
|
||||
break;
|
||||
case TXT_SPANISH:
|
||||
lang = Common::ES_ESP;
|
||||
break;
|
||||
case TXT_ITALIAN:
|
||||
lang = Common::IT_ITA;
|
||||
break;
|
||||
default:
|
||||
lang = Common::EN_ANY;
|
||||
}
|
||||
|
||||
ConfMan.set("language", Common::getLanguageCode(lang));
|
||||
}
|
||||
|
||||
// Write to disk
|
||||
ConfMan.flushToDisk();
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------*\
|
||||
@ -94,24 +118,53 @@ void ReadConfig(void) {
|
||||
//ConfigData.language = language; // not necessary, as language has been set in the launcher
|
||||
//ConfigData.bAmerica = bAmerica; // EN_USA / EN_GRB
|
||||
|
||||
// The flags here control how many country flags are displayed in one of the option dialogs.
|
||||
#if defined(USE_3FLAGS) || defined(USE_4FLAGS) || defined(USE_5FLAGS)
|
||||
language = ConfigData.language;
|
||||
#ifdef USE_3FLAGS
|
||||
if (language == TXT_ENGLISH || language == TXT_ITALIAN) {
|
||||
language = TXT_GERMAN;
|
||||
bSubtitles = true;
|
||||
// Set language - we'll be clever here and use the ScummVM language setting
|
||||
g_language = TXT_ENGLISH;
|
||||
Common::Language lang = _vm->getLanguage();
|
||||
if (lang == Common::UNK_LANG && ConfMan.hasKey("language"))
|
||||
lang = Common::parseLanguage(ConfMan.get("language")); // For multi-lingual versions, fall back to user settings
|
||||
switch (lang) {
|
||||
case Common::FR_FRA:
|
||||
g_language = TXT_FRENCH;
|
||||
break;
|
||||
case Common::DE_DEU:
|
||||
g_language = TXT_GERMAN;
|
||||
break;
|
||||
case Common::ES_ESP:
|
||||
g_language = TXT_SPANISH;
|
||||
break;
|
||||
case Common::IT_ITA:
|
||||
g_language = TXT_ITALIAN;
|
||||
break;
|
||||
default:
|
||||
g_language = TXT_ENGLISH;
|
||||
}
|
||||
#endif
|
||||
#ifdef USE_4FLAGS
|
||||
if (language == TXT_ENGLISH) {
|
||||
language = TXT_GERMAN;
|
||||
|
||||
if (lang == Common::JA_JPN) {
|
||||
// TODO: Add support for JAPAN version
|
||||
} else if (lang == Common::HB_ISR) {
|
||||
// TODO: Add support for HEBREW version
|
||||
|
||||
// The Hebrew version appears to the software as being English
|
||||
// but it needs to have subtitles on...
|
||||
g_language = TXT_ENGLISH;
|
||||
bSubtitles = true;
|
||||
} else if (_vm->getFeatures() & GF_USE_3FLAGS) {
|
||||
// 3 FLAGS version supports French, German, Spanish
|
||||
// Fall back to German if necessary
|
||||
if (g_language != TXT_FRENCH && g_language != TXT_GERMAN && g_language != TXT_SPANISH) {
|
||||
g_language = TXT_GERMAN;
|
||||
bSubtitles = true;
|
||||
}
|
||||
} else if (_vm->getFeatures() & GF_USE_4FLAGS) {
|
||||
// 4 FLAGS version supports French, German, Spanish, Italian
|
||||
// Fall back to German if necessary
|
||||
if (g_language != TXT_FRENCH && g_language != TXT_GERMAN &&
|
||||
g_language != TXT_SPANISH && g_language != TXT_ITALIAN) {
|
||||
g_language = TXT_GERMAN;
|
||||
bSubtitles = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
language = TXT_ENGLISH;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool isJapanMode() {
|
||||
|
@ -30,23 +30,11 @@
|
||||
|
||||
namespace Tinsel {
|
||||
|
||||
// None of these defined -> 1 language, in ENGLISH.TXT
|
||||
//#define USE_5FLAGS 1 // All 5 flags
|
||||
//#define USE_4FLAGS 1 // French, German, Italian, Spanish
|
||||
//#define USE_3FLAGS 1 // French, German, Spanish
|
||||
|
||||
// The Hebrew version appears to the software as being English
|
||||
// but it needs to have subtitles on...
|
||||
//#define HEBREW 1
|
||||
|
||||
//#define JAPAN 1
|
||||
|
||||
|
||||
// double click timer initial value
|
||||
#define DOUBLE_CLICK_TIME 6 // 6 @ 18Hz = .33 sec
|
||||
|
||||
#define DEFTEXTSPEED 0
|
||||
|
||||
enum {
|
||||
DOUBLE_CLICK_TIME = 6, // 6 @ 18Hz = .33 sec
|
||||
DEFTEXTSPEED = 0
|
||||
};
|
||||
|
||||
extern int dclickSpeed;
|
||||
extern int volMidi;
|
||||
@ -55,7 +43,7 @@ extern int volVoice;
|
||||
extern int speedText;
|
||||
extern int bSubtitles;
|
||||
extern int bSwapButtons;
|
||||
extern LANGUAGE language;
|
||||
extern LANGUAGE g_language;
|
||||
extern int bAmerica;
|
||||
|
||||
void WriteConfig(void);
|
||||
|
@ -130,6 +130,30 @@ static const TinselGameDescription gameDescriptions[] = {
|
||||
TINSEL_V1,
|
||||
},
|
||||
|
||||
{ // Multilingual CD with english speech and *.gra files.
|
||||
// Note: It contains no english subtitles.
|
||||
{
|
||||
"dw",
|
||||
"CD",
|
||||
{
|
||||
{"dw.gra", 0, "c8808ccd988d603dd35dff42013ae7fd", 781656},
|
||||
{"english.smp", 0, NULL, -1},
|
||||
{"french.txt", 0, NULL, -1},
|
||||
{"german.txt", 0, NULL, -1},
|
||||
{"italian.txt", 0, NULL, -1},
|
||||
{"spanish.txt", 0, NULL, -1},
|
||||
{NULL, 0, NULL, 0}
|
||||
},
|
||||
Common::UNK_LANG,
|
||||
Common::kPlatformPC,
|
||||
Common::ADGF_NO_FLAGS
|
||||
},
|
||||
GID_DW1,
|
||||
0,
|
||||
GF_CD | GF_USE_4FLAGS,
|
||||
TINSEL_V1,
|
||||
},
|
||||
|
||||
{ // English CD with SCN files
|
||||
{
|
||||
"dw",
|
||||
|
@ -29,8 +29,6 @@
|
||||
* And there's still a bit of tidying and commenting to do yet.
|
||||
*/
|
||||
|
||||
//#define USE_3FLAGS 1
|
||||
|
||||
#include "tinsel/actors.h"
|
||||
#include "tinsel/anim.h"
|
||||
#include "tinsel/background.h"
|
||||
@ -370,9 +368,7 @@ enum BFUNC {
|
||||
NOFUNC, SAVEGAME, LOADGAME, IQUITGAME, CLOSEWIN,
|
||||
OPENLOAD, OPENSAVE, OPENREST,
|
||||
OPENSOUND, OPENCONT,
|
||||
#ifndef JAPAN
|
||||
OPENSUBT,
|
||||
#endif
|
||||
OPENQUIT,
|
||||
INITGAME, MIDIVOL,
|
||||
CLANG, RLANG
|
||||
@ -402,9 +398,7 @@ struct CONFBOX {
|
||||
#define SIX_RESTART_OPTION 2
|
||||
#define SIX_SOUND_OPTION 3
|
||||
#define SIX_CONTROL_OPTION 4
|
||||
#ifndef JAPAN
|
||||
#define SIX_SUBTITLES_OPTION 5
|
||||
#endif
|
||||
#define SIX_QUIT_OPTION 6
|
||||
#define SIX_RESUME_OPTION 7
|
||||
#define SIX_LOAD_HEADING 8
|
||||
@ -568,41 +562,60 @@ CONFBOX controlBox[] = {
|
||||
|
||||
|
||||
/*-------------------------------------------------------------*\
|
||||
| This is the subtitles 'menu'. |
|
||||
| This is the subtitles 'menu'. |
|
||||
\*-------------------------------------------------------------*/
|
||||
|
||||
#ifndef JAPAN
|
||||
CONFBOX subtitlesBox[] = {
|
||||
|
||||
#ifdef USE_5FLAGS
|
||||
{ SLIDER, NOFUNC, NULL, SIX_TSPEED_SLIDER, 142, 20, 100, 2, &speedText, 0 },
|
||||
{ TOGGLE, NOFUNC, NULL, SIX_STITLE_TOGGLE, 142, 20+40, 23, 19, &bSubtitles, 0 },
|
||||
|
||||
};
|
||||
|
||||
CONFBOX subtitlesBox3Flags[] = {
|
||||
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 15, 118, 56, 32, NULL, FIX_FR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 85, 118, 56, 32, NULL, FIX_GR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 155, 118, 56, 32, NULL, FIX_SP },
|
||||
|
||||
{ SLIDER, NOFUNC, NULL, SIX_TSPEED_SLIDER, 142, 20, 100, 2, &speedText, 0 },
|
||||
{ TOGGLE, NOFUNC, NULL, SIX_STITLE_TOGGLE, 142, 20+40, 23, 19, &bSubtitles, 0 },
|
||||
|
||||
{ ARSGBUT, CLANG, NULL, USE_POINTER, 230, 110, 23, 19, NULL, IX_TICK1 },
|
||||
{ AAGBUT, RLANG, NULL, USE_POINTER, 230, 140, 23, 19, NULL, IX_CROSS1 }
|
||||
|
||||
};
|
||||
|
||||
CONFBOX subtitlesBox4Flags[] = {
|
||||
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 20, 100, 56, 32, NULL, FIX_FR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 108, 100, 56, 32, NULL, FIX_GR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 64, 137, 56, 32, NULL, FIX_IT },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 152, 137, 56, 32, NULL, FIX_SP },
|
||||
|
||||
{ SLIDER, NOFUNC, NULL, SIX_TSPEED_SLIDER, 142, 20, 100, 2, &speedText, 0 },
|
||||
{ TOGGLE, NOFUNC, NULL, SIX_STITLE_TOGGLE, 142, 20+40, 23, 19, &bSubtitles, 0 },
|
||||
|
||||
{ ARSGBUT, CLANG, NULL, USE_POINTER, 230, 110, 23, 19, NULL, IX_TICK1 },
|
||||
{ AAGBUT, RLANG, NULL, USE_POINTER, 230, 140, 23, 19, NULL, IX_CROSS1 }
|
||||
|
||||
};
|
||||
|
||||
CONFBOX subtitlesBox5Flags[] = {
|
||||
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 15, 100, 56, 32, NULL, FIX_UK },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 85, 100, 56, 32, NULL, FIX_FR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 155, 100, 56, 32, NULL, FIX_GR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 50, 137, 56, 32, NULL, FIX_IT },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 120, 137, 56, 32, NULL, FIX_SP },
|
||||
#endif
|
||||
#ifdef USE_4FLAGS
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 20, 100, 56, 32, NULL, FIX_FR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 108, 100, 56, 32, NULL, FIX_GR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 64, 137, 56, 32, NULL, FIX_IT },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 152, 137, 56, 32, NULL, FIX_SP },
|
||||
#endif
|
||||
#ifdef USE_3FLAGS
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 15, 118, 56, 32, NULL, FIX_FR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 85, 118, 56, 32, NULL, FIX_GR },
|
||||
{ FRGROUP, NOFUNC, NULL, USE_POINTER, 155, 118, 56, 32, NULL, FIX_SP },
|
||||
#endif
|
||||
|
||||
{ SLIDER, NOFUNC, NULL, SIX_TSPEED_SLIDER, 142, 20, 100, 2, &speedText, 0 },
|
||||
{ TOGGLE, NOFUNC, NULL, SIX_STITLE_TOGGLE, 142, 20+40, 23, 19, &bSubtitles, 0 },
|
||||
|
||||
#if defined(USE_3FLAGS) || defined(USE_4FLAGS) || defined(USE_5FLAGS)
|
||||
{ ARSGBUT, CLANG, NULL, USE_POINTER, 230, 110, 23, 19, NULL, IX_TICK1 },
|
||||
{ AAGBUT, RLANG, NULL, USE_POINTER, 230, 140, 23, 19, NULL, IX_CROSS1 }
|
||||
#endif
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/*-------------------------------------------------------------*\
|
||||
@ -610,7 +623,7 @@ CONFBOX subtitlesBox[] = {
|
||||
\*-------------------------------------------------------------*/
|
||||
|
||||
CONFBOX quitBox[] = {
|
||||
#ifdef JAPAN
|
||||
#ifdef g
|
||||
{ AAGBUT, IQUITGAME, NULL, USE_POINTER,70, 44, 23, 19, NULL, IX_TICK1 },
|
||||
{ AAGBUT, CLOSEWIN, NULL, USE_POINTER, 30, 44, 23, 19, NULL, IX_CROSS1 }
|
||||
#else
|
||||
@ -652,13 +665,9 @@ CONFINIT ciSound = { 10, 5, 20, 16, false, soundBox, ARRAYSIZE(soundBox), NO_HEA
|
||||
#else
|
||||
CONFINIT ciControl = { 10, 5, 20, 16, false, controlBox, ARRAYSIZE(controlBox), NO_HEADING };
|
||||
#endif
|
||||
#ifndef JAPAN
|
||||
#if defined(USE_3FLAGS) || defined(USE_4FLAGS) || defined(USE_5FLAGS)
|
||||
CONFINIT ciSubtitles = { 10, 6, 20, 16, false, subtitlesBox, ARRAYSIZE(subtitlesBox), NO_HEADING };
|
||||
#else
|
||||
|
||||
CONFINIT ciSubtitles = { 10, 3, 20, 16, false, subtitlesBox, ARRAYSIZE(subtitlesBox), NO_HEADING };
|
||||
#endif
|
||||
#endif
|
||||
|
||||
CONFINIT ciQuit = { 4, 2, 98, 53, false, quitBox, ARRAYSIZE(quitBox), SIX_QUIT_HEADING };
|
||||
|
||||
CONFINIT ciTopWin = { 6, 5, 72, 23, false, topwinBox, 0, NO_HEADING };
|
||||
@ -762,33 +771,31 @@ static void ConfActionSpecial(int i);
|
||||
|
||||
|
||||
|
||||
#ifndef JAPAN
|
||||
bool LanguageChange(void) {
|
||||
LANGUAGE nLang;
|
||||
|
||||
#ifdef USE_3FLAGS
|
||||
// VERY quick dodgy bodge
|
||||
if (cd.selBox == 0)
|
||||
nLang = TXT_FRENCH; // = 1
|
||||
else if (cd.selBox == 1)
|
||||
nLang = TXT_GERMAN; // = 2
|
||||
else
|
||||
nLang = TXT_SPANISH; // = 4
|
||||
#elif defined(USE_4FLAGS)
|
||||
nLang = (LANGUAGE)(cd.selBox + 1);
|
||||
#else
|
||||
nLang = (LANGUAGE)cd.selBox;
|
||||
#endif
|
||||
if (_vm->getFeatures() & GF_USE_3FLAGS) {
|
||||
// VERY quick dodgy bodge
|
||||
if (cd.selBox == 0)
|
||||
nLang = TXT_FRENCH; // = 1
|
||||
else if (cd.selBox == 1)
|
||||
nLang = TXT_GERMAN; // = 2
|
||||
else
|
||||
nLang = TXT_SPANISH; // = 4
|
||||
} else if (_vm->getFeatures() & GF_USE_4FLAGS) {
|
||||
nLang = (LANGUAGE)(cd.selBox + 1);
|
||||
} else if (_vm->getFeatures() & GF_USE_5FLAGS) {
|
||||
nLang = (LANGUAGE)cd.selBox;
|
||||
}
|
||||
|
||||
if (nLang != language) {
|
||||
if (nLang != g_language) {
|
||||
KillInventory();
|
||||
ChangeLanguage(nLang);
|
||||
language = nLang;
|
||||
g_language = nLang;
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**************************************************************************/
|
||||
/******************** Some miscellaneous functions ************************/
|
||||
@ -1212,8 +1219,8 @@ void Select(int i, bool force) {
|
||||
|
||||
break;
|
||||
|
||||
#if defined(USE_3FLAGS) || defined(USE_4FLAGS) || defined(USE_5FLAGS)
|
||||
case FRGROUP:
|
||||
assert((_vm->getFeatures() & GF_USE_3FLAGS) || (_vm->getFeatures() & GF_USE_4FLAGS) || (_vm->getFeatures() & GF_USE_5FLAGS));
|
||||
iconArray[HL2] = RectangleObject(BackPal(), COL_HILIGHT, cd.Box[i].w+6, cd.Box[i].h+6);
|
||||
MultiInsertObject(GetPlayfieldList(FIELD_STATUS), iconArray[HL2]);
|
||||
MultiSetAniXY(iconArray[HL2],
|
||||
@ -1222,7 +1229,7 @@ void Select(int i, bool force) {
|
||||
MultiSetZPosition(iconArray[HL2], Z_INV_BRECT+1);
|
||||
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -2124,8 +2131,8 @@ void AddBox(int *pi, int i) {
|
||||
|
||||
break;
|
||||
|
||||
#if defined(USE_3FLAGS) || defined(USE_4FLAGS) || defined(USE_5FLAGS)
|
||||
case FRGROUP:
|
||||
assert((_vm->getFeatures() & GF_USE_3FLAGS) || (_vm->getFeatures() & GF_USE_4FLAGS) || (_vm->getFeatures() & GF_USE_5FLAGS));
|
||||
assert(flagFilm != 0); // Language flags not declared!
|
||||
|
||||
pfilm = (const FILM *)LockMem(flagFilm);
|
||||
@ -2139,7 +2146,7 @@ void AddBox(int *pi, int i) {
|
||||
*pi += 1;
|
||||
|
||||
break;
|
||||
#endif
|
||||
|
||||
case FLIP:
|
||||
pfilm = (const FILM *)LockMem(winPartsf);
|
||||
|
||||
@ -2901,11 +2908,27 @@ void PopUpConf(CONFTYPE type) {
|
||||
SetConfGlobals(&ciSound);
|
||||
break;
|
||||
|
||||
#ifndef JAPAN
|
||||
case SUBT:
|
||||
if (_vm->getFeatures() & GF_USE_3FLAGS) {
|
||||
ciSubtitles.v = 6;
|
||||
ciSubtitles.Box = subtitlesBox3Flags;
|
||||
ciSubtitles.NumBoxes = ARRAYSIZE(subtitlesBox3Flags);
|
||||
} else if (_vm->getFeatures() & GF_USE_4FLAGS) {
|
||||
ciSubtitles.v = 6;
|
||||
ciSubtitles.Box = subtitlesBox4Flags;
|
||||
ciSubtitles.NumBoxes = ARRAYSIZE(subtitlesBox4Flags);
|
||||
} else if (_vm->getFeatures() & GF_USE_5FLAGS) {
|
||||
ciSubtitles.v = 6;
|
||||
ciSubtitles.Box = subtitlesBox4Flags;
|
||||
ciSubtitles.NumBoxes = ARRAYSIZE(subtitlesBox4Flags);
|
||||
} else {
|
||||
ciSubtitles.v = 3;
|
||||
ciSubtitles.Box = subtitlesBox;
|
||||
ciSubtitles.NumBoxes = ARRAYSIZE(subtitlesBox);
|
||||
}
|
||||
|
||||
SetConfGlobals(&ciSubtitles);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case TOPWIN:
|
||||
SetConfGlobals(&ciTopWin);
|
||||
@ -2925,25 +2948,21 @@ void PopUpConf(CONFTYPE type) {
|
||||
|
||||
if (type == SAVE || type == LOAD)
|
||||
Select(0, false);
|
||||
#ifndef JAPAN
|
||||
#if !defined(USE_3FLAGS) || !defined(USE_4FLAGS) || !defined(USE_5FLAGS)
|
||||
else if (type == SUBT) {
|
||||
#ifdef USE_3FLAGS
|
||||
// VERY quick dirty bodges
|
||||
if (language == TXT_FRENCH)
|
||||
Select(0, false);
|
||||
else if (language == TXT_GERMAN)
|
||||
Select(1, false);
|
||||
else
|
||||
Select(2, false);
|
||||
#elif defined(USE_4FLAGS)
|
||||
Select(language-1, false);
|
||||
#else
|
||||
Select(language, false);
|
||||
#endif
|
||||
if (_vm->getFeatures() & GF_USE_3FLAGS) {
|
||||
// VERY quick dirty bodges
|
||||
if (g_language == TXT_FRENCH)
|
||||
Select(0, false);
|
||||
else if (g_language == TXT_GERMAN)
|
||||
Select(1, false);
|
||||
else
|
||||
Select(2, false);
|
||||
} else if (_vm->getFeatures() & GF_USE_4FLAGS) {
|
||||
Select(g_language-1, false);
|
||||
} else if (_vm->getFeatures() & GF_USE_5FLAGS) {
|
||||
Select(g_language, false);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif // JAPAN
|
||||
|
||||
GetCursorXY(&curX, &curY, false);
|
||||
InvCursor(IC_AREA, curX, curY);
|
||||
@ -3096,12 +3115,10 @@ void InventoryProcess(CORO_PARAM, const void *) {
|
||||
KillInventory();
|
||||
PopUpConf(CONTROLS);
|
||||
break;
|
||||
#ifndef JAPAN
|
||||
case OPENSUBT:
|
||||
KillInventory();
|
||||
PopUpConf(SUBT);
|
||||
break;
|
||||
#endif
|
||||
case OPENQUIT:
|
||||
KillInventory();
|
||||
PopUpConf(QUIT);
|
||||
@ -3110,7 +3127,6 @@ void InventoryProcess(CORO_PARAM, const void *) {
|
||||
KillInventory();
|
||||
bRestart = true;
|
||||
break;
|
||||
#if defined(USE_3FLAGS) || defined(USE_4FLAGS) || defined(USE_5FLAGS)
|
||||
case CLANG:
|
||||
if (!LanguageChange())
|
||||
KillInventory();
|
||||
@ -3118,7 +3134,6 @@ void InventoryProcess(CORO_PARAM, const void *) {
|
||||
case RLANG:
|
||||
KillInventory();
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -3342,10 +3357,8 @@ static void SlideMSlider(int x, SSFN fn) {
|
||||
|
||||
case S_END: // End of a drag on the slider
|
||||
AddBoxes(false); // Might change position slightly
|
||||
#ifndef JAPAN
|
||||
if (ino == INV_CONF && cd.Box == subtitlesBox)
|
||||
Select(language, false);
|
||||
#endif
|
||||
Select(g_language, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -3778,8 +3791,8 @@ void ConfAction(int i, bool dbl) {
|
||||
}
|
||||
break;
|
||||
|
||||
#if defined(USE_3FLAGS) || defined(USE_4FLAGS) || defined(USE_5FLAGS)
|
||||
case FRGROUP:
|
||||
assert((_vm->getFeatures() & GF_USE_3FLAGS) || (_vm->getFeatures() & GF_USE_4FLAGS) || (_vm->getFeatures() & GF_USE_5FLAGS));
|
||||
if (dbl) {
|
||||
Select(i, false);
|
||||
LanguageChange();
|
||||
@ -3787,7 +3800,6 @@ void ConfAction(int i, bool dbl) {
|
||||
Select(i, false);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case AAGBUT:
|
||||
case ARSGBUT:
|
||||
|
@ -207,7 +207,7 @@ void KeyboardProcess(CORO_PARAM, const void *) {
|
||||
int sceneOffset = (_vm->getFeatures() & GF_SCNFILES) ? 1 : 0;
|
||||
int sceneNumber = (GetSceneHandle() >> SCNHANDLE_SHIFT) - sceneOffset;
|
||||
#if 0 // FIXME: Disabled this code for now, as it doesn't work as it should (see bug #2078922).
|
||||
if ((language == TXT_GERMAN) &&
|
||||
if ((g_language == TXT_GERMAN) &&
|
||||
((sceneNumber >= 25 && sceneNumber <= 27) || (sceneNumber == 17))) {
|
||||
// Skip to title screen
|
||||
// It seems the German CD version uses scenes 25,26,27,17 for the intro,
|
||||
@ -695,25 +695,8 @@ int TinselEngine::init() {
|
||||
|
||||
// TODO: More stuff from dos_main.c may have to be added here
|
||||
|
||||
// Set language - we'll be clever here and use the ScummVM language setting
|
||||
language = TXT_ENGLISH;
|
||||
switch (getLanguage()) {
|
||||
case Common::FR_FRA:
|
||||
language = TXT_FRENCH;
|
||||
break;
|
||||
case Common::DE_DEU:
|
||||
language = TXT_GERMAN;
|
||||
break;
|
||||
case Common::IT_ITA:
|
||||
language = TXT_ITALIAN;
|
||||
break;
|
||||
case Common::ES_ESP:
|
||||
language = TXT_SPANISH;
|
||||
break;
|
||||
default:
|
||||
language = TXT_ENGLISH;
|
||||
}
|
||||
ChangeLanguage(language);
|
||||
// load in text strings
|
||||
ChangeLanguage(g_language);
|
||||
|
||||
// load in graphics info
|
||||
SetupHandleTable();
|
||||
|
@ -55,7 +55,14 @@ enum TinselGameFeatures {
|
||||
GF_DEMO = 1 << 0,
|
||||
GF_CD = 1 << 1,
|
||||
GF_FLOPPY = 1 << 2,
|
||||
GF_SCNFILES = 1 << 3
|
||||
GF_SCNFILES = 1 << 3,
|
||||
|
||||
// The GF_USE_?FLAGS values specify how many country flags are displayed
|
||||
// in the subtitles options dialog.
|
||||
// None of these defined -> 1 language, in ENGLISH.TXT
|
||||
GF_USE_3FLAGS = 1 << 4, // French, German, Spanish
|
||||
GF_USE_4FLAGS = 1 << 5, // French, German, Spanish, Italian
|
||||
GF_USE_5FLAGS = 1 << 6 // All 5 flags
|
||||
};
|
||||
|
||||
enum TinselEngineVersion {
|
||||
|
Loading…
x
Reference in New Issue
Block a user