aboutsummaryrefslogtreecommitdiff
path: root/scumm/object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scumm/object.cpp')
-rw-r--r--scumm/object.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/scumm/object.cpp b/scumm/object.cpp
index 9a8d2561cf..979236a365 100644
--- a/scumm/object.cpp
+++ b/scumm/object.cpp
@@ -1191,19 +1191,26 @@ int ScummEngine::getInventorySlot() {
void ScummEngine::setOwnerOf(int obj, int owner) {
ScriptSlot *ss;
+
+ // In Sam & Max this is necessary, or you won't get your stuff back
+ // from the Lost and Found tent after riding the Cone of Tragedy. But
+ // it probably applies to all V6+ games. See bugs #493153 and #907113.
+
+ int arg = (_version >= 6) ? obj : 0;
+
if (owner == 0) {
clearOwnerOf(obj);
ss = &vm.slot[_currentScript];
if (ss->where == WIO_INVENTORY && _inventory[ss->number] == obj) {
putOwner(obj, 0);
- runInventoryScript(0);
+ runInventoryScript(arg);
stopObjectCode();
return;
}
}
putOwner(obj, owner);
- runInventoryScript(0);
+ runInventoryScript(arg);
}
int ScummEngine::getObjX(int obj) {