diff options
Diffstat (limited to 'engines/tinsel/object.cpp')
-rw-r--r-- | engines/tinsel/object.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/engines/tinsel/object.cpp b/engines/tinsel/object.cpp index 68e9d5c6cb..b1090058d1 100644 --- a/engines/tinsel/object.cpp +++ b/engines/tinsel/object.cpp @@ -162,13 +162,13 @@ void CopyObject(OBJECT *pDest, OBJECT *pSrc) { * @param pInsObj Object to insert */ -void InsertObject(OBJECT *pObjList, OBJECT *pInsObj) { - OBJECT *pPrev, *pObj; // object list traversal pointers +void InsertObject(OBJECT **pObjList, OBJECT *pInsObj) { + OBJECT **pAnchor, *pObj; // object list traversal pointers // validate object pointer assert(isValidObject(pInsObj)); - for (pPrev = pObjList, pObj = pObjList->pNext; pObj != NULL; pPrev = pObj, pObj = pObj->pNext) { + for (pAnchor = pObjList, pObj = *pAnchor; pObj != NULL; pAnchor = &pObj->pNext, pObj = *pAnchor) { // check Z order if (pInsObj->zPos < pObj->zPos) { // object Z is lower than list Z - insert here @@ -182,9 +182,9 @@ void InsertObject(OBJECT *pObjList, OBJECT *pInsObj) { } } - // insert obj between pPrev and pObj + // insert obj between pAnchor and pObj pInsObj->pNext = pObj; - pPrev->pNext = pInsObj; + *pAnchor = pInsObj; } @@ -194,8 +194,8 @@ void InsertObject(OBJECT *pObjList, OBJECT *pInsObj) { * @param pObjList List to delete object from * @param pDelObj Object to delete */ -void DelObject(OBJECT *pObjList, OBJECT *pDelObj) { - OBJECT *pPrev, *pObj; // object list traversal pointers +void DelObject(OBJECT **pObjList, OBJECT *pDelObj) { + OBJECT **pAnchor, *pObj; // object list traversal pointers const Common::Rect rcScreen(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); // validate object pointer @@ -207,7 +207,7 @@ void DelObject(OBJECT *pObjList, OBJECT *pDelObj) { assert(numObj >= 0); #endif - for (pPrev = pObjList, pObj = pObjList->pNext; pObj != NULL; pPrev = pObj, pObj = pObj->pNext) { + for (pAnchor = pObjList, pObj = *pAnchor; pObj != NULL; pAnchor = &pObj->pNext, pObj = *pAnchor) { if (pObj == pDelObj) { // found object to delete @@ -217,7 +217,7 @@ void DelObject(OBJECT *pObjList, OBJECT *pDelObj) { } // make PREV next = OBJ next - removes OBJ from list - pPrev->pNext = pObj->pNext; + *pAnchor = pObj->pNext; // place free list in OBJ next pObj->pNext = pFreeObjects; @@ -245,12 +245,12 @@ void DelObject(OBJECT *pObjList, OBJECT *pDelObj) { * Sort the specified object list in Z Y order. * @param pObjList List to sort */ -void SortObjectList(OBJECT *pObjList) { +void SortObjectList(OBJECT **pObjList) { OBJECT *pPrev, *pObj; // object list traversal pointers OBJECT head; // temporary head of list - because pObjList is not usually a OBJECT // put at head of list - head.pNext = pObjList->pNext; + head.pNext = *pObjList; // set head of list dummy OBJ Z Y values to lowest possible head.yPos = intToFrac(MIN_INT16); |