[Scummvm-cvs-logs] SF.net SVN: scummvm: [27006] scummvm/trunk/engines/cine

cyx at users.sourceforge.net cyx at users.sourceforge.net
Tue May 29 22:22:21 CEST 2007


Revision: 27006
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27006&view=rev
Author:   cyx
Date:     2007-05-29 13:22:20 -0700 (Tue, 29 May 2007)

Log Message:
-----------
added code for freePartRange, freePartEntry and freeOverlay (also renamed some functions and variables).

Modified Paths:
--------------
    scummvm/trunk/engines/cine/anim.cpp
    scummvm/trunk/engines/cine/anim.h
    scummvm/trunk/engines/cine/main_loop.cpp
    scummvm/trunk/engines/cine/object.cpp
    scummvm/trunk/engines/cine/pal.cpp
    scummvm/trunk/engines/cine/part.cpp
    scummvm/trunk/engines/cine/part.h
    scummvm/trunk/engines/cine/script.cpp
    scummvm/trunk/engines/cine/various.cpp
    scummvm/trunk/engines/cine/various.h

Modified: scummvm/trunk/engines/cine/anim.cpp
===================================================================
--- scummvm/trunk/engines/cine/anim.cpp	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/anim.cpp	2007-05-29 20:22:20 UTC (rev 27006)
@@ -45,7 +45,7 @@
 	uint16 field_E;
 };
 
-uint16 frameVar0 = 0;
+static uint16 animDataCount = 0;
 
 animHeaderStruct animHeader;
 
@@ -183,7 +183,30 @@
 	{"FIN", 0x9},
 };
 
-byte getAnimTransparentColor(const char *animName) {
+static void freeAnimData(byte idx) {
+	assert(idx < NUM_MAX_ANIMDATA);
+	if (animDataTable[idx].ptr1) {
+		free(animDataTable[idx].ptr1);
+		free(animDataTable[idx].ptr2);
+		memset(&animDataTable[idx], 0, sizeof(AnimData));
+		animDataTable[idx].fileIdx = -1;
+		animDataTable[idx].frameIdx = -1;
+		if (animDataCount > 0)
+			animDataCount--;
+	}
+}
+
+void freeAnimDataRange(byte startIdx, byte numIdx) {
+	for (byte i = 0; i < numIdx; i++) {
+		freeAnimData(i + startIdx);
+	}
+}
+
+void freeAnimDataTable() {
+	freeAnimDataRange(0, NUM_MAX_ANIMDATA);
+}
+
+static byte getAnimTransparentColor(const char *animName) {
 	char name[15];
 
 	removeExtention(name, animName);
@@ -237,7 +260,7 @@
 		animDataTable[i].frameIdx = -1;
 	}
 
-	frameVar0++;
+	animDataCount++;
 
 	return i;
 }
@@ -287,7 +310,7 @@
 	animDataTable[i].fileIdx = -1;
 	animDataTable[i].frameIdx = -1;
 
-	frameVar0++;
+	animDataCount++;
 
 	return i;
 }
@@ -331,7 +354,7 @@
 	animDataTable[i].fileIdx = -1;
 	animDataTable[i].frameIdx = -1;
 
-	frameVar0++;
+	animDataCount++;
 
 	return i;
 }

Modified: scummvm/trunk/engines/cine/anim.h
===================================================================
--- scummvm/trunk/engines/cine/anim.h	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/anim.h	2007-05-29 20:22:20 UTC (rev 27006)
@@ -27,8 +27,6 @@
 
 namespace Cine {
 
-extern uint16 frameVar0;
-
 struct animHeaderStruct {
 	byte field_0;
 	byte field_1;
@@ -57,6 +55,8 @@
 
 extern animDataEntry animData[];
 
+void freeAnimDataTable(void);
+void freeAnimDataRange(byte startIdx, byte numIdx);
 void loadResource(const char *animName);
 void loadAbs(const char *resourceName, uint16 idx);
 void loadResourcesFromSave();

Modified: scummvm/trunk/engines/cine/main_loop.cpp
===================================================================
--- scummvm/trunk/engines/cine/main_loop.cpp	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/main_loop.cpp	2007-05-29 20:22:20 UTC (rev 27006)
@@ -146,7 +146,6 @@
 	}
 
 	int i;
-
 	for (i = 0; i < count; i++) {
 		//FIXME(?): Maybe there's a better way to "fix" this?
 		//

Modified: scummvm/trunk/engines/cine/object.cpp
===================================================================
--- scummvm/trunk/engines/cine/object.cpp	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/object.cpp	2007-05-29 20:22:20 UTC (rev 27006)
@@ -133,12 +133,11 @@
 
 int16 freeOverlay(uint16 objIdx, uint16 param) {
 	overlayHeadElement *currentHeadPtr = overlayHead.next;
-	overlayHeadElement *tempHead = &overlayHead;
-	overlayHeadElement *tempPtr2;
+	overlayHeadElement *previousPtr = &overlayHead;
 
 	while (currentHeadPtr && ((currentHeadPtr->objIdx != objIdx) || (currentHeadPtr->type != param))) {
-		tempHead = currentHeadPtr;
-		currentHeadPtr = tempHead->next;
+		previousPtr = currentHeadPtr;
+		currentHeadPtr = previousPtr->next;
 	}
 
 	if (!currentHeadPtr) {
@@ -149,8 +148,8 @@
 		return -1;
 	}
 
-	tempHead->next = currentHeadPtr->next;
-	tempPtr2 = currentHeadPtr->next;
+	previousPtr->next = currentHeadPtr->next;
+	overlayHeadElement *tempPtr2 = currentHeadPtr->next;
 
 	if (!tempPtr2) {
 		tempPtr2 = &overlayHead;
@@ -158,9 +157,7 @@
 
 	tempPtr2->previous = currentHeadPtr->previous;
 
-	//TODO: fix !
-	//free(currentHeadPtr);
-
+	free(currentHeadPtr);
 	return 0;
 }
 

Modified: scummvm/trunk/engines/cine/pal.cpp
===================================================================
--- scummvm/trunk/engines/cine/pal.cpp	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/pal.cpp	2007-05-29 20:22:20 UTC (rev 27006)
@@ -36,7 +36,7 @@
 
 Common::File *palFileHandleP = NULL;
 
-PalEntry *palPtr;
+PalEntry *palPtr = NULL;
 
 byte paletteBuffer1[16];
 byte paletteBuffer2[16];

Modified: scummvm/trunk/engines/cine/part.cpp
===================================================================
--- scummvm/trunk/engines/cine/part.cpp	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/part.cpp	2007-05-29 20:22:20 UTC (rev 27006)
@@ -72,29 +72,8 @@
 		loadPal(partName);
 }
 
-void freePartEntry(byte idx) {
-	if (animDataTable[idx].ptr1) {
-		//free(animDataTable[idx].ptr1);
-
-		animDataTable[idx].ptr1 = NULL;
-		animDataTable[idx].ptr2 = NULL;
-
-		// TODO: finish
-
-		if (frameVar0 > 0)
-			frameVar0--;
-	}
-}
-
-void freePartRange(byte startIdx, byte numIdx) {
-	byte i;
-
-	for (i = 0; i < numIdx; i++) {
-		freePartEntry(i + startIdx);
-	}
-}
-
 void closePart(void) {
+	// TODO
 }
 
 static const char *bundleNamesDOSEN[] = {

Modified: scummvm/trunk/engines/cine/part.h
===================================================================
--- scummvm/trunk/engines/cine/part.h	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/part.h	2007-05-29 20:22:20 UTC (rev 27006)
@@ -57,7 +57,6 @@
 extern PartBuffer *partBuffer;
 
 void loadPart(const char *partName);
-void freePartRange(byte startIdx, byte numIdx);
 void closePart(void);
 
 int16 findFileInBundle(const char *fileName);

Modified: scummvm/trunk/engines/cine/script.cpp
===================================================================
--- scummvm/trunk/engines/cine/script.cpp	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/script.cpp	2007-05-29 20:22:20 UTC (rev 27006)
@@ -1434,7 +1434,7 @@
 	assert(startIdx + numIdx <= NUM_MAX_ANIMDATA);
 
 	debugC(5, kCineDebugScript, "Line: %d: freePartRange(%d,%d)", _currentLine, startIdx, numIdx);
-	freePartRange(startIdx, numIdx);
+	freeAnimDataRange(startIdx, numIdx);
 }
 
 void o1_unloadAllMasks() {

Modified: scummvm/trunk/engines/cine/various.cpp
===================================================================
--- scummvm/trunk/engines/cine/various.cpp	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/various.cpp	2007-05-29 20:22:20 UTC (rev 27006)
@@ -61,9 +61,6 @@
 void waitPlayerInput(void) {
 }
 
-void freeAnimDataTable(void) {
-}
-
 void setTextWindow(uint16 param1, uint16 param2, uint16 param3, uint16 param4) {
 }
 

Modified: scummvm/trunk/engines/cine/various.h
===================================================================
--- scummvm/trunk/engines/cine/various.h	2007-05-29 20:07:19 UTC (rev 27005)
+++ scummvm/trunk/engines/cine/various.h	2007-05-29 20:22:20 UTC (rev 27006)
@@ -86,7 +86,6 @@
 #define partFileHandle (*partFileHandleP)
 
 
-void freeAnimDataTable(void);
 void mainLoopSub1(void);
 void setTextWindow(uint16 param1, uint16 param2, uint16 param3, uint16 param4);
 


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