diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/tinsel/object.cpp | 2 | ||||
-rw-r--r-- | engines/tinsel/object.h | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/engines/tinsel/object.cpp b/engines/tinsel/object.cpp index caf41ab81c..38d44d60e1 100644 --- a/engines/tinsel/object.cpp +++ b/engines/tinsel/object.cpp @@ -114,7 +114,7 @@ OBJECT *AllocObject() { pFreeObjects = pObj->pNext; // clear out object - memset(pObj, 0, sizeof(OBJECT)); + pObj->reset(); // set default drawing mode and set changed bit pObj->flags = DMA_WNZ | DMA_CHANGED; diff --git a/engines/tinsel/object.h b/engines/tinsel/object.h index 097e1872d1..351b4d36ef 100644 --- a/engines/tinsel/object.h +++ b/engines/tinsel/object.h @@ -92,6 +92,33 @@ struct OBJECT { SCNHANDLE hShape; ///< objects current animation frame SCNHANDLE hMirror; ///< objects previous animation frame int oid; ///< object identifier + + void reset() { + pNext = nullptr; + pSlave = nullptr; + //pOnDispList = nullptr; + //xVel = 0; + //yVel = 0; + xPos = 0; + yPos = 0; + zPos = 0; + rcPrev.top = 0; + rcPrev.left = 0; + rcPrev.bottom = 0; + rcPrev.right = 0; + flags = 0; + pPal = nullptr; + constant = 0; + width = 0; + height = 0; + hBits = 0; + hImg = 0; + hShape = 0; + hMirror = 0; + oid = 0; + } + + OBJECT() { reset(); } }; typedef OBJECT *POBJECT; |