diff options
| -rw-r--r-- | engines/hopkins/anim.cpp | 154 | ||||
| -rw-r--r-- | engines/hopkins/dialogs.cpp | 8 | ||||
| -rw-r--r-- | engines/hopkins/events.cpp | 2 | ||||
| -rw-r--r-- | engines/hopkins/files.cpp | 117 | ||||
| -rw-r--r-- | engines/hopkins/files.h | 41 | ||||
| -rw-r--r-- | engines/hopkins/font.cpp | 2 | ||||
| -rw-r--r-- | engines/hopkins/globals.cpp | 12 | ||||
| -rw-r--r-- | engines/hopkins/graphics.cpp | 72 | ||||
| -rw-r--r-- | engines/hopkins/hopkins.cpp | 255 | ||||
| -rw-r--r-- | engines/hopkins/hopkins.h | 2 | ||||
| -rw-r--r-- | engines/hopkins/menu.cpp | 32 | ||||
| -rw-r--r-- | engines/hopkins/objects.cpp | 108 | ||||
| -rw-r--r-- | engines/hopkins/talk.cpp | 58 | 
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); | 
