diff options
Diffstat (limited to 'engines/fullpipe/statics.h')
-rw-r--r-- | engines/fullpipe/statics.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/engines/fullpipe/statics.h b/engines/fullpipe/statics.h index 15de4ab3be..a620daa528 100644 --- a/engines/fullpipe/statics.h +++ b/engines/fullpipe/statics.h @@ -132,6 +132,8 @@ class Movement : public GameObject { public: Movement(); + virtual ~Movement(); + Movement(Movement *src, StaticANIObject *ani); Movement(Movement *src, int *flag1, int flag2, StaticANIObject *ani); @@ -153,14 +155,16 @@ class Movement : public GameObject { DynamicPhase *getDynamicPhaseByIndex(int idx); int calcDuration(); + int countPhasesWithFlag(int maxidx, int flag); void removeFirstPhase(); - bool gotoNextFrame(int callback1, void (*callback2)(int *)); + bool gotoNextFrame(void (*_callback1)(int, Common::Point *point, int, int), void (*callback2)(int *)); bool gotoPrevFrame(); void gotoFirstFrame(); void gotoLastFrame(); void loadPixelData(); + void freePixelData(); void draw(bool flipFlag, int angle); }; @@ -174,7 +178,7 @@ class StaticANIObject : public GameObject { int16 _field_32; int _field_34; int _initialCounter; - int _callback1; + void (*_callback1)(int, Common::Point *point, int, int); void (*_callback2)(int *); PtrList _movements; PtrList _staticsList; @@ -186,11 +190,12 @@ class StaticANIObject : public GameObject { int _counter; int _someDynamicPhaseIndex; - public: +public: int16 _sceneId; - public: +public: StaticANIObject(); + virtual ~StaticANIObject(); StaticANIObject(StaticANIObject *src); virtual bool load(MfcArchive &file); @@ -212,11 +217,14 @@ class StaticANIObject : public GameObject { void deleteFromGlobalMessageQueue(); void queueMessageQueue(MessageQueue *msg); + void restartMessageQueue(MessageQueue *msg); MessageQueue *getMessageQueue(); bool trySetMessageQueue(int msgNum, int qId); + void startMQIfIdle(int qId, int flag); void initMovements(); void loadMovementsPixelData(); + void preloadMovements(MovTable *mt); void setSomeDynamicPhaseIndex(int val) { _someDynamicPhaseIndex = val; } void adjustSomeXY(); @@ -240,6 +248,7 @@ class StaticANIObject : public GameObject { void updateStepPos(); void stopAnim_maybe(); + Common::Point *calcNextStep(Common::Point *point); MessageQueue *changeStatics1(int msgNum); void changeStatics2(int objId); @@ -250,6 +259,9 @@ class StaticANIObject : public GameObject { struct MovTable { int count; int16 *movs; + + MovTable() { count = 0; movs = 0; } + ~MovTable() { free(movs); } }; } // End of namespace Fullpipe |