[Scummvm-cvs-logs] CVS: scummvm/scumm debugger.cpp,1.114,1.115 object.cpp,1.159,1.160 script_v2.cpp,2.228,2.229 script_v5.cpp,1.222,1.223 script_v6.cpp,1.251,1.252 scumm.h,1.358,1.359

Max Horn fingolfin at users.sourceforge.net
Sun Jan 11 12:44:01 CET 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv32433

Modified Files:
	debugger.cpp object.cpp script_v2.cpp script_v5.cpp 
	script_v6.cpp scumm.h 
Log Message:
changed the name of the former removeObjectFromRoom yet again, to markObjectRectAsDirty  - that describes its functionality more accurately, I hope :-)

Index: debugger.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.cpp,v
retrieving revision 1.114
retrieving revision 1.115
diff -u -d -r1.114 -r1.115
--- debugger.cpp	11 Jan 2004 20:15:04 -0000	1.114
+++ debugger.cpp	11 Jan 2004 20:42:40 -0000	1.115
@@ -486,7 +486,7 @@
 		_vm->putOwner(obj, _vm->VAR(_vm->VAR_EGO));
 		_vm->putClass(obj, kObjectClassUntouchable, 1);
 		_vm->putState(obj, 1);
-		_vm->forceObjectRedraw(obj);
+		_vm->markObjectRectAsDirty(obj);
 		_vm->clearDrawObjectQueue();
 		_vm->runInventoryScript(obj);
 	} else if (!strcmp(argv[2], "state")) {

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.159
retrieving revision 1.160
diff -u -d -r1.159 -r1.160
--- object.cpp	11 Jan 2004 20:15:05 -0000	1.159
+++ object.cpp	11 Jan 2004 20:42:40 -0000	1.160
@@ -851,25 +851,19 @@
 }
 
 /**
- * Force a screen redraw at the location of the specifed object. This is
- * typically called when an object was just removed from the room, or when its
- * state changed.
+ * Mark the rectangle covered by the given object as dirty, thus eventually
+ * ensuring a redraw of that area. This function is typically invoked when an
+ * object gets removed from the current room, or when its state changed.
  */
-void ScummEngine::forceObjectRedraw(int obj) {
-	int i, j, strip;
+void ScummEngine::markObjectRectAsDirty(int obj) {
+	int i, strip;
 
 	for (i = 1; i < _numLocalObjects; i++) {
 		if (_objs[i].obj_nr == (uint16)obj) {
 			if (_objs[i].width != 0) {
-				for (j = 0; j < _objs[i].width / 8; j++) {
-					strip = (_objs[i].x_pos / 8) + j;
-
-					// Clip value
-					if (strip < _screenStartStrip)
-						continue;
-					if (strip > _screenEndStrip)
-						break;
-
+				const int minStrip = MAX(_screenStartStrip, _objs[i].x_pos / 8);
+				const int maxStrip = MIN(_screenEndStrip+1, _objs[i].x_pos / 8 + _objs[i].width / 8);
+				for (strip = minStrip; strip < maxStrip; strip++) {
 					setGfxUsageBit(strip, USAGE_BIT_DIRTY);
 				}
 			}

Index: script_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v2.cpp,v
retrieving revision 2.228
retrieving revision 2.229
diff -u -d -r2.228 -r2.229
--- script_v2.cpp	11 Jan 2004 20:15:05 -0000	2.228
+++ script_v2.cpp	11 Jan 2004 20:42:40 -0000	2.229
@@ -468,14 +468,14 @@
 void ScummEngine_v2::o2_setState08() {
 	int obj = getVarOrDirectWord(PARAM_1);
 	putState(obj, getState(obj) | 0x08);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	clearDrawObjectQueue();
 }
 
 void ScummEngine_v2::o2_clearState08() {
 	int obj = getVarOrDirectWord(PARAM_1);
 	putState(obj, getState(obj) & ~0x08);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	clearDrawObjectQueue();
 }
 
@@ -1449,7 +1449,7 @@
 		return;											/* object twice */
 
 	addObjectToInventory(obj, _roomResource);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	putOwner(obj, VAR(VAR_EGO));
 	putState(obj, getState(obj) | 0xA);
 	clearDrawObjectQueue();

Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.222
retrieving revision 1.223
diff -u -d -r1.222 -r1.223
--- script_v5.cpp	11 Jan 2004 20:15:05 -0000	1.222
+++ script_v5.cpp	11 Jan 2004 20:42:40 -0000	1.223
@@ -1592,7 +1592,7 @@
 	putOwner(obj, VAR(VAR_EGO));
 	putClass(obj, kObjectClassUntouchable, 1);
 	putState(obj, 1);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	clearDrawObjectQueue();
 	runInventoryScript(1);
 }
@@ -2174,7 +2174,7 @@
 	obj = getVarOrDirectWord(PARAM_1);
 	state = getVarOrDirectByte(PARAM_2);
 	putState(obj, state);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	if (_BgNeedsRedraw)
 		clearDrawObjectQueue();
 }
@@ -2911,7 +2911,7 @@
 
 	// warning("adding %d from %d to inventoryOld", obj, _currentRoom);
 	addObjectToInventory(obj, _roomResource);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	putOwner(obj, VAR(VAR_EGO));
 	putClass(obj, kObjectClassUntouchable, 1);
 	putState(obj, 1);

Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.251
retrieving revision 1.252
diff -u -d -r1.251 -r1.252
--- script_v6.cpp	11 Jan 2004 20:15:05 -0000	1.251
+++ script_v6.cpp	11 Jan 2004 20:42:40 -0000	1.252
@@ -916,7 +916,7 @@
 	}
 
 	putState(obj, state);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	if (_BgNeedsRedraw)
 		clearDrawObjectQueue();
 }
@@ -1151,7 +1151,7 @@
 	putOwner(obj, VAR(VAR_EGO));
 	putClass(obj, kObjectClassUntouchable, 1);
 	putState(obj, 1);
-	forceObjectRedraw(obj);
+	markObjectRectAsDirty(obj);
 	clearDrawObjectQueue();
 	runInventoryScript(obj);									/* Difference */
 }

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.358
retrieving revision 1.359
diff -u -d -r1.358 -r1.359
--- scumm.h	11 Jan 2004 20:15:05 -0000	1.358
+++ scumm.h	11 Jan 2004 20:42:40 -0000	1.359
@@ -672,7 +672,7 @@
 	byte _numObjectsInRoom;
 
 	void setupRoomObject(ObjectData *od, const byte *room, const byte *searchptr = NULL);
-	void forceObjectRedraw(int obj);
+	void markObjectRectAsDirty(int obj);
 	void loadFlObject(uint object, uint room);
 	void nukeFlObjects(int min, int max);
 	int findFlObjectSlot();





More information about the Scummvm-git-logs mailing list