[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