diff options
Diffstat (limited to 'engines/cine/object.cpp')
-rw-r--r-- | engines/cine/object.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/engines/cine/object.cpp b/engines/cine/object.cpp index 980bcfe5d7..eafd197d53 100644 --- a/engines/cine/object.cpp +++ b/engines/cine/object.cpp @@ -133,12 +133,11 @@ int8 removeOverlayElement(uint16 objIdx, uint16 param) { 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 @@ int16 freeOverlay(uint16 objIdx, uint16 param) { 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 @@ int16 freeOverlay(uint16 objIdx, uint16 param) { tempPtr2->previous = currentHeadPtr->previous; - //TODO: fix ! - //free(currentHeadPtr); - + free(currentHeadPtr); return 0; } |