diff options
author | Strangerke | 2013-01-07 11:07:33 -0800 |
---|---|---|
committer | Strangerke | 2013-01-07 11:07:33 -0800 |
commit | 823f99b19f67724128d45ada93a9c23b47fa93ac (patch) | |
tree | c20b07811fd8af5d5ecd7e902cd3cfd39be4771c | |
parent | 8c611d91e77883a66e72ba7740890157e2e5123c (diff) | |
parent | 416463c3dab090b888bc13cecf8262470872e411 (diff) | |
download | scummvm-rg350-823f99b19f67724128d45ada93a9c23b47fa93ac.tar.gz scummvm-rg350-823f99b19f67724128d45ada93a9c23b47fa93ac.tar.bz2 scummvm-rg350-823f99b19f67724128d45ada93a9c23b47fa93ac.zip |
Merge pull request #6 from bluegr/hopkins
Hopkins: More cleanup commits
-rw-r--r-- | engines/hopkins/anim.cpp | 22 | ||||
-rw-r--r-- | engines/hopkins/computer.cpp | 22 | ||||
-rw-r--r-- | engines/hopkins/dialogs.cpp | 31 | ||||
-rw-r--r-- | engines/hopkins/files.cpp | 64 | ||||
-rw-r--r-- | engines/hopkins/files.h | 2 | ||||
-rw-r--r-- | engines/hopkins/font.cpp | 4 | ||||
-rw-r--r-- | engines/hopkins/globals.cpp | 33 | ||||
-rw-r--r-- | engines/hopkins/globals.h | 21 | ||||
-rw-r--r-- | engines/hopkins/graphics.cpp | 32 | ||||
-rw-r--r-- | engines/hopkins/graphics.h | 6 | ||||
-rw-r--r-- | engines/hopkins/hopkins.cpp | 1710 | ||||
-rw-r--r-- | engines/hopkins/lines.cpp | 2 | ||||
-rw-r--r-- | engines/hopkins/menu.cpp | 8 | ||||
-rw-r--r-- | engines/hopkins/objects.cpp | 65 | ||||
-rw-r--r-- | engines/hopkins/objects.h | 5 | ||||
-rw-r--r-- | engines/hopkins/script.cpp | 36 | ||||
-rw-r--r-- | engines/hopkins/sound.cpp | 28 | ||||
-rw-r--r-- | engines/hopkins/talk.cpp | 24 |
18 files changed, 833 insertions, 1282 deletions
diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp index 302c2f7913..539586c433 100644 --- a/engines/hopkins/anim.cpp +++ b/engines/hopkins/anim.cpp @@ -58,7 +58,13 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui byte *screenP = _vm->_graphicsManager._vesaScreen; byte *ptr = _vm->_globals.allocMemory(20); - _vm->_fileManager.constructFilename(_vm->_globals.HOPANM, filename); + // The Windows 95 demo only contains the interlaced version of the BOMBE1 and BOMBE2 videos + if (_vm->getPlatform() == Common::kPlatformWindows && _vm->getIsDemo() && filename == "BOMBE1A.ANM") + _vm->_fileManager.constructFilename("ANM", "BOMBE1.ANM"); + else if (_vm->getPlatform() == Common::kPlatformWindows && _vm->getIsDemo() && filename == "BOMBE2A.ANM") + _vm->_fileManager.constructFilename("ANM", "BOMBE2.ANM"); + else + _vm->_fileManager.constructFilename("ANM", filename); if (!f.open(_vm->_globals._curFilename)) error("File not found - %s", _vm->_globals._curFilename.c_str()); @@ -233,7 +239,7 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 a2, uint screenP = _vm->_graphicsManager._vesaScreen; ptr = _vm->_globals.allocMemory(20); - _vm->_fileManager.constructFilename(_vm->_globals.HOPANM, filename); + _vm->_fileManager.constructFilename("ANM", filename); if (!f.open(_vm->_globals._curFilename)) error("Error opening file - %s", _vm->_globals._curFilename.c_str()); @@ -470,7 +476,7 @@ void AnimationManager::loadAnim(const Common::String &animName) { clearAnim(); Common::String filename = animName + ".ANI"; - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, filename); + _vm->_fileManager.constructFilename("ANIM", filename); Common::File f; if (!f.open(_vm->_globals._curFilename)) @@ -495,7 +501,7 @@ void AnimationManager::loadAnim(const Common::String &animName) { for (int idx = 0; idx <= 5; ++idx) { if (files[idx][0]) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, files[idx]); + _vm->_fileManager.constructFilename("ANIM", files[idx]); if (!f.exists(_vm->_globals._curFilename)) error("File not found"); @@ -539,7 +545,7 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) { byte *v13; byte *v19; int result = 0; - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, filename); + _vm->_fileManager.constructFilename("ANIM", filename); _vm->_globals.Bank[idx].field1C = _vm->_fileManager.fileSize(_vm->_globals._curFilename); _vm->_globals.Bank[idx]._loadedFl = true; _vm->_globals.Bank[idx]._filename = filename; @@ -581,7 +587,7 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) { } while (ch != '.'); ofsFilename += ".OFS"; - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, ofsFilename); + _vm->_fileManager.constructFilename("ANIM", ofsFilename); Common::File f; if (f.exists(_vm->_globals._curFilename)) { v19 = _vm->_fileManager.loadFile(_vm->_globals._curFilename); @@ -727,7 +733,7 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui } screenP = _vm->_graphicsManager._vesaScreen; v10 = _vm->_globals.allocMemory(22); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSEQ, file); + _vm->_fileManager.constructFilename("SEQ", file); if (!f.open(_vm->_globals._curFilename)) error("Error opening file - %s", _vm->_globals._curFilename.c_str()); @@ -883,7 +889,7 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u _vm->_eventsManager._mouseFl = false; screenP = _vm->_graphicsManager._vesaScreen; v11 = _vm->_globals.allocMemory(22); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSEQ, file); + _vm->_fileManager.constructFilename("SEQ", file); if (!f.open(_vm->_globals._curFilename)) error("File not found - %s", _vm->_globals._curFilename.c_str()); diff --git a/engines/hopkins/computer.cpp b/engines/hopkins/computer.cpp index 3df0455536..bc67ccf23f 100644 --- a/engines/hopkins/computer.cpp +++ b/engines/hopkins/computer.cpp @@ -78,7 +78,7 @@ void ComputerManager::setTextMode() { //SET_MODE(SCREEN_WIDTH, SCREEN_HEIGHT); _vm->_graphicsManager._lineNbr = SCREEN_WIDTH; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "STFONT.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "STFONT.SPR"); _vm->_globals.police = _vm->_globals.freeMemory(_vm->_globals.police); _vm->_globals.police = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.police_l = 8; @@ -328,8 +328,8 @@ static char _frenchText[] = */ void ComputerManager::loadMenu() { char *ptr; - if (!_vm->_fileManager.fileExists(_vm->_globals.HOPLINK, "COMPUTAN.TXT")) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, "COMPUTAN.TXT"); + if (_vm->_fileManager.fileExists("LINK", "COMPUTAN.TXT")) { + _vm->_fileManager.constructFilename("LINK", "COMPUTAN.TXT"); ptr = (char *)_vm->_fileManager.loadFile(_vm->_globals._curFilename); } else if (_vm->_globals._language == LANG_FR) { ptr = (char *)_vm->_globals.allocMemory(sizeof(_frenchText)); @@ -445,7 +445,7 @@ void ComputerManager::outText2(const Common::String &msg) { */ void ComputerManager::restoreFBIRoom() { _vm->_globals.police = _vm->_globals.freeMemory(_vm->_globals.police); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "FONTE3.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "FONTE3.SPR"); _vm->_globals.police = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.police_l = 12; @@ -460,11 +460,11 @@ void ComputerManager::readText(int idx) { _vm->_eventsManager._escKeyFl = false; if (_vm->_globals._language == LANG_EN) - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, "THOPKAN.TXT"); + _vm->_fileManager.constructFilename("LINK", "THOPKAN.TXT"); else if (_vm->_globals._language == LANG_FR) - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, "THOPK.TXT"); + _vm->_fileManager.constructFilename("LINK", "THOPK.TXT"); else if (_vm->_globals._language == LANG_SP) - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, "THOPKES.TXT"); + _vm->_fileManager.constructFilename("LINK", "THOPKES.TXT"); byte *ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename); uint16 fileSize = _vm->_fileManager.fileSize(_vm->_globals._curFilename); @@ -528,7 +528,7 @@ void ComputerManager::displayGamesSubMenu() { _vm->_soundManager.loadSample(1, "SOUND37.WAV"); _vm->_soundManager.loadSample(2, "SOUND38.WAV"); _vm->_soundManager.loadSample(3, "SOUND39.WAV"); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "CASSE.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "CASSE.SPR"); _breakoutSpr = _vm->_fileManager.loadFile(_vm->_globals._curFilename); loadHiscore(); setModeVGA256(); @@ -615,7 +615,7 @@ void ComputerManager::newLevel() { while (!_vm->shouldQuit()) { file = Common::String::format("TAB%d.TAB", _breakoutLevelNbr); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, file); + _vm->_fileManager.constructFilename("SYSTEM", file); if (f.open(_vm->_globals._curFilename)) break; @@ -789,7 +789,7 @@ int ComputerManager::displayHiscores() { _vm->_graphicsManager.RESET_SEGMENT_VESA(); loadHiscore(); _vm->_graphicsManager.loadVgaImage("HISCORE.PCX"); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "ALPHA.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "ALPHA.SPR"); byte *ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_graphicsManager.SETCOLOR3(252, 100, 100, 100); _vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100); @@ -841,7 +841,7 @@ void ComputerManager::getScoreName() { _vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100); _vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100); _vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "ALPHA.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "ALPHA.SPR"); byte *ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_graphicsManager.fadeInBreakout(); for (int strPos = 0; strPos <= 4; strPos++) { diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp index 77258a8274..42abaa8ad9 100644 --- a/engines/hopkins/dialogs.cpp +++ b/engines/hopkins/dialogs.cpp @@ -60,11 +60,11 @@ void DialogsManager::showOptionsDialog() { _vm->_eventsManager.changeMouseCursor(0); _vm->_eventsManager.VBL(); if (_vm->_globals._language == LANG_FR) - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "OPTIFR.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "OPTIFR.SPR"); else if (_vm->_globals._language == LANG_EN) - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "OPTIAN.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "OPTIAN.SPR"); else if (_vm->_globals._language == LANG_SP) - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "OPTIES.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "OPTIES.SPR"); _vm->_globals.OPTION_SPR = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals._optionDialogFl = true; @@ -229,8 +229,6 @@ void DialogsManager::showOptionsDialog() { // Values are blocked, thus handling the zone is useless //if (mousePos.x >= _vm->_graphicsManager.ofscroll + 348 && mousePos.y > 248 && mousePos.x <= _vm->_graphicsManager.ofscroll + 394 && mousePos.y <= 273) // _vm->_globals._speed = 2; - //if (mousePos.x >= _vm->_graphicsManager.ofscroll + 300 && mousePos.y > 221 && mousePos.x <= _vm->_graphicsManager.ofscroll + 358 && mousePos.y <= 246) - // _vm->_globals.SVGA = 2; if (mousePos.x < _vm->_graphicsManager._scrollOffset + 165 || mousePos.x > _vm->_graphicsManager._scrollOffset + 496 || (uint)(mousePos.y - 107) > 211) doneFlag = true; @@ -253,12 +251,7 @@ void DialogsManager::showOptionsDialog() { _vm->_globals._menuSoundOff = !_vm->_soundManager._soundOffFl ? 7 : 8; _vm->_globals._menuMusicOff = !_vm->_soundManager._musicOffFl ? 7 : 8; - if (_vm->_globals.SVGA == 1) - _vm->_globals._menuDisplayType = 10; - else if (_vm->_globals.SVGA == 2) - _vm->_globals._menuDisplayType = 9; - else if (_vm->_globals.SVGA == 3) - _vm->_globals._menuDisplayType = 11; + _vm->_globals._menuDisplayType = 9; if (_vm->_graphicsManager._scrollSpeed == 1) _vm->_globals._menuScrollSpeed = 12; @@ -320,13 +313,13 @@ LABEL_7: switch (_vm->_globals._language) { case LANG_EN: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "INVENTAN.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "INVENTAN.SPR"); break; case LANG_FR: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "INVENTFR.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "INVENTFR.SPR"); break; case LANG_SP: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "INVENTES.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "INVENTES.SPR"); break; } @@ -339,7 +332,7 @@ LABEL_7: _vm->_fileManager.readStream(f, _vm->_dialogsManager._inventWin1, filesize); f.close(); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "INVENT2.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "INVENT2.SPR"); _inventBuf2 = _vm->_fileManager.loadFile(_vm->_globals._curFilename); int v19 = _inventX = _vm->_graphicsManager._scrollOffset + 152; @@ -618,18 +611,18 @@ void DialogsManager::showSaveLoad(int a1) { switch (_vm->_globals._language) { case LANG_EN: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "SAVEAN.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "SAVEAN.SPR"); break; case LANG_FR: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "SAVEFR.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "SAVEFR.SPR"); break; case LANG_SP: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "SAVEES.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "SAVEES.SPR"); break; } _vm->_objectsManager.SL_SPR = _vm->_objectsManager.loadSprite(_vm->_globals._curFilename); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "SAVE2.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "SAVE2.SPR"); _vm->_objectsManager.SL_SPR2 = _vm->_objectsManager.loadSprite(_vm->_globals._curFilename); _vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_objectsManager.SL_SPR, _vm->_eventsManager._startPos.x + 483, 360, 0); diff --git a/engines/hopkins/files.cpp b/engines/hopkins/files.cpp index f0238205fd..0ff2668d07 100644 --- a/engines/hopkins/files.cpp +++ b/engines/hopkins/files.cpp @@ -72,8 +72,8 @@ void FileManager::initCensorship() { _vm->_globals._censorshipFl = false; // If file doesn't exist, fallback to uncensored - if (!fileExists(_vm->_globals.HOPSYSTEM, "BLOOD.DAT")) { - constructFilename(_vm->_globals.HOPSYSTEM, "BLOOD.DAT"); + if (fileExists("SYSTEM", "BLOOD.DAT")) { + constructFilename("SYSTEM", "BLOOD.DAT"); char *data = (char *)loadFile(_vm->_globals._curFilename); if ((data[6] == 'u' && data[7] == 'k') || (data[6] == 'U' && data[7] == 'K')) @@ -97,24 +97,8 @@ void FileManager::constructFilename(const Common::String &folder, const Common:: // check for animations that don't exist in the ANM folder, but rather in special // sub-folders depending on the physical screen resolution being used. - if (folder == _vm->_globals.HOPANM) { - switch (_vm->_globals.SVGA) { - case 1: - if (fileExists(folderToUse, file)) - folderToUse = _vm->_globals.HOPTSVGA; - break; - case 2: - if (fileExists(folderToUse, file)) - folderToUse = _vm->_globals.HOPSVGA; - break; - case 3: - if (fileExists(folderToUse, file)) - folderToUse = _vm->_globals.HOPVGA; - break; - default: - break; - } - } + if (folder == "ANM" && fileExists("SVGA", file)) + folderToUse = "SVGA"; _vm->_globals._curFilename = Common::String::format("%s/%s", folderToUse.c_str(), file.c_str()); } @@ -122,9 +106,8 @@ void FileManager::constructFilename(const Common::String &folder, const Common:: /** * Construct Linux filename */ -Common::String FileManager::constructLinuxFilename(const Common::String &file) { +void FileManager::constructLinuxFilename(const Common::String &file) { _vm->_globals._curFilename = file; - return file; } /** @@ -134,8 +117,7 @@ bool FileManager::fileExists(const Common::String &folder, const Common::String Common::String filename = folder.empty() ? file : Common::String::format("%s/%s", folder.c_str(), file.c_str()); - Common::File f; - return !f.exists(filename); + return Common::File::exists(filename); } /** @@ -150,52 +132,52 @@ byte *FileManager::searchCat(const Common::String &file, int a2) { switch (a2) { case 1: - constructFilename(_vm->_globals.HOPLINK, "RES_INI.CAT"); + constructFilename("LINK", "RES_INI.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; ptr = loadFile(_vm->_globals._curFilename); - constructFilename(_vm->_globals.HOPLINK, "RES_INI.RES"); + constructFilename("LINK", "RES_INI.RES"); break; case 2: - constructFilename(_vm->_globals.HOPLINK, "RES_REP.CAT"); + constructFilename("LINK", "RES_REP.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; ptr = loadFile(_vm->_globals._curFilename); - constructFilename(_vm->_globals.HOPLINK, "RES_REP.RES"); + constructFilename("LINK", "RES_REP.RES"); break; case 3: - constructFilename(_vm->_globals.HOPLINK, "RES_LIN.CAT"); + constructFilename("LINK", "RES_LIN.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; ptr = loadFile(_vm->_globals._curFilename); - constructFilename(_vm->_globals.HOPLINK, "RES_LIN.RES"); + constructFilename("LINK", "RES_LIN.RES"); break; case 4: - constructFilename(_vm->_globals.HOPANIM, "RES_ANI.CAT"); + constructFilename("ANIM", "RES_ANI.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; ptr = loadFile(_vm->_globals._curFilename); - constructFilename(_vm->_globals.HOPANIM, "RES_ANI.RES"); + constructFilename("ANIM", "RES_ANI.RES"); break; case 5: - constructFilename(_vm->_globals.HOPANIM, "RES_PER.CAT"); + constructFilename("ANIM", "RES_PER.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; ptr = loadFile(_vm->_globals._curFilename); - constructFilename(_vm->_globals.HOPANIM, "RES_PER.RES"); + constructFilename("ANIM", "RES_PER.RES"); break; case 6: - constructFilename(_vm->_globals.HOPIMAGE, "PIC.CAT"); + constructFilename("BUFFER", "PIC.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; @@ -203,7 +185,7 @@ byte *FileManager::searchCat(const Common::String &file, int a2) { break; case 7: - constructFilename(_vm->_globals.HOPANIM, "RES_SAN.CAT"); + constructFilename("ANIM", "RES_SAN.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; @@ -211,7 +193,7 @@ byte *FileManager::searchCat(const Common::String &file, int a2) { break; case 8: - constructFilename(_vm->_globals.HOPLINK, "RES_SLI.CAT"); + constructFilename("LINK", "RES_SLI.CAT"); if (!f.exists(_vm->_globals._curFilename)) return g_PTRNUL; @@ -220,18 +202,18 @@ byte *FileManager::searchCat(const Common::String &file, int a2) { case 9: if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "ENG_VOI.RES"); + _vm->_fileManager.constructFilename("VOICE", "ENG_VOI.RES"); // Win95 and Linux versions uses another set of names else { switch (_vm->_globals._language) { case LANG_EN: - constructFilename(_vm->_globals.HOPLINK, "RES_VAN.CAT"); + constructFilename("LINK", "RES_VAN.CAT"); break; case LANG_FR: - constructFilename(_vm->_globals.HOPLINK, "RES_VFR.CAT"); + constructFilename("LINK", "RES_VFR.CAT"); break; case LANG_SP: - constructFilename(_vm->_globals.HOPLINK, "RES_VES.CAT"); + constructFilename("LINK", "RES_VES.CAT"); break; } } diff --git a/engines/hopkins/files.h b/engines/hopkins/files.h index 427d61e183..b2001e2a0c 100644 --- a/engines/hopkins/files.h +++ b/engines/hopkins/files.h @@ -46,7 +46,7 @@ public: void constructFilename(const Common::String &folder, const Common::String &file); byte *searchCat(const Common::String &file, int a2); - Common::String constructLinuxFilename(const Common::String &file); + void constructLinuxFilename(const Common::String &file); uint32 fileSize(const Common::String &filename); }; diff --git a/engines/hopkins/font.cpp b/engines/hopkins/font.cpp index 7d98742be3..da81b7bf03 100644 --- a/engines/hopkins/font.cpp +++ b/engines/hopkins/font.cpp @@ -165,7 +165,7 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in _textSortArray[v62] = 0; _text[idx]._textLoadedFl = true; - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, filename); + _vm->_fileManager.constructFilename("LINK", filename); file = _vm->_globals._curFilename; if (strncmp(file.c_str(), _oldName.c_str(), strlen(file.c_str())) != 0) { @@ -196,10 +196,8 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in Common::fill(&_tempText[0], &_tempText[2058], 0); f.read(_tempText, 2048); f.close(); - _vm->_globals.texte_long = 2048; } else { v69 = 100; - _vm->_globals.texte_long = 100; v9 = _vm->_globals.allocMemory(110); Common::fill(&v9[0], &v9[110], 0); diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp index 7d1786a0fd..1fdcccfd6a 100644 --- a/engines/hopkins/globals.cpp +++ b/engines/hopkins/globals.cpp @@ -115,7 +115,6 @@ Globals::Globals() { // Initialise fields _language = LANG_EN; - SVGA = 2; _internetFl = true; PUBEXIT = false; @@ -126,7 +125,6 @@ Globals::Globals() { _lastDirection = 0; police_l = police_h = 0; TETE = NULL; - texte_long = 0; _curObjectIndex = 0; NUM_FICHIER_OBJ = 0; nbrligne = 0; @@ -136,19 +134,16 @@ Globals::Globals() { _helicopterFl = false; _catalogPos = 0; _catalogSize = 0; - _newObjectFl = false; iRegul = 0; _exitId = 0; PLANX = PLANY = 0; PLANI = 0; PERSO = 0; _screenId = 0; - NOSPRECRAN = false; _prevScreenId = 0; - Max_Ligne_Long = 0; + _maxLineLength = 0; Max_Perso_Y = 0; Max_Propre = 0; - fmusic = 0; NBBLOC = 0; _menuScrollType = 0; _menuScrollSpeed = 0; @@ -187,7 +182,6 @@ Globals::Globals() { BUF_ZONE = NULL; for (int idx = 0; idx < 6; ++idx) CACHE_BANQUE[idx] = NULL; - texte_tmp = NULL; SPRITE_ECRAN = NULL; _saveData = NULL; BUFFERTAPE = NULL; @@ -242,7 +236,6 @@ Globals::~Globals() { freeMemory(BUF_ZONE); for (int idx = 0; idx < 6; ++idx) CACHE_BANQUE[idx] = freeMemory(CACHE_BANQUE[idx]); - freeMemory(texte_tmp); freeMemory(SPRITE_ECRAN); freeMemory((byte *)_saveData); freeMemory(BUFFERTAPE); @@ -266,20 +259,6 @@ void Globals::setParent(HopkinsEngine *vm) { } void Globals::setConfig() { - HOPIMAGE = "BUFFER"; - HOPANIM = "ANIM"; - HOPLINK = "LINK"; - HOPSAVE = "SAVE"; - HOPSOUND = "SOUND"; - HOPMUSIC = "MUSIC"; - HOPVOICE = "VOICE"; - HOPANM = "ANM"; - HOPTSVGA = "TSVGA"; - HOPSVGA = "SVGA"; - HOPVGA = "VGA"; - HOPSEQ = "SEQ"; - HOPSYSTEM = "SYSTEM"; - // CHECKME: Should be in Globals() but it doesn't work // The Polish version is a translation of the English version. The filenames are the same. switch (_vm->getLanguage()) { @@ -327,8 +306,6 @@ void Globals::clearAll() { nbrligne = 80; INIT_ANIM(); - texte_tmp = g_PTRNUL; - texte_long = 0; police = g_PTRNUL; police_h = 0; police_l = 0; @@ -377,8 +354,6 @@ void Globals::clearAll() { CarreZone[idx].field0 = 0; } - texte_long = 0; - texte_tmp = g_PTRNUL; BUFFERTAPE = allocMemory(85000); _saveData = (Sauvegarde *)malloc(sizeof(Sauvegarde)); @@ -458,7 +433,7 @@ void Globals::CLEAR_VBOB() { // Load Object void Globals::loadObjects() { - _vm->_fileManager.constructFilename(HOPSYSTEM, "OBJET.DAT"); + _vm->_fileManager.constructFilename("SYSTEM", "OBJET.DAT"); byte *data = _vm->_fileManager.loadFile(_curFilename); byte *srcP = data; @@ -537,11 +512,11 @@ void Globals::loadCache(const Common::String &file) { Common::File f; resetCache(); - _vm->_fileManager.constructFilename(HOPLINK, file); + _vm->_fileManager.constructFilename("LINK", file); ptr = _vm->_fileManager.loadFile(_curFilename); v16 = Common::String((const char *)ptr); - _vm->_fileManager.constructFilename(HOPLINK, v16); + _vm->_fileManager.constructFilename("LINK", v16); if (!f.exists(_curFilename)) return; diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h index ddc64df078..a4f60e1cfd 100644 --- a/engines/hopkins/globals.h +++ b/engines/hopkins/globals.h @@ -329,24 +329,10 @@ public: int _inventory[36]; SortItem _sortedDisplay[51]; Language _language; - int SVGA; bool _internetFl; bool PUBEXIT; int PERSO_TYPE; uint _speed; - Common::String HOPIMAGE; - Common::String HOPANIM; - Common::String HOPLINK; - Common::String HOPSAVE; - Common::String HOPSOUND; - Common::String HOPMUSIC; - Common::String HOPVOICE; - Common::String HOPANM; - Common::String HOPTSVGA; - Common::String HOPSVGA; - Common::String HOPVGA; - Common::String HOPSEQ; - Common::String HOPSYSTEM; Common::String FICH_ZONE; Common::String FICH_TEXTE; Common::String _curFilename; @@ -360,8 +346,6 @@ public: byte *TETE; byte *ICONE; byte *BUF_ZONE; - byte *texte_tmp; - int texte_long; byte *SPRITE_ECRAN; Sauvegarde *_saveData; byte *BUFFERTAPE; @@ -386,7 +370,6 @@ public: byte *ADR_FICHIER_OBJ; byte *PERSO; int _objectWidth, _objectHeight; - bool _newObjectFl; bool _helicopterFl; uint32 _catalogPos; uint32 _catalogSize; @@ -394,12 +377,10 @@ public: int _exitId; int PLANX, PLANY; int PLANI; - bool NOSPRECRAN; int _screenId; int _prevScreenId; - int fmusic; int Max_Propre; - int Max_Ligne_Long; + int _maxLineLength; int Max_Perso_Y; bool _disableInventFl; bool NOMARCHE; diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp index 828fc2d3ad..0021f3539e 100644 --- a/engines/hopkins/graphics.cpp +++ b/engines/hopkins/graphics.cpp @@ -163,7 +163,7 @@ void GraphicsManager::loadVgaImage(const Common::String &file) { lockScreen(); clearScreen(); unlockScreen(); - _vm->_fileManager.constructFilename(_vm->_globals.HOPIMAGE, file); + _vm->_fileManager.constructFilename("BUFFER", file); A_PCX320(_vesaScreen, _vm->_globals._curFilename, _palette); memcpy(_vesaBuffer, _vesaScreen, 64000); SCANLINE(320); @@ -184,7 +184,7 @@ void GraphicsManager::loadScreen(const Common::String &file) { bool flag = true; if (_vm->_fileManager.searchCat(file, 6) == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPIMAGE, file); + _vm->_fileManager.constructFilename("BUFFER", file); if (!f.open(_vm->_globals._curFilename)) error("loadScreen - %s", file.c_str()); @@ -301,16 +301,16 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by if (typeFlag) { // Load PCX from within the PIC resource - _vm->_fileManager.constructFilename(_vm->_globals.HOPIMAGE, "PIC.RES"); + _vm->_fileManager.constructFilename("BUFFER", "PIC.RES"); if (!f.open(_vm->_globals._curFilename)) - error("(nom)Erreur en cours de lecture."); + error("Error opening PIC.RES."); f.seek(_vm->_globals._catalogPos); } else { // Load stand alone PCX file - _vm->_fileManager.constructFilename(_vm->_globals.HOPIMAGE, file); + _vm->_fileManager.constructFilename("BUFFER", file); if (!f.open(_vm->_globals._curFilename)) - error("(nom)Erreur en cours de lecture."); + error("Error opening PCX %s.", file.c_str()); } // Decode the PCX @@ -1753,32 +1753,32 @@ void GraphicsManager::displayFont(byte *surface, const byte *spriteData, int xp, } // Init Screen -void GraphicsManager::INI_ECRAN(const Common::String &file) { - OPTI_INI(file, 0); +void GraphicsManager::INI_ECRAN(const Common::String &file, bool initializeScreen) { + OPTI_INI(file, 0, initializeScreen); } // Init Screen 2 -void GraphicsManager::INI_ECRAN2(const Common::String &file) { - OPTI_INI(file, 2); +void GraphicsManager::INI_ECRAN2(const Common::String &file, bool initializeScreen) { + OPTI_INI(file, 2, initializeScreen); } -void GraphicsManager::OPTI_INI(const Common::String &file, int mode) { +void GraphicsManager::OPTI_INI(const Common::String &file, int mode, bool initializeScreen) { Common::String filename = file + ".ini"; byte *ptr = _vm->_fileManager.searchCat(filename, 1); if (ptr == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, filename); + _vm->_fileManager.constructFilename("LINK", filename); ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } if (!mode) { filename = file + ".spr"; _vm->_globals.SPRITE_ECRAN = _vm->_globals.freeMemory(_vm->_globals.SPRITE_ECRAN); - if (!_vm->_globals.NOSPRECRAN) { + if (initializeScreen) { _vm->_globals.SPRITE_ECRAN = _vm->_fileManager.searchCat(filename, 8); if (_vm->_globals.SPRITE_ECRAN) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, filename); + _vm->_fileManager.constructFilename("LINK", filename); } else { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, "RES_SLI.RES"); + _vm->_fileManager.constructFilename("LINK", "RES_SLI.RES"); } _vm->_globals.SPRITE_ECRAN = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } @@ -1814,7 +1814,7 @@ void GraphicsManager::OPTI_INI(const Common::String &file, int mode) { byte *dataP = _vm->_fileManager.searchCat(filename, 2); _vm->_globals.COUCOU = dataP; if (g_PTRNUL == dataP) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, filename); + _vm->_fileManager.constructFilename("LINK", filename); dataP = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.COUCOU = dataP; } diff --git a/engines/hopkins/graphics.h b/engines/hopkins/graphics.h index dd1df3c6e1..57405773ca 100644 --- a/engines/hopkins/graphics.h +++ b/engines/hopkins/graphics.h @@ -163,9 +163,9 @@ public: void SCOPY(const byte *surface, int x1, int y1, int width, int height, byte *destSurface, int destX, int destY); void Copy_Mem(const byte *srcSurface, int x1, int y1, unsigned int width, int height, byte *destSurface, int destX, int destY); void displayFont(byte *surface, const byte *spriteData, int xp, int yp, int characterIndex, int colour); - void INI_ECRAN(const Common::String &file); - void INI_ECRAN2(const Common::String &file); - void OPTI_INI(const Common::String &file, int mode); + void INI_ECRAN(const Common::String &file, bool initializeScreen); + void INI_ECRAN2(const Common::String &file, bool initializeScreen); + void OPTI_INI(const Common::String &file, int mode, bool initializeScreen); void NB_SCREEN(bool initPalette); void SHOW_PALETTE(); void Copy_WinScan_Vbe(const byte *srcP, byte *destP); diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp index 1b181bee52..2fd9293d51 100644 --- a/engines/hopkins/hopkins.cpp +++ b/engines/hopkins/hopkins.cpp @@ -129,8 +129,6 @@ Common::Error HopkinsEngine::run() { } bool HopkinsEngine::runWin95Demo() { - _globals.SVGA = 1; - _globals.loadObjects(); _objectsManager.changeObject(14); _objectsManager.addObject(14); @@ -179,7 +177,7 @@ bool HopkinsEngine::runWin95Demo() { warning("TODO Init_Interrupt_();"); _graphicsManager.fadeOutLong(); _globals.iRegul = 1; - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.PLANX = _globals.PLANY = 0; @@ -209,9 +207,9 @@ bool HopkinsEngine::runWin95Demo() { switch (_globals._exitId) { case 1: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 2); + _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 2, true); break; case 3: @@ -245,10 +243,9 @@ bool HopkinsEngine::runWin95Demo() { _globals._saveData->data[svField170] = 1; } _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2); + _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2, false); break; case 4: @@ -259,70 +256,63 @@ bool HopkinsEngine::runWin95Demo() { case 5: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; - _globals.NOSPRECRAN = true; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 455; if (_globals._saveData->data[svField80]) { if (_globals._saveData->data[svField80] == 1) - _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3); + _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3, false); } else { - _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3); + _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3, false); } - - _globals.NOSPRECRAN = false; break; case 6: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 460; - _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2); + _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2, true); break; case 7: if (_globals._saveData->data[svField220]) - _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2, true); else - _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2, true); break; case 8: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2); + _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2, true); break; case 9: _globals.Max_Propre = 15; _globals.Max_Perso_Y = 440; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; if (_globals._saveData->data[svField225]) - _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10); + _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10, true); else bombExplosion(); break; case 10: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9, false); break; case 11: - _globals.NOSPRECRAN = true; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; _globals.Max_Propre = 15; - _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2, false); break; case 12: _globals.Max_Propre = 15; _globals.Max_Perso_Y = 450; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; if (_globals._saveData->data[svField225]) { if (_globals._language == LANG_FR) _graphicsManager.loadImage("ENDFR"); @@ -365,15 +355,11 @@ bool HopkinsEngine::runWin95Demo() { break; case 111: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10, false); break; case 112: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10, false); break; case 113: @@ -491,7 +477,7 @@ bool HopkinsEngine::runLinuxDemo() { playIntro(); _globals.iRegul = 0; - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.PLANX = _globals.PLANY = 0; @@ -536,9 +522,9 @@ bool HopkinsEngine::runLinuxDemo() { case 1: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1); + _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1, true); break; case 3: @@ -575,10 +561,9 @@ bool HopkinsEngine::runLinuxDemo() { } _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2); + _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2, false); break; case 4: @@ -589,127 +574,112 @@ bool HopkinsEngine::runLinuxDemo() { case 5: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 455; - _globals.NOSPRECRAN = true; - if (_globals._saveData->data[svField80]) { - if (_globals._saveData->data[svField80] == 1) - _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3); - } else { - _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3); - } - - _globals.NOSPRECRAN = false; + if (_globals._saveData->data[svField80] == 1) + _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3, false); + else + _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3, false); break; case 6: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 460; - _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2); + _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2, true); break; case 7: if (_globals._saveData->data[svField220]) - _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2, true); else - _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2, true); break; case 8: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2); + _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2, true); break; case 9: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 440; if (!_globals._saveData->data[svField225]) bombExplosion(); - _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10); + _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10, true); break; case 10: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9, false); break; case 11: - _globals.NOSPRECRAN = true; _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2, false); break; case 12: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - if (_globals._saveData->data[svField225]) { - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1); - } else { + if (_globals._saveData->data[svField225]) + _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1, false); + else bombExplosion(); - } break; case 13: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1); + _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1, true); break; case 14: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1); + _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1, true); break; case 15: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29, false); break; case 16: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[svField113] == 1) { - _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7, true); } else if (!_globals._saveData->data[svField113]) { - _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7, true); } break; case 25: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30); + _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30, true); break; case 26: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30); + _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30, true); case 33: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8, false); break; case 35: @@ -717,15 +687,11 @@ bool HopkinsEngine::runLinuxDemo() { break; case 111: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10, false); break; case 112: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10, false); break; case 113: @@ -817,8 +783,6 @@ bool HopkinsEngine::runLinuxDemo() { } bool HopkinsEngine::runOS2Full() { - _globals.SVGA = 2; - _globals.loadObjects(); _objectsManager.changeObject(14); _objectsManager.addObject(14); @@ -843,7 +807,7 @@ bool HopkinsEngine::runOS2Full() { _graphicsManager.loadImage("H2"); _graphicsManager.fadeInLong(); _globals.iRegul = 0; - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.PLANX = _globals.PLANY = 0; @@ -864,9 +828,9 @@ bool HopkinsEngine::runOS2Full() { switch (_globals._exitId) { case 1: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1); + _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1, true); break; case 3: @@ -895,10 +859,9 @@ bool HopkinsEngine::runOS2Full() { _globals._saveData->data[170] = 1; } _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2); + _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2, false); break; case 4: @@ -909,116 +872,107 @@ bool HopkinsEngine::runOS2Full() { case 5: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 455; - _globals.NOSPRECRAN = true; if (_globals._saveData->data[80]) { if (_globals._saveData->data[80] == 1) - _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3); + _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3, false); } else - _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3, false); break; case 6: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2); + _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2, true); break; case 7: if (_globals._saveData->data[220]) - _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2, true); else - _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2, true); break; case 8: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2); + _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2, true); break; case 9: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[225]) - _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10); + _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10, true); else bombExplosion(); break; case 10: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9, false); break; case 11: - _globals.NOSPRECRAN = true; _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2, false); break; case 12: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - if (_globals._saveData->data[225]) { - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1); - } else + if (_globals._saveData->data[225]) + _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1, false); + else bombExplosion(); break; case 13: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1); + _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1, true); break; case 14: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1); + _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1, true); break; case 15: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 18); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 18, false); break; case 16: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[113] == 1) - _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM", "IM16", 7, true); else { if (!_globals._saveData->data[113]) - _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7, true); } break; case 17: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[117] == 1) - _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11); + _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11, true); else { if (!_globals._saveData->data[117]) - _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11); + _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11, true); } if (_globals._exitId == 18) { _globals.iRegul = 1; @@ -1031,38 +985,34 @@ bool HopkinsEngine::runOS2Full() { _graphicsManager.clearPalette(); // _soundManager.WSOUND_OFF(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } break; case 18: - _globals.NOSPRECRAN = true; _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 6); + _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 6, false); break; case 19: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[123]) - _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6, true); else - _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6, true); break; case 20: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6); + _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6, true); if (_globals._exitId == 17) { _globals.iRegul = 1; // _soundManager.WSOUND_OFF(); @@ -1074,10 +1024,7 @@ bool HopkinsEngine::runOS2Full() { _graphicsManager.clearPalette(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG2.ANM", 12, 18, 50); + _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -1085,103 +1032,96 @@ bool HopkinsEngine::runOS2Full() { case 22: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6); + _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6, true); break; case 23: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6); + _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6, true); break; case 24: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[181]) { if (_globals._saveData->data[181] == 1 ) - _objectsManager.PERSONAGE2("IM24", "IM24a", "ANIM24", "IM24", 1); + _objectsManager.PERSONAGE2("IM24", "IM24a", "ANIM24", "IM24", 1, true); } else - _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1); + _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1, true); break; case 25: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 8); + _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 8, true); break; case 26: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 8); + _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 8, true); break; case 27: _globals.Max_Propre = 10; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[177] == 1) - _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27); + _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27, true); else { if (!_globals._saveData->data[177]) - _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27); + _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27, true); } break; case 28: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; if (_globals._saveData->data[166] != 1 || _globals._saveData->data[167] != 1 ) - _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1, false); else - _objectsManager.PERSONAGE2("IM28a", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28a", "IM28", "ANIM28", "IM28", 1, false); break; case 29: _globals.Max_Propre = 60; - _globals.Max_Ligne_Long = 50; + _globals._maxLineLength = 50; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1); + _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1, true); break; case 30: _globals.Max_Propre = 10; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24, false); break; case 31: - _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10); + _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10, true); break; case 32: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2); + _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2, true); break; case 33: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8, false); break; case 34: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2, false); break; case 35: @@ -1192,20 +1132,18 @@ bool HopkinsEngine::runOS2Full() { case 40: case 41: { _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; _globals._disableInventFl = false; _globals._forestFl = true; - _globals.NOSPRECRAN = true; Common::String im = Common::String::format("IM%d", _globals._exitId); _soundManager.WSOUND(13); if (_globals._forestSprite == g_PTRNUL) { - _fileManager.constructFilename(_globals.HOPSYSTEM, "HOPDEG.SPR"); + _fileManager.constructFilename("SYSTEM", "HOPDEG.SPR"); _globals._forestSprite = _objectsManager.loadSprite(_globals._curFilename); _soundManager.loadSample(1, "SOUND41.WAV"); } - _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13, false); if (_globals._exitId < 35 || _globals._exitId > 49 ) { _globals._forestSprite = _globals.freeMemory(_globals._forestSprite); _globals._forestFl = false; @@ -1221,176 +1159,152 @@ bool HopkinsEngine::runOS2Full() { case 51: _globals.Max_Propre = 20; - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14); + _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14, true); break; case 52: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14); + _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14, true); break; case 54: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14); + _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14, true); break; case 55: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14); + _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14, false); break; case 56: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14); + _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14, false); break; case 57: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14); + _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14, true); break; case 58: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14); + _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14, false); break; case 59: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21, false); break; case 60: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21, false); break; case 61: if (_globals._saveData->data[311] == 1 && !_globals._saveData->data[312] ) handleConflagration(); - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21); + _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21, false); break; case 62: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21, false); break; case 63: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21, false); break; case 64: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21); + _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21, true); break; case 65: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21, false); break; case 66: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21, false); break; case 67: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21, false); break; case 68: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21); + _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21, true); break; case 69: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21, false); break; case 70: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21, false); break; case 71: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21, false); break; case 73: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; if (_globals._saveData->data[318] == 1) - _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21); + _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21, true); else { if (!_globals._saveData->data[318]) - _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21); + _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21, true); } break; @@ -1460,43 +1374,40 @@ bool HopkinsEngine::runOS2Full() { case 93: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; if (_globals._saveData->data[330]) - _objectsManager.PERSONAGE2("IM93", "IM93c", "ANIM93", "IM93", 26); + _objectsManager.PERSONAGE2("IM93", "IM93c", "ANIM93", "IM93", 26, true); else - _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 26); + _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 26, true); break; case 94: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19); + _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19, true); break; case 95: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19); + _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19, false); break; case 96: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19); + _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19, false); break; case 97: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19); + _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19, false); if (_globals._exitId == 18) { _globals.iRegul = 1; // _soundManager.WSOUND_OFF(); @@ -1508,10 +1419,7 @@ bool HopkinsEngine::runOS2Full() { _graphicsManager.clearPalette(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -1519,16 +1427,16 @@ bool HopkinsEngine::runOS2Full() { case 98: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19); + _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19, true); break; case 99: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19); + _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19, true); break; case 100: @@ -1536,15 +1444,11 @@ bool HopkinsEngine::runOS2Full() { break; case 111: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10, false); break; case 112: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10, false); break; case 113: @@ -1645,7 +1549,7 @@ bool HopkinsEngine::runOS2Full() { _soundManager.WSOUND(23); _globals._exitId = handleBaseMap(); // _soundManager.WSOUND_OFF(); - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.iRegul = 0; @@ -1661,8 +1565,6 @@ bool HopkinsEngine::runOS2Full() { } bool HopkinsEngine::runBeOSFull() { - _globals.SVGA = 2; - warning("TODO: Init_Interrupt()"); _globals.loadObjects(); _objectsManager.changeObject(14); @@ -1688,7 +1590,7 @@ bool HopkinsEngine::runBeOSFull() { _graphicsManager.fadeInLong(); _graphicsManager.fadeOutLong(); _globals.iRegul = 0; - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.PLANX = _globals.PLANY = 0; @@ -1713,9 +1615,9 @@ bool HopkinsEngine::runBeOSFull() { switch (_globals._exitId) { case 1: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1); + _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1, true); break; case 3: @@ -1744,10 +1646,9 @@ bool HopkinsEngine::runBeOSFull() { _globals._saveData->data[svField170] = 1; } _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2); + _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2, false); break; case 4: @@ -1758,70 +1659,63 @@ bool HopkinsEngine::runBeOSFull() { case 5: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 455; - _globals.NOSPRECRAN = true; if (_globals._saveData->data[svField80]) { if (_globals._saveData->data[svField80] == 1) - _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3); + _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3, false); } else { - _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3); + _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3, false); } - _globals.NOSPRECRAN = false; break; case 6: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2); + _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2, true); break; case 7: if (_globals._saveData->data[svField220]) - _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2, true); else - _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2, true); break; case 8: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2); + _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2, true); break; case 9: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 440; if (!_globals._saveData->data[svField225]) bombExplosion(); - _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10); + _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10, true); break; case 10: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9, false); break; case 11: - _globals.NOSPRECRAN = true; _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2, false); break; case 12: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[svField225]) { - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1); + _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1, false); } else { bombExplosion(); } @@ -1829,43 +1723,41 @@ bool HopkinsEngine::runBeOSFull() { case 13: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1); + _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1, true); break; case 14: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1); + _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1, true); break; case 15: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 18); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 18, false); break; case 16: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[svField113] == 1) { - _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7, true); } else if (!_globals._saveData->data[svField113]) { - _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7, true); } break; case 17: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[svField117] == 1) { - _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11); + _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11, true); } else if (!_globals._saveData->data[svField117]) { - _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11); + _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11, true); } if (_globals._exitId == 18) { _globals.iRegul = 1; @@ -1878,39 +1770,34 @@ bool HopkinsEngine::runBeOSFull() { _graphicsManager.clearPalette(); _soundManager.WSOUND_OFF(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); - + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } break; case 18: - _globals.NOSPRECRAN = true; _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 6); + _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 6, false); break; case 19: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[svField123]) - _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6, true); else - _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6, true); break; case 20: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6); + _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6, true); if (_globals._exitId == 17) { _globals.iRegul = 1; _soundManager.WSOUND_OFF(); @@ -1922,10 +1809,7 @@ bool HopkinsEngine::runBeOSFull() { _graphicsManager.clearPalette(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG2.ANM", 12, 18, 50); + _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -1933,103 +1817,96 @@ bool HopkinsEngine::runBeOSFull() { case 22: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6); + _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6, true); break; case 23: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6); + _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6, true); break; case 24: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[svField181]) { if (_globals._saveData->data[svField181] == 1) - _objectsManager.PERSONAGE2("IM24", "IM24A", "ANIM24", "IM24", 1); + _objectsManager.PERSONAGE2("IM24", "IM24A", "ANIM24", "IM24", 1, true); } else { - _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1); + _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1, true); } break; case 25: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 8); + _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 8, true); break; case 26: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 8); + _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 8, true); break; case 27: _globals.Max_Propre = 10; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[svField177] == 1) { - _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27); + _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27, true); } else if (!_globals._saveData->data[svField177]) { - _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27); + _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27, true); } break; case 28: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; if (_globals._saveData->data[svField166] != 1 || _globals._saveData->data[svField167] != 1) - _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1, false); else - _objectsManager.PERSONAGE2("IM28A", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28A", "IM28", "ANIM28", "IM28", 1, false); break; case 29: _globals.Max_Propre = 60; - _globals.Max_Ligne_Long = 50; + _globals._maxLineLength = 50; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1); + _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1, true); break; case 30: _globals.Max_Propre = 10; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24, false); break; case 31: - _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10); + _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10, true); break; case 32: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2); + _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2, true); break; case 33: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8, false); break; case 34: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2, false); break; case 35: @@ -2040,21 +1917,19 @@ bool HopkinsEngine::runBeOSFull() { case 40: case 41: { _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; _globals._disableInventFl = false; _globals._forestFl = true; - _globals.NOSPRECRAN = true; Common::String im = Common::String::format("IM%d", _globals._exitId); _soundManager.WSOUND(13); if (_globals._forestSprite == g_PTRNUL) { - _fileManager.constructFilename(_globals.HOPSYSTEM, "HOPDEG.SPR"); + _fileManager.constructFilename("SYSTEM", "HOPDEG.SPR"); _globals._forestSprite = _objectsManager.loadSprite(_globals._curFilename); _soundManager.loadSample(1, "SOUND41.WAV"); } - _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13, false); if ((_globals._exitId < 35) || (_globals._exitId > 49)) { _globals._forestSprite = _globals.freeMemory(_globals._forestSprite); _globals._forestFl = false; @@ -2070,175 +1945,151 @@ bool HopkinsEngine::runBeOSFull() { case 51: _globals.Max_Propre = 20; - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14); + _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14, true); break; case 52: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14); + _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14, true); break; case 54: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14); + _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14, true); break; case 55: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14); + _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14, false); break; case 56: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14); + _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14, false); break; case 57: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14); + _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14, true); break; case 58: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14); + _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14, false); break; case 59: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21, false); break; case 60: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21, false); break; case 61: if (_globals._saveData->data[svField311] == 1 && !_globals._saveData->data[svField312]) handleConflagration(); - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21); + _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21, false); break; case 62: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21, false); break; case 63: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21, false); break; case 64: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21); + _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21, true); break; case 65: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21, false); break; case 66: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21, false); break; case 67: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21, false); break; case 68: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21); + _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21, true); break; case 69: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21, false); break; case 70: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21, false); break; case 71: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21, false); break; case 73: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; if (_globals._saveData->data[svField318] == 1) { - _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21); + _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21, true); } else if (!_globals._saveData->data[svField318]) { - _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21); + _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21, true); } break; @@ -2308,43 +2159,40 @@ bool HopkinsEngine::runBeOSFull() { case 93: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; if (_globals._saveData->data[svField330]) - _objectsManager.PERSONAGE2("IM93", "IM93C", "ANIM93", "IM93", 26); + _objectsManager.PERSONAGE2("IM93", "IM93C", "ANIM93", "IM93", 26, true); else - _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 26); + _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 26, true); break; case 94: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19); + _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19, true); break; case 95: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19); + _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19, false); break; case 96: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19); + _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19, false); break; case 97: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19); + _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19, false); if (_globals._exitId == 18) { _globals.iRegul = 1; _soundManager.WSOUND_OFF(); @@ -2356,11 +2204,7 @@ bool HopkinsEngine::runBeOSFull() { _graphicsManager.clearPalette(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); - + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -2368,16 +2212,16 @@ bool HopkinsEngine::runBeOSFull() { case 98: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19); + _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19, true); break; case 99: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19); + _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19, true); break; case 100: @@ -2385,15 +2229,11 @@ bool HopkinsEngine::runBeOSFull() { break; case 111: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10, false); break; case 112: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10, false); break; case 113: @@ -2494,7 +2334,7 @@ bool HopkinsEngine::runBeOSFull() { _soundManager.WSOUND(23); _globals._exitId = handleBaseMap(); _soundManager.WSOUND_OFF(); - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.iRegul = 0; @@ -2505,8 +2345,6 @@ bool HopkinsEngine::runBeOSFull() { } bool HopkinsEngine::runWin95full() { - _globals.SVGA = 2; - warning("TODO: Init_Interrupt_()"); _globals.loadObjects(); @@ -2531,7 +2369,7 @@ bool HopkinsEngine::runWin95full() { _eventsManager.delay(500); _graphicsManager.fadeOutLong(); _globals.iRegul = 0; - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; @@ -2557,9 +2395,9 @@ bool HopkinsEngine::runWin95full() { switch (_globals._exitId) { case 1: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1); + _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1, true); break; case 3: @@ -2593,10 +2431,9 @@ bool HopkinsEngine::runWin95full() { _globals._saveData->data[svField170] = 1; } _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; - _globals.NOSPRECRAN = true; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2); + _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2, false); break; case 4: @@ -2607,116 +2444,103 @@ bool HopkinsEngine::runWin95full() { case 5: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; - _globals.NOSPRECRAN = true; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 455; - if (_globals._saveData->data[svField80]) { - if (_globals._saveData->data[svField80] == 1) - _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3); - } else { - _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3); - } - - _globals.NOSPRECRAN = false; + if (_globals._saveData->data[svField80] == 1) + _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3, false); + else + _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3, false); break; case 6: _globals.Max_Propre = 15; _globals.Max_Perso_Y = 460; - _globals.Max_Ligne_Long = 20; - _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2); + _globals._maxLineLength = 20; + _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2, true); break; case 7: if (_globals._saveData->data[svField220]) - _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2, true); else - _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2, true); break; case 8: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2); + _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2, true); break; case 9: - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Propre = 15; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[svField225]) - _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10); + _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10, true); else bombExplosion(); break; case 10: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9, false); break; case 11: - _globals.NOSPRECRAN = true; _globals.Max_Perso_Y = 450; _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; - _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2); - _globals.NOSPRECRAN = false; + _globals._maxLineLength = 20; + _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2, false); break; case 12: - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; _globals.Max_Propre = 15; - if (_globals._saveData->data[svField225]) { - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1); - } else { + if (_globals._saveData->data[svField225]) + _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1, false); + else bombExplosion(); - } break; case 13: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1); + _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1, true); break; case 14: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1); + _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1, true); break; case 15: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29, false); break; case 16: _globals.Max_Perso_Y = 450; _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; if (_globals._saveData->data[svField113] == 1) { - _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7, true); } else if (!_globals._saveData->data[svField113]) { - _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7); + _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7, true); } break; case 17: _globals.Max_Propre = 50; _globals.Max_Perso_Y = 440; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; if (_globals._saveData->data[svField117] == 1) { - _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11); + _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11, true); } else if (!_globals._saveData->data[svField117]) { - _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11); + _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11, true); } if (_globals._exitId == 18) { _globals.iRegul = 1; @@ -2726,10 +2550,7 @@ bool HopkinsEngine::runWin95full() { _graphicsManager.clearPalette(); _soundManager.WSOUND_OFF(); _soundManager.WSOUND(29); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -2737,27 +2558,26 @@ bool HopkinsEngine::runWin95full() { case 18: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 29); + _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 29, false); break; case 19: _globals.Max_Perso_Y = 440; _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; if (_globals._saveData->data[svField123]) - _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6, true); else - _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6, true); break; case 20: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6); + _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6, true); if (_globals._exitId == 17) { _globals.iRegul = 1; _soundManager.WSOUND_OFF(); @@ -2766,10 +2586,7 @@ bool HopkinsEngine::runWin95full() { _graphicsManager.unlockScreen(); _graphicsManager.clearPalette(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG2.ANM", 12, 18, 50); + _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -2778,102 +2595,92 @@ bool HopkinsEngine::runWin95full() { case 22: _globals.Max_Propre = 15; _globals.Max_Perso_Y = 445; - _globals.Max_Ligne_Long = 20; - _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6); + _globals._maxLineLength = 20; + _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6, true); break; case 23: _globals.Max_Propre = 15; _globals.Max_Perso_Y = 440; - _globals.Max_Ligne_Long = 20; - _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6); + _globals._maxLineLength = 20; + _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6, true); break; case 24: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - if (_globals._saveData->data[svField181]) { - if (_globals._saveData->data[svField181] == 1) - _objectsManager.PERSONAGE2("IM24", "IM24a", "ANIM24", "IM24", 1); - } else { - _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1); - } + if (_globals._saveData->data[svField181] == 1) + _objectsManager.PERSONAGE2("IM24", "IM24a", "ANIM24", "IM24", 1, true); + else + _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1, true); break; case 25: _globals.Max_Propre = 15; _globals.Max_Perso_Y = 445; - _globals.Max_Ligne_Long = 20; - _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30); + _globals._maxLineLength = 20; + _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30, true); break; case 26: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30); + _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30, true); break; case 27: _globals.Max_Perso_Y = 440; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Propre = 10; - if (_globals._saveData->data[svField177] == 1) { - _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27); - } else if (!_globals._saveData->data[svField177]) { - _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27); - } + if (_globals._saveData->data[svField177] == 1) + _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27, true); + else if (!_globals._saveData->data[svField177]) + _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27, true); break; case 28: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; if (_globals._saveData->data[svField166] != 1 || _globals._saveData->data[svField167] != 1) - _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1, false); else - _objectsManager.PERSONAGE2("IM28a", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28a", "IM28", "ANIM28", "IM28", 1, false); break; case 29: _globals.Max_Propre = 60; - _globals.Max_Ligne_Long = 50; + _globals._maxLineLength = 50; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1); + _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1, true); break; case 30: _globals.Max_Propre = 10; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24, false); break; case 31: - _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10); + _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10, true); break; case 32: _globals.Max_Propre = 15; _globals.Max_Perso_Y = 445; - _globals.Max_Ligne_Long = 20; - _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2); + _globals._maxLineLength = 20; + _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2, true); break; case 33: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8, false); break; case 34: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2, false); break; case 35: @@ -2883,22 +2690,19 @@ bool HopkinsEngine::runWin95full() { case 39: case 40: case 41: { - _globals.fmusic = 13; _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; _globals._disableInventFl = false; _globals._forestFl = true; - _globals.NOSPRECRAN = true; Common::String im = Common::String::format("IM%d", _globals._exitId); _soundManager.WSOUND(13); if (_globals._forestSprite == g_PTRNUL) { - _fileManager.constructFilename(_globals.HOPSYSTEM, "HOPDEG.SPR"); + _fileManager.constructFilename("SYSTEM", "HOPDEG.SPR"); _globals._forestSprite = _objectsManager.loadSprite(_globals._curFilename); _soundManager.loadSample(1, "SOUND41.WAV"); } - _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13, false); if (_globals._exitId < 35 || _globals._exitId > 49) { _globals._forestSprite = _globals.freeMemory(_globals._forestSprite); _globals._forestFl = false; @@ -2912,177 +2716,152 @@ bool HopkinsEngine::runWin95full() { break; case 51: - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; _globals.Max_Propre = 20; - _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14); + _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14, true); break; case 52: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14); + _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14, true); break; case 54: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14); + _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14, true); break; case 55: _globals.Max_Propre = 40; _globals.Max_Perso_Y = 460; - _globals.Max_Ligne_Long = 30; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14); + _globals._maxLineLength = 30; + _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14, false); break; case 56: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14); + _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14, false); break; case 57: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14); + _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14, true); break; case 58: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14); + _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14, false); break; case 59: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21, false); break; case 60: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21, false); break; case 61: if (_globals._saveData->data[svField311] == 1 && !_globals._saveData->data[svField312]) handleConflagration(); - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21); + _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21, false); break; case 62: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21, false); break; case 63: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21, false); break; case 64: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21); + _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21, true); break; case 65: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21, false); break; case 66: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21, false); break; case 67: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21, false); break; case 68: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21); + _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21, true); break; case 69: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21, false); break; case 70: _globals.Max_Perso_Y = 435; _globals.Max_Propre = 8; - _globals.NOSPRECRAN = true; - _globals.Max_Ligne_Long = 8; - _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21); - _globals.NOSPRECRAN = false; + _globals._maxLineLength = 8; + _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21, false); break; case 71: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21, false); break; case 73: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; - if (_globals._saveData->data[svField318] == 1) { - _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21); - } else if (!_globals._saveData->data[svField318]) { - _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21); - } + if (_globals._saveData->data[svField318] == 1) + _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21, true); + else if (!_globals._saveData->data[svField318]) + _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21, true); break; case 75: @@ -3151,43 +2930,40 @@ bool HopkinsEngine::runWin95full() { case 93: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; if (_globals._saveData->data[svField330]) - _objectsManager.PERSONAGE2("IM93", "IM93c", "ANIM93", "IM93", 29); + _objectsManager.PERSONAGE2("IM93", "IM93c", "ANIM93", "IM93", 29, true); else - _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 29); + _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 29, true); break; case 94: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19); + _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19, true); break; case 95: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = false; - _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19); + _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19, true); break; case 96: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; - _globals.NOSPRECRAN = true; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19); + _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19, false); break; case 97: _globals.Max_Perso_Y = 435; _globals.Max_Propre = 5; - _globals.NOSPRECRAN = true; - _globals.Max_Ligne_Long = 5; - _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19); + _globals._maxLineLength = 5; + _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19, false); if (_globals._exitId == 18) { _globals.iRegul = 1; _soundManager.WSOUND_OFF(); @@ -3196,10 +2972,7 @@ bool HopkinsEngine::runWin95full() { _graphicsManager.unlockScreen(); _graphicsManager.clearPalette(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -3207,16 +2980,16 @@ bool HopkinsEngine::runWin95full() { case 98: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19); + _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19, true); break; case 99: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19); + _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19, true); break; case 100: @@ -3224,15 +2997,11 @@ bool HopkinsEngine::runWin95full() { break; case 111: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10, false); break; case 112: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10, false); break; case 113: @@ -3326,7 +3095,7 @@ bool HopkinsEngine::runWin95full() { _globals._exitId = WBASE(); _soundManager.WSOUND_OFF(); warning("TODO: heapshrink();"); - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.iRegul = 0; @@ -3367,7 +3136,7 @@ bool HopkinsEngine::runLinuxFull() { playIntro(); _globals.iRegul = 0; - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.PLANX = _globals.PLANY = 0; @@ -3392,9 +3161,9 @@ bool HopkinsEngine::runLinuxFull() { switch (_globals._exitId) { case 1: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1); + _objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1, true); break; case 3: @@ -3429,10 +3198,9 @@ bool HopkinsEngine::runLinuxFull() { } _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2); + _objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2, false); break; case 4: @@ -3443,70 +3211,63 @@ bool HopkinsEngine::runLinuxFull() { case 5: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 455; - _globals.NOSPRECRAN = true; if (_globals._saveData->data[svField80]) { if (_globals._saveData->data[svField80] == 1) - _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3); + _objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3, false); } else { - _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3); + _objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3, false); } - _globals.NOSPRECRAN = false; break; case 6: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 460; - _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2); + _objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2, true); break; case 7: if (_globals._saveData->data[svField220]) - _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2, true); else - _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2); + _objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2, true); break; case 8: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2); + _objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2, true); break; case 9: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 440; if (!_globals._saveData->data[svField225]) bombExplosion(); - _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10); + _objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10, true); break; case 10: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9, false); break; case 11: - _globals.NOSPRECRAN = true; _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM11", "IM11", "ANIM11", "IM11", 2, false); break; case 12: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[svField225]) { - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1); + _objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1, false); } else { bombExplosion(); } @@ -3514,44 +3275,40 @@ bool HopkinsEngine::runLinuxFull() { case 13: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1); + _objectsManager.PERSONAGE2("IM13", "IM13", "ANIM13", "IM13", 1, true); break; case 14: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1); + _objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1, true); break; case 15: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29, false); break; case 16: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - if (_globals._saveData->data[svField113] == 1) { - _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7); - } else if (!_globals._saveData->data[svField113]) { - _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7); - } + if (_globals._saveData->data[svField113] == 1) + _objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7, true); + else if (!_globals._saveData->data[svField113]) + _objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7, true); break; case 17: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; - if (_globals._saveData->data[svField117] == 1) { - _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11); - } else if (!_globals._saveData->data[svField117]) { - _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11); - } + if (_globals._saveData->data[svField117] == 1) + _objectsManager.PERSONAGE2("IM17", "IM17A", "ANIM17", "IM17", 11, true); + else if (!_globals._saveData->data[svField117]) + _objectsManager.PERSONAGE2("IM17", "IM17", "ANIM17", "IM17", 11, true); if (_globals._exitId == 18) { _globals.iRegul = 1; _graphicsManager.lockScreen(); @@ -3561,37 +3318,33 @@ bool HopkinsEngine::runLinuxFull() { _soundManager.WSOUND_OFF(); _soundManager.WSOUND(29); _graphicsManager.FADE_LINUX = 2; - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _globals.iRegul = 0; } break; case 18: - _globals.NOSPRECRAN = true; _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 29); + _objectsManager.PERSONAGE2("IM18", "IM18", "ANIM18", "IM18", 29, false); break; case 19: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[svField123]) - _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19A", "ANIM19", "IM19", 6, true); else - _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6); + _objectsManager.PERSONAGE2("IM19", "IM19", "ANIM19", "IM19", 6, true); break; case 20: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6); + _objectsManager.PERSONAGE2("IM20", "IM20", "ANIM20", "IM20", 6, true); if (_globals._exitId == 17) { _globals.iRegul = 1; _graphicsManager.lockScreen(); @@ -3601,113 +3354,103 @@ bool HopkinsEngine::runLinuxFull() { _soundManager.WSOUND_OFF(); _soundManager.WSOUND(6); _graphicsManager.FADE_LINUX = 2; - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG2.ANM", 12, 18, 50); + _animationManager.playAnim("PURG2A.ANM", 12, 18, 50); _globals.iRegul = 0; } break; case 22: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6); + _objectsManager.PERSONAGE2("IM22", "IM22", "ANIM22", "IM22", 6, true); break; case 23: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6); + _objectsManager.PERSONAGE2("IM23", "IM23", "ANIM23", "IM23", 6, true); break; case 24: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; if (_globals._saveData->data[svField181]) { if (_globals._saveData->data[svField181] == 1) - _objectsManager.PERSONAGE2("IM24", "IM24a", "ANIM24", "IM24", 1); + _objectsManager.PERSONAGE2("IM24", "IM24a", "ANIM24", "IM24", 1, true); } else { - _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1); + _objectsManager.PERSONAGE2("IM24", "IM24", "ANIM24", "IM24", 1, true); } break; case 25: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30); + _objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30, true); break; case 26: _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30); + _objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30, true); break; case 27: _globals.Max_Propre = 10; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 440; if (_globals._saveData->data[svField177] == 1) { - _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27); + _objectsManager.PERSONAGE2("IM27", "IM27A", "ANIM27", "IM27", 27, true); } else if (!_globals._saveData->data[svField177]) { - _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27); + _objectsManager.PERSONAGE2("IM27", "IM27", "ANIM27", "IM27", 27, true); } break; case 28: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 450; - _globals.NOSPRECRAN = true; if (_globals._saveData->data[svField166] != 1 || _globals._saveData->data[svField167] != 1) - _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28", "IM28", "ANIM28", "IM28", 1, false); else - _objectsManager.PERSONAGE2("IM28a", "IM28", "ANIM28", "IM28", 1); + _objectsManager.PERSONAGE2("IM28a", "IM28", "ANIM28", "IM28", 1, false); break; case 29: _globals.Max_Propre = 60; - _globals.Max_Ligne_Long = 50; + _globals._maxLineLength = 50; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1); + _objectsManager.PERSONAGE2("IM29", "IM29", "ANIM29", "IM29", 1, true); break; case 30: _globals.Max_Propre = 10; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM30", "IM30", "ANIM30", "IM30", 24, false); break; case 31: - _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10); + _objectsManager.PERSONAGE("IM31", "IM31", "ANIM31", "IM31", 10, true); break; case 32: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 20; + _globals._maxLineLength = 20; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2); + _objectsManager.PERSONAGE2("IM32", "IM32", "ANIM32", "IM32", 2, true); break; case 33: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8, false); break; case 34: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM34", "IM34", "ANIM34", "IM34", 2, false); break; case 35: @@ -3717,22 +3460,19 @@ bool HopkinsEngine::runLinuxFull() { case 39: case 40: case 41: { - _globals.fmusic = 13; _globals.Max_Propre = 50; - _globals.Max_Ligne_Long = 40; + _globals._maxLineLength = 40; _globals.Max_Perso_Y = 435; _globals._disableInventFl = false; _globals._forestFl = true; - _globals.NOSPRECRAN = true; Common::String im = Common::String::format("IM%d", _globals._exitId); _soundManager.WSOUND(13); if (_globals._forestSprite == g_PTRNUL) { - _fileManager.constructFilename(_globals.HOPSYSTEM, "HOPDEG.SPR"); + _fileManager.constructFilename("SYSTEM", "HOPDEG.SPR"); _globals._forestSprite = _objectsManager.loadSprite(_globals._curFilename); _soundManager.loadSample(1, "SOUND41.WAV"); } - _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2(im, im, "BANDIT", im, 13, false); if (_globals._exitId < 35 || _globals._exitId > 49) { _globals._forestSprite = _globals.freeMemory(_globals._forestSprite); _globals._forestFl = false; @@ -3748,175 +3488,151 @@ bool HopkinsEngine::runLinuxFull() { case 51: _globals.Max_Propre = 20; - _globals.Max_Ligne_Long = 10; + _globals._maxLineLength = 10; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14); + _objectsManager.PERSONAGE2("IM51", "IM51", "ANIM51", "IM51", 14, true); break; case 52: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; - _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14); + _objectsManager.PERSONAGE2("IM52", "IM52", "ANIM52", "IM52", 14, true); break; case 54: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14); + _objectsManager.PERSONAGE2("IM54", "IM54", "ANIM54", "IM54", 14, true); break; case 55: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 460; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14); + _objectsManager.PERSONAGE2("IM55", "IM55", "ANIM55", "IM55", 14, false); break; case 56: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14); + _objectsManager.PERSONAGE2("IM56", "IM56", "ANIM56", "IM56", 14, false); break; case 57: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14); + _objectsManager.PERSONAGE2("IM57", "IM57", "ANIM57", "IM57", 14, true); break; case 58: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14); + _objectsManager.PERSONAGE2("IM58", "IM58", "ANIM58", "IM58", 14, false); break; case 59: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM59", "IM59", "ANIM59", "IM59", 21, false); break; case 60: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 440; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM60", "IM60", "ANIM60", "IM60", 21, false); break; case 61: if (_globals._saveData->data[svField311] == 1 && !_globals._saveData->data[svField312]) handleConflagration(); - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21); + _objectsManager.PERSONAGE("IM61", "IM61", "ANIM61", "IM61", 21, false); break; case 62: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM62", "IM62", NULL, "IM62", 21, false); break; case 63: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM63", "IM63", "ANIM63", "IM63", 21, false); break; case 64: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21); + _objectsManager.PERSONAGE2("IM64", "IM64", "ANIM64", "IM64", 21, true); break; case 65: _globals.Max_Propre = 40; - _globals.Max_Ligne_Long = 30; + _globals._maxLineLength = 30; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM65", "IM65", "ANIM65", "IM65", 21, false); break; case 66: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM66", "IM66", "ANIM66", "IM66", 21, false); break; case 67: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM67", "IM67", NULL, "IM67", 21, false); break; case 68: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21); + _objectsManager.PERSONAGE2("IM68", "IM68", "ANIM68", "IM68", 21, true); break; case 69: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM69", "IM69", "ANIM69", "IM69", 21, false); break; case 70: _globals.Max_Propre = 8; - _globals.Max_Ligne_Long = 8; + _globals._maxLineLength = 8; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM70", "IM70", NULL, "IM70", 21, false); break; case 71: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE2("IM71", "IM71", "ANIM71", "IM71", 21, false); break; case 73: _globals.Max_Propre = 15; - _globals.Max_Ligne_Long = 15; + _globals._maxLineLength = 15; _globals.Max_Perso_Y = 445; if (_globals._saveData->data[svField318] == 1) { - _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21); + _objectsManager.PERSONAGE2("IM73", "IM73A", "ANIM73", "IM73", 21, true); } else if (!_globals._saveData->data[svField318]) { - _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21); + _objectsManager.PERSONAGE2("IM73", "IM73", "ANIM73", "IM73", 21, true); } break; @@ -3986,43 +3702,40 @@ bool HopkinsEngine::runLinuxFull() { case 93: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 445; if (_globals._saveData->data[svField330]) - _objectsManager.PERSONAGE2("IM93", "IM93c", "ANIM93", "IM93", 29); + _objectsManager.PERSONAGE2("IM93", "IM93c", "ANIM93", "IM93", 29, true); else - _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 29); + _objectsManager.PERSONAGE2("IM93", "IM93", "ANIM93", "IM93", 29, true); break; case 94: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 440; - _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19); + _objectsManager.PERSONAGE2("IM94", "IM94", "ANIM94", "IM94", 19, true); break; case 95: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19); + _objectsManager.PERSONAGE2("IM95", "IM95", "ANIM95", "IM95", 19, false); break; case 96: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19); + _objectsManager.PERSONAGE2("IM96", "IM96", "ANIM96", "IM96", 19, false); break; case 97: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19); + _objectsManager.PERSONAGE2("IM97", "IM97", "ANIM97", "IM97", 19, false); if (_globals._exitId == 18) { _globals.iRegul = 1; _soundManager.WSOUND_OFF(); @@ -4031,10 +3744,7 @@ bool HopkinsEngine::runLinuxFull() { _graphicsManager.unlockScreen(); _graphicsManager.clearPalette(); _soundManager.WSOUND(6); - if (_globals.SVGA == 2) - _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); - else if (_globals.SVGA == 1) - _animationManager.playAnim("PURG1.ANM", 12, 18, 50); + _animationManager.playAnim("PURG1A.ANM", 12, 18, 50); _graphicsManager.fadeOutShort(); _globals.iRegul = 0; } @@ -4042,16 +3752,16 @@ bool HopkinsEngine::runLinuxFull() { case 98: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19); + _objectsManager.PERSONAGE2("IM98", "IM98", "ANIM98", "IM98", 19, true); break; case 99: _globals.Max_Propre = 5; - _globals.Max_Ligne_Long = 5; + _globals._maxLineLength = 5; _globals.Max_Perso_Y = 435; - _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19); + _objectsManager.PERSONAGE2("IM99", "IM99", "ANIM99", "IM99", 19, true); break; case 100: @@ -4059,15 +3769,11 @@ bool HopkinsEngine::runLinuxFull() { break; case 111: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10, false); break; case 112: - _globals.NOSPRECRAN = true; - _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10); - _globals.NOSPRECRAN = false; + _objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10, false); break; case 113: @@ -4161,7 +3867,7 @@ bool HopkinsEngine::runLinuxFull() { _soundManager.WSOUND(23); _globals._exitId = handleBaseMap(); _soundManager.WSOUND_OFF(); - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.iRegul = 0; @@ -4195,18 +3901,18 @@ void HopkinsEngine::initializeSystem() { switch (_globals._language) { case LANG_EN: if (!_eventsManager._mouseLinuxFl) - _fileManager.constructFilename(_globals.HOPSYSTEM, "SOUAN.SPR"); + _fileManager.constructFilename("SYSTEM", "SOUAN.SPR"); else - _fileManager.constructFilename(_globals.HOPSYSTEM, "LSOUAN.SPR"); + _fileManager.constructFilename("SYSTEM", "LSOUAN.SPR"); break; case LANG_FR: if (!_eventsManager._mouseLinuxFl) - _fileManager.constructFilename(_globals.HOPSYSTEM, "SOUFR.SPR"); + _fileManager.constructFilename("SYSTEM", "SOUFR.SPR"); else - _fileManager.constructFilename(_globals.HOPSYSTEM, "LSOUFR.SPR"); + _fileManager.constructFilename("SYSTEM", "LSOUFR.SPR"); break; case LANG_SP: - _fileManager.constructFilename(_globals.HOPSYSTEM, "SOUES.SPR"); + _fileManager.constructFilename("SYSTEM", "SOUES.SPR"); break; } @@ -4221,26 +3927,26 @@ void HopkinsEngine::initializeSystem() { _globals.clearAll(); - _fileManager.constructFilename(_globals.HOPSYSTEM, "FONTE3.SPR"); + _fileManager.constructFilename("SYSTEM", "FONTE3.SPR"); _globals.police = _fileManager.loadFile(_globals._curFilename); _globals.police_l = 12; _globals.police_h = 21; - _fileManager.constructFilename(_globals.HOPSYSTEM, "ICONE.SPR"); + _fileManager.constructFilename("SYSTEM", "ICONE.SPR"); _globals.ICONE = _fileManager.loadFile(_globals._curFilename); - _fileManager.constructFilename(_globals.HOPSYSTEM, "TETE.SPR"); + _fileManager.constructFilename("SYSTEM", "TETE.SPR"); _globals.TETE = _fileManager.loadFile(_globals._curFilename); switch (_globals._language) { case LANG_EN: - _fileManager.constructFilename(_globals.HOPLINK, "ZONEAN.TXT"); + _fileManager.constructFilename("LINK", "ZONEAN.TXT"); _globals.BUF_ZONE = _fileManager.loadFile(_globals._curFilename); break; case LANG_FR: - _fileManager.constructFilename(_globals.HOPLINK, "ZONE01.TXT"); + _fileManager.constructFilename("LINK", "ZONE01.TXT"); _globals.BUF_ZONE = _fileManager.loadFile(_globals._curFilename); break; case LANG_SP: - _fileManager.constructFilename(_globals.HOPLINK, "ZONEES.TXT"); + _fileManager.constructFilename("LINK", "ZONEES.TXT"); _globals.BUF_ZONE = _fileManager.loadFile(_globals._curFilename); break; } @@ -4544,11 +4250,7 @@ void HopkinsEngine::bombExplosion() { _globals.iRegul = 1; _soundManager.SPECIAL_SOUND = 199; _graphicsManager.FADE_LINUX = 2; - if (_globals.SVGA == 1) - _animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); - else if (_globals.SVGA == 2) - _animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); - + _animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); _soundManager.SPECIAL_SOUND = 0; _graphicsManager.loadImage("IM15"); _animationManager.loadAnim("ANIM15"); @@ -4657,59 +4359,31 @@ void HopkinsEngine::BASE() { _graphicsManager.clearPalette(); _animationManager._clearAnimationFl = true; _soundManager.WSOUND(25); - if (_globals.SVGA == 1) { - _animationManager.playAnim("base00.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base05.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base10.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base20.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base30.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base40.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base50.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC00.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC05.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC10.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC20.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) { - _graphicsManager.FADE_LINUX = 2; - _animationManager.playAnim("OC30.anm", 10, 18, 18); - } - } else if (_globals.SVGA == 2) { - _animationManager.playAnim("base00a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base05a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base10a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base20a.anm", 10, 18, 18); - // CHECKME: The original code was doing the opposite test, which looks like a bug. - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base30a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base40a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("base50a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC00a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC05a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC10a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("OC20a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) { - _graphicsManager.FADE_LINUX = 2; - _animationManager.playAnim("OC30a.anm", 10, 18, 18); - } + _animationManager.playAnim("base00a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("base05a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("base10a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("base20a.anm", 10, 18, 18); + // CHECKME: The original code was doing the opposite test, which looks like a bug. + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("base30a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("base40a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("base50a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("OC00a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("OC05a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("OC10a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("OC20a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) { + _graphicsManager.FADE_LINUX = 2; + _animationManager.playAnim("OC30a.anm", 10, 18, 18); } _eventsManager._escKeyFl = false; @@ -4899,7 +4573,7 @@ void HopkinsEngine::playEnding() { _globals.iRegul = 0; _globals._exitId = 300; } - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; _globals.iRegul = 0; @@ -4915,70 +4589,36 @@ void HopkinsEngine::displayPlane() { _graphicsManager.clearPalette(); _animationManager._clearAnimationFl = false; - if (_globals.SVGA == 1) { - _animationManager.playAnim("aerop00.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop10.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop20.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop30.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop40.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop50.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop60.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop70.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans00.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans10.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans15.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans20.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans30.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans40.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) { - _graphicsManager.FADE_LINUX = 2; - _animationManager.playAnim("PARA00.anm", 9, 9, 9); - } - } else if (_globals.SVGA == 2) { - _animationManager.playAnim("aerop00a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("serop10a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop20a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop30a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop40a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop50a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop60a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("aerop70a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans00a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans10a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans15a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans20a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans30a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) - _animationManager.playAnim("trans40a.anm", 10, 18, 18); - if (!_eventsManager._escKeyFl) { - _graphicsManager.FADE_LINUX = 2; - _animationManager.playAnim("PARA00a.anm", 9, 9, 9); - } + _animationManager.playAnim("aerop00a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("serop10a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("aerop20a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("aerop30a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("aerop40a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("aerop50a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("aerop60a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("aerop70a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("trans00a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("trans10a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("trans15a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("trans20a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("trans30a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) + _animationManager.playAnim("trans40a.anm", 10, 18, 18); + if (!_eventsManager._escKeyFl) { + _graphicsManager.FADE_LINUX = 2; + _animationManager.playAnim("PARA00a.anm", 9, 9, 9); } _eventsManager._escKeyFl = false; @@ -5079,13 +4719,13 @@ void HopkinsEngine::loadCredits() { _globals.Credit_step = 45; switch (_globals._language) { case LANG_EN: - _fileManager.constructFilename(_globals.HOPLINK, "CREAN.TXT"); + _fileManager.constructFilename("LINK", "CREAN.TXT"); break; case LANG_FR: - _fileManager.constructFilename(_globals.HOPLINK, "CREFR.TXT"); + _fileManager.constructFilename("LINK", "CREFR.TXT"); break; case LANG_SP: - _fileManager.constructFilename(_globals.HOPLINK, "CREES.TXT"); + _fileManager.constructFilename("LINK", "CREES.TXT"); break; default: error("Unhandled language"); @@ -5443,7 +5083,7 @@ void HopkinsEngine::OCEAN(int16 curExitId, Common::String backgroundFilename, in _globals._exitId = 0; _globals._disableInventFl = true; _soundManager.WSOUND(soundId); - _fileManager.constructFilename(_globals.HOPSYSTEM, "VAISSEAU.SPR"); + _fileManager.constructFilename("SYSTEM", "VAISSEAU.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); if (backgroundFilename.size()) _graphicsManager.loadImage(backgroundFilename); @@ -5529,7 +5169,7 @@ void HopkinsEngine::OCEAN(int16 curExitId, Common::String backgroundFilename, in _graphicsManager.fadeOutLong(); _objectsManager.removeSprite(0); _objectsManager.CLEAR_ECRAN(); - _fileManager.constructFilename(_globals.HOPSYSTEM, "PERSO.SPR"); + _fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _globals.PERSO = _fileManager.loadFile(_globals._curFilename); _globals.PERSO_TYPE = 0; } diff --git a/engines/hopkins/lines.cpp b/engines/hopkins/lines.cpp index 5b4a26c71d..c2a56fa46d 100644 --- a/engines/hopkins/lines.cpp +++ b/engines/hopkins/lines.cpp @@ -471,7 +471,7 @@ void LinesManager::INIPARCOURS() { } while (!v1); _vm->_objectsManager._lastLine = v0; - v13 = _vm->_globals.Max_Ligne_Long; + v13 = _vm->_globals._maxLineLength; v9 = _vm->_objectsManager._lastLine + 1; for (int v8 = 1; v8 != 400; v8++) { v11 = v8; diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp index c39518c7fd..582b7a16f9 100644 --- a/engines/hopkins/menu.cpp +++ b/engines/hopkins/menu.cpp @@ -85,13 +85,13 @@ int MenuManager::menu() { _vm->_graphicsManager.fadeInLong(); if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "MENU.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "MENU.SPR"); else if (_vm->_globals._language == LANG_EN) - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "MENUAN.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "MENUAN.SPR"); else if (_vm->_globals._language == LANG_FR) - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "MENUFR.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "MENUFR.SPR"); else if (_vm->_globals._language == LANG_SP) - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "MENUES.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "MENUES.SPR"); spriteData = _vm->_objectsManager.loadSprite(_vm->_globals._curFilename); _vm->_eventsManager.mouseOn(); diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp index 9d2cae2cda..ebc83520bd 100644 --- a/engines/hopkins/objects.cpp +++ b/engines/hopkins/objects.cpp @@ -55,7 +55,6 @@ ObjectsManager::ObjectsManager() { _saveLoadFl = false; SL_MODE = false; _visibleFl = false; - _disableCursorFl = false; BOBTOUS = false; my_anim = 0; NUMZONE = 0; @@ -102,7 +101,6 @@ void ObjectsManager::setParent(HopkinsEngine *vm) { */ void ObjectsManager::changeObject(int objIndex) { _vm->_eventsManager._objectBuf = CAPTURE_OBJET(objIndex, 1); - _vm->_globals._newObjectFl = true; _vm->_globals._curObjectIndex = objIndex; } @@ -118,7 +116,7 @@ byte *ObjectsManager::CAPTURE_OBJET(int objIndex, int mode) { if (_vm->_globals.ADR_FICHIER_OBJ != g_PTRNUL) ObjectsManager::DEL_FICHIER_OBJ(); if (val1 == 1) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "OBJET1.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "OBJET1.SPR"); _vm->_globals.ADR_FICHIER_OBJ = ObjectsManager::loadSprite(_vm->_globals._curFilename); } _vm->_globals.NUM_FICHIER_OBJ = val1; @@ -2077,7 +2075,7 @@ void ObjectsManager::CHARGE_OBSTACLE(const Common::String &file) { _vm->_linesManager.RESET_OBSTACLE(); _vm->_linesManager._linesNumb = 0; _lastLine = 0; - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, file); + _vm->_fileManager.constructFilename("LINK", file); ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename); v4 = 0; v5 = 0; @@ -2132,7 +2130,7 @@ void ObjectsManager::loadZone(const Common::String &file) { _vm->_globals.ZONEP[i].field10 = 0; } - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, file); + _vm->_fileManager.constructFilename("LINK", file); Common::File f; if (!f.exists(_vm->_globals._curFilename)) @@ -2262,9 +2260,8 @@ void ObjectsManager::PLAN_BETA() { _vm->_dialogsManager._inventFl = false; _vm->_eventsManager._gameKey = KEY_NONE; _vm->_globals.Max_Propre = 1; - _vm->_globals.Max_Ligne_Long = 1; + _vm->_globals._maxLineLength = 1; _vm->_globals.Max_Perso_Y = 440; - _vm->_globals.NOSPRECRAN = true; _vm->_globals.PLAN_FLAG = true; _vm->_graphicsManager._noFadingFl = false; _vm->_globals.NOMARCHE = false; @@ -2277,11 +2274,11 @@ void ObjectsManager::PLAN_BETA() { CHARGE_OBSTACLE("PLAN.OB2"); _vm->_globals.loadCache("PLAN.CA2"); loadZone("PLAN.ZO2"); - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "VOITURE.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "VOITURE.SPR"); _spritePtr = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_animationManager.loadAnim("PLAN"); _vm->_graphicsManager.VISU_ALL(); - _vm->_graphicsManager.INI_ECRAN2("PLAN"); + _vm->_graphicsManager.INI_ECRAN2("PLAN", false); for (int v2 = 0; v2 <= 15; v2++) _vm->_globals.CACHE_OFF(v2); _vm->_globals.CACHE_OFF(19); @@ -2358,7 +2355,6 @@ void ObjectsManager::PLAN_BETA() { removeSprite(0); _spritePtr = _vm->_globals.freeMemory(_spritePtr); CLEAR_ECRAN(); - _vm->_globals.NOSPRECRAN = false; _vm->_globals.PLAN_FLAG = false; } @@ -2696,7 +2692,6 @@ void ObjectsManager::CLEAR_ECRAN() { _vm->_globals.GOACTION = false; _forceZoneFl = true; _changeVerbFl = false; - _vm->_globals.NOSPRECRAN = false; _vm->_globals.chemin = (int16 *)g_PTRNUL; _vm->_globals.g_old_sens = -1; my_anim = 1; @@ -2742,7 +2737,7 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha T_RECTIF = 0; loc = &_vm->_globals._saveData->_realHopkins; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.PERSO_TYPE = 0; SPRITE(_vm->_globals.PERSO, loc->_pos, 0, 64, loc->field4, 0, 34, 190); @@ -2768,7 +2763,7 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha _vm->_globals._saveData->data[svField357] = 0; loc = &_vm->_globals._saveData->_samantha; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PSAMAN.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "PSAMAN.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.PERSO_TYPE = 2; SPRITE(_vm->_globals.PERSO, loc->_pos, 0, 64, loc->field4, 0, 20, 127); @@ -3747,7 +3742,7 @@ void ObjectsManager::OPTI_OBJET() { file = "OBJET1.ini"; data = _vm->_fileManager.searchCat(file, 1); if (data == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, file); + _vm->_fileManager.constructFilename("LINK", file); data = _vm->_fileManager.loadFile(_vm->_globals._curFilename); if (data == g_PTRNUL) error("INI file %s not found", file.c_str()); @@ -3970,7 +3965,7 @@ void ObjectsManager::ACTION_DOS(int idx) { _vm->_globals.GESTE = _vm->_globals.freeMemory(_vm->_globals.GESTE); _vm->_globals.GESTE_FLAG = 1; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "DOS.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "DOS.SPR"); _vm->_globals.GESTE = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } if (idx == 1) @@ -3999,7 +3994,7 @@ void ObjectsManager::ACTION_DROITE(int idx) { if (_vm->_globals.GESTE_FLAG != 3) { _vm->_globals.GESTE = _vm->_globals.freeMemory(_vm->_globals.GESTE); _vm->_globals.GESTE_FLAG = 3; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PROFIL.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "PROFIL.SPR"); _vm->_globals.GESTE = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } if (idx == 1) @@ -4028,7 +4023,7 @@ void ObjectsManager::Q_DROITE(int idx) { if (_vm->_globals.GESTE_FLAG != 4) { _vm->_globals.GESTE = _vm->_globals.freeMemory(_vm->_globals.GESTE); _vm->_globals.GESTE_FLAG = 4; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "3Q.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "3Q.SPR"); _vm->_globals.GESTE = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } if (idx == 1) @@ -4057,7 +4052,7 @@ void ObjectsManager::ACTION_FACE(int idx) { if (_vm->_globals.GESTE_FLAG != 2) { _vm->_globals.GESTE = _vm->_globals.freeMemory(_vm->_globals.GESTE); _vm->_globals.GESTE_FLAG = 2; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "FACE.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "FACE.SPR"); _vm->_globals.GESTE = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } if (idx == 1) @@ -4074,7 +4069,7 @@ void ObjectsManager::Q_GAUCHE(int idx) { if (_vm->_globals.GESTE_FLAG != 4) { _vm->_globals.GESTE = _vm->_globals.freeMemory(_vm->_globals.GESTE); _vm->_globals.GESTE_FLAG = 4; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "3Q.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "3Q.SPR"); _vm->_globals.GESTE = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } if (idx == 1) @@ -4103,7 +4098,7 @@ void ObjectsManager::ACTION_GAUCHE(int idx) { if (_vm->_globals.GESTE_FLAG != 3) { _vm->_globals.GESTE = _vm->_globals.freeMemory(_vm->_globals.GESTE); _vm->_globals.GESTE_FLAG = 3; - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PROFIL.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "PROFIL.SPR"); _vm->_globals.GESTE = _vm->_fileManager.loadFile(_vm->_globals._curFilename); } if (idx == 1) @@ -4251,7 +4246,7 @@ void ObjectsManager::INILINK(const Common::String &file) { ptr = _vm->_fileManager.searchCat(filename, 3); nbytes = _vm->_globals._catalogSize; if (ptr == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, filename); + _vm->_fileManager.constructFilename("LINK", filename); if (!f.open(_vm->_globals._curFilename)) error("Error opening file - %s", _vm->_globals._curFilename.c_str()); @@ -4274,9 +4269,9 @@ void ObjectsManager::INILINK(const Common::String &file) { _vm->_globals.CACHE_BANQUE[1] = _vm->_fileManager.searchCat(filename2, 8); if (_vm->_globals.CACHE_BANQUE[1] || _vm->_globals.CACHE_BANQUE[1] == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, filename2); + _vm->_fileManager.constructFilename("LINK", filename2); } else { - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, "RES_SLI.RES"); + _vm->_fileManager.constructFilename("LINK", "RES_SLI.RES"); } _vm->_globals.CACHE_BANQUE[1] = _vm->_fileManager.loadFile(_vm->_globals._curFilename); @@ -4965,7 +4960,7 @@ void ObjectsManager::lockAnimX(int idx, int a2) { } void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Common::String &linkFile, - const Common::String &animFile, const Common::String &s4, int v) { + const Common::String &animFile, const Common::String &s4, int v, bool initializeScreen) { int v5; int v7; int v8; @@ -4990,10 +4985,10 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo _vm->_animationManager.loadAnim(animFile); _vm->_graphicsManager.VISU_ALL(); if (!s4.empty()) { - if (!_vm->_globals.NOSPRECRAN) - _vm->_graphicsManager.INI_ECRAN(s4); - if (!s4.empty() && _vm->_globals.NOSPRECRAN) - _vm->_graphicsManager.INI_ECRAN2(s4); + if (initializeScreen) + _vm->_graphicsManager.INI_ECRAN(s4, initializeScreen); + if (!s4.empty() && !initializeScreen) + _vm->_graphicsManager.INI_ECRAN2(s4, initializeScreen); } _vm->_eventsManager.mouseOn(); if (_vm->_globals._screenId == 61) { @@ -5060,7 +5055,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo } void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Common::String &linkFile, - const Common::String &animFile, const Common::String &s4, int v) { + const Common::String &animFile, const Common::String &s4, int v, bool initializeScreen) { int mouseButtons; bool breakFlag; int xp, yp; @@ -5087,10 +5082,10 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm _vm->_graphicsManager.VISU_ALL(); } if (!s4.empty()) { - if (!_vm->_globals.NOSPRECRAN) - _vm->_graphicsManager.INI_ECRAN(s4); + if (initializeScreen) + _vm->_graphicsManager.INI_ECRAN(s4, initializeScreen); else - _vm->_graphicsManager.INI_ECRAN2(s4); + _vm->_graphicsManager.INI_ECRAN2(s4, initializeScreen); } _vm->_eventsManager.mouseOn(); _vm->_eventsManager._mouseCursorId = 4; @@ -5100,20 +5095,20 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm _vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0); if (_vm->_globals.PERSO_TYPE) { if (!_vm->_globals._saveData->data[svField122] && !_vm->_globals._saveData->data[svField356]) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.PERSO_TYPE = 0; } } if (!_vm->_globals.PERSO_TYPE) { if (_vm->_globals._saveData->data[svField122] == 1) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "HOPFEM.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "HOPFEM.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.PERSO_TYPE = 1; } } if (_vm->_globals.PERSO_TYPE != 2 && _vm->_globals._saveData->data[svField356] == 1) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PSAMAN.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "PSAMAN.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.PERSO_TYPE = 2; } diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h index 5067e8f0ec..38f09d3548 100644 --- a/engines/hopkins/objects.h +++ b/engines/hopkins/objects.h @@ -80,7 +80,6 @@ public: bool _saveLoadFl; int SL_MODE; bool _visibleFl; - bool _disableCursorFl; bool BOBTOUS; int my_anim; int NUMZONE; @@ -240,13 +239,13 @@ public: * Game scene control method */ void PERSONAGE(const Common::String &backgroundFile, const Common::String &linkFile, - const Common::String &animFile, const Common::String &s4, int v); + const Common::String &animFile, const Common::String &s4, int v, bool initializeScreen); /** * Game scene control method */ void PERSONAGE2(const Common::String &backgroundFile, const Common::String &linkFile, - const Common::String &animFile, const Common::String &s4, int v); + const Common::String &animFile, const Common::String &s4, int v, bool initializeScreen); }; } // End of namespace Hopkins diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 941abebe22..dae57bd47d 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -918,7 +918,7 @@ int ScriptManager::handleOpcode(byte *dataP) { break; case 56: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "HOPFEM.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "HOPFEM.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.PERSO_TYPE = 1; _vm->_globals._saveData->data[svField122] = 1; @@ -929,7 +929,7 @@ int ScriptManager::handleOpcode(byte *dataP) { break; case 57: - _vm->_fileManager.constructFilename(_vm->_globals.HOPSYSTEM, "PERSO.SPR"); + _vm->_fileManager.constructFilename("SYSTEM", "PERSO.SPR"); _vm->_globals.PERSO = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _vm->_globals.PERSO_TYPE = 0; _vm->_globals._saveData->data[svField122] = 0; @@ -1352,10 +1352,7 @@ int ScriptManager::handleOpcode(byte *dataP) { _vm->_globals.NOPARLE = true; _vm->_talkManager.PARLER_PERSO("tourist1.pe2"); _vm->_globals.NOPARLE = false; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim2("T421.ANM", 100, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim2("T421a.ANM", 100, 14, 500); + _vm->_animationManager.playAnim2("T421.ANM", 100, 14, 500); _vm->_eventsManager.VBL(); _vm->_eventsManager.VBL(); _vm->_eventsManager.VBL(); @@ -2278,17 +2275,14 @@ int ScriptManager::handleOpcode(byte *dataP) { if (!_vm->_globals._internetFl) { _vm->_graphicsManager.FADE_LINUX = 2; _vm->_graphicsManager._fadeDefaultSpeed = 1; - if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE1A.ANM", 100, 18, 100); - else if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE1.ANM", 100, 18, 100); + _vm->_animationManager.playAnim("BOMBE1A.ANM", 100, 18, 100); } _vm->_graphicsManager.loadImage("BOMBEB"); _vm->_graphicsManager.SETCOLOR3(252, 100, 100, 100); _vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100); _vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100); _vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0); - _vm->_graphicsManager.OPTI_INI("BOMBE", 2); + _vm->_graphicsManager.OPTI_INI("BOMBE", 2, true); _vm->_graphicsManager.fadeInShort(); break; @@ -2313,10 +2307,7 @@ int ScriptManager::handleOpcode(byte *dataP) { _vm->_objectsManager.OPTI_ONE(3, 0, 16, 4); _vm->_soundManager.SPECIAL_SOUND = 199; _vm->_graphicsManager.FADE_LINUX = 2; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); + _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); _vm->_soundManager.SPECIAL_SOUND = 0; memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); _vm->_graphicsManager._noFadingFl = true; @@ -2329,10 +2320,7 @@ int ScriptManager::handleOpcode(byte *dataP) { _vm->_globals.NO_VISU = false; _vm->_objectsManager.OPTI_ONE(1, 0, 16, 4); _vm->_soundManager.SPECIAL_SOUND = 199; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); + _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); _vm->_soundManager.SPECIAL_SOUND = 0; _vm->_graphicsManager._noFadingFl = true; memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); @@ -2347,10 +2335,7 @@ int ScriptManager::handleOpcode(byte *dataP) { _vm->_graphicsManager.fadeOutShort(); _vm->_soundManager.SPECIAL_SOUND = 199; _vm->_graphicsManager.FADE_LINUX = 2; - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE2.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); + _vm->_animationManager.playAnim("BOMBE2A.ANM", 50, 14, 500); _vm->_soundManager.SPECIAL_SOUND = 0; _vm->_graphicsManager._noFadingFl = true; memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); @@ -2363,10 +2348,7 @@ int ScriptManager::handleOpcode(byte *dataP) { _vm->_globals.NO_VISU = false; _vm->_objectsManager.OPTI_ONE(6, 0, 16, 4); if ((_vm->getPlatform() != Common::kPlatformWindows) || !_vm->getIsDemo()) { - if (_vm->_globals.SVGA == 1) - _vm->_animationManager.playAnim("BOMBE3.ANM", 50, 14, 500); - else if (_vm->_globals.SVGA == 2) - _vm->_animationManager.playAnim("BOMBE3A.ANM", 50, 14, 500); + _vm->_animationManager.playAnim("BOMBE3A.ANM", 50, 14, 500); memset(_vm->_graphicsManager._vesaBuffer, 0, 614400); } _vm->_globals._exitId = 6; diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp index cf06046bbe..1628268eca 100644 --- a/engines/hopkins/sound.cpp +++ b/engines/hopkins/sound.cpp @@ -319,7 +319,7 @@ void SoundManager::playAnim_SOUND(int soundNumber) { } static const char *modSounds[] = { - "appart", "ville", "Rock", "police", "deep" + "appart", "ville", "Rock", "police", "deep", "purgat", "riviere", "SUSPENS", "labo", "cadavre", "cabane", "purgat2", "foret", "ile", "ile2", "hopkins", "peur", "URAVOLGA", "BASE", "cadavre2", @@ -380,7 +380,7 @@ void SoundManager::PLAY_MOD(const Common::String &file) { modFile += "2"; } } - _vm->_fileManager.constructFilename(_vm->_globals.HOPMUSIC, modFile); + _vm->_fileManager.constructFilename("MUSIC", modFile); if (MOD_FLAG) { stopMusic(); delMusic(); @@ -520,34 +520,34 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode) { if (!_vm->_fileManager.searchCat(filename + ".WAV", 9)) { if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "ENG_VOI.RES"); + _vm->_fileManager.constructFilename("VOICE", "ENG_VOI.RES"); // Win95 and Linux versions uses another set of names else if (_vm->_globals._language == LANG_FR) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "RES_VFR.RES"); + _vm->_fileManager.constructFilename("VOICE", "RES_VFR.RES"); else if (_vm->_globals._language == LANG_EN) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "RES_VAN.RES"); + _vm->_fileManager.constructFilename("VOICE", "RES_VAN.RES"); else if (_vm->_globals._language == LANG_SP) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "RES_VES.RES"); + _vm->_fileManager.constructFilename("VOICE", "RES_VES.RES"); catPos = _vm->_globals._catalogPos; catLen = _vm->_globals._catalogSize; } else if (!_vm->_fileManager.searchCat(filename + ".APC", 9)) { if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "ENG_VOI.RES"); + _vm->_fileManager.constructFilename("VOICE", "ENG_VOI.RES"); // Win95 and Linux versions uses another set of names else if (_vm->_globals._language == LANG_FR) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "RES_VFR.RES"); + _vm->_fileManager.constructFilename("VOICE", "RES_VFR.RES"); else if (_vm->_globals._language == LANG_EN) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "RES_VAN.RES"); + _vm->_fileManager.constructFilename("VOICE", "RES_VAN.RES"); else if (_vm->_globals._language == LANG_SP) - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, "RES_VES.RES"); + _vm->_fileManager.constructFilename("VOICE", "RES_VES.RES"); catPos = _vm->_globals._catalogPos; catLen = _vm->_globals._catalogSize; } else { - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, filename + ".WAV"); + _vm->_fileManager.constructFilename("VOICE", filename + ".WAV"); if (!f.exists(_vm->_globals._curFilename)) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPVOICE, filename + ".APC"); + _vm->_fileManager.constructFilename("VOICE", filename + ".APC"); if (!f.exists(_vm->_globals._curFilename)) return false; } @@ -626,7 +626,7 @@ void SoundManager::MODSetMusicVolume(int volume) { } void SoundManager::loadSample(int wavIndex, const Common::String &file) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSOUND, file); + _vm->_fileManager.constructFilename("SOUND", file); LOAD_SAMPLE2_SDL(wavIndex, _vm->_globals._curFilename, 0); SOUND[wavIndex]._active = true; } @@ -758,7 +758,7 @@ void SoundManager::LOAD_SAMPLE2_SDL(int wavIndex, const Common::String &filename } void SoundManager::LOAD_NWAV(const Common::String &file, int wavIndex) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPSOUND, file); + _vm->_fileManager.constructFilename("SOUND", file); LOAD_SAMPLE2_SDL(wavIndex, _vm->_globals._curFilename, 1); } diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp index 930e87df6c..3d00c441fd 100644 --- a/engines/hopkins/talk.cpp +++ b/engines/hopkins/talk.cpp @@ -62,7 +62,7 @@ void TalkManager::PARLER_PERSO(const Common::String &filename) { _characterBuffer = _vm->_fileManager.searchCat(filename, 5); _characterSize = _vm->_globals._catalogSize; if (_characterBuffer == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, filename); + _vm->_fileManager.constructFilename("ANIM", filename); _characterBuffer = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _characterSize = _vm->_fileManager.fileSize(_vm->_globals._curFilename); } @@ -81,9 +81,9 @@ void TalkManager::PARLER_PERSO(const Common::String &filename) { _paletteBufferIdx = 20 * (int16)READ_LE_UINT16((uint16 *)_characterBuffer + 42) + 110; _characterSprite = _vm->_fileManager.searchCat(spriteFilename, 7); if (_characterSprite) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, spriteFilename); + _vm->_fileManager.constructFilename("ANIM", spriteFilename); } else { - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, "RES_SAN.RES"); + _vm->_fileManager.constructFilename("ANIM", "RES_SAN.RES"); } _characterSprite = _vm->_objectsManager.loadSprite(_vm->_globals._curFilename); @@ -156,14 +156,14 @@ void TalkManager::PARLER_PERSO(const Common::String &filename) { } void TalkManager::PARLER_PERSO2(const Common::String &filename) { - _vm->_objectsManager._disableCursorFl = true; + // TODO: The original disables the mouse cursor here STATI = 1; bool v7 = _vm->_globals._disableInventFl; _vm->_globals._disableInventFl = true; _characterBuffer = _vm->_fileManager.searchCat(filename, 5); _characterSize = _vm->_globals._catalogSize; if (_characterBuffer == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, filename); + _vm->_fileManager.constructFilename("ANIM", filename); _characterBuffer = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _characterSize = _vm->_fileManager.fileSize(_vm->_globals._curFilename); } @@ -222,7 +222,7 @@ void TalkManager::PARLER_PERSO2(const Common::String &filename) { _vm->_eventsManager.changeMouseCursor(v8); _vm->_graphicsManager.initColorTable(145, 150, _vm->_graphicsManager._palette); _vm->_graphicsManager.setPaletteVGA256(_vm->_graphicsManager._palette); - _vm->_objectsManager._disableCursorFl = false; + // TODO: The original reenables the mouse cursor here _vm->_globals._disableInventFl = v7; STATI = 0; } @@ -576,7 +576,7 @@ int TalkManager::VERIF_BOITE(int idx, const Common::String &file, int a3) { v18 = 0; _vm->_globals.police_l = 11; - _vm->_fileManager.constructFilename(_vm->_globals.HOPLINK, file); + _vm->_fileManager.constructFilename("LINK", file); // Build up the filename filename = dest = _vm->_globals._curFilename; @@ -1087,7 +1087,7 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) { _characterBuffer = _vm->_fileManager.searchCat(a2, 5); _characterSize = _vm->_globals._catalogSize; if (_characterBuffer == g_PTRNUL) { - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, a2); + _vm->_fileManager.constructFilename("ANIM", a2); _characterBuffer = _vm->_fileManager.loadFile(_vm->_globals._curFilename); _characterSize = _vm->_fileManager.fileSize(_vm->_globals._curFilename); } @@ -1100,9 +1100,9 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) { _characterSprite = _vm->_fileManager.searchCat(v23, 7); if (_characterSprite) - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, v23); + _vm->_fileManager.constructFilename("ANIM", v23); else - _vm->_fileManager.constructFilename(_vm->_globals.HOPANIM, "RES_SAN.RES"); + _vm->_fileManager.constructFilename("ANIM", "RES_SAN.RES"); _characterSprite = _vm->_objectsManager.loadSprite(_vm->_globals._curFilename); @@ -1130,7 +1130,7 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) { initCharacterAnim(); VISU_PARLE(); dialogWait(); - _vm->_graphicsManager.INI_ECRAN2(v22); + _vm->_graphicsManager.INI_ECRAN2(v22, true); _vm->_globals.NOMARCHE = true; _vm->_objectsManager._forceZoneFl = true; _vm->_objectsManager.NUMZONE = -1; @@ -1164,7 +1164,7 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) { _vm->_globals.COUCOU = v11; _vm->_objectsManager._disableFl = true; _vm->_objectsManager.INILINK(v20); - _vm->_graphicsManager.INI_ECRAN2(v20); + _vm->_graphicsManager.INI_ECRAN2(v20, true); _vm->_objectsManager._disableFl = false; _vm->_globals.NOMARCHE = false; if (_vm->_globals._exitId == 101) |