SCUMM: MovedScummEngine_v5:: o5_pickupObjectOld to ScummEngine_v4::o4_pickupObject
svn-id: r40009
This commit is contained in:
parent
9655fa831e
commit
b32e9f00b0
4 changed files with 31 additions and 26 deletions
|
@ -32,6 +32,32 @@ namespace Scumm {
|
||||||
|
|
||||||
void ScummEngine_v4::setupOpcodes() {
|
void ScummEngine_v4::setupOpcodes() {
|
||||||
ScummEngine_v5::setupOpcodes();
|
ScummEngine_v5::setupOpcodes();
|
||||||
|
|
||||||
|
OPCODE(0x50, o4_pickupObject);
|
||||||
|
OPCODE(0xd0, o4_pickupObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScummEngine_v4::o4_pickupObject() {
|
||||||
|
int obj = getVarOrDirectWord(PARAM_1);
|
||||||
|
|
||||||
|
if (obj < 1) {
|
||||||
|
error("pickupObjectOld received invalid index %d (script %d)", obj, vm.slot[_currentScript].number);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getObjectIndex(obj) == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (whereIsObject(obj) == WIO_INVENTORY) // Don't take an object twice
|
||||||
|
return;
|
||||||
|
|
||||||
|
// debug(0, "adding %d from %d to inventoryOld", obj, _currentRoom);
|
||||||
|
addObjectToInventory(obj, _roomResource);
|
||||||
|
markObjectRectAsDirty(obj);
|
||||||
|
putOwner(obj, VAR(VAR_EGO));
|
||||||
|
putClass(obj, kObjectClassUntouchable, 1);
|
||||||
|
putState(obj, 1);
|
||||||
|
clearDrawObjectQueue();
|
||||||
|
runInventoryScript(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // End of namespace Scumm
|
} // End of namespace Scumm
|
||||||
|
|
|
@ -141,7 +141,7 @@ void ScummEngine_v5::setupOpcodes() {
|
||||||
OPCODE(0x4e, o5_putActorAtObject);
|
OPCODE(0x4e, o5_putActorAtObject);
|
||||||
OPCODE(0x4f, o5_ifState);
|
OPCODE(0x4f, o5_ifState);
|
||||||
/* 50 */
|
/* 50 */
|
||||||
OPCODE(0x50, o5_pickupObjectOld);
|
// OPCODE(0x50, o5_pickupObjectOld);
|
||||||
OPCODE(0x51, o5_animateActor);
|
OPCODE(0x51, o5_animateActor);
|
||||||
OPCODE(0x52, o5_actorFollowCamera);
|
OPCODE(0x52, o5_actorFollowCamera);
|
||||||
OPCODE(0x53, o5_actorOps);
|
OPCODE(0x53, o5_actorOps);
|
||||||
|
@ -301,7 +301,7 @@ void ScummEngine_v5::setupOpcodes() {
|
||||||
OPCODE(0xce, o5_putActorAtObject);
|
OPCODE(0xce, o5_putActorAtObject);
|
||||||
OPCODE(0xcf, o5_ifState);
|
OPCODE(0xcf, o5_ifState);
|
||||||
/* D0 */
|
/* D0 */
|
||||||
OPCODE(0xd0, o5_pickupObjectOld);
|
// OPCODE(0xd0, o5_pickupObjectOld);
|
||||||
OPCODE(0xd1, o5_animateActor);
|
OPCODE(0xd1, o5_animateActor);
|
||||||
OPCODE(0xd2, o5_actorFollowCamera);
|
OPCODE(0xd2, o5_actorFollowCamera);
|
||||||
OPCODE(0xd3, o5_actorOps);
|
OPCODE(0xd3, o5_actorOps);
|
||||||
|
@ -3053,27 +3053,4 @@ void ScummEngine_v5::o5_oldRoomEffect() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v5::o5_pickupObjectOld() {
|
|
||||||
int obj = getVarOrDirectWord(PARAM_1);
|
|
||||||
|
|
||||||
if (obj < 1) {
|
|
||||||
error("pickupObjectOld received invalid index %d (script %d)", obj, vm.slot[_currentScript].number);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getObjectIndex(obj) == -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (whereIsObject(obj) == WIO_INVENTORY) /* Don't take an */
|
|
||||||
return; /* object twice */
|
|
||||||
|
|
||||||
// debug(0, "adding %d from %d to inventoryOld", obj, _currentRoom);
|
|
||||||
addObjectToInventory(obj, _roomResource);
|
|
||||||
markObjectRectAsDirty(obj);
|
|
||||||
putOwner(obj, VAR(VAR_EGO));
|
|
||||||
putClass(obj, kObjectClassUntouchable, 1);
|
|
||||||
putState(obj, 1);
|
|
||||||
clearDrawObjectQueue();
|
|
||||||
runInventoryScript(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // End of namespace Scumm
|
} // End of namespace Scumm
|
||||||
|
|
|
@ -50,6 +50,9 @@ protected:
|
||||||
virtual void readGlobalObjects();
|
virtual void readGlobalObjects();
|
||||||
|
|
||||||
virtual void resetRoomObject(ObjectData *od, const byte *room, const byte *searchptr = NULL);
|
virtual void resetRoomObject(ObjectData *od, const byte *room, const byte *searchptr = NULL);
|
||||||
|
|
||||||
|
/* Version 4 script opcodes */
|
||||||
|
void o4_pickupObject();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,6 @@ protected:
|
||||||
void o5_beginOverride();
|
void o5_beginOverride();
|
||||||
void o5_panCameraTo();
|
void o5_panCameraTo();
|
||||||
void o5_pickupObject();
|
void o5_pickupObject();
|
||||||
void o5_pickupObjectOld();
|
|
||||||
void o5_print();
|
void o5_print();
|
||||||
void o5_printEgo();
|
void o5_printEgo();
|
||||||
void o5_pseudoRoom();
|
void o5_pseudoRoom();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue