Merge pull request #236 from robojumper/d_a_salbage_obj

d_a_salbage_obj OK
This commit is contained in:
robojumper
2025-09-15 22:23:46 +02:00
committed by GitHub
27 changed files with 1079 additions and 295 deletions
@@ -4,11 +4,11 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global
__register_global_object = .text:0x00000070; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
dAcODivinerCrystal_c_classInit__Fv = .text:0x000000F0; // type:function size:0x1A8
fn_592_2A0 = .text:0x000002A0; // type:function size:0x58
__dt__33sFState_c<20dAcODivinerCrystal_c>Fv = .text:0x00000300; // type:function size:0x58
__dt__36sFStateFct_c<20dAcODivinerCrystal_c>Fv = .text:0x00000360; // type:function size:0x6C
__dt__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000003D0; // type:function size:0xA0
__dt__59sFStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000470; // type:function size:0xA4
__dt__15dShadowCircle_cFv = .text:0x000002A0; // type:function size:0x58
__dt__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000300; // type:function size:0x58
__dt__31sFStateFct_c<15dAcSalbageObj_c>Fv = .text:0x00000360; // type:function size:0x6C
__dt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000003D0; // type:function size:0xA0
__dt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000470; // type:function size:0xA4
fn_592_520 = .text:0x00000520; // type:function size:0x40
fn_592_560 = .text:0x00000560; // type:function size:0x168
fn_592_6D0 = .text:0x000006D0; // type:function size:0x2C4
@@ -18,7 +18,7 @@ fn_592_A30 = .text:0x00000A30; // type:function size:0x5C
fn_592_A90 = .text:0x00000A90; // type:function size:0x8C
fn_592_B20 = .text:0x00000B20; // type:function size:0x50
fn_592_B70 = .text:0x00000B70; // type:function size:0xB4
getStateID__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C30; // type:function size:0x10
getStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C30; // type:function size:0x10
fn_592_C40 = .text:0x00000C40; // type:function size:0xB4
fn_592_D00 = .text:0x00000D00; // type:function size:0x58
fn_592_D60 = .text:0x00000D60; // type:function size:0x98
@@ -40,25 +40,25 @@ fn_592_10A0 = .text:0x000010A0; // type:function size:0xC
fn_592_10B0 = .text:0x000010B0; // type:function size:0xC
fn_592_10C0 = .text:0x000010C0; // type:function size:0xC
__dt__20dAcODivinerCrystal_cFv = .text:0x000010D0; // type:function size:0x138
executeState__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001210; // type:function size:0x10
changeState__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00001220; // type:function size:0x10
getOldStateID__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001230; // type:function size:0x10
build__36sFStateFct_c<20dAcODivinerCrystal_c>FRC12sStateIDIf_c = .text:0x00001240; // type:function size:0x60
dispose__36sFStateFct_c<20dAcODivinerCrystal_c>FRP10sStateIf_c = .text:0x000012A0; // type:function size:0xC
initialize__33sFState_c<20dAcODivinerCrystal_c>Fv = .text:0x000012B0; // type:function size:0x1C
execute__33sFState_c<20dAcODivinerCrystal_c>Fv = .text:0x000012D0; // type:function size:0x1C
finalize__33sFState_c<20dAcODivinerCrystal_c>Fv = .text:0x000012F0; // type:function size:0x1C
initializeState__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001310; // type:function size:0x10
finalizeState__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001320; // type:function size:0x10
refreshState__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001330; // type:function size:0x10
getState__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001340; // type:function size:0x10
getNewStateID__89sStateMgr_c<20dAcODivinerCrystal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001350; // type:function size:0x10
executeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001210; // type:function size:0x10
changeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00001220; // type:function size:0x10
getOldStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001230; // type:function size:0x10
build__31sFStateFct_c<15dAcSalbageObj_c>FRC12sStateIDIf_c = .text:0x00001240; // type:function size:0x60
dispose__31sFStateFct_c<15dAcSalbageObj_c>FRP10sStateIf_c = .text:0x000012A0; // type:function size:0xC
initialize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x000012B0; // type:function size:0x1C
execute__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x000012D0; // type:function size:0x1C
finalize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x000012F0; // type:function size:0x1C
initializeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001310; // type:function size:0x10
finalizeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001320; // type:function size:0x10
refreshState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001330; // type:function size:0x10
getState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001340; // type:function size:0x10
getNewStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001350; // type:function size:0x10
__sinit_\d_a_obj_diviner_crystal_cpp = .text:0x00001360; // type:function size:0x1DC scope:local
__dt__35sFStateID_c<20dAcODivinerCrystal_c>Fv = .text:0x00001540; // type:function size:0x58
fn_592_15A0 = .text:0x000015A0; // type:function size:0x5C
fn_592_1600 = .text:0x00001600; // type:function size:0xC
fn_592_1610 = .text:0x00001610; // type:function size:0xDC
fn_592_16F0 = .text:0x000016F0; // type:function size:0xE0
__dt__42sFStateVirtualID_c<20dAcODivinerCrystal_c>Fv = .text:0x000015A0; // type:function size:0x5C
baseID_DemoThrow<15dAcSalbageObj_c>__Fv_RC12sStateIDIf_c = .text:0x00001600; // type:function size:0xC
number__42sFStateVirtualID_c<20dAcODivinerCrystal_c>CFv = .text:0x00001610; // type:function size:0xDC
superID__42sFStateVirtualID_c<20dAcODivinerCrystal_c>CFv = .text:0x000016F0; // type:function size:0xE0
isSameName__35sFStateID_c<20dAcODivinerCrystal_c>CFPCc = .text:0x000017D0; // type:function size:0x88
initializeState__35sFStateID_c<20dAcODivinerCrystal_c>CFR20dAcODivinerCrystal_c = .text:0x00001860; // type:function size:0x30
executeState__35sFStateID_c<20dAcODivinerCrystal_c>CFR20dAcODivinerCrystal_c = .text:0x00001890; // type:function size:0x30
@@ -84,14 +84,14 @@ g_profile_OBJ_DIVINER_CRYSTAL = .data:0x00000000; // type:object size:0x40 data:
lbl_592_data_40 = .data:0x00000040; // type:object size:0x14
lbl_592_data_54 = .data:0x00000054; // type:object size:0x14
lbl_592_data_68 = .data:0x00000068; // type:object size:0x48
lbl_592_data_B0 = .data:0x000000B0; // type:object size:0x100
lbl_592_data_1B0 = .data:0x000001B0; // type:object size:0x30
lbl_592_data_1E0 = .data:0x000001E0; // type:object size:0x30
lbl_592_data_210 = .data:0x00000210; // type:object size:0x18
lbl_592_data_228 = .data:0x00000228; // type:object size:0x44
lbl_592_data_26C = .data:0x0000026C; // type:object size:0xA0
lbl_592_data_30C = .data:0x0000030C; // type:object size:0x34
lbl_592_data_340 = .data:0x00000340; // type:object size:0x34
__vt__20dAcODivinerCrystal_c = .data:0x000000B0; // type:object size:0x100
__vt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c> = .data:0x000001B0; // type:object size:0x30
__vt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000001E0; // type:object size:0x30
__vt__31sFStateFct_c<15dAcSalbageObj_c> = .data:0x00000210; // type:object size:0x18
__vt__28sFState_c<15dAcSalbageObj_c> = .data:0x00000228; // type:object size:0x44
__vt__15dShadowCircle_c = .data:0x0000026C; // type:object size:0xA0
__vt__42sFStateVirtualID_c<20dAcODivinerCrystal_c> = .data:0x0000030C; // type:object size:0x34
__vt__35sFStateID_c<20dAcODivinerCrystal_c> = .data:0x00000340; // type:object size:0x34
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_592_bss_8 = .bss:0x00000008; // type:object size:0x50 data:4byte
lbl_592_bss_58 = .bss:0x00000058; // type:object size:0x30 data:4byte
@@ -4,11 +4,11 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global
__register_global_object = .text:0x00000070; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
dAcOpotSal_c_classInit__Fv = .text:0x000000F0; // type:function size:0x14C
fn_100_240 = .text:0x00000240; // type:function size:0x58
__dt__25sFState_c<12dAcOpotSal_c>Fv = .text:0x000002A0; // type:function size:0x58
__dt__28sFStateFct_c<12dAcOpotSal_c>Fv = .text:0x00000300; // type:function size:0x6C
__dt__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000370; // type:function size:0xA0
__dt__51sFStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000410; // type:function size:0xA4
__dt__15dShadowCircle_cFv = .text:0x00000240; // type:function size:0x58
__dt__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x000002A0; // type:function size:0x58
__dt__31sFStateFct_c<15dAcSalbageObj_c>Fv = .text:0x00000300; // type:function size:0x6C
__dt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000370; // type:function size:0xA0
__dt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000410; // type:function size:0xA4
fn_100_4C0 = .text:0x000004C0; // type:function size:0x40
AcOPotSal__initModels = .text:0x00000500; // type:function size:0xF4
AcOPotSal__init = .text:0x00000600; // type:function size:0x130
@@ -36,27 +36,27 @@ fn_100_B50 = .text:0x00000B50; // type:function size:0xC
fn_100_B60 = .text:0x00000B60; // type:function size:0xC
fn_100_B70 = .text:0x00000B70; // type:function size:0xC
__dt__12dAcOpotSal_cFv = .text:0x00000B80; // type:function size:0x120
executeState__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000CA0; // type:function size:0x10
changeState__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000CB0; // type:function size:0x10
getStateID__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000CC0; // type:function size:0x10
getOldStateID__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000CD0; // type:function size:0x10
build__28sFStateFct_c<12dAcOpotSal_c>FRC12sStateIDIf_c = .text:0x00000CE0; // type:function size:0x60
dispose__28sFStateFct_c<12dAcOpotSal_c>FRP10sStateIf_c = .text:0x00000D40; // type:function size:0xC
initialize__25sFState_c<12dAcOpotSal_c>Fv = .text:0x00000D50; // type:function size:0x1C
execute__25sFState_c<12dAcOpotSal_c>Fv = .text:0x00000D70; // type:function size:0x1C
finalize__25sFState_c<12dAcOpotSal_c>Fv = .text:0x00000D90; // type:function size:0x1C
initializeState__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000DB0; // type:function size:0x10
finalizeState__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000DC0; // type:function size:0x10
refreshState__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000DD0; // type:function size:0x10
getState__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000DE0; // type:function size:0x10
getNewStateID__81sStateMgr_c<12dAcOpotSal_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000DF0; // type:function size:0x10
executeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000CA0; // type:function size:0x10
changeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000CB0; // type:function size:0x10
getStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000CC0; // type:function size:0x10
getOldStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000CD0; // type:function size:0x10
build__31sFStateFct_c<15dAcSalbageObj_c>FRC12sStateIDIf_c = .text:0x00000CE0; // type:function size:0x60
dispose__31sFStateFct_c<15dAcSalbageObj_c>FRP10sStateIf_c = .text:0x00000D40; // type:function size:0xC
initialize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000D50; // type:function size:0x1C
execute__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000D70; // type:function size:0x1C
finalize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000D90; // type:function size:0x1C
initializeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000DB0; // type:function size:0x10
finalizeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000DC0; // type:function size:0x10
refreshState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000DD0; // type:function size:0x10
getState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000DE0; // type:function size:0x10
getNewStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000DF0; // type:function size:0x10
__sinit_\d_a_obj_pot_sal_cpp = .text:0x00000E00; // type:function size:0x1E0 scope:local
__dt__27sFStateID_c<12dAcOpotSal_c>Fv = .text:0x00000FE0; // type:function size:0x58
fn_100_1040 = .text:0x00001040; // type:function size:0x5C
fn_100_10A0 = .text:0x000010A0; // type:function size:0xC
fn_100_10B0 = .text:0x000010B0; // type:function size:0xC
fn_100_10C0 = .text:0x000010C0; // type:function size:0xDC
fn_100_11A0 = .text:0x000011A0; // type:function size:0xE0
__dt__34sFStateVirtualID_c<12dAcOpotSal_c>Fv = .text:0x00001040; // type:function size:0x5C
baseID_After<15dAcSalbageObj_c>__Fv_RC12sStateIDIf_c = .text:0x000010A0; // type:function size:0xC
baseID_DemoThrow<15dAcSalbageObj_c>__Fv_RC12sStateIDIf_c = .text:0x000010B0; // type:function size:0xC
number__34sFStateVirtualID_c<12dAcOpotSal_c>CFv = .text:0x000010C0; // type:function size:0xDC
superID__34sFStateVirtualID_c<12dAcOpotSal_c>CFv = .text:0x000011A0; // type:function size:0xE0
isSameName__27sFStateID_c<12dAcOpotSal_c>CFPCc = .text:0x00001280; // type:function size:0x88
initializeState__27sFStateID_c<12dAcOpotSal_c>CFR12dAcOpotSal_c = .text:0x00001310; // type:function size:0x30
executeState__27sFStateID_c<12dAcOpotSal_c>CFR12dAcOpotSal_c = .text:0x00001340; // type:function size:0x30
@@ -75,13 +75,13 @@ lbl_100_rodata_30 = .rodata:0x00000030; // type:object size:0x4 align:4 data:flo
lbl_100_rodata_34 = .rodata:0x00000034; // type:object size:0x4 align:4 data:float
g_profile_OBJ_POT_SAL = .data:0x00000000; // type:object size:0x40 data:4byte
lbl_100_data_40 = .data:0x00000040; // type:object size:0x20
AcOPotSal__vtable = .data:0x00000060; // type:object size:0x100
lbl_100_data_160 = .data:0x00000160; // type:object size:0x30
lbl_100_data_190 = .data:0x00000190; // type:object size:0x30
lbl_100_data_1C0 = .data:0x000001C0; // type:object size:0x18
lbl_100_data_1D8 = .data:0x000001D8; // type:object size:0x44
lbl_100_data_21C = .data:0x0000021C; // type:object size:0x90
lbl_100_data_2AC = .data:0x000002AC; // type:object size:0x68
__vt__12dAcOpotSal_c = .data:0x00000060; // type:object size:0x100
__vt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c> = .data:0x00000160; // type:object size:0x30
__vt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000190; // type:object size:0x30
__vt__31sFStateFct_c<15dAcSalbageObj_c> = .data:0x000001C0; // type:object size:0x18
__vt__28sFState_c<15dAcSalbageObj_c> = .data:0x000001D8; // type:object size:0x44
__vt__15dShadowCircle_c = .data:0x0000021C; // type:object size:0x90
__vt__34sFStateVirtualID_c<12dAcOpotSal_c> = .data:0x000002AC; // type:object size:0x68
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_100_bss_8 = .bss:0x00000008; // type:object size:0x4C data:4byte
lbl_100_bss_54 = .bss:0x00000054; // type:object size:0x34 data:4byte
@@ -5,10 +5,10 @@ __register_global_object = .text:0x00000070; // type:function size:0x1C scope:gl
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
dAcObjPropera_c_classInit__Fv = .text:0x000000F0; // type:function size:0x148
fn_575_240 = .text:0x00000240; // type:function size:0x58
__dt__28sFState_c<15dAcObjPropera_c>Fv = .text:0x000002A0; // type:function size:0x58
__dt__31sFStateFct_c<15dAcObjPropera_c>Fv = .text:0x00000300; // type:function size:0x6C
__dt__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000370; // type:function size:0xA0
__dt__54sFStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000410; // type:function size:0xA4
__dt__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x000002A0; // type:function size:0x58
__dt__31sFStateFct_c<15dAcSalbageObj_c>Fv = .text:0x00000300; // type:function size:0x6C
__dt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000370; // type:function size:0xA0
__dt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000410; // type:function size:0xA4
fn_575_4C0 = .text:0x000004C0; // type:function size:0x40
fn_575_500 = .text:0x00000500; // type:function size:0x9C
fn_575_5A0 = .text:0x000005A0; // type:function size:0x98
@@ -20,7 +20,7 @@ fn_575_7F0 = .text:0x000007F0; // type:function size:0x4
fn_575_800 = .text:0x00000800; // type:function size:0xC
fn_575_810 = .text:0x00000810; // type:function size:0xC
fn_575_820 = .text:0x00000820; // type:function size:0xB4
getStateID__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000008E0; // type:function size:0x10
getStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x000008E0; // type:function size:0x10
fn_575_8F0 = .text:0x000008F0; // type:function size:0x50
fn_575_940 = .text:0x00000940; // type:function size:0x8
fn_575_950 = .text:0x00000950; // type:function size:0x8
@@ -31,25 +31,25 @@ fn_575_990 = .text:0x00000990; // type:function size:0xC
fn_575_9A0 = .text:0x000009A0; // type:function size:0xC
fn_575_9B0 = .text:0x000009B0; // type:function size:0xC
__dt__15dAcObjPropera_cFv = .text:0x000009C0; // type:function size:0x120
executeState__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000AE0; // type:function size:0x10
changeState__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000AF0; // type:function size:0x10
getOldStateID__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000B00; // type:function size:0x10
build__31sFStateFct_c<15dAcObjPropera_c>FRC12sStateIDIf_c = .text:0x00000B10; // type:function size:0x60
dispose__31sFStateFct_c<15dAcObjPropera_c>FRP10sStateIf_c = .text:0x00000B70; // type:function size:0xC
initialize__28sFState_c<15dAcObjPropera_c>Fv = .text:0x00000B80; // type:function size:0x1C
execute__28sFState_c<15dAcObjPropera_c>Fv = .text:0x00000BA0; // type:function size:0x1C
finalize__28sFState_c<15dAcObjPropera_c>Fv = .text:0x00000BC0; // type:function size:0x1C
initializeState__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000BE0; // type:function size:0x10
finalizeState__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000BF0; // type:function size:0x10
refreshState__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000C00; // type:function size:0x10
getState__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C10; // type:function size:0x10
getNewStateID__84sStateMgr_c<15dAcObjPropera_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C20; // type:function size:0x10
executeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000AE0; // type:function size:0x10
changeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000AF0; // type:function size:0x10
getOldStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000B00; // type:function size:0x10
build__31sFStateFct_c<15dAcSalbageObj_c>FRC12sStateIDIf_c = .text:0x00000B10; // type:function size:0x60
dispose__31sFStateFct_c<15dAcSalbageObj_c>FRP10sStateIf_c = .text:0x00000B70; // type:function size:0xC
initialize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000B80; // type:function size:0x1C
execute__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000BA0; // type:function size:0x1C
finalize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000BC0; // type:function size:0x1C
initializeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000BE0; // type:function size:0x10
finalizeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000BF0; // type:function size:0x10
refreshState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000C00; // type:function size:0x10
getState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C10; // type:function size:0x10
getNewStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C20; // type:function size:0x10
__sinit_\d_a_obj_propera_cpp = .text:0x00000C30; // type:function size:0x124 scope:local
__dt__30sFStateID_c<15dAcObjPropera_c>Fv = .text:0x00000D60; // type:function size:0x58
fn_575_DC0 = .text:0x00000DC0; // type:function size:0x5C
fn_575_E20 = .text:0x00000E20; // type:function size:0xC
fn_575_E30 = .text:0x00000E30; // type:function size:0xDC
fn_575_F10 = .text:0x00000F10; // type:function size:0xE0
__dt__37sFStateVirtualID_c<15dAcObjPropera_c>Fv = .text:0x00000DC0; // type:function size:0x5C
baseID_DemoThrow<15dAcSalbageObj_c>__Fv_RC12sStateIDIf_c = .text:0x00000E20; // type:function size:0xC
number__37sFStateVirtualID_c<15dAcObjPropera_c>CFv = .text:0x00000E30; // type:function size:0xDC
superID__37sFStateVirtualID_c<15dAcObjPropera_c>CFv = .text:0x00000F10; // type:function size:0xE0
isSameName__30sFStateID_c<15dAcObjPropera_c>CFPCc = .text:0x00000FF0; // type:function size:0x88
initializeState__30sFStateID_c<15dAcObjPropera_c>CFR15dAcObjPropera_c = .text:0x00001080; // type:function size:0x30
executeState__30sFStateID_c<15dAcObjPropera_c>CFR15dAcObjPropera_c = .text:0x000010B0; // type:function size:0x30
@@ -75,13 +75,13 @@ lbl_575_data_20 = .data:0x00000020; // type:object size:0x4 data:4byte
lbl_575_data_24 = .data:0x00000024; // type:object size:0x18
lbl_575_data_3C = .data:0x0000003C; // type:object size:0x18
lbl_575_data_54 = .data:0x00000054; // type:object size:0x24
lbl_575_data_78 = .data:0x00000078; // type:object size:0x100
lbl_575_data_178 = .data:0x00000178; // type:object size:0x30
lbl_575_data_1A8 = .data:0x000001A8; // type:object size:0x30
lbl_575_data_1D8 = .data:0x000001D8; // type:object size:0x18
lbl_575_data_1F0 = .data:0x000001F0; // type:object size:0x44
lbl_575_data_234 = .data:0x00000234; // type:object size:0x54
lbl_575_data_288 = .data:0x00000288; // type:object size:0x68
__vt__15dAcObjPropera_c = .data:0x00000078; // type:object size:0x100
__vt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c> = .data:0x00000178; // type:object size:0x30
__vt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000001A8; // type:object size:0x30
__vt__31sFStateFct_c<15dAcSalbageObj_c> = .data:0x000001D8; // type:object size:0x18
__vt__28sFState_c<15dAcSalbageObj_c> = .data:0x000001F0; // type:object size:0x44
__vt__15dShadowCircle_c = .data:0x00000234; // type:object size:0x54
__vt__37sFStateVirtualID_c<15dAcObjPropera_c> = .data:0x00000288; // type:object size:0x68
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_575_bss_8 = .bss:0x00000008; // type:object size:0xC
lbl_575_bss_14 = .bss:0x00000014; // type:object size:0x34 data:4byte
@@ -4,11 +4,11 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global
__register_global_object = .text:0x00000070; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
dAcObjRoulette_c_classInit__Fv = .text:0x000000F0; // type:function size:0x170
fn_576_260 = .text:0x00000260; // type:function size:0x58
__dt__29sFState_c<16dAcObjRoulette_c>Fv = .text:0x000002C0; // type:function size:0x58
__dt__32sFStateFct_c<16dAcObjRoulette_c>Fv = .text:0x00000320; // type:function size:0x6C
__dt__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000390; // type:function size:0xA0
__dt__55sFStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000430; // type:function size:0xA4
__dt__15dShadowCircle_cFv = .text:0x00000260; // type:function size:0x58
__dt__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x000002C0; // type:function size:0x58
__dt__31sFStateFct_c<15dAcSalbageObj_c>Fv = .text:0x00000320; // type:function size:0x6C
__dt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000390; // type:function size:0xA0
__dt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000430; // type:function size:0xA4
fn_576_4E0 = .text:0x000004E0; // type:function size:0x40
AcObjRoulette__initModels = .text:0x00000520; // type:function size:0x13C
AcObjRoulette__init = .text:0x00000660; // type:function size:0x128
@@ -25,7 +25,7 @@ fn_576_B40 = .text:0x00000B40; // type:function size:0xC
fn_576_B50 = .text:0x00000B50; // type:function size:0xC
fn_576_B60 = .text:0x00000B60; // type:function size:0x8
fn_576_B70 = .text:0x00000B70; // type:function size:0xB4
getStateID__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C30; // type:function size:0x10
getStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C30; // type:function size:0x10
fn_576_C40 = .text:0x00000C40; // type:function size:0x50
fn_576_C90 = .text:0x00000C90; // type:function size:0x8
fn_576_CA0 = .text:0x00000CA0; // type:function size:0xC
@@ -35,26 +35,26 @@ fn_576_CD0 = .text:0x00000CD0; // type:function size:0xC
fn_576_CE0 = .text:0x00000CE0; // type:function size:0xC
fn_576_CF0 = .text:0x00000CF0; // type:function size:0xC
__dt__16dAcObjRoulette_cFv = .text:0x00000D00; // type:function size:0x120
executeState__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000E20; // type:function size:0x10
changeState__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000E30; // type:function size:0x10
getOldStateID__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000E40; // type:function size:0x10
build__32sFStateFct_c<16dAcObjRoulette_c>FRC12sStateIDIf_c = .text:0x00000E50; // type:function size:0x60
dispose__32sFStateFct_c<16dAcObjRoulette_c>FRP10sStateIf_c = .text:0x00000EB0; // type:function size:0xC
initialize__29sFState_c<16dAcObjRoulette_c>Fv = .text:0x00000EC0; // type:function size:0x1C
execute__29sFState_c<16dAcObjRoulette_c>Fv = .text:0x00000EE0; // type:function size:0x1C
finalize__29sFState_c<16dAcObjRoulette_c>Fv = .text:0x00000F00; // type:function size:0x1C
initializeState__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000F20; // type:function size:0x10
finalizeState__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000F30; // type:function size:0x10
refreshState__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000F40; // type:function size:0x10
getState__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000F50; // type:function size:0x10
getNewStateID__85sStateMgr_c<16dAcObjRoulette_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000F60; // type:function size:0x10
executeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000E20; // type:function size:0x10
changeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000E30; // type:function size:0x10
getOldStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000E40; // type:function size:0x10
build__31sFStateFct_c<15dAcSalbageObj_c>FRC12sStateIDIf_c = .text:0x00000E50; // type:function size:0x60
dispose__31sFStateFct_c<15dAcSalbageObj_c>FRP10sStateIf_c = .text:0x00000EB0; // type:function size:0xC
initialize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000EC0; // type:function size:0x1C
execute__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000EE0; // type:function size:0x1C
finalize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000F00; // type:function size:0x1C
initializeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000F20; // type:function size:0x10
finalizeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000F30; // type:function size:0x10
refreshState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000F40; // type:function size:0x10
getState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000F50; // type:function size:0x10
getNewStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000F60; // type:function size:0x10
__sinit_\d_a_obj_roulette_cpp = .text:0x00000F70; // type:function size:0x1E0 scope:local
__dt__31sFStateID_c<16dAcObjRoulette_c>Fv = .text:0x00001150; // type:function size:0x58
fn_576_11B0 = .text:0x000011B0; // type:function size:0x5C
fn_576_1210 = .text:0x00001210; // type:function size:0xC
fn_576_1220 = .text:0x00001220; // type:function size:0xC
fn_576_1230 = .text:0x00001230; // type:function size:0xDC
fn_576_1310 = .text:0x00001310; // type:function size:0xE0
__dt__38sFStateVirtualID_c<16dAcObjRoulette_c>Fv = .text:0x000011B0; // type:function size:0x5C
baseID_Wait<15dAcSalbageObj_c>__Fv_RC12sStateIDIf_c = .text:0x00001210; // type:function size:0xC
baseID_DemoThrow<15dAcSalbageObj_c>__Fv_RC12sStateIDIf_c = .text:0x00001220; // type:function size:0xC
number__38sFStateVirtualID_c<16dAcObjRoulette_c>CFv = .text:0x00001230; // type:function size:0xDC
superID__38sFStateVirtualID_c<16dAcObjRoulette_c>CFv = .text:0x00001310; // type:function size:0xE0
isSameName__31sFStateID_c<16dAcObjRoulette_c>CFPCc = .text:0x000013F0; // type:function size:0x88
initializeState__31sFStateID_c<16dAcObjRoulette_c>CFR16dAcObjRoulette_c = .text:0x00001480; // type:function size:0x30
executeState__31sFStateID_c<16dAcObjRoulette_c>CFR16dAcObjRoulette_c = .text:0x000014B0; // type:function size:0x30
@@ -79,12 +79,12 @@ g_profile_OBJ_ROULETTE = .data:0x00000000; // type:object size:0x10 data:4byte
lbl_576_data_10 = .data:0x00000010; // type:object size:0x10
lbl_576_data_20 = .data:0x00000020; // type:object size:0x28
lbl_576_data_48 = .data:0x00000048; // type:object size:0x20
AcObjRoulette__vtable = .data:0x00000068; // type:object size:0x100
lbl_576_data_168 = .data:0x00000168; // type:object size:0x30
lbl_576_data_198 = .data:0x00000198; // type:object size:0x30
lbl_576_data_1C8 = .data:0x000001C8; // type:object size:0x18
lbl_576_data_1E0 = .data:0x000001E0; // type:object size:0x44
lbl_576_data_224 = .data:0x00000224; // type:object size:0x98
lbl_576_data_2BC = .data:0x000002BC; // type:object size:0x68
__vt__16dAcObjRoulette_c = .data:0x00000068; // type:object size:0x100
__vt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c> = .data:0x00000168; // type:object size:0x30
__vt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000198; // type:object size:0x30
__vt__31sFStateFct_c<15dAcSalbageObj_c> = .data:0x000001C8; // type:object size:0x18
__vt__28sFState_c<15dAcSalbageObj_c> = .data:0x000001E0; // type:object size:0x44
__vt__15dShadowCircle_c = .data:0x00000224; // type:object size:0x98
__vt__38sFStateVirtualID_c<16dAcObjRoulette_c> = .data:0x000002BC; // type:object size:0x68
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_576_bss_8 = .bss:0x00000008; // type:object size:0x80 data:4byte
@@ -4,11 +4,11 @@ _unresolved = .text:0x00000060; // type:function size:0x4 scope:global
__register_global_object = .text:0x00000070; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
dAcOWaterJar_c_classInit__Fv = .text:0x000000F0; // type:function size:0x188
fn_601_280 = .text:0x00000280; // type:function size:0x58
__dt__27sFState_c<14dAcOWaterJar_c>Fv = .text:0x000002E0; // type:function size:0x58
__dt__30sFStateFct_c<14dAcOWaterJar_c>Fv = .text:0x00000340; // type:function size:0x6C
__dt__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000003B0; // type:function size:0xA0
__dt__53sFStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000450; // type:function size:0xA4
__dt__15dShadowCircle_cFv = .text:0x00000280; // type:function size:0x58
__dt__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x000002E0; // type:function size:0x58
__dt__31sFStateFct_c<15dAcSalbageObj_c>Fv = .text:0x00000340; // type:function size:0x6C
__dt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x000003B0; // type:function size:0xA0
__dt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000450; // type:function size:0xA4
fn_601_500 = .text:0x00000500; // type:function size:0x40
AcOWaterJar__initModels = .text:0x00000540; // type:function size:0x160
AcOWaterJar__init = .text:0x000006A0; // type:function size:0x190
@@ -21,7 +21,7 @@ fn_601_AE0 = .text:0x00000AE0; // type:function size:0x4
fn_601_AF0 = .text:0x00000AF0; // type:function size:0x4
AcOWaterJar__shouldHaveWaterInIt = .text:0x00000B00; // type:function size:0x60
fn_601_B60 = .text:0x00000B60; // type:function size:0xA4
getStateID__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C10; // type:function size:0x10
getStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000C10; // type:function size:0x10
fn_601_C20 = .text:0x00000C20; // type:function size:0xC
fn_601_C30 = .text:0x00000C30; // type:function size:0xC
fn_601_C40 = .text:0x00000C40; // type:function size:0x4
@@ -36,25 +36,25 @@ fn_601_D70 = .text:0x00000D70; // type:function size:0xC
fn_601_D80 = .text:0x00000D80; // type:function size:0xC
fn_601_D90 = .text:0x00000D90; // type:function size:0xC
__dt__14dAcOWaterJar_cFv = .text:0x00000DA0; // type:function size:0x150
executeState__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000EF0; // type:function size:0x10
changeState__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000F00; // type:function size:0x10
getOldStateID__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000F10; // type:function size:0x10
build__30sFStateFct_c<14dAcOWaterJar_c>FRC12sStateIDIf_c = .text:0x00000F20; // type:function size:0x60
dispose__30sFStateFct_c<14dAcOWaterJar_c>FRP10sStateIf_c = .text:0x00000F80; // type:function size:0xC
initialize__27sFState_c<14dAcOWaterJar_c>Fv = .text:0x00000F90; // type:function size:0x1C
execute__27sFState_c<14dAcOWaterJar_c>Fv = .text:0x00000FB0; // type:function size:0x1C
finalize__27sFState_c<14dAcOWaterJar_c>Fv = .text:0x00000FD0; // type:function size:0x1C
initializeState__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000FF0; // type:function size:0x10
finalizeState__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001000; // type:function size:0x10
refreshState__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001010; // type:function size:0x10
getState__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001020; // type:function size:0x10
getNewStateID__83sStateMgr_c<14dAcOWaterJar_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001030; // type:function size:0x10
executeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000EF0; // type:function size:0x10
changeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000F00; // type:function size:0x10
getOldStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00000F10; // type:function size:0x10
build__31sFStateFct_c<15dAcSalbageObj_c>FRC12sStateIDIf_c = .text:0x00000F20; // type:function size:0x60
dispose__31sFStateFct_c<15dAcSalbageObj_c>FRP10sStateIf_c = .text:0x00000F80; // type:function size:0xC
initialize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000F90; // type:function size:0x1C
execute__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000FB0; // type:function size:0x1C
finalize__28sFState_c<15dAcSalbageObj_c>Fv = .text:0x00000FD0; // type:function size:0x1C
initializeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000FF0; // type:function size:0x10
finalizeState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001000; // type:function size:0x10
refreshState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001010; // type:function size:0x10
getState__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001020; // type:function size:0x10
getNewStateID__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001030; // type:function size:0x10
__sinit_\d_a_obj_water_jar_cpp = .text:0x00001040; // type:function size:0x124 scope:local
__dt__29sFStateID_c<14dAcOWaterJar_c>Fv = .text:0x00001170; // type:function size:0x58
fn_601_11D0 = .text:0x000011D0; // type:function size:0x5C
fn_601_1230 = .text:0x00001230; // type:function size:0xC
fn_601_1240 = .text:0x00001240; // type:function size:0xDC
fn_601_1320 = .text:0x00001320; // type:function size:0xE0
__dt__36sFStateVirtualID_c<14dAcOWaterJar_c>Fv = .text:0x000011D0; // type:function size:0x5C
baseID_DemoThrow<15dAcSalbageObj_c>__Fv_RC12sStateIDIf_c = .text:0x00001230; // type:function size:0xC
number__36sFStateVirtualID_c<14dAcOWaterJar_c>CFv = .text:0x00001240; // type:function size:0xDC
superID__36sFStateVirtualID_c<14dAcOWaterJar_c>CFv = .text:0x00001320; // type:function size:0xE0
isSameName__29sFStateID_c<14dAcOWaterJar_c>CFPCc = .text:0x00001400; // type:function size:0x88
initializeState__29sFStateID_c<14dAcOWaterJar_c>CFR14dAcOWaterJar_c = .text:0x00001490; // type:function size:0x30
executeState__29sFStateID_c<14dAcOWaterJar_c>CFR14dAcOWaterJar_c = .text:0x000014C0; // type:function size:0x30
@@ -78,12 +78,12 @@ lbl_601_data_10 = .data:0x00000010; // type:object size:0x70
lbl_601_data_80 = .data:0x00000080; // type:object size:0x1C data:string
lbl_601_data_9C = .data:0x0000009C; // type:object size:0x4 data:4byte
lbl_601_data_A0 = .data:0x000000A0; // type:object size:0x8 data:4byte
AcOWaterJar__vtable = .data:0x000000A8; // type:object size:0x100
lbl_601_data_1A8 = .data:0x000001A8; // type:object size:0x30
lbl_601_data_1D8 = .data:0x000001D8; // type:object size:0x30
lbl_601_data_208 = .data:0x00000208; // type:object size:0x18
lbl_601_data_220 = .data:0x00000220; // type:object size:0x44
lbl_601_data_264 = .data:0x00000264; // type:object size:0x54
__vt__14dAcOWaterJar_c = .data:0x000000A8; // type:object size:0x100
__vt__54sFStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c> = .data:0x000001A8; // type:object size:0x30
__vt__84sStateMgr_c<15dAcSalbageObj_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000001D8; // type:object size:0x30
__vt__31sFStateFct_c<15dAcSalbageObj_c> = .data:0x00000208; // type:object size:0x18
__vt__28sFState_c<15dAcSalbageObj_c> = .data:0x00000220; // type:object size:0x44
__vt__15dShadowCircle_c = .data:0x00000264; // type:object size:0x54
lbl_601_data_2B8 = .data:0x000002B8; // type:object size:0x68
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_601_bss_8 = .bss:0x00000008; // type:object size:0xC
+3
View File
@@ -1264,12 +1264,15 @@ d/a/d_a_salbage_obj.cpp:
.ctors start:0x804DB7EC end:0x804DB7F0
.rodata start:0x804E9CD8 end:0x804E9E28
.data start:0x8052ACD0 end:0x8052B078
.sdata start:0x80572D08 end:0x80572D10
.sdata2 start:0x8057AE30 end:0x8057AE60
.bss start:0x805B2128 end:0x805B22E8
d/a/d_a_salbage_npc.cpp:
.text start:0x80192B00 end:0x80194080 align:16
.ctors start:0x804DB7F0 end:0x804DB7F4
.data start:0x8052B078 end:0x8052B618
.sdata2 start:0x8057AE60 end:0x8057AE80
.bss start:0x805B22E8 end:0x805B2428
d/d_pad_nav.cpp:
+148 -107
View File
@@ -3651,18 +3651,18 @@ ScrapperPickupMgr__update = .text:0x800A57C0; // type:function size:0x34
ScrapperPickupMgr__handlePickupIndex = .text:0x800A5800; // type:function size:0x11C
ScrapperPickupMgr__setupDeliverToActorLink = .text:0x800A5920; // type:function size:0xC0
fn_800A59E0 = .text:0x800A59E0; // type:function size:0x40
ScrapperPickupMgr__getSomeMatrix = .text:0x800A5A20; // type:function size:0x84
getCarryRotMtx__13dSalvageMgr_cCFRCl = .text:0x800A5A20; // type:function size:0x84
ScrapperPickupMgr__setPickupIndex = .text:0x800A5AB0; // type:function size:0x84
ScrapperPickupMgr__killSomeActors = .text:0x800A5B40; // type:function size:0x4C
deleteObjAndSlb__13dSalvageMgr_cFv = .text:0x800A5B40; // type:function size:0x4C
ScrapperPickupMgr__checkIsOnDeliveryStage2 = .text:0x800A5B90; // type:function size:0x1C
fn_800A5BB0 = .text:0x800A5BB0; // type:function size:0x5C
startedQuestForSalvageObj__13dSalvageMgr_cCFPC15dAcSalbageObj_c = .text:0x800A5BB0; // type:function size:0x5C
ScrapperPickupMgr__checkQuestStartedStoryflag = .text:0x800A5C10; // type:function size:0x7C
fn_800A5C90 = .text:0x800A5C90; // type:function size:0x5C
hasDowsingForSalvageObj__13dSalvageMgr_cCFPC15dAcSalbageObj_c = .text:0x800A5C90; // type:function size:0x5C
ScrapperPickupMgr__checkHasDowsing = .text:0x800A5CF0; // type:function size:0xB8
ScrapperPickupMgr__getActorId = .text:0x800A5DB0; // type:function size:0x18
fn_800A5DD0 = .text:0x800A5DD0; // type:function size:0x4
ScrapperPickupMgr__getCurrentPickupIndex = .text:0x800A5DE0; // type:function size:0x8
ScrapperPickupMgr__checkDeliveredStoryflag = .text:0x800A5DF0; // type:function size:0x7C
getCurrentSalvageObjId__13dSalvageMgr_cCFv = .text:0x800A5DE0; // type:function size:0x8
checkDeliveredStoryflag__13dSalvageMgr_cCFRCl = .text:0x800A5DF0; // type:function size:0x7C
ScrapperPickupMgr__unsetPickupStoryflag = .text:0x800A5E70; // type:function size:0xBC
ScrapperPickupMgr__checkPickupStoryflag = .text:0x800A5F30; // type:function size:0x7C
ScrapperPickupMgr__checkIsOnDeliveryStage = .text:0x800A5FB0; // type:function size:0x5C
@@ -10267,82 +10267,82 @@ fn_801908F0 = .text:0x801908F0; // type:function size:0xAC
fn_801909A0__15SaveTimeRelatedFv = .text:0x801909A0; // type:function size:0x40
fn_801909E0 = .text:0x801909E0; // type:function size:0x2C
fn_80190A10 = .text:0x80190A10; // type:function size:0x94
fn_80190AB0 = .text:0x80190AB0; // type:function size:0xC
fn_80190AC0 = .text:0x80190AC0; // type:function size:0xC
fn_80190AD0 = .text:0x80190AD0; // type:function size:0xC
fn_80190AE0 = .text:0x80190AE0; // type:function size:0xC
fn_80190AF0 = .text:0x80190AF0; // type:function size:0xC
fn_80190B00 = .text:0x80190B00; // type:function size:0xC
ScrapperCarriedRelated__setDemoThrowState = .text:0x80190B10; // type:function size:0x1C
AcSalbageObj__update = .text:0x80190B30; // type:function size:0xD0
AcSalbageObj__checkIsWaitState = .text:0x80190C00; // type:function size:0x50
AcSalbageObj__checkIsWaitOrDemoThrow = .text:0x80190C50; // type:function size:0xB4
fn_80190D10 = .text:0x80190D10; // type:function size:0x1D4
fn_80190EF0 = .text:0x80190EF0; // type:function size:0x8
fn_80190F00 = .text:0x80190F00; // type:function size:0x8
fn_80190F10 = .text:0x80190F10; // type:function size:0x8
AcSalbageObj__checkShouldDraw = .text:0x80190F20; // type:function size:0x58
fn_80190F80 = .text:0x80190F80; // type:function size:0x8
AcSalbageObj__draw = .text:0x80190F90; // type:function size:0x54
AcSalbageObj__update2 = .text:0x80190FF0; // type:function size:0xE0
AcSalbageObj__init = .text:0x801910D0; // type:function size:0x2A8
fn_80191380 = .text:0x80191380; // type:function size:0x8
fn_80191390 = .text:0x80191390; // type:function size:0xC
fn_801913A0 = .text:0x801913A0; // type:function size:0xC
AcSalbageObj__performInteraction = .text:0x801913B0; // type:function size:0xB0
fn_80191460 = .text:0x80191460; // type:function size:0x50
AcSalbageObj__addInteractionTarget = .text:0x801914B0; // type:function size:0xFC
fn_801915B0 = .text:0x801915B0; // type:function size:0x80
fn_80191630 = .text:0x80191630; // type:function size:0xB0
fn_801916E0 = .text:0x801916E0; // type:function size:0x78
fn_80191760 = .text:0x80191760; // type:function size:0x8
fn_80191770 = .text:0x80191770; // type:function size:0x8
fn_80191780 = .text:0x80191780; // type:function size:0x74
fn_80191800 = .text:0x80191800; // type:function size:0x8
fn_80191810 = .text:0x80191810; // type:function size:0x8
fn_80191820 = .text:0x80191820; // type:function size:0x17C
fn_801919A0 = .text:0x801919A0; // type:function size:0x88
fn_80191A30 = .text:0x80191A30; // type:function size:0x8
fn_80191A40 = .text:0x80191A40; // type:function size:0x1B0
fn_80191BF0 = .text:0x80191BF0; // type:function size:0x8
fn_80191C00 = .text:0x80191C00; // type:function size:0x8
AcSalbageObj__subTypeFromParams = .text:0x80191C10; // type:function size:0x10
AcSalbageObj__registerDowsingTarget = .text:0x80191C20; // type:function size:0x80
AcSalbageObj__getDowsingSlotIndex = .text:0x80191CA0; // type:function size:0x8
fn_80191CB0 = .text:0x80191CB0; // type:function size:0xC8
fn_80191D80 = .text:0x80191D80; // type:function size:0x4
AcSalbageObj__setStateCarried = .text:0x80191D90; // type:function size:0x10
fn_80191DA0 = .text:0x80191DA0; // type:function size:0x4
fn_80191DB0 = .text:0x80191DB0; // type:function size:0x4
fn_80191DC0 = .text:0x80191DC0; // type:function size:0x4
fn_80191DD0 = .text:0x80191DD0; // type:function size:0x4
fn_80191DE0 = .text:0x80191DE0; // type:function size:0x4
AcSalbageObj__killSomeActors = .text:0x80191DF0; // type:function size:0x8
fn_80191E00 = .text:0x80191E00; // type:function size:0x8
fn_80191E10 = .text:0x80191E10; // type:function size:0x4
fn_80191E20 = .text:0x80191E20; // type:function size:0x4
fn_80191E30 = .text:0x80191E30; // type:function size:0x4
fn_80191E40 = .text:0x80191E40; // type:function size:0x4
fn_80191E50 = .text:0x80191E50; // type:function size:0x164
fn_80191FC0 = .text:0x80191FC0; // type:function size:0xC
fn_80191FD0 = .text:0x80191FD0; // type:function size:0x4
fn_80191FE0 = .text:0x80191FE0; // type:function size:0x4
fn_80191FF0 = .text:0x80191FF0; // type:function size:0x4
fn_80192000 = .text:0x80192000; // type:function size:0x4
fn_80192010 = .text:0x80192010; // type:function size:0x4
fn_80192020 = .text:0x80192020; // type:function size:0x4
fn_80192030 = .text:0x80192030; // type:function size:0x100
ScrapperCarriedRelated__dtor = .text:0x80192130; // type:function size:0x40
fn_80192170 = .text:0x80192170; // type:function size:0xC
fn_80192180 = .text:0x80192180; // type:function size:0x30
fn_801921B0 = .text:0x801921B0; // type:function size:0x30
fn_801921E0 = .text:0x801921E0; // type:function size:0x30
AcSalbageObj__initStates = .text:0x80192210; // type:function size:0x5D8
AcSalbageObj__STATE_KILL__dtor = .text:0x801927F0; // type:function size:0x58
AcSalbageObj__dtor = .text:0x80192850; // type:function size:0x5C
fn_801928B0 = .text:0x801928B0; // type:function size:0xDC
fn_80192990 = .text:0x80192990; // type:function size:0xE0
fn_80192A70 = .text:0x80192A70; // type:function size:0x88
baseID_Wait<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80190AB0; // type:function size:0xC scope:local
baseID_Carried<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80190AC0; // type:function size:0xC scope:local
baseID_Demo<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80190AD0; // type:function size:0xC scope:local
baseID_DemoThrow<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80190AE0; // type:function size:0xC scope:local
baseID_Fly<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80190AF0; // type:function size:0xC scope:local
baseID_After<10sStateID_c>__Fv_RC12sStateIDIf_c = .text:0x80190B00; // type:function size:0xC scope:local
doDemoThrow__15dSalvageIfObj_cFv = .text:0x80190B10; // type:function size:0x1C
actorExecute__15dAcSalbageObj_cFv = .text:0x80190B30; // type:function size:0xD0
isInStateWait__15dAcSalbageObj_cCFv = .text:0x80190C00; // type:function size:0x50 scope:weak
isInStateWaitOrDemoThrow__15dAcSalbageObj_cCFv = .text:0x80190C50; // type:function size:0xB4 scope:weak
preExecute__15dAcSalbageObj_cFv = .text:0x80190D10; // type:function size:0x1D4
getSalvageObjId__15dSalvageIfObj_cCFv = .text:0x80190EF0; // type:function size:0x8 scope:weak
getDowsingUnusedF32__15dAcSalbageObj_cCFv = .text:0x80190F00; // type:function size:0x8 scope:weak
getDowsingTargetYOffset__15dAcSalbageObj_cCFv = .text:0x80190F10; // type:function size:0x8 scope:weak
preDraw__15dAcSalbageObj_cFv = .text:0x80190F20; // type:function size:0x58
isHidden__15dSalvageIfObj_cCFv = .text:0x80190F80; // type:function size:0x8 scope:weak
draw__15dAcSalbageObj_cFv = .text:0x80190F90; // type:function size:0x54
executeInternal__15dAcSalbageObj_cFv = .text:0x80190FF0; // type:function size:0xE0
initSalbageObj__15dAcSalbageObj_cFv = .text:0x801910D0; // type:function size:0x2A8
vt_0x80__15dAcSalbageObj_cCFv = .text:0x80191380; // type:function size:0x8 scope:weak
setHidden__15dSalvageIfObj_cFv = .text:0x80191390; // type:function size:0xC scope:weak
setCarried__15dSalvageIfObj_cFv = .text:0x801913A0; // type:function size:0xC scope:weak
doInteraction__15dAcSalbageObj_cFl = .text:0x801913B0; // type:function size:0xB0
addAttentionTargetIfNeeded__15dAcSalbageObj_cFv = .text:0x80191460; // type:function size:0x50
addAttentionTarget__15dAcSalbageObj_cFv = .text:0x801914B0; // type:function size:0xFC
initCcAndBg__15dAcSalbageObj_cFv = .text:0x801915B0; // type:function size:0x80
shouldBeActiveDowsingTarget__15dAcSalbageObj_cCFv = .text:0x80191630; // type:function size:0xB0
updateCc__15dAcSalbageObj_cFv = .text:0x801916E0; // type:function size:0x78
getCcRadius__15dAcSalbageObj_cCFv = .text:0x80191760; // type:function size:0x8 scope:weak
getCcHeight__15dAcSalbageObj_cCFv = .text:0x80191770; // type:function size:0x8 scope:weak
updateBgAcchCir__15dAcSalbageObj_cFv = .text:0x80191780; // type:function size:0x74
getBgAcchCirHeight__15dAcSalbageObj_cCFv = .text:0x80191800; // type:function size:0x8 scope:weak
getBgAcchCirRadius__15dAcSalbageObj_cCFv = .text:0x80191810; // type:function size:0x8 scope:weak
calcMtxFromSalbageNpc__15dAcSalbageObj_cFR6mMtx_c = .text:0x80191820; // type:function size:0x17C
calcWorldMtx__15dAcSalbageObj_cFv = .text:0x801919A0; // type:function size:0x88
isCarried__15dSalvageIfObj_cCFv = .text:0x80191A30; // type:function size:0x8 scope:weak
updateMdl__15dAcSalbageObj_cFv = .text:0x80191A40; // type:function size:0x1B0
getPoscopy3YOffset__15dAcSalbageObj_cCFv = .text:0x80191BF0; // type:function size:0x8 scope:weak
getPoscopy2YOffset__15dAcSalbageObj_cCFv = .text:0x80191C00; // type:function size:0x8 scope:weak
loadBehaviorFromParams__15dAcSalbageObj_cFv = .text:0x80191C10; // type:function size:0x10
initializeState_Wait__15dAcSalbageObj_cFv = .text:0x80191C20; // type:function size:0x80
getDowsingSlot__15dAcSalbageObj_cCFv = .text:0x80191CA0; // type:function size:0x8 scope:weak
executeState_Wait__15dAcSalbageObj_cFv = .text:0x80191CB0; // type:function size:0xC8
finalizeState_Wait__15dAcSalbageObj_cFv = .text:0x80191D80; // type:function size:0x4
initializeState_Carried__15dAcSalbageObj_cFv = .text:0x80191D90; // type:function size:0x10
executeState_Carried__15dAcSalbageObj_cFv = .text:0x80191DA0; // type:function size:0x4
finalizeState_Carried__15dAcSalbageObj_cFv = .text:0x80191DB0; // type:function size:0x4
initializeState_Fly__15dAcSalbageObj_cFv = .text:0x80191DC0; // type:function size:0x4
executeState_Fly__15dAcSalbageObj_cFv = .text:0x80191DD0; // type:function size:0x4
finalizeState_Fly__15dAcSalbageObj_cFv = .text:0x80191DE0; // type:function size:0x4
initializeState_After__15dAcSalbageObj_cFv = .text:0x80191DF0; // type:function size:0x8
executeState_After__15dAcSalbageObj_cFv = .text:0x80191E00; // type:function size:0x8
finalizeState_After__15dAcSalbageObj_cFv = .text:0x80191E10; // type:function size:0x4
initializeState_Demo__15dAcSalbageObj_cFv = .text:0x80191E20; // type:function size:0x4
executeState_Demo__15dAcSalbageObj_cFv = .text:0x80191E30; // type:function size:0x4
finalizeState_Demo__15dAcSalbageObj_cFv = .text:0x80191E40; // type:function size:0x4
initializeState_DemoThrow__15dAcSalbageObj_cFv = .text:0x80191E50; // type:function size:0x164
setNotCarried__15dSalvageIfObj_cFv = .text:0x80191FC0; // type:function size:0xC scope:weak
executeState_DemoThrow__15dAcSalbageObj_cFv = .text:0x80191FD0; // type:function size:0x4
finalizeState_DemoThrow__15dAcSalbageObj_cFv = .text:0x80191FE0; // type:function size:0x4
initializeState_Kill__15dAcSalbageObj_cFv = .text:0x80191FF0; // type:function size:0x4
executeState_Kill__15dAcSalbageObj_cFv = .text:0x80192000; // type:function size:0x4
finalizeState_Kill__15dAcSalbageObj_cFv = .text:0x80192010; // type:function size:0x4
vt_0xD0__15dAcSalbageObj_cFv = .text:0x80192020; // type:function size:0x4 scope:weak
__dt__15dAcSalbageObj_cFv = .text:0x80192030; // type:function size:0x100 scope:weak
__dt__15dSalvageIfObj_cFv = .text:0x80192130; // type:function size:0x40 scope:weak
setNotHidden__15dSalvageIfObj_cFv = .text:0x80192170; // type:function size:0xC scope:weak
finalizeState__30sFStateID_c<15dAcSalbageObj_c>CFR15dAcSalbageObj_c = .text:0x80192180; // type:function size:0x30 scope:weak
executeState__30sFStateID_c<15dAcSalbageObj_c>CFR15dAcSalbageObj_c = .text:0x801921B0; // type:function size:0x30 scope:weak
initializeState__30sFStateID_c<15dAcSalbageObj_c>CFR15dAcSalbageObj_c = .text:0x801921E0; // type:function size:0x30 scope:weak
__sinit_\d_a_salbage_obj_cpp = .text:0x80192210; // type:function size:0x5D8 scope:local
__dt__30sFStateID_c<15dAcSalbageObj_c>Fv = .text:0x801927F0; // type:function size:0x58 scope:weak
__dt__37sFStateVirtualID_c<15dAcSalbageObj_c>Fv = .text:0x80192850; // type:function size:0x5C scope:weak
number__37sFStateVirtualID_c<15dAcSalbageObj_c>CFv = .text:0x801928B0; // type:function size:0xDC scope:weak
superID__37sFStateVirtualID_c<15dAcSalbageObj_c>CFv = .text:0x80192990; // type:function size:0xE0 scope:weak
isSameName__30sFStateID_c<15dAcSalbageObj_c>CFPCc = .text:0x80192A70; // type:function size:0x88 scope:weak
fn_80192B00 = .text:0x80192B00; // type:function size:0xC
fn_80192B10 = .text:0x80192B10; // type:function size:0xC
fn_80192B20 = .text:0x80192B20; // type:function size:0xC
@@ -16580,7 +16580,7 @@ AcNpcTalkKensei__triggerSeedlingFiText = .text:0x802C39A0; // type:function size
fn_802C3A00 = .text:0x802C3A00; // type:function size:0x74
fn_802C3A80 = .text:0x802C3A80; // type:function size:0x5C
fn_802C3AE0 = .text:0x802C3AE0; // type:function size:0x84
getFiPointer = .text:0x802C3B70; // type:function size:0x8
GetInstance__18dAcNpcTalkKensei_cFv = .text:0x802C3B70; // type:function size:0x8
fn_802C3B80 = .text:0x802C3B80; // type:function size:0x2E8
fn_802C3E70 = .text:0x802C3E70; // type:function size:0x188
fn_802C4000 = .text:0x802C4000; // type:function size:0x234
@@ -16591,7 +16591,7 @@ fn_802C46D0 = .text:0x802C46D0; // type:function size:0x38
fn_802C4710 = .text:0x802C4710; // type:function size:0x40
AcNpcTalkKensei__triggerSpecialEventEntrypoint = .text:0x802C4750; // type:function size:0xEC
fn_802C4840 = .text:0x802C4840; // type:function size:0xA0
fn_802C48E0 = .text:0x802C48E0; // type:function size:0xA8
triggerSalvageQuestion__18dAcNpcTalkKensei_cFP15dAcSalbageObj_c = .text:0x802C48E0; // type:function size:0xA8
fn_802C4990 = .text:0x802C4990; // type:function size:0x60
fn_802C49F0 = .text:0x802C49F0; // type:function size:0x84
fn_802C4A80 = .text:0x802C4A80; // type:function size:0x94
@@ -28394,7 +28394,7 @@ lbl_804E9AF8 = .rodata:0x804E9AF8; // type:object size:0xA4 data:4byte
lbl_804E9B9C = .rodata:0x804E9B9C; // type:object size:0x2C data:byte
lbl_804E9BC8 = .rodata:0x804E9BC8; // type:object size:0xE8 data:4byte
AMMO_CAPACITY_INCREASES = .rodata:0x804E9CB0; // type:object size:0x28
lbl_804E9CD8 = .rodata:0x804E9CD8; // type:object size:0x150
sInteractionTargetDefs = .rodata:0x804E9CD8; // type:object size:0x150 scope:local
TADTONE_GROUP_SIZES = .rodata:0x804E9E28; // type:object size:0x14 data:byte
TADTONE_SCENEFLAGS = .rodata:0x804E9E3C; // type:object size:0x14 data:byte
SK_DOOR_SCENEFLAGS = .rodata:0x804E9E50; // type:object size:0x20
@@ -35356,9 +35356,40 @@ lbl_8052AB6C = .data:0x8052AB6C; // type:object size:0x6C
@LOCAL@addAttentionTarget__12dAcOInsect_cFv@tmpTarget = .data:0x8052ABD8; // type:object size:0x30 scope:local
__vt__12dAcOInsect_c = .data:0x8052AC08; // type:object size:0xB4
lbl_8052ACC0 = .data:0x8052ACC0; // type:object size:0x10
lbl_8052ACD0 = .data:0x8052ACD0; // type:object size:0x340
lbl_8052B010 = .data:0x8052B010; // type:object size:0x34
lbl_8052B044 = .data:0x8052B044; // type:object size:0x34
sCylSrc = .data:0x8052ACD0; // type:object size:0x30 scope:local
...data.0 = .data:0x8052ACD0; // type:label scope:local
__vt__15dAcSalbageObj_c = .data:0x8052AD00; // type:object size:0x100
__vt__15dSalvageIfObj_c = .data:0x8052AE00; // type:object size:0x2C
@22347 = .data:0x8052AE2C; // type:object size:0xC scope:local
@22348 = .data:0x8052AE38; // type:object size:0xC scope:local
@22349 = .data:0x8052AE44; // type:object size:0xC scope:local
@22350 = .data:0x8052AE50; // type:object size:0xC scope:local
@22351 = .data:0x8052AE5C; // type:object size:0xC scope:local
@22352 = .data:0x8052AE68; // type:object size:0xC scope:local
@22353 = .data:0x8052AE74; // type:object size:0xC scope:local
@22354 = .data:0x8052AE80; // type:object size:0xC scope:local
@22355 = .data:0x8052AE8C; // type:object size:0xC scope:local
@22356 = .data:0x8052AE98; // type:object size:0xC scope:local
@22357 = .data:0x8052AEA4; // type:object size:0xC scope:local
@22358 = .data:0x8052AEB0; // type:object size:0xC scope:local
@22359 = .data:0x8052AEBC; // type:object size:0xC scope:local
@22360 = .data:0x8052AEC8; // type:object size:0xC scope:local
@22361 = .data:0x8052AED4; // type:object size:0xC scope:local
@22362 = .data:0x8052AEE0; // type:object size:0xC scope:local
@22363 = .data:0x8052AEEC; // type:object size:0xC scope:local
@22364 = .data:0x8052AEF8; // type:object size:0xC scope:local
@22365 = .data:0x8052AF04; // type:object size:0xC scope:local
@22366 = .data:0x8052AF10; // type:object size:0xC scope:local
@22367 = .data:0x8052AF1C; // type:object size:0xC scope:local
@22369 = .data:0x8052AF28; // type:object size:0x1E scope:local data:string
@22370 = .data:0x8052AF48; // type:object size:0x21 scope:local data:string
@22371 = .data:0x8052AF6C; // type:object size:0x1E scope:local data:string
@22372 = .data:0x8052AF8C; // type:object size:0x23 scope:local data:string
@22373 = .data:0x8052AFB0; // type:object size:0x1D scope:local data:string
@22374 = .data:0x8052AFD0; // type:object size:0x1F scope:local data:string
@22375 = .data:0x8052AFF0; // type:object size:0x1E scope:local data:string
__vt__37sFStateVirtualID_c<15dAcSalbageObj_c> = .data:0x8052B010; // type:object size:0x34 scope:weak
__vt__30sFStateID_c<15dAcSalbageObj_c> = .data:0x8052B044; // type:object size:0x34 scope:weak
lbl_8052B078 = .data:0x8052B078; // type:object size:0x538
lbl_8052B5B0 = .data:0x8052B5B0; // type:object size:0x34
lbl_8052B5E4 = .data:0x8052B5E4; // type:object size:0x34
@@ -40190,8 +40221,8 @@ lbl_80572CF0 = .sdata:0x80572CF0; // type:object size:0x4 data:4byte
lbl_80572CF4 = .sdata:0x80572CF4; // type:object size:0x8
lbl_80572CFC = .sdata:0x80572CFC; // type:object size:0x4
lbl_80572D00 = .sdata:0x80572D00; // type:object size:0x8
lbl_80572D08 = .sdata:0x80572D08; // type:object size:0x4 data:4byte
lbl_80572D0C = .sdata:0x80572D0C; // type:object size:0x4 data:4byte
@21253 = .sdata:0x80572D08; // type:object size:0x4 scope:local data:4byte
@21254 = .sdata:0x80572D0C; // type:object size:0x4 scope:local data:4byte
sIsPointerVisible__7dPadNav = .sdata:0x80572D10; // type:object size:0x1 data:byte
sPrevIsPointerVisible__7dPadNav = .sdata:0x80572D11; // type:object size:0x1 data:byte
sIsCursorStickVisible__7dPadNav = .sdata:0x80572D12; // type:object size:0x1 data:byte
@@ -41798,7 +41829,7 @@ lbl_80575388 = .sbss:0x80575388; // type:object size:0x8 data:byte
lbl_80575390 = .sbss:0x80575390; // type:object size:0x4 data:4byte
lbl_80575394 = .sbss:0x80575394; // type:object size:0x4 data:4byte
lbl_80575398 = .sbss:0x80575398; // type:object size:0x8 data:byte
SCRAPPER_PICKUP_TARGET = .sbss:0x805753A0; // type:object size:0x8 data:4byte
sInstance__13dSalvageMgr_c = .sbss:0x805753A0; // type:object size:0x8 data:4byte
@GUARD@setupGX__10dTextBox_cCFv@sFogColor = .sbss:0x805753A8; // type:object size:0x1 scope:local data:byte
@LOCAL@setupGX__10dTextBox_cCFv@sFogColor = .sbss:0x805753AC; // type:object size:0x4 scope:local data:4byte
sInstance__10dLyt_HIO_c = .sbss:0x805753B0; // type:object size:0x4 data:4byte
@@ -46613,17 +46644,17 @@ lbl_8057AE18 = .sdata2:0x8057AE18; // type:object size:0x8 align:8 data:double
lbl_8057AE20 = .sdata2:0x8057AE20; // type:object size:0x4 align:4 data:float
lbl_8057AE24 = .sdata2:0x8057AE24; // type:object size:0x4 align:4 data:float
lbl_8057AE28 = .sdata2:0x8057AE28; // type:object size:0x4 align:4 data:float
lbl_8057AE30 = .sdata2:0x8057AE30; // type:object size:0x4 align:4 data:float
lbl_8057AE34 = .sdata2:0x8057AE34; // type:object size:0x4 align:4 data:float
lbl_8057AE38 = .sdata2:0x8057AE38; // type:object size:0x4 align:4 data:float
lbl_8057AE3C = .sdata2:0x8057AE3C; // type:object size:0x4 align:4 data:float
lbl_8057AE40 = .sdata2:0x8057AE40; // type:object size:0x4 align:4 data:float
lbl_8057AE44 = .sdata2:0x8057AE44; // type:object size:0x4 align:4 data:float
lbl_8057AE48 = .sdata2:0x8057AE48; // type:object size:0x4 align:4 data:float
lbl_8057AE4C = .sdata2:0x8057AE4C; // type:object size:0x4 align:4 data:float
lbl_8057AE50 = .sdata2:0x8057AE50; // type:object size:0x4 align:4 data:float
lbl_8057AE54 = .sdata2:0x8057AE54; // type:object size:0x4 align:4 data:float
lbl_8057AE58 = .sdata2:0x8057AE58; // type:object size:0x4 align:4 data:float
@21930 = .sdata2:0x8057AE30; // type:object size:0x4 scope:local align:4 data:float
@21935 = .sdata2:0x8057AE34; // type:object size:0x4 scope:local align:4 data:float
@21937 = .sdata2:0x8057AE38; // type:object size:0x4 scope:local align:4 data:float
@21994 = .sdata2:0x8057AE3C; // type:object size:0x4 scope:local align:4 data:float
@21995 = .sdata2:0x8057AE40; // type:object size:0x4 scope:local align:4 data:float
@21996 = .sdata2:0x8057AE44; // type:object size:0x4 scope:local align:4 data:float
@21997 = .sdata2:0x8057AE48; // type:object size:0x4 scope:local align:4 data:float
@21998 = .sdata2:0x8057AE4C; // type:object size:0x4 scope:local align:4 data:float
@22036 = .sdata2:0x8057AE50; // type:object size:0x4 scope:local align:4 data:float
@22182 = .sdata2:0x8057AE54; // type:object size:0x4 scope:local align:4 data:float
@22205 = .sdata2:0x8057AE58; // type:object size:0x4 scope:local align:4 data:float
lbl_8057AE60 = .sdata2:0x8057AE60; // type:object size:0x4 align:4 data:float
lbl_8057AE64 = .sdata2:0x8057AE64; // type:object size:0x4 align:4 data:float
lbl_8057AE68 = .sdata2:0x8057AE68; // type:object size:0x4 align:4 data:float
@@ -51684,11 +51715,21 @@ AcFishMgrBase__STATE_WAIT = .bss:0x805B2074; // type:object size:0x34 data:4byte
lbl_805B20A8 = .bss:0x805B20A8; // type:object size:0xC
AcFishBase__STATE_SWIM = .bss:0x805B20B4; // type:object size:0x40 data:4byte
AcFishBase__STATE_ESCAPE = .bss:0x805B20F4; // type:object size:0x34 data:4byte
lbl_805B2128 = .bss:0x805B2128; // type:object size:0xC
AcSalbageObj__STATE_WAIT = .bss:0x805B2134; // type:object size:0x40 data:4byte
AcSalbageObj__STATE_CARRIED = .bss:0x805B2174; // type:object size:0x40 data:4byte
AcSalbageObj__STATE_DEMO = .bss:0x805B21B4; // type:object size:0x40 data:4byte
AcSalbageObj__STATE_DEMO_THROW = .bss:0x805B21F4; // type:object size:0xF4 data:4byte
@20933 = .bss:0x805B2128; // type:object size:0xC scope:local
...bss.0 = .bss:0x805B2128; // type:label scope:local
StateID_Wait__15dAcSalbageObj_c = .bss:0x805B2134; // type:object size:0x34 data:4byte
@20941 = .bss:0x805B2168; // type:object size:0xC scope:local
StateID_Carried__15dAcSalbageObj_c = .bss:0x805B2174; // type:object size:0x34 data:4byte
@20949 = .bss:0x805B21A8; // type:object size:0xC scope:local
StateID_Demo__15dAcSalbageObj_c = .bss:0x805B21B4; // type:object size:0x34 data:4byte
@20957 = .bss:0x805B21E8; // type:object size:0xC scope:local
StateID_DemoThrow__15dAcSalbageObj_c = .bss:0x805B21F4; // type:object size:0x34 data:4byte
@20965 = .bss:0x805B2228; // type:object size:0xC scope:local
StateID_Fly__15dAcSalbageObj_c = .bss:0x805B2234; // type:object size:0x34 scope:global
@20973 = .bss:0x805B2268; // type:object size:0xC scope:local
StateID_After__15dAcSalbageObj_c = .bss:0x805B2274; // type:object size:0x34 scope:global
@20977 = .bss:0x805B22A8; // type:object size:0xC scope:local
StateID_Kill__15dAcSalbageObj_c = .bss:0x805B22B8; // type:object size:0x30 scope:global
lbl_805B22E8 = .bss:0x805B22E8; // type:object size:0xC
AcSalbageNpc__STATE_SET = .bss:0x805B22F4; // type:object size:0x40 data:4byte
AcSalbageNpc__STATE_CARRIED = .bss:0x805B2334; // type:object size:0xF4 data:4byte
+1 -1
View File
@@ -584,7 +584,7 @@ config.libs = [
Object(NonMatching, "toBeSorted/sword_proj_effect_list.cpp"),
Object(NonMatching, "d/a/d_a_insect.cpp"),
Object(NonMatching, "toBeSorted/unk_save_time.cpp"),
Object(NonMatching, "d/a/d_a_salbage_obj.cpp"),
Object(Matching, "d/a/d_a_salbage_obj.cpp"),
Object(NonMatching, "d/a/d_a_salbage_npc.cpp"),
Object(Matching, "d/d_pad_nav.cpp"),
Object(NonMatching, "toBeSorted/goddess_chest_counter.cpp"),
+19
View File
@@ -0,0 +1,19 @@
#ifndef D_A_SALBAGE_IF_H
#define D_A_SALBAGE_IF_H
#include "common.h"
class dSalvageIf_c {
public:
/* vt 0x08 */ virtual ~dSalvageIf_c() {}
/* vt 0x0C */ virtual void setCarried() = 0;
/* vt 0x10 */ virtual void setNotCarried() = 0;
/* vt 0x14 */ virtual bool isCarried() const = 0;
/* vt 0x18 */ virtual void setHidden() = 0;
/* vt 0x1C */ virtual void setNotHidden() = 0;
/* vt 0x20 */ virtual bool isHidden() const = 0;
/* vt 0x24 */ virtual s32 getSalvageObjId() const = 0;
/* vt 0x28 */ virtual void doDemoThrow() = 0;
};
#endif
+184
View File
@@ -0,0 +1,184 @@
#ifndef D_A_SALBAGE_OBJ_H
#define D_A_SALBAGE_OBJ_H
#include "common.h"
#include "d/a/d_a_salbage_if.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_s_acch.h"
#include "d/col/cc/d_cc_d.h"
#include "d/d_shadow.h"
#include "m/m3d/m_smdl.h"
#include "m/m_mtx.h"
#include "m/m_quat.h"
#include "m/m_vec.h"
#include "s/s_State.hpp"
#include "toBeSorted/dowsing_target.h"
class dAcSalbageObj_c;
enum SalvageObj_e {
SALVAGE_OBJ_PROPERA = 0,
SALVAGE_OBJ_ROULETTE = 1,
SALVAGE_OBJ_DIVINER_CRYSTAL = 2,
SALVAGE_OBJ_WATER_JAR = 5,
SALVAGE_OBJ_POT = 6,
};
class dSalvageIfObj_c : public dSalvageIf_c {
public:
dSalvageIfObj_c(dAcSalbageObj_c *obj, s32 id) : mpObj(obj), mCarried(false), mHidden(false), mSalvageObjId(id) {}
/* vt 0x08 */ virtual ~dSalvageIfObj_c() {}
/* vt 0x0C */ virtual void setCarried() override {
mCarried = true;
}
/* vt 0x10 */ virtual void setNotCarried() override {
mCarried = false;
}
/* vt 0x14 */ virtual bool isCarried() const override {
return mCarried;
}
/* vt 0x18 */ virtual void setHidden() override {
mHidden = true;
}
/* vt 0x1C */ virtual void setNotHidden() override {
mHidden = false;
}
/* vt 0x20 */ virtual bool isHidden() const override {
return mHidden;
}
/* vt 0x24 */ virtual s32 getSalvageObjId() const override {
return mSalvageObjId;
}
/* vt 0x28 */ virtual void doDemoThrow() override;
private:
/* 0x04 */ dAcSalbageObj_c *mpObj;
/* 0x08 */ bool mCarried;
/* 0x09 */ bool mHidden;
/* 0x0C */ s32 mSalvageObjId;
};
/**
* Actor - Object - Salvage
*
* Base class for objects that can be carried by
* the Salvage Robot NPC, AKA Scrapper.
*/
class dAcSalbageObj_c : public dAcObjBase_c {
friend class dSalvageIfObj_c;
enum Behavior_e {
/// The object is stationary and disappears when picked up
BEHAVIOR_STATIONARY,
/// The object is being carried and disappears when dropped
BEHAVIOR_CARRY,
/// The object is being carried in the Sky by the salvage robot
BEHAVIOR_FLY,
};
public:
dAcSalbageObj_c(m3d::smdl_c *mdl, s32 salvageObjId)
: field_0x330(0),
mpMdl(mdl),
mStateMgr(*this),
mSalvageIf(this, salvageObjId),
mDowsingTarget(this, DowsingTarget::SLOT_NONE),
mIsDemoState(false),
mpNextStateId(nullptr) {}
virtual ~dAcSalbageObj_c() {}
virtual int preExecute() override;
virtual int draw() override;
virtual int preDraw() override;
virtual int actorExecute() override;
virtual void doInteraction(s32) override;
/* vt 0x80 */ virtual bool vt_0x80() const {
return false;
}
/* vt 0x84-0x8C */ STATE_VIRTUAL_FUNC_DECLARE(dAcSalbageObj_c, Wait);
/* vt 0x90-0x98 */ STATE_VIRTUAL_FUNC_DECLARE(dAcSalbageObj_c, Carried);
/* vt 0x9C-0xA4 */ STATE_VIRTUAL_FUNC_DECLARE(dAcSalbageObj_c, Demo);
/* vt 0xA8-0xB0 */ STATE_VIRTUAL_FUNC_DECLARE(dAcSalbageObj_c, DemoThrow);
/* vt 0xB4-0xBC */ STATE_VIRTUAL_FUNC_DECLARE(dAcSalbageObj_c, Fly);
/* vt 0xC0-0xC8 */ STATE_VIRTUAL_FUNC_DECLARE(dAcSalbageObj_c, After);
STATE_FUNC_DECLARE(dAcSalbageObj_c, Kill);
protected:
bool shouldBeActiveDowsingTarget() const;
void initSalbageObj();
void loadBehaviorFromParams();
void calcMtxFromSalbageNpc(mMtx_c &ret);
void addAttentionTargetIfNeeded();
void addAttentionTarget();
void initCcAndBg();
void executeInternal();
void updateCc();
void updateBgAcchCir();
void updateMdl();
/* vt 0xCC */ virtual mMtx_c calcWorldMtx();
/* vt 0xD0 */ virtual void vt_0xD0() {}
/* vt 0xD4 */ virtual bool isInStateWait() const {
return mStateMgr.isState(StateID_Wait);
}
/* vt 0xD8 */ virtual bool isInStateWaitOrDemoThrow() const {
return mStateMgr.isState(StateID_Wait) || mStateMgr.isState(StateID_DemoThrow);
}
/* vt 0xDC */ virtual DowsingTarget::DowsingSlot getDowsingSlot() const {
return DowsingTarget::SLOT_QUEST;
}
/* vt 0xE0 */ virtual f32 getCcRadius() const {
return 0.0f;
}
/* vt 0xE4 */ virtual f32 getCcHeight() const {
return 0.0f;
}
/* vt 0xE8 */ virtual f32 getBgAcchCirRadius() const {
return 0.0f;
}
/* vt 0xEC */ virtual f32 getBgAcchCirHeight() const {
return 0.0f;
}
/* vt 0xF0 */ virtual f32 getPoscopy2YOffset() const {
return 0.0f;
}
/* vt 0xF4 */ virtual f32 getPoscopy3YOffset() const {
return 0.0f;
}
/* vt 0xF8 */ virtual f32 getDowsingUnusedF32() const {
return 1500.0f;
}
/* vt 0xFC */ virtual f32 getDowsingTargetYOffset() const {
return 50.0f;
}
/* 0x330 */ UNKWORD field_0x330;
/* 0x334 */ m3d::smdl_c *mpMdl;
/* 0x338 */ dShadowCircle_c mShadow;
/* 0x340 */ mQuat_c mShadowRot;
/* 0x350 */ dBgS_AcchCir mBgAcchCir;
/* 0x3AC */ dBgS_ObjAcch mBgObjAcch;
/* 0x75C */ dCcD_Cyl mCcCyl;
/* 0x8AC */ STATE_MGR_DECLARE(dAcSalbageObj_c);
/* 0x8E8 */ s32 mBehavior;
/* 0x8EC */ bool mIsDemoState;
/* 0x8F0 */ dSalvageIfObj_c mSalvageIf;
/* 0x900 */ f32 field_0x900;
/* 0x904 */ s16 field_0x904;
/* 0x908 */ mMtx_c mWorldSRMtx;
/* 0x938 */ f32 field_0x938;
/* 0x93C */ DowsingTarget mDowsingTarget;
/* 0x95C */ mVec3_c field_0x95C;
/* 0x968 */ bool mIsDowsingRegistered;
/* 0x96C */ const sStateID_c *mpNextStateId;
};
#endif
+12 -5
View File
@@ -1,13 +1,13 @@
#ifndef D_A_NPC_SALBAGE_ROBOT_H
#define D_A_NPC_SALBAGE_ROBOT_H
#include "d/a/npc/d_a_npc.h"
#include "d/a/npc/d_a_ordinary_npc.h"
#include "m/m_mtx.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dAcNpcSlb_c : public dAcNpc_c {
class dAcNpcSlb_c : public dAcOrdinaryNpc_c {
public:
dAcNpcSlb_c() : mStateMgr(*this, sStateID::null) {}
dAcNpcSlb_c() {}
virtual ~dAcNpcSlb_c() {}
STATE_FUNC_DECLARE(dAcNpcSlb_c, Hide);
@@ -16,8 +16,15 @@ public:
STATE_FUNC_DECLARE(dAcNpcSlb_c, Kill);
STATE_FUNC_DECLARE(dAcNpcSlb_c, Kill2);
// ouch
mMtx_c getCarriedObjMtx() const {
return mCarryObjMtx;
}
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcNpcSlb_c);
u8 _pad[0xD50 - sizeof(dAcOrdinaryNpc_c)];
/* 0xD50 */ mMtx_c mCarryObjMtx;
};
#endif
+16
View File
@@ -0,0 +1,16 @@
#ifndef D_A_NPC_TALK_KENSEI_H
#define D_A_NPC_TALK_KENSEI_H
#include "d/a/npc/d_a_ordinary_npc.h"
class dAcSalbageObj_c;
class dAcNpcTalkKensei_c : public dAcOrdinaryNpc_c {
public:
static dAcNpcTalkKensei_c *GetInstance();
void triggerSalvageQuestion(dAcSalbageObj_c *);
private:
};
#endif
+2 -2
View File
@@ -4,6 +4,7 @@
#include "c/c_math.h"
#include "common.h"
#include "d/a/d_a_base.h"
#include "d/a/d_a_salbage_if.h"
#include "d/col/c/c_cc_d.h"
#include "d/col/c/c_m3d_g_aab.h"
#include "d/d_jnt_col.h"
@@ -18,7 +19,6 @@
#include "m/m_vec.h"
#include "m/types_m.h"
// Ghidra: ActorObjectBase
// size: 0x330
// vtable: 0x805015b8
@@ -52,7 +52,7 @@ public:
/* 0x210 */ dLinkage_c mLinkage;
/* 0x2B8 */ u32 mField_0x2B8;
/* 0x2BC */ ActorLighting mLightingInfo;
/* 0x32C */ u32 mField_0x32C;
/* 0x32C */ dSalvageIf_c *mpSalvageIf;
public:
mVec3_c &GetOldPosition() {
+15 -5
View File
@@ -1,17 +1,27 @@
#ifndef D_A_OBJ_DIVINER_CRYSTAL_H
#define D_A_OBJ_DIVINER_CRYSTAL_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/a/d_a_salbage_obj.h"
#include "m/m3d/m_anmmatclr.h"
#include "m/m3d/m_anmtexsrt.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dAcODivinerCrystal_c : public dAcObjBase_c {
class dAcODivinerCrystal_c : public dAcSalbageObj_c {
public:
dAcODivinerCrystal_c() : mStateMgr(*this, sStateID::null) {}
dAcODivinerCrystal_c() : dAcSalbageObj_c(&mMdl1, SALVAGE_OBJ_DIVINER_CRYSTAL) {}
virtual ~dAcODivinerCrystal_c() {}
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcODivinerCrystal_c, dAcSalbageObj_c, DemoThrow);
STATE_FUNC_DECLARE(dAcODivinerCrystal_c, Stay);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcODivinerCrystal_c);
/* 0x970 */ nw4r::g3d::ResFile mResMaybe;
/* 0x974 */ m3d::smdl_c mMdl1;
/* 0x990 */ m3d::smdl_c mMdl2;
/* 0x9AC */ m3d::anmTexSrt_c mAnmTexSrt;
/* 0x9D8 */ m3d::anmMatClr_c mAnmMatClr;
};
#endif
+9 -5
View File
@@ -1,17 +1,21 @@
#ifndef D_A_OBJ_POT_SAL_H
#define D_A_OBJ_POT_SAL_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/a/d_a_salbage_obj.h"
#include "m/m3d/m_smdl.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dAcOpotSal_c : public dAcObjBase_c {
class dAcOpotSal_c : public dAcSalbageObj_c {
public:
dAcOpotSal_c() : mStateMgr(*this, sStateID::null) {}
dAcOpotSal_c() : dAcSalbageObj_c(&mMdl1, SALVAGE_OBJ_POT) {}
virtual ~dAcOpotSal_c() {}
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcOpotSal_c, dAcSalbageObj_c, DemoThrow);
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcOpotSal_c, dAcSalbageObj_c, After);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOpotSal_c);
/* 0x970 */ m3d::smdl_c mMdl1;
/* 0x98C */ m3d::smdl_c mMdl2;
};
#endif
+9 -6
View File
@@ -1,17 +1,20 @@
#ifndef D_A_OBJ_PROPERA_H
#define D_A_OBJ_PROPERA_H
#include "d/a/obj/d_a_obj_base.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
#include "d/a/d_a_salbage_obj.h"
#include "d/col/bg/d_bg_w.h"
#include "m/m3d/m_smdl.h"
class dAcObjPropera_c : public dAcObjBase_c {
class dAcObjPropera_c : public dAcSalbageObj_c {
public:
dAcObjPropera_c() : mStateMgr(*this, sStateID::null) {}
dAcObjPropera_c() : dAcSalbageObj_c(&mMdl, SALVAGE_OBJ_PROPERA) {}
virtual ~dAcObjPropera_c() {}
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcObjPropera_c, dAcSalbageObj_c, DemoThrow);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcObjPropera_c);
/* 0x970 */ m3d::smdl_c mMdl;
/* 0x98C */ dBgW mBgW;
};
#endif
+10 -5
View File
@@ -1,17 +1,22 @@
#ifndef D_A_OBJ_ROULETTE_H
#define D_A_OBJ_ROULETTE_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/a/d_a_salbage_obj.h"
#include "m/m3d/m_anmtexsrt.h"
#include "m/m3d/m_mdl.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
class dAcObjRoulette_c : public dAcObjBase_c {
class dAcObjRoulette_c : public dAcSalbageObj_c {
public:
dAcObjRoulette_c() : mStateMgr(*this, sStateID::null) {}
dAcObjRoulette_c() : dAcSalbageObj_c(&mMdl, SALVAGE_OBJ_ROULETTE) {}
virtual ~dAcObjRoulette_c() {}
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcObjRoulette_c, dAcSalbageObj_c, DemoThrow);
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcObjRoulette_c, dAcSalbageObj_c, Wait);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcObjRoulette_c);
/* 0x970 */ m3d::mdl_c mMdl;
/* 0x994 */ m3d::anmTexSrt_c mAnm;
};
#endif
+20 -5
View File
@@ -1,17 +1,32 @@
#ifndef D_A_OBJ_WATER_JAR_H
#define D_A_OBJ_WATER_JAR_H
#include "d/a/obj/d_a_obj_base.h"
#include "common.h"
#include "d/a/d_a_salbage_obj.h"
#include "d/col/cc/d_cc_d.h"
#include "m/m3d/m_anmchr.h"
#include "m/m3d/m_smdl.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "s/s_State.hpp"
#include "s/s_StateMgr.hpp"
#include "toBeSorted/actor_event.h"
#include "toBeSorted/d_emitter.h"
class dAcOWaterJar_c : public dAcObjBase_c {
class dAcOWaterJar_c : public dAcSalbageObj_c {
public:
dAcOWaterJar_c() : mStateMgr(*this, sStateID::null) {}
dAcOWaterJar_c() : mEvent(*this, nullptr), dAcSalbageObj_c(&mMdl1, SALVAGE_OBJ_WATER_JAR) {}
virtual ~dAcOWaterJar_c() {}
STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcOWaterJar_c, dAcSalbageObj_c, DemoThrow);
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOWaterJar_c);
/* 0x970 */ ActorEventRelated mEvent;
/* 0x9C0 */ nw4r::g3d::ResFile mResMaybe;
/* 0x9C4 */ m3d::smdl_c mMdl1;
/* 0x9E0 */ m3d::smdl_c mMdl2;
/* 0x9FC */ m3d::anmChr_c mAnm;
/* 0xA34 */ EffectsStruct mEffect;
/* 0xA68 */ u8 _0xA68[0xA6C - 0xA68];
/* 0xA6C */ dCcD_Cyl mCcCyl;
};
#endif
+2 -2
View File
@@ -169,10 +169,10 @@ public:
private:
/* 0xBDC */ u8 field_0xBDC;
public:
static AttentionManager *sInstance;
public:
bool create();
bool createHeap();
bool execute();
+4 -1
View File
@@ -2,7 +2,6 @@
#define DOWSING_TARGET_H
#include "d/a/d_a_base.h"
#include "f/f_list_nd.h"
#include "m/m_vec.h"
class DowsingTarget {
@@ -32,6 +31,10 @@ public:
virtual ~DowsingTarget(); // 0x08
virtual void getPosition(mVec3_c &); // 0x0C
void setOffset(const mVec3_c &offset) {
mOffset = offset;
}
bool doRegister();
bool doUnregister();
void initialize(DowsingSlot type, u16 unk, const mVec3_c *offset, f32 f);
+39
View File
@@ -0,0 +1,39 @@
#ifndef D_SALVAGE_MGR_H
#define D_SALVAGE_MGR_H
#include "common.h"
#include "d/a/d_a_base.h"
#include "m/m_mtx.h"
class dAcSalbageObj_c;
class dAcNpcSlb_c;
class dSalvageMgr_c {
public:
// Directly accessing seems to be required
// static dSalvageMgr_c *GetInstance() {
// return sInstance;
// }
bool checkDeliveredStoryflag(const s32& id) const;
bool startedQuestForSalvageObj(const dAcSalbageObj_c *obj) const;
bool hasDowsingForSalvageObj(const dAcSalbageObj_c *obj) const;
mMtx_c getCarryRotMtx(const s32 &id) const;
mMtx_c getCarryRotMtx2(const s32 &id) const {
return getCarryRotMtx(id);
}
s32 getCurrentSalvageObjId() const;
void deleteObjAndSlb();
static dSalvageMgr_c *sInstance;
bool hasObjAndSlb() const {
return mObjRef.isLinked() && mSlbRef.isLinked();
}
/* 0x00 */ dAcRef_c<dAcSalbageObj_c> mObjRef;
/* 0x0C */ dAcRef_c<dAcNpcSlb_c> mSlbRef;
private:
};
#endif
@@ -1,3 +1,14 @@
#include "d/a/obj/d_a_obj_diviner_crystal.h"
SPECIAL_ACTOR_PROFILE(OBJ_DIVINER_CRYSTAL, dAcODivinerCrystal_c, fProfile::OBJ_DIVINER_CRYSTAL, 0x157, 0, 3);
STATE_VIRTUAL_DEFINE(dAcODivinerCrystal_c, DemoThrow);
STATE_DEFINE(dAcODivinerCrystal_c, Stay);
void dAcODivinerCrystal_c::initializeState_DemoThrow() {}
void dAcODivinerCrystal_c::executeState_DemoThrow() {}
void dAcODivinerCrystal_c::finalizeState_DemoThrow() {}
void dAcODivinerCrystal_c::initializeState_Stay() {}
void dAcODivinerCrystal_c::executeState_Stay() {}
void dAcODivinerCrystal_c::finalizeState_Stay() {}
+11
View File
@@ -1,3 +1,14 @@
#include "d/a/obj/d_a_obj_pot_sal.h"
SPECIAL_ACTOR_PROFILE(OBJ_POT_SAL, dAcOpotSal_c, fProfile::OBJ_POT_SAL, 0x86, 0, 2);
STATE_VIRTUAL_DEFINE(dAcOpotSal_c, DemoThrow);
STATE_VIRTUAL_DEFINE(dAcOpotSal_c, After);
void dAcOpotSal_c::initializeState_DemoThrow() {}
void dAcOpotSal_c::executeState_DemoThrow() {}
void dAcOpotSal_c::finalizeState_DemoThrow() {}
void dAcOpotSal_c::initializeState_After() {}
void dAcOpotSal_c::executeState_After() {}
void dAcOpotSal_c::finalizeState_After() {}
+6
View File
@@ -1,3 +1,9 @@
#include "d/a/obj/d_a_obj_propera.h"
SPECIAL_ACTOR_PROFILE(OBJ_PROPERA, dAcObjPropera_c, fProfile::OBJ_PROPERA, 0x96, 0, 386);
STATE_VIRTUAL_DEFINE(dAcObjPropera_c, DemoThrow);
void dAcObjPropera_c::initializeState_DemoThrow() {}
void dAcObjPropera_c::executeState_DemoThrow() {}
void dAcObjPropera_c::finalizeState_DemoThrow() {}
+11
View File
@@ -1,3 +1,14 @@
#include "d/a/obj/d_a_obj_roulette.h"
SPECIAL_ACTOR_PROFILE(OBJ_ROULETTE, dAcObjRoulette_c, fProfile::OBJ_ROULETTE, 0x97, 0, 384);
STATE_VIRTUAL_DEFINE(dAcObjRoulette_c, DemoThrow);
STATE_VIRTUAL_DEFINE(dAcObjRoulette_c, Wait);
void dAcObjRoulette_c::initializeState_DemoThrow() {}
void dAcObjRoulette_c::executeState_DemoThrow() {}
void dAcObjRoulette_c::finalizeState_DemoThrow() {}
void dAcObjRoulette_c::initializeState_Wait() {}
void dAcObjRoulette_c::executeState_Wait() {}
void dAcObjRoulette_c::finalizeState_Wait() {}
+6
View File
@@ -1,3 +1,9 @@
#include "d/a/obj/d_a_obj_water_jar.h"
SPECIAL_ACTOR_PROFILE(OBJ_WATER_JAR, dAcOWaterJar_c, fProfile::OBJ_WATER_JAR, 0x1AE, 0, 3);
STATE_VIRTUAL_DEFINE(dAcOWaterJar_c, DemoThrow);
void dAcOWaterJar_c::initializeState_DemoThrow() {}
void dAcOWaterJar_c::executeState_DemoThrow() {}
void dAcOWaterJar_c::finalizeState_DemoThrow() {}
+390
View File
@@ -0,0 +1,390 @@
#include "d/a/d_a_salbage_obj.h"
#include "c/c_math.h"
#include "common.h"
#include "d/a/npc/d_a_npc_salbage_robot.h"
#include "d/a/npc/d_a_npc_talk_kensei.h"
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_s.h"
#include "d/col/bg/d_bg_s_gnd_chk.h"
#include "d/col/cc/d_cc_s.h"
#include "f/f_profile_name.h"
#include "m/m_mtx.h"
#include "m/m_vec.h"
#include "toBeSorted/attention.h"
#include "toBeSorted/dowsing_target.h"
#include "toBeSorted/event_manager.h"
#include "toBeSorted/salvage_mgr.h"
STATE_VIRTUAL_DEFINE(dAcSalbageObj_c, Wait);
STATE_VIRTUAL_DEFINE(dAcSalbageObj_c, Carried);
STATE_VIRTUAL_DEFINE(dAcSalbageObj_c, Demo);
STATE_VIRTUAL_DEFINE(dAcSalbageObj_c, DemoThrow);
STATE_VIRTUAL_DEFINE(dAcSalbageObj_c, Fly);
STATE_VIRTUAL_DEFINE(dAcSalbageObj_c, After);
STATE_DEFINE(dAcSalbageObj_c, Kill);
static dCcD_SrcCyl sCylSrc = {
/* mObjInf */
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
/* mObjTg */
{~0, 0x111, {0, 0x02, 0x407}, 0, 0},
/* mObjCo */ {0xE9}},
/* mCylInf */
{0.0f, 0.0f}
};
static const InteractionTargetDef sInteractionTargetDefs[] = {
{0, 0, 1, EXAMINE_TALK, 0, 250.0f, 60.0f, 60.0f, -50.0f, 150.0f, 50.0f, 1.0f},
{0, 0, 1, EXAMINE_TALK, 0, 250.0f, 60.0f, 0.0f, -50.0f, 150.0f, 50.0f, 1.0f},
{0, 0, 1, EXAMINE_TALK, 0, 250.0f, 60.0f, 0.0f, -750.0f, 500.0f, 50.0f, 1.0f},
{0, 0, 1, EXAMINE_TALK, 0, 250.0f, 60.0f, 0.0f, -50.0f, 150.0f, 50.0f, 1.0f},
{0, 0, 1, EXAMINE_TALK, 0, 250.0f, 60.0f, 0.0f, -50.0f, 150.0f, 50.0f, 1.0f},
{0, 2, 1, EXAMINE_TALK, 0, 250.0f, 45.0f, 0.0f, -50.0f, 150.0f, 50.0f, 1.0f},
{0, 0, 1, EXAMINE_TALK, 0, 250.0f, 60.0f, 0.0f, -50.0f, 150.0f, 50.0f, 1.0f},
};
void dSalvageIfObj_c::doDemoThrow() {
mpObj->mStateMgr.changeState(dAcSalbageObj_c::StateID_DemoThrow);
}
int dAcSalbageObj_c::actorExecute() {
executeInternal();
calcVelocity();
position += velocity;
position += mStts.GetCcMove();
if (isInStateWait()) {
updateCc();
}
if (isInStateWaitOrDemoThrow()) {
updateBgAcchCir();
}
updateMdl();
return SUCCEEDED;
}
int dAcSalbageObj_c::preExecute() {
// @bug bool conversion
bool result = dAcObjBase_c::preExecute();
if (dSalvageMgr_c::sInstance->checkDeliveredStoryflag(mSalvageIf.getSalvageObjId())) {
s32 id = mSalvageIf.getSalvageObjId();
if (id != SALVAGE_OBJ_DIVINER_CRYSTAL && id != SALVAGE_OBJ_POT) {
if (!EventManager::isInEvent()) {
deleteRequest();
}
return NOT_READY;
}
}
if (mBehavior == BEHAVIOR_STATIONARY) {
if (dSalvageMgr_c::sInstance->getCurrentSalvageObjId() == mSalvageIf.getSalvageObjId()) {
if (!EventManager::isInEvent()) {
deleteRequest();
}
return NOT_READY;
}
}
if (shouldBeActiveDowsingTarget()) {
if (mIsDowsingRegistered == false) {
mDowsingTarget.doRegister();
mIsDowsingRegistered = true;
}
} else {
if (mIsDowsingRegistered == true) {
mDowsingTarget.doUnregister();
mIsDowsingRegistered = false;
}
}
getDowsingUnusedF32();
field_0x95C.set(0.0f, getDowsingTargetYOffset(), 0.0f);
mDowsingTarget.setOffset(field_0x95C);
return result;
}
int dAcSalbageObj_c::preDraw() {
if (dAcObjBase_c::preDraw() == NOT_READY) {
return NOT_READY;
} else if (mSalvageIf.isHidden()) {
return NOT_READY;
} else {
return SUCCEEDED;
}
}
int dAcSalbageObj_c::draw() {
drawModelType1(mpMdl);
fn_8002edb0(mShadow, *mpMdl, &mShadowRot, -1, -1, field_0x900);
return SUCCEEDED;
}
void dAcSalbageObj_c::executeInternal() {
if (!EventManager::isInEvent()) {
if (mIsDemoState == true) {
mIsDemoState = false;
if (mpNextStateId != nullptr) {
mStateMgr.changeState(*mpNextStateId);
} else {
mStateMgr.changeState(StateID_Wait);
}
}
} else {
if (mIsDemoState == false) {
mIsDemoState = true;
mStateMgr.changeState(StateID_Demo);
}
}
mStateMgr.executeState();
}
void dAcSalbageObj_c::initSalbageObj() {
mShadowRot.v = mVec3_c(0.0f, 90.0f, 0.0f);
mShadowRot.w = 180.0f;
mScale.set(1.0f, 1.0f, 1.0f);
mBehavior = getFromParams(4, 0xF);
mpSalvageIf = &mSalvageIf;
initCcAndBg();
if (dSalvageMgr_c::sInstance->checkDeliveredStoryflag(mSalvageIf.getSalvageObjId())) {
if (mBehavior == BEHAVIOR_CARRY && vt_0x80()) {
mStateMgr.changeState(StateID_After);
} else {
mStateMgr.changeState(StateID_Kill);
}
} else {
switch (mBehavior) {
case BEHAVIOR_CARRY: {
forwardSpeed = 0.0f;
velocity.set(0.0f, 0.0f, 0.0f);
forwardAccel = 0.0f;
mSalvageIf.setHidden();
if (dSalvageMgr_c::sInstance->getCurrentSalvageObjId() != mSalvageIf.getSalvageObjId()) {
mStateMgr.changeState(StateID_Kill);
return;
} else {
mSalvageIf.setCarried();
mStateMgr.changeState(StateID_Carried);
}
break;
}
case BEHAVIOR_FLY: {
forwardSpeed = 0.0f;
velocity.set(0.0f, 0.0f, 0.0f);
forwardAccel = 0.0f;
mStateMgr.changeState(StateID_Fly);
break;
}
default: {
if (dSalvageMgr_c::sInstance->getCurrentSalvageObjId() == mSalvageIf.getSalvageObjId()) {
mStateMgr.changeState(StateID_Kill);
return;
} else {
mBehavior = BEHAVIOR_STATIONARY;
forwardAccel = -1.0f;
forwardMaxSpeed = -40.0f;
initCcAndBg();
forwardSpeed = 0.0f;
forwardAccel = 0.0f;
velocity.set(0.0f, 0.0f, 0.0f);
mStateMgr.changeState(StateID_Wait);
}
break;
}
}
dSalvageMgr_c::sInstance->mObjRef.link(this);
}
}
void dAcSalbageObj_c::doInteraction(s32 arg) {
if (arg == 4 || arg == 5 || arg == 12) {
if (mStateMgr.isState(StateID_Wait) && dSalvageMgr_c::sInstance->hasObjAndSlb()) {
dAcNpcTalkKensei_c::GetInstance()->triggerSalvageQuestion(this);
}
}
}
void dAcSalbageObj_c::addAttentionTargetIfNeeded() {
switch (mSalvageIf.getSalvageObjId()) {
case SALVAGE_OBJ_WATER_JAR:
case SALVAGE_OBJ_POT: return;
default: addAttentionTarget(); break;
}
}
void dAcSalbageObj_c::addAttentionTarget() {
AttentionManager::sInstance->addTarget(*this, sInteractionTargetDefs[mSalvageIf.getSalvageObjId()], 0, nullptr);
InteractionTargetDef copy = sInteractionTargetDefs[mSalvageIf.getSalvageObjId()];
copy.field_0x00 = 1;
AttentionManager::sInstance->addTarget(*this, copy, 0, nullptr);
}
void dAcSalbageObj_c::initCcAndBg() {
mBgObjAcch.Set(this, 1, &mBgAcchCir);
mBgObjAcch.SetWaterNone();
mBgObjAcch.SetRoofNone();
mBgObjAcch.SetGndThinCellingOff();
mBgAcchCir.SetWall(0.0f, 100.0f);
mStts.SetDefaultRank();
mCcCyl.Set(sCylSrc);
mCcCyl.SetStts(mStts);
}
bool dAcSalbageObj_c::shouldBeActiveDowsingTarget() const {
if (mBehavior != BEHAVIOR_STATIONARY) {
return false;
}
if (dSalvageMgr_c::sInstance->getCurrentSalvageObjId() == mSalvageIf.getSalvageObjId()) {
return false;
}
if (dSalvageMgr_c::sInstance->hasDowsingForSalvageObj(this) == false) {
return false;
} else {
return mSalvageIf.getSalvageObjId() != SALVAGE_OBJ_POT;
}
}
void dAcSalbageObj_c::updateCc() {
mCcCyl.SetC(position);
mCcCyl.SetR(getCcRadius());
mCcCyl.SetH(getCcHeight());
dCcS::GetInstance()->Set(&mCcCyl);
}
void dAcSalbageObj_c::updateBgAcchCir() {
mBgAcchCir.SetWall(getBgAcchCirHeight(), getBgAcchCirRadius());
mBgObjAcch.CrrPos(*dBgS::GetInstance());
}
void dAcSalbageObj_c::calcMtxFromSalbageNpc(mMtx_c &ret) {
dAcNpcSlb_c *npc = dSalvageMgr_c::sInstance->mSlbRef.get();
if (npc == nullptr) {
ret.transS(position.x, position.y, position.z);
ret.ZXYrotM(rotation);
} else {
ret = npc->getCarriedObjMtx();
mMtx_c rotMtx = dSalvageMgr_c::sInstance->getCarryRotMtx2(mSalvageIf.getSalvageObjId());
MTXConcat(ret, rotMtx, ret);
ret.getTranslation(position);
}
}
mMtx_c dAcSalbageObj_c::calcWorldMtx() {
mMtx_c ret;
if (mSalvageIf.isCarried()) {
calcMtxFromSalbageNpc(ret);
} else {
ret.transS(position);
ret.ZXYrotM(rotation);
}
return ret;
}
void dAcSalbageObj_c::updateMdl() {
mWorldMtx = calcWorldMtx();
mpMdl->setLocalMtx(mWorldMtx);
mpMdl->setScale(mScale);
mpMdl->calc(false);
field_0x900 = 0.0f;
mVec3_c translate;
mWorldMtx.getTranslation(translate);
if (dBgS_ObjGndChk::CheckPos(translate)) {
f32 diff = translate.y - dBgS_ObjGndChk::GetGroundHeight();
if (diff >= 0.0f && diff <= 850.0f) {
field_0x900 = diff;
}
}
f32 scale = mScale.x;
poscopy3 = position;
poscopy3.y += getPoscopy3YOffset() * scale;
poscopy2 = position;
poscopy2.y += getPoscopy2YOffset() * scale;
}
void dAcSalbageObj_c::loadBehaviorFromParams() {
mBehavior = getFromParams(4, 0xF);
}
void dAcSalbageObj_c::initializeState_Wait() {
mDowsingTarget.initialize(getDowsingSlot(), 0, &field_0x95C, getDowsingUnusedF32());
mDowsingTarget.doRegister();
mIsDowsingRegistered = true;
}
void dAcSalbageObj_c::executeState_Wait() {
if (dSalvageMgr_c::sInstance->getCurrentSalvageObjId() != mSalvageIf.getSalvageObjId()) {
if (!dSalvageMgr_c::sInstance->mSlbRef.isLinked()) {
mVec3_c pos(position.x, position.y + 100000.0f, position.z);
dAcObjBase_c::create(fProfile::NPC_SLB, roomid, 0xFFFFFD01, &pos, nullptr, nullptr, -1);
}
if (dSalvageMgr_c::sInstance->startedQuestForSalvageObj(this)) {
addAttentionTargetIfNeeded();
}
}
}
void dAcSalbageObj_c::finalizeState_Wait() {}
void dAcSalbageObj_c::initializeState_Carried() {
// Return to "carried" after demo ends
mpNextStateId = &StateID_Carried;
}
void dAcSalbageObj_c::executeState_Carried() {}
void dAcSalbageObj_c::finalizeState_Carried() {}
void dAcSalbageObj_c::initializeState_Fly() {}
void dAcSalbageObj_c::executeState_Fly() {}
void dAcSalbageObj_c::finalizeState_Fly() {}
void dAcSalbageObj_c::initializeState_After() {
dSalvageMgr_c::sInstance->deleteObjAndSlb();
}
void dAcSalbageObj_c::executeState_After() {
dSalvageMgr_c::sInstance->deleteObjAndSlb();
}
void dAcSalbageObj_c::finalizeState_After() {}
void dAcSalbageObj_c::initializeState_Demo() {}
void dAcSalbageObj_c::executeState_Demo() {}
void dAcSalbageObj_c::finalizeState_Demo() {}
void dAcSalbageObj_c::initializeState_DemoThrow() {
mWorldSRMtx = mWorldMtx;
mWorldSRMtx.m[0][3] = 0.0f;
mWorldSRMtx.m[1][3] = 0.0f;
mWorldSRMtx.m[2][3] = 0.0f;
mWorldMtx.getTranslation(position);
field_0x938 = 0.0f;
mVec3_c result;
MTXMultVecSR(mWorldSRMtx, mVec3_c::Ez, result);
rotation.y = result.atan2sX_Z();
rotation.x = -cM::atan2s(result.y, result.absXZ());
rotation.z = field_0x904;
angle.x = 0;
angle.y = rotation.y;
angle.z = 0;
forwardMaxSpeed = -40.0f;
mBgObjAcch.Set(this, 1, &mBgAcchCir);
mBgObjAcch.SetWaterNone();
mBgObjAcch.SetRoofNone();
mBgObjAcch.SetGndThinCellingOff();
mBgAcchCir.SetWall(0.0f, 100.0f);
mSalvageIf.setNotCarried();
}
void dAcSalbageObj_c::executeState_DemoThrow() {}
void dAcSalbageObj_c::finalizeState_DemoThrow() {}
void dAcSalbageObj_c::initializeState_Kill() {
deleteRequest();
}
void dAcSalbageObj_c::executeState_Kill() {
deleteRequest();
}
void dAcSalbageObj_c::finalizeState_Kill() {}