More Awesome Than You!

The Bowels of Trogdor => The Small Intestines of Trogdor => Topic started by: Inge on 2008 March 03, 09:57:28



Title: Secondary aspiration
Post by: Inge on 2008 March 03, 09:57:28
Has anyone managed to find out how/where a sim's secondary aspiration is stored?  If not, if someone has a sim who has gained one, could they please send me their neighborhood.package file and tell me the name of that Sim (the american name preferably)


Title: Re: Secondary aspiration
Post by: J. M. Pescado on 2008 March 03, 11:41:09
The secondary aspiration is stored in the same place as the primary aspiration, with an aspiration bit, but there's ALSO an inventory token which has an attribute that is then XOR'ed with the aspiration bitfield to isolate the primary one. You can see this mess at work in 0x403.

My advice is just to not touch it. Changing the aspiration is far more easily performed in-game than by any cheat or SimPEing, as attempting to fiddle with the attributes directly, even in-game, can mangle the sim and leave it with NO displayed aspiration. Plus, changing the primary or secondary aspiration invalidates selected LTA perks, and if you have any of those selected when you change the aspiration surreptitiously like so, the sim blows up. Thus, you have to deallocate the sim's LTA perks as well, and if you don't want to do it lossily, causing loss of earned points, you have to calculate how many of those need to be reused, etc. Huge mess. Much easier to tackle in BHAV than it is to edit externally.


Title: Re: Secondary aspiration
Post by: Inge on 2008 March 03, 12:02:49
Where is the primary aspiration?  I can't seem to spot it in Persondata  ???


Title: Re: Secondary aspiration
Post by: J. M. Pescado on 2008 March 03, 16:45:07
Persondata 0x2E, same place as always. Only now there are two bits instead of 1.


Title: Re: Secondary aspiration
Post by: Inge on 2008 March 03, 16:51:43
Lol I've been over and over persondata and couldn't see it!  I have been drinking mint tea all day, and now I think I need a coffee!!


Title: Re: Secondary aspiration
Post by: jase on 2008 March 04, 06:05:51
From the looks of things, Maxis has culled all bit tests against 0x2E and replaced them with calls to 0x403 and/or 0x611 and performing the flag tests against Temp 0.  Querying 0x2E directly is somewhat non-sensical.  This is going to break a lot of shit silently yet violently.


Title: Re: Secondary aspiration
Post by: Inge on 2008 March 04, 07:53:53
I have this hunch that they do these things to keep the modders interested.  They really do supply something for everyone, right down to the intrigue about whether or not they approve of pay content, to occupy the militant spirits.  They know that not all of us would be interested in just playing a well-designed bug-free PC game :)


Title: Re: Secondary aspiration
Post by: J. M. Pescado on 2008 March 04, 08:53:18
From the looks of things, Maxis has culled all bit tests against 0x2E and replaced them with calls to 0x403 and/or 0x611 and performing the flag tests against Temp 0.  Querying 0x2E directly is somewhat non-sensical.  This is going to break a lot of shit silently yet violently.
Bit tests against 0x2E still work...if you want to check if a sim has an aspiration, rather than that a sim *IS* an aspiration. The distinction is somewhat minor, yet important. Formerly, "having" and "being" an aspiration were the same, but now there is a subtle yet important distinction.


Title: Re: Secondary aspiration
Post by: Inge on 2008 March 04, 09:30:25
I think the test for whether they have an aspiration as either primary *or* secondary would be perfectly relevent for deciding on things like ACR tendencies.  After all, the user chooses both aspirations for the sim, and presumably would like them to do stuff based on both.


Title: Re: Secondary aspiration
Post by: J. M. Pescado on 2008 March 05, 01:05:14
That's why "has" an aspiration and direct tests on the bitfield are still relevant, yes.


Title: Re: Secondary aspiration
Post by: jase on 2008 March 05, 01:28:52
After all, the user chooses both aspirations for the sim, and presumably would like them to do stuff based on both.
While I agree with this statement in principle, it does not appear that Maxis has followed suit.  It seems like they've gone out of their way to replace bit-testing against 0x2E with calls to 0x403, which only gets you at the primary aspiration.  Leaves me wondering what purpose the secondary serves except as a pathway to different aspiration rewards.


Title: Re: Secondary aspiration
Post by: J. M. Pescado on 2008 March 05, 01:39:21
Probably because bit-testing against 0x2E, which is most common in, say, Want Check Trees, would produce ambiguous results for determining whether a sim should want or fear an event. In any case, I haven't actually had to refit my code, because I foresaw that such an implementation could theoretically occur. I mean, what's the point of using a bit-field for a datatype unless you actually intend to make it possible for more than one bit to be set? Thus, I've always used 0x403 for "is" and bit-test for "has". It seems I was right to do this.


Title: Re: Secondary aspiration
Post by: Inge on 2008 March 05, 10:55:57
But Jase, does it matter what Maxis do about working out aspiration priority when it comes to deciding what the ACR does about it?  TJ's users may be perfectly happy for their sims to choose what to do about sex based on either or both their aspirations - which would mean simply testing the flags of that field would do fine.   TJ could go through a little BHAV of his own to decide which aspiration to actually return.  Where only one flag is set, then there is no dispute.  Where two are found, it could return either at random.   In real life, if a person has a conflict of aspiration, sometimes their decisions will appear conflicting too - it would not detract from the realism of the result.

Anyway I see he's sorted it now :)