mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-04 01:07:22 +00:00
Fixed the distaff in Loom
svn-id: r3580
This commit is contained in:
parent
2ae44b5d3c
commit
5876581001
@ -1770,6 +1770,7 @@ void Scumm::o5_verbOps() {
|
||||
VerbSlot *vs;
|
||||
int a,b;
|
||||
byte *ptr;
|
||||
int tempRoom;
|
||||
|
||||
verb = getVarOrDirectByte(0x80);
|
||||
|
||||
|
26
verbs.cpp
26
verbs.cpp
@ -257,16 +257,26 @@ void Scumm::setVerbObject(uint room, uint object, uint verb) {
|
||||
byte *obimptr;
|
||||
uint32 size;
|
||||
FindObjectInRoom foir;
|
||||
int i;
|
||||
|
||||
if (whereIsObject(object) == WIO_FLOBJECT)
|
||||
error("Can't grab verb image from flobject");
|
||||
|
||||
findObjectInRoom(&foir, foImageHeader, object, room);
|
||||
if(_features & GF_SMALL_HEADER)
|
||||
size = READ_LE_UINT32(foir.obim);
|
||||
else
|
||||
size = READ_BE_UINT32_UNALIGNED(foir.obim+4);
|
||||
createResource(rtVerb, verb, size);
|
||||
obimptr = getResourceAddress(rtRoom, room) - foir.roomptr + foir.obim;
|
||||
memcpy(getResourceAddress(rtVerb, verb), obimptr, size);
|
||||
if(_features |= GF_SMALL_HEADER) {
|
||||
for(i = _numObjectsInRoom; i>0; i--) {
|
||||
if(_objs[i].obj_nr == object) {
|
||||
findObjectInRoom(&foir, foImageHeader, object, room);
|
||||
size = READ_LE_UINT32(foir.obim);
|
||||
createResource(rtVerb, verb, size);
|
||||
obimptr = getResourceAddress(rtRoom, room) - foir.roomptr + foir.obim;
|
||||
memcpy(getResourceAddress(rtVerb, verb), obimptr, size);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
findObjectInRoom(&foir, foImageHeader, object, room);
|
||||
size = READ_BE_UINT32_UNALIGNED(foir.obim+4);
|
||||
createResource(rtVerb, verb, size);
|
||||
obimptr = getResourceAddress(rtRoom, room) - foir.roomptr + foir.obim;
|
||||
memcpy(getResourceAddress(rtVerb, verb), obimptr, size);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user