[Scummvm-cvs-logs] CVS: scummvm/queen logic.h,1.20,1.21 logic.cpp,1.30,1.31

Gregory Montoir cyx at users.sourceforge.net
Sun Oct 12 09:39:04 CEST 2003


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

Modified Files:
	logic.h logic.cpp 
Log Message:
minor additions for DISP_ROOM

Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- logic.h	12 Oct 2003 13:16:35 -0000	1.20
+++ logic.h	12 Oct 2003 16:37:56 -0000	1.21
@@ -167,7 +167,6 @@
 
 	Resource *_resource;
 	Graphics *_graphics;
-public:
 	Walk *_walk;
 
 	void initialise();

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- logic.cpp	12 Oct 2003 13:16:35 -0000	1.30
+++ logic.cpp	12 Oct 2003 16:37:56 -0000	1.31
@@ -736,16 +736,62 @@
 	warning("Logic::roomSetupObjects() not fully implemented");
 
 	uint16 i;
+	// furniture frames are reserved in ::roomSetupFurniture(), we append objects 
+	// frames after the furniture ones.
 	uint16 curImage = 36 + FRAMES_JOE_XTRA + _numFurnitureStatic + _numFurnitureAnimatedLen;
 	uint16 firstRoomObj = _roomData[_currentRoom] + 1;
 	uint16 lastRoomObj = _roomData[_currentRoom + 1];
+	uint16 numObjectStatic = 0;
+	uint16 numObjectAnimated = 0;
+	uint16 curBob;
 
+	// invalidates all Bobs for persons (except Joe's one)
 	for (i = 1; i <= 3; ++i) {
 		_graphics->bob(i)->active = false;
 	}
 
-	// TODO: bobs static/animated
-	// TODO: bobs persons
+	// static/animated Bobs
+	for (i = firstRoomObj; i <= lastRoomObj; ++i) {
+		int16 obj = _objectData[i].image;
+		// setup blanks bobs for turned off objects (in case 
+		// you turn them on again)
+		if (obj == -1) {
+			// static OFF Bob
+			curBob = 20 + _numFurnitureStatic + numObjectStatic;
+			++numObjectStatic;
+			// create a blank frame for the for the OFF object
+			++_numFrames;
+			++curImage;
+		}
+		else if(obj == -2) {
+			// animated OFF Bob
+			curBob = 5 + _numFurnitureAnimated + numObjectAnimated;
+			++numObjectAnimated;
+		}
+		else if(obj > 0 && obj < 5000) {
+			// FIXME: need GRAPHIC_ANIM stuff
+			warning("Logic::roomSetupObjects() - Object number %d no handled", obj);
+		}
+
+	}
+
+	// persons Bobs
+	uint16 bobNum = 0;
+	for (i = firstRoomObj; i <= lastRoomObj; ++i) {
+		ObjectData *pod = &_objectData[i];
+		if (pod->image == -3 || pod->image == -4) {
+			++bobNum;
+			uint16 noun = i - firstRoomObj;
+			// FIXME: need Person stuff
+//			if (pod->name > 0) {
+//				curImage = personSetup(noun, curImage);
+//			}
+//			else {
+//				curImage = personAllocate(noun, curImage);
+//			}
+			warning("Logic::roomSetupObjects() - Person object number %d no handled", noun);
+		}
+	}
 
 	// paste downs list
 	++curImage;





More information about the Scummvm-git-logs mailing list