diff options
author | Eugene Sandulenko | 2014-01-12 10:59:14 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-12 10:59:14 +0200 |
commit | 491a045eea1af99a4bf54ab84304135c946b6cc0 (patch) | |
tree | 264a6a625baaa2469785d015aff72e07cb03ad78 /engines | |
parent | 4e592c724904bb0bc597e5bc7fe7707c1f858dab (diff) | |
download | scummvm-rg350-491a045eea1af99a4bf54ab84304135c946b6cc0.tar.gz scummvm-rg350-491a045eea1af99a4bf54ab84304135c946b6cc0.tar.bz2 scummvm-rg350-491a045eea1af99a4bf54ab84304135c946b6cc0.zip |
FULLPIPE: Implement Movement::freePixelData()
Diffstat (limited to 'engines')
-rw-r--r-- | engines/fullpipe/gfx.cpp | 11 | ||||
-rw-r--r-- | engines/fullpipe/gfx.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/statics.cpp | 7 |
3 files changed, 16 insertions, 3 deletions
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp index 6e6e35f17a..a67a4d7b19 100644 --- a/engines/fullpipe/gfx.cpp +++ b/engines/fullpipe/gfx.cpp @@ -58,6 +58,8 @@ Bitmap::Bitmap(Bitmap *src) { Bitmap::~Bitmap() { if (_pixels) free(_pixels); + + _pixels = 0; } void Bitmap::load(Common::ReadStream *s) { @@ -230,7 +232,7 @@ void PictureObject::drawAt(int x, int y) { bool PictureObject::setPicAniInfo(PicAniInfo *picAniInfo) { if (!(picAniInfo->type & 2) || (picAniInfo->type & 1)) { - error("Picture::setPicAniInfo(): Wrong type: %d", picAniInfo->type); + error("PictureObject::setPicAniInfo(): Wrong type: %d", picAniInfo->type); return false; } @@ -482,7 +484,7 @@ void Picture::freePicture() { if (_bitmap) { if (testFlags() && !_field_54) { freeData(); - delete _bitmap; + free(_bitmap); _bitmap = 0; } } @@ -499,6 +501,11 @@ void Picture::freePicture() { } } +void Picture::freePixelData() { + freePicture(); + freeData(); +} + bool Picture::load(MfcArchive &file) { debug(5, "Picture::load()"); MemoryObject::load(file); diff --git a/engines/fullpipe/gfx.h b/engines/fullpipe/gfx.h index 6e32c94164..d640decc80 100644 --- a/engines/fullpipe/gfx.h +++ b/engines/fullpipe/gfx.h @@ -88,6 +88,7 @@ class Picture : public MemoryObject { virtual ~Picture(); void freePicture(); + void freePixelData(); virtual bool load(MfcArchive &file); void setAOIDs(); diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index 9c025dcf29..10d9b4dfdf 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -1690,7 +1690,12 @@ void Movement::loadPixelData() { } void Movement::freePixelData() { - warning("STUB: Movement::freePixelData()"); + if (!_currMovement) + for (uint i = 0; i < _dynamicPhases.size(); i++) + ((DynamicPhase *)_dynamicPhases[i])->freePixelData(); + + if (_staticsObj1) + _staticsObj1->freePixelData(); } void Movement::removeFirstPhase() { |