Skip to content

Commit

Permalink
HOPKINS: Remove global filename and constructFilename
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke committed Jan 7, 2013
1 parent 337c5d0 commit 495ecaa
Show file tree
Hide file tree
Showing 16 changed files with 224 additions and 332 deletions.
57 changes: 23 additions & 34 deletions engines/hopkins/anim.cpp
Expand Up @@ -58,15 +58,16 @@ void AnimationManager::playAnim(const Common::String &filename, uint32 rate1, ui
byte *screenP = _vm->_graphicsManager._vesaScreen;
byte *ptr = _vm->_globals.allocMemory(20);

Common::String tmpStr;
// The Windows 95 demo only contains the interlaced version of the BOMBE1 and BOMBE2 videos
if (_vm->getPlatform() == Common::kPlatformWindows && _vm->getIsDemo() && filename == "BOMBE1A.ANM")
_vm->_fileManager.constructFilename("ANM", "BOMBE1.ANM");
tmpStr = "BOMBE1.ANM";
else if (_vm->getPlatform() == Common::kPlatformWindows && _vm->getIsDemo() && filename == "BOMBE2A.ANM")
_vm->_fileManager.constructFilename("ANM", "BOMBE2.ANM");
tmpStr = "BOMBE2.ANM";
else
_vm->_fileManager.constructFilename("ANM", filename);
if (!f.open(_vm->_globals._curFilename))
error("File not found - %s", _vm->_globals._curFilename.c_str());
tmpStr = filename;
if (!f.open(tmpStr))
error("File not found - %s", tmpStr.c_str());

f.skip(6);
f.read(_vm->_graphicsManager._palette, 800);
Expand Down Expand Up @@ -228,21 +229,18 @@ void AnimationManager::playAnim2(const Common::String &filename, uint32 a2, uint
while (!_vm->shouldQuit()) {
memcpy(_vm->_graphicsManager._oldPalette, _vm->_graphicsManager._palette, 769);

_vm->_fileManager.constructLinuxFilename("TEMP.SCR");

if (_vm->_graphicsManager._lineNbr == SCREEN_WIDTH)
_vm->_saveLoadManager.saveFile(_vm->_globals._curFilename, _vm->_graphicsManager._vesaScreen, 307200);
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager._vesaScreen, 307200);
else if (_vm->_graphicsManager._lineNbr == (SCREEN_WIDTH * 2))
_vm->_saveLoadManager.saveFile(_vm->_globals._curFilename, _vm->_graphicsManager._vesaScreen, 614400);
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager._vesaScreen, 614400);
if (!_vm->_graphicsManager._lineNbr)
_vm->_graphicsManager._scrollOffset = 0;

screenP = _vm->_graphicsManager._vesaScreen;
ptr = _vm->_globals.allocMemory(20);
_vm->_fileManager.constructFilename("ANM", filename);

if (!f.open(_vm->_globals._curFilename))
error("Error opening file - %s", _vm->_globals._curFilename.c_str());
if (!f.open(filename))
error("Error opening file - %s", filename.c_str());

f.read(&buf, 6);
f.read(_vm->_graphicsManager._palette, 800);
Expand Down Expand Up @@ -476,11 +474,9 @@ void AnimationManager::loadAnim(const Common::String &animName) {
clearAnim();

Common::String filename = animName + ".ANI";
_vm->_fileManager.constructFilename("ANIM", filename);

Common::File f;
if (!f.open(_vm->_globals._curFilename))
error("Failed to open %s", _vm->_globals._curFilename.c_str());
if (!f.open(filename))
error("Failed to open %s", filename.c_str());

int filesize = f.size();
int nbytes = filesize - 115;
Expand All @@ -501,9 +497,7 @@ void AnimationManager::loadAnim(const Common::String &animName) {

for (int idx = 0; idx <= 5; ++idx) {
if (files[idx][0]) {
_vm->_fileManager.constructFilename("ANIM", files[idx]);

if (!f.exists(_vm->_globals._curFilename))
if (!f.exists(files[idx]))
error("File not found");
if (loadSpriteBank(idx + 1, files[idx]))
error("File not compatible with this soft.");
Expand Down Expand Up @@ -545,12 +539,11 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) {
byte *v13;
byte *v19;
int result = 0;
_vm->_fileManager.constructFilename("ANIM", filename);
_vm->_globals.Bank[idx].field1C = _vm->_fileManager.fileSize(_vm->_globals._curFilename);
_vm->_globals.Bank[idx].field1C = _vm->_fileManager.fileSize(filename);
_vm->_globals.Bank[idx]._loadedFl = true;
_vm->_globals.Bank[idx]._filename = filename;

byte *fileDataPtr = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
byte *fileDataPtr = _vm->_fileManager.loadFile(filename);

_vm->_globals.Bank[idx]._fileHeader = 0;
if (fileDataPtr[1] == 'L' && fileDataPtr[2] == 'E')
Expand Down Expand Up @@ -587,10 +580,9 @@ int AnimationManager::loadSpriteBank(int idx, const Common::String &filename) {
} while (ch != '.');
ofsFilename += ".OFS";

_vm->_fileManager.constructFilename("ANIM", ofsFilename);
Common::File f;
if (f.exists(_vm->_globals._curFilename)) {
v19 = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
if (f.exists(ofsFilename)) {
v19 = _vm->_fileManager.loadFile(ofsFilename);
v13 = v19;
for (int objIdx = 0; objIdx < _vm->_globals.Bank[idx].field1A; ++objIdx, v13 += 8) {
int x1 = (int16)READ_LE_UINT16(v13);
Expand Down Expand Up @@ -723,19 +715,17 @@ void AnimationManager::playSequence(const Common::String &file, uint32 rate1, ui
if (!NO_COUL) {
_vm->_eventsManager.VBL();

_vm->_fileManager.constructLinuxFilename("TEMP.SCR");
if (_vm->_graphicsManager._lineNbr == SCREEN_WIDTH)
_vm->_saveLoadManager.saveFile(_vm->_globals._curFilename, _vm->_graphicsManager._vesaScreen, 307200);
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager._vesaScreen, 307200);
else if (_vm->_graphicsManager._lineNbr == (SCREEN_WIDTH * 2))
_vm->_saveLoadManager.saveFile(_vm->_globals._curFilename, _vm->_graphicsManager._vesaScreen, 614400);
_vm->_saveLoadManager.saveFile("TEMP.SCR", _vm->_graphicsManager._vesaScreen, 614400);
if (!_vm->_graphicsManager._lineNbr)
_vm->_graphicsManager._scrollOffset = 0;
}
screenP = _vm->_graphicsManager._vesaScreen;
v10 = _vm->_globals.allocMemory(22);
_vm->_fileManager.constructFilename("SEQ", file);
if (!f.open(_vm->_globals._curFilename))
error("Error opening file - %s", _vm->_globals._curFilename.c_str());
if (!f.open(file))
error("Error opening file - %s", file.c_str());

f.skip(6);
f.read(_vm->_graphicsManager._palette, 800);
Expand Down Expand Up @@ -889,10 +879,9 @@ void AnimationManager::playSequence2(const Common::String &file, uint32 rate1, u
_vm->_eventsManager._mouseFl = false;
screenP = _vm->_graphicsManager._vesaScreen;
v11 = _vm->_globals.allocMemory(22);
_vm->_fileManager.constructFilename("SEQ", file);

if (!f.open(_vm->_globals._curFilename))
error("File not found - %s", _vm->_globals._curFilename.c_str());
if (!f.open(file))
error("File not found - %s", file.c_str());

f.skip(6);
f.read(_vm->_graphicsManager._palette, 800);
Expand Down
48 changes: 20 additions & 28 deletions engines/hopkins/computer.cpp
Expand Up @@ -78,9 +78,8 @@ void ComputerManager::setTextMode() {
//SET_MODE(SCREEN_WIDTH, SCREEN_HEIGHT);

_vm->_graphicsManager._lineNbr = SCREEN_WIDTH;
_vm->_fileManager.constructFilename("SYSTEM", "STFONT.SPR");
_vm->_globals.police = _vm->_globals.freeMemory(_vm->_globals.police);
_vm->_globals.police = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
_vm->_globals.police = _vm->_fileManager.loadFile("STFONT.SPR");
_vm->_globals.police_l = 8;
_vm->_globals.police_h = 8;
_vm->_graphicsManager.loadImage("WINTEXT");
Expand Down Expand Up @@ -328,9 +327,8 @@ static char _frenchText[] =
*/
void ComputerManager::loadMenu() {
char *ptr;
if (_vm->_fileManager.fileExists("LINK", "COMPUTAN.TXT")) {
_vm->_fileManager.constructFilename("LINK", "COMPUTAN.TXT");
ptr = (char *)_vm->_fileManager.loadFile(_vm->_globals._curFilename);
if (_vm->_fileManager.fileExists("COMPUTAN.TXT")) {
ptr = (char *)_vm->_fileManager.loadFile("COMPUTAN.TXT");
} else if (_vm->_globals._language == LANG_FR) {
ptr = (char *)_vm->_globals.allocMemory(sizeof(_frenchText));
strcpy(ptr, _frenchText);
Expand Down Expand Up @@ -444,9 +442,8 @@ void ComputerManager::outText2(const Common::String &msg) {
* Restores the scene for the FBI headquarters room
*/
void ComputerManager::restoreFBIRoom() {
_vm->_globals.police = _vm->_globals.freeMemory(_vm->_globals.police);
_vm->_fileManager.constructFilename("SYSTEM", "FONTE3.SPR");
_vm->_globals.police = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
_vm->_globals.freeMemory(_vm->_globals.police);
_vm->_globals.police = _vm->_fileManager.loadFile("FONTE3.SPR");

_vm->_globals.police_l = 12;
_vm->_globals.police_h = 21;
Expand All @@ -458,16 +455,18 @@ void ComputerManager::restoreFBIRoom() {
*/
void ComputerManager::readText(int idx) {
_vm->_eventsManager._escKeyFl = false;
byte *ptr;

Common::String filename;
if (_vm->_globals._language == LANG_EN)
_vm->_fileManager.constructFilename("LINK", "THOPKAN.TXT");
filename = "THOPKAN.TXT";
else if (_vm->_globals._language == LANG_FR)
_vm->_fileManager.constructFilename("LINK", "THOPK.TXT");
filename = "THOPK.TXT";
else if (_vm->_globals._language == LANG_SP)
_vm->_fileManager.constructFilename("LINK", "THOPKES.TXT");
filename = "THOPKES.TXT";

byte *ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
uint16 fileSize = _vm->_fileManager.fileSize(_vm->_globals._curFilename);
ptr = _vm->_fileManager.loadFile(filename);
uint16 fileSize = _vm->_fileManager.fileSize(filename);
int pos;
for (pos = 0; pos < fileSize; pos++) {
if (ptr[pos] == '%') {
Expand Down Expand Up @@ -528,8 +527,7 @@ void ComputerManager::displayGamesSubMenu() {
_vm->_soundManager.loadSample(1, "SOUND37.WAV");
_vm->_soundManager.loadSample(2, "SOUND38.WAV");
_vm->_soundManager.loadSample(3, "SOUND39.WAV");
_vm->_fileManager.constructFilename("SYSTEM", "CASSE.SPR");
_breakoutSpr = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
_breakoutSpr = _vm->_fileManager.loadFile("CASSE.SPR");
loadHiscore();
setModeVGA256();
newLevel();
Expand Down Expand Up @@ -560,9 +558,8 @@ void ComputerManager::loadHiscore() {
char nextChar;
byte *ptr;

_vm->_fileManager.constructLinuxFilename("HISCORE.DAT");
ptr = _vm->_globals.allocMemory(100);
_vm->_saveLoadManager.load(_vm->_globals._curFilename, ptr);
_vm->_saveLoadManager.load("HISCORE.DAT", ptr);

for (int scoreIndex = 0; scoreIndex < 6; ++scoreIndex) {
for (int i = 0; i < 5; ++i) {
Expand Down Expand Up @@ -614,16 +611,14 @@ void ComputerManager::newLevel() {
++_breakoutLevelNbr;
while (!_vm->shouldQuit()) {
file = Common::String::format("TAB%d.TAB", _breakoutLevelNbr);

_vm->_fileManager.constructFilename("SYSTEM", file);
if (f.open(_vm->_globals._curFilename))
if (f.open(file))
break;

_breakoutLevelNbr = 1;
}
f.close();

_breakoutLevel = (int16 *)_vm->_fileManager.loadFile(_vm->_globals._curFilename);
_breakoutLevel = (int16 *)_vm->_fileManager.loadFile(file);
displayBricks();
_vm->_objectsManager.SPRITE(_breakoutSpr, Common::Point(150, 192), 0, 13, 0, 0, 0, 0);
_vm->_objectsManager.SPRITE(_breakoutSpr, Common::Point(164, 187), 1, 14, 0, 0, 0, 0);
Expand Down Expand Up @@ -789,8 +784,7 @@ int ComputerManager::displayHiscores() {
_vm->_graphicsManager.RESET_SEGMENT_VESA();
loadHiscore();
_vm->_graphicsManager.loadVgaImage("HISCORE.PCX");
_vm->_fileManager.constructFilename("SYSTEM", "ALPHA.SPR");
byte *ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
byte *ptr = _vm->_fileManager.loadFile("ALPHA.SPR");
_vm->_graphicsManager.SETCOLOR3(252, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100);
Expand Down Expand Up @@ -841,8 +835,7 @@ void ComputerManager::getScoreName() {
_vm->_graphicsManager.SETCOLOR3(253, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(251, 100, 100, 100);
_vm->_graphicsManager.SETCOLOR3(254, 0, 0, 0);
_vm->_fileManager.constructFilename("SYSTEM", "ALPHA.SPR");
byte *ptr = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
byte *ptr = _vm->_fileManager.loadFile("ALPHA.SPR");
_vm->_graphicsManager.fadeInBreakout();
for (int strPos = 0; strPos <= 4; strPos++) {
displayHiscoreLine(ptr, 9 * strPos + 140, 78, 1);
Expand Down Expand Up @@ -885,7 +878,7 @@ void ComputerManager::displayScore() {
Common::String scoreStr = Common::String::format("%d", _breakoutScore);
int strSize = scoreStr.size();
int idx = 0;
for (int i = strSize; i > -1; i--) {
for (int i = strSize - 1; i > -1; i--) {
displayScoreChar(idx++, scoreStr[i]);
}
}
Expand Down Expand Up @@ -977,8 +970,7 @@ void ComputerManager::saveScore() {
ptr[v9 + 9] = 0;
}

_vm->_fileManager.constructLinuxFilename("HISCORE.DAT");
_vm->_saveLoadManager.saveFile(_vm->_globals._curFilename, ptr, 100);
_vm->_saveLoadManager.saveFile("HISCORE.DAT", ptr, 100);
_vm->_globals.freeMemory(ptr);
}

Expand Down
35 changes: 18 additions & 17 deletions engines/hopkins/dialogs.cpp
Expand Up @@ -59,14 +59,15 @@ void DialogsManager::showOptionsDialog() {
doneFlag = false;
_vm->_eventsManager.changeMouseCursor(0);
_vm->_eventsManager.VBL();
Common::String filename;
if (_vm->_globals._language == LANG_FR)
_vm->_fileManager.constructFilename("SYSTEM", "OPTIFR.SPR");
filename = "OPTIFR.SPR";
else if (_vm->_globals._language == LANG_EN)
_vm->_fileManager.constructFilename("SYSTEM", "OPTIAN.SPR");
filename = "OPTIAN.SPR";
else if (_vm->_globals._language == LANG_SP)
_vm->_fileManager.constructFilename("SYSTEM", "OPTIES.SPR");
filename = "OPTIES.SPR";

_vm->_globals.OPTION_SPR = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
_vm->_globals.OPTION_SPR = _vm->_fileManager.loadFile(filename);
_vm->_globals._optionDialogFl = true;

do {
Expand Down Expand Up @@ -311,29 +312,29 @@ void DialogsManager::showInventory() {
_vm->_globals._disableInventFl = true;
_vm->_graphicsManager.SETCOLOR4(251, 100, 100, 100);

Common::String filename;
switch (_vm->_globals._language) {
case LANG_EN:
_vm->_fileManager.constructFilename("SYSTEM", "INVENTAN.SPR");
filename = "INVENTAN.SPR";
break;
case LANG_FR:
_vm->_fileManager.constructFilename("SYSTEM", "INVENTFR.SPR");
filename = "INVENTFR.SPR";
break;
case LANG_SP:
_vm->_fileManager.constructFilename("SYSTEM", "INVENTES.SPR");
filename = "INVENTES.SPR";
break;
}

Common::File f;
if (!f.open(_vm->_globals._curFilename))
error("Error opening file - %s", _vm->_globals._curFilename.c_str());
if (!f.open(filename))
error("Error opening file - %s", filename.c_str());

size_t filesize = f.size();
_vm->_dialogsManager._inventWin1 = _vm->_globals.allocMemory(filesize);
_vm->_fileManager.readStream(f, _vm->_dialogsManager._inventWin1, filesize);
f.close();

_vm->_fileManager.constructFilename("SYSTEM", "INVENT2.SPR");
_inventBuf2 = _vm->_fileManager.loadFile(_vm->_globals._curFilename);
_inventBuf2 = _vm->_fileManager.loadFile("INVENT2.SPR");

int v19 = _inventX = _vm->_graphicsManager._scrollOffset + 152;
_inventY = 114;
Expand Down Expand Up @@ -609,21 +610,21 @@ void DialogsManager::showSaveLoad(int a1) {
hopkinsSavegameHeader header;
byte *thumb;

Common::String filename;
switch (_vm->_globals._language) {
case LANG_EN:
_vm->_fileManager.constructFilename("SYSTEM", "SAVEAN.SPR");
filename = "SAVEAN.SPR";
break;
case LANG_FR:
_vm->_fileManager.constructFilename("SYSTEM", "SAVEFR.SPR");
filename = "SAVEFR.SPR";
break;
case LANG_SP:
_vm->_fileManager.constructFilename("SYSTEM", "SAVEES.SPR");
filename = "SAVEES.SPR";
break;
}

_vm->_objectsManager.SL_SPR = _vm->_objectsManager.loadSprite(_vm->_globals._curFilename);
_vm->_fileManager.constructFilename("SYSTEM", "SAVE2.SPR");
_vm->_objectsManager.SL_SPR2 = _vm->_objectsManager.loadSprite(_vm->_globals._curFilename);
_vm->_objectsManager.SL_SPR = _vm->_objectsManager.loadSprite(filename);
_vm->_objectsManager.SL_SPR2 = _vm->_objectsManager.loadSprite("SAVE2.SPR");
_vm->_graphicsManager.Sprite_Vesa(_vm->_graphicsManager._vesaBuffer, _vm->_objectsManager.SL_SPR, _vm->_eventsManager._startPos.x + 483, 360, 0);

if (_vm->_globals._language == LANG_FR) {
Expand Down

0 comments on commit 495ecaa

Please sign in to comment.