[Scummvm-cvs-logs] CVS: scummvm/queen structs.h,1.16,1.17 logic.h,1.45,1.46 logic.cpp,1.61,1.62 xref.txt,1.21,1.22

Gregory Montoir cyx at users.sourceforge.net
Sun Oct 26 05:58:02 CET 2003


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

Modified Files:
	structs.h logic.h logic.cpp xref.txt 
Log Message:
cleanup, add comments

Index: structs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/structs.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- structs.h	24 Oct 2003 08:55:13 -0000	1.16
+++ structs.h	26 Oct 2003 13:54:26 -0000	1.17
@@ -144,7 +144,7 @@
 
 
 struct ObjectData {
-	//! entry in OBJECT_NAME (<0: object is hidden)
+	//! entry in OBJECT_NAME (<0: object is hidden, 0: object has been deleted)
 	int16 name;
 	//! coordinates of object
 	uint16 x, y;
@@ -156,7 +156,7 @@
 	uint16 room;
 	//! state of the object (grab direction, on/off, default command...)
 	uint16 state;
-	//! entry in GraphicData (can be negative)
+	//! entry in GraphicData
 	/*!
 		<table>
 			<tr>
@@ -164,6 +164,10 @@
 				<td>description</td>
 			</tr>
 			<tr>
+				<td>]-4000..-10]</td>
+				<td>graphic image turned off</td>
+			</tr>
+			<tr>
 				<td>-4</td>
 				<td>person object (right facing)</td>
 			</tr>
@@ -180,7 +184,11 @@
 				<td>static bob (off)</td>
 			</tr>
 			<tr>
-				<td>[0..5000]</td>
+				<td>0</td>
+				<td>object deleted</td>
+			</tr>
+			<tr>
+				<td>]0..5000]</td>
 				<td>static or animated bob (on)</td>
 			</tr>
 			<tr>
@@ -249,7 +257,7 @@
 
 struct ItemData {
 	//! entry in OBJECT_NAME
-	int16 item;
+	int16 name;
 	//! entry in OBJECT_DESCR
 	uint16 description;
 	//! state of the object
@@ -260,7 +268,7 @@
 	int16 sfxDescription;
 
 	void readFrom(byte *&ptr) {
-		item = (int16)READ_BE_UINT16(ptr); ptr += 2;
+		name = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		description = READ_BE_UINT16(ptr); ptr += 2;
 		state = READ_BE_UINT16(ptr); ptr += 2;
 		bobFrame = READ_BE_UINT16(ptr); ptr += 2;
@@ -326,8 +334,8 @@
 	bool setItems;
 	//! if set, P1_SET_CONDITIONS must be called (using CmdGameState)
 	bool setConditions;
-	//! graphic image of object
-	int16 image;
+	//! graphic image order
+	int16 imageOrder;
 	//! special section to execute
 	/*!
 		refer to execute.c l.423-451
@@ -365,18 +373,18 @@
 		setObjects = READ_BE_UINT16(ptr) != 0; ptr += 2;
 		setItems = READ_BE_UINT16(ptr) != 0; ptr += 2;
 		setConditions = READ_BE_UINT16(ptr) != 0; ptr += 2;
-		image = (int16)READ_BE_UINT16(ptr); ptr += 2;
+		imageOrder = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		specialSection = (int16)READ_BE_UINT16(ptr); ptr += 2;
 	}
 
 	bool match(Verb v, int16 obj1, int16 obj2) const {
-		return verb == verb && nounObj1 == obj1 && nounObj2 == obj2;
+		return verb == v && nounObj1 == obj1 && nounObj2 == obj2;
 	}
 };
 
 
 struct CmdArea {
-	//! identifier of the command
+	//! CmdListData number
 	int16 id;
 	//! area to turn off/on (<0: off, >0: on)
 	int16 area;
@@ -392,10 +400,12 @@
 
 
 struct CmdObject {
-	//! identifier of the command
+	//! CmdListData number
 	int16 id;
-	int16 dstObj; // >0: show, <0: hide
-	int16 srcObj; // >0: copy from srcObj, 0: nothing, -1: delete dstObj
+	//! >0: show, <0: hide
+	int16 dstObj;
+	//! >0: copy from srcObj, 0: nothing, -1: delete dstObj
+	int16 srcObj;
 
 	void readFrom(byte *&ptr) {
 		id = (int16)READ_BE_UINT16(ptr); ptr += 2;
@@ -406,10 +416,12 @@
 
 
 struct CmdInventory {
-	//! identifier of the command
+	//! CmdListData number
 	int16 id;
-	int16 dstItem; // <0: delete, >0: add
-	int16 srcItem; // >0: valid
+	//! <0: delete, >0: add
+	int16 dstItem;
+	//! >0: valid
+	int16 srcItem;
 
 	void readFrom(byte *&ptr) {
 		id = (int16)READ_BE_UINT16(ptr); ptr += 2;
@@ -420,17 +432,17 @@
 
 
 struct CmdGameState {
-	//! identifier of the command
+	//! CmdListData number
 	int16 id;
 	int16 gameStateSlot;
 	int16 gameStateValue;
-	int16 speakValue;
+	uint16 speakValue;
 
 	void readFrom(byte *&ptr) {
 		id = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		gameStateSlot = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		gameStateValue = (int16)READ_BE_UINT16(ptr); ptr += 2;
-		speakValue = (int16)READ_BE_UINT16(ptr); ptr += 2;
+		speakValue = READ_BE_UINT16(ptr); ptr += 2;
 	}
 };
 

Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- logic.h	25 Oct 2003 20:26:50 -0000	1.45
+++ logic.h	26 Oct 2003 13:54:26 -0000	1.46
@@ -28,10 +28,6 @@
 
 namespace Queen {
 
-#define MAX_ZONES_NUMBER	32
-#define MAX_AREAS_NUMBER    11
-#define JOE_RESPONSE_MAX	40
-
 enum RoomDisplayMode {
 	RDM_FADE_NOJOE  = 0, // fade in, no Joe
 	RDM_FADE_JOE    = 1, // Joe is to be displayed
@@ -58,29 +54,59 @@
 	int talkSpeed;
 };
 
+
+/*!
+	Each object/item in game has a state field. 
+	(refer to ObjectData and ItemData).
+	
+	<table>
+		<tr>
+			<td>Name</td>
+			<td>Bits</td>
+			<td>Description</td>
+		</tr>	
+		<tr>
+			<td>USE</td>
+			<td>10</td>
+			<td>Use</td>
+		</tr>
+		<tr>
+			<td>TALK</td>
+			<td>9</td>
+			<td>Talk</td>
+		</tr>
+		<tr>
+			<td>ON</td>
+			<td>8</td>
+			<td>On/Off</td>
+		</tr>
+		<tr>
+			<td>DEF</td>
+			<td>7,6,5,4</td>
+			<td>Default verb command</td>
+		</tr>
+		<tr>
+			<td>DIR</td>
+			<td>3,2</td>
+			<td>Direction faced</td>
+		</tr>
+		<tr>
+			<td>GRAB</td>
+			<td>1,0</td>
+			<td>Grab Direction</td>
+		</tr>
+	</table>
+*/
 struct State {
 
-	//! FIND_STATE(state, "DIR");
 	static Direction findDirection(uint16 state);
-
-	//! FIND_STATE(state, "TALK");
 	static StateTalk findTalk(uint16 state);
-
-	//! FIND_STATE(state, "GRAB");
 	static StateGrab findGrab(uint16 state);
+	static StateOn   findOn(uint16 state);
+	static Verb      findDefaultVerb(uint16 state);
+	static StateUse  findUse(uint16 state);
 
-	//! FIND_STATE(state, "ON");
-	static StateOn findOn(uint16 state);
-
-	//! FIND_STATE(state, "DEF");
-	static Verb findDefaultVerb(uint16 state);
-
-	static StateUse findUse(uint16 state);
-
-	//! ALTER_STATE(state, "ON");
 	static void alterOn(uint16 *objState, StateOn state);
-
-	//! ALTER_STATE(state, verb);
 	static void alterDefaultVerb(uint16 *objState, Verb v);
 };
 
@@ -217,78 +243,127 @@
 	Walk *walk() { return _walk; }
 	Display *display() { return _display; }
 
-	uint16 findObjectFromZone(uint16 zoneNum);
+	uint16 findObjectRoomNumber(uint16 zoneNum) const;
+	uint16 findObjectGlobalNumber(uint16 zoneNum) const;
 
 	const char *verbName(Verb v) const;
 
 	void update();
 
-protected:
 
-	GameSettings _settings;
+	enum {
+		MAX_ZONES_NUMBER   = 32,
+		MAX_AREAS_NUMBER   = 11,
+		JOE_RESPONSE_MAX   = 40,
+		DEFAULT_TALK_SPEED = 7,
+		GAME_STATE_COUNT   = 211
+	};
+
+
+protected:
 
 	void initialise();
 
+	//! Contents of queen.jas file
 	uint8 *_jas;
-	uint16 _numRooms;
+
 	uint16 _currentRoom;
-	uint16 _oldRoom;	
-	uint16 _newRoom;	
-	uint16 _numNames;
-	uint16 _numObjects;
-	uint16 _numDescriptions;
-	uint16 _numItems;
-	uint16 _numGraphics;
+	uint16 _oldRoom;
+	uint16 _newRoom;
 
-	uint16 _numWalkOffs;
-	uint16 _numObjDesc;
-	uint16 _numCmdList;	//COM_LIST_MAX
-	uint16 _numCmdArea;	//COM_A_MAX
-	uint16 _numCmdObject;	//COM_O_MAX
-	uint16 _numCmdInventory;	//COM_I_MAX
-	uint16 _numCmdGameState;	//COM_G_MAX
-	uint16 _numFurniture;	//FURN_DATA_MAX
-	uint16 _numActors;	//ACTOR_DATA_MAX
-	uint16 _numAAnim;	//A_ANIM_MAX
-	uint16 _numAName;	//A_NAME_MAX
-	uint16 _numAFile;	//A_FILE_MAX
-	uint16 _numGraphicAnim;	//GRAPHIC_ANIM_MAX
+	//! Total number of room in game
+	uint16 _numRooms;
 
+	//! First object number in room
 	uint16 *_roomData;
+
+	//! Background music to play in room
 	uint16 *_sfxName;
+
+	//! Number of objects in room
 	int16 *_objMax;
-	int16 *_areaMax;
+
+	//! Bounding box of object
 	Box *_objectBox;
+
+	//! Inventory items
 	ItemData *_itemData;
+	uint16 _numItems;
+
 	GraphicData *_graphicData;
+	uint16 _numGraphics;
+
 	ObjectData *_objectData;
+	uint16 _numObjects;
+
 	ObjectDescription *_objectDescription;
+	uint16 _numDescriptions;
+
 	ActorData *_actorData;
+	uint16 _numActors;	//ACTOR_DATA_MAX
+
+	//! Areas in room
 	Area (*_area)[MAX_AREAS_NUMBER];
+
+	//! Number of areas in room
+	int16 *_areaMax;
+
+	//! Walk off point for an object
 	WalkOffData *_walkOffData;
+	uint16 _numWalkOffs;
+
 	CmdListData *_cmdList;
+	uint16 _numCmdList;	//COM_LIST_MAX
+
 	CmdArea *_cmdArea;
+	uint16 _numCmdArea;	//COM_A_MAX
+
 	CmdObject *_cmdObject;
-	CmdInventory *_cmdInventory;	
+	uint16 _numCmdObject;	//COM_O_MAX
+
+	CmdInventory *_cmdInventory;
+	uint16 _numCmdInventory;	//COM_I_MAX
+
 	CmdGameState *_cmdGameState;
+	uint16 _numCmdGameState;	//COM_G_MAX
+
 	FurnitureData *_furnitureData;
+	uint16 _numFurniture;	//FURN_DATA_MAX
+	
 	GraphicAnim *_graphicAnim;
+	uint16 _numGraphicAnim;	//GRAPHIC_ANIM_MAX
+
+	//! Current areas in room
 	ZoneSlot _zones[2][MAX_ZONES_NUMBER];
+
+	//! Actor position in room is _walkOffData[_entryObj]
 	uint16 _entryObj;
 
+	//! Object description (Look At)
 	char **_objDescription;	//OBJECT_DESCRstr
+	uint16 _numObjDesc;
+
 	char **_objName;	//OBJECT_NAMEstr
+	uint16 _numNames;
+
+	//! Room name, prefix for data files (PCX, LUM...)
 	char **_roomName;	//ROOM_NAMEstr	
+
 	char *_verbName[13];	//VERB_NAMEstr
+
 	char *_joeResponse[JOE_RESPONSE_MAX + 1];	//JOE_RESPstr
-	char **_aAnim;	//A_ANIMstr
-	char **_aName;	//A_NAMEstr
-	char **_aFile;	//A_FILEstr
 
-	enum {
-		DEFAULT_TALK_SPEED = 7,
-		GAME_STATE_COUNT = 211
-	};
+	//! Actor animation string
+	char **_aAnim;
+	uint16 _numAAnim;	//A_ANIM_MAX
+
+	//! Actor name
+	char **_aName;
+	uint16 _numAName;	//A_NAME_MAX
+
+	//! Actor filename
+	char **_aFile;
+	uint16 _numAFile;	//A_FILE_MAX
 
 	struct {
 		uint16	x, y;
@@ -316,6 +391,8 @@
 
 	//! Describe a string based animation (30 frames maximum, bob number must be < 17)
 	AnimFrame _newAnim[17][30];
+
+	GameSettings _settings;
 
 	Resource *_resource;
 	Graphics *_graphics;

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -d -r1.61 -r1.62
--- logic.cpp	25 Oct 2003 20:26:50 -0000	1.61
+++ logic.cpp	26 Oct 2003 13:54:26 -0000	1.62
@@ -1915,7 +1915,7 @@
 
 	uint16 name;
 	if (obj < 0) {
-		name = _itemData[ABS(obj)].item;
+		name = _itemData[ABS(obj)].name;
 	}
 	else {
 		name = _objectData[obj].name;
@@ -1931,7 +1931,7 @@
 }
 
 
-uint16 Logic::findObjectFromZone(uint16 zoneNum) {
+uint16 Logic::findObjectRoomNumber(uint16 zoneNum) const {
 
 	// l.316-327 select.c
 	uint16 noun = zoneNum;
@@ -1948,6 +1948,12 @@
 }
 
 
+uint16 Logic::findObjectGlobalNumber(uint16 zoneNum) const {
+
+	return _roomData[_currentRoom] + findObjectRoomNumber(zoneNum);
+}
+
+
 const char *Logic::verbName(Verb v) const {
 
 	if (v != VERB_NONE && v < 13) {
@@ -1958,7 +1964,6 @@
 		return NULL;
 	}
 }
-
 
 
 void Logic::update() {

Index: xref.txt
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/xref.txt,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- xref.txt	25 Oct 2003 20:26:50 -0000	1.21
+++ xref.txt	26 Oct 2003 13:54:26 -0000	1.22
@@ -18,6 +18,10 @@
 CLEAR_COMMAND()				Command::clear
 EXECUTE_ACTION()			Command::executeCurrentAction
 FIND_DEFAULT()				Command::findDefault
+LOOK()
+LOOK_ICON()
+LOOK_ITEM()					Command::lookCurrentItem
+LOOK_ROOM()
 OPEN_CLOSE_OTHER()			Command::openOrCloseAssociatedObject
 P1_SET_CONDITIONS()			Command::setConditions
 P2_SET_AREAS()				Command::setAreas
@@ -30,10 +34,20 @@
 -
 ACTION,ACTION2				Command::_action*
 CLEVEL						Command::_commandLevel
+COM_A						Logic::_cmdArea
+COM_A_MAX					Logic::_numCmdArea
+COM_O						Logic::_cmdObject
+COM_O_MAX					Logic::_numCmdObject
+COM_G						Logic::_cmdGameState
+COM_G_MAX					Logic::_numCmdGameState
+COM_I						Logic::_cmdInventory
+COM_I_MAX					Logic::_numCmdInventory
+COM_LIST					Logic::_cmdList
+COM_LIST_MAX				Logic::_numCmdList
 COMMANDstr					Command::_command
 DEFCOMM						Command::_defaultVerb
 OLDVERB,VERB				Command::_*verb*
-OLDNOUN,NOUN,NOUN2			Command::_*old*
+OLDNOUN,NOUN,NOUN2			Command::_*noun*
 PARSE						Command::_parse
 SUBJ1,SUBJ2,SUBJECT			Command::_subject*
 
@@ -194,10 +208,6 @@
 FIND_GRAPHIC()				Logic::graphicData
 FIND_SCALE()				Logic::findScale
 FIND_VERB()					Logic::findVerb
-LOOK()
-LOOK_ICON()
-LOOK_ITEM()
-LOOK_ROOM()
 P3_COPY_FROM()				Cutaway::objectCopy
 R_MAP()						(handle map 'm1')
 REDISP_OBJECT()				Logic::roomRefreshObject
@@ -218,16 +228,6 @@
 ACTOR_DATA_MAX				Logic::_numActors
 AREA						Logic::_area
 AREAMAX						Logic::_areaMax
-COM_A						Logic::_cmdArea
-COM_A_MAX					Logic::_numCmdArea
-COM_O						Logic::_cmdObject
-COM_O_MAX					Logic::_numCmdObject
-COM_G						Logic::_cmdGameState
-COM_G_MAX					Logic::_numCmdGameState
-COM_I						Logic::_cmdInventory
-COM_I_MAX					Logic::_numCmdInventory
-COM_LIST					Logic::_cmdList
-COM_LIST_MAX				Logic::_numCmdList
 DESCTOT						Logic::_numDescriptions
 ENTRY_OBJ					Logic::_entryObj
 FMAX						Logic::_numFurnitureStatic
@@ -451,7 +451,7 @@
 
 
 (NO NEED TO BE GLOBAL)
-===============
+======================
 Nstr,F1,F2,F3,F4,F5,F6,F7,F8,SF,BF,AS,MS // MOVE_OTHER (struct movdata *)
 Nstr,S,F,BODY,BF,RF,AF,SANIMstr,FF // FIND_SACTION (struct action *)
 CURRBOB // SETUP_FURNITURE, REDISP_OBJECT, DISP_OBJECTS





More information about the Scummvm-git-logs mailing list