aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tinsel/object.cpp')
-rw-r--r--engines/tinsel/object.cpp31
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