[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.411,2.412 object.cpp,1.215,1.216 scumm.h,1.555,1.556
Max Horn
fingolfin at users.sourceforge.net
Fri Apr 1 05:06:47 CEST 2005
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.410,2.411 script_v100he.cpp,2.107,2.108 script_v90he.cpp,2.205,2.206 sprite_he.cpp,1.114,1.115 sprite_he.h,1.30,1.31 wiz_he.cpp,2.34,2.35 wiz_he.h,2.14,2.15
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.336,1.337
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9802
Modified Files:
intern.h object.cpp scumm.h
Log Message:
Turned setupRoomObject into a virtual method
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.411
retrieving revision 2.412
diff -u -d -r2.411 -r2.412
--- intern.h 1 Apr 2005 12:43:12 -0000 2.411
+++ intern.h 1 Apr 2005 13:05:38 -0000 2.412
@@ -197,6 +197,16 @@
void readMAXS();
void readGlobalObjects();
+
+ void setupRoomObject(ObjectData *od, const byte *room, const byte *searchptr = NULL);
+};
+
+class ScummEngine_v4 : public ScummEngine_v3 {
+public:
+ ScummEngine_v4(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v3(detector, syst, gs, md5sum) {}
+
+protected:
+ void loadCharset(int no);
};
class ScummEngine_v2 : public ScummEngine_v3 {
@@ -326,14 +336,6 @@
byte VAR_BACKUP_VERB;
};
-class ScummEngine_v4 : public ScummEngine_v3 {
-public:
- ScummEngine_v4(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v3(detector, syst, gs, md5sum) {}
-
-protected:
- void loadCharset(int no);
-};
-
class ScummEngine_v6 : public ScummEngine {
friend class Insane;
Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.215
retrieving revision 1.216
diff -u -d -r1.215 -r1.216
--- object.cpp 1 Apr 2005 09:55:16 -0000 1.215
+++ object.cpp 1 Apr 2005 13:05:39 -0000 1.216
@@ -725,46 +725,44 @@
CHECK_HEAP
}
-void ScummEngine::setupRoomObject(ObjectData *od, const byte *room, const byte *searchptr) {
- const CodeHeader *cdhd = NULL;
- const ImageHeader *imhd = NULL;
-
+void ScummEngine_v3::setupRoomObject(ObjectData *od, const byte *room, const byte *searchptr) {
assert(room);
+ const byte *ptr = room + od->OBCDoffset;
- if (_features & GF_SMALL_HEADER) {
-
- const byte *ptr = room + od->OBCDoffset;
+ if (_features & GF_OLD_BUNDLE)
+ ptr -= 2;
- if (_features & GF_OLD_BUNDLE)
- ptr -= 2;
+ od->obj_nr = READ_LE_UINT16(ptr + 6);
- od->obj_nr = READ_LE_UINT16(ptr + 6);
+ od->x_pos = *(ptr + 9) * 8;
+ od->y_pos = ((*(ptr + 10)) & 0x7F) * 8;
- od->x_pos = *(ptr + 9) * 8;
- od->y_pos = ((*(ptr + 10)) & 0x7F) * 8;
+ od->parentstate = (*(ptr + 10) & 0x80) ? 1 : 0;
+ if (_version <= 2)
+ od->parentstate *= 8;
- od->parentstate = (*(ptr + 10) & 0x80) ? 1 : 0;
- if (_version <= 2)
- od->parentstate *= 8;
+ od->width = *(ptr + 11) * 8;
- od->width = *(ptr + 11) * 8;
+ od->parent = *(ptr + 12);
- od->parent = *(ptr + 12);
+ if (_version <= 2) {
+ od->walk_x = *(ptr + 13) * 8;
+ od->walk_y = (*(ptr + 14) & 0x1f) * 8;
+ od->actordir = (*(ptr + 15)) & 7;
+ od->height = *(ptr + 15) & 0xf8;
+ } else {
+ od->walk_x = READ_LE_UINT16(ptr + 13);
+ od->walk_y = READ_LE_UINT16(ptr + 15);
+ od->actordir = (*(ptr + 17)) & 7;
+ od->height = *(ptr + 17) & 0xf8;
+ }
+}
- if (_version <= 2) {
- od->walk_x = *(ptr + 13) * 8;
- od->walk_y = (*(ptr + 14) & 0x1f) * 8;
- od->actordir = (*(ptr + 15)) & 7;
- od->height = *(ptr + 15) & 0xf8;
- } else {
- od->walk_x = READ_LE_UINT16(ptr + 13);
- od->walk_y = READ_LE_UINT16(ptr + 15);
- od->actordir = (*(ptr + 17)) & 7;
- od->height = *(ptr + 17) & 0xf8;
- }
+void ScummEngine::setupRoomObject(ObjectData *od, const byte *room, const byte *searchptr) {
+ const CodeHeader *cdhd = NULL;
+ const ImageHeader *imhd = NULL;
- return;
- }
+ assert(room);
if (searchptr == NULL) {
if (_version == 8)
@@ -791,7 +789,7 @@
od->y_pos = (int)READ_LE_UINT32(&imhd->v8.y_pos);
od->width = (uint)READ_LE_UINT32(&imhd->v8.width);
od->height = (uint)READ_LE_UINT32(&imhd->v8.height);
- // HACK: This is done sinec an angle doesn't fit into a byte (360 > 256)
+ // HACK: This is done since an angle doesn't fit into a byte (360 > 256)
od->actordir = toSimpleDir(1, READ_LE_UINT32(&imhd->v8.actordir));
if (FROM_LE_32(imhd->v8.version) == 801)
od->flags = ((((byte)READ_LE_UINT32(&imhd->v8.flags)) & 16) == 0) ? Gdi::dbAllowMaskOr : 0;
Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.555
retrieving revision 1.556
diff -u -d -r1.555 -r1.556
--- scumm.h 31 Mar 2005 21:39:05 -0000 1.555
+++ scumm.h 1 Apr 2005 13:05:40 -0000 1.556
@@ -724,7 +724,7 @@
ObjectIDMap _objectIDMap;
int _numObjectsInRoom;
- void setupRoomObject(ObjectData *od, const byte *room, const byte *searchptr = NULL);
+ virtual void setupRoomObject(ObjectData *od, const byte *room, const byte *searchptr = NULL);
void markObjectRectAsDirty(int obj);
void loadFlObject(uint object, uint room);
void nukeFlObjects(int min, int max);
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.410,2.411 script_v100he.cpp,2.107,2.108 script_v90he.cpp,2.205,2.206 sprite_he.cpp,1.114,1.115 sprite_he.h,1.30,1.31 wiz_he.cpp,2.34,2.35 wiz_he.h,2.14,2.15
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.336,1.337
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list