mirror of
https://github.com/libretro/scummvm.git
synced 2025-05-13 09:36:21 +00:00
Changed language finding again
svn-id: r25525
This commit is contained in:
parent
bd1a85582c
commit
15f52b96b8
@ -79,6 +79,12 @@ void Draw_v2::printText(void) {
|
||||
if ((_vm->_game->_totTextData == 0) || (_vm->_game->_totTextData->dataPtr == 0))
|
||||
return;
|
||||
|
||||
if (_vm->_global->_languageWanted != _vm->_global->_language) {
|
||||
warning("Your game version doesn't support the requested language, "
|
||||
"using the first one available (%d)", _vm->_global->_language);
|
||||
_vm->_global->_languageWanted = _vm->_global->_language;
|
||||
}
|
||||
|
||||
size = _vm->_game->_totTextData->items[index].size;
|
||||
dataPtr = _vm->_game->_totTextData->dataPtr + _vm->_game->_totTextData->items[index].offset;
|
||||
ptr = dataPtr;
|
||||
@ -652,6 +658,12 @@ void Draw_v2::spriteOperation(int16 operation) {
|
||||
if ((_fontIndex >= 4) || (_fontToSprite[_fontIndex].sprite == -1)) {
|
||||
if (_fonts[_fontIndex]->extraData == 0) {
|
||||
if (((int8) _textToPrint[0]) == -1) {
|
||||
if (_vm->_global->_languageWanted != _vm->_global->_language) {
|
||||
warning("Your game version doesn't support the requested language, "
|
||||
"using the first one available (%d)",
|
||||
_vm->_global->_language);
|
||||
_vm->_global->_languageWanted = _vm->_global->_language;
|
||||
}
|
||||
dataBuf = _vm->_game->_totTextData->dataPtr + _textToPrint[1] + 1;
|
||||
len = *dataBuf++;
|
||||
for (i = 0; i < len; i++) {
|
||||
|
@ -54,6 +54,8 @@ Game::Game(GobEngine *vm) : _vm(vm) {
|
||||
_extHandle = 0;
|
||||
_collisionAreas = 0;
|
||||
_shouldPushColls = 0;
|
||||
|
||||
_foundTotLoc = false;
|
||||
_totTextData = 0;
|
||||
|
||||
// Collisions stack
|
||||
@ -690,28 +692,29 @@ int16 Game::openLocTextFile(char *locTextFile, int language) {
|
||||
}
|
||||
|
||||
char *Game::loadLocTexts(void) {
|
||||
static bool found = false;
|
||||
char locTextFile[20];
|
||||
int16 handle;
|
||||
int i;
|
||||
|
||||
strcpy(locTextFile, _curTotFile);
|
||||
|
||||
handle = openLocTextFile(locTextFile, _vm->_global->_language);
|
||||
if ((handle < 0) && !found) {
|
||||
handle = openLocTextFile(locTextFile, _vm->_global->_languageWanted);
|
||||
if (handle >= 0) {
|
||||
_foundTotLoc = true;
|
||||
_vm->_global->_language = _vm->_global->_languageWanted;
|
||||
}
|
||||
else if (!_foundTotLoc) {
|
||||
for (i = 0; i < 10; i++) {
|
||||
handle = openLocTextFile(locTextFile, i);
|
||||
if (handle >= 0) {
|
||||
warning("Your game version doesn't support the requested language, using the first one available (%d)", i);
|
||||
_vm->_global->_language = i;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
debugC(1, kDebugFileIO, "Using language %d for %s", _vm->_global->_language, _curTotFile);
|
||||
|
||||
if (handle >= 0) {
|
||||
found = true;
|
||||
_vm->_dataio->closeData(handle);
|
||||
return _vm->_dataio->getData(locTextFile);
|
||||
}
|
||||
|
@ -137,6 +137,7 @@ public:
|
||||
Collision *_collisionAreas;
|
||||
Collision *_collStack[5];
|
||||
|
||||
bool _foundTotLoc;
|
||||
TotTextTable *_totTextData;
|
||||
|
||||
char _curTotFile[14];
|
||||
|
@ -141,8 +141,10 @@ void Game_v2::playTot(int16 skipPlay) {
|
||||
if (READ_LE_UINT32(filePtr) == 0) {
|
||||
_totTextData->dataPtr = loadLocTexts();
|
||||
totTextLoc = true;
|
||||
} else
|
||||
} else {
|
||||
_totTextData->dataPtr = (_totFileData + READ_LE_UINT32((char *)_totFileData + 0x30));
|
||||
_vm->_global->_language = _vm->_global->_languageWanted;
|
||||
}
|
||||
|
||||
_totTextData->items = 0;
|
||||
if (_totTextData->dataPtr != 0) {
|
||||
|
@ -54,6 +54,7 @@ Global::Global(GobEngine *vm) : _vm(vm) {
|
||||
/* Language */
|
||||
_disableLangCfg = 0x8000;
|
||||
_language = 0x8000;
|
||||
_languageWanted = 0x8000;
|
||||
|
||||
/* Timer variables */
|
||||
_startTime = 0;
|
||||
|
@ -87,6 +87,7 @@ public:
|
||||
|
||||
uint16 _disableLangCfg;
|
||||
uint16 _language;
|
||||
uint16 _languageWanted;
|
||||
|
||||
// Timer variables
|
||||
int32 _startTime;
|
||||
|
@ -694,6 +694,7 @@ int GobEngine::init() {
|
||||
_global->_language = 2;
|
||||
break;
|
||||
}
|
||||
_global->_languageWanted = _global->_language;
|
||||
|
||||
// FIXME: This is the ugly way of reducing redraw overhead. It works
|
||||
// well for 320x200 but it's unclear how well it will work for
|
||||
|
Loading…
x
Reference in New Issue
Block a user