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/fullpipe | |
| 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/fullpipe')
| -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() {  | 
