mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-03 16:58:26 +00:00
HOPKINS: Get rid of magic values in FilesManager
This commit is contained in:
parent
c74361b0b6
commit
58eefc0833
@ -96,7 +96,7 @@ bool FileManager::fileExists(const Common::String &file) {
|
||||
/**
|
||||
* Search file in Cat file
|
||||
*/
|
||||
byte *FileManager::searchCat(const Common::String &file, int a2) {
|
||||
byte *FileManager::searchCat(const Common::String &file, CatMode mode) {
|
||||
byte *ptr = NULL;
|
||||
Common::File f;
|
||||
|
||||
@ -104,8 +104,8 @@ byte *FileManager::searchCat(const Common::String &file, int a2) {
|
||||
Common::String secondaryFilename = "";
|
||||
filename.toUppercase();
|
||||
|
||||
switch (a2) {
|
||||
case 1:
|
||||
switch (mode) {
|
||||
case RES_INI:
|
||||
if (!f.exists("RES_INI.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
@ -113,7 +113,7 @@ byte *FileManager::searchCat(const Common::String &file, int a2) {
|
||||
secondaryFilename = "RES_INI.RES";
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case RES_REP:
|
||||
if (!f.exists("RES_REP.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
@ -121,7 +121,7 @@ byte *FileManager::searchCat(const Common::String &file, int a2) {
|
||||
secondaryFilename = "RES_REP.RES";
|
||||
break;
|
||||
|
||||
case 3:
|
||||
case RES_LIN:
|
||||
if (!f.exists("RES_LIN.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
@ -129,7 +129,7 @@ byte *FileManager::searchCat(const Common::String &file, int a2) {
|
||||
secondaryFilename = "RES_LIN.RES";
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case RES_ANI:
|
||||
if (!f.exists("RES_ANI.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
@ -137,7 +137,7 @@ byte *FileManager::searchCat(const Common::String &file, int a2) {
|
||||
secondaryFilename = "RES_ANI.RES";
|
||||
break;
|
||||
|
||||
case 5:
|
||||
case RES_PER:
|
||||
if (!f.exists("RES_PER.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
@ -145,28 +145,28 @@ byte *FileManager::searchCat(const Common::String &file, int a2) {
|
||||
secondaryFilename = "RES_PER.RES";
|
||||
break;
|
||||
|
||||
case 6:
|
||||
case RES_PIC:
|
||||
if (!f.exists("PIC.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
ptr = loadFile("PIC.CAT");
|
||||
break;
|
||||
|
||||
case 7:
|
||||
case RES_SAN:
|
||||
if (!f.exists("RES_SAN.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
ptr = loadFile("RES_SAN.CAT");
|
||||
break;
|
||||
|
||||
case 8:
|
||||
case RES_SLI:
|
||||
if (!f.exists("RES_SLI.CAT"))
|
||||
return g_PTRNUL;
|
||||
|
||||
ptr = loadFile("RES_SLI.CAT");
|
||||
break;
|
||||
|
||||
case 9: {
|
||||
case RES_VOI: {
|
||||
Common::String tmpFilename;
|
||||
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
|
||||
tmpFilename = "ENG_VOI.CAT";
|
||||
|
@ -32,6 +32,11 @@ namespace Hopkins {
|
||||
|
||||
class HopkinsEngine;
|
||||
|
||||
// CHECKME: RES_ANI looks unused
|
||||
enum CatMode { RES_INI = 1, RES_REP = 2, RES_LIN = 3, RES_ANI = 4,
|
||||
RES_PER = 5, RES_PIC = 6, RES_SAN = 7, RES_SLI = 8,
|
||||
RES_VOI = 9 };
|
||||
|
||||
class FileManager {
|
||||
public:
|
||||
HopkinsEngine *_vm;
|
||||
@ -43,7 +48,7 @@ public:
|
||||
byte *loadFile(const Common::String &file);
|
||||
int readStream(Common::ReadStream &stream, void *buf, size_t nbytes);
|
||||
void initCensorship();
|
||||
byte *searchCat(const Common::String &file, int a2);
|
||||
byte *searchCat(const Common::String &file, CatMode mode);
|
||||
uint32 fileSize(const Common::String &filename);
|
||||
};
|
||||
|
||||
|
@ -193,7 +193,7 @@ void GraphicsManager::loadScreen(const Common::String &file) {
|
||||
Common::File f;
|
||||
|
||||
bool flag = true;
|
||||
if (_vm->_fileManager.searchCat(file, 6) == g_PTRNUL) {
|
||||
if (_vm->_fileManager.searchCat(file, RES_PIC) == g_PTRNUL) {
|
||||
if (!f.open(file))
|
||||
error("loadScreen - %s", file.c_str());
|
||||
|
||||
@ -1678,7 +1678,7 @@ void GraphicsManager::displayFont(byte *surface, const byte *spriteData, int xp,
|
||||
|
||||
void GraphicsManager::initScreen(const Common::String &file, int mode, bool initializeScreen) {
|
||||
Common::String filename = file + ".ini";
|
||||
byte *ptr = _vm->_fileManager.searchCat(filename, 1);
|
||||
byte *ptr = _vm->_fileManager.searchCat(filename, RES_INI);
|
||||
|
||||
if (ptr == g_PTRNUL) {
|
||||
ptr = _vm->_fileManager.loadFile(filename);
|
||||
@ -1687,7 +1687,7 @@ void GraphicsManager::initScreen(const Common::String &file, int mode, bool init
|
||||
filename = file + ".spr";
|
||||
_vm->_globals.SPRITE_ECRAN = _vm->_globals.freeMemory(_vm->_globals.SPRITE_ECRAN);
|
||||
if (initializeScreen) {
|
||||
_vm->_globals.SPRITE_ECRAN = _vm->_fileManager.searchCat(filename, 8);
|
||||
_vm->_globals.SPRITE_ECRAN = _vm->_fileManager.searchCat(filename, RES_SLI);
|
||||
if (_vm->_globals.SPRITE_ECRAN) {
|
||||
_vm->_globals.SPRITE_ECRAN = _vm->_fileManager.loadFile(filename);
|
||||
} else {
|
||||
@ -1696,7 +1696,7 @@ void GraphicsManager::initScreen(const Common::String &file, int mode, bool init
|
||||
}
|
||||
}
|
||||
if (READ_BE_UINT24(ptr) != MKTAG24('I', 'N', 'I')) {
|
||||
error("Error, file not ini");
|
||||
error("Invalid INI File %s", file);
|
||||
} else {
|
||||
bool doneFlag = false;
|
||||
int dataOffset = 1;
|
||||
@ -1722,7 +1722,7 @@ void GraphicsManager::initScreen(const Common::String &file, int mode, bool init
|
||||
_vm->_globals._answerBuffer = _vm->_globals.freeMemory(_vm->_globals._answerBuffer);
|
||||
|
||||
filename = file + ".rep";
|
||||
byte *dataP = _vm->_fileManager.searchCat(filename, 2);
|
||||
byte *dataP = _vm->_fileManager.searchCat(filename, RES_REP);
|
||||
if (dataP == g_PTRNUL)
|
||||
dataP = _vm->_fileManager.loadFile(filename);
|
||||
|
||||
|
@ -2535,7 +2535,7 @@ void ObjectsManager::OPTI_OBJET() {
|
||||
int lastOpcodeResult = 1;
|
||||
|
||||
file = "OBJET1.ini";
|
||||
data = _vm->_fileManager.searchCat(file, 1);
|
||||
data = _vm->_fileManager.searchCat(file, RES_INI);
|
||||
if (data == g_PTRNUL) {
|
||||
data = _vm->_fileManager.loadFile(file);
|
||||
if (data == g_PTRNUL)
|
||||
@ -3047,7 +3047,7 @@ int ObjectsManager::getBobFrameIndex(int idx) {
|
||||
void ObjectsManager::loadLinkFile(const Common::String &file) {
|
||||
Common::File f;
|
||||
Common::String filename = file + ".LNK";
|
||||
byte *ptr = _vm->_fileManager.searchCat(filename, 3);
|
||||
byte *ptr = _vm->_fileManager.searchCat(filename, RES_LIN);
|
||||
size_t nbytes = _vm->_globals._catalogSize;
|
||||
if (ptr == g_PTRNUL) {
|
||||
if (!f.open(filename))
|
||||
@ -3068,7 +3068,7 @@ void ObjectsManager::loadLinkFile(const Common::String &file) {
|
||||
|
||||
Common::String filename2 = Common::String((const char *)ptr + 1000);
|
||||
if (!filename2.empty()) {
|
||||
_vm->_globals._hidingItemData[1] = _vm->_fileManager.searchCat(filename2, 8);
|
||||
_vm->_globals._hidingItemData[1] = _vm->_fileManager.searchCat(filename2, RES_SLI);
|
||||
|
||||
if (_vm->_globals._hidingItemData[1] || _vm->_globals._hidingItemData[1] == g_PTRNUL) {
|
||||
_vm->_globals._hidingItemData[1] = _vm->_fileManager.loadFile(filename2);
|
||||
|
@ -520,7 +520,7 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
|
||||
|
||||
filename = Common::String::format("%s%d", prefix.c_str(), mappedFileNumber);
|
||||
|
||||
if (!_vm->_fileManager.searchCat(filename + ".WAV", 9)) {
|
||||
if (!_vm->_fileManager.searchCat(filename + ".WAV", RES_VOI)) {
|
||||
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
|
||||
filename = "ENG_VOI.RES";
|
||||
// Win95 and Linux versions uses another set of names
|
||||
@ -533,7 +533,7 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
|
||||
|
||||
catPos = _vm->_globals._catalogPos;
|
||||
catLen = _vm->_globals._catalogSize;
|
||||
} else if (!_vm->_fileManager.searchCat(filename + ".APC", 9)) {
|
||||
} else if (!_vm->_fileManager.searchCat(filename + ".APC", RES_VOI)) {
|
||||
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
|
||||
filename = "ENG_VOI.RES";
|
||||
// Win95 and Linux versions uses another set of names
|
||||
@ -546,7 +546,7 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
|
||||
|
||||
catPos = _vm->_globals._catalogPos;
|
||||
catLen = _vm->_globals._catalogSize;
|
||||
} else if (!_vm->_fileManager.searchCat(filename + ".RAW", 9)) {
|
||||
} else if (!_vm->_fileManager.searchCat(filename + ".RAW", RES_VOI)) {
|
||||
if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
|
||||
filename = "ENG_VOI.RES";
|
||||
// Win95 and Linux versions uses another set of names
|
||||
|
@ -58,7 +58,7 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
|
||||
_vm->_graphicsManager._scrollStatus = 1;
|
||||
bool oldDisableInventFl = _vm->_globals._disableInventFl;
|
||||
_vm->_globals._disableInventFl = true;
|
||||
_characterBuffer = _vm->_fileManager.searchCat(filename, 5);
|
||||
_characterBuffer = _vm->_fileManager.searchCat(filename, RES_PER);
|
||||
_characterSize = _vm->_globals._catalogSize;
|
||||
if (_characterBuffer == g_PTRNUL) {
|
||||
_characterBuffer = _vm->_fileManager.loadFile(filename);
|
||||
@ -79,7 +79,7 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
|
||||
}
|
||||
_dialogueMesgId1 = READ_LE_INT16((uint16 *)_characterBuffer + 40);
|
||||
_paletteBufferIdx = 20 * READ_LE_INT16((uint16 *)_characterBuffer + 42) + 110;
|
||||
_characterSprite = _vm->_fileManager.searchCat(spriteFilename, 7);
|
||||
_characterSprite = _vm->_fileManager.searchCat(spriteFilename, RES_SAN);
|
||||
if (_characterSprite) {
|
||||
_characterSprite = _vm->_objectsManager.loadSprite(spriteFilename);
|
||||
} else {
|
||||
@ -158,7 +158,7 @@ void TalkManager::startStaticCharacterDialogue(const Common::String &filename) {
|
||||
// TODO: The original disables the mouse cursor here
|
||||
bool oldDisableInventFl = _vm->_globals._disableInventFl;
|
||||
_vm->_globals._disableInventFl = true;
|
||||
_characterBuffer = _vm->_fileManager.searchCat(filename, 5);
|
||||
_characterBuffer = _vm->_fileManager.searchCat(filename, RES_PER);
|
||||
_characterSize = _vm->_globals._catalogSize;
|
||||
if (_characterBuffer == g_PTRNUL) {
|
||||
_characterBuffer = _vm->_fileManager.loadFile(filename);
|
||||
@ -980,7 +980,7 @@ void TalkManager::animateObject(const Common::String &a2) {
|
||||
_vm->_objectsManager._zoneNum = -1;
|
||||
_vm->_eventsManager._mouseCursorId = 4;
|
||||
_vm->_eventsManager.changeMouseCursor(0);
|
||||
_characterBuffer = _vm->_fileManager.searchCat(a2, 5);
|
||||
_characterBuffer = _vm->_fileManager.searchCat(a2, RES_PER);
|
||||
_characterSize = _vm->_globals._catalogSize;
|
||||
if (_characterBuffer == g_PTRNUL) {
|
||||
_characterBuffer = _vm->_fileManager.loadFile(a2);
|
||||
@ -996,7 +996,7 @@ void TalkManager::animateObject(const Common::String &a2) {
|
||||
if (curScreenFilename == "NULL")
|
||||
curScreenFilename = Common::String::format("IM%d", _vm->_globals._screenId);
|
||||
|
||||
_characterSprite = _vm->_fileManager.searchCat(spriteFilename, 7);
|
||||
_characterSprite = _vm->_fileManager.searchCat(spriteFilename, RES_SAN);
|
||||
if (_characterSprite)
|
||||
_characterSprite = _vm->_objectsManager.loadSprite(spriteFilename);
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user