More Awesome Than You!

The Bowels of Trogdor => The Small Intestines of Trogdor => Topic started by: jase on 2007 April 03, 01:34:24



Title: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: jase on 2007 April 03, 01:34:24
Anybody know off the top of their head what magic opcode bits to twiddle on Push Interaction (0x000D) to reference an interaction index above 0xFF?


Title: Re: Push Interaction opcode(s) for Interaction Index > 0x7F
Post by: dizzy on 2007 April 03, 01:44:18
Flags 0x10 (opcode +3) and data (+5 to 7). See Ashes/Stomp - Find More Ashes for reference:

Code:
     1: Push Interaction: getting interaction # from 1 of Local 0 onto the stack object's queue, inherited priority, Icon Index is 0x0, use name; true: true, false: true
        [ 000D: (00) 0000001E000701000A00000A00000000 ]


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: jase on 2007 April 03, 01:50:14
That's exactly what I was fishing for.  Thanks for the quick reply.


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: jase on 2007 April 03, 02:25:11
I'm going to change gears for a sec.  Do you know of any way to push an interaction without tripping its associated TEST/Guardian.  I've tried twiddling the "force run check tree" bit to no avail.  Seems like it always fires.


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: J. M. Pescado on 2007 April 03, 03:09:59
My method for bypassing the check tree for whatever reason tends to be to invoke it via RTBN. Pushing it onto queue doesn't seem to be able to bypass the check tree, you either need to invoke via RTBN or create a hidden version with no or reduced checks. For a Maxian object, RTBN tends to be your best bet.


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: jase on 2007 April 03, 04:44:08
The problem with RTBN is that it almost always fails when you attempt to "Run in Stack Object's" (where S.O. is a sim) and they're currently executing an interaction (as they usually are).  I much prefer RTBN, but its miserable for trying to force actions onto sims (works very well for objects though that are almost always in their main/idle loop).  Incidentally, there appears to be a new RTBN call type in Seasons: 03 - Run in GUID's Stack from the looks of it.  The Temperature Resistivity Controller uses it heavily.


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: J. M. Pescado on 2007 April 03, 05:07:13
The problem with RTBN is that it almost always fails when you attempt to "Run in Stack Object's" (where S.O. is a sim) and they're currently executing an interaction (as they usually are).  Incidentally, there appears to be a new RTBN call type in Seasons: 03 - Run in GUID's Stack from the looks of it.  The Temperature Resistivity Controller uses it heavily.
RTBN works fine if you're running "push onto my stack" (0x02). You can see this being heavily used in Macrotastics. The other two tend to barf on "check tree primitive" if you invoke anything which isn't an "instant", and will not function unless you're in debug mode and can hit cancel. 0x03 has existed at least since OFB, possibly longer, and lets you invoke code from a GUID after doing Test Object 0x04, without actually having that object present, and appears to otherwise function as 0x02.


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: jase on 2007 April 03, 05:11:10
But what I'm trying to do is to force an interaction onto another sim.  Indeed, push onto my stack works 99% of the time.  Run in Stack Object's stack, however, works like 1% when S.O. is a sim.  There's no equivalent Push onto Stack Object's stack that i know of - save Push Interaction (0xD) which runs check trees (blah).


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: dizzy on 2007 April 03, 05:21:40
It sounds to me like you need to use a Controller/Social object to convey that interaction.


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: J. M. Pescado on 2007 April 03, 08:19:02
But what I'm trying to do is to force an interaction onto another sim.  Indeed, push onto my stack works 99% of the time.  Run in Stack Object's stack, however, works like 1% when S.O. is a sim.  There's no equivalent Push onto Stack Object's stack that i know of - save Push Interaction (0xD) which runs check trees (blah).
Sounds like you need a push-interaction onto a controller which then RTBNs the desired code. You can see this being done in Macro-Caffeinate for the incooperative coffee actions.


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: jase on 2007 April 28, 05:44:43
That's the road I ultimately ended up going down (the social controller).  Despite the extra coding, it was worth it in the end (plus it dovetails nicely with all versions of Sims 2).  As fun as bludgeoning a problem with a blunt tool can be at times, there is merit to poking it with a well-sharpened stick (especially if "it" happens to be Inge).


Title: Re: Push Interaction opcode(s) for Interaction Index > 0xFF
Post by: J. M. Pescado on 2007 April 28, 06:15:59
Poking Inge with a stick is always funny, yes.