aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2013-01-07 11:07:33 -0800
committerStrangerke2013-01-07 11:07:33 -0800
commit823f99b19f67724128d45ada93a9c23b47fa93ac (patch)
treec20b07811fd8af5d5ecd7e902cd3cfd39be4771c
parent8c611d91e77883a66e72ba7740890157e2e5123c (diff)
parent416463c3dab090b888bc13cecf8262470872e411 (diff)
downloadscummvm-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.cpp22
-rw-r--r--engines/hopkins/computer.cpp22
-rw-r--r--engines/hopkins/dialogs.cpp31
-rw-r--r--engines/hopkins/files.cpp64
-rw-r--r--engines/hopkins/files.h2
-rw-r--r--engines/hopkins/font.cpp4
-rw-r--r--engines/hopkins/globals.cpp33
-rw-r--r--engines/hopkins/globals.h21
-rw-r--r--engines/hopkins/graphics.cpp32
-rw-r--r--engines/hopkins/graphics.h6
-rw-r--r--engines/hopkins/hopkins.cpp1710
-rw-r--r--engines/hopkins/lines.cpp2
-rw-r--r--engines/hopkins/menu.cpp8
-rw-r--r--engines/hopkins/objects.cpp65
-rw-r--r--engines/hopkins/objects.h5
-rw-r--r--engines/hopkins/script.cpp36
-rw-r--r--engines/hopkins/sound.cpp28
-rw-r--r--engines/hopkins/talk.cpp24
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)