[Scummvm-cvs-logs] SF.net SVN: scummvm:[48800] scummvm/trunk/engines/queen

cyx at users.sourceforge.net cyx at users.sourceforge.net
Sun Apr 25 23:53:09 CEST 2010


Revision: 48800
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48800&view=rev
Author:   cyx
Date:     2010-04-25 21:53:09 +0000 (Sun, 25 Apr 2010)

Log Message:
-----------
get rid of global Box objects and remove obsoleted PALMOS_ARM defines.

Modified Paths:
--------------
    scummvm/trunk/engines/queen/command.cpp
    scummvm/trunk/engines/queen/cutaway.cpp
    scummvm/trunk/engines/queen/graphics.cpp
    scummvm/trunk/engines/queen/graphics.h

Modified: scummvm/trunk/engines/queen/command.cpp
===================================================================
--- scummvm/trunk/engines/queen/command.cpp	2010-04-25 20:48:59 UTC (rev 48799)
+++ scummvm/trunk/engines/queen/command.cpp	2010-04-25 21:53:09 UTC (rev 48800)
@@ -1131,7 +1131,7 @@
 					if (image1 != 0 && image2 == 0 && objData->room == _vm->logic()->currentRoom()) {
 						uint16 bobNum = _vm->logic()->findBob(dstObj);
 						if (bobNum != 0) {
-							_vm->graphics()->bob(bobNum)->clear();
+							_vm->graphics()->clearBob(bobNum);
 						}
 					}
 				}

Modified: scummvm/trunk/engines/queen/cutaway.cpp
===================================================================
--- scummvm/trunk/engines/queen/cutaway.cpp	2010-04-25 20:48:59 UTC (rev 48799)
+++ scummvm/trunk/engines/queen/cutaway.cpp	2010-04-25 21:53:09 UTC (rev 48800)
@@ -1048,7 +1048,7 @@
 
 					ObjectData *from = _vm->logic()->objectData(fromIndex);
 					if (object->image && !from->image && bobIndex && _vm->logic()->currentRoom() == object->room)
-						_vm->graphics()->bob(bobIndex)->clear();
+						_vm->graphics()->clearBob(bobIndex);
 				}
 
 				if (_vm->logic()->currentRoom() == room)
@@ -1076,7 +1076,7 @@
 					int objectFrame = _vm->logic()->findFrame(objectIndex);
 
 					if (objectFrame == 1000) {
-						_vm->graphics()->bob(bobIndex)->clear();
+						_vm->graphics()->clearBob(bobIndex);
 					} else if (objectFrame) {
 						_vm->bankMan()->unpack(ABS(frame), objectFrame, bank);
 						pbs->frameNum = objectFrame;

Modified: scummvm/trunk/engines/queen/graphics.cpp
===================================================================
--- scummvm/trunk/engines/queen/graphics.cpp	2010-04-25 20:48:59 UTC (rev 48799)
+++ scummvm/trunk/engines/queen/graphics.cpp	2010-04-25 21:53:09 UTC (rev 48800)
@@ -36,8 +36,6 @@
 
 namespace Queen {
 
-const Box BobSlot::_defaultBox(-1, -1, -1, -1);
-
 void BobSlot::curPos(int16 xx, int16 yy) {
 	active = true;
 	x = xx;
@@ -177,22 +175,14 @@
 	}
 }
 
-void BobSlot::clear() {
+void BobSlot::clear(const Box *defaultBox) {
 	active = false;
 	xflip = false;
 	animating = false;
 	anim.string.buffer = NULL;
 	moving = false;
 	scale = 100;
-
-#ifdef PALMOS_ARM
-	Box *tmp = (Box *)&_defaultBox;
-	tmp->x1 = -1;
-	tmp->y1 = -1;
-	tmp->x2 = -1;
-	tmp->y2 = -1;
-#endif
-	box = _defaultBox;
+	box = *defaultBox;
 }
 
 static int compareBobDrawOrder(const void *a, const void *b) {
@@ -208,33 +198,15 @@
 	return d;
 }
 
-const Box Graphics::_gameScreenBox(0, 0, GAME_SCREEN_WIDTH - 1, ROOM_ZONE_HEIGHT - 1);
-const Box Graphics::_fullScreenBox(0, 0, GAME_SCREEN_WIDTH - 1, GAME_SCREEN_HEIGHT - 1);
-
 Graphics::Graphics(QueenEngine *vm)
-	: _cameraBob(0), _vm(vm) {
+	: _cameraBob(0), _vm(vm),
+	_defaultBox(-1, -1, -1, -1),
+	_gameScreenBox(0, 0, GAME_SCREEN_WIDTH - 1, ROOM_ZONE_HEIGHT - 1),
+	_fullScreenBox(0, 0, GAME_SCREEN_WIDTH - 1, GAME_SCREEN_HEIGHT - 1) {
 	memset(_bobs, 0, sizeof(_bobs));
 	memset(_sortedBobs, 0, sizeof(_sortedBobs));
 	_sortedBobsCount = 0;
 	_shrinkBuffer.data = new uint8[ BOB_SHRINK_BUF_SIZE ];
-
-#ifdef PALMOS_ARM
-	Box *tmp1 = (Box *)&BobSlot::_defaultBox;
-	tmp1->x1 = -1;
-	tmp1->y1 = -1;
-	tmp1->x2 = -1;
-	tmp1->y2 = -1;
-	Box *tmp2 = (Box *)&_gameScreenBox;
-	tmp2->x1 = 0;
-	tmp2->y1 = 0;
-	tmp2->x2 = GAME_SCREEN_WIDTH - 1;
-	tmp2->y2 = ROOM_ZONE_HEIGHT - 1;
-	Box *tmp3 = (Box *)&_fullScreenBox;
-	tmp3->x1 = 0;
-	tmp3->y1 = 0;
-	tmp3->x2 = GAME_SCREEN_WIDTH - 1;
-	tmp3->y2 = GAME_SCREEN_HEIGHT - 1;
-#endif
 }
 
 Graphics::~Graphics() {
@@ -329,7 +301,7 @@
 	w = bf->width;
 	h = bf->height;
 
-	const Box *box = (bs->box == BobSlot::_defaultBox) ? bbox : &bs->box;
+	const Box *box = (bs->box == _defaultBox) ? bbox : &bs->box;
 
 	if (w != 0 && h != 0 && box->intersects(x, y, w, h)) {
 		uint8 *src = bf->data;
@@ -473,7 +445,7 @@
 
 void Graphics::clearBobs() {
 	for (int32 i = 0; i < ARRAYSIZE(_bobs); ++i) {
-		_bobs[i].clear();
+		_bobs[i].clear(&_defaultBox);
 	}
 }
 
@@ -879,7 +851,7 @@
 	if (pod->image == -3 || pod->image == -4) {
 		// a person object
 		if (pod->name <= 0) {
-			pbs->clear();
+			pbs->clear(&_defaultBox);
 		} else {
 			// find person number
 			uint16 pNum = _vm->logic()->findPersonNumber(obj, _vm->logic()->currentRoom());
@@ -897,7 +869,7 @@
 
 	if (pod->name < 0 || pod->image < 0) {
 		// object is hidden or disabled
-		pbs->clear();
+		pbs->clear(&_defaultBox);
 		return curImage;
 	}
 
@@ -1072,7 +1044,7 @@
 				// static objects
 				curBob = 20 + _numFurnitureStatic + numObjectStatic;
 				++curImage;
-				bob(curBob)->clear();
+				bob(curBob)->clear(&_defaultBox);
 				_vm->bankMan()->unpack(pgd->firstFrame, curImage, 15);
 				++_numFrames;
 				if (pod->name > 0) {
@@ -1180,16 +1152,16 @@
 }
 
 void BamScene::prepareAnimation() {
+	_vm->graphics()->clearBob(BOB_OBJ1);
 	_obj1 = _vm->graphics()->bob(BOB_OBJ1);
-	_obj1->clear();
 	_obj1->active = true;
 
+	_vm->graphics()->clearBob(BOB_OBJ2);
 	_obj2 = _vm->graphics()->bob(BOB_OBJ2);
-	_obj2->clear();
 	_obj2->active = true;
 
+	_vm->graphics()->clearBob(BOB_FX);
 	_objfx = _vm->graphics()->bob(BOB_FX);
-	_objfx->clear();
 	_objfx->active = true;
 
 	_index = 0;

Modified: scummvm/trunk/engines/queen/graphics.h
===================================================================
--- scummvm/trunk/engines/queen/graphics.h	2010-04-25 20:48:59 UTC (rev 48799)
+++ scummvm/trunk/engines/queen/graphics.h	2010-04-25 21:53:09 UTC (rev 48800)
@@ -86,9 +86,7 @@
 
 	void scaleWalkSpeed(uint16 ms);
 
-	void clear();
-
-	static const Box _defaultBox;
+	void clear(const Box *defaultBox);
 };
 
 class QueenEngine;
@@ -135,6 +133,8 @@
 	//! returns a reference to the specified bob
 	BobSlot *bob(int index);
 
+	void clearBob(int index) { bob(index)->clear(&_defaultBox); }
+
 	//! display a text 'near' the specified bob
 	void setBobText(const BobSlot *bob, const char *text, int textX, int textY, int color, int flags);
 
@@ -219,8 +219,9 @@
 
 	QueenEngine *_vm;
 
-	static const Box _gameScreenBox;
-	static const Box _fullScreenBox;
+	const Box _defaultBox;
+	const Box _gameScreenBox;
+	const Box _fullScreenBox;
 };
 
 class BamScene {


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