diff options
Diffstat (limited to 'engines/tinsel/object.cpp')
-rw-r--r-- | engines/tinsel/object.cpp | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/engines/tinsel/object.cpp b/engines/tinsel/object.cpp index ad02a614a5..cbe5b0a88f 100644 --- a/engines/tinsel/object.cpp +++ b/engines/tinsel/object.cpp @@ -18,9 +18,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * - * $URL$ - * $Id$ - * * This file contains the Object Manager code. */ @@ -165,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 @@ -185,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; } @@ -197,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 @@ -210,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 @@ -220,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; @@ -248,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); @@ -348,7 +345,7 @@ void GetAniPosition(OBJECT *pObj, int *pPosX, int *pPosY) { } /** - * Initialise a object using a OBJ_INIT structure to supply parameters. + * Initialize a object using a OBJ_INIT structure to supply parameters. * @param pInitTbl Pointer to object initialisation table */ OBJECT *InitObject(const OBJ_INIT *pInitTbl) { @@ -489,7 +486,7 @@ void AnimateObject(OBJECT *pAniObj, SCNHANDLE hNewImg) { * @param height Height of rectangle */ OBJECT *RectangleObject(SCNHANDLE hPal, int color, int width, int height) { - // template for initialising the rectangle object + // template for initializing the rectangle object static const OBJ_INIT rectObj = {0, DMA_CONST, OID_EFFECTS, 0, 0, 0}; PALQ *pPalQ; // palette queue pointer @@ -525,7 +522,7 @@ OBJECT *RectangleObject(SCNHANDLE hPal, int color, int width, int height) { * @param height Height of rectangle */ OBJECT *TranslucentObject(int width, int height) { - // template for initialising the rectangle object + // template for initializing the rectangle object static const OBJ_INIT rectObj = {0, DMA_TRANS, OID_EFFECTS, 0, 0, 0}; // allocate and init a new object |