diff options
| -rw-r--r-- | engines/cine/cine.cpp | 9 | ||||
| -rw-r--r-- | engines/cine/cine.h | 2 | ||||
| -rw-r--r-- | engines/cine/msg.cpp | 5 | ||||
| -rw-r--r-- | engines/cine/pal.cpp | 11 | ||||
| -rw-r--r-- | engines/cine/part.cpp | 47 | ||||
| -rw-r--r-- | engines/cine/texte.cpp | 5 | ||||
| -rw-r--r-- | engines/cine/various.cpp | 21 | ||||
| -rw-r--r-- | engines/cine/various.h | 7 | 
8 files changed, 39 insertions, 68 deletions
| diff --git a/engines/cine/cine.cpp b/engines/cine/cine.cpp index 3c4de4b6e4..b72a809841 100644 --- a/engines/cine/cine.cpp +++ b/engines/cine/cine.cpp @@ -68,12 +68,6 @@ CineEngine::~CineEngine() {  		freePoldatDat();  		freeErrmessDat();  	} -	 -	if (palFileHandleP); -		delete palFileHandleP; - -	if (partFileHandleP); -		delete partFileHandleP;  }  int CineEngine::init() { @@ -82,9 +76,6 @@ int CineEngine::init() {  		GUIErrorMessage("No valid games were found in the specified directory.");  		return -1;  	} -	 -	palFileHandleP = new Common::File(); -	partFileHandleP = new Common::File();  	// Initialize backend  	_system->beginGFXTransaction(); diff --git a/engines/cine/cine.h b/engines/cine/cine.h index 061e9ab66b..081f2f3493 100644 --- a/engines/cine/cine.h +++ b/engines/cine/cine.h @@ -27,6 +27,7 @@  #include "common/stdafx.h"  #include "common/scummsys.h" +#include "common/file.h"  #include "common/util.h"  #include "engines/engine.h" @@ -81,6 +82,7 @@ public:  	void makeSystemMenu(void);  	const CINEGameDescription *_gameDescription; +	Common::File _partFileHandle;  private:  	void initialize(void); diff --git a/engines/cine/msg.cpp b/engines/cine/msg.cpp index 0947cbd45a..244f464116 100644 --- a/engines/cine/msg.cpp +++ b/engines/cine/msg.cpp @@ -42,13 +42,10 @@ void loadMsg(char *pMsgName) {  	for (i = 0; i < NUM_MAX_MESSAGE; i++) {  		messageTable[i].len = 0; -  		if (messageTable[i].ptr) { -			assert(messageTable[i].ptr);  			free(messageTable[i].ptr); +			messageTable[i].ptr = NULL;  		} - -		messageTable[i].ptr = NULL;  	}  	ptr = dataPtr = readBundleFile(findFileInBundle(pMsgName)); diff --git a/engines/cine/pal.cpp b/engines/cine/pal.cpp index a5b94d1034..0bb07f25a5 100644 --- a/engines/cine/pal.cpp +++ b/engines/cine/pal.cpp @@ -34,8 +34,6 @@ byte palette256[256 * 3];  uint16 palEntriesCount; -Common::File *palFileHandleP = NULL; -  PalEntry *palPtr = NULL;  byte paletteBuffer1[16]; @@ -48,8 +46,6 @@ void loadPal(const char *fileName) {  	strcat(buffer, ".PAL"); -	palFileHandle.close(); -  	if (palPtr) {  		free(palPtr);  		palPtr = NULL; @@ -57,9 +53,9 @@ void loadPal(const char *fileName) {  	palEntriesCount = 0; -	palFileHandle.open(buffer); - -	assert(palFileHandle.isOpen()); +	Common::File palFileHandle; +	if (!palFileHandle.open(buffer)) +		error("loadPal(): Cannot open file %s", fileName);  	palEntriesCount = palFileHandle.readUint16LE();  	palFileHandle.readUint16LE(); // entry size @@ -71,6 +67,7 @@ void loadPal(const char *fileName) {  		palFileHandle.read(palPtr[i].pal1, 16);  		palFileHandle.read(palPtr[i].pal2, 16);  	} +	palFileHandle.close();  }  int16 findPaletteFromName(const char *fileName) { diff --git a/engines/cine/part.cpp b/engines/cine/part.cpp index 5b7016b91b..1182624cd7 100644 --- a/engines/cine/part.cpp +++ b/engines/cine/part.cpp @@ -36,36 +36,29 @@ PartBuffer *partBuffer;  void loadPart(const char *partName) {  	uint16 i; -	for (i = 0; i < NUM_MAX_PARTDATA; i++) { -		partBuffer[i].partName[0] = 0; -		partBuffer[i].offset = 0; -		partBuffer[i].packedSize = 0; -		partBuffer[i].unpackedSize = 0; -	} - +	memset(partBuffer, 0, sizeof(PartBuffer) * NUM_MAX_PARTDATA);  	numElementInPart = 0; -	partFileHandle.close(); +	g_cine->_partFileHandle.close();  	checkDataDisk(-1); -	partFileHandle.open(partName); - -	assert(partFileHandle.isOpen()); +	if (!g_cine->_partFileHandle.open(partName)) +		error("loadPart(): Cannot open file %s", partName);  	setMouseCursor(MOUSE_CURSOR_DISK); -	numElementInPart = partFileHandle.readUint16BE(); -	partFileHandle.readUint16BE(); // entry size +	numElementInPart = g_cine->_partFileHandle.readUint16BE(); +	g_cine->_partFileHandle.readUint16BE(); // entry size  	strcpy(currentPartName, partName);  	for (i = 0; i < numElementInPart; i++) { -		partFileHandle.read(partBuffer[i].partName, 14); -		partBuffer[i].offset = partFileHandle.readUint32BE(); -		partBuffer[i].packedSize = partFileHandle.readUint32BE(); -		partBuffer[i].unpackedSize = partFileHandle.readUint32BE(); -		partFileHandle.readUint32BE(); // unused +		g_cine->_partFileHandle.read(partBuffer[i].partName, 14); +		partBuffer[i].offset = g_cine->_partFileHandle.readUint32BE(); +		partBuffer[i].packedSize = g_cine->_partFileHandle.readUint32BE(); +		partBuffer[i].unpackedSize = g_cine->_partFileHandle.readUint32BE(); +		g_cine->_partFileHandle.readUint32BE(); // unused  	}  	if (g_cine->getGameType() == Cine::GType_FW && g_cine->getPlatform() == Common::kPlatformPC && strcmp(partName, "BASESON.SND") != 0) @@ -376,8 +369,8 @@ int16 findFileInBundle(const char *fileName) {  void readFromPart(int16 idx, byte *dataPtr) {  	setMouseCursor(MOUSE_CURSOR_DISK); -	partFileHandle.seek(partBuffer[idx].offset, SEEK_SET); -	partFileHandle.read(dataPtr, partBuffer[idx].packedSize); +	g_cine->_partFileHandle.seek(partBuffer[idx].offset, SEEK_SET); +	g_cine->_partFileHandle.read(dataPtr, partBuffer[idx].packedSize);  }  byte *readBundleFile(int16 foundFileIdx) { @@ -429,10 +422,9 @@ byte *readFile(const char *filename) {  	if (!in.isOpen())  		error("readFile(): Cannot open file %s", filename); -	byte *dataPtr;  	uint32 size = in.size(); -	dataPtr = (byte *)malloc(size); +	byte *dataPtr = (byte *)malloc(size);  	in.read(dataPtr, size);  	return dataPtr; @@ -450,12 +442,15 @@ void dumpBundle(const char *fileName) {  	for (int i = 0; i < numElementInPart; i++) {  		byte *data = readBundleFile(i); +		debug(0, "%s", partBuffer[i].partName); +  		Common::File out; +		if (out.open(Common::String("dumps/") + partBuffer[i].partName, Common::File::kFileWriteMode)) { +			out.write(data, partBuffer[i].unpackedSize); +			out.close(); +		} -		debug(0, "%s", partBuffer[i].partName); -		out.open(Common::String("dumps/") + partBuffer[i].partName, Common::File::kFileWriteMode); -		out.write(data, partBuffer[i].unpackedSize); -		out.close(); +		free(data);  	}  	loadPart(tmpPart); diff --git a/engines/cine/texte.cpp b/engines/cine/texte.cpp index 226dda2eb6..ee15874648 100644 --- a/engines/cine/texte.cpp +++ b/engines/cine/texte.cpp @@ -52,9 +52,8 @@ void loadTextData(const char *pFileName, byte *pDestinationBuffer) {  	assert(pFileName);  	assert(pDestinationBuffer); -	pFileHandle.open(pFileName); - -	assert(pFileHandle.isOpen()); +	if (!pFileHandle.open(pFileName)) +		error("loadTextData(): Cannot open file %s", pFileName);  	entrySize = pFileHandle.readUint16BE();  	numEntry = pFileHandle.readUint16BE(); diff --git a/engines/cine/various.cpp b/engines/cine/various.cpp index fcf67a23b7..12643bf274 100644 --- a/engines/cine/various.cpp +++ b/engines/cine/various.cpp @@ -56,8 +56,6 @@ int16 buildObjectListCommand(void);  void drawString(const char *string, byte param) {  } -Common::File *partFileHandleP = NULL; -  void waitPlayerInput(void) {  } @@ -999,15 +997,14 @@ void CineEngine::makeSystemMenu(void) {  					if (!makeMenuChoice(confirmMenu, 2, mouseX, mouseY + 8, 100)) {  						char saveString[256], tmp[80]; -						Common::OutSaveFile *fHandle; -  						snprintf(tmp, 80, "%s.dir", _targetName.c_str()); -						fHandle = g_saveFileMan->openForSaving(tmp); -						// FIXME: Properly handle openForSaving failures instead of -						// just crashing silently! -						assert(fHandle); - +						Common::OutSaveFile *fHandle = g_saveFileMan->openForSaving(tmp); +						if (!fHandle) { +							warning("Unable to open file %s for saving", tmp); +							break; +						} +						  						fHandle->write(currentSaveName, 200);  						delete fHandle; @@ -1031,7 +1028,7 @@ void CineEngine::makeSystemMenu(void) {  	}  } -const int16 choiceResultTable[] = { +static const int16 choiceResultTable[] = {  	1,  	1,  	1, @@ -1041,7 +1038,7 @@ const int16 choiceResultTable[] = {  	1  }; -const int16 subObjectUseTable[] = { +static const int16 subObjectUseTable[] = {  	3,  	3,  	3, @@ -1051,7 +1048,7 @@ const int16 subObjectUseTable[] = {  	0  }; -const int16 canUseOnItemTable[] = { +static const int16 canUseOnItemTable[] = {  	1,  	0,  	0, diff --git a/engines/cine/various.h b/engines/cine/various.h index 578aed0ef5..234d27ce95 100644 --- a/engines/cine/various.h +++ b/engines/cine/various.h @@ -79,13 +79,6 @@ extern uint16 var3;  extern uint16 var4;  extern uint16 var5; -extern Common::File *palFileHandleP; -extern Common::File *partFileHandleP; - -#define palFileHandle (*palFileHandleP) -#define partFileHandle (*partFileHandleP) - -  void mainLoopSub1(void);  void setTextWindow(uint16 param1, uint16 param2, uint16 param3, uint16 param4); | 
