diff options
Diffstat (limited to 'engines/hugo/file_v1d.cpp')
-rw-r--r-- | engines/hugo/file_v1d.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/engines/hugo/file_v1d.cpp b/engines/hugo/file_v1d.cpp index b6239aa5dc..b92474ea67 100644 --- a/engines/hugo/file_v1d.cpp +++ b/engines/hugo/file_v1d.cpp @@ -38,7 +38,7 @@ #include "hugo/util.h" namespace Hugo { -FileManager_v1d::FileManager_v1d(HugoEngine &vm) : FileManager(vm) { +FileManager_v1d::FileManager_v1d(HugoEngine *vm) : FileManager(vm) { } FileManager_v1d::~FileManager_v1d() { @@ -52,49 +52,56 @@ void FileManager_v1d::closeDatabaseFiles() { debugC(1, kDebugFile, "closeDatabaseFiles"); } +/** +* Open and read in an overlay file, close file +*/ void FileManager_v1d::readOverlay(int screenNum, image_pt image, ovl_t overlayType) { -// Open and read in an overlay file, close file debugC(1, kDebugFile, "readOverlay(%d, ...)", screenNum); const char *ovl_ext[] = {".b", ".o", ".ob"}; char *buf = (char *) malloc(2048 + 1); // Buffer for file access - strcat(strcpy(buf, _vm._screenNames[screenNum]), ovl_ext[overlayType]); + strcat(strcpy(buf, _vm->_screenNames[screenNum]), ovl_ext[overlayType]); if (!fileExists(buf)) { for (uint32 i = 0; i < OVL_SIZE; i++) image[i] = 0; + warning("File not found: %s", buf); return; } if (!_sceneryArchive1.open(buf)) - Utils::Error(FILE_ERR, "%s", buf); + error("File not found: %s", buf); image_pt tmpImage = image; // temp ptr to overlay file _sceneryArchive1.read(tmpImage, OVL_SIZE); _sceneryArchive1.close(); + free(buf); } +/** +* Read a PCX image into dib_a +*/ void FileManager_v1d::readBackground(int screenIndex) { -// Read a PCX image into dib_a debugC(1, kDebugFile, "readBackground(%d)", screenIndex); char *buf = (char *) malloc(2048 + 1); // Buffer for file access - strcat(strcpy(buf, _vm._screenNames[screenIndex]), ".ART"); + strcat(strcpy(buf, _vm->_screenNames[screenIndex]), ".ART"); if (!_sceneryArchive1.open(buf)) - Utils::Error(FILE_ERR, "%s", buf); + error("File not found: %s", buf); // Read the image into dummy seq and static dib_a - seq_t dummySeq; // Image sequence structure for Read_pcx - readPCX(_sceneryArchive1, &dummySeq, _vm.screen().getFrontBuffer(), true, _vm._screenNames[screenIndex]); - + seq_t *dummySeq; // Image sequence structure for Read_pcx + dummySeq = readPCX(_sceneryArchive1, 0, _vm->_screen->getFrontBuffer(), true, _vm->_screenNames[screenIndex]); + free(dummySeq); _sceneryArchive1.close(); + free(buf); } char *FileManager_v1d::fetchString(int index) { debugC(1, kDebugFile, "fetchString(%d)", index); - return _vm._stringtData[index]; + return _vm->_stringtData[index]; } } // End of namespace Hugo |