[Scummvm-cvs-logs] CVS: scummvm/queen logic.cpp,1.20,1.21 logic.h,1.11,1.12 structs.h,1.1,1.2

Joost Peters joostp at users.sourceforge.net
Mon Oct 6 06:22:04 CEST 2003


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

Modified Files:
	logic.cpp logic.h structs.h 
Log Message:
some additions + small readability rewrite

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- logic.cpp	6 Oct 2003 10:27:22 -0000	1.20
+++ logic.cpp	6 Oct 2003 13:20:29 -0000	1.21
@@ -50,7 +50,6 @@
 	_numDescriptions = READ_BE_UINT16(ptr);
 	ptr += 2;
 	
-
 	//Object data
 	_objectData = new ObjectData[_numObjects + 1];
 	//clear first object
@@ -62,7 +61,7 @@
 	_objectData[0].room = 0;
 	_objectData[0].state = 0;
 	_objectData[0].image = 0;	
-	for (i = 1; i < (_numObjects + 1); i++) {
+	for (i = 1; i <= _numObjects; i++) {
 		_objectData[i].name = (int16)READ_BE_UINT16(ptr);
 		ptr += 2;
 		_objectData[i].x = READ_BE_UINT16(ptr);
@@ -83,7 +82,7 @@
 	
 	//Room data
 	_roomData = new uint16[_numRooms + 2];
-	for (i = 1; i < (_numRooms + 2); i++) {
+	for (i = 1; i <= (_numRooms + 1); i++) {
 		_roomData[i] = READ_BE_UINT16(ptr);
 		ptr += 2;
 	}
@@ -98,7 +97,7 @@
 	else {
 		_sfxName = new uint16[_numRooms + 1];
 
-		for (i = 1; i < (_numRooms + 1); i++) {
+		for (i = 1; i <= _numRooms; i++) {
 			_sfxName[i] = READ_BE_UINT16(ptr);
 			ptr += 2;
 		}	
@@ -108,15 +107,19 @@
 	_numItems = READ_BE_UINT16(ptr);
 	ptr += 2;
 
-	_itemData = new uint16[_numItems + 1][5];
-	
-	for (i = 1; i < (_numItems + 1); i++) {
-		_itemData[i][0] = READ_BE_UINT16(ptr);
+	_itemData = new ItemData[_numItems + 1];	
+
+	for (i = 1; i <= _numItems; i++) {
+		_itemData[i].name = (int16)READ_BE_UINT16(ptr);
+		ptr += 2;
+		_itemData[i].description = (int16)READ_BE_UINT16(ptr);
+		ptr += 2;
+		_itemData[i].state = (int16)READ_BE_UINT16(ptr);
+		ptr += 2;
+		_itemData[i].bobFrame = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_itemData[i].sfxDescription = READ_BE_UINT16(ptr);
 		ptr += 2;
-		for (j = 1; j < 5; j++) {
-		       _itemData[i][j] = READ_BE_UINT16(ptr);
-		       ptr += 2;
-		}
 	}
 		
 	//Graphic Image Data
@@ -126,7 +129,7 @@
 
 	_graphicData = new GraphicData[_numGraphics + 1];
 
-	for (i = 1; i < (_numGraphics + 1); i++) {
+	for (i = 1; i <= _numGraphics; i++) {
 		_graphicData[i].x = READ_BE_UINT16(ptr);
 		ptr += 2;
 		_graphicData[i].y = READ_BE_UINT16(ptr);
@@ -143,30 +146,67 @@
 	_areaMax  = new int16[_numRooms + 1];
 	_area     = new int16[_numRooms + 1][11][8];
 
-	for (i = 1; i < (_numRooms + 1); i++) {
+	for (i = 1; i <= _numRooms; i++) {
 		_objMax[i] = (int16)READ_BE_UINT16(ptr);
 		ptr += 2;
 		_areaMax[i] = (int16)READ_BE_UINT16(ptr);
 		ptr += 2;
 		
-		for (j = 1; j < (_areaMax[i] + 1); j++)
+		for (j = 1; j <= _areaMax[i]; j++)
 			for (k = 0; k < 8; k++) {
-				if (j > 11)
-					error("j (%i) too large, _areaMax[i] = %i", j, _areaMax[i]);
+				assert(j < 12);
 				_area[i][j][k] = READ_BE_UINT16(ptr);
 				ptr += 2;
 			}
 				
 	}	
 	
-	_objectBox = new uint16[_numObjects + 1][4];
-	for (i = 1; i < (_numObjects + 1); i++)
-		for (j = 0; j < 4; j++) {
-			_objectBox[i][j] = READ_BE_UINT16(ptr);
-			ptr += 2;
-		}
+	_objectBox = new Box[_numObjects + 1];
+	for (i = 1; i <= _numObjects; i++) {
+		_objectBox[i].x1 = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_objectBox[i].y1 = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_objectBox[i].x2 = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_objectBox[i].y2 = READ_BE_UINT16(ptr);
+		ptr += 2;
+	}
+		
+	//Walk OFF Data
+
+	_numWalkOffs = READ_BE_UINT16(ptr);
+	ptr += 2;
+
+	_walkOffData = new WalkOffData[_numWalkOffs + 1];
+	for (i = 1; i <= _numWalkOffs; i++) {
+		_walkOffData[i].entryObj = (int16)READ_BE_UINT16(ptr);
+		ptr += 2;
+		_walkOffData[i].x = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_walkOffData[i].y = READ_BE_UINT16(ptr);
+		ptr += 2;
+	}
+
+	//Special Object Descriptions
+
+	_numObjDesc = READ_BE_UINT16(ptr);
+	ptr += 2;
+
+	_objectDescription = new ObjectDescription[_numObjDesc + 1];
+	for (i = 1; i <= _numObjDesc; i++) {
+		_objectDescription[i].field1 = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_objectDescription[i].field2 = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_objectDescription[i].field3 = READ_BE_UINT16(ptr);
+		ptr += 2;
+		_objectDescription[i].field4 = READ_BE_UINT16(ptr);
+		ptr += 2;
+	}
+
+	//Command List Data
 
-	_numWalkOffs = 0;
 }
 
 uint16 Logic::currentRoom() {
@@ -201,8 +241,8 @@
 	return _numWalkOffs;
 }
 
-uint16 *Logic::walkOffData(int index) {
-	return _walkOffData[index];
+WalkOffData *Logic::walkOffData(int index) {
+	return &_walkOffData[index];
 }
 
 GraphicData *Logic::findGraphic(int index) {

Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- logic.h	5 Oct 2003 16:07:07 -0000	1.11
+++ logic.h	6 Oct 2003 13:20:29 -0000	1.12
@@ -51,7 +51,7 @@
 
 	int16 *area(int index, int subIndex);
 	uint16 walkOffCount();
-	uint16 *walkOffData(int index);
+	WalkOffData *walkOffData(int index);
 
 	int16 gameState(int index);
 	void gameState(int index, int16 newValue);
@@ -70,19 +70,21 @@
 
 	uint16 _numObjectBoxes;
 	uint16 _numWalkOffs;
+	uint16 _numObjDesc;
 
 	uint16 *_roomData;
 	uint16 *_sfxName;
 	int16 *_objMax;
 	int16 *_areaMax;
-	uint16 (*_objectBox)[4]; // FIXME: Box *_objectBox;
-	uint16 (*_itemData)[5]; // FIXME: ItemData *_itemData;
+	Box *_objectBox;
+	ItemData *_itemData;
 	GraphicData *_graphicData;
 	ObjectData *_objectData;
+	ObjectDescription *_objectDescription;
 	uint16 (*_actorData)[12]; // FIXME: ActorData *_actorData;
 	int16 (*_area)[11][8]; // FIXME: Area *_area[11];
-	uint16 (*_walkOffData)[3]; // FIXME: WalkOffData *_walkOffData;
-
+	WalkOffData *_walkOffData;
+	
 	enum {
 		GAME_STATE_COUNT = 211
 	};

Index: structs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/structs.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- structs.h	4 Oct 2003 11:39:53 -0000	1.1
+++ structs.h	6 Oct 2003 13:20:29 -0000	1.2
@@ -44,7 +44,7 @@
 
 
 struct WalkOffData {
-	int16 entryobj;
+	int16 entryObj;
 	uint16 x;
 	uint16 y;
 };
@@ -66,6 +66,14 @@
 	uint16 room;
 	int16 state;
 	int16 image;
+};
+
+
+struct ObjectDescription {
+	uint16 field1;
+	uint16 field2;
+	uint16 field3;
+	uint16 field4;
 };
 
 





More information about the Scummvm-git-logs mailing list