diff options
| -rw-r--r-- | engines/parallaction/gfxbase.cpp | 2 | ||||
| -rw-r--r-- | engines/parallaction/graphics.cpp | 19 | ||||
| -rw-r--r-- | engines/parallaction/graphics.h | 1 | ||||
| -rw-r--r-- | engines/parallaction/parser_br.cpp | 3 | 
4 files changed, 4 insertions, 21 deletions
| diff --git a/engines/parallaction/gfxbase.cpp b/engines/parallaction/gfxbase.cpp index 9a3d204569..968d705a5c 100644 --- a/engines/parallaction/gfxbase.cpp +++ b/engines/parallaction/gfxbase.cpp @@ -34,7 +34,7 @@ namespace Parallaction {  GfxObj::GfxObj(uint objType, Frames *frames, const char* name) :  	_frames(frames), _keep(true), x(0), y(0), z(0), _flags(kGfxObjNormal), -	type(objType), frame(0), layer(3), scale(100), _hasMask(false)  { +	type(objType), frame(0), layer(3), scale(100), _hasMask(false), _hasPath(false)  {  	if (name) {  		_name = strdup(name); diff --git a/engines/parallaction/graphics.cpp b/engines/parallaction/graphics.cpp index 42d6d39e84..c2b4a72cab 100644 --- a/engines/parallaction/graphics.cpp +++ b/engines/parallaction/graphics.cpp @@ -941,7 +941,7 @@ void BackgroundInfo::togglePathPatch(uint id, int x, int y, bool apply) {  	}  	PathBuffer *patch = _pathPatches[id];  	if (apply) { -		_path->bltOr(x, y, *patch, 0, 0, patch->w, patch->h); +		_path->bltCopy(x, y, *patch, 0, 0, patch->w, patch->h);  	} else {  		_path->bltCopy(x, y, _pathBackup, x, y, patch->w, patch->h);  	} @@ -1075,23 +1075,6 @@ byte* PathBuffer::getPtr(uint16 x, uint16 y) const {  	return data + (x >> 3) + y * internalWidth;  } -void PathBuffer::bltOr(uint16 dx, uint16 dy, const PathBuffer &src, uint16 sx, uint16 sy, uint width, uint height) { -	assert((width <= w) && (width <= src.w) && (height <= h) && (height <= src.h)); - -	byte *s = src.getPtr(sx, sy); -	byte *d = getPtr(dx, dy); - -	// this code assumes buffers are aligned on 4-pixels boundaries, as the original does -	uint16 linewidth = width >> 3; -	for (uint16 i = 0; i < height; i++) { -		for (uint16 j = 0; j < linewidth; j++) { -			*d++ |= *s++; -		} -		d += internalWidth - linewidth; -		s += src.internalWidth - linewidth; -	} -} -  void PathBuffer::bltCopy(uint16 dx, uint16 dy, const PathBuffer &src, uint16 sx, uint16 sy, uint width, uint height) {  	assert((width <= w) && (width <= src.w) && (height <= h) && (height <= src.h)); diff --git a/engines/parallaction/graphics.h b/engines/parallaction/graphics.h index e165f51da7..f029d54833 100644 --- a/engines/parallaction/graphics.h +++ b/engines/parallaction/graphics.h @@ -218,7 +218,6 @@ struct PathBuffer {  	bool	bigEndian;  	byte* getPtr(uint16 x, uint16 y) const; -	void bltOr(uint16 dx, uint16 dy, const PathBuffer &src, uint16 sx, uint16 sy, uint width, uint height);  	void bltCopy(uint16 dx, uint16 dy, const PathBuffer &src, uint16 sx, uint16 sy, uint width, uint height);  public: diff --git a/engines/parallaction/parser_br.cpp b/engines/parallaction/parser_br.cpp index 15f9d7a785..2721763383 100644 --- a/engines/parallaction/parser_br.cpp +++ b/engines/parallaction/parser_br.cpp @@ -1258,7 +1258,8 @@ void LocationParser_br::parse(Script *script) {  	ZoneList::iterator it = _vm->_location._zones.begin();  	for ( ; it != _vm->_location._zones.end(); it++) {  		bool visible = ((*it)->_flags & kFlagsRemove) == 0; -		_vm->showZone((*it), visible); +		if (visible) +			_vm->showZone((*it), visible);  	}  	if (ctxt.characterName) { | 
