More Awesome Than You!

The Bowels of Trogdor => The Small Intestines of Trogdor => Topic started by: syberspunk on 2007 June 08, 06:11:58



Title: Help needed with CT - Object Menu options *RESOLVED*
Post by: syberspunk on 2007 June 08, 06:11:58
So, I added tons of new options to my growuptownies hack (http://www.moreawesomethanyou.com/smf/index.php/topic,4842.0.html), but for some reason a certain interaction does not work.

The "College.../Register - Declare Major" option will show up on the target sim's menu.  However, when I cilck on it, it acts like it is not running the subsequent CT - Object Menu Command BHAV.

Here is the code from the CT - Object Menu BHAV.  This appears to work correctly, in that all the options show as I want them to.  I have emboldened the particular lines of code where I am adding the options to the menu.

Quote
     0000 : 0002 : 0100000000020900000000000000 : 00 : 0001 : FFFE
[prim 0x0002] Expression (Param 0x0001 == Literal 0x0000)

     0001 : 0002 : 0000000000051900000000000000 : 00 : 0002 : FFFC
[prim 0x0002] Expression (Local 0x0000 := Stack Object ID)

     0002 : 1004 : 0900000A00000A000A0000010000 : 00 : 0003 : FFFE
[private 0x1004] CT - Menu - Where Be I? (Param 0x0000)

     0003 : 0002 : 0000000000050A00000000000000 : 00 : 0004 : FFFC
[prim 0x0002] Expression (Stack Object ID := Param 0x0000)

     0004 : 0002 : 00000B0000100A00000000000000 : 00 : 0005 : FFFE
[prim 0x0002] Expression (Stack Object ID != My object id)

     0005 : 0002 : 2200814700021300000000000000 : 00 : 0006 : FFFE
[prim 0x0002] Expression (Stack Object's Greet Status == Const 0x010F:0x01)

     0006 : 0417 : 0900000A00000A000A0000010000 : 01 : FFFE : 0007
[global 0x0417] Group - Is Outing(0) or Date (1)? (Param 0x0000)

     0007 : 0002 : 3A000148000E1200000000000000 : 00 : 0008 : FFFE
[prim 0x0002] Expression (My Person Age >= Const 0x0110:0x01)

     0008 : 0002 : 3A000148000E1300000000000000 : 00 : 0009 : FFFE
[prim 0x0002] Expression (Stack Object's Person Age >= Const 0x0110:0x01)

     0009 : 0002 : 3A003A00000E1200000000000000 : 00 : 000C : 000A
[prim 0x0002] Expression (My Person Age >= Stack Object's Person Age)

     000A : 0002 : 3A00044800021300000000000000 : 00 : 000B : FFFE
[prim 0x0002] Expression (Stack Object's Person Age == Const 0x0110:0x04)

     000B : 0002 : 3A00034800021200000000000000 : 00 : 000C : FFFE
[prim 0x0002] Expression (My Person Age == Const 0x0110:0x03)

     000C : 0301 : 131F000A00000A000A0000010000 : 01 : FFFE : 000D
[global 0x0301] Death - Is Sim Dead? (NID) (Stack Object's neighbor id)

     000D : 018F : 0A00000A00000A000A0000010000 : 01 : FFFE : 000E
[global 0x018F] Pregnancy - Is Sim Pregnant? (Stack Object ID)

     000E : 0002 : 2000004200101300000000000000 : 00 : 000F : FFFE
[prim 0x0002] Expression (Stack Object's Person Type != Const 0x0104:0x00)

     000F : 0002 : 2000024200101300000000000000 : 00 : 0010 : FFFE
[prim 0x0002] Expression (Stack Object's Person Type != Const 0x0104:0x02)

     0010 : 0002 : 3D00005D00101300000000000000 : 00 : 0011 : FFFE
[prim 0x0002] Expression (Stack Object's family number != Const 0x013A:0x00)

     0011 : 0002 : 3D00015D00021300000000000000 : 00 : 0013 : 0012
[prim 0x0002] Expression (Stack Object's family number == Const 0x013A:0x01)

     0012 : 0002 : 3D00035D00021300000000000000 : 00 : 0013 : FFFE
[prim 0x0002] Expression (Stack Object's family number == Const 0x013A:0x03)

     0013 : 0002 : 3D003D0000101300000000000000 : 00 : 0014 : FFFE
[prim 0x0002] Expression (Stack Object's family number != My family number)

     0014 : 0002 : AF00010000021300000000000000 : 00 : 0015 : 0022
[prim 0x0002] Expression (Stack Object's kEP1 - Young Adult( 0=no, 1=yes ) == Literal 0x0001)

     0015 : 0002 : 2000014200021300000000000000 : 00 : 0016 : 0022
[prim 0x0002] Expression (Stack Object's Person Type == Const 0x0104:0x01)

     0016 : 03C9 : 131F00060A0007FF0A0000010000 : 01 : 0017 : 0018
[global 0x03C9] College - Have Key? (Stack Object's neighbor id, Current House, Literal 0xFFFF)

     0017 : 0002 : 00008347000201191001FFFFFFFF : 00 : 001D : 0018
[prim 0x0002] Expression (Stack Object's attribute 0x0000 == Const 0x010F:0x03)

     0018 : 03C9 : 131F0007FFFF07FF0A0000010000 : 01 : 001D : FFFC
[global 0x03C9] College - Have Key? (Stack Object's neighbor id, Literal 0xFFFF, Literal 0xFFFF)

     0019 : 1005 : 0900000A00000A000A0000010000 : 00 : 001A : 0022
[private 0x1005] Interaction - Goto Final Exam TEST (Param 0x0000)

     001A : 0002 : 0000000000050A00000000000000 : 00 : 001B : FFFC
[prim 0x0002] Expression (Stack Object ID := Local 0x0000)

     001B : 0002 : 0000030000050800000000000000 : 00 : 001C : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0003)

     001C : 0032 : 0000010098DECB8D00010A000000 : 01 : 001D : FFFC
[prim 0x0032] Add/Change the Action String ([Fallback: SemiGlobal] "College.../Go to Final Exam")

     001D : 1007 : 0900000A00000A000A0000010000 : 01 : 001E : 0022
[private 0x1007] Interaction - Choose Major - TEST (Param 0x0000)

     001E : 0002 : 0000040000020800000000000000 : 00 : 001F : 0020
[prim 0x0002] Expression (Temp 0x0000 == Literal 0x0004)

     001F : 0032 : 0000000003000000000000000000 : 01 : 0022 : FFFC
[prim 0x0032] Add/Change the Action String ("College.../Registrar - Declare Major")

     0020 : 0002 : 0000050000020800000000000000 : 00 : 0021 : 0022
[prim 0x0002] Expression (Temp 0x0000 == Literal 0x0005)

     0021 : 0032 : 0000000004000000000000000000 : 01 : 0022 : FFFC
[prim 0x0032] Add/Change the Action String ("College.../Registrar - Change Major")

     0022 : 0002 : 0000000000050A00000000000000 : 00 : 0023 : FFFC
[prim 0x0002] Expression (Stack Object ID := Param 0x0000)

     0023 : 0436 : 0A00000A00000A000A0000010000 : 01 : 0028 : 0024
[global 0x0436] Rel - Does Param 0 LT Love Me? (Stack Object ID)

     0024 : 0437 : 0A00000A00000A000A0000010000 : 01 : 0028 : 0025
[global 0x0437] Rel - Does Param 0 ST Love Me? (Stack Object ID)

     0025 : 0236 : 0A00000A00000A000A0000010000 : 01 : 0028 : 0026
[global 0x0236] Rel - Am I Best Friends with Param 0 (Stack Object ID)

     0026 : 0167 : 0A00000A00000A000A0000010000 : 01 : 0027 : FFFE
[global 0x0167] Rel - Am I Friends with Param 0? (Stack Object ID)

     0027 : 02B7 : 0750000764000A00070100010000 : 01 : 0028 : FFFE
[global 0x02B7] Social - STR Rel. Test (Literal 0x0050, Literal 0x0064, Stack Object ID, Literal 0x0001)

     0028 : 0002 : 3A00014800021300000000000000 : 00 : 0045 : 0029
[prim 0x0002] Expression (Stack Object's Person Age == Const 0x0110:0x01)

     0029 : 0002 : 3A00024800021300000000000000 : 00 : 0045 : 002A
[prim 0x0002] Expression (Stack Object's Person Age == Const 0x0110:0x02)

     002A : 0002 : 3A00034800021300000000000000 : 00 : 002B : 0048
[prim 0x0002] Expression (Stack Object's Person Age == Const 0x0110:0x03)

     002B : 0002 : AF00010000021300000000000000 : 00 : 002C : 0045
[prim 0x0002] Expression (Stack Object's kEP1 - Young Adult( 0=no, 1=yes ) == Literal 0x0001)

     002C : 0002 : 0000000000050A00000000000000 : 00 : 002D : FFFC
[prim 0x0002] Expression (Stack Object ID := Local 0x0000)

     002D : 0002 : 0000060000050800000000000000 : 00 : 002E : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0006)

     002E : 0032 : 0000000005000000000000000000 : 01 : 002F : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Drop Out.../Freshman Year")

     002F : 0002 : 0000070000050800000000000000 : 00 : 0030 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0007)

     0030 : 0032 : 0000000006000000000000000000 : 01 : 0031 : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Graduate.../Without Honors")

     0031 : 0002 : 0000080000050800000000000000 : 00 : 0032 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0008)

     0032 : 0032 : 0000000007000000000000000000 : 01 : 0033 : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Graduate.../Cum Laude")

     0033 : 0002 : 0000090000050800000000000000 : 00 : 0034 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0009)

     0034 : 0032 : 0000000008000000000000000000 : 01 : 0035 : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Graduate.../Magna Cum Laude")

     0035 : 0002 : 00000A0000050800000000000000 : 00 : 0036 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x000A)

     0036 : 0032 : 0000000009000000000000000000 : 01 : 0037 : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Graduate.../Summa Cum Laude")

     0037 : 0002 : 00000B0000050800000000000000 : 00 : 0038 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x000B)

     0038 : 0032 : 000000000A000000000000000000 : 01 : 0039 : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Be Expelled.../Freshman Year")

     0039 : 0002 : 00000C0000050800000000000000 : 00 : 003A : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x000C)

     003A : 0032 : 000000000B000000000000000000 : 01 : 003B : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Drop Out.../Sophomore Year")

     003B : 0002 : 00000D0000050800000000000000 : 00 : 003C : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x000D)

     003C : 0032 : 000000000C000000000000000000 : 01 : 003D : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Drop Out.../Junior Year")

     003D : 0002 : 00000E0000050800000000000000 : 00 : 003E : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x000E)

     003E : 0032 : 000000000D000000000000000000 : 01 : 003F : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Drop Out.../Senior Year")

     003F : 0002 : 00000F0000050800000000000000 : 00 : 0040 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x000F)

     0040 : 0032 : 000000000E000000000000000000 : 01 : 0041 : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Be Expelled.../Sophomore Year")

     0041 : 0002 : 0000100000050800000000000000 : 00 : 0042 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0010)

     0042 : 0032 : 000000000F000000000000000000 : 01 : 0043 : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Be Expelled.../Junior Year")

     0043 : 0002 : 0000110000050800000000000000 : 00 : 0044 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0011)

     0044 : 0032 : 0000000010000000000000000000 : 01 : FFFD : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Be Expelled.../Senior Year")

     0045 : 0002 : 0000000000050A00000000000000 : 00 : 0046 : FFFC
[prim 0x0002] Expression (Stack Object ID := Local 0x0000)

     0046 : 0002 : 0000010000050800000000000000 : 00 : 0047 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0001)

     0047 : 0032 : 0000000001000000000000000000 : 01 : FFFD : FFFC
[prim 0x0032] Add/Change the Action String ("Ask to Grow Up")

     0048 : 0002 : 3A00044800021300000000000000 : 00 : 0049 : FFFE
[prim 0x0002] Expression (Stack Object's Person Age == Const 0x0110:0x04)

     0049 : 0002 : 0000000000050A00000000000000 : 00 : 004A : FFFC
[prim 0x0002] Expression (Stack Object ID := Local 0x0000)

     004A : 0002 : 0000020000050800000000000000 : 00 : 004B : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0002)

     004B : 0032 : 0000000002000000000000000000 : 01 : FFFD : FFFC
[prim 0x0032] Add/Change the Action String ("Say Goodbye Forever")


This is from a "debug" version of my controller for the hack.  I also edited the CT - Object Menu Command BHAV to throw up errors if P1 is 4 (Declare Major) or 5 (Change Major).  However, it seems as if, even though I click on the option, CT - Object Menu Command BHAV is not being run at all for that option.  The odd thing is, it isn't totally broken.  If I choose any of the other options... such as the Grow Up, or other college related ones (Drop Out, Be Expelled, and Graduate), it works fine.  The interactions get queued up as they should, and with the debug version, I get the error thrown up as expected.

So... wtf? ??? The code looks correct to me.  And at one point, it was actually working... but now it's borked and I'm totally confused. :P

Basically, it seems like the options show up in the menu ok, but it's as if the game doesn't even recognize that the option was clicked.  I am fairly certain that I did not make any changes to those lines of code.  I pretty much just added stuff after them.  I even looked at the Pie Menus in the interaction package, and those also seem to be relatively unchanged.  It might be something simple that I am clearly overlooking, but I'm just too frustrated and exhausted to see it. :(

Anyhew, I'll attach the debug package for anyone who might be willing to download it and take a closer look.  I'd appreciate any help.


Ste


Title: Re: Help needed with CT - Object Menu options
Post by: dizzy on 2007 June 08, 06:25:53
This is just my knee-jerk reaction, but I think you need ":=" instead of "==" on those Temp lines.


Title: Re: Help needed with CT - Object Menu options
Post by: syberspunk on 2007 June 08, 13:51:52
This is just my knee-jerk reaction, but I think you need ":=" instead of "==" on those Temp lines.

I was thinking about that... but it had worked previously (before I added all the other new YA related options).  The line before those I emboldened:

Quote
   001D : 1007 : 0900000A00000A000A0000010000 : 01 : 001E : 0022
[private 0x1007] Interaction - Choose Major - TEST (Param 0x0000)

I actually have this BHAV set T0 to 4 or 5 depending on whether the sim in question (P0) has a major set already or not.  It should return T0 as 4 if no major is set, and T0 as 5 if the sim already has one.

Do I necessarily have to specifically set T0 inside the CT - Object Menu BHAV itself?  I mean... since I am already checking if T0 == 4, and the option correctly shows up on the pie menu... then... if that option is selected, would it not pass that through to CT - Object Menu Command properly?

Or do I actually have to do something retarded like:

Quote
     001E : 0002 : 0000040000020800000000000000 : 00 : 001F : 0021
[prim 0x0002] Expression (Temp 0x0000 == Literal 0x0004)

     001F : 0002 : 0000040000050800000000000000 : 00 : 0020 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0004)

     0020 : 0032 : 0000000003000000000000000000 : 01 : 0022 : FFFC
[prim 0x0032] Add/Change the Action String ("College.../Registrar - Declare Major")

     0021 : 0002 : 0000050000020800000000000000 : 00 : 0022 : 0024
[prim 0x0002] Expression (Temp 0x0000 == Literal 0x0005)

     0022 : 0002 : 0000050000050800000000000000 : 00 : 0023 : FFFC
[prim 0x0002] Expression (Temp 0x0000 := Literal 0x0005)

     0023 : 0032 : 0000000004000000000000000000 : 01 : 0024 : FFFC
[prim 0x0032] Add/Change the Action String ("College.../Registrar - Change Major")

That sorta seems redundant... no? ???

Ste

ETA:

Ok, I figured it out.  Since I had disconnected that part above...

I needed to set the Stack Object back properly before setting T0 and the Add/Change String.  Stupid little mistake that I missed.  Gah.