[Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.35,1.36 resource.cpp,1.43,1.44 script_v8.cpp,2.69,2.70
Max Horn
fingolfin at users.sourceforge.net
Fri Dec 27 11:49:03 CET 2002
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv13255
Modified Files:
object.cpp resource.cpp script_v8.cpp
Log Message:
like rtRoom, rtRoomScripts should never expire while the room they belong too is loaded; this fixes the crash when picking up the fishing rod
Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- object.cpp 27 Dec 2002 14:36:27 -0000 1.35
+++ object.cpp 27 Dec 2002 19:48:30 -0000 1.36
@@ -826,7 +826,7 @@
{
int i, slot;
uint32 size;
- byte *obcdptr, *ptr;
+ byte *ptr, *dst;
FindObjectInRoom foir;
debug(1, "Adding object %d from room %d into inventory", obj, room);
@@ -836,23 +836,22 @@
i = getObjectIndex(obj);
ptr = getResourceAddress(rtFlObject, _objs[i].fl_object_index) + 8;
size = READ_BE_UINT32_UNALIGNED(ptr + 4);
- slot = getInventorySlot();
- _inventory[slot] = obj;
- createResource(rtInventory, slot, size);
- ptr = getResourceAddress(rtFlObject, _objs[i].fl_object_index) + 8;
- memcpy(getResourceAddress(rtInventory, slot), ptr, size);
} else {
findObjectInRoom(&foir, foCodeHeader, obj, room);
if (_features & GF_SMALL_HEADER)
size = READ_LE_UINT32(foir.obcd);
else
size = READ_BE_UINT32_UNALIGNED(foir.obcd + 4);
- slot = getInventorySlot();
- _inventory[slot] = obj;
- createResource(rtInventory, slot, size);
- obcdptr = getResourceAddress(rtRoom, room) - foir.roomptr + foir.obcd;
- memcpy(getResourceAddress(rtInventory, slot), obcdptr, size);
+ ptr = foir.obcd;
}
+
+ slot = getInventorySlot();
+ _inventory[slot] = obj;
+ createResource(rtInventory, slot, size);
+
+ dst = getResourceAddress(rtInventory, slot);
+ assert(dst);
+ memcpy(dst, ptr, size);
CHECK_HEAP
}
Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- resource.cpp 27 Dec 2002 00:11:01 -0000 1.43
+++ resource.cpp 27 Dec 2002 19:48:30 -0000 1.44
@@ -1381,6 +1381,8 @@
switch (type) {
case rtRoom:
return _roomResource == (byte)i;
+ case rtRoomScripts:
+ return _roomResource == (byte)i;
case rtScript:
return isScriptInUse(i);
case rtCostume:
Index: script_v8.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v8.cpp,v
retrieving revision 2.69
retrieving revision 2.70
diff -u -d -r2.69 -r2.70
--- script_v8.cpp 27 Dec 2002 16:55:22 -0000 2.69
+++ script_v8.cpp 27 Dec 2002 19:48:30 -0000 2.70
@@ -1423,10 +1423,10 @@
case 34: // queryQuit
warning("o6_kernelSetFunctions: queryQuit()");
break;
- case 108:
+ case 108: // buildPaletteShadow
setupShadowPalette(args[1], args[2], args[3], args[4], args[5], args[6]);
break;
- case 109:
+ case 109: // setPaletteShadow
setupShadowPalette(0, args[1], args[2], args[3], args[4], args[5]);
break;
case 115: // getWalkBoxAt
More information about the Scummvm-git-logs
mailing list