[Scummvm-cvs-logs] SF.net SVN: scummvm: [28219] scummvm/trunk/engines/parallaction

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Thu Jul 26 20:30:27 CEST 2007


Revision: 28219
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28219&view=rev
Author:   peres001
Date:     2007-07-26 11:30:27 -0700 (Thu, 26 Jul 2007)

Log Message:
-----------
Made screen size parameters properties of engine instead of compile-time constants.

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/disk.cpp
    scummvm/trunk/engines/parallaction/graphics.cpp
    scummvm/trunk/engines/parallaction/graphics.h
    scummvm/trunk/engines/parallaction/inventory.cpp
    scummvm/trunk/engines/parallaction/parallaction.cpp
    scummvm/trunk/engines/parallaction/parallaction.h
    scummvm/trunk/engines/parallaction/walk.cpp
    scummvm/trunk/engines/parallaction/zone.cpp

Modified: scummvm/trunk/engines/parallaction/disk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/disk.cpp	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/disk.cpp	2007-07-26 18:30:27 UTC (rev 28219)
@@ -412,9 +412,9 @@
 
 	parseBackground(_resArchive);
 
-	byte *bg = (byte*)calloc(1, SCREEN_WIDTH*SCREEN_HEIGHT);
-	byte *mask = (byte*)calloc(1, SCREENMASK_WIDTH*SCREEN_HEIGHT);
-	byte *path = (byte*)calloc(1, SCREENPATH_WIDTH*SCREEN_HEIGHT);
+	byte *bg = (byte*)calloc(1, _vm->_screenSize);
+	byte *mask = (byte*)calloc(1, _vm->_screenMaskSize);
+	byte *path = (byte*)calloc(1, _vm->_screenPathSize);
 
 
 	Graphics::PackBitsReadStream stream(_resArchive);
@@ -444,13 +444,13 @@
 	if (!_resArchive.openArchivedFile(path))
 		errorFileNotFound(name);
 
-	byte *maskBuf = (byte*)calloc(1, SCREENMASK_WIDTH*SCREEN_HEIGHT);
-	byte *pathBuf = (byte*)calloc(1, SCREENPATH_WIDTH*SCREEN_HEIGHT);
+	byte *maskBuf = (byte*)calloc(1, _vm->_screenMaskSize);
+	byte *pathBuf = (byte*)calloc(1, _vm->_screenPathSize);
 
 	parseDepths(_resArchive);
 
-	_resArchive.read(pathBuf, SCREENPATH_WIDTH*SCREEN_HEIGHT);
-	_resArchive.read(maskBuf, SCREENMASK_WIDTH*SCREEN_HEIGHT);
+	_resArchive.read(pathBuf, _vm->_screenPathSize);
+	_resArchive.read(maskBuf, _vm->_screenMaskSize);
 
 	_vm->_gfx->setMask(maskBuf);
 	_vm->setPath(pathBuf);
@@ -932,7 +932,12 @@
 	return NULL;
 }
 
-// FIXME: mask values are not computed correctly for level 1 and 2
+/*
+	FIXME: mask values are not computed correctly for level 1 and 2
+
+	NOTE: this routine is only able to build masks for Nippon Safes, since mask widths are hardcoded
+	into the main loop.
+*/
 void buildMask(byte* buf) {
 
 	byte mask1[16] = { 0, 0x80, 0x20, 0xA0, 8, 0x88, 0x28, 0xA8, 2, 0x82, 0x22, 0xA2, 0xA, 0x8A, 0x2A, 0xAA };
@@ -941,7 +946,7 @@
 	byte plane0[40];
 	byte plane1[40];
 
-	for (uint32 i = 0; i < 200; i++) {
+	for (int32 i = 0; i < _vm->_screenHeight; i++) {
 
 		memcpy(plane0, buf, 40);
 		memcpy(plane1, buf+40, 40);
@@ -1051,8 +1056,8 @@
 	s->seek(0x126, SEEK_SET);	// HACK: skipping IFF/ILBM header should be done by analysis, not magic
 	Graphics::PackBitsReadStream stream(*s);
 
-	byte *buf = (byte*)malloc(SCREENMASK_WIDTH*SCREEN_HEIGHT);
-	stream.read(buf, SCREENMASK_WIDTH*SCREEN_HEIGHT);
+	byte *buf = (byte*)malloc(_vm->_screenMaskSize);
+	stream.read(buf, _vm->_screenMaskSize);
 	buildMask(buf);
 	_vm->_gfx->setMask(buf);
 	free(buf);
@@ -1074,8 +1079,8 @@
 	s->seek(0x120, SEEK_SET);	// HACK: skipping IFF/ILBM header should be done by analysis, not magic
 
 	Graphics::PackBitsReadStream stream(*s);
-	byte *buf = (byte*)malloc(SCREENPATH_WIDTH*SCREEN_HEIGHT);
-	stream.read(buf, SCREENPATH_WIDTH*SCREEN_HEIGHT);
+	byte *buf = (byte*)malloc(_vm->_screenPathSize);
+	stream.read(buf, _vm->_screenPathSize);
 	_vm->setPath(buf);
 	free(buf);
 	delete s;

Modified: scummvm/trunk/engines/parallaction/graphics.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/graphics.cpp	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/graphics.cpp	2007-07-26 18:30:27 UTC (rev 28219)
@@ -80,7 +80,7 @@
 
 	winding = (winding == 0 ? 1 : 0);
 	byte *s = _resBalloon[winding];
-	byte *d = _buffers[kBitFront] + (r.left + (r.width()+5)/2 - 5) + (r.bottom - 1) * SCREEN_WIDTH;
+	byte *d = _buffers[kBitFront] + (r.left + (r.width()+5)/2 - 5) + (r.bottom - 1) * _vm->_screenWidth;
 
 	for (uint16 i = 0; i < BALLOON_HEIGHT; i++) {
 		for (uint16 j = 0; j < BALLOON_WIDTH; j++) {
@@ -89,7 +89,7 @@
 			s++;
 		}
 
-		d += (SCREEN_WIDTH - BALLOON_WIDTH);
+		d += (_vm->_screenWidth - BALLOON_WIDTH);
 	}
 
 //	printf("done\n");
@@ -255,7 +255,7 @@
 
 void Gfx::updateScreen() {
 //	  printf("Gfx::updateScreen()\n");
-	g_system->copyRectToScreen(_buffers[kBitFront], SCREEN_WIDTH, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+	g_system->copyRectToScreen(_buffers[kBitFront], _vm->_screenWidth, 0, 0, _vm->_screenWidth, _vm->_screenHeight);
 	g_system->updateScreen();
 	return;
 }
@@ -274,7 +274,7 @@
 //	graphic primitives
 //
 void Gfx::clearScreen(Gfx::Buffers buffer) {
-	memset(_buffers[buffer], 0, SCREEN_WIDTH*SCREEN_HEIGHT);
+	memset(_buffers[buffer], 0, _vm->_screenSize);
 
 	if (buffer == kBitFront) updateScreen();
 
@@ -283,7 +283,7 @@
 
 
 void Gfx::copyScreen(Gfx::Buffers srcbuffer, Gfx::Buffers dstbuffer) {
-	memcpy(_buffers[dstbuffer], _buffers[srcbuffer], SCREEN_WIDTH*SCREEN_HEIGHT);
+	memcpy(_buffers[dstbuffer], _buffers[srcbuffer], _vm->_screenSize);
 
 //	if (dstbuffer == kBitFront) updateScreen();
 
@@ -293,25 +293,25 @@
 void Gfx::floodFill(Gfx::Buffers buffer, const Common::Rect& r, byte color) {
 //	printf("Gfx::floodFill(%i, %i, %i, %i, %i)\n", color, left, top, right, bottom);
 
-	byte *d = _buffers[buffer] + (r.left + r.top * SCREEN_WIDTH);
+	byte *d = _buffers[buffer] + (r.left + r.top * _vm->_screenWidth);
 	uint16 w = r.width() + 1;
 	uint16 h = r.height() + 1;
 
 	for (uint16 i = 0; i < h; i++) {
 		memset(d, color, w);
 
-		d += SCREEN_WIDTH;
+		d += _vm->_screenWidth;
 	}
 
 	return;
 }
 
-void screenClip(Common::Rect& r, Common::Point& p) {
+void Gfx::screenClip(Common::Rect& r, Common::Point& p) {
 
 	int32 x = r.left;
 	int32 y = r.top;
 
-	Common::Rect screen(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+	Common::Rect screen(0, 0, _vm->_screenWidth, _vm->_screenHeight);
 
 	r.clip(screen);
 
@@ -332,7 +332,7 @@
 	screenClip(q, dp);
 
 	byte *s = data + q.left + q.top * r.width();
-	byte *d = _buffers[buffer] + dp.x + dp.y * SCREEN_WIDTH;
+	byte *d = _buffers[buffer] + dp.x + dp.y * _vm->_screenWidth;
 
 	for (uint16 i = q.top; i < q.bottom; i++) {
 		for (uint16 j = q.left; j < q.right; j++) {
@@ -342,7 +342,7 @@
 		}
 
 		s += (r.width() - q.width());
-		d += (SCREEN_WIDTH - q.width());
+		d += (_vm->_screenWidth - q.width());
 	}
 
 	return;
@@ -357,12 +357,12 @@
 	screenClip(q, dp);
 
 	byte *s = data + q.left + q.top * r.width();
-	byte *d = _buffers[buffer] + dp.x + dp.y * SCREEN_WIDTH;
+	byte *d = _buffers[buffer] + dp.x + dp.y * _vm->_screenWidth;
 
 	for (uint16 i = q.top; i < q.bottom; i++) {
 
 		uint16 n = dp.x % 4;
-		byte *m = _buffers[kMask0] + dp.x/4 + (dp.y + i - q.top)*SCREENMASK_WIDTH;
+		byte *m = _buffers[kMask0] + dp.x/4 + (dp.y + i - q.top)*_vm->_screenMaskWidth;
 
 		for (uint16 j = q.left; j < q.right; j++) {
 			if (*s != 0) {
@@ -379,7 +379,7 @@
 		}
 
 		s += (r.width() - q.right + q.left);
-		d += (SCREEN_WIDTH - q.right + q.left);
+		d += (_vm->_screenWidth - q.right + q.left);
 	}
 
 	return;
@@ -417,8 +417,8 @@
 	if (_si < 0) _si = 0;
 	if (_di > 190) _di = 190;
 
-	if (label->_cnv._width + _si > SCREEN_WIDTH)
-		_si = SCREEN_WIDTH - label->_cnv._width;
+	if (label->_cnv._width + _si > _vm->_screenWidth)
+		_si = _vm->_screenWidth - label->_cnv._width;
 
 	Common::Rect r(label->_cnv._width, label->_cnv._height);
 	r.moveTo(_vm->_gfx->_labelPosition[1]);
@@ -512,13 +512,13 @@
 
 void Gfx::backupDoorBackground(DoorData *data, int16 x, int16 y) {
 
-	byte *s = _buffers[kBit2] + x + y * SCREEN_WIDTH;
+	byte *s = _buffers[kBit2] + x + y * _vm->_screenWidth;
 	byte *d = data->_background;
 
 	for (uint16 i = 0; i < data->_cnv->_height ; i++) {
 		memcpy(d, s, data->_cnv->_width);
 
-		s += SCREEN_WIDTH;
+		s += _vm->_screenWidth;
 		d += data->_cnv->_width;
 	}
 
@@ -528,7 +528,7 @@
 void Gfx::backupGetBackground(GetData *data, int16 x, int16 y) {
 
 	byte *t = data->_cnv->_data0;
-	byte *s = _buffers[kBitBack] + x + y * SCREEN_WIDTH;
+	byte *s = _buffers[kBitBack] + x + y * _vm->_screenWidth;
 	byte *d = data->_backup;
 
 	for (uint16 i = 0; i < data->_cnv->_height ; i++) {
@@ -540,7 +540,7 @@
 			s++;
 		}
 
-		s += (SCREEN_WIDTH - data->_cnv->_width);
+		s += (_vm->_screenWidth - data->_cnv->_width);
 	}
 
 	return;
@@ -591,17 +591,17 @@
 }
 
 void Gfx::displayString(uint16 x, uint16 y, const char *text, byte color) {
-	byte *dst = _buffers[kBitFront] + x + y*SCREEN_WIDTH;
+	byte *dst = _buffers[kBitFront] + x + y*_vm->_screenWidth;
 	_font->setColor(color);
-	_font->drawString(dst, SCREEN_WIDTH, text);
+	_font->drawString(dst, _vm->_screenWidth, text);
 }
 
 void Gfx::displayCenteredString(uint16 y, const char *text) {
-	uint16 x = (SCREEN_WIDTH - getStringWidth(text)) / 2;
+	uint16 x = (_vm->_screenWidth - getStringWidth(text)) / 2;
 	displayString(x, y, text, 1);
 }
 
-bool Gfx::displayWrappedString(char *text, uint16 x, uint16 y, byte color, uint16 wrapwidth) {
+bool Gfx::displayWrappedString(char *text, uint16 x, uint16 y, byte color, int16 wrapwidth) {
 //	printf("Gfx::displayWrappedString(%s, %i, %i, %i, %i)...", text, x, y, color, wrapwidth);
 
 	uint16 lines = 0;
@@ -613,6 +613,9 @@
 
 	char token[40];
 
+	if (wrapwidth == -1)
+		wrapwidth = _vm->_screenWidth;
+
 	while (strlen(text) > 0) {
 
 		text = parseNextToken(text, token, 40, "   ", true);
@@ -701,11 +704,11 @@
 	if (left < 0) left = 0;
 	if (top < 0) top = 0;
 
-	if (left >= SCREEN_WIDTH) return;
-	if (top >= SCREEN_HEIGHT) return;
+	if (left >= _vm->_screenWidth) return;
+	if (top >= _vm->_screenHeight) return;
 
-	if (left+width >= SCREEN_WIDTH) width = SCREEN_WIDTH - left;
-	if (top+height >= SCREEN_HEIGHT) height = SCREEN_HEIGHT - top;
+	if (left+width >= _vm->_screenWidth) width = _vm->_screenWidth - left;
+	if (top+height >= _vm->_screenHeight) height = _vm->_screenHeight - top;
 
 	Common::Rect q(width, height);
 	q.moveTo(left, top);
@@ -713,8 +716,8 @@
 	copyRect(
 		kBitBack,
 		q,
-		_buffers[kBit2] + q.left + q.top * SCREEN_WIDTH,
-		SCREEN_WIDTH
+		_buffers[kBit2] + q.left + q.top * _vm->_screenWidth,
+		_vm->_screenWidth
 	);
 
 	return;
@@ -735,26 +738,26 @@
 
 
 void Gfx::setBackground(byte *background) {
-	memcpy(_buffers[kBitBack], background, SCREEN_WIDTH*SCREEN_HEIGHT);
+	memcpy(_buffers[kBitBack], background, _vm->_screenSize);
 	copyScreen(kBitBack, kBit2);
 }
 
 void Gfx::setMask(byte *mask) {
-	memcpy(_buffers[kMask0], mask, SCREENMASK_WIDTH*SCREEN_HEIGHT);
+	memcpy(_buffers[kMask0], mask, _vm->_screenMaskSize);
 }
 
 
 
 void Gfx::copyRect(Gfx::Buffers dstbuffer, const Common::Rect& r, byte *src, uint16 pitch) {
 
-	byte *d = _buffers[dstbuffer] + r.left + SCREEN_WIDTH * r.top;
+	byte *d = _buffers[dstbuffer] + r.left + _vm->_screenWidth * r.top;
 	byte *s = src;
 
 	for (uint16 _si = 0; _si < r.height(); _si++) {
 		memcpy(d, s, r.width());
 
 		s += pitch;
-		d += SCREEN_WIDTH;
+		d += _vm->_screenWidth;
 	}
 
 
@@ -763,51 +766,49 @@
 
 void Gfx::grabRect(byte *dst, const Common::Rect& r, Gfx::Buffers srcbuffer, uint16 pitch) {
 
-	byte *s = _buffers[srcbuffer] + r.left + SCREEN_WIDTH * r.top;
+	byte *s = _buffers[srcbuffer] + r.left + _vm->_screenWidth * r.top;
 
 	for (uint16 i = 0; i < r.height(); i++) {
 		memcpy(dst, s, r.width());
 
-		s += SCREEN_WIDTH;
+		s += _vm->_screenWidth;
 		dst += pitch;
 	}
 
 	return;
 }
 
+/*
+	the following 3 routines are hacks for Nippon Safes coming from the original code,
+	so they shouldn't be modified when adding support for other games
+*/
 
 void Gfx::plotMaskPixel(uint16 x, uint16 y, byte color) {
 
-	uint16 _ax = x + y * SCREEN_WIDTH;
+	uint16 _ax = x + y * _vm->_screenWidth;
 	_buffers[kMask0][_ax >> 2] &= ~(3 << ((_ax & 3) << 1));
 
 	return;
 }
-
-
-
 void Gfx::fillMaskRect(const Common::Rect& r, byte color) {
 
-	uint16 _di = r.left/4 + r.top*80;
+	uint16 _di = r.left/4 + r.top * _vm->_screenMaskWidth;
 
 	for (uint16 _si = r.top; _si < r.bottom; _si++) {
 		memset(&_buffers[kMask0][_di], color, r.width()/4+1);
-		_di += 80;
+		_di += _vm->_screenMaskWidth;
 	}
 
 	return;
 
 }
-
-//	HACK
-//	this routine is only invoked from the 'intgrotta scenario'
-//
 void Gfx::intGrottaHackMask() {
 	memset(_buffers[kMask0] + 3600, 0, 3600);
 	_bgLayers[1] = 500;
 	return;
 }
 
+
 int16 Gfx::queryMask(int16 v) {
 
 	for (uint16 _si = 0; _si < 3; _si++) {
@@ -821,13 +822,13 @@
 	_vm(vm) {
 
 	g_system->beginGFXTransaction();
-	g_system->initSize(SCREEN_WIDTH, SCREEN_HEIGHT);
+	g_system->initSize(_vm->_screenWidth, _vm->_screenHeight);
 	g_system->endGFXTransaction();
 
-	_buffers[kBitFront] = (byte*)malloc(SCREEN_SIZE);
-	_buffers[kBitBack]	= (byte*)malloc(SCREEN_SIZE);
-	_buffers[kBit2]   = (byte*)malloc(SCREEN_SIZE);
-	_buffers[kMask0] = (byte*)malloc(SCREENMASK_WIDTH * SCREEN_HEIGHT);
+	_buffers[kBitFront] = (byte*)malloc(_vm->_screenSize);
+	_buffers[kBitBack]	= (byte*)malloc(_vm->_screenSize);
+	_buffers[kBit2]   = (byte*)malloc(_vm->_screenSize);
+	_buffers[kMask0] = (byte*)malloc(_vm->_screenMaskWidth * _vm->_screenHeight);
 
 	setBlackPalette();
 

Modified: scummvm/trunk/engines/parallaction/graphics.h
===================================================================
--- scummvm/trunk/engines/parallaction/graphics.h	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/graphics.h	2007-07-26 18:30:27 UTC (rev 28219)
@@ -36,14 +36,6 @@
 namespace Parallaction {
 
 
-
-#define SCREEN_WIDTH		320
-#define SCREEN_HEIGHT		200
-#define SCREEN_SIZE 		SCREEN_WIDTH*SCREEN_HEIGHT
-
-#define SCREENMASK_WIDTH	SCREEN_WIDTH/4
-#define SCREENPATH_WIDTH	SCREEN_WIDTH/8
-
 #define BASE_PALETTE_COLORS		32
 #define FIRST_BASE_COLOR		0
 #define LAST_BASE_COLOR			(FIRST_BASE_COLOR+BASE_PALETTE_COLORS-1)
@@ -168,12 +160,13 @@
 	};
 
 public:
+	void screenClip(Common::Rect& r, Common::Point& p);
 
 	// dialogue and text
 	void drawBalloon(const Common::Rect& r, uint16 arg_8);
 	void displayString(uint16 x, uint16 y, const char *text, byte color);
 	void displayCenteredString(uint16 y, const char *text);
-	bool displayWrappedString(char *text, uint16 x, uint16 y, byte color, uint16 wrapwidth = SCREEN_WIDTH);
+	bool displayWrappedString(char *text, uint16 x, uint16 y, byte color, int16 wrapwidth = -1);
 	uint16 getStringWidth(const char *text);
 	void getStringExtent(char *text, uint16 maxwidth, int16* width, int16* height);
 

Modified: scummvm/trunk/engines/parallaction/inventory.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/inventory.cpp	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/inventory.cpp	2007-07-26 18:30:27 UTC (rev 28219)
@@ -280,8 +280,8 @@
 	int16 slot = getNumUsedSlots();
 	uint16 lines = (slot + 4) / INVENTORY_ITEMS_PER_LINE;
 
-	_invPosition.x = CLIP(_vm->_mousePos.x - (INVENTORY_WIDTH / 2), 0, SCREEN_WIDTH - INVENTORY_WIDTH);
-	_invPosition.y = CLIP(_vm->_mousePos.y - 2 - (lines * INVENTORYITEM_HEIGHT), 0, SCREEN_HEIGHT - lines * INVENTORYITEM_HEIGHT);
+	_invPosition.x = CLIP(_vm->_mousePos.x - (INVENTORY_WIDTH / 2), 0, (int)(_vm->_screenWidth - INVENTORY_WIDTH));
+	_invPosition.y = CLIP(_vm->_mousePos.y - 2 - (lines * INVENTORYITEM_HEIGHT), 0, (int)(_vm->_screenHeight - lines * INVENTORYITEM_HEIGHT));
 
 	refreshInventory();
 

Modified: scummvm/trunk/engines/parallaction/parallaction.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.cpp	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/parallaction.cpp	2007-07-26 18:30:27 UTC (rev 28219)
@@ -174,6 +174,25 @@
 
 	_baseTime = 0;
 
+
+	if (_vm->getGameType() == GType_Nippon) {
+		_screenWidth = 320;
+		_screenHeight = 200;
+	} else
+	if (_vm->getGameType() == GType_BRA) {
+		_screenWidth = 640;
+		_screenHeight = 400;
+	}
+
+	_screenMaskWidth = _screenWidth / 4;
+	_screenPathWidth = _screenWidth / 8;
+
+	_screenSize = _screenWidth * _screenHeight;
+	_screenMaskSize = _screenMaskWidth * _screenHeight;
+	_screenPathSize = _screenPathWidth * _screenHeight;
+
+
+
 	if (getPlatform() == Common::kPlatformPC) {
 		_disk = new DosDisk(this);
 	} else {

Modified: scummvm/trunk/engines/parallaction/parallaction.h
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.h	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/parallaction.h	2007-07-26 18:30:27 UTC (rev 28219)
@@ -361,6 +361,16 @@
 	const PARALLACTIONGameDescription *_gameDescription;
 
 public:
+	// info
+	int32			_screenWidth;
+	int32 			_screenHeight;
+	int32 			_screenSize;
+
+	int32 			_screenMaskWidth;
+	int32 			_screenMaskSize;
+	int32 			_screenPathWidth;
+	int32 			_screenPathSize;
+
 	SoundMan		*_soundMan;
 
 	Gfx*			_gfx;

Modified: scummvm/trunk/engines/parallaction/walk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/walk.cpp	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/walk.cpp	2007-07-26 18:30:27 UTC (rev 28219)
@@ -59,11 +59,11 @@
 	int16 left = to.x;
 	do {
 		right++;
-	} while ((queryPath(right, to.y) == 0) && (right < SCREEN_WIDTH));
+	} while ((queryPath(right, to.y) == 0) && (right < _vm->_screenWidth));
 	do {
 		left--;
 	} while ((queryPath(left, to.y) == 0) && (left > 0));
-	right = (right == SCREEN_WIDTH) ? 1000 : right - to.x;
+	right = (right == _vm->_screenWidth) ? 1000 : right - to.x;
 	left = (left == 0) ? 1000 : to.x - left;
 
 
@@ -74,9 +74,9 @@
 	} while ((queryPath(to.x, top) == 0) && (top > 0));
 	do {
 		bottom++;
-	} while ((queryPath(to.x, bottom) == 0) && (bottom < SCREEN_HEIGHT));
+	} while ((queryPath(to.x, bottom) == 0) && (bottom < _vm->_screenHeight));
 	top = (top == 0) ? 1000 : to.y - top;
-	bottom = (bottom == SCREEN_HEIGHT) ? 1000 : bottom - to.y;
+	bottom = (bottom == _vm->_screenHeight) ? 1000 : bottom - to.y;
 
 
 	int16 closeX = (right >= left) ? left : right;
@@ -272,7 +272,7 @@
 
 void Parallaction::clipMove(Common::Point& pos, const WalkNode* from) {
 
-	if ((pos.x < from->_x) && (pos.x < SCREEN_WIDTH) && (queryPath(_vm->_char._ani.width()/2 + pos.x + 2, _vm->_char._ani.height() + pos.y) != 0)) {
+	if ((pos.x < from->_x) && (pos.x < _screenWidth) && (queryPath(_vm->_char._ani.width()/2 + pos.x + 2, _vm->_char._ani.height() + pos.y) != 0)) {
 		pos.x = (pos.x + 2 < from->_x) ? pos.x + 2 : from->_x;
 	}
 
@@ -280,7 +280,7 @@
 		pos.x = (pos.x - 2 > from->_x) ? pos.x - 2 : from->_x;
 	}
 
-	if ((pos.y < from->_y) && (pos.y < (SCREEN_HEIGHT - _vm->_char._ani.height())) && (queryPath(_vm->_char._ani.width()/2 + pos.x, _vm->_char._ani.height() + pos.y + 2) != 0)) {
+	if ((pos.y < from->_y) && (pos.y < (_screenHeight - _vm->_char._ani.height())) && (queryPath(_vm->_char._ani.width()/2 + pos.x, _vm->_char._ani.height() + pos.y + 2) != 0)) {
 		pos.y = (pos.y + 2 <= from->_y) ? pos.y + 2 : from->_y;
 	}
 
@@ -429,11 +429,11 @@
 
 
 void Parallaction::setPath(byte *path) {
-	memcpy(_buffer, path, SCREENPATH_WIDTH*SCREEN_HEIGHT);
+	memcpy(_buffer, path, _screenPathSize);
 }
 
 void Parallaction::initWalk() {
-	_buffer = (byte*)malloc(SCREENPATH_WIDTH * SCREEN_HEIGHT);
+	_buffer = (byte*)malloc(_screenPathSize);
 }
 
 

Modified: scummvm/trunk/engines/parallaction/zone.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/zone.cpp	2007-07-26 18:23:09 UTC (rev 28218)
+++ scummvm/trunk/engines/parallaction/zone.cpp	2007-07-26 18:30:27 UTC (rev 28219)
@@ -333,7 +333,7 @@
 	char v68[PATH_LEN];
 	strcpy(v68, data->_filename);
 	data->_cnv = _disk->loadStatic(v68);
-	_gfx->flatBlitCnv(data->_cnv, 140, (SCREEN_HEIGHT - data->_cnv->_height)/2, Gfx::kBitFront);
+	_gfx->flatBlitCnv(data->_cnv, 140, (_screenHeight - data->_cnv->_height)/2, Gfx::kBitFront);
 	_gfx->freeStaticCnv(data->_cnv);
 	delete data->_cnv;
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list