Skip to content

Commit

Permalink
HOPKINS: Replace cascades of if by switches for language checks
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke committed Nov 9, 2013
1 parent 6a1b3f4 commit 582a681
Show file tree
Hide file tree
Showing 8 changed files with 140 additions and 65 deletions.
33 changes: 22 additions & 11 deletions engines/hopkins/computer.cpp
Expand Up @@ -349,15 +349,21 @@ void ComputerManager::loadMenu() {
char *ptr;
if (_vm->_fileIO->fileExists("COMPUTAN.TXT")) {
ptr = (char *)_vm->_fileIO->loadFile("COMPUTAN.TXT");
} else if (_vm->_globals->_language == LANG_FR) {
ptr = (char *)_vm->_globals->allocMemory(sizeof(_frenchText));
strcpy(ptr, _frenchText);
} else if (_vm->_globals->_language == LANG_SP) {
ptr = (char *)_vm->_globals->allocMemory(sizeof(_spanishText));
strcpy(ptr, _spanishText);
} else {
ptr = (char *)_vm->_globals->allocMemory(sizeof(_englishText));
strcpy(ptr, _englishText);
switch (_vm->_globals->_language) {
case LANG_FR:
ptr = (char *)_vm->_globals->allocMemory(sizeof(_frenchText));
strcpy(ptr, _frenchText);
break;
case LANG_SP:
ptr = (char *)_vm->_globals->allocMemory(sizeof(_spanishText));
strcpy(ptr, _spanishText);
break;
default:
ptr = (char *)_vm->_globals->allocMemory(sizeof(_englishText));
strcpy(ptr, _englishText);
break;
}
}

char *tmpPtr = ptr;
Expand Down Expand Up @@ -479,12 +485,17 @@ void ComputerManager::readText(int idx) {
_vm->_events->_escKeyFl = false;

Common::String filename;
if (_vm->_globals->_language == LANG_EN)
switch (_vm->_globals->_language) {
case LANG_EN:
filename = "THOPKAN.TXT";
else if (_vm->_globals->_language == LANG_FR)
break;
case LANG_FR:
filename = "THOPK.TXT";
else if (_vm->_globals->_language == LANG_SP)
break;
case LANG_SP:
filename = "THOPKES.TXT";
break;
}

byte *ptr = _vm->_fileIO->loadFile(filename);
uint16 fileSize = _vm->_fileIO->fileSize(filename);
Expand Down
11 changes: 8 additions & 3 deletions engines/hopkins/dialogs.cpp
Expand Up @@ -84,12 +84,17 @@ void DialogsManager::showOptionsDialog() {
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
filename = "OPTION.SPR";
else {
if (_vm->_globals->_language == LANG_FR)
switch (_vm->_globals->_language) {
case LANG_FR:
filename = "OPTIFR.SPR";
else if (_vm->_globals->_language == LANG_EN)
break;
case LANG_EN:
filename = "OPTIAN.SPR";
else if (_vm->_globals->_language == LANG_SP)
break;
case LANG_SP:
filename = "OPTIES.SPR";
break;
}
}

_vm->_globals->_optionDialogSpr = _vm->_fileIO->loadFile(filename);
Expand Down
2 changes: 1 addition & 1 deletion engines/hopkins/globals.cpp
Expand Up @@ -148,7 +148,7 @@ void Globals::setConfig() {
_language = LANG_SP;
break;
default:
warning("Unknown language in internal language mapping");
error("Hopkins - SetConfig(): Unknown language in internal language mapping");
break;
}
// End of CHECKME
Expand Down
33 changes: 24 additions & 9 deletions engines/hopkins/hopkins.cpp
Expand Up @@ -210,12 +210,17 @@ bool HopkinsEngine::runWin95Demo() {
if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS)
_graphicsMan->loadImage("fond");
else {
if (_globals->_language == LANG_FR)
switch (_globals->_language) {
case LANG_FR:
_graphicsMan->loadImage("fondfr");
else if (_globals->_language == LANG_EN)
break;
case LANG_EN:
_graphicsMan->loadImage("fondan");
else if (_globals->_language == LANG_SP)
break;
case LANG_SP:
_graphicsMan->loadImage("fondes");
break;
}
}
_graphicsMan->fadeInLong();
_events->delay(500);
Expand Down Expand Up @@ -521,12 +526,17 @@ bool HopkinsEngine::runLinuxDemo() {
if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS)
_graphicsMan->loadImage("fond");
else {
if (_globals->_language == LANG_FR)
switch (_globals->_language) {
case LANG_FR:
_graphicsMan->loadImage("fondfr");
else if (_globals->_language == LANG_EN)
break;
case LANG_EN:
_graphicsMan->loadImage("fondan");
else if (_globals->_language == LANG_SP)
break;
case LANG_SP:
_graphicsMan->loadImage("fondes");
break;
}
}
_graphicsMan->fadeInLong();
_events->delay(500);
Expand Down Expand Up @@ -867,12 +877,17 @@ bool HopkinsEngine::runFull() {
if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS)
_graphicsMan->loadImage("fond");
else {
if (_globals->_language == LANG_FR)
switch (_globals->_language) {
case LANG_FR:
_graphicsMan->loadImage("fondfr");
else if (_globals->_language == LANG_EN)
break;
case LANG_EN:
_graphicsMan->loadImage("fondan");
else if (_globals->_language == LANG_SP)
break;
case LANG_SP:
_graphicsMan->loadImage("fondes");
break;
}
}
_graphicsMan->fadeInLong();
_events->delay(500);
Expand Down
40 changes: 26 additions & 14 deletions engines/hopkins/menu.cpp
Expand Up @@ -69,25 +69,37 @@ int MenuManager::menu() {

if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
_vm->_graphicsMan->loadImage("MENU");
else if (_vm->_globals->_language == LANG_EN)
_vm->_graphicsMan->loadImage("MENUAN");
else if (_vm->_globals->_language == LANG_FR)
_vm->_graphicsMan->loadImage("MENUFR");
else if (_vm->_globals->_language == LANG_SP)
_vm->_graphicsMan->loadImage("MENUES");
else {
switch (_vm->_globals->_language) {
case LANG_EN:
_vm->_graphicsMan->loadImage("MENUAN");
break;
case LANG_FR:
_vm->_graphicsMan->loadImage("MENUFR");
break;
case LANG_SP:
_vm->_graphicsMan->loadImage("MENUES");
break;
}
}

_vm->_graphicsMan->fadeInLong();

if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
spriteData = _vm->_objectsMan->loadSprite("MENU.SPR");
else if (_vm->_globals->_language == LANG_EN)
spriteData = _vm->_objectsMan->loadSprite("MENUAN.SPR");
else if (_vm->_globals->_language == LANG_FR)
spriteData = _vm->_objectsMan->loadSprite("MENUFR.SPR");
else if (_vm->_globals->_language == LANG_SP)
spriteData = _vm->_objectsMan->loadSprite("MENUES.SPR");
else
error("Hopkins::MenuManager - Unknown version of the game.");
else {
switch (_vm->_globals->_language) {
case LANG_EN:
spriteData = _vm->_objectsMan->loadSprite("MENUAN.SPR");
break;
case LANG_FR:
spriteData = _vm->_objectsMan->loadSprite("MENUFR.SPR");
break;
case LANG_SP:
spriteData = _vm->_objectsMan->loadSprite("MENUES.SPR");
break;
}
}

_vm->_events->mouseOn();
_vm->_events->changeMouseCursor(0);
Expand Down
18 changes: 12 additions & 6 deletions engines/hopkins/script.cpp
Expand Up @@ -148,12 +148,18 @@ int ScriptManager::handleOpcode(const byte *dataP) {
_vm->_soundMan->mixVoice(635, 4, displayedTxtFl);
} else {
int textPosX = READ_LE_INT16(dataP + 9);
if (_vm->_globals->_language == LANG_FR && !_vm->_soundMan->_textOffFl)
_vm->_fontMan->initTextBuffers(9, mesgId, "OBJET1.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
else if (_vm->_globals->_language == LANG_EN && !_vm->_soundMan->_textOffFl)
_vm->_fontMan->initTextBuffers(9, mesgId, "OBJETAN.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
else if (_vm->_globals->_language == LANG_SP && !_vm->_soundMan->_textOffFl) {
_vm->_fontMan->initTextBuffers(9, mesgId, "OBJETES.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
if (!_vm->_soundMan->_textOffFl) {
switch (_vm->_globals->_language) {
case LANG_FR:
_vm->_fontMan->initTextBuffers(9, mesgId, "OBJET1.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
break;
case LANG_EN:
_vm->_fontMan->initTextBuffers(9, mesgId, "OBJETAN.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
break;
case LANG_SP:
_vm->_fontMan->initTextBuffers(9, mesgId, "OBJETES.TXT", 2 * textPosX, 60, 6, dataP[7], 253);
break;
}
}

bool displayedTxtFl = false;
Expand Down
57 changes: 39 additions & 18 deletions engines/hopkins/sound.cpp
Expand Up @@ -520,12 +520,19 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
filename = "ENG_VOI.RES";
// Win95 and Linux versions uses another set of names
else if (_vm->_globals->_language == LANG_FR)
filename = "RES_VFR.RES";
else if (_vm->_globals->_language == LANG_EN)
filename = "RES_VAN.RES";
else if (_vm->_globals->_language == LANG_SP)
filename = "RES_VES.RES";
else {
switch (_vm->_globals->_language) {
case LANG_FR:
filename = "RES_VFR.RES";
break;
case LANG_EN:
filename = "RES_VAN.RES";
break;
case LANG_SP:
filename = "RES_VES.RES";
break;
}
}

catPos = _vm->_fileIO->_catalogPos;
catLen = _vm->_fileIO->_catalogSize;
Expand All @@ -535,12 +542,19 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
filename = "ENG_VOI.RES";
// Win95 and Linux versions uses another set of names
else if (_vm->_globals->_language == LANG_FR)
filename = "RES_VFR.RES";
else if (_vm->_globals->_language == LANG_EN)
filename = "RES_VAN.RES";
else if (_vm->_globals->_language == LANG_SP)
filename = "RES_VES.RES";
else {
switch (_vm->_globals->_language) {
case LANG_FR:
filename = "RES_VFR.RES";
break;
case LANG_EN:
filename = "RES_VAN.RES";
break;
case LANG_SP:
filename = "RES_VES.RES";
break;
}
}

catPos = _vm->_fileIO->_catalogPos;
catLen = _vm->_fileIO->_catalogSize;
Expand All @@ -550,12 +564,19 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
filename = "ENG_VOI.RES";
// Win95 and Linux versions uses another set of names
else if (_vm->_globals->_language == LANG_FR)
filename = "RES_VFR.RES";
else if (_vm->_globals->_language == LANG_EN)
filename = "RES_VAN.RES";
else if (_vm->_globals->_language == LANG_SP)
filename = "RES_VES.RES";
else {
switch (_vm->_globals->_language) {
case LANG_FR:
filename = "RES_VFR.RES";
break;
case LANG_EN:
filename = "RES_VAN.RES";
break;
case LANG_SP:
filename = "RES_VES.RES";
break;
}
}

catPos = _vm->_fileIO->_catalogPos;
catLen = _vm->_fileIO->_catalogSize;
Expand Down
11 changes: 8 additions & 3 deletions engines/hopkins/talk.cpp
Expand Up @@ -68,12 +68,17 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
getStringFromBuffer(40, spriteFilename, (const char *)_characterBuffer);
getStringFromBuffer(0, _questionsFilename, (const char *)_characterBuffer);
getStringFromBuffer(20, _answersFilename, (const char *)_characterBuffer);
if (_vm->_globals->_language == LANG_FR) {

switch (_vm->_globals->_language) {
case LANG_FR:
_answersFilename = _questionsFilename = "RUE.TXT";
} else if (_vm->_globals->_language == LANG_EN) {
break;
case LANG_EN:
_answersFilename = _questionsFilename = "RUEAN.TXT";
} else if (_vm->_globals->_language == LANG_SP) {
break;
case LANG_SP:
_answersFilename = _questionsFilename = "RUEES.TXT";
break;
}
_dialogueMesgId1 = READ_LE_INT16((uint16 *)_characterBuffer + 40);
_paletteBufferIdx = 20 * READ_LE_INT16((uint16 *)_characterBuffer + 42) + 110;
Expand Down

0 comments on commit 582a681

Please sign in to comment.