[Scummvm-cvs-logs] SF.net SVN: scummvm: [28975] scummvm/trunk/engines/agi

mthreepwood at users.sourceforge.net mthreepwood at users.sourceforge.net
Thu Sep 20 00:29:14 CEST 2007


Revision: 28975
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28975&view=rev
Author:   mthreepwood
Date:     2007-09-19 15:29:14 -0700 (Wed, 19 Sep 2007)

Log Message:
-----------
some cleanup using malloc and with readObj

Modified Paths:
--------------
    scummvm/trunk/engines/agi/preagi_winnie.cpp
    scummvm/trunk/engines/agi/preagi_winnie.h

Modified: scummvm/trunk/engines/agi/preagi_winnie.cpp
===================================================================
--- scummvm/trunk/engines/agi/preagi_winnie.cpp	2007-09-19 21:24:27 UTC (rev 28974)
+++ scummvm/trunk/engines/agi/preagi_winnie.cpp	2007-09-19 22:29:14 UTC (rev 28975)
@@ -69,16 +69,17 @@
 	file.close();
 }
 
-void Winnie::readObj(int iObj, uint8 *buffer, int buflen) {
+int Winnie::readObj(int iObj, uint8 *buffer, int buflen) {
 	char szFile[256] = {0};
 	sprintf(szFile, IDS_WTP_PATH_OBJ, iObj);
 	Common::File file;
 	if (!file.open(szFile))
-		return;
+		return 0;
 	uint32 filelen = file.size();
 	memset(buffer, 0, sizeof(buffer));
 	file.read(buffer, filelen);
 	file.close();
+	return filelen;
 }
 
 void Winnie::randomize() {
@@ -413,16 +414,16 @@
 bool Winnie::isRightObj(int iRoom, int iObj, int *iCode) {
 	WTP_ROOM_HDR roomhdr;
 	WTP_OBJ_HDR	objhdr;
-	uint8 *roomdata = new uint8[4096];
-	uint8 *objdata = new uint8[2048];
+	uint8 *roomdata = (uint8 *)malloc(4096);
+	uint8 *objdata = (uint8 *)malloc(2048);
 
 	readRoom(iRoom, roomdata, 4096);
 	memcpy(&roomhdr, roomdata, sizeof(WTP_ROOM_HDR));
 	readObj(iObj, objdata, 2048);
 	memcpy(&objhdr, objdata, sizeof(WTP_OBJ_HDR));
 
-	delete [] roomdata;
-	delete [] objdata;
+	free(roomdata);
+	free(objdata);
 
 	*iCode = objhdr.objId;
 
@@ -915,7 +916,7 @@
 
 void Winnie::gameLoop() {
 	WTP_ROOM_HDR hdr;
-	uint8 *roomdata = new uint8[4096];
+	uint8 *roomdata = (uint8 *)malloc(4096);
 	int iBlock;
 
 phase0:
@@ -953,7 +954,7 @@
 
 void Winnie::drawPic(const char *szName) {
 	char szFile[256] = {0};
-	uint8 *buffer = new uint8[4096];
+	uint8 *buffer = (uint8 *)malloc(4096);
 
 	// construct filename
 	sprintf(szFile, IDS_WTP_PATH, szName);
@@ -974,16 +975,16 @@
 
 void Winnie::drawObjPic(int iObj, int x0, int y0) {
 	WTP_OBJ_HDR	objhdr;
-	uint8 *buffer = new uint8[2048];
+	uint8 *buffer = (uint8 *)malloc(2048);
 
 	if (!iObj)
 		return;
 
-	readObj(iObj, buffer, 2048);
+	int objSize = readObj(iObj, buffer, 2048);
 	memcpy(&objhdr, buffer, sizeof(WTP_OBJ_HDR));
 
 	_vm->_picture->setOffset(x0, y0);
-	_vm->_picture->decodePicture(buffer + objhdr.ofsPic - IDI_WTP_OFS_OBJ, 4096, 0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+	_vm->_picture->decodePicture(buffer + objhdr.ofsPic - IDI_WTP_OFS_OBJ, objSize, 0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
 	_vm->_picture->setOffset(0, 0);
 	_vm->_picture->showPic(10, 0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
 	_vm->_gfx->doUpdate();
@@ -994,7 +995,7 @@
 
 void Winnie::drawRoomPic() {
 	WTP_ROOM_HDR roomhdr;
-	uint8 *buffer = new uint8[4096];
+	uint8 *buffer = (uint8 *)malloc(4096);
 	int iObj = getObjInRoom(room);
 
 	// clear gfx screen
@@ -1050,14 +1051,14 @@
 }
 
 void Winnie::saveGame() {
-	uint8 *buffer = new uint8[sizeof(WTP_SAVE_GAME)];
+	uint8 *buffer = (uint8 *)malloc(sizeof(WTP_SAVE_GAME));
 	memcpy(buffer, &game, sizeof(WTP_SAVE_GAME));
 	writeSaveGame(buffer);
 	delete [] buffer;
 }
 
 void Winnie::loadGame() {
-	uint8 *buffer = new uint8[sizeof(WTP_SAVE_GAME)];
+	uint8 *buffer = (uint8 *)malloc(sizeof(WTP_SAVE_GAME));
 	readSaveGame(buffer);
 	memcpy(&game, buffer, sizeof(WTP_SAVE_GAME));
 	delete [] buffer;

Modified: scummvm/trunk/engines/agi/preagi_winnie.h
===================================================================
--- scummvm/trunk/engines/agi/preagi_winnie.h	2007-09-19 21:24:27 UTC (rev 28974)
+++ scummvm/trunk/engines/agi/preagi_winnie.h	2007-09-19 22:29:14 UTC (rev 28975)
@@ -328,7 +328,7 @@
 	void printRoomStr(int, int);
 	void inventory();
 	void printObjStr(int, int);
-	void readObj(int, uint8*, int);
+	int readObj(int, uint8*, int);
 	void takeObj(int);
 	void dropObj(int);
 	bool isRightObj(int, int, int*);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list