[Scummvm-cvs-logs] CVS: scummvm/queen logic.h,1.5,1.6 logic.cpp,1.10,1.11

David Eriksson twogood at users.sourceforge.net
Thu Oct 2 12:21:04 CEST 2003


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv2276

Modified Files:
	logic.h logic.cpp 
Log Message:
Fix bugs, add warnings.


Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- logic.h	2 Oct 2003 14:44:51 -0000	1.5
+++ logic.h	2 Oct 2003 19:20:00 -0000	1.6
@@ -32,7 +32,7 @@
 };
 
 struct ObjectData {
-	uint16 name;
+	int16 name;
 	uint16 x;
 	uint16 y;
 	uint16 description;

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- logic.cpp	2 Oct 2003 14:55:28 -0000	1.10
+++ logic.cpp	2 Oct 2003 19:20:00 -0000	1.11
@@ -21,7 +21,8 @@
 
 #include "queen/logic.h"
 
-QueenLogic::QueenLogic(QueenResource *resource) : _resource(resource) {
+QueenLogic::QueenLogic(QueenResource *resource) 
+	: _resource(resource), _maxStaticFrame(0), _maxAnimatedFrame(0) {
 	_jas = _resource->loadFile("QUEEN.JAS", 20);
 	
 	initialise();
@@ -61,21 +62,21 @@
 	_objectData[0].state = 0;
 	_objectData[0].image = 0;	
 	for (i = 1; i < (_numObjects + 1); i++) {
-		_objectData[0].name = READ_BE_UINT16(ptr);
+		_objectData[i].name = (int16)READ_BE_UINT16(ptr);
 		ptr += 2;
-		_objectData[0].x = READ_BE_UINT16(ptr);
+		_objectData[i].x = READ_BE_UINT16(ptr);
 		ptr += 2;
-		_objectData[0].y = READ_BE_UINT16(ptr);
+		_objectData[i].y = READ_BE_UINT16(ptr);
 		ptr += 2;
-		_objectData[0].description = READ_BE_UINT16(ptr);
+		_objectData[i].description = READ_BE_UINT16(ptr);
 		ptr += 2;
-		_objectData[0].entryObj = (int16)READ_BE_UINT16(ptr);
+		_objectData[i].entryObj = (int16)READ_BE_UINT16(ptr);
 		ptr += 2;
-		_objectData[0].room = READ_BE_UINT16(ptr);
+		_objectData[i].room = READ_BE_UINT16(ptr);
 		ptr += 2;
-		_objectData[0].state = (int16)READ_BE_UINT16(ptr);
+		_objectData[i].state = (int16)READ_BE_UINT16(ptr);
 		ptr += 2;
-		_objectData[0].image = (int16)READ_BE_UINT16(ptr);
+		_objectData[i].image = (int16)READ_BE_UINT16(ptr);
 		ptr += 2;
 	}
 #else
@@ -234,7 +235,17 @@
 	uint16 bobnum = 0;
 	uint16 bobtype = 0; // 1 for animated, 0 for static
 
+	if (obj > _numObjects) {
+		debug(0, "Object index (%i) > _numObjects (%i)", obj, _numObjects);
+		abort();
+	}
+
 	uint16 room = _objectData[obj].room;
+
+	if (room >= _numRooms) {
+		warning("room (%i) > _numRooms (%i)", room, _numRooms);
+	}
+	
 	int16 img = _objectData[obj].image;
 	if(img != 0) {
 		if(img == -3 || img == -4) {
@@ -279,6 +290,10 @@
 					if(img > 5000) {
 						img -= 5000;
 					}
+
+					if (img >= _numGraphics)
+						warning("img (%i) >= _numGraphics (%i)", img, _numGraphics);
+					
 					if(_graphicData[img].lastFrame != 0) {
 						++idxAnimated;
 					}





More information about the Scummvm-git-logs mailing list