Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Systemic Anomaly
Original Poster
#1 Old 27th Jul 2005 at 6:01 AM
Default RTBN Headaches Revisited
This damn primitive is really making my head hurt. Here's the problem. I am wanting to make an RTBN call from an object in group 0xABABABAB to a parameterless behavior in 0xCDCDCDCD.

0xABABABAB is a root object and does not contain a Global Data reference.

Here's the setup:

My = 0xABABABAB
Stack Object = 0xCDCDCDCD

The string holding the named tree resides in STR# 0xABABABAB:0x12F @ Index 0x1.

If I make this RTBN call with the following op codes, the call barfs everytime.

00 00 00 00 02 02 00 00

as does...

00 00 04 00 02 02 00 00

...and the following crashes the game because there is no semi-global table to reference...

00 00 02 00 02 02 00 00

*BUT*

If I move the STR# reference to Globals:0x12F @ Index 0xB2 and call RTBN this way:

00 00 01 00 B3 02 00 00

It works. I *really* do not want to override Globals:0x12F if I can avoid it. I cannot for the life of me get this damn thing to work storing the CT reference in the private STR# table. Disasim2 shows EXACLY what I would expect it to show, but the game - for whatever reason - just gets utterly constipated when it tries to make the RTBN call with the string stored privately.

Maybe another set of eyes on this problem will reveal something I have overlooked.

J
Advertisement
Fat Obstreperous Jerk
#2 Old 27th Jul 2005 at 1:28 PM
You got me. There's no reason why the second shouldn't work. That's the format I always use, 00 00 04 00 (N+1) 02 00 00.

You do, however, have to make sure that the Stack Object is set to a VALID OBJECT, not a Group Number, not a GUID, but an actual instance of the aforementioned object. Otherwise, yes, it will barf loudly. Also, shouldn't 0xABABABAB generally always be 0xFFFFFFFF?

Grant me the serenity to accept the things I cannot change, the courage to change the things I cannot accept, and the wisdom to hide the bodies of those I had to kill because they pissed me off.
Systemic Anomaly
Original Poster
#3 Old 27th Jul 2005 at 6:33 PM Last edited by jase439 : 27th Jul 2005 at 6:48 PM.
0xABABABAB was just an arbitrary value I pulled out of my arse for the sake of example...since I couldn't remember the exact group number for the pregnancy controller. Ditto on 0xCDCDCDCD which is in reference to Person Globals, wherein lies the BHAV that I want to call.

In this case My is the pregnancy controller instance. Stack Object is the verified 0x000B of a sim passed in as a parameter to calling behavior.

What gets me is that there is already an entry in the pregnancy controller's 12F table, namely CT - Add Memory. I tried patterning my call after that one, except in this case, my Stack Object was an instance (0x000B) of a Sim and not a memory object.

Have a gander at: 0x7F1D0F49:0x1004. Here, 1C is passed in for the flag op, which is just 0x04 plus the other bits which define how the params are to be passed. I tried using 04, 08, 0C, and 1C in my call to no avail. Only 01 with the tree name in the Globals:0x12F table would get me where I needed to go.

RTBN has always thrown fits for me when invoking it from the pregnancy controller. This primitive gives me gas.

In either event, I replaced the RTBN call with an "immediate" Push Interaction which *did* work. It's a little more circuitous than I would have hoped for, but it got the job done. I would still like to know why this frigging RTBN call can only be made with a global STR# reference. $%#@
Back to top