From 0c479251c794f536c9bcaf18c2ce10fcb1537be2 Mon Sep 17 00:00:00 2001 From: D G Turner Date: Sun, 25 Aug 2019 09:09:26 +0100 Subject: TINSEL: Fix GCC Compilation Warnings These are also associated with memset on non-trivial structures. --- engines/tinsel/object.cpp | 2 +- engines/tinsel/object.h | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) (limited to 'engines/tinsel') 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; -- cgit v1.2.3