[Scummvm-devel] The "Sam and Max inventory hack"

Torbjorn.E.Andersson at tietoenator.com Torbjorn.E.Andersson at tietoenator.com
Mon Mar 1 05:24:10 CET 2004


There's a big "What's this?" comment in ScummEngine_v6::o6_setOwner() -
perhaps this sheds some light on it?

While looking at bug #907113 ("SAM: Items in box causes crash") I noticed
that losing your stuff at the Cone of Tragedy, and regaining it is one case
where the "Sam and Max inventory hack" is triggered.

If I understand things correctly, this fragment from room-17-202 is what
removes the inventory:

[002B] (5D) while (localvar1 >= 1) {
[0035] (43)   localvar2 = findInventory(2,localvar1)
[003F] (5D)   if (localvar2 != 35) {
[0049] (5E)     startScript(0,56,[localvar2])
[0056] (71)     setOwner(localvar2,14)
[005D] (**)   }
[005D] (57)   localvar1 += -1
[0063] (**) }

I assume object 35 is the inventory object for Max.

This fragment, from room-15-207, probably restores the inventory:

[0026] (5D) while (localvar1 >= 1) {
[0030] (43)   localvar2 = findInventory(14,localvar1)
[003A] (71)   setOwner(localvar2,2)
[0041] (57)   localvar1 += -1
[0047] (**) }

So there's nothing to correspond to the first script's calling of script 56.
Here's that script:

[0000] (5D) if ((var181 == localvar0) || (var180 == localvar0)) {
[0012] (43)   var181 = 0
[0018] (43)   var180 = 0
[001E] (**) }
[001E] (43) localvar1 = 6
[0024] (5D) while (localvar1 <= 80) {
[002E] (5D)   if (array-178[localvar1] == localvar0) {
[003B] (47)     array-178[localvar1] = 0
[0044] (57)     var179 += -1
[0047] (73)   } else {
[004A] (4F)     localvar1 += 1
[004D] (73)     jump 24
[0050] (**)   }
[0050] (**) }
[0050] (66) stopObjectCodeB()

So the inventory hack looks like an inverse of script-56. I have no idea what
it's for, but when I removed it I didn't get my stuff back from the Lost and
Found office.

Whether or not the hack is involved in bug #907113 I don't know.

Torbjörn

-- 
TietoEnator Resource Management AB
Persona
Torbjörn Andersson
http://www.rm.tietoenator.com/
 




More information about the Scummvm-devel mailing list