[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