aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2012-10-06 23:21:10 +1000
committerPaul Gilbert2012-10-06 23:21:10 +1000
commit575f179f0f3fc62d4173115c141c6641f794c9ab (patch)
tree2769213b3d0cfa29b2c033c6a19e5636475c2a0a
parentb718039a8a1041b70db56be5c76e876f8c130079 (diff)
downloadscummvm-rg350-575f179f0f3fc62d4173115c141c6641f794c9ab.tar.gz
scummvm-rg350-575f179f0f3fc62d4173115c141c6641f794c9ab.tar.bz2
scummvm-rg350-575f179f0f3fc62d4173115c141c6641f794c9ab.zip
HOPKINS: Converted the file manager from static to a standard manager class
-rw-r--r--engines/hopkins/anim.cpp154
-rw-r--r--engines/hopkins/dialogs.cpp8
-rw-r--r--engines/hopkins/events.cpp2
-rw-r--r--engines/hopkins/files.cpp117
-rw-r--r--engines/hopkins/files.h41
-rw-r--r--engines/hopkins/font.cpp2
-rw-r--r--engines/hopkins/globals.cpp12
-rw-r--r--engines/hopkins/graphics.cpp72
-rw-r--r--engines/hopkins/hopkins.cpp255
-rw-r--r--engines/hopkins/hopkins.h2
-rw-r--r--engines/hopkins/menu.cpp32
-rw-r--r--engines/hopkins/objects.cpp108
-rw-r--r--engines/hopkins/talk.cpp58
13 files changed, 440 insertions, 423 deletions
diff --git a/engines/hopkins/anim.cpp b/engines/hopkins/anim.cpp
index 6e463a1781..3971300ff4 100644
--- a/engines/hopkins/anim.cpp
+++ b/engines/hopkins/anim.cpp
@@ -55,10 +55,10 @@ void AnimationManager::PLAY_ANM(const Common::String &filename, uint32 rate1, ui
v18 = 1;
screenP = _vm->_graphicsManager.VESA_SCREEN;
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPANM, filename);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANM, filename);
- if (!f.open(GLOBALS.NFICHIER))
- error("Not Found file %s", GLOBALS.NFICHIER.c_str());
+ if (!f.open(_vm->_globals.NFICHIER))
+ error("Not Found file %s", _vm->_globals.NFICHIER.c_str());
// TODO: Original above read seems to overlap the doneFlag
f.skip(6);
@@ -86,7 +86,7 @@ void AnimationManager::PLAY_ANM(const Common::String &filename, uint32 rate1, ui
if (_vm->_graphicsManager.WinScan / _vm->_graphicsManager.Winbpp > SCREEN_WIDTH) {
doneFlag = 1;
- screenCopy = GLOBALS.dos_malloc2(SCREEN_WIDTH * SCREEN_HEIGHT);
+ screenCopy = _vm->_globals.dos_malloc2(SCREEN_WIDTH * SCREEN_HEIGHT);
memcpy(screenCopy, screenP, SCREEN_WIDTH * SCREEN_HEIGHT);
}
@@ -163,7 +163,7 @@ void AnimationManager::PLAY_ANM(const Common::String &filename, uint32 rate1, ui
if (doneFlag <= SCREEN_WIDTH)
goto MAIN_LOOP;
- screenCopy = GLOBALS.dos_free2(screenCopy);
+ screenCopy = _vm->_globals.dos_free2(screenCopy);
goto MAIN_LOOP;
}
#endif
@@ -218,7 +218,7 @@ REDRAW_ANIM:
if (doneFlag != 1)
goto MAIN_LOOP;
- screenCopy = GLOBALS.dos_free2(screenCopy);
+ screenCopy = _vm->_globals.dos_free2(screenCopy);
goto MAIN_LOOP;
}
#endif
@@ -234,7 +234,7 @@ REDRAW_ANIM:
FINISH:
if (_vm->_graphicsManager.FADE_LINUX == 2 && !doneFlag) {
- screenCopy = GLOBALS.dos_malloc2(SCREEN_WIDTH * SCREEN_HEIGHT);
+ screenCopy = _vm->_globals.dos_malloc2(SCREEN_WIDTH * SCREEN_HEIGHT);
f.skip(6);
f.read(_vm->_graphicsManager.Palette, PALETTE_EXT_BLOCK_SIZE);
@@ -270,18 +270,18 @@ FINISH:
} while (!doneFlag);
_vm->_graphicsManager.FADE_OUTW_LINUX(screenCopy);
- screenCopy = GLOBALS.dos_free2(screenCopy);
+ screenCopy = _vm->_globals.dos_free2(screenCopy);
}
if (doneFlag == 1) {
if (_vm->_graphicsManager.FADE_LINUX == 2)
_vm->_graphicsManager.FADE_OUTW_LINUX(screenCopy);
- GLOBALS.dos_free2(screenCopy);
+ _vm->_globals.dos_free2(screenCopy);
}
_vm->_graphicsManager.FADE_LINUX = 0;
f.close();
- GLOBALS.dos_free2(screenCopy);
+ _vm->_globals.dos_free2(screenCopy);
_vm->_graphicsManager.NOLOCK = false;
}
@@ -315,16 +315,16 @@ void AnimationManager::PLAY_ANM2(const Common::String &filename, uint32 a2, uint
v18 = 0;
v20 = 1;
memcpy(_vm->_graphicsManager.OLD_PAL, _vm->_graphicsManager.Palette, 0x301u);
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
if (_vm->_graphicsManager.nbrligne == SCREEN_WIDTH)
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
if (_vm->_graphicsManager.nbrligne == 1280)
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
if (!_vm->_graphicsManager.nbrligne)
_vm->_graphicsManager.ofscroll = 0;
v12 = _vm->_graphicsManager.VESA_SCREEN;
v13 = _vm->_globals.dos_malloc2(0x14u);
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANM, filename);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANM, filename);
if (!f.open(_vm->_globals.NFICHIER))
error("Error opening file - %s");
@@ -398,8 +398,8 @@ void AnimationManager::PLAY_ANM2(const Common::String &filename, uint32 a2, uint
_vm->_globals.dos_free2(v13);
f.close();
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
memcpy(_vm->_graphicsManager.Palette, _vm->_graphicsManager.OLD_PAL, 0x301u);
v4 = &_vm->_graphicsManager.Palette[769];
_vm->_graphicsManager.Cls_Pal();
@@ -503,8 +503,8 @@ LABEL_88:
_vm->_globals.dos_free2(v13);
f.close();
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
memcpy(_vm->_graphicsManager.Palette, _vm->_graphicsManager.OLD_PAL, 0x301u);
v4 = &_vm->_graphicsManager.Palette[769];
_vm->_graphicsManager.Cls_Pal();
@@ -567,8 +567,8 @@ LABEL_88:
_vm->_globals.dos_free2(v13);
f.close();
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
memcpy(_vm->_graphicsManager.Palette, _vm->_graphicsManager.OLD_PAL, 0x301u);
v4 = &_vm->_graphicsManager.Palette[769];
_vm->_graphicsManager.Cls_Pal();
@@ -664,8 +664,8 @@ LABEL_114:
}
_vm->_graphicsManager.FADE_LINUX = 0;
_vm->_globals.dos_free2(v13);
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
memcpy(_vm->_graphicsManager.Palette, _vm->_graphicsManager.OLD_PAL, 0x301u);
_vm->_graphicsManager.Cls_Pal();
_vm->_graphicsManager.DD_Lock();
@@ -730,11 +730,11 @@ void AnimationManager::CHARGE_ANIM(const Common::String &animName) {
CLEAR_ANIM();
Common::String filename = animName + ".ANI";
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPANIM, filename);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, filename);
Common::File f;
- if (!f.open(GLOBALS.NFICHIER))
- error("Failed to open %s", GLOBALS.NFICHIER.c_str());
+ if (!f.open(_vm->_globals.NFICHIER))
+ error("Failed to open %s", _vm->_globals.NFICHIER.c_str());
int filesize = f.size();
int nbytes = filesize - 115;
@@ -755,16 +755,16 @@ void AnimationManager::CHARGE_ANIM(const Common::String &animName) {
for (int idx = 1; idx <= 6; ++idx) {
if (files[idx - 1][0]) {
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPANIM, files[idx - 1]);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, files[idx - 1]);
- if (!f.exists(GLOBALS.NFICHIER))
+ if (!f.exists(_vm->_globals.NFICHIER))
error("File not found");
if (CHARGE_BANK_SPRITE1(idx, files[idx - 1]))
error("File not compatible with this soft.");
}
}
- byte *data = GLOBALS.dos_malloc2(nbytes + 1);
+ byte *data = _vm->_globals.dos_malloc2(nbytes + 1);
f.read(data, nbytes);
f.close();
@@ -772,23 +772,23 @@ void AnimationManager::CHARGE_ANIM(const Common::String &animName) {
RECHERCHE_ANIM(data, idx, nbytes);
}
- GLOBALS.dos_free2(data);
+ _vm->_globals.dos_free2(data);
}
void AnimationManager::CLEAR_ANIM() {
for (int idx = 0; idx < 35; ++idx) {
- if (GLOBALS.Bqe_Anim[idx].data != PTRNUL)
- GLOBALS.Bqe_Anim[idx].data = GLOBALS.dos_free2(GLOBALS.Bqe_Anim[idx].data);
- GLOBALS.Bqe_Anim[idx].field4 = 0;
+ if (_vm->_globals.Bqe_Anim[idx].data != PTRNUL)
+ _vm->_globals.Bqe_Anim[idx].data = _vm->_globals.dos_free2(_vm->_globals.Bqe_Anim[idx].data);
+ _vm->_globals.Bqe_Anim[idx].field4 = 0;
}
for (int idx = 0; idx < 8; ++idx) {
- if (GLOBALS.Bank[idx].data != PTRNUL)
- GLOBALS.Bank[idx].data = GLOBALS.dos_free2(GLOBALS.Bank[idx].data);
- GLOBALS.Bank[idx].field4 = 0;
- GLOBALS.Bank[idx].filename1 = "";
- GLOBALS.Bank[idx].fileHeader = 0;
- GLOBALS.Bank[idx].field1C = 0;
+ if (_vm->_globals.Bank[idx].data != PTRNUL)
+ _vm->_globals.Bank[idx].data = _vm->_globals.dos_free2(_vm->_globals.Bank[idx].data);
+ _vm->_globals.Bank[idx].field4 = 0;
+ _vm->_globals.Bank[idx].filename1 = "";
+ _vm->_globals.Bank[idx].fileHeader = 0;
+ _vm->_globals.Bank[idx].field1C = 0;
}
}
@@ -807,23 +807,23 @@ int AnimationManager::CHARGE_BANK_SPRITE1(int idx, const Common::String &filenam
int v20;
int v21;
int result = 0;
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPANIM, filename);
- GLOBALS.Bank[idx].field1C = FileManager::FLONG(GLOBALS.NFICHIER);
- GLOBALS.Bank[idx].field4 = 1;
- GLOBALS.Bank[idx].filename1 = filename;
- GLOBALS.Bank[idx].filename2 = GLOBALS.REP_SPR;
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, filename);
+ _vm->_globals.Bank[idx].field1C = _vm->_fileManager.FLONG(_vm->_globals.NFICHIER);
+ _vm->_globals.Bank[idx].field4 = 1;
+ _vm->_globals.Bank[idx].filename1 = filename;
+ _vm->_globals.Bank[idx].filename2 = _vm->_globals.REP_SPR;
- v3 = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
+ v3 = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
v4 = v3;
- GLOBALS.Bank[idx].fileHeader = 0;
+ _vm->_globals.Bank[idx].fileHeader = 0;
if (*(v3 + 1) == 'L' && *(v3 + 2) == 'E')
- GLOBALS.Bank[idx].fileHeader = 1;
+ _vm->_globals.Bank[idx].fileHeader = 1;
if (*(v3 + 1) == 'O' && *(v3 + 2) == 'R')
- GLOBALS.Bank[184].fileHeader = 2;
+ _vm->_globals.Bank[184].fileHeader = 2;
- if (GLOBALS.Bank[idx].fileHeader) {
- GLOBALS.Bank[idx].data = v3;
+ if (_vm->_globals.Bank[idx].fileHeader) {
+ _vm->_globals.Bank[idx].data = v3;
v7 = 0;
v8 = 0;
@@ -841,45 +841,45 @@ int AnimationManager::CHARGE_BANK_SPRITE1(int idx, const Common::String &filenam
} while (v7 != 1);
if (v8 <= 249) {
- GLOBALS.Bank[idx].field1A = v8;
+ _vm->_globals.Bank[idx].field1A = v8;
- Common::String ofsFilename = GLOBALS.Bank[idx].filename1;
+ Common::String ofsFilename = _vm->_globals.Bank[idx].filename1;
while (ofsFilename.lastChar() != '.')
ofsFilename.deleteLastChar();
ofsFilename += ".OFS";
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPANIM, ofsFilename);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, ofsFilename);
Common::File f;
- if (!f.exists(GLOBALS.NFICHIER)) {
- v19 = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
+ if (!f.exists(_vm->_globals.NFICHIER)) {
+ v19 = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
v13 = v19;
- if (GLOBALS.Bank[idx].field1A > 0) {
- for (int v14 = 0; v14 < GLOBALS.Bank[idx].field1A; ++v14) {
+ if (_vm->_globals.Bank[idx].field1A > 0) {
+ for (int v14 = 0; v14 < _vm->_globals.Bank[idx].field1A; ++v14) {
v16 = READ_LE_UINT16(v13);
v17 = READ_LE_UINT16(v13 + 2);
v21 = READ_LE_UINT16(v13 + 4);
v20 = READ_LE_UINT16(v13 + 6);
v13 += 8;
- _vm->_objectsManager.set_offsetxy(GLOBALS.Bank[idx].data, v14, v16, v17, 0);
- if (GLOBALS.Bank[idx].fileHeader == 2)
- _vm->_objectsManager.set_offsetxy(GLOBALS.Bank[idx].data, v14, v21, v20, 1);
+ _vm->_objectsManager.set_offsetxy(_vm->_globals.Bank[idx].data, v14, v16, v17, 0);
+ if (_vm->_globals.Bank[idx].fileHeader == 2)
+ _vm->_objectsManager.set_offsetxy(_vm->_globals.Bank[idx].data, v14, v21, v20, 1);
}
}
- GLOBALS.dos_free2(v19);
+ _vm->_globals.dos_free2(v19);
}
result = 0;
} else {
- GLOBALS.dos_free2(ptr);
- GLOBALS.Bank[idx].field4 = 0;
+ _vm->_globals.dos_free2(ptr);
+ _vm->_globals.Bank[idx].field4 = 0;
result = -2;
}
} else {
- GLOBALS.dos_free2(v3);
- GLOBALS.Bank[idx].field4 = 0;
+ _vm->_globals.dos_free2(v3);
+ _vm->_globals.Bank[idx].field4 = 0;
result = -1;
}
@@ -933,8 +933,8 @@ void AnimationManager::RECHERCHE_ANIM(const byte *data, int idx, int nbytes) {
breakFlag = true;
if (nbytes < v6) {
- GLOBALS.Bqe_Anim[idx].field4 = 0;
- GLOBALS.Bqe_Anim[idx].data = PTRNUL;
+ _vm->_globals.Bqe_Anim[idx].field4 = 0;
+ _vm->_globals.Bqe_Anim[idx].data = PTRNUL;
}
++v6;
@@ -942,11 +942,11 @@ void AnimationManager::RECHERCHE_ANIM(const byte *data, int idx, int nbytes) {
++v5;
} while (!breakFlag);
- GLOBALS.Bqe_Anim[idx].data = GLOBALS.dos_malloc2(v7 + 50);
- GLOBALS.Bqe_Anim[idx].field4 = 1;
- memcpy(GLOBALS.Bqe_Anim[idx].data, v21 + data + 5, 20);
+ _vm->_globals.Bqe_Anim[idx].data = _vm->_globals.dos_malloc2(v7 + 50);
+ _vm->_globals.Bqe_Anim[idx].field4 = 1;
+ memcpy(_vm->_globals.Bqe_Anim[idx].data, v21 + data + 5, 20);
- byte *dataP = GLOBALS.Bqe_Anim[idx].data;
+ byte *dataP = _vm->_globals.Bqe_Anim[idx].data;
v9 = dataP + 20;
v23 = v21 + data + 25;
@@ -1019,17 +1019,17 @@ void AnimationManager::PLAY_SEQ(int a1, const Common::String &a2, uint32 a3, uin
_vm->_eventsManager.souris_flag = 0;
if (!NO_COUL) {
_vm->_eventsManager.VBL();
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
if (_vm->_graphicsManager.nbrligne == SCREEN_WIDTH)
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
if (_vm->_graphicsManager.nbrligne == (SCREEN_WIDTH * 2))
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
if (!_vm->_graphicsManager.nbrligne)
_vm->_graphicsManager.ofscroll = 0;
}
v9 = _vm->_graphicsManager.VESA_SCREEN;
v10 = _vm->_globals.dos_malloc2(0x16u);
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPSEQ, a2);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPSEQ, a2);
if (!f.open(_vm->_globals.NFICHIER))
error("Error opening file - %s", _vm->_globals.NFICHIER);
@@ -1149,8 +1149,8 @@ LABEL_59:
f.close();
if (!NO_COUL) {
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
_vm->_eventsManager.souris_flag = 1;
}
if (v7 == 1)
@@ -1187,7 +1187,7 @@ void AnimationManager::PLAY_SEQ2(const Common::String &a1, uint32 a2, uint32 a3,
_vm->_eventsManager.souris_flag = 0;
v10 = _vm->_graphicsManager.VESA_SCREEN;
v11 = _vm->_globals.dos_malloc2(0x16u);
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPSEQ, a1);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPSEQ, a1);
if (!f.open(_vm->_globals.NFICHIER))
error("File not found ", _vm->_globals.NFICHIER.c_str());
diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp
index 0cf1af84b5..4ed86cf7a6 100644
--- a/engines/hopkins/dialogs.cpp
+++ b/engines/hopkins/dialogs.cpp
@@ -40,13 +40,13 @@ void OptionsDialog::show(HopkinsEngine *vm) {
vm->_eventsManager.CHANGE_MOUSE(0);
vm->_eventsManager.VBL();
if (vm->_globals.FR == 1)
- FileManager::CONSTRUIT_SYSTEM("OPTIFR.SPR");
+ vm->_fileManager.CONSTRUIT_SYSTEM("OPTIFR.SPR");
if (!vm->_globals.FR)
- FileManager::CONSTRUIT_SYSTEM("OPTIAN.SPR");
+ vm->_fileManager.CONSTRUIT_SYSTEM("OPTIAN.SPR");
if (vm->_globals.FR == 2)
- FileManager::CONSTRUIT_SYSTEM("OPTIES.SPR");
+ vm->_fileManager.CONSTRUIT_SYSTEM("OPTIES.SPR");
- vm->_globals.OPTION_SPR = FileManager::CHARGE_FICHIER(vm->_globals.NFICHIER);
+ vm->_globals.OPTION_SPR = vm->_fileManager.CHARGE_FICHIER(vm->_globals.NFICHIER);
vm->_globals.OPTION_FLAG = true;
do {
diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp
index b60562c92d..aaac4574b6 100644
--- a/engines/hopkins/events.cpp
+++ b/engines/hopkins/events.cpp
@@ -264,7 +264,7 @@ void EventsManager::VBL() {
m_scroll(VESA_BUFFER, ofscroll, 50, SCREEN_WIDTH, 340, 0, 50);
else
m_scroll(VESA_BUFFER, ofscroll, 20, SCREEN_WIDTH, 440, 0, 20);
- FileManager::DMESS();
+ _vm->_fileManager.DMESS();
--REDRAW;
}
DD_Unlock();
diff --git a/engines/hopkins/files.cpp b/engines/hopkins/files.cpp
index 0708c1d178..a6a0d28cf3 100644
--- a/engines/hopkins/files.cpp
+++ b/engines/hopkins/files.cpp
@@ -31,6 +31,13 @@
namespace Hopkins {
+FileManager::FileManager() {
+}
+
+void FileManager::setParent(HopkinsEngine *vm) {
+ _vm = vm;
+}
+
void FileManager::initSaves() {
Common::String dataFilename = "HISCORE.DAT";
byte data[100];
@@ -107,7 +114,7 @@ byte *FileManager::CHARGE_FICHIER(const Common::String &file) {
// Allocate space for the file contents
size_t filesize = f.size();
- byte *data = GLOBALS.dos_malloc2(filesize);
+ byte *data = _vm->_globals.dos_malloc2(filesize);
if (!data)
error("Error allocating space for file being loaded - %s", file.c_str());
@@ -126,7 +133,7 @@ void FileManager::CHARGE_FICHIER2(const Common::String &file, byte *buf) {
error("Error opening file - %s", file.c_str());
filesize = f.size();
- FileManager::bload_it(f, buf, filesize);
+ _vm->_fileManager.bload_it(f, buf, filesize);
f.close();
}
@@ -143,7 +150,7 @@ void FileManager::bload(const Common::String &file, byte *buf) {
if (!f.open(file))
error("Error openinig file - %s", file.c_str());
int32 filesize = f.size();
- FileManager::bload_it(f, buf, filesize);
+ _vm->_fileManager.bload_it(f, buf, filesize);
f.close();
}
@@ -152,26 +159,26 @@ int FileManager::bload_it(Common::ReadStream &stream, void *buf, size_t nbytes)
}
void FileManager::F_Censure() {
- GLOBALS.CENSURE = false;
+ _vm->_globals.CENSURE = false;
CONSTRUIT_SYSTEM("BLOOD.DAT");
- char *data = (char *)CHARGE_FICHIER(GLOBALS.NFICHIER);
+ char *data = (char *)CHARGE_FICHIER(_vm->_globals.NFICHIER);
if (*(data + 6) == 'f' && *(data + 7) == 'r')
- GLOBALS.CENSURE = false;
+ _vm->_globals.CENSURE = false;
if (*(data + 6) == 'F' && *(data + 7) == 'R')
- GLOBALS.CENSURE = false;
+ _vm->_globals.CENSURE = false;
if (*(data + 6) == 'u' && *(data + 7) == 'k')
- GLOBALS.CENSURE = true;
+ _vm->_globals.CENSURE = true;
if (*(data + 6) == 'U' && *(data + 7) == 'K')
- GLOBALS.CENSURE = true;
+ _vm->_globals.CENSURE = true;
free(data);
}
int FileManager::CONSTRUIT_SYSTEM(const Common::String &file) {
- GLOBALS.NFICHIER = Common::String::format("system/%s", file.c_str());
- return GLOBALS.NFICHIER.size();
+ _vm->_globals.NFICHIER = Common::String::format("system/%s", file.c_str());
+ return _vm->_globals.NFICHIER.size();
}
void FileManager::CONSTRUIT_FICHIER(const Common::String &hop, const Common::String &file) {
@@ -182,7 +189,7 @@ void FileManager::CONSTRUIT_FICHIER(const Common::String &hop, const Common::Str
error("TODO: CONSTRUIT_FICHIER");
}
- GLOBALS.NFICHIER = Common::String::format("%s/%s", hop.c_str(), file.c_str());
+ _vm->_globals.NFICHIER = Common::String::format("%s/%s", hop.c_str(), file.c_str());
}
byte *FileManager::LIBERE_FICHIER(byte *ptr) {
@@ -196,91 +203,91 @@ byte *FileManager::RECHERCHE_CAT(const Common::String &file, int a2) {
switch (a2) {
case 1:
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_INI.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_INI.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_INI.RES");
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_INI.RES");
break;
case 2:
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_REP.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_REP.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_REP.RES");
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_REP.RES");
break;
case 3:
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_LIN.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_LIN.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_LIN.RES");
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_LIN.RES");
break;
case 4:
- CONSTRUIT_FICHIER(GLOBALS.HOPANIM, "RES_ANI.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_ANI.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
- CONSTRUIT_FICHIER(GLOBALS.HOPANIM, "RES_ANI.RES");
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_ANI.RES");
break;
case 5:
- CONSTRUIT_FICHIER(GLOBALS.HOPANIM, "RES_PER.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_PER.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
- CONSTRUIT_FICHIER(GLOBALS.HOPANIM, "RES_PER.RES");
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_PER.RES");
break;
case 6:
- CONSTRUIT_FICHIER(GLOBALS.HOPIMAGE, "PIC.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPIMAGE, "PIC.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
break;
case 7:
- CONSTRUIT_FICHIER(GLOBALS.HOPANIM, "RES_SAN.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_SAN.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
break;
case 8:
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_SLI.CAT");
- if (!f.exists(GLOBALS.NFICHIER))
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_SLI.CAT");
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
break;
case 9:
- switch (GLOBALS.FR) {
+ switch (_vm->_globals.FR) {
case 0:
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_VAN.CAT");
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_VAN.CAT");
break;
case 1:
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_VFR.CAT");
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_VFR.CAT");
break;
case 2:
- CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "RES_VES.CAT");
+ CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_VES.CAT");
break;
}
- if (!f.exists(GLOBALS.NFICHIER))
+ if (!f.exists(_vm->_globals.NFICHIER))
return PTRNUL;
- ptr = CHARGE_FICHIER(GLOBALS.NFICHIER);
+ ptr = CHARGE_FICHIER(_vm->_globals.NFICHIER);
break;
// Deliberate fall-through to
default:
@@ -298,33 +305,33 @@ byte *FileManager::RECHERCHE_CAT(const Common::String &file, int a2) {
if (name == file) {
// Found entry for file, so get it's details from the catalogue entry
const byte *pData = ptr + offsetVal;
- GLOBALS.CAT_POSI = READ_LE_UINT32(pData + 15);
- GLOBALS.CAT_TAILLE = READ_LE_UINT32(pData + 19);
+ _vm->_globals.CAT_POSI = READ_LE_UINT32(pData + 15);
+ _vm->_globals.CAT_TAILLE = READ_LE_UINT32(pData + 19);
matchFlag = true;
}
if (name == "FINIS") {
- GLOBALS.dos_free2(ptr);
+ _vm->_globals.dos_free2(ptr);
return false;
}
offsetVal += 23;
} while (!matchFlag);
- GLOBALS.dos_free2(ptr);
+ _vm->_globals.dos_free2(ptr);
// TODO: Double check whether this really should be an unsigned int comparison
if ((uint16)(a2 - 6) > 1 && (uint16)(a2 - 8) > 1) {
- if (!f.open(GLOBALS.NFICHIER))
+ if (!f.open(_vm->_globals.NFICHIER))
error("CHARGE_FICHIER");
- f.seek(GLOBALS.CAT_POSI);
+ f.seek(_vm->_globals.CAT_POSI);
- byte *catData = GLOBALS.dos_malloc2(GLOBALS.CAT_TAILLE);
+ byte *catData = _vm->_globals.dos_malloc2(_vm->_globals.CAT_TAILLE);
if (catData == PTRNUL)
error("CHARGE_FICHIER");
- bload_it(f, catData, GLOBALS.CAT_TAILLE);
+ bload_it(f, catData, _vm->_globals.CAT_TAILLE);
f.close();
result = catData;
} else {
diff --git a/engines/hopkins/files.h b/engines/hopkins/files.h
index 77361b2920..9aece5fba3 100644
--- a/engines/hopkins/files.h
+++ b/engines/hopkins/files.h
@@ -30,29 +30,36 @@
namespace Hopkins {
+class HopkinsEngine;
+
class FileManager {
public:
- static void initSaves();
- static bool SAUVE_FICHIER(const Common::String &file, const void *buf, size_t n);
- static bool bsave(const Common::String &file, const void *buf, size_t n);
- static void Chage_Inifile(Common::StringMap &iniParams);
- static byte *CHARGE_FICHIER(const Common::String &file);
- static void CHARGE_FICHIER2(const Common::String &file, byte *a2);
- static void DMESS();
- static void DMESS1();
- static void bload(const Common::String &file, byte *buf);
- static int bload_it(Common::ReadStream &stream, void *buf, size_t nbytes);
- static void F_Censure();
- static int CONSTRUIT_SYSTEM(const Common::String &file);
- static void CONSTRUIT_FICHIER(const Common::String &hop, const Common::String &file);
- static byte *LIBERE_FICHIER(byte *ptr);
- static byte *RECHERCHE_CAT(const Common::String &file, int a2);
- static Common::String CONSTRUIT_LINUX(const Common::String &file);
+ HopkinsEngine *_vm;
+public:
+ FileManager();
+ void setParent(HopkinsEngine *vm);
+
+ void initSaves();
+ bool SAUVE_FICHIER(const Common::String &file, const void *buf, size_t n);
+ bool bsave(const Common::String &file, const void *buf, size_t n);
+ void Chage_Inifile(Common::StringMap &iniParams);
+ byte *CHARGE_FICHIER(const Common::String &file);
+ void CHARGE_FICHIER2(const Common::String &file, byte *a2);
+ void DMESS();
+ void DMESS1();
+ void bload(const Common::String &file, byte *buf);
+ int bload_it(Common::ReadStream &stream, void *buf, size_t nbytes);
+ void F_Censure();
+ int CONSTRUIT_SYSTEM(const Common::String &file);
+ void CONSTRUIT_FICHIER(const Common::String &hop, const Common::String &file);
+ byte *LIBERE_FICHIER(byte *ptr);
+ byte *RECHERCHE_CAT(const Common::String &file, int a2);
+ Common::String CONSTRUIT_LINUX(const Common::String &file);
/**
* Returns the size of a file. Throws an error if the file can't be found
*/
- static uint32 FLONG(const Common::String &filename);
+ uint32 FLONG(const Common::String &filename);
};
} // End of namespace Hopkins
diff --git a/engines/hopkins/font.cpp b/engines/hopkins/font.cpp
index fb938bfbf6..919d55a3d5 100644
--- a/engines/hopkins/font.cpp
+++ b/engines/hopkins/font.cpp
@@ -224,7 +224,7 @@ void FontManager::BOITE(int idx, int fileIndex, const Common::String &filename,
while (v62 <= 19);
&Txt[idx].field408 = 1;
- FileManager::CONSTRUIT_FICHIER(HOPLINK, filename);
+ _vm->_fileManager.CONSTRUIT_FICHIER(HOPLINK, filename);
fname = _vm->_globals.NFICHIER;
if (strncmp(fname.c_str(), oldname.c_str(), fname.size())) {
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index b7f5b51b5d..899cc842f1 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -697,8 +697,8 @@ void Globals::CLEAR_VBOB() {
}
void Globals::CHARGE_OBJET() {
- FileManager::CONSTRUIT_SYSTEM("OBJET.DAT");
- byte *data = FileManager::CHARGE_FICHIER(NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("OBJET.DAT");
+ byte *data = _vm->_fileManager.CHARGE_FICHIER(NFICHIER);
byte *srcP = data;
for (int idx = 0; idx < 300; ++idx) {
@@ -790,14 +790,14 @@ void Globals::CHARGE_CACHE(const Common::String &file) {
Common::File f;
RESET_CACHE();
- FileManager::CONSTRUIT_FICHIER(HOPLINK, file);
- ptr = FileManager::CHARGE_FICHIER(NFICHIER);
+ _vm->_fileManager.CONSTRUIT_FICHIER(HOPLINK, file);
+ ptr = _vm->_fileManager.CHARGE_FICHIER(NFICHIER);
v16 = Common::String((const char *)ptr);
- FileManager::CONSTRUIT_FICHIER(HOPLINK, v16);
+ _vm->_fileManager.CONSTRUIT_FICHIER(HOPLINK, v16);
if (!f.exists(NFICHIER)) {
- spriteData = FileManager::CHARGE_FICHIER(NFICHIER);
+ spriteData = _vm->_fileManager.CHARGE_FICHIER(NFICHIER);
CACHE_BANQUE[1] = spriteData;
v15 = 60;
v14 = 0;
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp
index 64013cd215..851768a6b9 100644
--- a/engines/hopkins/graphics.cpp
+++ b/engines/hopkins/graphics.cpp
@@ -79,8 +79,8 @@ GraphicsManager::GraphicsManager() {
}
GraphicsManager::~GraphicsManager() {
- GLOBALS.dos_free2(VESA_SCREEN);
- GLOBALS.dos_free2(VESA_BUFFER);
+ _vm->_globals.dos_free2(VESA_SCREEN);
+ _vm->_globals.dos_free2(VESA_BUFFER);
}
void GraphicsManager::setParent(HopkinsEngine *vm) {
@@ -91,21 +91,21 @@ void GraphicsManager::SET_MODE(int width, int height) {
if (!SDL_MODEYES) {
SDL_ECHELLE = 0;
- if (GLOBALS.XSETMODE == 1)
+ if (_vm->_globals.XSETMODE == 1)
SDL_ECHELLE = 0;
- if (GLOBALS.XSETMODE == 2)
+ if (_vm->_globals.XSETMODE == 2)
SDL_ECHELLE = 25;
- if (GLOBALS.XSETMODE == 3)
+ if (_vm->_globals.XSETMODE == 3)
SDL_ECHELLE = 50;
- if (GLOBALS.XSETMODE == 4)
+ if (_vm->_globals.XSETMODE == 4)
SDL_ECHELLE = 75;
- if (GLOBALS.XSETMODE == 5)
- SDL_ECHELLE = GLOBALS.XZOOM;
+ if (_vm->_globals.XSETMODE == 5)
+ SDL_ECHELLE = _vm->_globals.XZOOM;
int bpp = 8;
- if (GLOBALS.XFORCE8 == 1)
+ if (_vm->_globals.XFORCE8 == 1)
bpp = 8;
- if (GLOBALS.XFORCE16 == 1)
+ if (_vm->_globals.XFORCE16 == 1)
bpp = 16;
if (SDL_ECHELLE) {
@@ -122,8 +122,8 @@ void GraphicsManager::SET_MODE(int width, int height) {
}
// Init surfaces
- VESA_SCREEN = GLOBALS.dos_malloc2(SCREEN_WIDTH * 2 * SCREEN_HEIGHT);
- VESA_BUFFER = GLOBALS.dos_malloc2(SCREEN_WIDTH * 2 * SCREEN_HEIGHT);
+ VESA_SCREEN = _vm->_globals.dos_malloc2(SCREEN_WIDTH * 2 * SCREEN_HEIGHT);
+ VESA_BUFFER = _vm->_globals.dos_malloc2(SCREEN_WIDTH * 2 * SCREEN_HEIGHT);
VideoPtr = NULL;
XSCREEN = width;
@@ -174,12 +174,12 @@ void GraphicsManager::CHARGE_ECRAN(const Common::String &file) {
bool flag;
Common::File f;
- FileManager::DMESS1();
+ _vm->_fileManager.DMESS1();
flag = true;
- if (FileManager::RECHERCHE_CAT(file, 6)) {
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPIMAGE, file);
- if (!f.open(GLOBALS.NFICHIER))
+ if (_vm->_fileManager.RECHERCHE_CAT(file, 6)) {
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPIMAGE, file);
+ if (!f.open(_vm->_globals.NFICHIER))
error("CHARGE_ECRAN - %s", file.c_str());
f.seek(0, SEEK_END);
@@ -364,12 +364,12 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by
memset(surface, 0, SCREEN_WIDTH * 2 * SCREEN_HEIGHT);
if (typeFlag) {
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPIMAGE, "PIC.RES");
- if (!f.open(GLOBALS.NFICHIER))
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPIMAGE, "PIC.RES");
+ if (!f.open(_vm->_globals.NFICHIER))
error("(nom)Erreur en cours de lecture.");
- f.seek(GLOBALS.CAT_POSI);
+ f.seek(_vm->_globals.CAT_POSI);
- v7 = GLOBALS.CAT_TAILLE - 896;
+ v7 = _vm->_globals.CAT_TAILLE - 896;
v8 = f.read(HEADER_PCX, 128);
v6 = READ_LE_UINT16(&HEADER_PCX[8]) + 1;
@@ -387,8 +387,8 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by
if (v8 == -1)
error("Erreur en cours de lecture.");
} else {
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPIMAGE, file);
- if (!f.open(GLOBALS.NFICHIER))
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPIMAGE, file);
+ if (!f.open(_vm->_globals.NFICHIER))
error("(nom)Erreur en cours de lecture.");
filesize = f.size();
@@ -411,7 +411,7 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by
v7 = filesize - 896;
}
- ptr = GLOBALS.dos_malloc2(0xEE60u);
+ ptr = _vm->_globals.dos_malloc2(0xEE60u);
if (v7 >= 60000) {
v21 = v7 / 60000 + 1;
v23 = 60000 * (v7 / 60000) - v7;
@@ -470,7 +470,7 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by
} while (v18 < v19 * v20);
if (typeFlag) {
- f.seek(GLOBALS.CAT_TAILLE + GLOBALS.CAT_POSI - 768);
+ f.seek(_vm->_globals.CAT_TAILLE + _vm->_globals.CAT_POSI - 768);
} else {
filesize = f.size();
f.seek(filesize - 768);
@@ -480,7 +480,7 @@ void GraphicsManager::A_PCX640_480(byte *surface, const Common::String &file, by
error("A_PCX640_480");
f.close();
- GLOBALS.dos_free2(ptr);
+ _vm->_globals.dos_free2(ptr);
}
void GraphicsManager::Cls_Pal() {
@@ -2342,25 +2342,25 @@ void GraphicsManager::OPTI_INI(const Common::String &file, int a2) {
v9 = 0;
v13 = file + ".ini";
- ptr = FileManager::RECHERCHE_CAT(v13, 1);
+ ptr = _vm->_fileManager.RECHERCHE_CAT(v13, 1);
if (PTRNUL == ptr) {
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, v13);
- ptr = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, v13);
+ ptr = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if (!a2) {
v13 = file + ".spr";
if (PTRNUL != _vm->_globals.SPRITE_ECRAN)
- _vm->_globals.SPRITE_ECRAN = FileManager::LIBERE_FICHIER(_vm->_globals.SPRITE_ECRAN);
+ _vm->_globals.SPRITE_ECRAN = _vm->_fileManager.LIBERE_FICHIER(_vm->_globals.SPRITE_ECRAN);
if (!_vm->_globals.NOSPRECRAN) {
- _vm->_globals.SPRITE_ECRAN = FileManager::RECHERCHE_CAT(v13, 8);
+ _vm->_globals.SPRITE_ECRAN = _vm->_fileManager.RECHERCHE_CAT(v13, 8);
if (_vm->_globals.SPRITE_ECRAN) {
_vm->_globals.CAT_FLAG = 0;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, v13);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, v13);
} else {
_vm->_globals.CAT_FLAG = 1;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_SLI.RES");
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_SLI.RES");
}
- _vm->_globals.SPRITE_ECRAN = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_globals.SPRITE_ECRAN = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
_vm->_globals.CAT_FLAG = 0;
}
}
@@ -2388,11 +2388,11 @@ void GraphicsManager::OPTI_INI(const Common::String &file, int a2) {
_vm->_globals.COUCOU = _vm->_globals.dos_free2(_vm->_globals.COUCOU);
v13 = file + ".rep";
- byte *dataP = FileManager::RECHERCHE_CAT(v13, 2);
+ byte *dataP = _vm->_fileManager.RECHERCHE_CAT(v13, 2);
_vm->_globals.COUCOU = dataP;
if (PTRNUL == dataP) {
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, v13);
- dataP = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, v13);
+ dataP = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
_vm->_globals.COUCOU = dataP;
}
}
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index a29253571f..0afc35c0b0 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -40,6 +40,7 @@ HopkinsEngine::HopkinsEngine(OSystem *syst, const HopkinsGameDescription *gameDe
g_vm = this;
_animationManager.setParent(this);
_eventsManager.setParent(this);
+ _fileManager.setParent(this);
_fontManager.setParent(this);
_globals.setParent(this);
_graphicsManager.setParent(this);
@@ -52,23 +53,23 @@ HopkinsEngine::~HopkinsEngine() {
}
Common::Error HopkinsEngine::run() {
- FileManager::initSaves();
+ _fileManager.initSaves();
Common::StringMap iniParams;
- FileManager::Chage_Inifile(iniParams);
+ _fileManager.Chage_Inifile(iniParams);
processIniParams(iniParams);
- GLOBALS.setConfig();
- FileManager::F_Censure();
+ _globals.setConfig();
+ _fileManager.F_Censure();
INIT_SYSTEM();
_soundManager.WSOUND_INIT();
- GLOBALS.CHARGE_OBJET();
+ _globals.CHARGE_OBJET();
_objectsManager.CHANGE_OBJET(14);
_objectsManager.AJOUTE_OBJET(14);
- GLOBALS.HELICO = 0;
+ _globals.HELICO = 0;
_eventsManager.MOUSE_OFF();
_graphicsManager.DD_Lock();
@@ -81,7 +82,7 @@ Common::Error HopkinsEngine::run() {
_eventsManager.delay(1500);
_graphicsManager.FADE_OUTW();
- if (!GLOBALS.internet) {
+ if (!_globals.internet) {
_graphicsManager.FADE_LINUX = 2;
_animationManager.PLAY_ANM("MP.ANM", 10, 16, 200);
}
@@ -95,22 +96,22 @@ Common::Error HopkinsEngine::run() {
INTRORUN();
_globals.iRegul = 0;
- FileManager::CONSTRUIT_SYSTEM("PERSO.SPR");
- GLOBALS.PERSO = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
- GLOBALS.PERSO_TYPE = 0;
- GLOBALS.PLANX = GLOBALS.PLANY = 0;
- memset(GLOBALS.SAUVEGARDE, 0, 2000);
- GLOBALS.SORTIE = 0;
- GLOBALS.PASSWORD = 1;
+ _fileManager.CONSTRUIT_SYSTEM("PERSO.SPR");
+ _globals.PERSO = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
+ _globals.PERSO_TYPE = 0;
+ _globals.PLANX = _globals.PLANY = 0;
+ memset(_globals.SAUVEGARDE, 0, 2000);
+ _globals.SORTIE = 0;
+ _globals.PASSWORD = 1;
LABEL_12:
- if (GLOBALS.SORTIE == 300)
+ if (_globals.SORTIE == 300)
LABEL_13:
- GLOBALS.SORTIE = 0;
+ _globals.SORTIE = 0;
- if (!GLOBALS.SORTIE) {
- GLOBALS.SORTIE = _menuManager.MENU();
- if (GLOBALS.SORTIE == -1) {
+ if (!_globals.SORTIE) {
+ _globals.SORTIE = _menuManager.MENU();
+ if (_globals.SORTIE == -1) {
if (!g_system->getEventManager()->shouldQuit())
PUBQUIT();
_globals.PERSO = _globals.dos_free2(_globals.PERSO);
@@ -129,19 +130,19 @@ LABEL_13:
if (g_system->getEventManager()->shouldQuit())
return Common::kNoError;
- if (GLOBALS.SORTIE == 300)
+ if (_globals.SORTIE == 300)
goto LABEL_13;
- if (GLOBALS.SORTIE == 18)
+ if (_globals.SORTIE == 18)
PASS();
- if (GLOBALS.SORTIE == 23)
+ if (_globals.SORTIE == 23)
PASS();
- if (GLOBALS.SORTIE == 22)
+ if (_globals.SORTIE == 22)
PASS();
- if (GLOBALS.SORTIE == 19)
+ if (_globals.SORTIE == 19)
PASS();
- if (GLOBALS.SORTIE == 20)
+ if (_globals.SORTIE == 20)
PASS();
- if (GLOBALS.SORTIE != 1)
+ if (_globals.SORTIE != 1)
break;
_globals.Max_Propre = 50;
@@ -151,10 +152,10 @@ LABEL_13:
_objectsManager.PERSONAGE2("IM01", "IM01", "ANIM01", "IM01", 1);
}
- if (GLOBALS.SORTIE != 3)
+ if (_globals.SORTIE != 3)
break;
- if (!*((byte *)GLOBALS.SAUVEGARDE + 170)) {
+ if (!*((byte *)_globals.SAUVEGARDE + 170)) {
_soundManager.WSOUND(3);
if (_globals.FR == 1)
_graphicsManager.LOAD_IMAGE("fond_globals.FR");
@@ -174,41 +175,41 @@ LABEL_13:
_graphicsManager.Cls_Pal();
_graphicsManager.FADE_LINUX = 2;
- if (!GLOBALS.CENSURE)
+ if (!_globals.CENSURE)
_animationManager.PLAY_ANM("BANQUE.ANM", 200, 28, 200);
- if (GLOBALS.CENSURE == 1)
+ if (_globals.CENSURE == 1)
_animationManager.PLAY_ANM("BANKUK.ANM", 200, 28, 200);
_soundManager.SPECIAL_SOUND = 0;
_soundManager.DEL_SAMPLE(1);
_soundManager.DEL_SAMPLE(2);
_soundManager.DEL_SAMPLE(3);
_soundManager.DEL_SAMPLE(4);
- *((byte *)GLOBALS.SAUVEGARDE + 170) = 1;
+ *((byte *)_globals.SAUVEGARDE + 170) = 1;
}
_globals.Max_Propre = 5;
_globals.Max_Ligne_Long = 5;
_globals.Max_Propre_Gen = 5;
_globals.Max_Perso_Y = 450;
- GLOBALS.NOSPRECRAN = 1;
+ _globals.NOSPRECRAN = 1;
_objectsManager.PERSONAGE2("IM03", "IM03", "ANIM03", "IM03", 2);
}
- if (GLOBALS.SORTIE != 4)
+ if (_globals.SORTIE != 4)
break;
_globals.DESACTIVE_INVENT = true;
_objectsManager.PLAN_BETA();
_globals.DESACTIVE_INVENT = false;
}
- if (GLOBALS.SORTIE != 5)
+ if (_globals.SORTIE != 5)
break;
_globals.Max_Propre = 5;
_globals.Max_Ligne_Long = 5;
_globals.Max_Propre_Gen = 5;
_globals.Max_Perso_Y = 455;
- GLOBALS.NOSPRECRAN = 1;
- byte v1 = *((byte *)GLOBALS.SAUVEGARDE + 80);
+ _globals.NOSPRECRAN = 1;
+ byte v1 = *((byte *)_globals.SAUVEGARDE + 80);
if (v1) {
if (v1 == 1)
_objectsManager.PERSONAGE2("IM05", "IM05A", "ANIM05B", "IM05", 3);
@@ -216,10 +217,10 @@ LABEL_13:
_objectsManager.PERSONAGE2("IM05", "IM05", "ANIM05", "IM05", 3);
}
- GLOBALS.NOSPRECRAN = 0;
+ _globals.NOSPRECRAN = 0;
}
- if (GLOBALS.SORTIE != 8)
+ if (_globals.SORTIE != 8)
break;
_globals.Max_Propre = 15;
@@ -229,7 +230,7 @@ LABEL_13:
_objectsManager.PERSONAGE2("IM08", "IM08", "ANIM08", "IM08", 2);
}
- if (GLOBALS.SORTIE != 6)
+ if (_globals.SORTIE != 6)
break;
_globals.Max_Propre = 15;
_globals.Max_Ligne_Long = 20;
@@ -238,32 +239,32 @@ LABEL_13:
_objectsManager.PERSONAGE2("IM06", "IM06", "ANIM06", "IM06", 2);
}
- if (GLOBALS.SORTIE != 7)
+ if (_globals.SORTIE != 7)
break;
- if (*((byte *)GLOBALS.SAUVEGARDE + 220))
+ if (*((byte *)_globals.SAUVEGARDE + 220))
_objectsManager.PERSONAGE("BOMBEB", "BOMBE", "BOMBE", "BOMBE", 2);
else
_objectsManager.PERSONAGE("BOMBEA", "BOMBE", "BOMBE", "BOMBE", 2);
}
- if (GLOBALS.SORTIE == 9) {
+ if (_globals.SORTIE == 9) {
_globals.Max_Propre = 15;
_globals.Max_Ligne_Long = 20;
_globals.Max_Propre_Gen = 10;
_globals.Max_Perso_Y = 440;
- if (!*((byte *)GLOBALS.SAUVEGARDE + 225))
+ if (!*((byte *)_globals.SAUVEGARDE + 225))
goto LABEL_109;
_objectsManager.PERSONAGE2("IM09", "IM09", "ANIM09", "IM09", 10);
} else {
- if (GLOBALS.SORTIE == 10) {
- GLOBALS.NOSPRECRAN = 1;
+ if (_globals.SORTIE == 10) {
+ _globals.NOSPRECRAN = 1;
_objectsManager.PERSONAGE("IM10", "IM10", "ANIM10", "IM10", 9);
goto LABEL_124;
}
- if (GLOBALS.SORTIE == 11) {
- GLOBALS.NOSPRECRAN = 1;
+ if (_globals.SORTIE == 11) {
+ _globals.NOSPRECRAN = 1;
_globals.Max_Propre = 15;
_globals.Max_Ligne_Long = 20;
_globals.Max_Propre_Gen = 10;
@@ -272,14 +273,14 @@ LABEL_13:
goto LABEL_124;
}
- switch (GLOBALS.SORTIE) {
+ switch (_globals.SORTIE) {
case 12:
_globals.Max_Propre = 15;
_globals.Max_Ligne_Long = 20;
_globals.Max_Propre_Gen = 10;
_globals.Max_Perso_Y = 450;
- if (*((byte *)GLOBALS.SAUVEGARDE + 225)) {
- GLOBALS.NOSPRECRAN = 1;
+ if (*((byte *)_globals.SAUVEGARDE + 225)) {
+ _globals.NOSPRECRAN = 1;
_objectsManager.PERSONAGE2("IM12", "IM12", "ANIM12", "IM12", 1);
} else {
LABEL_109:
@@ -301,84 +302,84 @@ LABEL_109:
_objectsManager.PERSONAGE2("IM14", "IM14", "ANIM14", "IM14", 1);
break;
default:
- if (GLOBALS.SORTIE == 15) {
- GLOBALS.NOSPRECRAN = 1;
+ if (_globals.SORTIE == 15) {
+ _globals.NOSPRECRAN = 1;
_objectsManager.PERSONAGE("IM15", "IM15", "ANIM15", "IM15", 29);
goto LABEL_124;
}
- if (GLOBALS.SORTIE == 16) {
+ if (_globals.SORTIE == 16) {
_globals.Max_Propre = 5;
_globals.Max_Ligne_Long = 5;
_globals.Max_Propre_Gen = 5;
_globals.Max_Perso_Y = 450;
- byte v2 = *((byte *)GLOBALS.SAUVEGARDE + 113);
+ byte v2 = *((byte *)_globals.SAUVEGARDE + 113);
if (v2 == 1) {
_objectsManager.PERSONAGE2("IM16", "IM16A", "ANIM16", "IM16", 7);
} else if (!v2) {
_objectsManager.PERSONAGE2("IM16", "IM16", "ANIM16", "IM16", 7);
}
} else {
- if (GLOBALS.SORTIE == 17)
+ if (_globals.SORTIE == 17)
PASS();
- if (GLOBALS.SORTIE == 24)
+ if (_globals.SORTIE == 24)
PASS();
- if (GLOBALS.SORTIE == 25) {
+ if (_globals.SORTIE == 25) {
_globals.Max_Propre = 15;
_globals.Max_Ligne_Long = 20;
_globals.Max_Propre_Gen = 10;
_globals.Max_Perso_Y = 445;
_objectsManager.PERSONAGE2("IM25", "IM25", "ANIM25", "IM25", 30);
} else {
- if (GLOBALS.SORTIE == 33) {
- GLOBALS.NOSPRECRAN = 1;
+ if (_globals.SORTIE == 33) {
+ _globals.NOSPRECRAN = 1;
_objectsManager.PERSONAGE("IM33", "IM33", "ANIM33", "IM33", 8);
goto LABEL_124;
}
- if (GLOBALS.SORTIE == 26) {
+ if (_globals.SORTIE == 26) {
_globals.Max_Propre = 50;
_globals.Max_Ligne_Long = 40;
_globals.Max_Propre_Gen = 20;
_globals.Max_Perso_Y = 435;
_objectsManager.PERSONAGE2("IM26", "IM26", "ANIM26", "IM26", 30);
} else {
- if (GLOBALS.SORTIE == 27)
+ if (_globals.SORTIE == 27)
PASS();
- if (GLOBALS.SORTIE == 28)
+ if (_globals.SORTIE == 28)
PASS();
- if (GLOBALS.SORTIE == 29)
+ if (_globals.SORTIE == 29)
PASS();
- if (GLOBALS.SORTIE == 30)
+ if (_globals.SORTIE == 30)
PASS();
- if (GLOBALS.SORTIE == 31)
+ if (_globals.SORTIE == 31)
PASS();
- if (GLOBALS.SORTIE == 35)
+ if (_globals.SORTIE == 35)
ENDEMO();
- if (GLOBALS.SORTIE == 32)
+ if (_globals.SORTIE == 32)
PASS();
- if (GLOBALS.SORTIE == 34)
+ if (_globals.SORTIE == 34)
PASS();
- if ((uint16)(GLOBALS.SORTIE - 51) <= 38)
+ if ((uint16)(_globals.SORTIE - 51) <= 38)
PASS();
- if (GLOBALS.SORTIE == 111) {
- GLOBALS.NOSPRECRAN = 1;
+ if (_globals.SORTIE == 111) {
+ _globals.NOSPRECRAN = 1;
_objectsManager.PERSONAGE("IM111", "IM111", "ANIM111", "IM111", 10);
goto LABEL_124;
}
- if (GLOBALS.SORTIE == 112) {
- GLOBALS.NOSPRECRAN = 1;
+ if (_globals.SORTIE == 112) {
+ _globals.NOSPRECRAN = 1;
_objectsManager.PERSONAGE("IM112", "IM112", "ANIM112", "IM112", 10);
LABEL_124:
- GLOBALS.NOSPRECRAN = 0;
- } else if (GLOBALS.SORTIE == 113) {
- GLOBALS.SORTIE = 0;
+ _globals.NOSPRECRAN = 0;
+ } else if (_globals.SORTIE == 113) {
+ _globals.SORTIE = 0;
_globals.OLD_ECRAN = _globals.ECRAN;
- *((byte *)GLOBALS.SAUVEGARDE + 6) = _globals.ECRAN;
+ *((byte *)_globals.SAUVEGARDE + 6) = _globals.ECRAN;
_globals.ECRAN = 113;
- *((byte *)GLOBALS.SAUVEGARDE + 5) = 113;
+ *((byte *)_globals.SAUVEGARDE + 5) = 113;
_menuManager.COMPUT_HOPKINS(1);
_graphicsManager.DD_Lock();
@@ -390,29 +391,29 @@ LABEL_124:
_graphicsManager.Cls_Pal();
_graphicsManager.RESET_SEGMENT_VESA();
} else {
- if (GLOBALS.SORTIE == 114) {
- GLOBALS.SORTIE = 0;
+ if (_globals.SORTIE == 114) {
+ _globals.SORTIE = 0;
_globals.OLD_ECRAN = _globals.ECRAN;
- *((byte *)GLOBALS.SAUVEGARDE + 6) = _globals.ECRAN;
+ *((byte *)_globals.SAUVEGARDE + 6) = _globals.ECRAN;
_globals.ECRAN = 114;
- *((byte *)GLOBALS.SAUVEGARDE + 5) = 114;
+ *((byte *)_globals.SAUVEGARDE + 5) = 114;
_menuManager.COMPUT_HOPKINS(2);
goto LABEL_128;
}
- if (GLOBALS.SORTIE == 115) {
- GLOBALS.SORTIE = 0;
+ if (_globals.SORTIE == 115) {
+ _globals.SORTIE = 0;
_globals.OLD_ECRAN = _globals.ECRAN;
- *((byte *)GLOBALS.SAUVEGARDE + 6) = _globals.ECRAN;
+ *((byte *)_globals.SAUVEGARDE + 6) = _globals.ECRAN;
_globals.ECRAN = 115;
- *((byte *)GLOBALS.SAUVEGARDE + 5) = 115;
+ *((byte *)_globals.SAUVEGARDE + 5) = 115;
_menuManager.COMPUT_HOPKINS(3);
LABEL_128:
_graphicsManager.DD_Lock();
_graphicsManager.Cls_Video();
_graphicsManager.DD_Unlock();
- } else if ((uint16)(GLOBALS.SORTIE - 194) > 5) {
- if (GLOBALS.SORTIE == 151) {
+ } else if ((uint16)(_globals.SORTIE - 194) > 5) {
+ if (_globals.SORTIE == 151) {
_soundManager.WSOUND(16);
_globals.iRegul = 1;
@@ -423,10 +424,10 @@ LABEL_128:
_graphicsManager.FADE_LINUX = 2;
_animationManager.PLAY_ANM("JOUR3A.anm", 12, 12, 2000);
_globals.iRegul = 0;
- GLOBALS.SORTIE = 300;
+ _globals.SORTIE = 300;
}
- if (GLOBALS.SORTIE == 150) {
+ if (_globals.SORTIE == 150) {
_soundManager.WSOUND(16);
_globals.iRegul = 1;
@@ -437,10 +438,10 @@ LABEL_128:
_graphicsManager.FADE_LINUX = 2;
_animationManager.PLAY_ANM("JOUR1A.anm", 12, 12, 2000);
_globals.iRegul = 0;
- GLOBALS.SORTIE = 300;
+ _globals.SORTIE = 300;
}
- if (GLOBALS.SORTIE == 152) {
+ if (_globals.SORTIE == 152) {
_soundManager.WSOUND(16);
_globals.iRegul = 1;
@@ -451,7 +452,7 @@ LABEL_128:
_graphicsManager.FADE_LINUX = 2;
_animationManager.PLAY_ANM("JOUR4A.anm", 12, 12, 2000);
_globals.iRegul = 0;
- GLOBALS.SORTIE = 300;
+ _globals.SORTIE = 300;
}
goto LABEL_12;
}
@@ -483,23 +484,23 @@ int HopkinsEngine::getRandomNumber(int maxNumber) {
}
void HopkinsEngine::processIniParams(Common::StringMap &iniParams) {
- GLOBALS.XFULLSCREEN = iniParams["FULLSCREEN"] == "YES";
+ _globals.XFULLSCREEN = iniParams["FULLSCREEN"] == "YES";
- GLOBALS.XSETMODE = 1;
+ _globals.XSETMODE = 1;
if (iniParams.contains("SETMODE")) {
int setMode = atoi(iniParams["SETMODE"].c_str());
- GLOBALS.XSETMODE = CLIP(setMode, 1, 5);
+ _globals.XSETMODE = CLIP(setMode, 1, 5);
}
- GLOBALS.XZOOM = 0;
- if (GLOBALS.XSETMODE == 5 && iniParams.contains("ZOOM")) {
+ _globals.XZOOM = 0;
+ if (_globals.XSETMODE == 5 && iniParams.contains("ZOOM")) {
int zoom = atoi(iniParams["ZOOM"].c_str());
- GLOBALS.XZOOM = CLIP(zoom, 25, 100);
+ _globals.XZOOM = CLIP(zoom, 25, 100);
}
- GLOBALS.XFORCE16 = iniParams["FORCE16BITS"] == "YES";
- GLOBALS.XFORCE8 = iniParams["FORCE8BITS"] == "YES";
- GLOBALS.CARD_SB = iniParams["SOUND"] == "YES";
+ _globals.XFORCE16 = iniParams["FORCE16BITS"] == "YES";
+ _globals.XFORCE8 = iniParams["FORCE8BITS"] == "YES";
+ _globals.CARD_SB = iniParams["SOUND"] == "YES";
}
void HopkinsEngine::INIT_SYSTEM() {
@@ -511,15 +512,15 @@ void HopkinsEngine::INIT_SYSTEM() {
switch (_globals.FR) {
case 0:
if (!_eventsManager.mouse_linux)
- FileManager::CONSTRUIT_SYSTEM("SOUAN.SPR");
+ _fileManager.CONSTRUIT_SYSTEM("SOUAN.SPR");
if (!_globals.FR && _eventsManager.mouse_linux)
- FileManager::CONSTRUIT_SYSTEM("LSOUAN.SPR");
+ _fileManager.CONSTRUIT_SYSTEM("LSOUAN.SPR");
break;
case 1:
- FileManager::CONSTRUIT_SYSTEM("LSOU_globals.FR.SPR");
+ _fileManager.CONSTRUIT_SYSTEM("LSOU_globals.FR.SPR");
break;
case 2:
- FileManager::CONSTRUIT_SYSTEM("SOUES.SPR");
+ _fileManager.CONSTRUIT_SYSTEM("SOUES.SPR");
break;
}
@@ -530,31 +531,31 @@ void HopkinsEngine::INIT_SYSTEM() {
_eventsManager.souris_sizex = 34;
_eventsManager.souris_sizey = 20;
}
- _eventsManager.pointeur_souris = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
-
- GLOBALS.clearAll();
-
- FileManager::CONSTRUIT_SYSTEM("FONTE3.SPR");
- GLOBALS.police = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
- GLOBALS.police_l = 12;
- GLOBALS.police_h = 21;
- FileManager::CONSTRUIT_SYSTEM("ICONE.SPR");
- GLOBALS.ICONE = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
- FileManager::CONSTRUIT_SYSTEM("TETE.SPR");
- GLOBALS.TETE = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
+ _eventsManager.pointeur_souris = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
+
+ _globals.clearAll();
+
+ _fileManager.CONSTRUIT_SYSTEM("FONTE3.SPR");
+ _globals.police = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
+ _globals.police_l = 12;
+ _globals.police_h = 21;
+ _fileManager.CONSTRUIT_SYSTEM("ICONE.SPR");
+ _globals.ICONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
+ _fileManager.CONSTRUIT_SYSTEM("TETE.SPR");
+ _globals.TETE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
switch (_globals.FR) {
case 0:
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "ZONEAN.TXT");
- GLOBALS.BUF_ZONE = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
+ _fileManager.CONSTRUIT_FICHIER(_globals.HOPLINK, "ZONEAN.TXT");
+ _globals.BUF_ZONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
break;
case 1:
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "ZONE01.TXT");
- GLOBALS.BUF_ZONE = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
+ _fileManager.CONSTRUIT_FICHIER(_globals.HOPLINK, "ZONE01.TXT");
+ _globals.BUF_ZONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
break;
case 2:
- FileManager::CONSTRUIT_FICHIER(GLOBALS.HOPLINK, "ZONEES.TXT");
- GLOBALS.BUF_ZONE = FileManager::CHARGE_FICHIER(GLOBALS.NFICHIER);
+ _fileManager.CONSTRUIT_FICHIER(_globals.HOPLINK, "ZONEES.TXT");
+ _globals.BUF_ZONE = _fileManager.CHARGE_FICHIER(_globals.NFICHIER);
break;
}
@@ -563,12 +564,12 @@ void HopkinsEngine::INIT_SYSTEM() {
_eventsManager.souris_flag = false;
_eventsManager.souris_max();
- GLOBALS.HOPKINS_DATA();
+ _globals.HOPKINS_DATA();
_eventsManager.ofset_souris_x = 0;
_eventsManager.ofset_souris_y = 0;
- GLOBALS.lItCounter = 0;
- GLOBALS.lOldItCounter = 0;
+ _globals.lItCounter = 0;
+ _globals.lOldItCounter = 0;
}
void HopkinsEngine::INTRORUN() {
diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h
index 0b1f97fb9c..f58dfd7f14 100644
--- a/engines/hopkins/hopkins.h
+++ b/engines/hopkins/hopkins.h
@@ -33,6 +33,7 @@
#include "graphics/surface.h"
#include "hopkins/anim.h"
#include "hopkins/events.h"
+#include "hopkins/files.h"
#include "hopkins/font.h"
#include "hopkins/globals.h"
#include "hopkins/graphics.h"
@@ -96,6 +97,7 @@ public:
EventsManager _eventsManager;
FontManager _fontManager;
Globals _globals;
+ FileManager _fileManager;
GraphicsManager _graphicsManager;
LinesManager _linesManager;
MenuManager _menuManager;
diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp
index 66436a830f..23baec188e 100644
--- a/engines/hopkins/menu.cpp
+++ b/engines/hopkins/menu.cpp
@@ -81,11 +81,11 @@ int MenuManager::MENU() {
_vm->_graphicsManager.FADE_INW();
if (_vm->_globals.FR == 0)
- FileManager::CONSTRUIT_SYSTEM("MENUAN.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("MENUAN.SPR");
if (_vm->_globals.FR == 1)
- FileManager::CONSTRUIT_SYSTEM("MENUFR.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("MENUFR.SPR");
if (_vm->_globals.FR == 2)
- FileManager::CONSTRUIT_SYSTEM("MENUES.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("MENUES.SPR");
spriteData = _vm->_objectsManager.CHARGE_SPRITE(_vm->_globals.NFICHIER);
_vm->_eventsManager.MOUSE_ON();
@@ -279,13 +279,13 @@ void MenuManager::CHARGE_PARTIE() {
v15 = 65;
v16 = 84;
v17 = 0;
- FileManager::CONSTRUIT_LINUX(v8);
+ _vm->_fileManager.CONSTRUIT_LINUX(v8);
if (f.open(_vm->_globals.NFICHIER)) {
f.close();
v3 = _vm->_globals.SAUVEGARDE->data[svField10];
- FileManager::CONSTRUIT_LINUX(v8);
- FileManager::bload(_vm->_globals.NFICHIER, &_vm->_globals.SAUVEGARDE->data[0]);
+ _vm->_fileManager.CONSTRUIT_LINUX(v8);
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, &_vm->_globals.SAUVEGARDE->data[0]);
v4 = &_vm->_globals.SAUVEGARDE->data[svField1300];
v5 = 0;
@@ -349,15 +349,15 @@ void MenuManager::SAUVE_PARTIE() {
++v4;
} while (v4 <= 34);
- FileManager::CONSTRUIT_LINUX(v7);
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, &_vm->_globals.SAUVEGARDE->data[0], 0x7D0u);
+ _vm->_fileManager.CONSTRUIT_LINUX(v7);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, &_vm->_globals.SAUVEGARDE->data[0], 0x7D0u);
v12 = 46;
v13 = 69;
v14 = 67;
v15 = 82;
v16 = 0;
- FileManager::CONSTRUIT_LINUX(v7);
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, v1, 0x2B80u);
+ _vm->_fileManager.CONSTRUIT_LINUX(v7);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, v1, 0x2B80u);
}
_vm->_globals.dos_free2(v1);
}
@@ -577,13 +577,13 @@ void MenuManager::LOAD_SAUVE(int a1) {
Common::File f;
if (_vm->_globals.FR == 1)
- FileManager::CONSTRUIT_SYSTEM("SAVEFR.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("SAVEFR.SPR");
if (!_vm->_globals.FR)
- FileManager::CONSTRUIT_SYSTEM("SAVEAN.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("SAVEAN.SPR");
if (_vm->_globals.FR == 2)
- FileManager::CONSTRUIT_SYSTEM("SAVEES.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("SAVEES.SPR");
_vm->_objectsManager.SL_SPR = _vm->_objectsManager.CHARGE_SPRITE(_vm->_globals.NFICHIER);
- FileManager::CONSTRUIT_SYSTEM("SAVE2.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("SAVE2.SPR");
_vm->_objectsManager.SL_SPR2 = _vm->_objectsManager.CHARGE_SPRITE(_vm->_globals.NFICHIER);
_vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager.VESA_BUFFER, _vm->_objectsManager.SL_SPR, _vm->_eventsManager.start_x + 483, 360, 0);
if (_vm->_globals.FR) {
@@ -611,9 +611,9 @@ void MenuManager::LOAD_SAUVE(int a1) {
v11 = 67;
v12 = 82;
v13 = 0;
- FileManager::CONSTRUIT_LINUX(s);
+ _vm->_fileManager.CONSTRUIT_LINUX(s);
if (f.exists(_vm->_globals.NFICHIER)) {
- v2 = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ v2 = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
v3 = v2;
if (v1 == 1)
_vm->_graphicsManager.Restore_Mem(_vm->_graphicsManager.VESA_BUFFER, v2, _vm->_eventsManager.start_x + 190, 112, 0x80u, 87);
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 40689b11ee..3d2f625679 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -78,7 +78,7 @@ byte *ObjectsManager::CAPTURE_OBJET(int objIndex, int mode) {
if (_vm->_globals.ADR_FICHIER_OBJ != PTRNUL)
ObjectsManager::DEL_FICHIER_OBJ();
if (val1 == 1) {
- FileManager::CONSTRUIT_SYSTEM("OBJET1.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("OBJET1.SPR");
_vm->_globals.ADR_FICHIER_OBJ = ObjectsManager::CHARGE_SPRITE(_vm->_globals.NFICHIER);
}
_vm->_globals.NUM_FICHIER_OBJ = val1;
@@ -218,7 +218,7 @@ int ObjectsManager::sprite_alone(const byte *objectData, byte *sprite, int objIn
byte *ObjectsManager::DEL_FICHIER_OBJ() {
_vm->_globals.NUM_FICHIER_OBJ = 0;
if (_vm->_globals.ADR_FICHIER_OBJ != PTRNUL)
- _vm->_globals.ADR_FICHIER_OBJ = FileManager::LIBERE_FICHIER(_vm->_globals.ADR_FICHIER_OBJ);
+ _vm->_globals.ADR_FICHIER_OBJ = _vm->_fileManager.LIBERE_FICHIER(_vm->_globals.ADR_FICHIER_OBJ);
byte *result = PTRNUL;
_vm->_globals.ADR_FICHIER_OBJ = PTRNUL;
@@ -226,8 +226,8 @@ byte *ObjectsManager::DEL_FICHIER_OBJ() {
}
byte *ObjectsManager::CHARGE_SPRITE(const Common::String &file) {
- FileManager::DMESS1();
- return FileManager::CHARGE_FICHIER(file);
+ _vm->_fileManager.DMESS1();
+ return _vm->_fileManager.CHARGE_FICHIER(file);
}
int ObjectsManager::capture_mem_sprite(const byte *objectData, byte *sprite, int objIndex) {
@@ -1939,8 +1939,8 @@ void ObjectsManager::PLAN_BETA() {
CHARGE_OBSTACLE("PLAN.OB2");
CHARGE_CACHE("PLAN.CA2");
CHARGE_ZONE("PLAN.ZO2");
- FileManager::CONSTRUIT_SYSTEM("VOITURE.SPR");
- sprite_ptr = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("VOITURE.SPR");
+ sprite_ptr = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
_vm->_animationManager.CHARGE_ANIM("PLAN");
_vm->_graphicsManager.VISU_ALL();
_vm->_graphicsManager.INI_ECRAN2("PLAN");
@@ -2369,9 +2369,9 @@ void ObjectsManager::CLEAR_ECRAN() {
DERLIGNE = 0;
_vm->_globals.chemin = PTRNUL;
if (_vm->_globals.COUCOU != PTRNUL)
- _vm->_globals.COUCOU = FileManager::LIBERE_FICHIER(_vm->_globals.COUCOU);
+ _vm->_globals.COUCOU = _vm->_fileManager.LIBERE_FICHIER(_vm->_globals.COUCOU);
if (PTRNUL != _vm->_globals.SPRITE_ECRAN)
- _vm->_globals.SPRITE_ECRAN = FileManager::LIBERE_FICHIER(_vm->_globals.SPRITE_ECRAN);
+ _vm->_globals.SPRITE_ECRAN = _vm->_fileManager.LIBERE_FICHIER(_vm->_globals.SPRITE_ECRAN);
_vm->_eventsManager.start_x = 0;
_vm->_eventsManager.souris_n = 0;
Vold_taille = 200;
@@ -2449,22 +2449,22 @@ LABEL_7:
_vm->_globals.DESACTIVE_INVENT = 1;
_vm->_graphicsManager.SETCOLOR4(251, 100, 100, 100);
if (_vm->_globals.FR == 1)
- FileManager::CONSTRUIT_SYSTEM("INVENTFR.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("INVENTFR.SPR");
if (!_vm->_globals.FR)
- FileManager::CONSTRUIT_SYSTEM("INVENTAN.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("INVENTAN.SPR");
if (_vm->_globals.FR == 2)
- FileManager::CONSTRUIT_SYSTEM("INVENTES.SPR");
+ _vm->_fileManager.CONSTRUIT_SYSTEM("INVENTES.SPR");
if (!f.open(_vm->_globals.NFICHIER))
error("Error opening file - %s", _vm->_globals.NFICHIER.c_str());
filesize = f.size();
_vm->_globals.Winventaire = _vm->_globals.dos_malloc2(filesize);
- FileManager::bload_it(f, _vm->_globals.Winventaire, filesize);
+ _vm->_fileManager.bload_it(f, _vm->_globals.Winventaire, filesize);
f.close();
- FileManager::CONSTRUIT_SYSTEM("INVENT2.SPR");
- inventaire2 = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("INVENT2.SPR");
+ inventaire2 = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
v19 = _vm->_graphicsManager.ofscroll + 152;
v18 = Get_Largeur(_vm->_globals.Winventaire, 0);
v17 = Get_Hauteur(_vm->_globals.Winventaire, 0);
@@ -2622,8 +2622,8 @@ void ObjectsManager::CHANGE_TETE(int a1, int a2) {
_vm->_globals.SAUVEGARDE->data[svField357] = 1;
T_RECTIF = 0;
v4 = &_vm->_globals.SAUVEGARDE->field370;
- FileManager::CONSTRUIT_SYSTEM("PERSO.SPR");
- FileManager::CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("PERSO.SPR");
+ _vm->_fileManager.CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
_vm->_globals.PERSO_TYPE = 0;
SPRITE(_vm->_globals.PERSO, v4->field0, v4->field1, 0, 64, v4->field4, 0, 34, 190);
LABEL_9:
@@ -2649,8 +2649,8 @@ LABEL_9:
_vm->_globals.SAUVEGARDE->data[svField356] = 1;
_vm->_globals.SAUVEGARDE->data[svField357] = 0;
v6 = &_vm->_globals.SAUVEGARDE->field380;
- FileManager::CONSTRUIT_SYSTEM("PSAMAN.SPR");
- FileManager::CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("PSAMAN.SPR");
+ _vm->_fileManager.CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
_vm->_globals.PERSO_TYPE = 2;
SPRITE(_vm->_globals.PERSO, v6->field0, v6->field1, 0, 64, v6->field4, 0, 20, 127);
goto LABEL_9;
@@ -3708,10 +3708,10 @@ void ObjectsManager::OPTI_OBJET() {
int v7;
file = "OBJET1.ini";
- data = FileManager::RECHERCHE_CAT(file, 1);
+ data = _vm->_fileManager.RECHERCHE_CAT(file, 1);
if (data == PTRNUL) {
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, file);
- data = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, file);
+ data = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if ((data == PTRNUL) || *data != 'I' || *(data + 1) != 'N' || *(data + 2) != 'I') {
@@ -3780,8 +3780,8 @@ void ObjectsManager::SPECIAL_JEU() {
if (!_vm->_globals.CENSURE) {
v1 = _vm->_globals.dos_malloc2(0x3E8u);
memcpy(v1, _vm->_graphicsManager.Palette, 0x301u);
- FileManager::CONSTRUIT_LINUX("TEMP1.SCR");
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP1.SCR");
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
if (!_vm->_graphicsManager.nbrligne)
_vm->_graphicsManager.ofscroll = 0;
_vm->_graphicsManager.NB_SCREEN();
@@ -3795,8 +3795,8 @@ void ObjectsManager::SPECIAL_JEU() {
_vm->_globals.NECESSAIRE = 1;
_vm->_graphicsManager.NB_SCREEN();
_vm->_globals.NECESSAIRE = 0;
- FileManager::CONSTRUIT_LINUX("TEMP1.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP1.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
PERSO_ON = 0;
memcpy(_vm->_graphicsManager.Palette, v1, 0x301u);
_vm->_graphicsManager.SHOW_PALETTE();
@@ -5687,8 +5687,8 @@ LABEL_1141:
_vm->_globals.SAUVEGARDE->data[svField354] = 1;
}
if (v76 == 56) {
- FileManager::CONSTRUIT_SYSTEM("HOPFEM.SPR");
- FileManager::CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("HOPFEM.SPR");
+ _vm->_fileManager.CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
_vm->_globals.PERSO_TYPE = 1;
_vm->_globals.SAUVEGARDE->data[svField122] = 1;
_vm->_globals.HOPKINS_DATA();
@@ -5697,8 +5697,8 @@ LABEL_1141:
VERIFTAILLE();
}
if (v76 == 57) {
- FileManager::CONSTRUIT_SYSTEM("PERSO.SPR");
- FileManager::CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("PERSO.SPR");
+ _vm->_fileManager.CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
_vm->_globals.PERSO_TYPE = 0;
_vm->_globals.SAUVEGARDE->data[svField122] = 0;
_vm->_globals.HOPKINS_DATA();
@@ -6135,8 +6135,8 @@ void ObjectsManager::ACTION_DOS(int idx) {
_vm->_globals.GESTE = _vm->_globals.dos_free2(_vm->_globals.GESTE);
_vm->_globals.GESTE_FLAG = 1;
- FileManager::CONSTRUIT_SYSTEM("DOS.SPR");
- _vm->_globals.GESTE = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("DOS.SPR");
+ _vm->_globals.GESTE = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if (idx == 1)
ACTION(_vm->_globals.GESTE, "0,1,2,3,4,5,6,7,8,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, 0);
@@ -6171,8 +6171,8 @@ void ObjectsManager::ACTION_DROITE(int idx) {
if (_vm->_globals.GESTE != PTRNUL)
_vm->_globals.GESTE = _vm->_globals.dos_free2(_vm->_globals.GESTE);
_vm->_globals.GESTE_FLAG = 3;
- FileManager::CONSTRUIT_SYSTEM("PROFIL.SPR");
- _vm->_globals.GESTE = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("PROFIL.SPR");
+ _vm->_globals.GESTE = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if (idx == 1)
ACTION(_vm->_globals.GESTE, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 0, 0, 8, 0);
@@ -6201,8 +6201,8 @@ void ObjectsManager::Q_DROITE(int idx) {
if (_vm->_globals.GESTE != PTRNUL)
_vm->_globals.GESTE = _vm->_globals.dos_free2(_vm->_globals.GESTE);
_vm->_globals.GESTE_FLAG = 4;
- FileManager::CONSTRUIT_SYSTEM("3Q.SPR");
- _vm->_globals.GESTE = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("3Q.SPR");
+ _vm->_globals.GESTE = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if (idx == 1)
ACTION(_vm->_globals.GESTE, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, 0);
@@ -6231,8 +6231,8 @@ void ObjectsManager::ACTION_FACE(int idx) {
if (_vm->_globals.GESTE != PTRNUL)
_vm->_globals.GESTE = _vm->_globals.dos_free2(_vm->_globals.GESTE);
_vm->_globals.GESTE_FLAG = 2;
- FileManager::CONSTRUIT_SYSTEM("FACE.SPR");
- _vm->_globals.GESTE = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("FACE.SPR");
+ _vm->_globals.GESTE = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if (idx == 1)
ACTION(_vm->_globals.GESTE, "0,1,2,3,4,5,6,7,9,9,9,9,9,9,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, 0);
@@ -6249,8 +6249,8 @@ void ObjectsManager::Q_GAUCHE(int idx) {
if (_vm->_globals.GESTE != PTRNUL)
_vm->_globals.GESTE = _vm->_globals.dos_free2(_vm->_globals.GESTE);
_vm->_globals.GESTE_FLAG = 4;
- FileManager::CONSTRUIT_SYSTEM("3Q.SPR");
- _vm->_globals.GESTE = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("3Q.SPR");
+ _vm->_globals.GESTE = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if (idx == 1)
ACTION(_vm->_globals.GESTE, "0,1,2,3,4,5,6,7,8,8,8,8,8,7,6,5,4,3,2,1,0,-1,", 0, 0, 8, 1);
@@ -6279,8 +6279,8 @@ void ObjectsManager::ACTION_GAUCHE(int idx) {
if (_vm->_globals.GESTE != PTRNUL)
_vm->_globals.GESTE = _vm->_globals.dos_free2(_vm->_globals.GESTE);
_vm->_globals.GESTE_FLAG = 3;
- FileManager::CONSTRUIT_SYSTEM("PROFIL.SPR");
- _vm->_globals.GESTE = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("PROFIL.SPR");
+ _vm->_globals.GESTE = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
}
if (idx == 1)
ACTION(_vm->_globals.GESTE, "20,19,18,17,16,15,14,13,13,13,13,13,14,15,16,17,18,19,20,-1,", 0, 0, 8, 1);
@@ -6434,10 +6434,10 @@ void ObjectsManager::INILINK(const Common::String &file) {
v2 = 0;
filename = file + ".LNK";
- ptr = FileManager::RECHERCHE_CAT(filename, 3);
+ ptr = _vm->_fileManager.RECHERCHE_CAT(filename, 3);
nbytes = _vm->_globals.CAT_TAILLE;
if (ptr == PTRNUL) {
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, filename);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, filename);
if (!f.open(_vm->_globals.NFICHIER))
error("Error opening file - %s", _vm->_globals.NFICHIER.c_str());
@@ -6446,7 +6446,7 @@ void ObjectsManager::INILINK(const Common::String &file) {
ptr = _vm->_globals.dos_malloc2(nbytes);
if (PTRNUL == ptr)
error("INILINK");
- FileManager::bload_it(f, ptr, nbytes);
+ _vm->_fileManager.bload_it(f, ptr, nbytes);
f.close();
}
if (!OBSSEUL) {
@@ -6457,15 +6457,15 @@ void ObjectsManager::INILINK(const Common::String &file) {
filename2 = Common::String((const char *)ptr + 1000);
if (!filename2.empty()) {
- _vm->_globals.CACHE_BANQUE[1] = FileManager::RECHERCHE_CAT(filename2, 8);
+ _vm->_globals.CACHE_BANQUE[1] = _vm->_fileManager.RECHERCHE_CAT(filename2, 8);
if (_vm->_globals.CACHE_BANQUE[1]) {
_vm->_globals.CAT_FLAG = 0;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, filename2);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, filename2);
} else {
_vm->_globals.CAT_FLAG = 1;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_SLI.RES");
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, "RES_SLI.RES");
}
- _vm->_globals.CACHE_BANQUE[1] = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ _vm->_globals.CACHE_BANQUE[1] = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
_vm->_globals.CAT_FLAG = 0;
v36 = 60;
v37 = ptr + 1000;
@@ -7619,21 +7619,21 @@ void ObjectsManager::PERSONAGE2(const Common::String &s1, const Common::String &
if (!_vm->_globals.PERSO_TYPE)
goto LABEL_70;
if (!_vm->_globals.SAUVEGARDE->data[svField122] && !_vm->_globals.SAUVEGARDE->data[svField356]) {
- FileManager::CONSTRUIT_SYSTEM("PERSO.SPR");
- FileManager::CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("PERSO.SPR");
+ _vm->_fileManager.CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
_vm->_globals.PERSO_TYPE = 0;
}
if (!_vm->_globals.PERSO_TYPE) {
LABEL_70:
if (_vm->_globals.SAUVEGARDE->data[svField122] == 1) {
- FileManager::CONSTRUIT_SYSTEM("HOPFEM.SPR");
- FileManager::CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("HOPFEM.SPR");
+ _vm->_fileManager.CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
_vm->_globals.PERSO_TYPE = 1;
}
}
if (_vm->_globals.PERSO_TYPE != 2 && _vm->_globals.SAUVEGARDE->data[svField356] == 1) {
- FileManager::CONSTRUIT_SYSTEM("PSAMAN.SPR");
- FileManager::CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
+ _vm->_fileManager.CONSTRUIT_SYSTEM("PSAMAN.SPR");
+ _vm->_fileManager.CHARGE_FICHIER2(_vm->_globals.NFICHIER, _vm->_globals.PERSO);
_vm->_globals.PERSO_TYPE = 2;
}
_vm->_globals.HOPKINS_DATA();
diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp
index 13179c1a36..f792f4d898 100644
--- a/engines/hopkins/talk.cpp
+++ b/engines/hopkins/talk.cpp
@@ -60,12 +60,12 @@ void TalkManager::PARLER_PERSO(const Common::String &filename) {
_vm->_graphicsManager.no_scroll = 1;
v13 = _vm->_globals.DESACTIVE_INVENT;
_vm->_globals.DESACTIVE_INVENT = 1;
- BUFFERPERSO = FileManager::RECHERCHE_CAT(filename, 5);
+ BUFFERPERSO = _vm->_fileManager.RECHERCHE_CAT(filename, 5);
TAILLEPERSO = _vm->_globals.CAT_TAILLE;
if (BUFFERPERSO == PTRNUL) {
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, filename);
- BUFFERPERSO = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
- TAILLEPERSO = FileManager::FLONG(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, filename);
+ BUFFERPERSO = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ TAILLEPERSO = _vm->_fileManager.FLONG(_vm->_globals.NFICHIER);
}
_vm->_globals.SAUVEGARDE->data[svField4] = 0;
RENVOIE_FICHIER(40, v16, (const char *)BUFFERPERSO);
@@ -81,21 +81,21 @@ void TalkManager::PARLER_PERSO(const Common::String &filename) {
v2 = READ_LE_UINT16((uint16 *)BUFFERPERSO + 40);
v3 = 20 * READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
PCHERCHE = 20 * READ_LE_UINT16((uint16 *)BUFFERPERSO + 42) + 110;
- PERSOSPR = FileManager::RECHERCHE_CAT(v16, 7);
+ PERSOSPR = _vm->_fileManager.RECHERCHE_CAT(v16, 7);
if (PERSOSPR) {
_vm->_globals.CAT_FLAG = 0;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, v16);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, v16);
} else {
_vm->_globals.CAT_FLAG = 1;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_SAN.RES");
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_SAN.RES");
}
PERSOSPR = _vm->_objectsManager.CHARGE_SPRITE(_vm->_globals.NFICHIER);
_vm->_globals.CAT_FLAG = 0;
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
if (_vm->_graphicsManager.nbrligne == 640)
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
if (_vm->_graphicsManager.nbrligne == 1280)
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
if (!_vm->_graphicsManager.nbrligne)
_vm->_graphicsManager.ofscroll = 0;
_vm->_graphicsManager.NB_SCREEN();
@@ -134,8 +134,8 @@ void TalkManager::PARLER_PERSO(const Common::String &filename) {
PERSOSPR = _vm->_globals.LIBERE_FICHIER(PERSOSPR);
_vm->_graphicsManager.NB_SCREEN();
_vm->_globals.NECESSAIRE = 0;
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
_vm->_objectsManager.PERSO_ON = 0;
_vm->_eventsManager.btsouris = v14;
@@ -191,12 +191,12 @@ void TalkManager::PARLER_PERSO2(const Common::String &filename) {
STATI = 1;
v7 = _vm->_objectsManager.DESACTIVE_INVENT;
_vm->_objectsManager.DESACTIVE_INVENT = 1;
- BUFFERPERSO = FileManager::RECHERCHE_CAT(filename, 5);
+ BUFFERPERSO = _vm->_fileManager.RECHERCHE_CAT(filename, 5);
TAILLEPERSO = _vm->_globals.CAT_TAILLE;
if (BUFFERPERSO == PTRNUL) {
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, filename);
- BUFFERPERSO = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
- TAILLEPERSO = FileManager::FLONG(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, filename);
+ BUFFERPERSO = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ TAILLEPERSO = _vm->_fileManager.FLONG(_vm->_globals.NFICHIER);
}
_vm->_globals.SAUVEGARDE->data[svField4] = 0;
@@ -621,7 +621,7 @@ int TalkManager::VERIF_BOITE(int idx, const Common::String &file, int a3) {
v18 = 0;
_vm->_globals.police_l = 11;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, file);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPLINK, file);
filename = dest = _vm->_globals.NFICHIER;
filename += "IND";
@@ -1181,12 +1181,12 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) {
_vm->_objectsManager.NUMZONE = -1;
_vm->_eventsManager.btsouris = 4;
_vm->_eventsManager.CHANGE_MOUSE(0);
- BUFFERPERSO = FileManager::RECHERCHE_CAT(a2, 5);
+ BUFFERPERSO = _vm->_fileManager.RECHERCHE_CAT(a2, 5);
TAILLEPERSO = _vm->_globals.CAT_TAILLE;
if (BUFFERPERSO == PTRNUL) {
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, a2);
- BUFFERPERSO = FileManager::CHARGE_FICHIER(_vm->_globals.NFICHIER);
- TAILLEPERSO = FileManager::FLONG(_vm->_globals.NFICHIER);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, a2);
+ BUFFERPERSO = _vm->_fileManager.CHARGE_FICHIER(_vm->_globals.NFICHIER);
+ TAILLEPERSO = _vm->_fileManager.FLONG(_vm->_globals.NFICHIER);
}
RENVOIE_FICHIER(40, v23, (const char *)BUFFERPERSO);
RENVOIE_FICHIER(0, v22, (const char *)BUFFERPERSO);
@@ -1199,21 +1199,21 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) {
if (!v6) {
v20 = Common::String::format("IM%d", _vm->_globals.ECRAN);
}
- PERSOSPR = FileManager::RECHERCHE_CAT(v23, 7);
+ PERSOSPR = _vm->_fileManager.RECHERCHE_CAT(v23, 7);
if (PERSOSPR) {
_vm->_globals.CAT_FLAG = 0;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, v23);
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, v23);
} else {
_vm->_globals.CAT_FLAG = 1;
- FileManager::CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_SAN.RES");
+ _vm->_fileManager.CONSTRUIT_FICHIER(_vm->_globals.HOPANIM, "RES_SAN.RES");
}
PERSOSPR = _vm->_objectsManager.CHARGE_SPRITE(_vm->_globals.NFICHIER);
_vm->_globals.CAT_FLAG = 0;
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
if (_vm->_graphicsManager.nbrligne == SCREEN_WIDTH)
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x4B000u);
if (_vm->_graphicsManager.nbrligne == (SCREEN_WIDTH * 2))
- FileManager::SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
+ _vm->_fileManager.SAUVE_FICHIER(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN, 0x96000u);
if (!_vm->_graphicsManager.nbrligne)
_vm->_graphicsManager.ofscroll = 0;
_vm->_graphicsManager.NB_SCREEN();
@@ -1276,8 +1276,8 @@ void TalkManager::OBJET_VIVANT(const Common::String &a2) {
_vm->_globals.NOMARCHE = 0;
if (_vm->_globals.SORTIE == 101)
_vm->_globals.SORTIE = 0;
- FileManager::CONSTRUIT_LINUX("TEMP.SCR");
- FileManager::bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
+ _vm->_fileManager.CONSTRUIT_LINUX("TEMP.SCR");
+ _vm->_fileManager.bload(_vm->_globals.NFICHIER, _vm->_graphicsManager.VESA_SCREEN);
_vm->_objectsManager.PERSO_ON = 0;
_vm->_eventsManager.btsouris = 4;
_vm->_eventsManager.CHANGE_MOUSE(4);