diff options
author | Colin Snover | 2017-11-16 10:31:59 -0600 |
---|---|---|
committer | Eugene Sandulenko | 2017-11-18 22:35:12 +0100 |
commit | 715d4bd76ab749b88f888ea8196ce252de6140ad (patch) | |
tree | e781ceb72a4061dbd2cc4c96cd921c1aaf60737e /engines/fullpipe/statics.h | |
parent | 6a13592633a6a4cf935409edd1c5504ef7dfa75e (diff) | |
download | scummvm-rg350-715d4bd76ab749b88f888ea8196ce252de6140ad.tar.gz scummvm-rg350-715d4bd76ab749b88f888ea8196ce252de6140ad.tar.bz2 scummvm-rg350-715d4bd76ab749b88f888ea8196ce252de6140ad.zip |
FULLPIPE: Fix memory leaks, ownership issues with various point lists
Diffstat (limited to 'engines/fullpipe/statics.h')
-rw-r--r-- | engines/fullpipe/statics.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/engines/fullpipe/statics.h b/engines/fullpipe/statics.h index 841c158065..124a293722 100644 --- a/engines/fullpipe/statics.h +++ b/engines/fullpipe/statics.h @@ -31,23 +31,20 @@ class ExCommand; class StepArray : public CObject { int _currPointIndex; - Common::Point **_points; - int _maxPointIndex; - int _pointsCount; - int _isEos; + PointList _points; + bool _isEos; public: StepArray(); - ~StepArray(); void clear(); - int getCurrPointIndex() { return _currPointIndex; } - int getPointsCount() { return _maxPointIndex; } + int getCurrPointIndex() const { return _currPointIndex; } + int getPointsCount() const { return _points.size(); } Common::Point getCurrPoint() const; Common::Point getPoint(int index, int offset) const; bool gotoNextPoint(); - void insertPoints(Common::Point **points, int pointsCount); + void insertPoints(const PointList &points); }; class StaticPhase : public Picture { @@ -78,7 +75,7 @@ class DynamicPhase : public StaticPhase { public: DynamicPhase(); - DynamicPhase(DynamicPhase &src, bool reverse); + DynamicPhase(DynamicPhase *src, bool reverse); virtual bool load(MfcArchive &file); @@ -93,7 +90,7 @@ class Statics : public DynamicPhase { public: Statics(); - Statics(Statics &src, bool reverse); + Statics(Statics *src, bool reverse); virtual bool load(MfcArchive &file); virtual void init(); @@ -122,7 +119,7 @@ class Movement : public GameObject { int _counter; Common::Array<DynamicPhase *> _dynamicPhases; int _field_78; - Common::Array<Common::Point> _framePosOffsets; + PointList _framePosOffsets; Movement *_currMovement; int _field_84; DynamicPhase *_currDynamicPhase; @@ -204,7 +201,7 @@ public: Statics *getStaticsById(int id); Statics *getStaticsByName(const Common::String &name); Movement *getMovementById(int id); - int getMovementIdById(int itemId); + int getMovementIdById(int itemId) const; Movement *getMovementByName(const Common::String &name); Common::Point getCurrDimensions() const; @@ -232,7 +229,7 @@ public: bool startAnim(int movementId, int messageQueueId, int dynPhaseIdx); bool startAnimEx(int movid, int parId, int flag1, int flag2); - void startAnimSteps(int movementId, int messageQueueId, int x, int y, Common::Point **points, int pointsCount, int someDynamicPhaseIndex); + void startAnimSteps(int movementId, int messageQueueId, int x, int y, const PointList &points, int someDynamicPhaseIndex); void hide(); void show1(int x, int y, int movementId, int mqId); |