diff --git a/config/GZ2E01/rels/d_a_e_oc/symbols.txt b/config/GZ2E01/rels/d_a_e_oc/symbols.txt index 28127c03b5..f1b477b5bd 100644 --- a/config/GZ2E01/rels/d_a_e_oc/symbols.txt +++ b/config/GZ2E01/rels/d_a_e_oc/symbols.txt @@ -237,10 +237,11 @@ m_battle_oc__6E_OC_n = .bss:0x00000048; // type:object size:0x4 scope:global m_damage_oc__6E_OC_n = .bss:0x0000004C; // type:object size:0x4 scope:global m_death_oc__6E_OC_n = .bss:0x00000050; // type:object size:0x4 scope:global m_talk_oc__6E_OC_n = .bss:0x00000054; // type:object size:0x4 scope:global -init$0000 = .bss:0x00000058; // type:object size:0x1 scope:local align:1 data:byte +lbl_216_bss_58 = .bss:0x00000058; // type:object size:0x1 scope:local align:1 data:byte @3927 = .bss:0x0000005C; // type:object size:0xC scope:local l_HIO = .bss:0x00000068; // type:object size:0x28 scope:global align:4 data:float @6203 = .bss:0x00000090; // type:object size:0xC scope:local +init$4239 = .bss:0x0000009C; // type:object size:0x1 scope:local align:1 data:byte sc$6202 = .bss:0x000000A0; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000AC; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000000B0; // type:object size:0x4 scope:global diff --git a/config/GZ2E01/rels/d_a_e_rdy/symbols.txt b/config/GZ2E01/rels/d_a_e_rdy/symbols.txt index 8e5315363b..e40b3a4db1 100644 --- a/config/GZ2E01/rels/d_a_e_rdy/symbols.txt +++ b/config/GZ2E01/rels/d_a_e_rdy/symbols.txt @@ -329,6 +329,7 @@ target_info = .bss:0x000000C8; // type:object size:0x28 scope:global target_info_count = .bss:0x000000F0; // type:object size:0x4 scope:global data:4byte check_index$4747 = .bss:0x000000F4; // type:object size:0xFF scope:local c_start = .bss:0x000001F4; // type:object size:0x4 scope:global +data_8077aa20 = .bss:0x000001F8; // type:object size:0x1 scope:global sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000001FC; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000200; // type:object size:0x4 scope:global sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x00000204; // type:object size:0x4 scope:global diff --git a/config/GZ2J01/rels/d_a_e_oc/symbols.txt b/config/GZ2J01/rels/d_a_e_oc/symbols.txt index 8e41485d59..b250dcbaf2 100644 --- a/config/GZ2J01/rels/d_a_e_oc/symbols.txt +++ b/config/GZ2J01/rels/d_a_e_oc/symbols.txt @@ -240,6 +240,7 @@ lbl_216_bss_58 = .bss:0x00000058; // type:object size:0x1 data:byte @3927 = .bss:0x0000005C; // type:object size:0xC scope:local l_HIO = .bss:0x00000068; // type:object size:0x28 scope:global align:4 data:float @6203 = .bss:0x00000090; // type:object size:0xC scope:local +init$4239 = .bss:0x0000009C; // type:object size:0x1 scope:local align:1 data:byte sc$6202 = .bss:0x000000A0; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000AC; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000000B0; // type:object size:0x4 scope:global diff --git a/config/GZ2J01/rels/d_a_e_rdy/symbols.txt b/config/GZ2J01/rels/d_a_e_rdy/symbols.txt index c398d8ed8a..1099c4a486 100644 --- a/config/GZ2J01/rels/d_a_e_rdy/symbols.txt +++ b/config/GZ2J01/rels/d_a_e_rdy/symbols.txt @@ -328,6 +328,7 @@ target_info = .bss:0x000000C8; // type:object size:0x28 scope:global target_info_count = .bss:0x000000F0; // type:object size:0x4 scope:global data:4byte check_index$4747 = .bss:0x000000F4; // type:object size:0xFF scope:local c_start = .bss:0x000001F4; // type:object size:0x4 scope:global +data_8077aa20 = .bss:0x000001F8; // type:object size:0x1 scope:global sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000001FC; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000200; // type:object size:0x4 scope:global sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x00000204; // type:object size:0x4 scope:global diff --git a/config/GZ2P01/rels/d_a_e_oc/symbols.txt b/config/GZ2P01/rels/d_a_e_oc/symbols.txt index 8e41485d59..b250dcbaf2 100644 --- a/config/GZ2P01/rels/d_a_e_oc/symbols.txt +++ b/config/GZ2P01/rels/d_a_e_oc/symbols.txt @@ -240,6 +240,7 @@ lbl_216_bss_58 = .bss:0x00000058; // type:object size:0x1 data:byte @3927 = .bss:0x0000005C; // type:object size:0xC scope:local l_HIO = .bss:0x00000068; // type:object size:0x28 scope:global align:4 data:float @6203 = .bss:0x00000090; // type:object size:0xC scope:local +init$4239 = .bss:0x0000009C; // type:object size:0x1 scope:local align:1 data:byte sc$6202 = .bss:0x000000A0; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000AC; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000000B0; // type:object size:0x4 scope:global diff --git a/config/GZ2P01/rels/d_a_e_rdy/symbols.txt b/config/GZ2P01/rels/d_a_e_rdy/symbols.txt index c398d8ed8a..1099c4a486 100644 --- a/config/GZ2P01/rels/d_a_e_rdy/symbols.txt +++ b/config/GZ2P01/rels/d_a_e_rdy/symbols.txt @@ -328,6 +328,7 @@ target_info = .bss:0x000000C8; // type:object size:0x28 scope:global target_info_count = .bss:0x000000F0; // type:object size:0x4 scope:global data:4byte check_index$4747 = .bss:0x000000F4; // type:object size:0xFF scope:local c_start = .bss:0x000001F4; // type:object size:0x4 scope:global +data_8077aa20 = .bss:0x000001F8; // type:object size:0x1 scope:global sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000001FC; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000200; // type:object size:0x4 scope:global sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x00000204; // type:object size:0x4 scope:global diff --git a/config/ShieldD/rels/d_a_L7low_drD/symbols.txt b/config/ShieldD/rels/d_a_L7low_drD/symbols.txt index 22c8135848..9d257fbf21 100644 --- a/config/ShieldD/rels/d_a_L7low_drD/symbols.txt +++ b/config/ShieldD/rels/d_a_L7low_drD/symbols.txt @@ -37,7 +37,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @116853 = .rodata:0x00000038; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x0000003C; // type:object size:0xC scope:global @46916 = .rodata:0x00000048; // type:object size:0x4 scope:local -lbl_268_rodata_4C = .rodata:0x0000004C; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000050; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000058; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000060; // type:object size:0x4 align:4 data:float @116791 = .data:0x00000000; // type:object size:0x8 scope:local data:string @116914 = .data:0x00000008; // type:object size:0x11 scope:local data:string @116915 = .data:0x0000001C; // type:object size:0xF scope:local data:string @@ -48,4 +50,4 @@ lbl_268_rodata_4C = .rodata:0x0000004C; // type:object size:0x18 @116959 = .data:0x00000098; // type:object size:0x2A scope:local l_daL7lowDr_Method = .data:0x000000C8; // type:object size:0x20 scope:global g_profile_L7lowDr = .data:0x000000E8; // type:object size:0x30 scope:global -lbl_268_data_118 = .data:0x00000118; // type:object size:0x3 data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000118; // type:object size:0x3 data:string diff --git a/config/ShieldD/rels/d_a_L7op_demo_drD/symbols.txt b/config/ShieldD/rels/d_a_L7op_demo_drD/symbols.txt index 24bc5a2de2..b5e9ded0fb 100644 --- a/config/ShieldD/rels/d_a_L7op_demo_drD/symbols.txt +++ b/config/ShieldD/rels/d_a_L7op_demo_drD/symbols.txt @@ -115,7 +115,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @120176 = .rodata:0x0000014C; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000150; // type:object size:0xC scope:global @46916 = .rodata:0x0000015C; // type:object size:0x4 scope:local -lbl_269_rodata_160 = .rodata:0x00000160; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000160; // type:object size:0x8 +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000168; // type:object size:0x8 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000170; // type:object size:0x4 @119468 = .data:0x00000000; // type:object size:0xC scope:local @119577 = .data:0x0000000C; // type:object size:0xC scope:local data:4byte @119578 = .data:0x00000018; // type:object size:0xC scope:local data:4byte @@ -147,4 +149,4 @@ lbl_269_data_160 = .data:0x00000160; // type:object size:0x24 @120220 = .data:0x000002A8; // type:object size:0x9 scope:local data:string @120221 = .data:0x000002C0; // type:object size:0x11 scope:local data:string @120222 = .data:0x000002E0; // type:object size:0x10 scope:local data:string -lbl_269_data_2F0 = .data:0x000002F0; // type:object size:0xC +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x000002F8; // type:object size:0x3 scope:local data:string diff --git a/config/ShieldD/rels/d_a_bdD/symbols.txt b/config/ShieldD/rels/d_a_bdD/symbols.txt index c0a76ede04..9a6e132032 100644 --- a/config/ShieldD/rels/d_a_bdD/symbols.txt +++ b/config/ShieldD/rels/d_a_bdD/symbols.txt @@ -97,7 +97,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @122188 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:string cNullVec__6Z2Calc = .rodata:0x000000F4; // type:object size:0xC scope:global @46916 = .rodata:0x00000100; // type:object size:0x4 scope:local -lbl_58_rodata_104 = .rodata:0x00000104; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000108; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000110; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000118; // type:object size:0x4 align:4 data:float @121278 = .data:0x00000000; // type:object size:0x9 scope:local @121279 = .data:0x0000000C; // type:object size:0xB scope:local @121282 = .data:0x00000018; // type:object size:0x9 scope:local diff --git a/config/ShieldD/rels/d_a_bgD/symbols.txt b/config/ShieldD/rels/d_a_bgD/symbols.txt index db371b7051..09f72708a2 100644 --- a/config/ShieldD/rels/d_a_bgD/symbols.txt +++ b/config/ShieldD/rels/d_a_bgD/symbols.txt @@ -44,7 +44,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @121939 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 data:float cNullVec__6Z2Calc = .rodata:0x0000002C; // type:object size:0xC scope:global @46916 = .rodata:0x00000038; // type:object size:0x4 scope:local -lbl_3_rodata_3C = .rodata:0x0000003C; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000040; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000048; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000050; // type:object size:0x4 align:4 data:float @LOCAL@createHeap__6daBg_cFv@l_modelName = .data:0x00000000; // type:object size:0x42 scope:local @LOCAL@createHeap__6daBg_cFv@l_modelName2@0 = .data:0x00000044; // type:object size:0x42 scope:local @LOCAL@createHeap__6daBg_cFv@l_btkName@1 = .data:0x00000088; // type:object size:0x42 scope:local diff --git a/config/ShieldD/rels/d_a_door_spiralD/symbols.txt b/config/ShieldD/rels/d_a_door_spiralD/symbols.txt index 9b074e73d8..35360cc5f2 100644 --- a/config/ShieldD/rels/d_a_door_spiralD/symbols.txt +++ b/config/ShieldD/rels/d_a_door_spiralD/symbols.txt @@ -117,7 +117,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @117952 = .rodata:0x00000084; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000088; // type:object size:0xC scope:global @46916 = .rodata:0x00000094; // type:object size:0x4 scope:local -lbl_9_rodata_98 = .rodata:0x00000098; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000098; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000000A0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000A8; // type:object size:0x4 align:4 data:float @116830 = .data:0x00000000; // type:object size:0xF scope:local data:string @116831 = .data:0x00000010; // type:object size:0xF scope:local data:string @LOCAL@getSpiralDzbName__10daSpiral_cFi@dzb = .data:0x00000020; // type:object size:0x8 scope:local @@ -170,7 +172,27 @@ lbl_9_rodata_98 = .rodata:0x00000098; // type:object size:0x14 @117894 = .data:0x00000390; // type:object size:0x19 scope:local data:string l_daSpiral_Method = .data:0x000003B0; // type:object size:0x20 scope:global g_profile_SPIRAL_DOOR = .data:0x000003D0; // type:object size:0x30 scope:global -lbl_9_data_400 = .data:0x00000400; // type:object size:0x130 +@STRING@onStatusFlag__20dStage_roomControl_cFiUc@2 = .data:0x00000400; // type:object size:0x5 scope:local data:string +@STRING@onStatusFlag__20dStage_roomControl_cFiUc@1 = .data:0x00000408; // type:object size:0xA scope:local data:string +@STRING@onStatusFlag__20dStage_roomControl_cFiUc@0 = .data:0x00000414; // type:object size:0x1F scope:local data:string +@STRING@onStatusFlag__20dStage_roomControl_cFiUc = .data:0x00000434; // type:object size:0xA scope:local data:string +@STRING@offStatusFlag__20dStage_roomControl_cFiUc@2 = .data:0x00000440; // type:object size:0x5 scope:local data:string +@STRING@offStatusFlag__20dStage_roomControl_cFiUc@1 = .data:0x00000448; // type:object size:0xA scope:local data:string +@STRING@offStatusFlag__20dStage_roomControl_cFiUc@0 = .data:0x00000454; // type:object size:0x1F scope:local data:string +@STRING@offStatusFlag__20dStage_roomControl_cFiUc = .data:0x00000474; // type:object size:0xA scope:local data:string +@STRING@checkStatusFlag__20dStage_roomControl_cCFiUc@2 = .data:0x00000480; // type:object size:0x5 scope:local data:string +@STRING@checkStatusFlag__20dStage_roomControl_cCFiUc@1 = .data:0x00000488; // type:object size:0xA scope:local data:string +@STRING@checkStatusFlag__20dStage_roomControl_cCFiUc@0 = .data:0x00000494; // type:object size:0x1F scope:local data:string +@STRING@checkStatusFlag__20dStage_roomControl_cCFiUc = .data:0x000004B4; // type:object size:0xA scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@6 = .data:0x000004C0; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@5 = .data:0x000004C8; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@4 = .data:0x000004D4; // type:object size:0x16 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@3 = .data:0x000004EC; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@2 = .data:0x000004F8; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@1 = .data:0x00000500; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@0 = .data:0x0000050C; // type:object size:0x14 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi = .data:0x00000520; // type:object size:0x9 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x0000052C; // type:object size:0x3 scope:local data:string ...bss.0 = .bss:0x00000000; // type:label scope:local l_step_offset = .bss:0x00000000; // type:object size:0xC scope:global l_dzb_offset = .bss:0x0000000C; // type:object size:0xC scope:global diff --git a/config/ShieldD/rels/d_a_e_bgD/symbols.txt b/config/ShieldD/rels/d_a_e_bgD/symbols.txt index 9be5600189..78ca319fe3 100644 --- a/config/ShieldD/rels/d_a_e_bgD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_bgD/symbols.txt @@ -92,7 +92,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @119712 = .rodata:0x000000A8; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x000000AC; // type:object size:0xC scope:global @46916 = .rodata:0x000000B8; // type:object size:0x4 scope:local -lbl_165_rodata_BC = .rodata:0x000000BC; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000C0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000000C8; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000D0; // type:object size:0x4 align:4 data:float @118750 = .data:0x00000000; // type:object size:0x7 scope:local @118751 = .data:0x00000008; // type:object size:0x9 scope:local @118753 = .data:0x00000014; // type:object size:0x9 scope:local @@ -141,6 +143,14 @@ lbl_165_data_298 = .data:0x00000298; // type:object size:0x24 @119822 = .data:0x00000480; // type:object size:0xC scope:local @119823 = .data:0x000004A4; // type:object size:0x11 scope:local data:string @119824 = .data:0x000004CC; // type:object size:0xD scope:local data:string -lbl_165_data_4D9 = .data:0x000004D9; // type:object size:0x93 +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x000004E8; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x000004F0; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000500; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000514; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x00000524; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x0000052C; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x00000540; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x00000554; // type:object size:0x14 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000568; // type:object size:0x3 scope:local data:string hio_set = .bss:0x00000000; // type:object size:0x1 data:byte l_HIO = .bss:0x00000004; // type:object size:0x24 scope:global data:byte diff --git a/config/ShieldD/rels/d_a_e_dfD/splits.txt b/config/ShieldD/rels/d_a_e_dfD/splits.txt index cacf8e3d71..b7d893b02c 100644 --- a/config/ShieldD/rels/d_a_e_dfD/splits.txt +++ b/config/ShieldD/rels/d_a_e_dfD/splits.txt @@ -14,4 +14,4 @@ d/actor/d_a_e_df.cpp: .ctors start:0x00000000 end:0x00000004 .rodata start:0x00000000 end:0x000000DC .data start:0x00000000 end:0x00000238 - .bss start:0x00000004 end:0x00000010 + .bss start:0x00000000 end:0x00000010 diff --git a/config/ShieldD/rels/d_a_e_dfD/symbols.txt b/config/ShieldD/rels/d_a_e_dfD/symbols.txt index cb3278833b..aef375b5b5 100644 --- a/config/ShieldD/rels/d_a_e_dfD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_dfD/symbols.txt @@ -83,7 +83,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @120010 = .rodata:0x000000B0; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x000000B4; // type:object size:0xC scope:global @46916 = .rodata:0x000000C0; // type:object size:0x4 scope:local -lbl_176_rodata_C4 = .rodata:0x000000C4; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000C8; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000000D0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000D8; // type:object size:0x4 align:4 data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -108,6 +110,10 @@ __RTTI__12daE_DF_HIO_c = .data:0x00000160; // type:object size:0x8 scope:global @120105 = .data:0x000001A8; // type:object size:0xE scope:local data:string @120106 = .data:0x000001B8; // type:object size:0xC scope:local @120107 = .data:0x000001DC; // type:object size:0x11 scope:local data:string -lbl_176_data_1ED = .data:0x000001ED; // type:object size:0x4B -lbl_176_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x000001F8; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000200; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000210; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000224; // type:object size:0xF scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000234; // type:object size:0x3 scope:local data:string +hio_set = .bss:0x00000000; // type:object size:0x1 scope:global data:byte l_HIO = .bss:0x00000004; // type:object size:0xC scope:global data:byte diff --git a/config/ShieldD/rels/d_a_e_dnD/symbols.txt b/config/ShieldD/rels/d_a_e_dnD/symbols.txt index 560729a9f9..790a31b4ab 100644 --- a/config/ShieldD/rels/d_a_e_dnD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_dnD/symbols.txt @@ -178,7 +178,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @120120 = .rodata:0x00000168; // type:object size:0x4 scope:local align:4 data:float cNullVec__6Z2Calc = .rodata:0x0000016C; // type:object size:0xC scope:global @46916 = .rodata:0x00000178; // type:object size:0x4 scope:local -lbl_63_rodata_17C = .rodata:0x0000017C; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000180; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000188; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000190; // type:object size:0x4 align:4 data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -261,8 +263,16 @@ lbl_63_data_720 = .data:0x00000720; // type:object size:0x38 @120221 = .data:0x00000970; // type:object size:0xE scope:local data:string @120222 = .data:0x00000980; // type:object size:0xC scope:local @120223 = .data:0x000009A4; // type:object size:0x11 scope:local data:string -lbl_63_data_9B5 = .data:0x000009B5; // type:object size:0x8F -lbl_63_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x000009C0; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x000009C8; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x000009D8; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x000009EC; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x000009FC; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x00000A04; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x00000A18; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x00000A2C; // type:object size:0x14 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000A40; // type:object size:0x3 scope:local data:string +hio_set = .bss:0x00000000; // type:object size:0x1 data:byte l_HIO = .bss:0x00000008; // type:object size:0x28 scope:global data:byte target_info = .bss:0x00000030; // type:object size:0x28 scope:global target_info_count = .bss:0x00000058; // type:object size:0x4 scope:global data:4byte diff --git a/config/ShieldD/rels/d_a_e_hpD/symbols.txt b/config/ShieldD/rels/d_a_e_hpD/symbols.txt index 8a8f39a6db..9bfe786f0e 100644 --- a/config/ShieldD/rels/d_a_e_hpD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_hpD/symbols.txt @@ -102,7 +102,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @120093 = .rodata:0x000000B8; // type:object size:0x8 scope:local cNullVec__6Z2Calc = .rodata:0x000000C0; // type:object size:0xC scope:global @46916 = .rodata:0x000000CC; // type:object size:0x4 scope:local -lbl_191_rodata_D0 = .rodata:0x000000D0; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000D0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000000D8; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000E0; // type:object size:0x4 align:4 data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -161,6 +163,14 @@ lbl_191_data_310 = .data:0x00000310; // type:object size:0x24 @120214 = .data:0x00000528; // type:object size:0xE scope:local data:string @120215 = .data:0x00000538; // type:object size:0xC scope:local @120216 = .data:0x0000055C; // type:object size:0x11 scope:local data:string -lbl_191_data_56D = .data:0x0000056D; // type:object size:0x8F +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000578; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000580; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000590; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x000005A4; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x000005B4; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x000005BC; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x000005D0; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x000005E4; // type:object size:0x14 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x000005F8; // type:object size:0x3 scope:local data:string hio_set = .bss:0x00000000; // type:object size:0x1 data:byte l_HIO = .bss:0x00000004; // type:object size:0x14 scope:global data:byte diff --git a/config/ShieldD/rels/d_a_e_ocD/symbols.txt b/config/ShieldD/rels/d_a_e_ocD/symbols.txt index 8a373710eb..2e95f19654 100644 --- a/config/ShieldD/rels/d_a_e_ocD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_ocD/symbols.txt @@ -203,7 +203,9 @@ oc_attackc_trans__6E_OC_n = .rodata:0x00000038; // type:object size:0x28 scope:g @121462 = .rodata:0x000001D0; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x000001D4; // type:object size:0xC scope:global @46916 = .rodata:0x000001E0; // type:object size:0x4 scope:local -lbl_207_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000001E8; // type:object size:0x8 +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000001F0; // type:object size:0x8 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000001F8; // type:object size:0x4 @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -263,13 +265,21 @@ lbl_207_data_3F0 = .data:0x000003F0; // type:object size:0x24 @121570 = .data:0x000005E8; // type:object size:0xE scope:local data:string @121571 = .data:0x000005F8; // type:object size:0xC scope:local @121572 = .data:0x0000061C; // type:object size:0x11 scope:local data:string -lbl_207_data_62D = .data:0x0000062D; // type:object size:0x8F +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000638; // type:object size:0x5 data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000640; // type:object size:0xF data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000650; // type:object size:0x14 data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000664; // type:object size:0xF data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x00000674; // type:object size:0x5 data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x0000067C; // type:object size:0x14 data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x00000690; // type:object size:0x14 data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x000006A4; // type:object size:0x14 data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x000006B8; // type:object size:0x3 data:string ...bss.0 = .bss:0x00000000; // type:label scope:local m_battle_oc__6E_OC_n = .bss:0x00000000; // type:object size:0x4 scope:global m_damage_oc__6E_OC_n = .bss:0x00000004; // type:object size:0x4 scope:global m_death_oc__6E_OC_n = .bss:0x00000008; // type:object size:0x4 scope:global m_talk_oc__6E_OC_n = .bss:0x0000000C; // type:object size:0x4 scope:global -lbl_207_bss_10 = .bss:0x00000010; // type:object size:0x8 data:byte +lbl_216_bss_58 = .bss:0x00000010; // type:object size:0x1 data:byte l_HIO = .bss:0x00000018; // type:object size:0x28 scope:global align:4 data:float -lbl_207_bss_40 = .bss:0x00000040; // type:object size:0x1 data:byte +@GUARD@setWaterEffect__8daE_OC_cFv@sc = .bss:0x00000040; // type:object size:0x1 data:byte @LOCAL@setWaterEffect__8daE_OC_cFv@sc = .bss:0x00000044; // type:object size:0xC scope:local diff --git a/config/ShieldD/rels/d_a_e_rdD/symbols.txt b/config/ShieldD/rels/d_a_e_rdD/symbols.txt index f0d5879231..9626870032 100644 --- a/config/ShieldD/rels/d_a_e_rdD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_rdD/symbols.txt @@ -375,7 +375,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @129637 = .rodata:0x000003BC; // type:object size:0x4 scope:local align:4 data:float cNullVec__6Z2Calc = .rodata:0x000003C0; // type:object size:0xC scope:global @46916 = .rodata:0x000003CC; // type:object size:0x4 scope:local -lbl_68_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000003D0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000003D8; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000003E0; // type:object size:0x4 align:4 data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -494,26 +496,34 @@ lbl_68_data_BA8 = .data:0x00000BA8; // type:object size:0x38 @129754 = .data:0x00000DF8; // type:object size:0xE scope:local data:string @129755 = .data:0x00000E08; // type:object size:0xC scope:local @129756 = .data:0x00000E2C; // type:object size:0x11 scope:local data:string -lbl_68_data_E3D = .data:0x00000E3D; // type:object size:0x8F +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000E48; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000E50; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000E60; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000E74; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x00000E84; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x00000E8C; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x00000EA0; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x00000EB4; // type:object size:0x14 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000EC8; // type:object size:0x3 scope:local data:string ...bss.0 = .bss:0x00000000; // type:label scope:local boss = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_68_bss_4 = .bss:0x00000004; // type:object size:0x1 data:byte +hio_set = .bss:0x00000004; // type:object size:0x1 data:byte l_HIO = .bss:0x00000008; // type:object size:0x50 scope:global data:byte S_find = .bss:0x00000058; // type:object size:0x2 scope:global data:2byte -lbl_68_bss_5A = .bss:0x0000005A; // type:object size:0x1 data:byte +lbl_70_bss_AE = .bss:0x0000005A; // type:object size:0x1 data:byte S_find_pos = .bss:0x0000005C; // type:object size:0xC scope:global -lbl_68_bss_68 = .bss:0x00000068; // type:object size:0x1 data:byte -lbl_68_bss_69 = .bss:0x00000069; // type:object size:0x7 data:byte +desert_substage = .bss:0x00000068; // type:object size:0x1 data:byte +data_80519210 = .bss:0x00000069; // type:object size:0x7 data:byte target_info = .bss:0x00000070; // type:object size:0x28 scope:global data:4byte target_info_count = .bss:0x00000098; // type:object size:0x4 scope:global data:4byte data_80519230 = .bss:0x0000009C; // type:object size:0x1 data:byte @LOCAL@path_check__FP10e_rd_class@check_index = .bss:0x000000A0; // type:object size:0xFF scope:local rd_count = .bss:0x000001A0; // type:object size:0x4 scope:global data:4byte -lbl_68_bss_1A4 = .bss:0x000001A4; // type:object size:0x1 data:byte +data_80519338 = .bss:0x000001A4; // type:object size:0x1 data:byte c_start = .bss:0x000001A8; // type:object size:0x4 scope:global data:4byte -lbl_68_bss_1AC = .bss:0x000001AC; // type:object size:0x1 data:byte +@GUARD@ride_game_actor_set__FP10e_rd_class@set_pos = .bss:0x000001AC; // type:object size:0x1 data:byte @LOCAL@ride_game_actor_set__FP10e_rd_class@set_pos = .bss:0x000001B0; // type:object size:0x48 scope:local -lbl_68_bss_1F8 = .bss:0x000001F8; // type:object size:0x1 data:byte +@GUARD@coach_game_actor_set__FP10e_rd_class@set_pos = .bss:0x000001F8; // type:object size:0x1 data:byte @LOCAL@coach_game_actor_set__FP10e_rd_class@set_pos = .bss:0x000001FC; // type:object size:0x24 scope:local jv_offset = .bss:0x00000220; // type:object size:0xC scope:global -lbl_68_bss_22C = .bss:0x0000022C; // type:object size:0x1 data:byte +instanceCount = .bss:0x0000022C; // type:object size:0x1 data:byte diff --git a/config/ShieldD/rels/d_a_e_rdyD/symbols.txt b/config/ShieldD/rels/d_a_e_rdyD/symbols.txt index 7c47be2c16..56bb1c65ba 100644 --- a/config/ShieldD/rels/d_a_e_rdyD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_rdyD/symbols.txt @@ -360,7 +360,7 @@ lbl_216_data_A70 = .data:0x00000A70; // type:object size:0x38 @125509 = .data:0x00000CF4; // type:object size:0x11 scope:local data:string lbl_216_data_D05 = .data:0x00000D05; // type:object size:0xFB boss = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_216_bss_4 = .bss:0x00000004; // type:object size:0x1 data:byte +hio_set = .bss:0x00000004; // type:object size:0x1 data:byte l_HIO = .bss:0x00000008; // type:object size:0x50 scope:global data:byte S_find = .bss:0x00000058; // type:object size:0x2 scope:global data:2byte S_find_pos = .bss:0x0000005C; // type:object size:0xC scope:global @@ -369,4 +369,4 @@ target_info_count = .bss:0x00000090; // type:object size:0x4 scope:global data:4 @LOCAL@path_check__FP11e_rdy_class@check_index = .bss:0x00000094; // type:object size:0xFF scope:local c_start = .bss:0x00000194; // type:object size:0x4 scope:global data:4byte jv_offset = .bss:0x00000198; // type:object size:0xC scope:global -lbl_216_bss_1A4 = .bss:0x000001A4; // type:object size:0x1 data:byte +data_8077aa20 = .bss:0x000001A4; // type:object size:0x1 data:byte diff --git a/config/ShieldD/rels/d_a_e_shD/symbols.txt b/config/ShieldD/rels/d_a_e_shD/symbols.txt index c65c7b006b..fbda2bb744 100644 --- a/config/ShieldD/rels/d_a_e_shD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_shD/symbols.txt @@ -115,7 +115,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @120044 = .rodata:0x00000130; // type:object size:0x8 scope:local cNullVec__6Z2Calc = .rodata:0x00000138; // type:object size:0xC scope:global @46916 = .rodata:0x00000144; // type:object size:0x4 scope:local -lbl_221_rodata_148 = .rodata:0x00000148; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000148; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000150; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000158; // type:object size:0x4 align:4 data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -172,6 +174,14 @@ lbl_221_data_340 = .data:0x00000340; // type:object size:0x24 @120142 = .data:0x00000518; // type:object size:0xE scope:local data:string @120143 = .data:0x00000528; // type:object size:0xC scope:local @120144 = .data:0x0000054C; // type:object size:0x11 scope:local data:string -lbl_221_data_55D = .data:0x0000055D; // type:object size:0x8F +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000568; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000570; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000580; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000594; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x000005A4; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x000005AC; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x000005C0; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x000005D4; // type:object size:0x14 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x000005E8; // type:object size:0x3 scope:local data:string hio_set = .bss:0x00000000; // type:object size:0x1 data:byte l_HIO = .bss:0x00000004; // type:object size:0x2C scope:global data:byte diff --git a/config/ShieldD/rels/d_a_e_sm2D/symbols.txt b/config/ShieldD/rels/d_a_e_sm2D/symbols.txt index 22702befc2..5578b6bf49 100644 --- a/config/ShieldD/rels/d_a_e_sm2D/symbols.txt +++ b/config/ShieldD/rels/d_a_e_sm2D/symbols.txt @@ -212,7 +212,15 @@ lbl_223_data_610 = .data:0x00000610; // type:object size:0x38 @120420 = .data:0x000008A0; // type:object size:0xC scope:local @120421 = .data:0x000008B8; // type:object size:0x11 scope:local data:string @120422 = .data:0x000008E4; // type:object size:0xD scope:local data:string -lbl_223_data_8F1 = .data:0x000008F1; // type:object size:0x93 +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000900; // type:object size:0x5 data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000908; // type:object size:0xF data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000918; // type:object size:0x14 data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x0000092C; // type:object size:0xF data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x0000093C; // type:object size:0x5 data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x00000944; // type:object size:0x14 data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x00000958; // type:object size:0x14 data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x0000096C; // type:object size:0x14 data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000980; // type:object size:0x3 data:string __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global ...bss.0 = .bss:0x00000008; // type:label scope:local @119109 = .bss:0x00000008; // type:object size:0xC scope:local diff --git a/config/ShieldD/rels/d_a_e_stD/symbols.txt b/config/ShieldD/rels/d_a_e_stD/symbols.txt index f771bbef80..f81da0a5cf 100644 --- a/config/ShieldD/rels/d_a_e_stD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_stD/symbols.txt @@ -190,7 +190,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @121296 = .rodata:0x000001A8; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x000001AC; // type:object size:0xC scope:global @46916 = .rodata:0x000001B8; // type:object size:0x4 scope:local -lbl_224_rodata_1BC = .rodata:0x000001BC; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000001C0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000001C8; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000001D0; // type:object size:0x4 align:4 data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -262,8 +264,16 @@ lbl_224_data_5CF = .data:0x000005CF; // type:object size:0x39 @121292 = .data:0x00000840; // type:object size:0xE scope:local data:string @121293 = .data:0x00000850; // type:object size:0xC scope:local @121294 = .data:0x00000874; // type:object size:0x11 scope:local data:string -lbl_224_data_885 = .data:0x00000885; // type:object size:0x8F +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000890; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000898; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x000008A8; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x000008BC; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x000008CC; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x000008D4; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x000008E8; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x000008FC; // type:object size:0x14 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000910; // type:object size:0x3 scope:local data:string small = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_224_bss_4 = .bss:0x00000004; // type:object size:0x1 data:byte +hio_set = .bss:0x00000004; // type:object size:0x1 data:byte l_HIO = .bss:0x00000008; // type:object size:0x24 scope:global data:byte top_pos_data = .bss:0x00000030; // type:object size:0x30 scope:global diff --git a/config/ShieldD/rels/d_a_e_ygD/symbols.txt b/config/ShieldD/rels/d_a_e_ygD/symbols.txt index a584ccaf6b..9f3b203108 100644 --- a/config/ShieldD/rels/d_a_e_ygD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_ygD/symbols.txt @@ -130,7 +130,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @119052 = .rodata:0x00000118; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x0000011C; // type:object size:0xC scope:global @46916 = .rodata:0x00000128; // type:object size:0x4 scope:local -lbl_241_rodata_12C = .rodata:0x0000012C; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000130; // type:object size:0x8 scope:local data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000138; // type:object size:0x8 scope:local data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000140; // type:object size:0x4 scope:local data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -179,13 +181,23 @@ __vt__18mDoExt_3DlineMat_c = .data:0x00000360; // type:object size:0x14 scope:gl @119047 = .data:0x000004A8; // type:object size:0xE scope:local data:string @119048 = .data:0x000004B8; // type:object size:0xC scope:local @119049 = .data:0x000004DC; // type:object size:0x11 scope:local data:string -lbl_241_data_4ED = .data:0x000004ED; // type:object size:0x7B +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@6 = .data:0x000004F8; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@5 = .data:0x00000500; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@4 = .data:0x0000050C; // type:object size:0x16 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@3 = .data:0x00000524; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@2 = .data:0x00000530; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@1 = .data:0x00000538; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@0 = .data:0x00000544; // type:object size:0x14 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi = .data:0x00000558; // type:object size:0x9 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000564; // type:object size:0x3 scope:local data:string ...bss.0 = .bss:0x00000000; // type:label scope:local +hio_set = .bss:0x00000000; // type:object size:0x1 scope:global data:byte l_HIO = .bss:0x00000004; // type:object size:0x1C scope:global data:byte -lbl_241_bss_20 = .bss:0x00000020; // type:object size:0x1 data:byte +@GUARD@ms_disappear__FP10e_yg_class@e_pos = .bss:0x00000020; // type:object size:0x1 data:byte @LOCAL@ms_disappear__FP10e_yg_class@e_pos = .bss:0x00000024; // type:object size:0x24 scope:local target_info = .bss:0x00000048; // type:object size:0x50 scope:global target_info_count = .bss:0x00000098; // type:object size:0x4 scope:global data:4byte ke_p = .bss:0x0000009C; // type:object size:0x9C scope:global ke_a = .bss:0x00000138; // type:object size:0x4E scope:global +@GUARD@daE_YG_Execute__FP10e_yg_class@sc = .bss:0x00000186; // type:object size:0x1 scope:local @LOCAL@daE_YG_Execute__FP10e_yg_class@sc = .bss:0x00000188; // type:object size:0xC scope:local diff --git a/config/ShieldD/rels/d_a_e_yrD/symbols.txt b/config/ShieldD/rels/d_a_e_yrD/symbols.txt index b337017063..315ad123b9 100644 --- a/config/ShieldD/rels/d_a_e_yrD/symbols.txt +++ b/config/ShieldD/rels/d_a_e_yrD/symbols.txt @@ -129,7 +129,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @120826 = .rodata:0x00000130; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000134; // type:object size:0xC scope:global @46916 = .rodata:0x00000140; // type:object size:0x4 scope:local -lbl_247_rodata_144 = .rodata:0x00000144; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000148; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000150; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000158; // type:object size:0x4 align:4 data:float @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_prim = .data:0x00000000; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@e_env@0 = .data:0x00000008; // type:object size:0x8 scope:local @LOCAL@setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz@eff_id@1 = .data:0x00000010; // type:object size:0x6 scope:local @@ -210,7 +212,19 @@ lbl_247_data_610 = .data:0x00000610; // type:object size:0x2C @120811 = .data:0x00000820; // type:object size:0xE scope:local data:string @120812 = .data:0x00000830; // type:object size:0xC scope:local @120813 = .data:0x00000848; // type:object size:0x11 scope:local data:string -lbl_247_data_859 = .data:0x00000859; // type:object size:0xDB +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000888; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000890; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x000008A0; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x000008B4; // type:object size:0xF scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@6 = .data:0x000008C4; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@5 = .data:0x000008CC; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@4 = .data:0x000008D8; // type:object size:0x16 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@3 = .data:0x000008F0; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@2 = .data:0x000008FC; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@1 = .data:0x00000904; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@0 = .data:0x00000910; // type:object size:0x14 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi = .data:0x00000924; // type:object size:0x9 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000930; // type:object size:0x3 scope:local data:string __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @119131 = .bss:0x00000008; // type:object size:0xC scope:local l_e_yrHIO = .bss:0x00000014; // type:object size:0x7C scope:global align:4 data:float diff --git a/config/ShieldD/rels/d_a_kagoD/symbols.txt b/config/ShieldD/rels/d_a_kagoD/symbols.txt index e13fe98947..db1f554ede 100644 --- a/config/ShieldD/rels/d_a_kagoD/symbols.txt +++ b/config/ShieldD/rels/d_a_kagoD/symbols.txt @@ -231,7 +231,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @125505 = .rodata:0x00000204; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000208; // type:object size:0xC scope:global @46916 = .rodata:0x00000214; // type:object size:0x4 scope:local -lbl_256_rodata_218 = .rodata:0x00000218; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000218; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000220; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000228; // type:object size:0x4 align:8 data:float cc_sph_src__22@unnamed@d_a_kago_cpp@ = .data:0x00000000; // type:object size:0x40 scope:global @123117 = .data:0x00000040; // type:object size:0x17 scope:local @123118 = .data:0x00000058; // type:object size:0x2 scope:local data:string @@ -312,6 +314,18 @@ lbl_256_data_530 = .data:0x00000530; // type:object size:0x24 @125861 = .data:0x00000728; // type:object size:0xE scope:local data:string @125862 = .data:0x00000738; // type:object size:0xC scope:local @125863 = .data:0x0000075C; // type:object size:0x11 scope:local data:string -lbl_256_data_76D = .data:0x0000076D; // type:object size:0xB7 +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000778; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000780; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000790; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x000007A4; // type:object size:0xF scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@6 = .data:0x000007B4; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@5 = .data:0x000007BC; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@4 = .data:0x000007C8; // type:object size:0x16 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@3 = .data:0x000007E0; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@2 = .data:0x000007EC; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@1 = .data:0x000007F4; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@0 = .data:0x00000800; // type:object size:0x14 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi = .data:0x00000814; // type:object size:0x9 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000820; // type:object size:0x3 scope:local data:string hio_set = .bss:0x00000000; // type:object size:0x1 data:byte l_HIO = .bss:0x00000004; // type:object size:0x5C scope:global data:byte diff --git a/config/ShieldD/rels/d_a_mg_rodD/symbols.txt b/config/ShieldD/rels/d_a_mg_rodD/symbols.txt index 771c641680..ed1fd64e11 100644 --- a/config/ShieldD/rels/d_a_mg_rodD/symbols.txt +++ b/config/ShieldD/rels/d_a_mg_rodD/symbols.txt @@ -298,7 +298,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @136138 = .rodata:0x000002C4; // type:object size:0x4 scope:local align:4 data:float cNullVec__6Z2Calc = .rodata:0x000002C8; // type:object size:0xC scope:global @46916 = .rodata:0x000002D4; // type:object size:0x4 scope:local -lbl_49_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000002D8; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000002E0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000002E8; // type:object size:0x4 align:4 data:float check_kind = .data:0x00000000; // type:object size:0x8 scope:global @131865 = .data:0x00000008; // type:object size:0x11 scope:local @131866 = .data:0x0000001C; // type:object size:0x15 scope:local @@ -401,18 +403,22 @@ __vt__18mDoExt_3DlineMat_c = .data:0x00000628; // type:object size:0x14 scope:gl @136240 = .data:0x00000790; // type:object size:0xE scope:local data:string @136241 = .data:0x000007A0; // type:object size:0xC scope:local @136242 = .data:0x000007C4; // type:object size:0x11 scope:local data:string -lbl_49_data_7D5 = .data:0x000007D5; // type:object size:0x4B +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x000007E0; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x000007E8; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x000007F8; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x0000080C; // type:object size:0xF scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x0000081C; // type:object size:0x3 scope:local data:string __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global ...bss.0 = .bss:0x00000008; // type:label scope:local henna = .bss:0x00000008; // type:object size:0x4 scope:global data:4byte -lbl_49_bss_C = .bss:0x0000000C; // type:object size:0x1 data:byte -lbl_49_bss_D = .bss:0x0000000D; // type:object size:0x1 data:byte +data_804BBBD4 = .bss:0x0000000C; // type:object size:0x1 data:byte +hio_set = .bss:0x0000000D; // type:object size:0x1 data:byte l_HIO = .bss:0x00000010; // type:object size:0x28 scope:global data:byte @132252 = .bss:0x00000038; // type:object size:0xC scope:local old_line_pos = .bss:0x00000048; // type:object size:0x4B0 scope:global -lbl_49_bss_4F8 = .bss:0x000004F8; // type:object size:0x1 data:byte +@GUARD@sibuki_set__FP13dmg_rod_classfP4cXyzi@sc = .bss:0x000004F8; // type:object size:0x1 data:byte @LOCAL@sibuki_set__FP13dmg_rod_classfP4cXyzi@sc = .bss:0x000004FC; // type:object size:0xC scope:local -lbl_49_bss_508 = .bss:0x00000508; // type:object size:0x8 data:byte +@GUARD@uki_main__FP13dmg_rod_class@sp_pos = .bss:0x00000508; // type:object size:0x1 data:byte @LOCAL@uki_main__FP13dmg_rod_class@sp_pos = .bss:0x00000510; // type:object size:0x18 scope:local @LOCAL@play_camera__FP13dmg_rod_class@old_stick_x = .bss:0x00000528; // type:object size:0x4 scope:local align:4 data:float @LOCAL@play_camera__FP13dmg_rod_class@old_stick_sx@0 = .bss:0x0000052C; // type:object size:0x4 scope:local align:4 data:float diff --git a/config/ShieldD/rels/d_a_npc_aruD/symbols.txt b/config/ShieldD/rels/d_a_npc_aruD/symbols.txt index f3075f3cf2..8a5bb0a30f 100644 --- a/config/ShieldD/rels/d_a_npc_aruD/symbols.txt +++ b/config/ShieldD/rels/d_a_npc_aruD/symbols.txt @@ -154,7 +154,9 @@ m__17daNpc_Aru_Param_c = .rodata:0x00000000; // type:object size:0xA0 scope:glob @123518 = .rodata:0x00000168; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x0000016C; // type:object size:0xC scope:global @46916 = .rodata:0x00000178; // type:object size:0x4 scope:local -lbl_276_rodata_17C = .rodata:0x0000017C; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000180; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000188; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000190; // type:object size:0x4 align:4 data:float @121973 = .data:0x00000000; // type:object size:0x1B scope:local @121974 = .data:0x0000001C; // type:object size:0x15 scope:local @121975 = .data:0x00000034; // type:object size:0x15 scope:local @@ -272,9 +274,22 @@ lbl_276_data_B98 = .data:0x00000B98; // type:object size:0x24 @123847 = .data:0x00000E4C; // type:object size:0xD scope:local data:string @STRING@__ct__11daNpc_Aru_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc = .data:0x00000E68; // type:object size:0x28 scope:local @STRING@__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc = .data:0x00000E90; // type:object size:0x25 scope:local -lbl_276_data_EB5 = .data:0x00000EB5; // type:object size:0xF3 +@STRING@__dt__8daNpcT_cFv = .data:0x00000EB8; // type:object size:0x23 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000EDC; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000EE4; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000EF4; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000F08; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x00000F18; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x00000F20; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x00000F34; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x00000F48; // type:object size:0x14 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs@2 = .data:0x00000F5C; // type:object size:0x5 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs@1 = .data:0x00000F64; // type:object size:0x11 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs@0 = .data:0x00000F78; // type:object size:0x16 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs = .data:0x00000F90; // type:object size:0x11 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000FA4; // type:object size:0x3 scope:local data:string __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @122030 = .bss:0x00000008; // type:object size:0xC scope:local l_HIO = .bss:0x00000018; // type:object size:0xA8 scope:global -lbl_276_bss_C0 = .bss:0x000000C0; // type:object size:0x1 data:byte +@GUARD@setAttnPos__11daNpc_Aru_cFv@prtclScl = .bss:0x000000C0; // type:object size:0x1 data:byte @LOCAL@setAttnPos__11daNpc_Aru_cFv@prtclScl = .bss:0x000000C4; // type:object size:0xC scope:local diff --git a/config/ShieldD/rels/d_a_npc_cdn3D/symbols.txt b/config/ShieldD/rels/d_a_npc_cdn3D/symbols.txt index 2c8f0e332f..15e44e91c6 100644 --- a/config/ShieldD/rels/d_a_npc_cdn3D/symbols.txt +++ b/config/ShieldD/rels/d_a_npc_cdn3D/symbols.txt @@ -173,7 +173,9 @@ ActionTable__11daNpcCdn3_c = .rodata:0x00000000; // type:object size:0xC0 scope: @125635 = .rodata:0x0000010C; // type:object size:0x4 scope:local align:4 data:float cNullVec__6Z2Calc = .rodata:0x00000110; // type:object size:0xC scope:global @46916 = .rodata:0x0000011C; // type:object size:0x4 scope:local -lbl_283_rodata_120 = .rodata:0x00000120; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000120; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000128; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000130; // type:object size:0x4 align:4 data:float @123854 = .data:0x00000000; // type:object size:0x11 scope:local data:string @123855 = .data:0x00000014; // type:object size:0x16 scope:local data:string @123856 = .data:0x0000002C; // type:object size:0x5 scope:local data:string @@ -302,4 +304,12 @@ lbl_283_data_AB8 = .data:0x00000AB8; // type:object size:0x24 @STRING@create__11daNpcCdn3_cFv@1 = .data:0x00000EE8; // type:object size:0x2 scope:local data:string @STRING@create__11daNpcCdn3_cFv@0 = .data:0x00000EEC; // type:object size:0x11 scope:local data:string @STRING@create__11daNpcCdn3_cFv = .data:0x00000F00; // type:object size:0x4E scope:local -lbl_283_data_F4E = .data:0x00000F4E; // type:object size:0x72 +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@6 = .data:0x00000F50; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@5 = .data:0x00000F58; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@4 = .data:0x00000F64; // type:object size:0x16 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@3 = .data:0x00000F7C; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@2 = .data:0x00000F88; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@1 = .data:0x00000F90; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@0 = .data:0x00000F9C; // type:object size:0x14 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi = .data:0x00000FB0; // type:object size:0x9 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000FBC; // type:object size:0x3 scope:local data:string diff --git a/config/ShieldD/rels/d_a_npc_chinD/symbols.txt b/config/ShieldD/rels/d_a_npc_chinD/symbols.txt index 128d5c79ee..32c1c0a37f 100644 --- a/config/ShieldD/rels/d_a_npc_chinD/symbols.txt +++ b/config/ShieldD/rels/d_a_npc_chinD/symbols.txt @@ -208,7 +208,9 @@ m__17daNpcChin_Param_c = .rodata:0x00000014; // type:object size:0x6C scope:glob @123074 = .rodata:0x00000310; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000314; // type:object size:0xC scope:global @46916 = .rodata:0x00000320; // type:object size:0x4 scope:local -lbl_285_rodata_324 = .rodata:0x00000324; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000328; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000330; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000338; // type:object size:0x4 align:8 data:float l_bckGetParamList = .data:0x00000000; // type:object size:0x18C scope:global l_btpGetParamList = .data:0x0000018C; // type:object size:0xB4 scope:global l_btkGetParamList = .data:0x00000240; // type:object size:0x6C scope:global data:4byte @@ -312,7 +314,19 @@ lbl_285_data_90F = .data:0x0000090F; // type:object size:0x2D @123446 = .data:0x00000B60; // type:object size:0x11 scope:local data:string @123447 = .data:0x00000B8C; // type:object size:0xC scope:local data:string @123448 = .data:0x00000BAC; // type:object size:0xD scope:local data:string -lbl_285_data_BB9 = .data:0x00000BB9; // type:object size:0xDB +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000BC8; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000BD0; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000BE0; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000BF4; // type:object size:0xF scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@2 = .data:0x00000C04; // type:object size:0x5 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@1 = .data:0x00000C0C; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs@0 = .data:0x00000C20; // type:object size:0x14 scope:local data:string +@STRING@getMaterialNodePointer__16J3DMaterialTableCFUs = .data:0x00000C34; // type:object size:0x14 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs@2 = .data:0x00000C48; // type:object size:0x5 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs@1 = .data:0x00000C50; // type:object size:0x11 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs@0 = .data:0x00000C64; // type:object size:0x16 scope:local data:string +@STRING@calc__11J3DTexNoAnmCFPUs = .data:0x00000C7C; // type:object size:0x11 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x00000C90; // type:object size:0x3 scope:local data:string __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @121430 = .bss:0x00000008; // type:object size:0xC scope:local l_HIO = .bss:0x00000014; // type:object size:0x74 scope:global diff --git a/config/ShieldD/rels/d_a_npc_duD/symbols.txt b/config/ShieldD/rels/d_a_npc_duD/symbols.txt index 8372515ead..d5ae89d32d 100644 --- a/config/ShieldD/rels/d_a_npc_duD/symbols.txt +++ b/config/ShieldD/rels/d_a_npc_duD/symbols.txt @@ -63,7 +63,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @119103 = .rodata:0x00000090; // type:object size:0x4 scope:local align:4 data:float cNullVec__6Z2Calc = .rodata:0x00000094; // type:object size:0xC scope:global @46916 = .rodata:0x000000A0; // type:object size:0x4 scope:local -lbl_294_rodata_A4 = .rodata:0x000000A4; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000A8; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x000000B0; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x000000B8; // type:object size:0x4 align:4 data:float @118576 = .data:0x00000000; // type:object size:0x9 scope:local @118577 = .data:0x0000000C; // type:object size:0xB scope:local @118602 = .data:0x00000018; // type:object size:0x7 scope:local data:string @@ -106,6 +108,10 @@ lbl_294_data_218 = .data:0x00000218; // type:object size:0x24 @119196 = .data:0x00000400; // type:object size:0xC scope:local @119197 = .data:0x00000424; // type:object size:0x11 scope:local data:string @119198 = .data:0x0000044C; // type:object size:0xD scope:local data:string -lbl_294_data_459 = .data:0x00000459; // type:object size:0x4F -lbl_294_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +@STRING@getJointNodePointer__12J3DJointTreeCFUs@2 = .data:0x00000468; // type:object size:0x5 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@1 = .data:0x00000470; // type:object size:0xF scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs@0 = .data:0x00000480; // type:object size:0x14 scope:local data:string +@STRING@getJointNodePointer__12J3DJointTreeCFUs = .data:0x00000494; // type:object size:0xF scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x000004A4; // type:object size:0x3 scope:local data:string +hio_set = .bss:0x00000000; // type:object size:0x1 data:byte l_HIO = .bss:0x00000004; // type:object size:0xC scope:global data:byte diff --git a/config/ShieldD/rels/d_a_obj_moveboxD/symbols.txt b/config/ShieldD/rels/d_a_obj_moveboxD/symbols.txt index 8129c3fdbc..35836218a0 100644 --- a/config/ShieldD/rels/d_a_obj_moveboxD/symbols.txt +++ b/config/ShieldD/rels/d_a_obj_moveboxD/symbols.txt @@ -127,7 +127,9 @@ M_attr__Q212daObjMovebox5Act_c = .rodata:0x00000290; // type:object size:0x500 s @LOCAL@chk_wall_touch__Q212daObjMovebox5Bgc_cFPCQ212daObjMovebox5Act_cPCQ212daObjMovebox8BgcSrc_cs@bgc_add@0 = .rodata:0x000007E8; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x000007EC; // type:object size:0xC scope:global @46916 = .rodata:0x000007F8; // type:object size:0x4 scope:local -lbl_21_rodata_7FC = .rodata:0x000007FC; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000800; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000808; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000810; // type:object size:0x4 align:4 data:float @117078 = .data:0x00000000; // type:object size:0xF scope:local @117079 = .data:0x00000010; // type:object size:0xF scope:local @117080 = .data:0x00000020; // type:object size:0x17 scope:local @@ -221,7 +223,15 @@ lbl_21_data_410 = .data:0x00000410; // type:object size:0x38 @STRING@Mthd_Create__Q212daObjMovebox5Act_cFv@1 = .data:0x000006F0; // type:object size:0x14 scope:local data:string @STRING@Mthd_Create__Q212daObjMovebox5Act_cFv@0 = .data:0x00000704; // type:object size:0x43 scope:local data:string @STRING@Mthd_Create__Q212daObjMovebox5Act_cFv = .data:0x00000748; // type:object size:0x14 scope:local data:string -lbl_21_data_75C = .data:0x0000075C; // type:object size:0x70 +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@6 = .data:0x0000075C; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@5 = .data:0x00000764; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@4 = .data:0x00000770; // type:object size:0x16 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@3 = .data:0x00000788; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@2 = .data:0x00000794; // type:object size:0x5 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@1 = .data:0x0000079C; // type:object size:0x9 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi@0 = .data:0x000007A8; // type:object size:0x14 scope:local data:string +@STRING@setDrawBuffer__6J3DSysFP13J3DDrawBufferi = .data:0x000007BC; // type:object size:0x9 scope:local data:string +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x000007C8; // type:object size:0x3 scope:local data:string __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global ...bss.0 = .bss:0x00000008; // type:label scope:local @117073 = .bss:0x00000008; // type:object size:0xC scope:local data:byte @@ -239,11 +249,13 @@ M_gnd_work__Q212daObjMovebox5Bgc_c = .bss:0x00001B9C; // type:object size:0x78C M_wrt_work__Q212daObjMovebox5Bgc_c = .bss:0x00002334; // type:object size:0x54 scope:global @117180 = .bss:0x00002388; // type:object size:0xC scope:local M_wall_work__Q212daObjMovebox5Bgc_c = .bss:0x00002398; // type:object size:0xA10 scope:global +@GUARD@chk_wall_touch__Q212daObjMovebox5Bgc_cFPCQ212daObjMovebox5Act_cPCQ212daObjMovebox8BgcSrc_cs@touch_work = .bss:0x00002DA8; // type:object size:0x1 scope:local data:byte @117372 = .bss:0x00002DAC; // type:object size:0xC scope:local @LOCAL@chk_wall_touch__Q212daObjMovebox5Bgc_cFPCQ212daObjMovebox5Act_cPCQ212daObjMovebox8BgcSrc_cs@touch_work = .bss:0x00002DB8; // type:object size:0x70 scope:local M_hio__Q212daObjMovebox5Act_c = .bss:0x00002E28; // type:object size:0x560 scope:global -lbl_21_bss_3388 = .bss:0x00003388; // type:object size:0x1 data:byte +@GUARD@eff_smoke_slip_start__Q212daObjMovebox5Act_cFv@scl = .bss:0x00003388; // type:object size:0x1 data:byte @LOCAL@eff_smoke_slip_start__Q212daObjMovebox5Act_cFv@scl = .bss:0x0000338C; // type:object size:0xC scope:local -lbl_21_bss_3398 = .bss:0x00003398; // type:object size:0x8 data:byte +@GUARD@mode_walk__Q212daObjMovebox5Act_cFv@dir_vec = .bss:0x00003398; // type:object size:0x1 data:byte @LOCAL@mode_walk__Q212daObjMovebox5Act_cFv@dir_vec = .bss:0x000033A0; // type:object size:0x30 scope:local +@GUARD@eff_break__Q212daObjMovebox5Act_cFv@particle_scale = .bss:0x000033D0; // type:object size:0x1 scope:local data:byte @LOCAL@eff_break__Q212daObjMovebox5Act_cFv@particle_scale = .bss:0x000033D4; // type:object size:0xC scope:local diff --git a/config/ShieldD/rels/d_a_tag_attack_itemD/symbols.txt b/config/ShieldD/rels/d_a_tag_attack_itemD/symbols.txt index 5f8dcd53be..3b015fae28 100644 --- a/config/ShieldD/rels/d_a_tag_attack_itemD/symbols.txt +++ b/config/ShieldD/rels/d_a_tag_attack_itemD/symbols.txt @@ -49,7 +49,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @117049 = .rodata:0x00000010; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000014; // type:object size:0xC scope:global @46916 = .rodata:0x00000020; // type:object size:0x4 scope:local -lbl_116_rodata_24 = .rodata:0x00000024; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000028; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000030; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000038; // type:object size:0x4 align:4 data:float l_cyl_src = .data:0x00000000; // type:object size:0x44 scope:global @116840 = .data:0x00000044; // type:object size:0x11 scope:local @116841 = .data:0x00000058; // type:object size:0x9 scope:local diff --git a/config/ShieldD/rels/d_a_tag_attentionD/symbols.txt b/config/ShieldD/rels/d_a_tag_attentionD/symbols.txt index 75875d2e1d..963c89f028 100644 --- a/config/ShieldD/rels/d_a_tag_attentionD/symbols.txt +++ b/config/ShieldD/rels/d_a_tag_attentionD/symbols.txt @@ -40,7 +40,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @LOCAL@genMessage__12daAttp_HIO_cFP11JORMContext@num@1 = .rodata:0x00000044; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000048; // type:object size:0xC scope:global @46916 = .rodata:0x00000054; // type:object size:0x4 scope:local -lbl_56_rodata_58 = .rodata:0x00000058; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000058; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000060; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000068; // type:object size:0x4 align:4 data:float @116757 = .data:0x00000000; // type:object size:0x12 scope:local @116758 = .data:0x00000018; // type:object size:0x10 scope:local @116759 = .data:0x00000028; // type:object size:0x10 scope:local @@ -103,7 +105,7 @@ __RTTI__12daAttp_HIO_c = .data:0x00000430; // type:object size:0x8 scope:global @117055 = .data:0x00000468; // type:object size:0xE scope:local data:string @117056 = .data:0x00000478; // type:object size:0xC scope:local @117057 = .data:0x00000490; // type:object size:0x11 scope:local data:string -lbl_56_data_4A1 = .data:0x000004A1; // type:object size:0x13 +@STRING@showAssert__12JUTAssertionFUlPCciPCc = .data:0x000004B0; // type:object size:0x3 data:string __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global @116744 = .bss:0x00000008; // type:object size:0xC scope:local l_HIO = .bss:0x00000018; // type:object size:0x20 scope:global data:byte diff --git a/config/ShieldD/rels/d_a_tag_cameraD/symbols.txt b/config/ShieldD/rels/d_a_tag_cameraD/symbols.txt index 9a52b03f06..1f83007d4f 100644 --- a/config/ShieldD/rels/d_a_tag_cameraD/symbols.txt +++ b/config/ShieldD/rels/d_a_tag_cameraD/symbols.txt @@ -54,7 +54,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @130279 = .rodata:0x00000070; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000074; // type:object size:0xC scope:global @46916 = .rodata:0x00000080; // type:object size:0x4 scope:local -lbl_29_rodata_84 = .rodata:0x00000084; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000088; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000090; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000098; // type:object size:0x4 align:4 data:float l_daTag_Cam_Method = .data:0x00000000; // type:object size:0x20 scope:global g_profile_TAG_CAMERA = .data:0x00000020; // type:object size:0x30 scope:global Player__28@unnamed@d_a_tag_camera_cpp@ = .bss:0x00000000; // type:object size:0x4 scope:global diff --git a/config/ShieldD/rels/d_a_tag_hjumpD/symbols.txt b/config/ShieldD/rels/d_a_tag_hjumpD/symbols.txt index 8de7564908..034bd48f4c 100644 --- a/config/ShieldD/rels/d_a_tag_hjumpD/symbols.txt +++ b/config/ShieldD/rels/d_a_tag_hjumpD/symbols.txt @@ -40,7 +40,9 @@ l_arcName = .rodata:0x00000000; // type:object size:0x7 scope:global data:string @118031 = .rodata:0x00000038; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x0000003C; // type:object size:0xC scope:global @46916 = .rodata:0x00000048; // type:object size:0x4 scope:local -lbl_120_rodata_4C = .rodata:0x0000004C; // type:object size:0x18 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000050; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000058; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000060; // type:object size:0x4 align:4 data:float @117860 = .data:0x00000000; // type:object size:0x5 scope:local @117863 = .data:0x00000008; // type:object size:0x7 scope:local @117921 = .data:0x00000010; // type:object size:0xD scope:local diff --git a/config/ShieldD/rels/d_a_ykgrD/symbols.txt b/config/ShieldD/rels/d_a_ykgrD/symbols.txt index ce362b40df..ea83dbea91 100644 --- a/config/ShieldD/rels/d_a_ykgrD/symbols.txt +++ b/config/ShieldD/rels/d_a_ykgrD/symbols.txt @@ -50,7 +50,9 @@ _dtors = .dtors:0x00000000; // type:label scope:global @116167 = .rodata:0x00000044; // type:object size:0x4 scope:local cNullVec__6Z2Calc = .rodata:0x00000048; // type:object size:0xC scope:global @46916 = .rodata:0x00000054; // type:object size:0x4 scope:local -lbl_128_rodata_58 = .rodata:0x00000058; // type:object size:0x14 +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000058; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN_2__Q23std17numeric_limitsFv@x = .rodata:0x00000060; // type:object size:0x8 align:8 data:float +@LOCAL@signaling_NaN__Q23std17numeric_limitsFv@x = .rodata:0x00000068; // type:object size:0x4 align:4 data:float @115853 = .data:0x00000000; // type:object size:0xE scope:local @115854 = .data:0x00000010; // type:object size:0xD scope:local @115855 = .data:0x00000020; // type:object size:0x11 scope:local diff --git a/include/d/actor/d_a_L7low_dr.h b/include/d/actor/d_a_L7low_dr.h index 95fbf98ed1..0bf9142bd8 100644 --- a/include/d/actor/d_a_L7low_dr.h +++ b/include/d/actor/d_a_L7low_dr.h @@ -28,7 +28,7 @@ public: /* 0x568 */ request_of_phase_process_class mPhase; /* 0x570 */ mDoExt_McaMorfSO* mpModelMorf; /* 0x574 */ Z2CreatureEnemy mSound; - /* 0x618 */ u8 field_0x618[0x624 - 0x618]; + /* 0x618 */ cXyz field_0x618; /* 0x624 */ actionFn mAction; /* 0x630 */ actionFn field_0x630; /* 0x63C */ int field_0x63c; diff --git a/include/d/actor/d_a_bd.h b/include/d/actor/d_a_bd.h index cce29c4687..1d165f3f94 100644 --- a/include/d/actor/d_a_bd.h +++ b/include/d/actor/d_a_bd.h @@ -87,21 +87,4 @@ public: STATIC_ASSERT(sizeof(bd_class) == 0x9ec); -class daBd_HIO_c : public JORReflexible { -public: - daBd_HIO_c(); - virtual ~daBd_HIO_c() {} - - void genMessage(JORMContext*); - - /* 0x04 */ s8 id; - /* 0x08 */ f32 mBasicSize; - /* 0x0C */ f32 mFlightSpeed; - /* 0x10 */ f32 mGroundSpeed; - /* 0x14 */ s16 mFlightTime; - /* 0x18 */ f32 mLinkDetectRange; - /* 0x1C */ s16 mChirpDist; - /* 0x1E */ s8 field_0x1E; -}; - #endif /* D_A_BD_H */ diff --git a/include/d/actor/d_a_e_bg.h b/include/d/actor/d_a_e_bg.h index 4e2422d7d1..c14b0cf533 100644 --- a/include/d/actor/d_a_e_bg.h +++ b/include/d/actor/d_a_e_bg.h @@ -42,7 +42,7 @@ public: int CreateHeap(); int create(); - void setBgId(u32 i_bgId) { mBgId = i_bgId; } + void setBgId(unsigned int i_bgId) { mBgId = i_bgId; } bool isBomb() { return mIsBomb; } private: @@ -92,21 +92,4 @@ private: STATIC_ASSERT(sizeof(daE_BG_c) == 0xbbc); -class daE_BG_HIO_c : public JORReflexible { -public: - daE_BG_HIO_c(); - virtual ~daE_BG_HIO_c() {} - - void genMessage(JORMContext*); - - /* 0x04 */ s8 field_0x4; - /* 0x08 */ f32 mTrackingSpeed; - /* 0x0C */ f32 mRushSpeed; - /* 0x10 */ f32 mWaitDistanceBeforeCharging; - /* 0x14 */ f32 mPlayerSearchDistance; - /* 0x18 */ f32 mAttackRange; - /* 0x1C */ f32 mSwimRange; - /* 0x20 */ f32 mJumpTime; -}; - #endif /* D_A_E_BG_H */ diff --git a/include/d/actor/d_a_e_df.h b/include/d/actor/d_a_e_df.h index be69e48798..80a2e6c39f 100644 --- a/include/d/actor/d_a_e_df.h +++ b/include/d/actor/d_a_e_df.h @@ -51,7 +51,7 @@ public: void BombEatAction(); void Spid_Out(); void LinkEatAction(); - bool Mogu_Mogu(); + u8 Mogu_Mogu(); void ObjEatAction(); void EatAction(); void SearchAction(); diff --git a/include/d/actor/d_a_e_yr.h b/include/d/actor/d_a_e_yr.h index cf1c173f7a..dc5e0052e2 100644 --- a/include/d/actor/d_a_e_yr.h +++ b/include/d/actor/d_a_e_yr.h @@ -69,7 +69,7 @@ public: /* 0x6E9 */ s8 field_0x6e9; /* 0x6EA */ s8 field_0x6ea; /* 0x6EB */ s8 field_0x6eb; - /* 0x6EC */ dPath* field_0x6ec; + /* 0x6EC */ dPath* ppd; /* 0x6F0 */ u8 field_0x6f0; /* 0x6F2 */ csXyz field_0x6f2; /* 0x6F8 */ csXyz field_0x6f8; diff --git a/include/d/actor/d_a_npc_cdn3.h b/include/d/actor/d_a_npc_cdn3.h index 6a2e9d7b55..84a98ebd74 100644 --- a/include/d/actor/d_a_npc_cdn3.h +++ b/include/d/actor/d_a_npc_cdn3.h @@ -285,21 +285,7 @@ public: } } - bool isOrchestra() { - if (strcmp(dComIfGp_getStartStageName(), "F_SP116") != 0) { - return 0; - } else { - if (m_seqNum == 17 && - (getType() == 4 || getType() == 5 || getType() == 6 || getType() == 16)) - { - return 1; - } else if (m_seqNum == 37 && getType() == 7) { - return 1; - } else { - return 0; - } - } - } + bool isOrchestra(); int chkEvent() { attention_info.flags = 0; diff --git a/include/d/actor/d_a_npc_chin.h b/include/d/actor/d_a_npc_chin.h index 24e8173c9d..e4bfdb6a61 100644 --- a/include/d/actor/d_a_npc_chin.h +++ b/include/d/actor/d_a_npc_chin.h @@ -19,9 +19,9 @@ public: class daNpcChin_HIO_c : public mDoHIO_entry_c { public: daNpcChin_HIO_c(); + virtual ~daNpcChin_HIO_c(); - void listenPropertyEvent(const JORPropertyEvent*); - void genMessage(JORMContext*); + virtual void genMessage(JORMContext*); /* 0x08 */ daNpcChin_HIOParam m; }; diff --git a/include/d/actor/d_a_obj_movebox.h b/include/d/actor/d_a_obj_movebox.h index e64436e13d..0e8bf4e87a 100644 --- a/include/d/actor/d_a_obj_movebox.h +++ b/include/d/actor/d_a_obj_movebox.h @@ -24,9 +24,13 @@ namespace daObjMovebox { enum Type_e { pp_field = 3 }; struct Attr_c { - struct sMinMax { // fabricated - s16 min; - s16 max; + struct sMinMax3 { // fabricated + s16 xMin; + s16 xMax; + s16 yMin; + s16 yMax; + s16 zMin; + s16 zMax; }; /* 0x00 */ s16 mFirstPushStopTime; /* 0x02 */ s16 mRepeatPushStopTime; @@ -53,26 +57,24 @@ struct Attr_c { /* 0x4C */ f32 mMaxTiltPower; /* 0x50 */ f32 mTiltSpringFactor; /* 0x54 */ f32 mTiltViscoscityResistance; - /* 0x58 */ int field_0x58; - /* 0x5C */ int field_0x5c; - /* 0x60 */ u32 field_0x60; - /* 0x64 */ f32 field_0x64; + /* 0x58 */ int mModelResIdx; + /* 0x5C */ int mMoveBGIdx; + /* 0x60 */ u32 mHeapSize; + /* 0x64 */ f32 mScaleY; /* 0x68 */ f32 field_0x68; - /* 0x6C */ f32 field_0x6c; - /* 0x70 */ f32 field_0x70; - /* 0x74 */ f32 field_0x74; + /* 0x6C */ f32 mWaterBobScale; // always the reciprocal of field_0x68 + /* 0x70 */ f32 mScaleXZ; + /* 0x74 */ f32 mTiltForceScale; // always the reciprocal of mScaleXZ /* 0x78 */ f32 field_0x78; - /* 0x7C */ u32 field_0x7c; - /* 0x80 */ u32 field_0x80; - /* 0x84 */ u32 field_0x84; - /* 0x88 */ u32 field_0x88; - /* 0x8C */ int field_0x8c; - /* 0x90 */ sMinMax mCullX; - /* 0x94 */ sMinMax mCullY; - /* 0x98 */ sMinMax mCullZ; - /* 0x9C */ u8 field_0x9c; - /* 0x9D */ u8 field_0x9d; - /* 0x9E */ u8 field_0x9e; + /* 0x7C */ Z2SoundID mSoundSlip; + /* 0x80 */ Z2SoundID mSoundLimit; + /* 0x84 */ Z2SoundID mSoundLand; + /* 0x88 */ Z2SoundID mSoundFallWater; + /* 0x8C */ Z2SoundID mSoundFallMagma; + /* 0x90 */ sMinMax3 mCull; + /* 0x9C */ bool field_0x9c; + /* 0x9D */ bool mDisableShadow; + /* 0x9E */ bool mUseLargeGrid; }; struct Hio_c : JORReflexible { @@ -153,7 +155,13 @@ struct Act_c : public dBgS_MoveBgActor { int prm_get_swSave1() const; void prmZ_init(); void prmX_init(); + // it seems like this signature changed between GCN and Wii? + // GCN only matches with a const reference return type and Wii/Shield only match with non-const +#if PLATFORM_GCN const daObjMovebox::Attr_c& attr() const; +#else + daObjMovebox::Attr_c& attr() const; +#endif void set_mtx(); void init_mtx(); void path_init(); @@ -176,6 +184,7 @@ struct Act_c : public dBgS_MoveBgActor { void sound_land(); void vib_land(); void eff_land_smoke(); + void eff_break(); virtual int CreateHeap(); virtual int Create(); diff --git a/include/d/actor/d_a_ykgr.h b/include/d/actor/d_a_ykgr.h index d9f2ff5d04..472ceefc4a 100644 --- a/include/d/actor/d_a_ykgr.h +++ b/include/d/actor/d_a_ykgr.h @@ -55,7 +55,7 @@ public: int _create(); int _delete(); int _execute(); - int _draw(); + bool _draw(); static JPABaseEmitter* m_emitter; static bool m_flag; diff --git a/include/d/d_save.h b/include/d/d_save.h index 68a58e3ad1..e56137ef51 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -399,7 +399,7 @@ public: u8 getPohNum() const { return mPohNum; } void addPohNum() { if (mPohNum < 0xFF) { - mPohNum += 1; + mPohNum++; } }; diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 5cb6f84a10..13576c7134 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -557,6 +557,16 @@ public: int init(u16, u16, int); void update(int, f32, _GXColor&, u16, dKy_tevstr_c*); void update(int, _GXColor&, dKy_tevstr_c*); + // some calls to these functions define i_color inline which is illegal in C++ for a non-const + // reference parameter - we add these overloads to enable standard compiler compatibility +#if !__MWERKS__ + void update(int param_0, f32 param_1, const _GXColor& i_color, u16 param_3, dKy_tevstr_c* i_tevStr) { + update(param_0, param_1, const_cast<_GXColor&>(i_color), param_3, i_tevStr); + } + void update(int param_0, const _GXColor& i_color, dKy_tevstr_c* i_tevStr) { + update(param_0, const_cast<_GXColor&>(i_color), i_tevStr); + } +#endif virtual int getMaterialID() { return 0; } virtual void setMaterial(); diff --git a/src/d/actor/d_a_L7op_demo_dr.cpp b/src/d/actor/d_a_L7op_demo_dr.cpp index 3053a01d56..c05ebabb2c 100644 --- a/src/d/actor/d_a_L7op_demo_dr.cpp +++ b/src/d/actor/d_a_L7op_demo_dr.cpp @@ -247,9 +247,10 @@ void daL7ODR_c::setZoomOutCamPos(cXyz& param_0, cXyz& param_1, f32 param_2) { void daL7ODR_c::dr_wait() { if (field_0x88c == 0) { cXyz sp8(0.0f, 0.0f, 0.0f); + s16 angle = 0x400; field_0x8b4 = 1; - current.pos.set(5000.0f * cM_ssin(0x400), 7000.0f, 5000.0f * cM_scos(0x400)); + current.pos.set(5000.0f * cM_ssin(angle), 7000.0f, 5000.0f * cM_scos(angle)); current.angle.y = cLib_targetAngleY(¤t.pos, &sp8) + 0x4000; mpModelMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("B_dr", 0x2F), 2, 3.0f, 1.0f, 0.0f, -1.0f); @@ -260,6 +261,8 @@ void daL7ODR_c::dr_wait() { speedF = 0.0f; gravity = 0.0f; field_0x88c++; + } else if (field_0x88c == -1) { + // empty block } } @@ -272,7 +275,7 @@ void daL7ODR_c::dr_fly() { if (field_0x88c == 0) { field_0x8b4 = 0; mpModelMorf->setPlaySpeed(1.0f); - + field_0x898 = 600.0f; mDemoCamCenter = player->current.pos; mDemoCamCenter.y += 160.0f; @@ -340,10 +343,12 @@ void daL7ODR_c::dr_fly() { mSound.startCreatureSound(Z2SE_EN_DR_WING, 0, -1); } - if (field_0x898 == temp_f30) { - field_0x89c = 140.0f; - field_0x88c++; + if (field_0x898 != temp_f30) { + return; } + + field_0x89c = 140.0f; + field_0x88c++; } else if (field_0x88c == 3) { cXyz sp258; cLib_chaseAngleS(¤t.angle.x, 0x800, 0x10); @@ -626,7 +631,7 @@ void daL7ODR_c::dr_fly() { cLib_chaseF(&speedF, 0.0f, field_0x89c); speed.y = -speedF * cM_ssin(current.angle.x); mAcch.CrrPos(dComIfG_Bgsp()); - + s16 sp8 = current.angle.y; current.angle.y = -0x8000; fopAcM_posMoveF(this, NULL); @@ -735,7 +740,7 @@ static int daL7ODR_IsDelete(daL7ODR_c* i_this) { } int daL7ODR_c::_delete() { - fopAcM_GetID(this); + fopAcM_RegisterDeleteID(this, "L7ODR"); dComIfG_resDelete(&mPhase, "B_dr"); if (heap != NULL) { @@ -804,14 +809,13 @@ int daL7ODR_c::create() { mSound.init(¤t.pos, &eyePos, 3, 1); - health = 1; - field_0x560 = 1; - + field_0x560 = health = 1; + scale.setall(1.0f); attention_info.distances[fopAc_attn_BATTLE_e] = 0; attention_info.flags &= ~fopAc_AttnFlag_BATTLE_e; - + fopAcM_SetGroup(this, 0); fopAcM_OffStatus(this, 0); diff --git a/src/d/actor/d_a_bd.cpp b/src/d/actor/d_a_bd.cpp index d579c98c86..cde0bf553a 100644 --- a/src/d/actor/d_a_bd.cpp +++ b/src/d/actor/d_a_bd.cpp @@ -15,7 +15,46 @@ #include "Z2AudioLib/Z2Instances.h" #include +class daBd_HIO_c : public JORReflexible { +public: + daBd_HIO_c(); + virtual ~daBd_HIO_c() {} + void genMessage(JORMContext*); + + /* 0x04 */ s8 id; + /* 0x08 */ f32 mBasicSize; + /* 0x0C */ f32 mFlightSpeed; + /* 0x10 */ f32 mGroundSpeed; + /* 0x14 */ s16 mFlightTime; + /* 0x18 */ f32 mLinkDetectRange; + /* 0x1C */ s16 mChirpDist; + /* 0x1E */ s8 field_0x1E; +}; + +daBd_HIO_c::daBd_HIO_c() { + id = -1; + mBasicSize = 1.2f; + mFlightSpeed = 20.0f; + mGroundSpeed = 3.0f; + mFlightTime = 400; + mLinkDetectRange = 300.0f; + mChirpDist = 60; + field_0x1E = 0; +} + +#if DEBUG +/* daBd_HIO_c::genMessage (JORMContext *) */ +void daBd_HIO_c::genMessage(JORMContext* mctx) { + mctx->genLabel(" 小鳥 ", 0x80000001); + mctx->genSlider("基本大きさ", &mBasicSize, 0.0f, 5.0f); + mctx->genSlider("飛行速度", &mFlightSpeed, 0.0f, 50.0f); + mctx->genSlider("地上速度", &mGroundSpeed, 0.0f, 20.0f); + mctx->genSlider("飛行時間(およそ)", &mFlightTime, 0, 30000); + mctx->genSlider("リンク認識距離", &mLinkDetectRange, 0.0f, 2000.0f); + mctx->genSlider("羽LevelSE鳴る距離", &mChirpDist, 0, 1000); +} +#endif struct land_pos { /* 0x00 */ s32 unk; @@ -44,7 +83,11 @@ static land_pos land_pos127[20] = { {0, -2302.0f, 1216.0f, -242.0f}, {-1, 0.0f, 0.0f, 0.0f}, }; -static int wait_bck[3] = {ANM_PITA_LEFTUP, ANM_PITA_RIGHT, ANM_PITA_DOWN}; +static void anm_init(bd_class* i_this, int i_anmID, f32 i_morf, u8 i_attr, f32 i_speed) { + i_this->mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("Bd", i_anmID), i_attr, i_morf, + i_speed, 0.0f, -1.0f, NULL); + i_this->mAnmID = i_anmID; +} static u8 hio_set; static daBd_HIO_c l_HIO; @@ -58,37 +101,6 @@ static cXyz land_sp_pos[4] = { static int rope_pt; -daBd_HIO_c::daBd_HIO_c() { - id = -1; - mBasicSize = 1.2f; - mFlightSpeed = 20.0f; - mGroundSpeed = 3.0f; - mFlightTime = 400; - mLinkDetectRange = 300.0f; - mChirpDist = 60; - field_0x1E = 0; -} - -#if DEBUG -/* daBd_HIO_c::genMessage (JORMContext *) */ -void daBd_HIO_c::genMessage(JORMContext* mctx) { - mctx->genLabel("小鳥", 0x80000001); - mctx->genSlider("基本大きさ", &mBasicSize, 0.0f, 5.0f); - mctx->genSlider("飛行速度", &mFlightSpeed, 0.0f, 50.0f); - mctx->genSlider("地上速度", &mGroundSpeed, 0.0f, 20.0f); - mctx->genSlider("飛行時間(およそ)", &mFlightTime, 0, 30000); - mctx->genSlider("リンク認識距離", &mLinkDetectRange, 0.0f, 2000.0f); - mctx->genSlider("羽LevelSE鳴る距離", &mChirpDist, 0, 1000); -} -#endif - - -static void anm_init(bd_class* i_this, int i_anmID, f32 i_morf, u8 i_attr, f32 i_speed) { - i_this->mpMorf->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("Bd", i_anmID), i_attr, i_morf, - i_speed, 0.0f, -1.0f, NULL); - i_this->mAnmID = i_anmID; -} - static int daBd_Draw(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; @@ -100,7 +112,6 @@ static int daBd_Draw(bd_class* i_this) { return 1; } - static int way_bg_check(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; @@ -123,22 +134,23 @@ static int way_bg_check(bd_class* i_this) { return 0; } - static void* s_a_sub(void* i_target, void* i_bird) { - fopAc_ac_c* a_target = (fopAc_ac_c*)i_target; - bd_class* b_bird = (bd_class*)i_bird; - fopEn_enemy_c* a_bird = (fopEn_enemy_c*)i_bird; + UNUSED(i_bird); - if ((fopAcM_IsActor(i_target) && fopAcM_GetGroup(a_target) == fopAc_ENEMY_e) || - fopAcM_GetGroup(a_target) == fopAc_NPC_e || fopAcM_GetName(i_target) == fpcNm_OBJ_KANBAN2_e || + if ((fopAcM_IsActor(i_target) && fopAcM_GetGroup((fopAc_ac_c*)i_target) == fopAc_ENEMY_e) || + fopAcM_GetGroup((fopAc_ac_c*)i_target) == fopAc_NPC_e || fopAcM_GetName(i_target) == fpcNm_OBJ_KANBAN2_e || fopAcM_GetName(i_target) == fpcNm_OBJ_FOOD_e) { - cXyz distance = a_bird->current.pos - a_target->current.pos; + fopEn_enemy_c* birdEnemy = (fopEn_enemy_c*)i_bird; + fopAc_ac_c* a_target = (fopAc_ac_c*)i_target; + + cXyz distance = birdEnemy->current.pos - a_target->current.pos; if (distance.abs() < l_HIO.mLinkDetectRange + 10.0f * fabsf(a_target->speedF)) { return i_target; } - distance = b_bird->field_0x5C4 - a_target->current.pos; + bd_class* bird = (bd_class*)birdEnemy; + distance = bird->field_0x5C4 - a_target->current.pos; if (distance.abs() < l_HIO.mLinkDetectRange + 10.0f * fabsf(a_target->speedF)) { return i_target; } @@ -146,9 +158,7 @@ static void* s_a_sub(void* i_target, void* i_bird) { return NULL; } - static void pl_check(bd_class* i_this) { - fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); f32 var_f30; @@ -161,7 +171,7 @@ static void pl_check(bd_class* i_this) { } if ((i_this->field_0x618 & 0xF) == 0) { - var_r28 = (u32)fpcM_Search(s_a_sub, a_this); + var_r28 = (u32)fpcM_Search(s_a_sub, i_this); } if (daPy_getPlayerActorClass()->checkHorseRide()) { @@ -201,23 +211,22 @@ static int pointBgCheck(cXyz* param_0, cXyz* param_1) { return 0; } - static int land_check(bd_class* i_this) { - int land_pos_len; - land_pos* land_pos; - s8 temp_r1[112]; + s8 sp3C[108]; int sp20 = g_Counter.mCounter0 + fopAcM_GetID(i_this); if ((sp20 & 7) != 0) { return -1; } - fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; - camera_process_class* camera = dComIfGp_getCamera(0); + fopEn_enemy_c* enemy = (fopEn_enemy_c*)&i_this->enemy; + camera_class* camera = (camera_class*)dComIfGp_getCamera(0); cXyz sp30; sp30 = camera->view.lookat.center - camera->view.lookat.eye; s16 spA = cM_atan2s(sp30.x, sp30.z); + int land_pos_len; + land_pos* land_pos; if (strcmp(dComIfGp_getStartStageName(), "F_SP103") == 0) { land_pos_len = 20; land_pos = land_pos103; @@ -227,7 +236,7 @@ static int land_check(bd_class* i_this) { } for (int i = 0; i < land_pos_len; i++) { - temp_r1[i] = 0; + sp3C[i] = 0; } f32 var_f31 = 1000.0f; for (int i = 0; i < 5; i++) { @@ -235,7 +244,7 @@ static int land_check(bd_class* i_this) { if (land_pos[j].unk < 0) { break; } - if (temp_r1[j] != 0) { + if (sp3C[j] != 0) { continue; } sp30.x = land_pos[j].x - camera->view.lookat.eye.x; @@ -256,8 +265,8 @@ static int land_check(bd_class* i_this) { sp30.x = land_pos[j].x; sp30.y = land_pos[j].y + 5.0f; sp30.z = land_pos[j].z; - if (pointBgCheck(&a_this->current.pos, &sp30)) { - temp_r1[j] = 1; + if (pointBgCheck(&enemy->current.pos, &sp30)) { + sp3C[j] = 1; } else { return j; } @@ -267,6 +276,7 @@ static int land_check(bd_class* i_this) { return -1; } +static int wait_bck[3] = {ANM_PITA_LEFTUP, ANM_PITA_RIGHT, ANM_PITA_DOWN}; static void drop_check(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; @@ -278,14 +288,12 @@ static void drop_check(bd_class* i_this) { } } - static void turn_set(bd_class* i_this) { + fopEn_enemy_c* enemy = &i_this->enemy; s16 angle_table[3] = {-0x8000, 0x4000, -0x4000}; - s16 angle = angle_table[(int)cM_rndF(2.99f)]; - i_this->mTargetAngleY = i_this->enemy.current.angle.y + angle; + i_this->mTargetAngleY = enemy->current.angle.y + angle_table[(int)cM_rndF(2.99f)]; } - static void bd_ground(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); @@ -394,7 +402,6 @@ static void bd_ground(bd_class* i_this) { } } - static void bd_fly(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); @@ -514,7 +521,6 @@ static void bd_fly(bd_class* i_this) { } } - static void bd_landing(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); @@ -604,7 +610,6 @@ static void bd_landing2(bd_class* i_this) { TREG_S(7) + 1000); } - static void bd_landing3(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); @@ -647,7 +652,6 @@ static void bd_landing3(bd_class* i_this) { } } - static void bd_rope(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; @@ -735,7 +739,6 @@ static void bd_drop(bd_class* i_this) { } } - static void action(bd_class* i_this) { fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; @@ -851,11 +854,12 @@ static void action(bd_class* i_this) { } } - static int daBd_Execute(bd_class* i_this) { - fopEn_enemy_c* a_this = (fopEn_enemy_c*)i_this; + //TODO: almost definitely a fakematch, forces debug to use .rodata pool + (void)1.2f; + + fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->enemy; daNpc_Kkri_c* kkri; - daCow_c* cow; if (i_this->field_0x5B6 >= 1) { if (i_this->field_0x642 != 0) { @@ -889,8 +893,8 @@ static int daBd_Execute(bd_class* i_this) { action(i_this); mDoMtx_stack_c::transS(a_this->current.pos.x, a_this->current.pos.y + i_this->field_0x620, a_this->current.pos.z); - mDoMtx_stack_c::YrotM(a_this->shape_angle.y); - mDoMtx_stack_c::XrotM(a_this->shape_angle.x); + mDoMtx_stack_c::YrotM((s16)a_this->shape_angle.y); + mDoMtx_stack_c::XrotM((s16)a_this->shape_angle.x); mDoMtx_stack_c::ZrotM(a_this->shape_angle.z); mDoMtx_stack_c::scaleM(l_HIO.mBasicSize, l_HIO.mBasicSize, l_HIO.mBasicSize); J3DModel* model_p = i_this->mpMorf->getModel(); @@ -908,7 +912,7 @@ static int daBd_Execute(bd_class* i_this) { i_this->mSound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this))); if (i_this->field_0x656 == 0 && dComIfGp_event_runCheck()) { - cow = (daCow_c*)fopAcM_SearchByName(fpcNm_COW_e); + fopAc_ac_c* cow = (fopAc_ac_c*)fopAcM_SearchByName(fpcNm_COW_e); if (cow != NULL && cow->speedF > 1.0f) { i_this->field_0x656 = 1; i_this->mActionID = ACT_GROUND; @@ -965,10 +969,9 @@ static int useHeapInit(fopAc_ac_c* i_this) { return 1; } - static int daBd_Create(fopAc_ac_c* i_act_this) { bd_class* i_this = (bd_class*)i_act_this; - fopAcM_ct(i_act_this, bd_class); + fopAcM_ct(&i_this->enemy, bd_class); int phase_state = dComIfG_resLoad(&i_this->mPhase, "Bd"); if (phase_state == cPhs_COMPLEATE_e) { @@ -998,8 +1001,7 @@ static int daBd_Create(fopAc_ac_c* i_act_this) { i_act_this, 1, &i_this->mAcchCir, fopAcM_GetSpeed_p(i_act_this), NULL, NULL); i_this->mAcchCir.SetWall(10.0f, 10.0f); - i_act_this->health = 1; - i_act_this->field_0x560 = 1; + i_act_this->field_0x560 = i_act_this->health = 1; i_this->mStts.Init(100, 0, i_act_this); static dCcD_SrcSph cc_sph_src = { diff --git a/src/d/actor/d_a_bg.cpp b/src/d/actor/d_a_bg.cpp index 6f7c8ed2d6..3bac37dbf9 100644 --- a/src/d/actor/d_a_bg.cpp +++ b/src/d/actor/d_a_bg.cpp @@ -42,9 +42,11 @@ static int createMatAnm(J3DModelData* i_modelData, u16 i_materialID) { return 1; } +#if PLATFORM_GCN static u8 const lit_3756[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +#endif int daBg_btkAnm_c::create(J3DModelData* i_modelData, J3DAnmTextureSRTKey* i_btk, int i_anmPlay) { mpBtk = new mDoExt_btkAnm(); @@ -243,6 +245,12 @@ int daBg_c::createHeap() { return 1; } +#if DEBUG +static void dummy() { + GXColor color = {0xC0, 0x00, 0x00, 0x00}; +} +#endif + daBg_c::~daBg_c() { int roomNo = fopAcM_GetParam(this); @@ -252,7 +260,7 @@ daBg_c::~daBg_c() { } if (heap != NULL && mpBgW != NULL) { - dComIfG_Bgsp().Release((dBgW_Base*)mpBgW); + dComIfG_Bgsp().Release(mpBgW); dStage_roomControl_c::setBgW(roomNo, NULL); } diff --git a/src/d/actor/d_a_door_spiral.cpp b/src/d/actor/d_a_door_spiral.cpp index f49ffca58c..c398127f46 100644 --- a/src/d/actor/d_a_door_spiral.cpp +++ b/src/d/actor/d_a_door_spiral.cpp @@ -209,7 +209,6 @@ int daSpiral_c::create() { return cPhs_COMPLEATE_e; } -// DEBUG NONMATCHING - regalloc int daSpiral_c::CreateHeap() { J3DModelData* modelData = getModelData(); JUT_ASSERT(338, modelData != NULL); @@ -223,35 +222,38 @@ int daSpiral_c::CreateHeap() { return 0; } - cBgD_t* bgd = (cBgD_t*)dComIfG_getObjectRes(getAlwaysArcName(), getSpiralDzbName(mType)); - JUT_ASSERT(356, bgd != NULL); - bool spiral_rt = mpSpiralDzb->Set(bgd, 1, &mSpiralBgMtx); - if (spiral_rt == true) { - return 0; + { + cBgD_t* bgd = (cBgD_t*)dComIfG_getObjectRes(getAlwaysArcName(), getSpiralDzbName(mType)); + JUT_ASSERT(356, bgd != NULL); + bool spiral_rt = mpSpiralDzb->Set(bgd, 1, &mSpiralBgMtx); + if (spiral_rt == true) { + return 0; + } + + mDoorDarkDzb = new dBgW(); + if (mDoorDarkDzb == NULL) { + return 0; + } } - mDoorDarkDzb = new dBgW(); - if (mDoorDarkDzb == NULL) { - return 0; - } + { + cBgD_t* bgd = (cBgD_t*)dComIfG_getObjectRes(getAlwaysArcName(), getDzb()); + JUT_ASSERT(375, bgd != NULL); - bgd = (cBgD_t*)dComIfG_getObjectRes(getAlwaysArcName(), getDzb()); - JUT_ASSERT(375, bgd != NULL); + cXyz dzb_pos(l_dzb_offset); + mDoMtx_stack_c::YrotS(home.angle.y); + mDoMtx_stack_c::multVec(&dzb_pos, &dzb_pos); + mDoMtx_stack_c::transS(current.pos.x + dzb_pos.x, current.pos.y + dzb_pos.y, current.pos.z + dzb_pos.z); + mDoMtx_stack_c::YrotM(home.angle.y); + cMtx_copy(mDoMtx_stack_c::get(), mDoorDarkBgMtx); - cXyz dzb_pos(l_dzb_offset); - mDoMtx_stack_c::YrotS(home.angle.y); - mDoMtx_stack_c::multVec(&dzb_pos, &dzb_pos); - mDoMtx_stack_c::transS(current.pos.x + dzb_pos.x, current.pos.y + dzb_pos.y, current.pos.z + dzb_pos.z); - mDoMtx_stack_c::YrotM(home.angle.y); - cMtx_copy(mDoMtx_stack_c::get(), mDoorDarkBgMtx); - - bool dark_rt = mDoorDarkDzb->Set(bgd, 1, &mDoorDarkBgMtx); - if (dark_rt == true) { - return 0; + bool dark_rt = mDoorDarkDzb->Set(bgd, 1, &mDoorDarkBgMtx); + if (dark_rt == true) { + return 0; + } } if (checkMakeStop() && !mStop.create(this)) { - int _; return 0; } @@ -805,11 +807,8 @@ BOOL daSpiral_c::drawCheck(int) { } #if DEBUG -// DEBUG NONMATCHING - stack void daSpiral_c::debugDraw() { - GXColor spC = {0xFF, 0xFF, 0xFF, 0xFF}; - GXColor sp8 = spC; - GXColor color = sp8; + GXColor color = (GXColor){0xFF, 0xFF, 0xFF, 0xFF}; cXyz sp68[4]; cXyz sp38[4]; @@ -843,7 +842,7 @@ void daSpiral_c::debugDraw() { } if (KREG_S(9) == 1000) { - dDbVw_drawQuadOpa(sp68, spC, TRUE); + dDbVw_drawQuadOpa(sp68, color, TRUE); dDbVw_drawSphereXlu(current.pos, 30.0f, color, TRUE); } diff --git a/src/d/actor/d_a_e_bg.cpp b/src/d/actor/d_a_e_bg.cpp index be38c9c527..a0d9f86860 100644 --- a/src/d/actor/d_a_e_bg.cpp +++ b/src/d/actor/d_a_e_bg.cpp @@ -16,6 +16,23 @@ #include "d/d_s_play.h" #include "f_op/f_op_camera_mng.h" +class daE_BG_HIO_c : public JORReflexible { +public: + daE_BG_HIO_c(); + virtual ~daE_BG_HIO_c() {} + + void genMessage(JORMContext*); + + /* 0x04 */ s8 field_0x4; + /* 0x08 */ f32 mTrackingSpeed; + /* 0x0C */ f32 mRushSpeed; + /* 0x10 */ f32 mWaitDistanceBeforeCharging; + /* 0x14 */ f32 mPlayerSearchDistance; + /* 0x18 */ f32 mAttackRange; + /* 0x1C */ f32 mSwimRange; + /* 0x20 */ f32 mJumpTime; +}; + daE_BG_HIO_c::daE_BG_HIO_c() { field_0x4 = -1; mTrackingSpeed = 8.0f; @@ -335,7 +352,8 @@ void daE_BG_c::executeSwim() { } } - if (search_esa() != NULL) { + fopAc_ac_c* search_actor = search_esa(); + if (search_actor != NULL) { setActionMode(7, 0); return; } @@ -380,8 +398,8 @@ void daE_BG_c::executeSwim() { field_0x6ac = field_0x69a - shape_angle.y; cLib_addCalcAngleS(&shape_angle.y, field_0x69a, 0x10, 0x400, 0x100); - s32 targetAngleX = cLib_targetAngleX(¤t.pos, &field_0x660); - cLib_addCalcAngleS(&shape_angle.x, targetAngleX, 0x10, 0x400, 0x100); + cLib_addCalcAngleS(&shape_angle.x, (s16)cLib_targetAngleX(¤t.pos, &field_0x660), + 0x10, 0x400, 0x100); cLib_chaseF(&speedF, cM_scos(shape_angle.x) * 4.0f, 0.2f); cLib_chaseF(&speed.y, cM_ssin(shape_angle.x) * 4.0f, 0.2f); @@ -743,8 +761,8 @@ bool daE_BG_c::setBombCarry(int param_0) { fopAcM_GetRoomNo(this)); } + fopAc_ac_c* unkActor1; if (bomb != NULL) { - fopAc_ac_c* unkActor1; fopAcM_SearchByID(fopAcM_GetLinkId(this), &unkActor1); if (unkActor1 != NULL) { ((daE_BG_c*)unkActor1)->setBgId(fopAcM_GetID(bomb)); @@ -935,6 +953,8 @@ void daE_BG_c::executeEat() { field_0x6a2 = nREG_S(0) + 0xc00; field_0x69c += field_0x6a0; + f32 targetSpeedX; + f32 targetSpeedY; switch (this->mMoveMode) { case 0: field_0x660.y = rodPos.y + cM_rndFX(100.0f); @@ -1038,10 +1058,8 @@ void daE_BG_c::executeEat() { cLib_addCalcAngleS(&shape_angle.x, 0, 0x10, 0x400, 0x100); if (rodPos.abs(current.pos) > 70.0f) { - cM_scos(shape_angle.x); - cLib_chaseF(&speedF, 0.0f, 0.1f); - cM_ssin(shape_angle.x); - cLib_chaseF(&speed.y, 0.0f, 0.1f); + cLib_chaseF(&speedF, cM_scos(shape_angle.x) * 0.0f, 0.1f); + cLib_chaseF(&speed.y, cM_ssin(shape_angle.x) * 0.0f, 0.1f); } else { cLib_chaseF(&speedF, cM_scos(shape_angle.x) * -1.0f, 0.3f); cLib_chaseF(&speed.y, cM_ssin(shape_angle.x) * -1.0f, 0.3f); @@ -1286,7 +1304,7 @@ static int daE_BG_Delete(daE_BG_c* i_this) { int daE_BG_c::CreateHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_BG", 10); - JUT_ASSERT(0, modelData != NULL); + JUT_ASSERT(1890, modelData != NULL); mpMorfSO = new mDoExt_McaMorfSO(modelData, NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_BG", 7), 0, 1.0f, 0, diff --git a/src/d/actor/d_a_e_df.cpp b/src/d/actor/d_a_e_df.cpp index 0f0a14a7e2..bc7d9dea28 100644 --- a/src/d/actor/d_a_e_df.cpp +++ b/src/d/actor/d_a_e_df.cpp @@ -13,7 +13,7 @@ class daE_DF_HIO_c : public JORReflexible { public: daE_DF_HIO_c(); - virtual ~daE_DF_HIO_c() {}; + virtual ~daE_DF_HIO_c() {} void genMessage(JORMContext*); @@ -23,18 +23,18 @@ public: STATIC_ASSERT(sizeof(daE_DF_HIO_c) == 0xC); -#if DEBUG -inline void daE_DF_HIO_c::genMessage(JORMContext* i_ctx) { - i_ctx->genLabel("デクレシア", 0x80000001); - i_ctx->genSlider("速度", &field_0x8, 0.0f, 100.0f); -} -#endif - daE_DF_HIO_c::daE_DF_HIO_c() { mNo = -1; field_0x8 = 0.0f; } +#if DEBUG +void daE_DF_HIO_c::genMessage(JORMContext* i_ctx) { + i_ctx->genLabel("デクレシア", 0x80000001); + i_ctx->genSlider("速度", &field_0x8, 0.0f, 100.0f); +} +#endif + int daE_DF_c::CreateHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_DF", 0xD); JUT_ASSERT(161, modelData != NULL); @@ -101,13 +101,13 @@ void daE_DF_c::CameraSet(f32 i_posz) { cXyz vec(0.0f, 0.0f, i_posz); dBgS_LinChk line_chk; - u16 angle = 0; + s16 angle = 0; for (s16 i = 0; i < 4; i++) { - cLib_offsetPos(&end, &start, angle, &vec); + cLib_offsetPos(&end, &start, (s16)angle, &vec); line_chk.Set(&start, &end, NULL); if (dComIfG_Bgsp().LineCross(&line_chk) == 0) { - cLib_offsetPos(&end, ¢er, angle, &vec); + cLib_offsetPos(&end, ¢er, (s16)angle, &vec); end.y += 400.0f; camera->mCamera.Set(center, end, mFovY, 0); @@ -116,7 +116,7 @@ void daE_DF_c::CameraSet(f32 i_posz) { break; } - angle += 0x10000 - 0x8000; + ANGLE_ADD_2(angle, 0x8000); } } @@ -409,10 +409,10 @@ void daE_DF_c::LinkEatAction() { cLib_chaseAngleS(&mChaseAngle.z, 0, 0x100); } -bool daE_DF_c::Mogu_Mogu() { +u8 daE_DF_c::Mogu_Mogu() { if (mMoguCount > 4) { mMoguCount = 0; - return true; + return 1; } if (mpMorfSO->isLoop()) { @@ -428,10 +428,10 @@ bool daE_DF_c::Mogu_Mogu() { } else { mCreatureSound.startCreatureSound(Z2SE_EN_DF_EAT_WAIT, 0, -1); } - return false; + return 0; } - return false; + return 0; } void daE_DF_c::ObjEatAction() { @@ -494,7 +494,8 @@ void daE_DF_c::SearchAction() { if (obj_carry != NULL) { if (fopAcM_GetName(obj_carry) == fpcNm_Obj_Carry_e) { mEatObjType = EAT_TYPE_OBJ; - mCarryType = obj_carry->getType(); + daObjCarry_c* obj_carry_copy = obj_carry; + mCarryType = obj_carry_copy->getType(); fopAcM_delete(obj_carry); cXyz* obj_pos = &fopAcM_GetPosition(obj_carry); Set_Angle(obj_pos); diff --git a/src/d/actor/d_a_e_dn.cpp b/src/d/actor/d_a_e_dn.cpp index 40fb56c905..0e910a22d1 100644 --- a/src/d/actor/d_a_e_dn.cpp +++ b/src/d/actor/d_a_e_dn.cpp @@ -186,51 +186,53 @@ static void anm_init(e_dn_class* i_this, int i_anm_id, f32 i_morf, u8 i_attr, f3 static int nodeCallBack(J3DJoint* i_joint, int param_2) { if (param_2 == 0) { - int jointNo = i_joint->getJntNo(); + J3DJoint* joint = i_joint; + int jointNo = joint->getJntNo(); J3DModel* model = j3dSys.getModel(); - e_dn_class* i_this = (e_dn_class*)model->getUserArea(); - if (i_this != NULL) { + e_dn_class* dn = (e_dn_class*)model->getUserArea(); + void* dn_v = (void*)dn; + if (dn != NULL) { MTXCopy(model->getAnmMtx(jointNo), *calc_mtx); if (jointNo != JNT_WORLD_ROOT) { if (jointNo == JNT_WAIST) { - cMtx_YrotM(*calc_mtx, (s16)i_this->field_0x830.y); - cMtx_ZrotM(*calc_mtx, i_this->jnt_waist_z_rot + (-i_this->field_0x762[2].x + i_this->field_0x830.x)); + cMtx_YrotM(*calc_mtx, (s16)dn->field_0x830.y); + cMtx_ZrotM(*calc_mtx, dn->jnt_waist_z_rot + (-dn->field_0x762[2].x + dn->field_0x830.x)); } else if (jointNo == JNT_LEGL1) { - cMtx_YrotM(*calc_mtx, i_this->jnt_legl1_y_rot); + cMtx_YrotM(*calc_mtx, dn->jnt_legl1_y_rot); } else if (jointNo == JNT_LEGL2) { - cMtx_ZrotM(*calc_mtx, i_this->field_0x7fc[0]); + cMtx_ZrotM(*calc_mtx, dn->field_0x7fc[0]); } else if (jointNo == JNT_LEGR1) { - cMtx_YrotM(*calc_mtx, i_this->field_0x7fc[1]); + cMtx_YrotM(*calc_mtx, dn->field_0x7fc[1]); } else if (jointNo == JNT_LEGR2) { - cMtx_ZrotM(*calc_mtx, i_this->field_0x7fc[2]); + cMtx_ZrotM(*calc_mtx, dn->field_0x7fc[2]); } else if (jointNo == JNT_BACKBONE02) { - cMtx_YrotM(*calc_mtx, (i_this->field_0x6fa / 2) + (-i_this->field_0x6f6 + i_this->field_0x762[1].y)); - cMtx_ZrotM(*calc_mtx, i_this->field_0x762[1].x + i_this->field_0x7ec[1]); + cMtx_YrotM(*calc_mtx, (dn->field_0x6fa / 2) + (-dn->field_0x6f6 + dn->field_0x762[1].y)); + cMtx_ZrotM(*calc_mtx, dn->field_0x762[1].x + dn->field_0x7ec[1]); } else if (jointNo == JNT_NECK01 || jointNo == JNT_NECK02) { - cMtx_YrotM(*calc_mtx, i_this->field_0x762[0].y + (-i_this->field_0x6f6 + i_this->field_0x6fa)); - cMtx_ZrotM(*calc_mtx, i_this->field_0x7ec[0] + (-i_this->field_0x6f8 + i_this->field_0x762[0].x)); + cMtx_YrotM(*calc_mtx, dn->field_0x762[0].y + (-dn->field_0x6f6 + dn->field_0x6fa)); + cMtx_ZrotM(*calc_mtx, dn->field_0x7ec[0] + (-dn->field_0x6f8 + dn->field_0x762[0].x)); } else if (jointNo == JNT_ARML1) { - cMtx_ZrotM(*calc_mtx, i_this->field_0x762[3].y + i_this->jnt_arml1_z_rot_offset); + cMtx_ZrotM(*calc_mtx, dn->field_0x762[3].y + dn->jnt_arml1_z_rot_offset); } else if (jointNo == JNT_ARML2) { - cMtx_ZrotM(*calc_mtx, i_this->field_0x762[4].y + i_this->jnt_arml2_z_rot_offset); + cMtx_ZrotM(*calc_mtx, dn->field_0x762[4].y + dn->jnt_arml2_z_rot_offset); } else if (jointNo == JNT_ARMR1) { - cMtx_ZrotM(*calc_mtx, i_this->field_0x762[5].y + i_this->jnt_armr1_z_rot_offset); + cMtx_ZrotM(*calc_mtx, dn->field_0x762[5].y + dn->jnt_armr1_z_rot_offset); } else if (jointNo == JNT_ARMR2) { - cMtx_ZrotM(*calc_mtx, i_this->field_0x762[6].y + i_this->jnt_armr2_z_rot_offset); + cMtx_ZrotM(*calc_mtx, dn->field_0x762[6].y + dn->jnt_armr2_z_rot_offset); } else if (jointNo >= JNT_TAIL01 && jointNo <= JNT_TAIL04) { - cMtx_YrotM(*calc_mtx, i_this->field_0x80e[jointNo - 31].y + i_this->jnt_tail_y_rot_offset); - cMtx_ZrotM(*calc_mtx, (s16)i_this->field_0x80e[jointNo - 31].x); + cMtx_YrotM(*calc_mtx, dn->field_0x80e[jointNo - 31].y + dn->jnt_tail_y_rot_offset); + cMtx_ZrotM(*calc_mtx, (s16)dn->field_0x80e[jointNo - 31].x); } } - if (i_this->death_jnt_rot != 0) { + if (dn->death_jnt_rot != 0) { if ((jointNo & 1) != 0) { - cMtx_YrotM(*calc_mtx, i_this->death_jnt_rot); + cMtx_YrotM(*calc_mtx, dn->death_jnt_rot); } else if ((jointNo & 2) != 0) { - cMtx_XrotM(*calc_mtx, i_this->death_jnt_rot); + cMtx_XrotM(*calc_mtx, dn->death_jnt_rot); } else if ((jointNo & 4) != 0) { - cMtx_ZrotM(*calc_mtx, i_this->death_jnt_rot); + cMtx_ZrotM(*calc_mtx, dn->death_jnt_rot); } } @@ -270,6 +272,7 @@ static int daE_DN_Draw(e_dn_class* i_this) { g_env_light.settingTevStruct(0, &actor->current.pos, &actor->tevStr); g_env_light.setLightTevColorType_MAJI(model, &actor->tevStr); + J3DMaterial* matNode_p; if (i_this->death_flag != 0) { J3DModelData* modelData = model->getModelData(); for (u16 i = 0; i < modelData->getMaterialNum(); i++) { @@ -285,7 +288,7 @@ static int daE_DN_Draw(e_dn_class* i_this) { if (i_this->death_flag != 0) { J3DModelData* modelData = model->getModelData(); for (u16 i = 0; i < modelData->getMaterialNum(); i++) { - J3DMaterial* matNode_p = modelData->getMaterialNodePointer(i); + matNode_p = modelData->getMaterialNodePointer(i); matNode_p->getTevColor(0)->r = 0; matNode_p->getTevColor(0)->g = 0; matNode_p->getTevColor(0)->b = 0; @@ -364,6 +367,7 @@ fopAc_ac_c* target_info[10]; int target_info_count; static void* s_b_sub(void* i_actor, void* i_data) { + UNUSED(i_data); if (fopAcM_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode() && target_info_count < 10) { target_info[target_info_count] = (fopAc_ac_c*)i_actor; target_info_count++; @@ -458,7 +462,7 @@ static BOOL player_way_check(e_dn_class* i_this) { way = way * -1; } - if ((u32)((s16)way & 0xFFFF) < 0x6000) { + if ((u16)way < 0x6000) { return FALSE; } @@ -521,15 +525,14 @@ static BOOL jump_pos_check(e_dn_class* i_this, cXyz* i_pos) { work.x = 0.0f; work.y = 200.0f; - int i = 0; - while (i < KREG_S(7) + 10) { + for (int i = 0; i < KREG_S(7) + 10; i++) { work.z = z_offset; MtxPosition(&work, &new_pos); new_pos += actor->current.pos; gnd_chk.SetPos(&new_pos); new_pos.y = dComIfG_Bgsp().GroundCross(&gnd_chk); - if ((actor->current.pos.y - new_pos.y) < 200.0f) { + if (actor->current.pos.y - new_pos.y < 200.0f) { *i_pos = new_pos; work.z += KREG_F(18) + 200.0f; MtxPosition(&work, &new_pos); @@ -537,15 +540,13 @@ static BOOL jump_pos_check(e_dn_class* i_this, cXyz* i_pos) { gnd_chk.SetPos(&new_pos); new_pos.y = dComIfG_Bgsp().GroundCross(&gnd_chk); - if ((actor->current.pos.y - new_pos.y) < 200.0f) { + if (actor->current.pos.y - new_pos.y < 200.0f) { *i_pos = new_pos; } return TRUE; } - z_offset += 50.0f; - i++; } return FALSE; @@ -709,7 +710,6 @@ static void e_dn_otoreac(e_dn_class* i_this) { static void e_dn_bomb_action(e_dn_class* i_this) { fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; - s16 angle; cXyz work, bomb_pos_target; dBomb_c* bomb = bomb_check(i_this); if (bomb == NULL) { @@ -748,16 +748,16 @@ static void e_dn_bomb_action(e_dn_class* i_this) { } break; - case 4: + case 4: { if (i_this->arg1 == 1 && bomb->speedF < 0.1f && !bomb->checkStateCarry() && JMAFastSqrt(work.x * work.x + work.z * work.z) < 250.0f) { - angle = i_this->search_angle_y - actor->shape_angle.y; + s16 angle = i_this->search_angle_y - actor->shape_angle.y; if (angle < 0x4000 && angle > -0x4000) { // ±90° i_this->mode = 10; break; } } - target_angle_y += 0x8000; // 180° + ANGLE_ADD_2(target_angle_y, 0x8000); // 180° dash_speed = l_HIO.dash_speed; if (JMAFastSqrt(work.x * work.x + work.z * work.z) > 600.0f) { i_this->mode = 5; @@ -765,6 +765,7 @@ static void e_dn_bomb_action(e_dn_class* i_this) { } break; + } case 5: i_this->sound.startCreatureSoundLevel(Z2SE_EN_DN_V_LOOK_BOMB, 0, -1); @@ -863,7 +864,7 @@ static void e_dn_normal(e_dn_class* i_this) { case 3: movement_speed = l_HIO.movement_speed; - angle = actor->current.angle.y; + s16 angle = actor->current.angle.y; cLib_addCalcAngleS2(&actor->current.angle.y, i_this->cur_angle_y_target, 2, 0x400); /* If the actor is facing roughly 22.5° from the target y, stop moving */ @@ -947,8 +948,9 @@ static void e_dn_drawback(e_dn_class* i_this) { } static void e_dn_wolfbite(e_dn_class* i_this) { - fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; + fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->actor; daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); + fopEn_enemy_c* enemy = (fopEn_enemy_c*)actor; i_this->invulnerability_timer = 10; cLib_addCalc0(&actor->speedF, 1.0f, 2.0f); @@ -975,8 +977,8 @@ static void e_dn_wolfbite(e_dn_class* i_this) { } } - if (actor->health <= 0 || actor->checkWolfBiteDamage()) { - actor->offWolfBiteDamage(); + if (actor->health <= 0 || enemy->checkWolfBiteDamage()) { + enemy->offWolfBiteDamage(); anm_init(i_this, ANM_HANGED_DAMAGE, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f); S16_SUB(actor->health, 10); if (actor->health <= 0) { @@ -1032,13 +1034,17 @@ static int way_check(e_dn_class* i_this) { int learn_check; static void* shot_s_sub(void* i_actor, void* i_data) { - e_dn_class* i_this = (e_dn_class*)i_data; - fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; - if ((fopAcM_IsActor(i_actor) && (learn_check & 0x80000000) != 0 && fopAcM_GetName(i_actor) == fpcNm_ARROW_e && (fopAcM_GetParam(i_actor) == 1 || - fopAcM_GetParam(i_actor) == 2))) { - cXyz sp28(actor->current.pos - ((fopAc_ac_c*)i_actor)->current.pos); - if (sp28.abs() < 1000.0f) { - return i_actor; + UNUSED(i_data); + if (fopAcM_IsActor(i_actor)) { + if ((learn_check & 0x80000000) != 0 && + fopAcM_GetName(i_actor) == fpcNm_ARROW_e && + (fopAcM_GetParam(i_actor) == 1 || fopAcM_GetParam(i_actor) == 2)) { + fopAc_ac_c* arrowActor = (fopAc_ac_c*)i_actor; + e_dn_class* dn = (e_dn_class*)i_data; + cXyz sp28(dn->actor.current.pos - arrowActor->current.pos); + if (sp28.abs() < 1000.0f) { + return i_actor; + } } } @@ -1050,7 +1056,6 @@ static void e_dn_fight_run(e_dn_class* i_this) { cXyz sp4c, sp58; f32 fVar1 = 0.0f; int frame = i_this->anm_p->getFrame(); - BOOL wayCheck; s8 sVar4 = 1; if (pl_check(i_this, i_this->pl_range + 50.0f, 0x7FFF) == 0 && i_this->timer[0] == 0) { @@ -1223,8 +1228,9 @@ static void e_dn_fight_run(e_dn_class* i_this) { i_this->timer[2] = JREG_F(1) + (cM_rndF(30.0f) + 30.0f); f32 fVar1 = 1.0f; if (cM_rndF(1.0f) < fVar1) { - wayCheck = way_check(i_this); - if (!wayCheck && cM_rndF(1.0f) < 0.75f) { + //TOOD: probably fakematch (debug) + BOOL wayCheck; + if (!(wayCheck = way_check(i_this)) && cM_rndF(1.0f) < 0.75f) { if (i_this->pl_dir < (l_HIO.attack_init_range - 100.0f) + TREG_F(7)) { i_this->action = ACTION_ATTACK_0; } else { @@ -1447,8 +1453,11 @@ static fopAc_ac_c* at_hit_check(e_dn_class* i_this) { return NULL; } + fopAc_ac_c* rv; if (i_this->at_sph.ChkAtHit() != 0) { - return dCc_GetAc(i_this->at_sph.GetAtHitObj()->GetAc()); + cCcD_Obj* atHitObj = i_this->at_sph.GetAtHitObj(); + rv = dCc_GetAc(atHitObj->GetAc()); + return rv; } return NULL; @@ -1541,6 +1550,7 @@ static void e_dn_attack(e_dn_class* i_this) { cLib_addCalc0(&actor->speedF, 1.0f, 5.0f); if (i_this->at_chk_flag != 0) { fopAc_ac_c* actor_p = at_hit_check(i_this); + UNUSED(actor_p); // maybe debug fakematch? if (actor_p != NULL && fopAcM_GetName(actor_p) == fpcNm_ALINK_e && daPy_getPlayerActorClass()->checkPlayerGuard()) { i_this->anm_p->setPlaySpeed(0.0f); i_this->action = ACTION_FIGHT_RUN; @@ -1759,7 +1769,8 @@ static BOOL body_gake(e_dn_class* i_this) { } static void e_dn_damage(e_dn_class* i_this) { - fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; + fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->actor; + fopEn_enemy_c* enemy = (fopEn_enemy_c*)actor; cXyz sp34, sp40; if (actor->health <= 0) { @@ -1768,7 +1779,7 @@ static void e_dn_damage(e_dn_class* i_this) { } if (daPy_py_c::checkNowWolf() != 0) { - if (i_this->field_0x6f3 == 0 && actor->checkWolfDownStartFlg()) { + if (i_this->field_0x6f3 == 0 && enemy->checkWolfDownStartFlg()) { if (i_this->timer[0] > 40) { i_this->timer[0] = 90; OS_REPORT(" DN WOLFHIT LONG \n"); @@ -1790,13 +1801,13 @@ static void e_dn_damage(e_dn_class* i_this) { } } - } else if (actor != NULL && actor->checkCutDownHitFlg()) { - actor->offCutDownHitFlg(); + } else if (enemy != NULL && enemy->checkCutDownHitFlg()) { + enemy->offCutDownHitFlg(); i_this->mode = 3; actor->health = 0; i_this->timer[0] = 100; i_this->timer[1] = 46; - actor->offDownFlg(); + enemy->offDownFlg(); actor->health = 0; i_this->sound.startCreatureVoice(Z2SE_EN_DN_V_DEATH, -1); i_this->death_flag = 1; @@ -1824,15 +1835,16 @@ static void e_dn_damage(e_dn_class* i_this) { case 1: if (i_this->objacch.ChkWallHit() != 0 && i_this->timer[0] == 0) { - int kado_kabe = kado_check(i_this); - if (kado_kabe != 0) { + //TODO: probably fakematch (debug) + int kado_kabe; + if ((kado_kabe = kado_check(i_this)) != 0) { OS_REPORT(" ..KADO KABE ..%x\n", kado_kabe); if (kado_kabe == 2) { i_this->field_0x70e = 0xC00; - i_this->field_0x724.y += TREG_S(8) + -7000; + ANGLE_ADD_2(i_this->field_0x724.y, TREG_S(8) + -7000); } else { i_this->field_0x70e = -0xC00; - i_this->field_0x724.y += -(TREG_S(8) - 7000); + ANGLE_ADD_2(i_this->field_0x724.y, -(TREG_S(8) - 7000)); } i_this->field_0x7e8 = BREG_F(10) + 8000.0f; @@ -1844,7 +1856,7 @@ static void e_dn_damage(e_dn_class* i_this) { i_this->mode = 10; actor->speed.y = 0.0f; i_this->field_0x704 *= 0.2f; - i_this->field_0x724.y += 0x8000; + ANGLE_ADD_2(i_this->field_0x724.y, 0x8000); i_this->field_0x7e8 = BREG_F(10) + 8000.0f; i_this->unk_timer_5 = BREG_S(7) + 5; i_this->field_0x754 = BREG_F(4) + 100.0f; @@ -1908,7 +1920,7 @@ static void e_dn_damage(e_dn_class* i_this) { if (i_this->objacch.ChkGroundHit()) { if (actor->health > 0 && !daPy_py_c::checkNowWolf()) { - actor->onDownFlg(); + enemy->onDownFlg(); } dKy_Sound_set(actor->current.pos, 100, fopAcM_GetID(&i_this->actor), 5); @@ -1976,8 +1988,8 @@ static void e_dn_damage(e_dn_class* i_this) { i_this->sound.startCreatureVoice(Z2SE_EN_DN_V_UP, -1); - if (actor != NULL) { - actor->offDownFlg(); + if (enemy != NULL) { + enemy->offDownFlg(); } } break; @@ -2018,8 +2030,8 @@ static void e_dn_damage(e_dn_class* i_this) { i_this->timer[0] = 5; i_this->mode = 21; - if (actor != NULL) { - actor->offDownFlg(); + if (enemy != NULL) { + enemy->offDownFlg(); } } break; @@ -2036,7 +2048,7 @@ static void e_dn_damage(e_dn_class* i_this) { break; case 30: - if (!actor->checkWolfDownPullFlg()) { + if (!enemy->checkWolfDownPullFlg()) { i_this->timer[1] = 0; } @@ -2051,8 +2063,8 @@ static void e_dn_damage(e_dn_class* i_this) { i_this->sound.startCreatureVoice(Z2SE_EN_DN_V_UP, -1); i_this->timer[0] = 10; } else if (i_this->timer[1] == 1) { - actor->onWolfDownPullEndFlg(); - actor->offCutDownHitFlg(); + enemy->onWolfDownPullEndFlg(); + enemy->offCutDownHitFlg(); actor->health = 0; i_this->timer[0] = 1000; i_this->timer[1] = 35; @@ -2062,13 +2074,13 @@ static void e_dn_damage(e_dn_class* i_this) { case 31: if (i_this->timer[0] == 0) { - actor->offDownFlg(); + enemy->offDownFlg(); i_this->mode = 20; i_this->field_0x6f3 = 0; } } - if (actor != NULL && actor->checkDownFlg()) { + if (enemy != NULL && enemy->checkDownFlg()) { i_this->field_0x6f2 = 0; } @@ -2237,9 +2249,11 @@ static void e_dn_reg(e_dn_class* i_this) { break; } + s16 sp0A = actor->current.angle.y; cLib_addCalcAngleS2(&actor->current.angle.y, i_this->cur_angle_y_target, 2, 0x800); - s16 sVar1 = actor->current.angle.y - i_this->cur_angle_y_target; - if (sVar1 > 0x800 || sVar1 < -0x800) { + sp0A -= actor->current.angle.y; + s16 sp08 = actor->current.angle.y - i_this->cur_angle_y_target; + if (sp08 > 0x800 || sp08 < -0x800) { dash_speed = 0.0f; } @@ -2343,7 +2357,8 @@ static void damage_check(e_dn_class* i_this) { i_this->invulnerability_timer = 1000; } else { at_power_check(&i_this->at_info); - s16 sVar1 = actor->health; + s16 oldHealth1 = actor->health; + s16 oldHealth2 = actor->health; cc_at_check(actor, &i_this->at_info); if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_HEAD_JUMP) { @@ -2362,7 +2377,7 @@ static void damage_check(e_dn_class* i_this) { i_this->learn |= i_this->at_info.mHitBit; if (i_this->at_info.mHitType == 16 || i_this->at_info.mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) { - actor->health = sVar1; + actor->health = oldHealth2; i_this->action = ACTION_DRAWBACK; i_this->mode = 0; @@ -2425,7 +2440,7 @@ static void action(e_dn_class* i_this) { s8 pl_search = 0; s8 bVar2 = 1; - actor->offHeadLockFlg(); + i_this->actor.offHeadLockFlg(); if (fopAcM_otherBgCheck(player, actor)) { fopAcM_OffStatus(actor, 0); actor->attention_info.flags = 0; @@ -2561,15 +2576,15 @@ static void action(e_dn_class* i_this) { MtxPosition(&work, &sp24c); actor->current.pos += sp24c; work = i_this->field_0x5bc - i_this->field_0x5c8; - f32 fVar1 = work.abs(); + f32 var_f28 = work.abs(); work = i_this->field_0x5bc - actor->current.pos; - f32 fVar2 = work.abs(); - f32 fVar3 = fVar1 * (NREG_F(19) + 0.3f); - if (fVar3 > NREG_F(18) + 250.0f) { - fVar3 = NREG_F(18) + 250.0f; + f32 var_f25 = work.abs(); + f32 var_f30 = var_f28 * (NREG_F(19) + 0.3f); + if (var_f30 > NREG_F(18) + 250.0f) { + var_f30 = NREG_F(18) + 250.0f; } - i_this->cur_pos_y_offset = fVar3 * cM_ssin((fVar2 / fVar1) * 32768.0f); + i_this->cur_pos_y_offset = var_f30 * cM_ssin((var_f25 / var_f28) * 32768.0f); i_this->field_0x5d8 = 0; } else { cLib_addCalc0(&i_this->cur_pos_y_offset, 1.0f, 30.0f); @@ -2621,9 +2636,9 @@ static void action(e_dn_class* i_this) { } } - s16 max_step, sVar2, sVar3; - sVar2 = 0; - sVar3 = 0; + s16 sp14, sp12, max_step; + sp14 = 0; + sp12 = 0; max_step = 0x800; if (i_this->field_0x700 != 0) { i_this->field_0x700--; @@ -2657,22 +2672,22 @@ static void action(e_dn_class* i_this) { } work.y += -(TREG_F(2) + 150.0f) * l_HIO.model_size; - sVar2 = cM_atan2s(work.x, work.z) - actor->shape_angle.y; - sVar3 = actor->shape_angle.x + cM_atan2s(work.y, JMAFastSqrt(work.x * work.x + work.z * work.z)); - if (sVar2 > 0x2710) { - sVar2 = 10000; - } else if (sVar2 < -10000) { - sVar2 = -10000; + sp14 = cM_atan2s(work.x, work.z) - actor->shape_angle.y; + sp12 = actor->shape_angle.x + cM_atan2s(work.y, JMAFastSqrt(work.x * work.x + work.z * work.z)); + if (sp14 > 0x2710) { + sp14 = 10000; + } else if (sp14 < -10000) { + sp14 = -10000; } - if (sVar3 > 0x2710) { - sVar3 = 10000; - } else if (sVar3 < -20000) { - sVar3 = -20000; + if (sp12 > 0x2710) { + sp12 = 10000; + } else if (sp12 < -20000) { + sp12 = -20000; } - cLib_addCalcAngleS2(&i_this->field_0x6f6, sVar2 / 2, 2, max_step); - cLib_addCalcAngleS2(&i_this->field_0x6f8, sVar3 / 2, 2, max_step); + cLib_addCalcAngleS2(&i_this->field_0x6f6, sp14 / 2, 2, max_step); + cLib_addCalcAngleS2(&i_this->field_0x6f8, sp12 / 2, 2, max_step); } i_this->field_0x6fc = 0; @@ -2710,13 +2725,13 @@ static void action(e_dn_class* i_this) { i_this->field_0x7a4[1].x = i_this->field_0x75c * cM_scos(i_this->field_0x760) * (BREG_F(0) + 70.0f); i_this->field_0x7a4[2].x += i_this->field_0x7a4[1].x; cLib_addCalc0(&i_this->field_0x75c, 1.0f, BREG_F(1) + 3.0f); - i_this->field_0x760 += BREG_S(0) + 4000; + ANGLE_ADD_2(i_this->field_0x760, BREG_S(0) + 4000); } if (fabsf(i_this->field_0x754) > 1.0f) { i_this->field_0x7a4[0].x = i_this->field_0x754 * cM_scos(i_this->field_0x758) * (BREG_F(2) + 70.0f); cLib_addCalc0(&i_this->field_0x754, 1.0f, BREG_F(3) + 3.0f); - i_this->field_0x758 += BREG_S(1) + 4000; + ANGLE_ADD_2(i_this->field_0x758, BREG_S(1) + 4000); } if (actor->speed.y < 0.0f && i_this->objacch.ChkGroundHit()) { @@ -2725,36 +2740,36 @@ static void action(e_dn_class* i_this) { } if (i_this->field_0x704) { - s16 sVar4 = i_this->field_0x724.y - actor->shape_angle.y; - i_this->field_0x7a4[3].y = 0x4000 + -sVar4; + sp14 = i_this->field_0x724.y - actor->shape_angle.y; + i_this->field_0x7a4[3].y = 0x4000 + -sp14; if (i_this->field_0x7a4[3].y > 6000) { // ~33° i_this->field_0x7a4[3].y = 6000; } else if (i_this->field_0x7a4[3].y < -9000) { // ~49.4° i_this->field_0x7a4[3].y = -9000; } - i_this->field_0x7a4[4].y = 0x4000 + -sVar4; + i_this->field_0x7a4[4].y = 0x4000 + -sp14; if (i_this->field_0x7a4[4].y > 17000) { // ~93.4° i_this->field_0x7a4[4].y = 17000; } else if (i_this->field_0x7a4[4].y < 0) { i_this->field_0x7a4[4].y = 0; } - i_this->field_0x7a4[5].y = sVar4 + 0x4000; + i_this->field_0x7a4[5].y = sp14 + 0x4000; if (i_this->field_0x7a4[5].y > 6000) { i_this->field_0x7a4[5].y = 6000; } else if (i_this->field_0x7a4[5].y < -9000) { i_this->field_0x7a4[5].y = -9000; } - i_this->field_0x7a4[6].y = sVar4 + 0x4000; + i_this->field_0x7a4[6].y = sp14 + 0x4000; if (i_this->field_0x7a4[6].y > 17000) { i_this->field_0x7a4[6].y = 17000; } else if (i_this->field_0x7a4[6].y < 0) { i_this->field_0x7a4[6].y = 0; } - cMtx_YrotS(*calc_mtx, sVar4); + cMtx_YrotS(*calc_mtx, sp14); work.x = 0.0f; work.y = 0.0f; work.z = BREG_F(8) + 12000.0f; @@ -2766,7 +2781,7 @@ static void action(e_dn_class* i_this) { i_this->field_0x836.x = BREG_S(6) + 10000; } - i_this->field_0x836.x += BREG_S(7) + 6000; + ANGLE_ADD_2(i_this->field_0x836.x, BREG_S(7) + 6000); } static s16 j_spd[11] = { @@ -2812,15 +2827,15 @@ static void action(e_dn_class* i_this) { i_this->unk_timer_4--; } - f32 fVar1 = i_this->unk_timer_4 * (DREG_F(13) + 1.0f); - if (fVar1 > 30.0f) { - fVar1 = 30.0f; + f32 var_f31 = i_this->unk_timer_4 * (DREG_F(13) + 1.0f); + if (var_f31 > 30.0f) { + var_f31 = 30.0f; } - fVar1 *= fVar1; + var_f31 *= var_f31; for (int i = 0; i < 4; i++) { - i_this->field_0x80e[i].x = fVar1 * (cM_ssin(i_this->frame_counter * (DREG_S(5) + 5000) + i * (DREG_S(7) + -15000)) * (DREG_F(18) + 5.0f)); - i_this->field_0x80e[i].y = fVar1 * (cM_ssin(i_this->frame_counter * (DREG_S(5) + 0x12C0) + i * (DREG_S(7) + -13000)) * (DREG_F(18) + 5.0f)); + i_this->field_0x80e[i].x = var_f31 * (cM_ssin(i_this->frame_counter * (DREG_S(5) + 5000) + i * (DREG_S(7) + -15000)) * (DREG_F(18) + 5.0f)); + i_this->field_0x80e[i].y = var_f31 * (cM_ssin(i_this->frame_counter * (DREG_S(5) + 0x12C0) + i * (DREG_S(7) + -13000)) * (DREG_F(18) + 5.0f)); } cLib_addCalcAngleS2(&i_this->jnt_tail_y_rot_offset, 0, 4, 0x100); @@ -2830,10 +2845,10 @@ static void action(e_dn_class* i_this) { Vec sp258; cXyz sp264, sp270; dBgS_GndChk gnd_chk; - s16 sVar6, sVar7; - sVar6 = 0; - sVar7 = 0; - fVar1 = 100.0f; + s16 sp0C, sp0A; + sp0C = 0; + sp0A = 0; + f32 var_f27 = 100.0f; MTXCopy(i_this->anm_p->getModel()->getAnmMtx(JNT_BACKBONE02), *calc_mtx); work.set(0.0f, 0.0f, 0.0f); @@ -2846,32 +2861,31 @@ static void action(e_dn_class* i_this) { if (sp264.y != -G_CM3D_F_INF) { sp258.x = sp264.x; sp258.y = sp264.y + 100.0f; - sp258.z = sp264.z + fVar1; + sp258.z = sp264.z + var_f27; gnd_chk.SetPos(&sp258); sp258.y = dComIfG_Bgsp().GroundCross(&gnd_chk); + f32 x, y, z; if (sp258.y != -G_CM3D_F_INF) { - f32 z, y; y = sp258.y - sp264.y; z = sp258.z - sp264.z; - sVar7 = -cM_atan2s(y, z); - if (sVar7 > 0x3000 || sVar7 < -0x3000) { - sVar7 = 0; + sp0A = -cM_atan2s(y, z); + if (sp0A > 0x3000 || sp0A < -0x3000) { + sp0A = 0; } } - sp258.x = sp264.x + fVar1; + sp258.x = sp264.x + var_f27; sp258.y = sp264.y + 100.0f; sp258.z = sp264.z; gnd_chk.SetPos(&sp258); sp258.y = dComIfG_Bgsp().GroundCross(&gnd_chk); if (sp258.y != -G_CM3D_F_INF) { - f32 x, y; y = sp258.y - sp264.y; x = sp258.x - sp264.x; - sVar6 = (s16)cM_atan2s(y, x); - if (sVar6 > 0x3000 || sVar6 < -0x3000) { - sVar6 = 0; + sp0C = (s16)cM_atan2s(y, x); + if (sp0C > 0x3000 || sp0C < -0x3000) { + sp0C = 0; } } } @@ -2898,8 +2912,8 @@ static void action(e_dn_class* i_this) { actor->current.pos += sp24c; } - i_this->field_0x730.x = sVar7; - i_this->field_0x730.z = sVar6; + i_this->field_0x730.x = sp0A; + i_this->field_0x730.z = sp0C; } } @@ -3362,7 +3376,7 @@ static int useHeapInit(fopAc_ac_c* actor) { static cPhs_Step daE_DN_Create(fopAc_ac_c* actor) { e_dn_class* i_this = (e_dn_class*)actor; - fopAcM_ct(actor, e_dn_class); + fopAcM_ct(&i_this->actor, e_dn_class); cPhs_Step phase = dComIfG_resLoad(&i_this->phase, "E_dn"); if (phase == cPhs_COMPLEATE_e) { diff --git a/src/d/actor/d_a_e_hp.cpp b/src/d/actor/d_a_e_hp.cpp index 12782f91d4..4a5f388e57 100644 --- a/src/d/actor/d_a_e_hp.cpp +++ b/src/d/actor/d_a_e_hp.cpp @@ -28,52 +28,6 @@ public: u8 rangeDisplay; }; -namespace { -static dCcD_SrcCyl cc_hp_src = { - { - {0, {{0x0, 0x0, 0x0}, {0xd8000000, 0x3}, 0x0}}, - {dCcD_SE_13, 0, 0, 0, {0}}, - {dCcD_SE_NONE, 0, 0, 0, {6}}, - {0}, - }, - { - { - {0.0f, 0.0f, 0.0f}, - 50.0f, - 300.0f, - } - } -}; - -static dCcD_SrcSph cc_lamp_src = { - { - {0x0, {{0x0, 0x0, 0x0}, {0xD8FBFDFF, 0x43}, 0x75}}, // mObj - {dCcD_SE_13, 0x0, 0x0, 0x0, 0x0}, // mGObjAt - {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg - {0x0}, // mGObjCo - }, // mObjInf - { - {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph - } // mSphAttr -}; - -static dCcD_SrcCyl cc_hp_at_src = { - { - {0, {{0x400, 0x1, 0xd}, {0x0, 0x0}, 0x0}}, - {dCcD_SE_METAL, 0, 1, 0, {0}}, - {dCcD_SE_NONE, 0, 0, 0, {2}}, - {0}, - }, - { - { - {0.0f, 0.0f, 0.0f}, - 50.0f, - 300.0f, - } - } -}; -} // namespace - daE_HP_HIO_c::daE_HP_HIO_c() { mChild = -1; modelSize = 1.2f; @@ -95,6 +49,52 @@ void daE_HP_HIO_c::genMessage(JORMContext* ctx) { } #endif +namespace { +static dCcD_SrcCyl cc_hp_src = { + { + {0, {{0x0, 0x0, 0x0}, {0xd8000000, 0x3}, 0x0}}, + {dCcD_SE_13, 0, 0, 0, {0}}, + {dCcD_SE_NONE, 0, 0, 0, {6}}, + {0}, + }, + { + { + {0.0f, 0.0f, 0.0f}, + 50.0f, + 300.0f, + } + } +}; + +static dCcD_SrcSph cc_lamp_src = { + { + {0x0, {{0x0, 0x0, 0x0}, {0xD8FBFDFF, 0x43}, 0x75}}, // mObj + {dCcD_SE_13, 0x0, 0x0, 0x0, 0x0}, // mGObjAt + {dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x6}, // mGObjTg + {0x0}, // mGObjCo + }, // mObjInf + { + {{0.0f, 0.0f, 0.0f}, 40.0f} // mSph + } // mSphAttr +}; + +static dCcD_SrcCyl cc_hp_at_src = { + { + {0, {{0x400, 0x1, 0xd}, {0x0, 0x0}, 0x0}}, + {dCcD_SE_METAL, 0, 1, 0, {0}}, + {dCcD_SE_NONE, 0, 0, 0, {2}}, + {0}, + }, + { + { + {0.0f, 0.0f, 0.0f}, + 50.0f, + 300.0f, + } + } +}; +} // namespace + int daE_HP_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { J3DJoint* joint = i_joint; s32 jointNo = joint->getJntNo(); @@ -230,7 +230,8 @@ int daE_HP_c::draw() { mDoMtx_stack_c::multVec(&unkXyz1, &field_0x75c); mDoMtx_stack_c::transS(field_0x75c); - unkXyz1 = dComIfGp_getCamera(0)->view.lookat.eye - field_0x75c; + camera_class* camera = (camera_class*)dComIfGp_getCamera(0); + unkXyz1 = camera->view.lookat.eye - field_0x75c; mDoMtx_stack_c::YrotM(unkXyz1.atan2sX_Z()); mDoMtx_stack_c::XrotM((s16)unkXyz1.atan2sY_XZ()); mDoMtx_stack_c::scaleM(l_HIO.modelSize, l_HIO.modelSize, l_HIO.modelSize); @@ -250,7 +251,7 @@ int daE_HP_c::draw() { } } - mpMorf->getModel(); + model = mpMorf->getModel(); mpMorf->entryDL(); if (checkDownFlg()) { @@ -302,7 +303,8 @@ void daE_HP_c::setActionMode(int param_0, int i_mode) { } bool daE_HP_c::mChkDistance(f32 param_0) { - cXyz vecToPlayer = dComIfGp_getPlayer(0)->current.pos - current.pos; + fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); + cXyz vecToPlayer = player->current.pos - current.pos; if (vecToPlayer.abs() < param_0) { return true; } else { @@ -677,8 +679,7 @@ void daE_HP_c::executeDown() { field_0x772.z = 0; unkXyz1 = home.pos - current.pos; - latDist = unkXyz1.atan2sX_Z(); - cMtx_YrotS(*calc_mtx, latDist); + cMtx_YrotS(*calc_mtx, unkXyz1.atan2sX_Z()); unkXyz1.x = 0.0f; unkXyz1.y = 100.0f; @@ -812,7 +813,8 @@ void daE_HP_c::action() { break; } - if (checkBallModelDraw()) { + fopEn_enemy_c* enemy = this; + if (enemy->checkBallModelDraw()) { mSound2.startCreatureSoundLevel(Z2SE_EN_PO_SOUL, 0, -1); } @@ -841,7 +843,7 @@ void daE_HP_c::action() { } field_0x772.x = -cM_atan2s(planeNormal->z, planeNormal->y); - field_0x772.z = cM_atan2s(planeNormal->x, planeNormal->y); + field_0x772.z = (s16)cM_atan2s(planeNormal->x, planeNormal->y); } } else if (mAction != 1 && mAction != 3) { gravity = 0.0f; diff --git a/src/d/actor/d_a_e_oc.cpp b/src/d/actor/d_a_e_oc.cpp index 54abe314ce..4bd6dd3353 100644 --- a/src/d/actor/d_a_e_oc.cpp +++ b/src/d/actor/d_a_e_oc.cpp @@ -2370,18 +2370,19 @@ void daE_OC_c::executeMoveOut() { bool daE_OC_c::checkWaterSurface() { dBgS_ObjGndChk_Spl gnd_chk_spl; - cXyz my_vec_0 = current.pos; + Vec my_vec_0; + my_vec_0 = current.pos; my_vec_0.y += 500.0f; - gnd_chk_spl.SetPos((Vec*)&my_vec_0); + gnd_chk_spl.SetPos(&my_vec_0); mWaterLvl = dComIfG_Bgsp().GroundCross(&gnd_chk_spl); if (mAcch.ChkGroundHit()) { mWaterLvl = -G_CM3D_F_INF; } if (mWaterLvl > (current.pos.y - 140.0f)) { - return 1; + return true; } else { - return 0; + return false; } } diff --git a/src/d/actor/d_a_e_rdy.cpp b/src/d/actor/d_a_e_rdy.cpp index 5f9b8b5fd4..17708bdf30 100644 --- a/src/d/actor/d_a_e_rdy.cpp +++ b/src/d/actor/d_a_e_rdy.cpp @@ -3790,6 +3790,7 @@ static void* s_adel_sub(void* i_proc, void* i_this) { return NULL; } +// DEBUG NONMATCHING: regalloc hell static void demo_camera(e_rdy_class* i_this) { fopAc_ac_c* a_this = &i_this->actor; daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); @@ -4238,7 +4239,7 @@ static void demo_camera(e_rdy_class* i_this) { } if (cVar12 != 0) { - fopAc_ac_c* a_arr = (fopAc_ac_c*) fopAcM_SearchByName(fpcNm_E_ARROW_e); + fopAc_ac_c* a_arr = (fopAc_ac_c*)fopAcM_SearchByName(fpcNm_E_ARROW_e); if (a_arr != NULL) { e_arrow_class* arrow = (e_arrow_class*) a_arr; if (cVar12 == 3) { @@ -4285,7 +4286,7 @@ static void demo_camera(e_rdy_class* i_this) { vec2.set(-93666.0f, -5951.0f, 39000.0f); player->setPlayerPosAndAngle(&vec2, 0, 0); fpcM_Search(s_adel_sub, i_this); -#if VERSION != VERSION_SHIELD_DEBUG +#if PLATFORM_GCN i_this->mMode = 2; anm_init(i_this, ANM_WAIT01, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); #endif diff --git a/src/d/actor/d_a_e_sh.cpp b/src/d/actor/d_a_e_sh.cpp index d9cad9bbe7..39aab64663 100644 --- a/src/d/actor/d_a_e_sh.cpp +++ b/src/d/actor/d_a_e_sh.cpp @@ -748,21 +748,26 @@ static void action(e_sh_class* i_this) { if (unkFlag1) { fopAcM_OnStatus(enemy, 0); - i_this->enemy.attention_info.flags = fopAc_attn_CARRY_e; + //TODO: was this maybe hardcoded as just "4"? +#if PLATFORM_GCN + enemy->attention_info.flags = fopAc_attn_CARRY_e; +#else + enemy->attention_info.flags = fopAc_attn_UNK_4; +#endif } else { fopAcM_OffStatus(enemy, 0); - i_this->enemy.attention_info.flags = fopAc_attn_LOCK_e; + enemy->attention_info.flags = fopAc_attn_LOCK_e; } - cMtx_YrotS(*calc_mtx, i_this->enemy.current.angle.y); + cMtx_YrotS(*calc_mtx, enemy->current.angle.y); baseVec.x = 0.0f; baseVec.y = 0.0f; - baseVec.z = i_this->enemy.speedF; + baseVec.z = enemy->speedF; MtxPosition(&baseVec, &finalVec); - i_this->enemy.speed.x = finalVec.x; - i_this->enemy.speed.z = finalVec.z; - i_this->enemy.current.pos += enemy->speed; - i_this->enemy.speed.y = i_this->enemy.speed.y - (JREG_F(5) + 5.0f); + enemy->speed.x = finalVec.x; + enemy->speed.z = finalVec.z; + enemy->current.pos += enemy->speed; + enemy->speed.y = enemy->speed.y - (JREG_F(5) + 5.0f); cXyz* ccMoveP = i_this->mStts.GetCCMoveP(); if (ccMoveP != NULL) { @@ -777,10 +782,10 @@ static void action(e_sh_class* i_this) { baseVec.z = -i_this->field_0x6a4; cMtx_YrotS(*calc_mtx, i_this->field_0x6a8); MtxPosition(&baseVec, &finalVec); - i_this->enemy.current.pos += finalVec; + enemy->current.pos += finalVec; cLib_addCalc0(&i_this->field_0x6a4, 1.0f, 6.0f); - i_this->enemy.speedF = 0.0f; + enemy->speedF = 0.0f; } i_this->mObjAcch.CrrPos(dComIfG_Bgsp()); @@ -1187,7 +1192,7 @@ static int daE_SH_Create(fopAc_ac_c* i_this) { int resLoadResult = dComIfG_resLoad(&sh->mPhase, "E_sh"); if (resLoadResult == cPhs_COMPLEATE_e) { - OS_REPORT("", fopAcM_GetParam(i_this)); + OS_REPORT("E_sh PARAM %x\n", fopAcM_GetParam(i_this)); sh->field_0x5b4 = (u8)fopAcM_GetParam(i_this); u8 bVar1 = (fopAcM_GetParam(i_this) & 0xff00) >> 8; @@ -1205,21 +1210,26 @@ static int daE_SH_Create(fopAc_ac_c* i_this) { sh->field_0x6b8 = (f32)bVar2 * 100.0f; } - OS_REPORT(""); + OS_REPORT("E_sh//////////////E_SH SET 1 !!\n"); if (!fopAcM_entrySolidHeap(i_this, useHeapInit, 0x2960)) { - OS_REPORT(""); + OS_REPORT("//////////////E_SH SET NON !!\n"); return cPhs_ERROR_e; } - OS_REPORT(""); + OS_REPORT("//////////////E_SH SET 2 !!\n"); if (!hio_set) { sh->mInitState = 1; hio_set = true; - l_HIO.mChild = mDoHIO_CREATE_CHILD("E_sh", &l_HIO); + l_HIO.mChild = mDoHIO_CREATE_CHILD("スタルハウンド", &l_HIO); } + //TODO: was this maybe hardcoded as just "4"? +#if PLATFORM_GCN i_this->attention_info.flags = fopAc_attn_CARRY_e; +#else + i_this->attention_info.flags = fopAc_attn_UNK_4; +#endif fopAcM_SetMtx(i_this, sh->mAnm_p->getModel()->getBaseTRMtx()); fopAcM_SetMin(i_this, -200.0f, -200.0f, -200.0f); diff --git a/src/d/actor/d_a_e_sm2.cpp b/src/d/actor/d_a_e_sm2.cpp index 1563e7cde2..6610ed0af2 100644 --- a/src/d/actor/d_a_e_sm2.cpp +++ b/src/d/actor/d_a_e_sm2.cpp @@ -53,7 +53,8 @@ void daE_SM2_HIO_c::genMessage(JORMContext* ctx) { static int nodeCallBack(J3DJoint* i_joint, int param_1) { if (param_1 == 0) { - int jnt_no = i_joint->getJntNo(); + J3DJoint* joint = i_joint; + int jnt_no = joint->getJntNo(); J3DModel* model = j3dSys.getModel(); e_sm2_class* a_this = (e_sm2_class*)model->getUserArea(); @@ -79,8 +80,9 @@ static int daE_SM2_Draw(e_sm2_class* i_this) { fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->enemy; g_env_light.settingTevStruct(0, &actor->current.pos, &actor->tevStr); + J3DModel* model; if (!i_this->isPiece) { - J3DModel* model = i_this->modelMorf->getModel(); + model = i_this->modelMorf->getModel(); g_env_light.setLightTevColorType_MAJI(model, &actor->tevStr); J3DMaterial* material = model->getModelData()->getMaterialNodePointer(0); @@ -96,15 +98,19 @@ static int daE_SM2_Draw(e_sm2_class* i_this) { cXyz pos; pos.set(actor->current.pos.x, 50.0f + actor->current.pos.y + BREG_F(18), actor->current.pos.z); - f32 var_f31 = i_this->size * (2500.0f + BREG_F(19)) * i_this->field_0x830; + f32 var_f31 = (2500.0f + BREG_F(19)) * i_this->size * i_this->field_0x830; if (var_f31 < 700.0f) { var_f31 = 700.0f; } - i_this->shadowId = dComIfGd_setShadow(i_this->shadowId, 1, model, &pos, var_f31, 0.0f, actor->current.pos.y, i_this->acch.GetGroundH(), i_this->acch.m_gnd, &actor->tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + i_this->shadowId = + dComIfGd_setShadow(i_this->shadowId, 1, model, &pos, var_f31, 0.0f, + actor->current.pos.y, i_this->acch.GetGroundH(), + i_this->acch.m_gnd, &i_this->enemy.tevStr, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); } } else { - J3DModel* model = i_this->pieceModelMorf->getModel(); + model = i_this->pieceModelMorf->getModel(); J3DMaterial* material = model->getModelData()->getMaterialNodePointer(0); material->getTevKColor(1)->r = i_this->color_R; @@ -1187,8 +1193,9 @@ static void action(e_sm2_class* i_this) { } } + J3DModel* model; if (!i_this->isPiece) { - J3DModel* model = i_this->modelMorf->getModel(); + model = i_this->modelMorf->getModel(); mDoMtx_stack_c::transS(i_this->field_0x840.x, i_this->field_0x840.y, i_this->field_0x840.z); mDoMtx_stack_c::YrotM(i_this->field_0x84c.y); @@ -1214,13 +1221,14 @@ static void action(e_sm2_class* i_this) { i_this->modelMorf->play(0, dComIfGp_getReverb(fopAcM_GetRoomNo(actor))); i_this->modelMorf->modelCalc(); } else { - J3DModel* model = i_this->pieceModelMorf->getModel(); + model = i_this->pieceModelMorf->getModel(); mDoMtx_stack_c::transS(actor->current.pos.x, actor->current.pos.y, actor->current.pos.z); mDoMtx_stack_c::YrotM(actor->shape_angle.y + (i_this->counter * -400)); - f32 temp_f27 = (0.5f / i_this->field_0x6b0) * (1.0f + ((0.007f + NREG_F(16)) * (i_this->timers[1] * cM_ssin(i_this->counter * (ZREG_S(1) + 8000))))); - mDoMtx_stack_c::scaleM((1.08f + KREG_F(7)) * temp_f27, i_this->field_0x6b0, temp_f27); + f32 var_f25 = 1.0f + ((0.007f + NREG_F(16)) * (i_this->timers[1] * cM_ssin(i_this->counter * (ZREG_S(1) + 8000)))); + f32 var_f27 = (0.5f / i_this->field_0x6b0) * var_f25; + mDoMtx_stack_c::scaleM((1.08f + KREG_F(7)) * var_f27, i_this->field_0x6b0, var_f27); mDoMtx_stack_c::YrotM(i_this->counter * 400); model->setBaseTRMtx(mDoMtx_stack_c::get()); @@ -1293,7 +1301,8 @@ static void action(e_sm2_class* i_this) { cLib_addCalc0(&i_this->field_0x82c, 0.1f, 0.2f); if (i_this->field_0xfd4 != 0) { - eff_set(i_this, &i_this->field_0x708[3], (2.0f + TREG_F(12)) * i_this->size); + f32 size = (2.0f + TREG_F(12)) * i_this->size; + eff_set(i_this, &i_this->field_0x708[3], size); i_this->field_0xfd4 = 0; } } diff --git a/src/d/actor/d_a_e_st.cpp b/src/d/actor/d_a_e_st.cpp index 557f9e2632..5c99e89e50 100644 --- a/src/d/actor/d_a_e_st.cpp +++ b/src/d/actor/d_a_e_st.cpp @@ -334,20 +334,20 @@ static int daE_ST_Draw(e_st_class* i_this) { pos.set(a_this->current.pos.x, a_this->current.pos.y + 400.0f + BREG_F(18), a_this->current.pos.z); if (fopAcM_gc_c::gndCheck(&pos)) { pos.y = TREG_F(7) + fopAcM_gc_c::getGroundY(); - i_this->mShadowKey = dComIfGd_setShadow(i_this->mShadowKey, 1, model, &pos, l_HIO.basic_size * 700.0f, 0.0f, - a_this->current.pos.y, fopAcM_gc_c::getGroundY(), *fopAcM_gc_c::getGroundCheck(), - &a_this->tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + i_this->mShadowKey = + dComIfGd_setShadow(i_this->mShadowKey, 1, model, &pos, l_HIO.basic_size * 700.0f, 0.0f, + a_this->current.pos.y, fopAcM_gc_c::getGroundY(), + *fopAcM_gc_c::getGroundCheck(), &i_this->actor.tevStr, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); } if (i_this->field_0x720 != 0) { - u8 uVar1 = JREG_S(5) + 180; - GXColor color = {uVar1, uVar1, uVar1, 0xFF}; - i_this->mLineMat1.update(20, color, &a_this->tevStr); + u8 brightness = JREG_S(5) + 180; + i_this->mLineMat1.update(20, (GXColor){brightness, brightness, brightness, 0xFF}, &a_this->tevStr); dComIfGd_set3DlineMat(&i_this->mLineMat1); if (i_this->field_0x760 != 0) { - GXColor color2 = {uVar1, uVar1, uVar1, 0xFF}; - i_this->mLineMat2.update(20, color2, &a_this->tevStr); + i_this->mLineMat2.update(20, (GXColor){brightness, brightness, brightness, 0xFF}, &a_this->tevStr); dComIfGd_set3DlineMat(&i_this->mLineMat2); } } diff --git a/src/d/actor/d_a_e_yg.cpp b/src/d/actor/d_a_e_yg.cpp index af5c540e6b..92133d2ce9 100644 --- a/src/d/actor/d_a_e_yg.cpp +++ b/src/d/actor/d_a_e_yg.cpp @@ -244,10 +244,12 @@ static fopAc_ac_c* target_info[20]; static int target_info_count; static void* s_d_sub(void* i_actor, void* i_data) { - daObjCarry_c* actor = (daObjCarry_c*)i_actor; - - if (fopAcM_IsActor(actor) && fopAcM_GetName(actor) == fpcNm_Obj_Carry_e && actor->getType() == 5 && target_info_count < 20) { - target_info[target_info_count] = actor; + UNUSED(i_data); + + if (fopAcM_IsActor(i_actor) && + fopAcM_GetName(i_actor) == fpcNm_Obj_Carry_e && + ((daObjCarry_c*)i_actor)->getType() == 5 && target_info_count < 20) { + target_info[target_info_count] = (fopAc_ac_c*)i_actor; target_info_count++; } @@ -637,51 +639,52 @@ static void e_yg_dokuro(e_yg_class* i_this) { if (skull_p == NULL || i_this->mBgc.ChkWallHit() || fopAcM_checkCarryNow(skull_p)) { i_this->mAction = ACTION_NORMAL; i_this->mActionMode = MODE_INIT; - } else { - cXyz pos_delta(skull_p->current.pos - actor->current.pos); - f32 abs_val = pos_delta.abs(); - i_this->mCurrentAngleYTarget = (s16)cM_atan2s(pos_delta.x, pos_delta.z); - f32 target = 0.0f; + return; + } - switch (i_this->mActionMode) { - case MODE_INIT: - anm_init(i_this, BCK_YG_FIND, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f); - i_this->mActionMode = DOKURO_MODE_RUN; - break; + cXyz pos_delta(skull_p->current.pos - actor->current.pos); + f32 abs_val = pos_delta.abs(); + i_this->mCurrentAngleYTarget = (s16)cM_atan2s(pos_delta.x, pos_delta.z); + f32 target = 0.0f; - case DOKURO_MODE_RUN: - if (i_this->mpMorf->isStop()) { - anm_init(i_this, BCK_YG_RUN, 3.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); - i_this->mActionMode = DOKURO_MODE_2; - } - break; - - case DOKURO_MODE_2: - if (abs_val < TREG_F(14) + 75.0f) { - anm_init(i_this, BCK_YG_GNAW, 3.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); - i_this->mTimers[0] = cM_rndF(60.0f) + 90.0f; - i_this->mActionMode = DOKURO_MODE_3; - } else { - target = l_HIO.movement_spd; - } - break; + switch (i_this->mActionMode) { + case MODE_INIT: + anm_init(i_this, BCK_YG_FIND, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->mActionMode = DOKURO_MODE_RUN; + break; - case DOKURO_MODE_3: - if (abs_val < TREG_F(15) + 65.0f) { - target = -2.0f; - } else if (abs_val > TREG_F(16) + 70.0f) { - target = 2.0f; - } - break; + case DOKURO_MODE_RUN: + if (i_this->mpMorf->isStop()) { + anm_init(i_this, BCK_YG_RUN, 3.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->mActionMode = DOKURO_MODE_2; } + break; - cLib_addCalcAngleS2(&actor->current.angle.y, i_this->mCurrentAngleYTarget, 2, 0x2000); - cLib_addCalc2(&actor->speedF, target, 1.0f, 10.0f); - - if (pl_check(i_this, i_this->mDistance)) { - i_this->mAction = ACTION_ATTACK; - i_this->mActionMode = MODE_INIT; + case DOKURO_MODE_2: + if (abs_val < TREG_F(14) + 75.0f) { + anm_init(i_this, BCK_YG_GNAW, 3.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->mTimers[0] = cM_rndF(60.0f) + 90.0f; + i_this->mActionMode = DOKURO_MODE_3; + } else { + target = l_HIO.movement_spd; } + break; + + case DOKURO_MODE_3: + if (abs_val < TREG_F(15) + 65.0f) { + target = -2.0f; + } else if (abs_val > TREG_F(16) + 70.0f) { + target = 2.0f; + } + break; + } + + cLib_addCalcAngleS2(&actor->current.angle.y, i_this->mCurrentAngleYTarget, 2, 0x2000); + cLib_addCalc2(&actor->speedF, target, 1.0f, 10.0f); + + if (pl_check(i_this, i_this->mDistance)) { + i_this->mAction = ACTION_ATTACK; + i_this->mActionMode = MODE_INIT; } } @@ -831,6 +834,8 @@ static void damage_check(e_yg_class* i_this) { } static void ke_control(e_yg_class* i_this, yg_ke_s* yg_p, int param_3, f32 i_posZ) { + UNUSED(param_3); + cXyz work, pos_offset; int i; cXyz* pcVar1 = &yg_p->field_0x0[1]; @@ -841,46 +846,52 @@ static void ke_control(e_yg_class* i_this, yg_ke_s* yg_p, int param_3, f32 i_pos work.z = i_posZ; cXyz spc4; - f32 fVar2, fVar3, fVar4; - f32 fVar1; + f32 var_f30; + f32 sp24; + f32 var_f25; if (i_this->mWaterFlag) { - fVar1 = ZREG_F(9) + -5.0f; + var_f25 = ZREG_F(9) + -5.0f; } else { - fVar1 = ZREG_F(8) + -12.0f; + var_f25 = ZREG_F(8) + -12.0f; } - s16 sVar1 = cM_rndF2(65536.0f); - - fVar2 = JREG_F(8) + 3.0f; - f32 fVar5 = JREG_F(5) + (i_this->mBgc.GetGroundH() + 3.0f); - if (fVar5 < i_this->mGroundCross) { - fVar5 = i_this->mGroundCross; - } - - f32 fVar6 = JREG_F(17) + 0.8f; + s16 x_rot; + s16 y_rot; + s16 sp10 = cM_rndF2(65536.0f); + f32 var_f24 = JREG_F(8) + 3.0f; + f32 var_f31 = JREG_F(5) + (i_this->mBgc.GetGroundH() + 3.0f); + if (var_f31 < i_this->mGroundCross) { + var_f31 = i_this->mGroundCross; + } + + f32 sp20; + f32 sp1C; + f32 var_f29; + f32 var_f28; + f32 var_f27; + f32 var_f26 = JREG_F(17) + 0.8f; for (i = 1; i < 10; i++, pcVar1++, pcVar2++) { - f32 fVar7 = fVar2 * cM_ssin(sVar1 + i * 7000); - f32 fVar8 = fVar2 * cM_ssin(sVar1 + 10000 + i * 6000); - f32 fVar9 = (10 - i) * 0.1f; + sp20 = var_f24 * cM_ssin(sp10 + i * 7000); + sp1C = var_f24 * cM_ssin(sp10 + 10000 + i * 6000); + var_f27 = (10 - i) * 0.1f; - spc4.x = pcVar2->x + (fVar7 + yg_p->field_0xf0.x * fVar9); - spc4.y = pcVar2->y + yg_p->field_0xf0.y * fVar9; - spc4.z = pcVar2->z + (fVar8 + yg_p->field_0xf0.z * fVar9); - - fVar3 = spc4.x + (pcVar1->x - pcVar1[-1].x); - - f32 fVar10; - f32 fVar11 = spc4.z + (pcVar1->z - pcVar1[-1].z); + spc4.x = pcVar2->x + (sp20 + yg_p->field_0xf0.x * var_f27); + spc4.y = pcVar2->y + yg_p->field_0xf0.y * var_f27; + spc4.z = pcVar2->z + (sp1C + yg_p->field_0xf0.z * var_f27); - fVar4 = fVar1 + (pcVar1->y + spc4.y); - if (fVar4 < fVar5) { - fVar4 = fVar5; + sp24 = spc4.x + (pcVar1->x - pcVar1[-1].x); + + var_f29 = spc4.z + (pcVar1->z - pcVar1[-1].z); + + var_f28 = var_f25 + (pcVar1->y + spc4.y); + if (var_f28 < var_f31) { + var_f28 = var_f31; } - fVar10 = fVar4 - pcVar1[-1].y; - s16 x_rot = -cM_atan2s(fVar10, fVar11); - s16 y_rot = (s16)cM_atan2s(fVar3, JMAFastSqrt(fVar10 * fVar10 + fVar11 * fVar11)); + var_f30 = var_f28 - pcVar1[-1].y; + x_rot = -cM_atan2s(var_f30, var_f29); + y_rot = (s16)cM_atan2s(sp24, JMAFastSqrt(var_f30 * var_f30 + var_f29 * var_f29)); cMtx_XrotS(*calc_mtx, x_rot); cMtx_YrotM(*calc_mtx, y_rot); MtxPosition(&work, &pos_offset); @@ -891,9 +902,9 @@ static void ke_control(e_yg_class* i_this, yg_ke_s* yg_p, int param_3, f32 i_pos pcVar1->y = pcVar1[-1].y + pos_offset.y; pcVar1->z = pcVar1[-1].z + pos_offset.z; - pcVar2->x = fVar6 * (pcVar1->x - pcVar2->x); - pcVar2->y = fVar6 * (pcVar1->y - pcVar2->y); - pcVar2->z = fVar6 * (pcVar1->z - pcVar2->z); + pcVar2->x = var_f26 * (pcVar1->x - pcVar2->x); + pcVar2->y = var_f26 * (pcVar1->y - pcVar2->y); + pcVar2->z = var_f26 * (pcVar1->z - pcVar2->z); } } @@ -971,7 +982,7 @@ static void ke_set(e_yg_class* i_this) { work.set(0.0f, ZREG_F(4) + 15.0f, 0.0f); } MtxPosition(&work, &i_this->mYgKes[i].field_0xf0); - + i_this->mYgKes[i].field_0xf0 -= i_this->mYgKes[i].field_0x0[0]; ke_move(i_this, &i_this->mLineMat, &i_this->mYgKes[i], i, pos_z); MtxPull(); @@ -1224,7 +1235,7 @@ static int daE_YG_Execute(e_yg_class* i_this) { MTXCopy(daPy_getLinkPlayerActorClass()->getWolfMouthMatrix(), mDoMtx_stack_c::get()); mDoMtx_stack_c::multVecZero(&actor->current.pos); mDoMtx_stack_c::YrotM(KREG_S(0)); - mDoMtx_stack_c::XrotM(KREG_S(1) + (s16)0x8000); + mDoMtx_stack_c::XrotM(KREG_S(1) + 0x8000); mDoMtx_stack_c::ZrotM(KREG_S(2) + 2500); mDoMtx_stack_c::transM(KREG_F(0) + 10.0f, KREG_F(1) + -60.0f, KREG_F(2) + -20.0f); model->setBaseTRMtx(mDoMtx_stack_c::get()); diff --git a/src/d/actor/d_a_e_yr.cpp b/src/d/actor/d_a_e_yr.cpp index d1851d303a..180c3762b8 100644 --- a/src/d/actor/d_a_e_yr.cpp +++ b/src/d/actor/d_a_e_yr.cpp @@ -16,8 +16,8 @@ public: e_yrHIO_c() { mInvulnerable = 0; mStationary = 0; - field_0x8 = 20.0f; - field_0xc = 2500.0f; + field_0x0c = 20.0f; + mTurningRadius = 2500.0f; mModelScale = 1.0f; mAttackAMinTime = 2000; mAttackAMaxTime = 2500; @@ -51,68 +51,68 @@ public: virtual ~e_yrHIO_c() {} #if DEBUG - void genMessage(JORMContext*); + virtual void genMessage(JORMContext*); #endif - /* 0x04 */ u8 mInvulnerable; - /* 0x05 */ u8 mStationary; - /* 0x06 */ u8 mSuddenAttack; - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; + /* 0x06 */ u8 mInvulnerable; + /* 0x07 */ u8 mStationary; + /* 0x08 */ u8 mSuddenAttack; + /* 0x0C */ f32 field_0x0c; /* 0x10 */ f32 mTurningRadius; - /* 0x14 */ f32 mModelScale; - /* 0x18 */ s16 mAttackAMinTime; - /* 0x1A */ s16 mAttackAMaxTime; - /* 0x1C */ s16 mAttackBMinTime; - /* 0x1E */ s16 mAttackBMaxTime; - /* 0x20 */ f32 mAttackMoveSpeed; - /* 0x24 */ f32 mAttackFrequency; - /* 0x28 */ f32 mFlyPlaybackSpeed; - /* 0x2C */ f32 mHoveringPlaybackSpeed; - /* 0x30 */ f32 mAttackPlaybackSpeed; - /* 0x34 */ s16 mChanceTime; - /* 0x38 */ f32 field_0x38; - /* 0x3C */ f32 mChancePlaybackSpeed; - /* 0x40 */ s16 field_0x40; - /* 0x44 */ f32 field_0x44; - /* 0x48 */ f32 field_0x48; - /* 0x4C */ f32 field_0x4c; - /* 0x50 */ s16 mBrakeStartDist; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 mLargeDamage; - /* 0x5C */ f32 mSmallDamage; - /* 0x60 */ s16 mHitOccurrenceFrame; - /* 0x64 */ f32 mDetectDistSky; - /* 0x68 */ f32 mDetectDistGround; - /* 0x6C */ s16 mDetectAngleSky; - /* 0x6E */ s16 mDetectAngleGround; - /* 0x70 */ f32 mDetectHeightSky; - /* 0x74 */ f32 mDetectHeightGround; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 mModelScale; + /* 0x1C */ s16 mAttackAMinTime; + /* 0x1E */ s16 mAttackAMaxTime; + /* 0x20 */ s16 mAttackBMinTime; + /* 0x22 */ s16 mAttackBMaxTime; + /* 0x24 */ f32 mAttackMoveSpeed; + /* 0x28 */ f32 mAttackFrequency; + /* 0x2C */ f32 mFlyPlaybackSpeed; + /* 0x30 */ f32 mHoveringPlaybackSpeed; + /* 0x34 */ f32 mAttackPlaybackSpeed; + /* 0x38 */ s16 mChanceTime; + /* 0x3C */ f32 field_0x38; + /* 0x40 */ f32 mChancePlaybackSpeed; + /* 0x44 */ s16 field_0x40; + /* 0x48 */ f32 field_0x44; + /* 0x4C */ f32 field_0x48; + /* 0x50 */ f32 field_0x4c; + /* 0x54 */ s16 mBrakeStartDist; + /* 0x58 */ f32 field_0x54; + /* 0x5C */ f32 mLargeDamage; + /* 0x60 */ f32 mSmallDamage; + /* 0x64 */ s16 mHitOccurrenceFrame; + /* 0x68 */ f32 mDetectDistSky; + /* 0x6C */ f32 mDetectDistGround; + /* 0x70 */ s16 mDetectAngleSky; + /* 0x72 */ s16 mDetectAngleGround; + /* 0x74 */ f32 mDetectHeightSky; + /* 0x78 */ f32 mDetectHeightGround; }; #if DEBUG void e_yrHIO_c::genMessage(JORMContext* ctx) { // "Kagarok" - ctx->genLabel("\u3000闇カーゴロック", 0x80000001); + ctx->genLabel(" 闇カーゴロック", 0x80000001); ctx->genCheckBox("不死身", &mInvulnerable, 0x1); ctx->genCheckBox("静止", &mStationary, 0x1); ctx->genCheckBox("いきなり攻撃", &mSuddenAttack, 0x1); - ctx->genSlider("旋回半径", &mTurningRadius, 0.0, 10000.0f); - ctx->genSlider("モデルスケール", &mModelScale, 0.0, 10.0f); + ctx->genSlider("旋回半径", &mTurningRadius, 0.0f, 10000.0f); + ctx->genSlider("モデルスケール", &mModelScale, 0.0f, 10.0f); ctx->genSlider("A攻時間(最短)", &mAttackAMinTime, 0, 15000); ctx->genSlider("A攻時間(最長)", &mAttackAMaxTime, 0, 15000); ctx->genSlider("B攻時間(最短)", &mAttackBMinTime, 0, 15000); ctx->genSlider("B攻時間(最長)", &mAttackBMaxTime, 0, 15000); - ctx->genSlider("攻撃移動速度", &mAttackMoveSpeed, 0.0, 2.0f); - ctx->genSlider("攻撃頻度", &mAttackFrequency, 0.0, 10.0f); - ctx->genSlider("fly再生速度", &mFlyPlaybackSpeed, 0.0, 3.0f); - ctx->genSlider("hovering再生速度", &mHoveringPlaybackSpeed, 0.0, 3.0f); - ctx->genSlider("atack再生速度", &mAttackPlaybackSpeed, 0.0, 3.0f); - ctx->genSlider("chance再生速度", &mChancePlaybackSpeed, 0.0, 3.0f); + ctx->genSlider("攻撃移動速度", &mAttackMoveSpeed, 0.0f, 2.0f); + ctx->genSlider("攻撃頻度", &mAttackFrequency, 0.0f, 10.0f); + ctx->genSlider("fly再生速度", &mFlyPlaybackSpeed, 0.0f, 3.0f); + ctx->genSlider("hovering再生速度", &mHoveringPlaybackSpeed, 0.0f, 3.0f); + ctx->genSlider("atack再生速度", &mAttackPlaybackSpeed, 0.0f, 3.0f); + ctx->genSlider("chance再生速度", &mChancePlaybackSpeed, 0.0f, 3.0f); ctx->genSlider("chance時間", &mChanceTime, 0, 200); ctx->genSlider("brake開始距離", &mBrakeStartDist, 0, 3000); - ctx->genSlider("大ダメージ力", &mLargeDamage, 0.0, 150.0f); - ctx->genSlider("小ダメージ力", &mSmallDamage, 0.0, 150.0f); + ctx->genSlider("大ダメージ力", &mLargeDamage, 0.0f, 150.0f); + ctx->genSlider("小ダメージ力", &mSmallDamage, 0.0f, 150.0f); ctx->genSlider("HIT発生フレーム", &mHitOccurrenceFrame, 0, 5); ctx->genSlider("プ認距離(空)", &mDetectDistSky, 0.0f, 10000.0f); ctx->genSlider("プ認高さ(空)", &mDetectHeightSky, 0.0f, 5000.0f); @@ -299,7 +299,7 @@ static int e_yr_player_view_check(e_yr_class* i_this) { if (vDistToPlayer < detectHeight) { s16 r28 = actor->current.angle.y - i_this->field_0xe84 - i_this->mYawToPlayer; if (r28 < 0) { - r28 = -r28; + r28 = r28 * -1; } if ((u16)r28 < detectAngle) { return 1; @@ -311,7 +311,7 @@ static int e_yr_player_view_check(e_yr_class* i_this) { static void path_check(e_yr_class* i_this) { static u8 check_index[255]; - if (i_this->field_0x6ec != 0) { + if (i_this->ppd != 0) { dPnt* point; fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->mEnemy; @@ -322,8 +322,8 @@ static void path_check(e_yr_class* i_this) { unkXyz1 = actor->current.pos; unkXyz1.y += 100.0f; - point = i_this->field_0x6ec->m_points; - for (s32 i = 0; i < i_this->field_0x6ec->m_num; i++, point++) { + point = i_this->ppd->m_points; + for (s32 i = 0; i < i_this->ppd->m_num; i++, point++) { unkXyz2.x = point->m_position.x; unkXyz2.y = point->m_position.y + 100.0f; unkXyz2.z = point->m_position.z; @@ -343,8 +343,8 @@ static void path_check(e_yr_class* i_this) { f32 unkFloat1 = 0.0f; bool unkFlag1 = false; for (s32 i = 0; i < 100; i++, unkFloat1 += 50.0f) { - point = i_this->field_0x6ec->m_points; - for (s32 j = 0; j < i_this->field_0x6ec->m_num; j++, point++) { + point = i_this->ppd->m_points; + for (s32 j = 0; j < i_this->ppd->m_num; j++, point++) { if (check_index[j] != 0) { xDist = actor->current.pos.x - point->m_position.x; yDist = actor->current.pos.y - point->m_position.y; @@ -352,8 +352,8 @@ static void path_check(e_yr_class* i_this) { if (JMAFastSqrt(xDist * xDist + yDist * yDist + zDist * zDist) < unkFloat1) { i_this->field_0x6ea = j - (s32)i_this->field_0x6eb; - if (i_this->field_0x6ea >= (s8)i_this->field_0x6ec->m_num) { - i_this->field_0x6ea = i_this->field_0x6ec->m_num; + if (i_this->field_0x6ea >= (s8)i_this->ppd->m_num) { + i_this->field_0x6ea = i_this->ppd->m_num; } else { if (i_this->field_0x6ea < 0) { i_this->field_0x6ea = 0; @@ -396,10 +396,11 @@ static void daE_Yr_shadowDraw(e_yr_class* i_this) { cXyz unkXyz1; unkXyz1.set(actor->current.pos.x, actor->current.pos.y + 150.0f + BREG_F(18), actor->current.pos.z); - i_this->mShadowKey = dComIfGd_setShadow(i_this->mShadowKey, 1, model, &unkXyz1, - 800.0f + BREG_F(19), 40.0f + BREG_F(17), actor->current.pos.y, - i_this->mAcch.GetGroundH(), i_this->mAcch.m_gnd, &actor->tevStr, - 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + i_this->mShadowKey = + dComIfGd_setShadow(i_this->mShadowKey, 1, model, &unkXyz1, + 800.0f + BREG_F(19), 40.0f + BREG_F(17), actor->current.pos.y, + i_this->mAcch.GetGroundH(), i_this->mAcch.m_gnd, &i_this->mEnemy.tevStr, + 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } static int daE_Yr_Draw(e_yr_class* i_this) { @@ -435,18 +436,18 @@ static void e_yr_pos_move(e_yr_class* i_this) { f32 zDiff = i_this->field_0x680.z - actor->current.pos.z; s16 yaw = cM_atan2s(xDiff, zDiff); s16 pitch = -cM_atan2s(yDiff, JMAFastSqrt(xDiff * xDiff + zDiff * zDiff)); - s16 angleY = actor->current.angle.y; + s16 curAngleY = actor->current.angle.y; cLib_addCalcAngleS2(&actor->current.angle.y, yaw, 10 + TREG_S(3), i_this->field_0x69c * i_this->field_0x694); - angleY = (angleY - actor->current.angle.y) * 0x20; + s16 targetAngleY = (curAngleY - actor->current.angle.y) * 0x20; s16 limit = 5500 + TREG_S(1); - if (angleY > limit) { - angleY = limit; - } else if (angleY < -limit) { - angleY = -limit; + if (targetAngleY > limit) { + targetAngleY = limit; + } else if (targetAngleY < -limit) { + targetAngleY = -limit; } - cLib_addCalcAngleS2(&actor->current.angle.z, angleY, 10 + TREG_S(3), + cLib_addCalcAngleS2(&actor->current.angle.z, targetAngleY, 10 + TREG_S(3), i_this->field_0x69c * i_this->field_0x694 * 0.5f); cLib_addCalcAngleS2(&actor->current.angle.x, pitch, 10 + TREG_S(3), @@ -512,8 +513,10 @@ static void e_yr_path_move(e_yr_class* i_this) { s32 frame; switch (i_this->field_0x67c) { - case 0: - frame = i_this->mpMorfSO->getFrame(); + case 0: { + // this case uses a different stack address than others in debug - + // it seems plausible that the frame variable was inadvertently shadowed here + s32 frame = i_this->mpMorfSO->getFrame(); if (actor->current.pos.y > i_this->field_0x680.y && frame == 9 + TREG_S(0)) { @@ -522,6 +525,7 @@ static void e_yr_path_move(e_yr_class* i_this) { } break; + } case 1: if (actor->current.pos.y <= (i_this->field_0x680).y) { i_this->field_0x67c = 0; @@ -531,6 +535,7 @@ static void e_yr_path_move(e_yr_class* i_this) { break; case 10: default: + (void)0; break; } @@ -542,18 +547,18 @@ static void e_yr_path_move(e_yr_class* i_this) { switch (i_this->field_0x67d) { case 0: { i_this->field_0x6ea += i_this->field_0x6eb; - if (i_this->field_0x6ea >= (s8)i_this->field_0x6ec->m_num) { - if (dPath_ChkClose(i_this->field_0x6ec)) { + if (i_this->field_0x6ea >= (s8)i_this->ppd->m_num) { + if (dPath_ChkClose(i_this->ppd)) { i_this->field_0x6ea = 0; } else { i_this->field_0x6eb = -1; - i_this->field_0x6ea = i_this->field_0x6ec->m_num - 2; + i_this->field_0x6ea = i_this->ppd->m_num - 2; } - s32 nextId = i_this->field_0x6ec->m_nextID; + s32 nextId = i_this->ppd->m_nextID; if (nextId != 0xffff) { - i_this->field_0x6ec = dPath_GetRoomPath(nextId, fopAcM_GetRoomNo(actor)); - JUT_ASSERT(0x451, i_this->field_0x6ec != NULL); + i_this->ppd = dPath_GetRoomPath(nextId, fopAcM_GetRoomNo(actor)); + JUT_ASSERT(0x451, i_this->ppd != NULL); } } else { if (i_this->field_0x6ea < 0) { @@ -565,7 +570,7 @@ static void e_yr_path_move(e_yr_class* i_this) { case -1: { i_this->field_0x67d = 1; - point = i_this->field_0x6ec->m_points; + point = i_this->ppd->m_points; point = &point[i_this->field_0x6ea]; if (i_this->field_0x6f0 != 0) { @@ -623,7 +628,7 @@ static void e_yr_path_move(e_yr_class* i_this) { } if (dist < 10.0f * TREG_F(10) + 300.0f) { i_this->field_0x67d = 0; - point = i_this->field_0x6ec->m_points; + point = i_this->ppd->m_points; point = &point[i_this->field_0x6ea]; if (point->mArg0 == 5) { i_this->field_0x66c = 1; @@ -682,11 +687,11 @@ static void e_yr_path_move(e_yr_class* i_this) { unkChar1 = 1; if (i_this->field_0x6a4[2] == 0) { i_this->field_0x6ea++; - if (i_this->field_0x6ea >= i_this->field_0x6ec->m_num) { + if (i_this->field_0x6ea >= i_this->ppd->m_num) { i_this->field_0x6ea = 0; } - point = i_this->field_0x6ec->m_points; + point = i_this->ppd->m_points; point = &point[i_this->field_0x6ea]; i_this->field_0x680.x = point->m_position.x; i_this->field_0x680.y = point->m_position.y; @@ -719,7 +724,7 @@ static void e_yr_path_move(e_yr_class* i_this) { zDiff = i_this->field_0x680.z - actor->current.pos.z; if (JMAFastSqrt(xDiff * xDiff + zDiff * zDiff) < 50.0f) { i_this->field_0x67d = 22; - point = i_this->field_0x6ec->m_points; + point = i_this->ppd->m_points; point = &point[i_this->field_0x6ea]; if (point->mArg0 == 3) { i_this->field_0x6a4[2] = cM_rndF(50.0f) + 50.0f; @@ -806,9 +811,9 @@ static void e_yr_auto_move(e_yr_class* i_this) { case 0: if (i_this->field_0x6a4[1] == 0) { xDiff = - actor->home.pos.x + cM_rndFX(l_e_yrHIO.field_0xc) - actor->current.pos.x; + actor->home.pos.x + cM_rndFX(l_e_yrHIO.mTurningRadius) - actor->current.pos.x; zDiff = - actor->home.pos.z + cM_rndFX(l_e_yrHIO.field_0xc) - actor->current.pos.z; + actor->home.pos.z + cM_rndFX(l_e_yrHIO.mTurningRadius) - actor->current.pos.z; if (JMAFastSqrt(xDiff * xDiff + zDiff * zDiff) > 200.0f) { i_this->field_0x6a4[1] = cM_rndF(150.0f) + 50.0f; @@ -1101,6 +1106,9 @@ static void e_yr_atack_move(e_yr_class* i_this) { cLib_addCalc2(&actor->current.pos.y, i_this->mAcch.GetGroundH() + 100.0f + TREG_F(17), 0.05f, 5.0f); + break; + default: + (void)0; break; } } @@ -1164,6 +1172,7 @@ static void e_yr_horse_move(e_yr_class* i_this) { f32 horseSpeed = dComIfGp_getHorseActor()->speedF; if (horseSpeed > 60.0f) { + int dummy; // force stack pointer into r31 for debug horseSpeed = 60.0f; } else { if (horseSpeed < 30.0f) { @@ -1302,6 +1311,9 @@ static void e_yr_horse_move(e_yr_class* i_this) { i_this->field_0x6a4[3] = cM_rndF(100.0f) + 60.0f; } + break; + default: + (void)0; break; } @@ -1526,12 +1538,12 @@ static void e_yr_wait_move(e_yr_class* i_this) { } static void e_yr_su_wait_move(e_yr_class* i_this) { - s32 old_0x6e0; - fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->mEnemy; fopAc_ac_c* playerActor = dComIfGp_getPlayer(0); daPy_py_c* player = (daPy_py_c*)playerActor; + s32 old_0x6e0; + cXyz unkXyz1; cXyz unkXyz2; @@ -1934,8 +1946,7 @@ static void ground_angle_set(e_yr_class* i_this) { dBgS_GndChk gndChk; f32 unkFloat1 = 75.0f; - model = i_this->mpMorfSO->getModel(); - MTXCopy(model->getAnmMtx(0), *calc_mtx); + MTXCopy(i_this->mpMorfSO->getModel()->getAnmMtx(0), *calc_mtx); unkXyz1.set(0.0f, 0.0f, 0.0f); MtxPosition(&unkXyz1, &unkXyz3); @@ -2009,9 +2020,12 @@ static void ground_angle_set(e_yr_class* i_this) { cLib_addCalcAngleS2(&i_this->field_0x6f8.z, unkShort1, 1, 0x400); } -static int daE_Yr_Execute(e_yr_class* i_this) { +// stripped function, inferred from its local static variable (which is not stripped) +static inline void wing_smoke_set(e_yr_class* i_this) { static s32 wing_j[4] = {12, 13, 17, 18}; +} +static int daE_Yr_Execute(e_yr_class* i_this) { fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->mEnemy; fopAc_ac_c* playerActor = dComIfGp_getPlayer(0); @@ -2456,6 +2470,8 @@ static int daE_Yr_Create(fopAc_ac_c* i_this) { fopAcM_ct(i_this, e_yr_class); if (loadResult == cPhs_COMPLEATE_e) { + int dummy; // force stack pointer into r31 for debug + // "It won't reset because it's already been defeated" OS_REPORT("PARAM %x\n", fopAcM_GetParam(i_this)); @@ -2485,8 +2501,8 @@ static int daE_Yr_Create(fopAc_ac_c* i_this) { i_this->home.pos = i_this->current.pos; if (yr->field_0x666 != 0xff) { - yr->field_0x6ec = dPath_GetRoomPath(yr->field_0x666, fopAcM_GetRoomNo(i_this)); - if (yr->field_0x6ec == 0) { + yr->ppd = dPath_GetRoomPath(yr->field_0x666, fopAcM_GetRoomNo(i_this)); + if (yr->ppd == 0) { return cPhs_ERROR_e; } diff --git a/src/d/actor/d_a_kago.cpp b/src/d/actor/d_a_kago.cpp index 29d063e09c..9f85b227ef 100644 --- a/src/d/actor/d_a_kago.cpp +++ b/src/d/actor/d_a_kago.cpp @@ -234,10 +234,10 @@ int daKago_c::executeBalloonMenu() { fopAcM_orderPotentialEvent(this, 1, 0xffff, 0); eventInfo.onCondition(dEvtCnd_CANDEMO_e); - #if VERSION == VERSION_SHIELD_DEBUG - return 0; - #else + #if PLATFORM_GCN break; + #else + return 0; #endif } @@ -368,7 +368,7 @@ f32 daKago_c::checkGroundHeight(cXyz i_pos, f32* o_step) { gnd_height = gndCrossMag; field_0x6e0 = 1; - if (current.pos.y < gndCrossMag) { + if (current.pos.y < gnd_height) { mGroundHeight = current.pos.y; } else { mGroundHeight = mGroundFlyHeight; @@ -636,24 +636,26 @@ s8 daKago_c::searchNearPassPoint() { cXyz pointPos; cXyz playerPos(daPy_getPlayerActorClass()->current.pos); - f32 prev_nearest_distXZ, nearest_distXZ; - nearest_distXZ = prev_nearest_distXZ = 100000.0f; - int nearest_point_no; + f32 nearest_DistXZ[2]; + nearest_DistXZ[0] = nearest_DistXZ[1] = 100000.0f; + int nearest_point_no[2]; for (int i = 0; i < mpPath1->m_num; i++) { pointPos = dPath_GetPnt(mpPath1, i)->m_position; f32 player_pnt_distXZ = playerPos.absXZ(pointPos); - if (player_pnt_distXZ < nearest_distXZ) { - prev_nearest_distXZ = nearest_distXZ; - nearest_distXZ = player_pnt_distXZ; - nearest_point_no = i; - } else if (player_pnt_distXZ < prev_nearest_distXZ) { - prev_nearest_distXZ = player_pnt_distXZ; + if (player_pnt_distXZ < nearest_DistXZ[0]) { + nearest_DistXZ[1] = nearest_DistXZ[0]; + nearest_point_no[1] = nearest_point_no[0]; + nearest_DistXZ[0] = player_pnt_distXZ; + nearest_point_no[0] = i; + } else if (player_pnt_distXZ < nearest_DistXZ[1]) { + nearest_DistXZ[1] = player_pnt_distXZ; + nearest_point_no[1] = i; } } - int next_point_no = nearest_point_no + mPathStep; + int next_point_no = nearest_point_no[0] + mPathStep; if (next_point_no < 0) { next_point_no = 1; } else if (next_point_no >= mpPath1->m_num) { @@ -1479,13 +1481,16 @@ void daKago_c::executeWait() { setActionMode(ACTION_LANDING_e, 0); executeLanding(); } + + return; } - return; + +#if DEBUG + mPathDir = 1; +#endif } #if DEBUG - mPathDir = 1; - if (mDoCPd_c::getHoldL(PAD_1) && mDoCPd_c::getHoldR(PAD_1) && mDoCPd_c::getTrigB(PAD_1)) { @@ -1498,9 +1503,10 @@ void daKago_c::executeWait() { if (mSceneType == SCENE_TYPE_RIVER) { createBalloonScore(); - return; } } + + return; } #endif } @@ -2334,6 +2340,7 @@ void daKago_c::initFirstDemo() { cXyz cStack_34; daPy_py_c* player = daPy_getPlayerActorClass(); + s16 targetYaw; s16 playerYaw = player->shape_angle.y; cXyz playerPos = player->current.pos; @@ -2343,7 +2350,6 @@ void daKago_c::initFirstDemo() { midnaPos = midna->current.pos; } - s16 targetYaw; switch (mDemoMode) { case 0: { Z2GetAudioMgr()->setDemoName(mDemoName); @@ -2356,9 +2362,9 @@ void daKago_c::initFirstDemo() { shape_angle.y = current.angle.y = cLib_targetAngleY(&playerPos, &field_0x6a4); cStack_34.set(-300.0f, 400.0f, -1000.0f); cLib_offsetPos(¤t.pos, &playerPos, shape_angle.y, &cStack_34); - targetYaw = cLib_targetAngleY(&playerPos, ¤t.pos); + playerYaw = cLib_targetAngleY(&playerPos, ¤t.pos); - player->setPlayerPosAndAngle(&playerPos, targetYaw, 0); + player->setPlayerPosAndAngle(&playerPos, playerYaw, 0); if (midna != NULL) { midna->current.pos = playerPos; midnaPos = midna->current.pos; @@ -2497,8 +2503,7 @@ bool daKago_c::executeFirstDemo() { cXyz playerPos = player->current.pos; int unkFlag1; - int mode = mDemoMode; // fakematch - switch (mode) { + switch (mDemoMode) { case 0: dComIfGp_getEvent()->setSkipProc(this, DemoSkipCallBack, 2); @@ -2599,7 +2604,7 @@ bool daKago_c::executeFirstDemo() { } break; - case 3: { + case 3: dComIfGp_getEvent()->setSkipProc(this, DemoSkipCallBack, 3); setMidnaTagPos(); @@ -2619,7 +2624,6 @@ bool daKago_c::executeFirstDemo() { } break; - } case 4: dComIfGp_getEvent()->setSkipProc(this, DemoSkipCallBack, 2); @@ -2739,11 +2743,11 @@ bool daKago_c::executeFirstDemo() { case 8: unkFlag1 = 0; - if (mode == 7 || field_0x6e8 == 0) { + if (mDemoMode == 7 || field_0x6e8 == 0) { if (field_0x728 == 110) { unkFlag1 = 1; } - } else if (mode == 8 && field_0x728 == 140) { + } else if (mDemoMode == 8 && field_0x728 == 140) { unkFlag1 = 1; } @@ -3445,6 +3449,8 @@ void daKago_c::setWaterFallEffect() { } static void* s_waterfall(void* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == fpcNm_Tag_WaterFall_e) { if (!fpcM_IsCreating(fopAcM_GetID(i_actor))) { if (((daTagWaterFall_c*)i_actor)->checkHitWaterFall(((fopAc_ac_c*)i_data)->current.pos)) diff --git a/src/d/actor/d_a_mg_rod.cpp b/src/d/actor/d_a_mg_rod.cpp index e44cdfeeff..816deb528e 100644 --- a/src/d/actor/d_a_mg_rod.cpp +++ b/src/d/actor/d_a_mg_rod.cpp @@ -291,9 +291,9 @@ static void rod_control(dmg_rod_class* i_this) { s16 segPitch, segYaw, rodPitchAdj, rodRollAdj; f32 var_f31; - f32 var_f29; f32 var_f26; f32 var_f30; + f32 var_f29; f32 var_f25; rodJointPos = i_this->mg_rod.field_0x0; @@ -4228,7 +4228,9 @@ static void uki_main(dmg_rod_class* i_this) { break; } - if (i_this->rod_substick_y <= -0.5f && (i_this->rod_substick_y - i_this->prev_rod_substick_y) <= -0.5f && i_this->action == ACTION_UKI_STANDBY) { + if (i_this->rod_substick_y <= -0.5f && + i_this->rod_substick_y - i_this->prev_rod_substick_y <= -0.5f && + i_this->action == ACTION_UKI_STANDBY) { if (i_this->is_hook_in_water != 0) { daAlink_getAlinkActorClass()->seStartOnlyReverb(Z2SE_AL_ROD_SWING_LURE); } @@ -4376,7 +4378,7 @@ static void uki_main(dmg_rod_class* i_this) { mDoMtx_stack_c::XrotM(spC); mDoMtx_stack_c::scaleM(l_HIO.field_0xc, l_HIO.field_0xc, l_HIO.field_0xc); mDoMtx_stack_c::transM(0.0f, 0.0f, l_HIO.field_0x10); - mDoMtx_stack_c::XrotM(XREG_S(8)); + mDoMtx_stack_c::XrotM((s16)XREG_S(8)); i_this->uki_model->setBaseTRMtx(mDoMtx_stack_c::get()); mDoMtx_stack_c::transM(0.0f, 0.0f, l_HIO.field_0x14); @@ -4491,6 +4493,8 @@ static void play_camera(dmg_rod_class* i_this) { f32 sp60; f32 sp5C; camera_class* sp58; + // debug indicates these case bodies are likely unscoped despite containing declarations + // (due to extra an b instruction at the end) switch (i_this->play_cam_mode) { case 0: if (dComIfGp_checkPlayerStatus0(0, 0x2000) || dComIfGp_event_runCheck()) { @@ -4522,7 +4526,7 @@ static void play_camera(dmg_rod_class* i_this) { } } break; - case 1: { + case 1: i_this->play_cam_mode = 2; camera->mCamera.Stop(); i_this->play_cam_timer = 0; @@ -4540,8 +4544,7 @@ static void play_camera(dmg_rod_class* i_this) { camera->mCamera.SetTrimSize(1); i_this->play_cam_fovy = 55.0f; /* fallthrough */ - } - case 2: { + case 2: sp70 = 1; sp6C = 0.3f + NREG_F(3); sp68 = i_this->field_0x1420; @@ -4605,8 +4608,7 @@ static void play_camera(dmg_rod_class* i_this) { i_this->field_0x141a = i_this->field_0x1418 - daAlink_getAlinkActorClass()->getFishingRodAngleY(); i_this->field_0x140c = i_this->play_cam_fovy; break; - } - case 5: { + case 5: sp70 = 1; cLib_addCalc2(&i_this->field_0x141c, 400.0f + BREG_F(7), 0.1f, (20.0f + YREG_F(8)) * i_this->camera_morf_rate); @@ -4735,8 +4737,7 @@ static void play_camera(dmg_rod_class* i_this) { } } break; - } - case 10: { + case 10: cMtx_YrotS(*calc_mtx, player->shape_angle.y); sp174.x = (25.0f + (100.0f + DREG_F(0))) - 50.0f; sp174.y = (10.0f + DREG_F(1)) - 10.0f; @@ -4783,7 +4784,6 @@ static void play_camera(dmg_rod_class* i_this) { } i_this->field_0xf78 = 0.05f; break; - } case 11: cLib_addCalc2(&i_this->play_cam_fovy, 55.0f + DREG_F(6), 0.05f, 1.0f); @@ -5314,10 +5314,12 @@ static void play_camera_u(dmg_rod_class* i_this) { int sp14 = 0; f32 var_f31; + // debug indicates these case bodies are likely unscoped despite containing declarations + // (due to extra an b instruction at the end) switch (i_this->play_cam_mode) { case 0: break; - case 1: { + case 1: i_this->play_cam_mode = 2; camera->mCamera.Stop(); i_this->play_cam_timer = 0; @@ -5330,7 +5332,6 @@ static void play_camera_u(dmg_rod_class* i_this) { i_this->play_cam_eye = sp10->view.lookat.eye; i_this->play_cam_center = sp10->view.lookat.center; i_this->camera_morf_rate = 1000.0f; - } /* fallthrough */ case 2: sp14 = 1; @@ -5493,8 +5494,9 @@ static void play_camera_u(dmg_rod_class* i_this) { cLib_addCalc2(&i_this->play_cam_fovy, 55.0f, 0.1f, 10.0f); break; } + // debug indicates this case body is unscoped despite containing declarations case 20: - case 21: { + case 21: if (!actor->eventInfo.checkCommandDemoAccrpt()) { fopAcM_orderPotentialEvent(actor, 2, 0xFFFF, 0); actor->eventInfo.onCondition(dEvtCnd_CANDEMO_e); @@ -5647,8 +5649,8 @@ static void play_camera_u(dmg_rod_class* i_this) { i_this->field_0xf64 = -30.0f; daAlink_getAlinkActorClass()->changeFishGetFace(0); } + (void)0; break; - } case 90: sp18 = 1; break; diff --git a/src/d/actor/d_a_movie_player.cpp b/src/d/actor/d_a_movie_player.cpp index 55cb7525b7..ab32fd4564 100644 --- a/src/d/actor/d_a_movie_player.cpp +++ b/src/d/actor/d_a_movie_player.cpp @@ -524,7 +524,11 @@ static u8 __THPReadHuffmanTableSpecification() { __THPHuffmanCodeTab = (u16*)((u32)__THPWorkArea + 256 + 1); length = (u16)((__THPInfo->c)[0] << 8 | (__THPInfo->c)[1]); __THPInfo->c += 2; +#if PLATFORM_SHIELD + length -= (u16)2; +#else length -= 2; +#endif for (;;) { i = (*(__THPInfo->c)++); @@ -543,8 +547,12 @@ static u8 __THPReadHuffmanTableSpecification() { __THPHuffGenerateSizeTable(); __THPHuffGenerateCodeTable(); __THPHuffGenerateDecoderTables(tab_index); - __THPInfo->validHuffmanTabs |= 1 << tab_index; - length -= 17 + num_Vij; +#if PLATFORM_SHIELD + __THPInfo->validHuffmanTabs |= (u8)(1 << tab_index); +#else + __THPInfo->validHuffmanTabs |= (1 << tab_index); +#endif + U16_SUB_2(length, (17 + num_Vij)); if (length == 0) { break; @@ -1627,7 +1635,7 @@ static void __THPHuffDecodeDCTCompY(__REGISTER THPFileInfo* info, THPCoeff* bloc } if (__cntlzw((u32)diff) > 32 - t) { - diff += ((0xFFFFFFFF << t) + 1); + S16_ADD_2(diff, (0xFFFFFFFF << t) + 1); } }; @@ -2331,7 +2339,7 @@ static void __THPHuffDecodeDCTCompU(__REGISTER THPFileInfo* info, THPCoeff* bloc ASSERTLINE(5070, info->cnt <=33); if (__cntlzw((u32)diff) > 32 - t) { - diff += ((0xFFFFFFFF << t) + 1); + S16_ADD_2(diff, (0xFFFFFFFF << t) + 1); } } @@ -2475,7 +2483,7 @@ static void __THPHuffDecodeDCTCompV(__REGISTER THPFileInfo* info, THPCoeff* bloc ASSERTLINE(5255, info->cnt <=33); if (__cntlzw((u32)diff) > 32 - t) { - diff += ((0xFFFFFFFF << t) + 1); + S16_ADD_2(diff, (0xFFFFFFFF << t) + 1); } } diff --git a/src/d/actor/d_a_npc_aru.cpp b/src/d/actor/d_a_npc_aru.cpp index 2c8705ab0d..51c3cf14b8 100644 --- a/src/d/actor/d_a_npc_aru.cpp +++ b/src/d/actor/d_a_npc_aru.cpp @@ -1258,6 +1258,7 @@ void daNpc_Aru_c::adjustMoveDir() { } } + s16 sVar4; if (bVar1[1] != 0 && bVar1[2] != 0) { mTimer = mpHIO->m.no_turn_time; @@ -1294,7 +1295,7 @@ void daNpc_Aru_c::adjustMoveDir() { field_0xfca = 2; } } else { - s16 sVar4 = sVar3[0] - mCurAngle.y; + sVar4 = sVar3[0] - mCurAngle.y; if (abs(sVar4) > 0x7800) { if (mActorDirection == 1 || mActorDirection == 2 || mActorDirection == 3) { diff --git a/src/d/actor/d_a_npc_cdn3.cpp b/src/d/actor/d_a_npc_cdn3.cpp index a309d97c7c..8d63fa1347 100644 --- a/src/d/actor/d_a_npc_cdn3.cpp +++ b/src/d/actor/d_a_npc_cdn3.cpp @@ -368,231 +368,80 @@ void daNpcCdn3_c::initEscape() { dComIfGs_onSaveDunSwitch(0x3c); } -daNpcCdn3_c::seqFunc* daNpcCdn3_c::m_funcTbl[44] = { - m_seq00_funcTbl, m_seq01_funcTbl, - m_seq02_funcTbl, m_seq03_funcTbl, - m_seq04_funcTbl, m_seq05_funcTbl, - m_seq06_funcTbl, m_seq07_funcTbl, - m_seq08_funcTbl, m_seq09_funcTbl, - m_seq10_funcTbl, m_seq11_funcTbl, - m_seq12_funcTbl, m_seq13_funcTbl, - m_seq14_funcTbl, m_seq15_funcTbl, - m_seq16_funcTbl, m_seq17_funcTbl, - m_seq18_funcTbl, m_seq19_funcTbl, - m_seq20_funcTbl, m_seq21_funcTbl, - m_seq22_funcTbl, m_seq23_funcTbl, - m_seq24_funcTbl, m_seq25_funcTbl, - m_seq26_funcTbl, m_seq27_funcTbl, - m_seq28_funcTbl, m_seq29_funcTbl, - m_seq30_funcTbl, m_seq31_funcTbl, - m_seq32_funcTbl, m_seq33_funcTbl, - m_seq34_funcTbl, m_seq35_funcTbl, - m_seq36_funcTbl, m_seq37_funcTbl, - m_seq38_funcTbl, m_seq39_funcTbl, - m_seq40_funcTbl, m_seq41_funcTbl, - m_seq42_funcTbl, m_seq43_funcTbl, -}; +inline int daNpcCdn3_c::create() { + fopAcM_ct(this, daNpcCdn3_c); + mIsDarkWorld = dKy_darkworld_check(); + m_type = getType(); + mObjNum = getObjNum(); + m_seqNum = getSeqNum(); + mFlowNodeNum = getFlowNodeNum(); + if (m_seqNum < 0 || 44 <= m_seqNum) { + // "Castle town townspeople map tool setting error + // Argument 1 motion sequence = %d is abnormal" + OSReport_Error("城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n", m_seqNum); + JUT_ASSERT(175, FALSE); + } + int rv = loadResrc(m_type, mObjNum); + if (rv == cPhs_COMPLEATE_e) { + int heapSize = 0x2890; +#if DEBUG + heapSize |= fopAcM::HeapSkipMargin; +#else + heapSize |= 0x80000000; +#endif + if (fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize) == 0) { + // "Actor creation failed!" + OS_REPORT("アクター生成失敗しました!\n"); + return cPhs_ERROR_e; + } + create_init(); + } + return rv; +} -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq00_funcTbl[2] = {&daNpcCdn3_c::walka, NULL}; +inline void daNpcCdn3_c::create_init() { +#if DEBUG + // "NPC(C class,D class)HighPoly" + l_Cd2_HIO.entryHIO("NPC(C級,D級)HighPoly"); +#endif -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq01_funcTbl[2] = {&daNpcCdn3_c::runa, NULL}; + gravity = -3.0f; + initTimeSchedule(); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -40.0f, -10.0f, -40.0f, 40.0f, 190.0f, 40.0f); + mAcchCir.SetWall(Cd2_HIO_chkWallH(m_type), Cd2_HIO_chkWallR(m_type)); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, + fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + mAcch.SetRoofNone(); + mAcch.SetWaterNone(); + mAcch.CrrPos(dComIfG_Bgsp()); + setEnvTevCol(); + setRoomNo(); + initCollision(); + if (strcmp(dComIfGp_getStartStageName(), "F_SP116") == 0 && + dComIfGp_getStartStageRoomNo() == 3 && getType() == 7) + { + attention_info.distances[fopAc_attn_SPEAK_e] = 0xda; + attention_info.distances[fopAc_attn_TALK_e] = 0xda; + } else { + attention_info.distances[fopAc_attn_SPEAK_e] = 0xd9; + attention_info.distances[fopAc_attn_TALK_e] = 0xd9; + } -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq02_funcTbl[2] = {&daNpcCdn3_c::waita, NULL}; + if (isInShop()) { + fopAcM_OnStatus(this, fopAcStts_UNK_0x4000_e); + } -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq03_funcTbl[2] = {&daNpcCdn3_c::talka, NULL}; + if (m_path.setPath(getPathID(), fopAcM_GetRoomNo(this), 1, ¤t.pos, false)) { + setAction(MODE_PATH); + } else { + setAction(MODE_WAIT); + } -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq04_funcTbl[2] = {&daNpcCdn3_c::runb, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq05_funcTbl[4] = {&daNpcCdn3_c::turnr, &daNpcCdn3_c::waita, - &daNpcCdn3_c::talka, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq06_funcTbl[4] = {&daNpcCdn3_c::turnl, &daNpcCdn3_c::waita, - &daNpcCdn3_c::talka, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq07_funcTbl[2] = {&daNpcCdn3_c::waitwall, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq08_funcTbl[7] = { - &daNpcCdn3_c::talkwall, - &daNpcCdn3_c::waitwall, - &daNpcCdn3_c::talkbwall, - &daNpcCdn3_c::waitwall, - &daNpcCdn3_c::talkwall, - &daNpcCdn3_c::talkbwall, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq09_funcTbl[2] = {&daNpcCdn3_c::talkb, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq10_funcTbl[2] = {&daNpcCdn3_c::talkc, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq11_funcTbl[6] = {&daNpcCdn3_c::talka, &daNpcCdn3_c::waita, - &daNpcCdn3_c::talkb, &daNpcCdn3_c::waitb, - &daNpcCdn3_c::talkc, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq12_funcTbl[2] = {&daNpcCdn3_c::waitb, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq13_funcTbl[6] = { - &daNpcCdn3_c::browsea, &daNpcCdn3_c::browseb, &daNpcCdn3_c::talka, - &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq14_funcTbl[2] = {&daNpcCdn3_c::walkb, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq15_funcTbl[2] = {&daNpcCdn3_c::sitwaita, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq16_funcTbl[7] = { - &daNpcCdn3_c::sittalka, - &daNpcCdn3_c::sitwaita, - &daNpcCdn3_c::sittalkab, - &daNpcCdn3_c::sitwaita, - &daNpcCdn3_c::sittalka, - &daNpcCdn3_c::sittalkab, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq17_funcTbl[2] = { - &daNpcCdn3_c::playm, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq18_funcTbl[2] = {&daNpcCdn3_c::sitwaitb, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq19_funcTbl[7] = { - &daNpcCdn3_c::sittalkb, - &daNpcCdn3_c::sitwaitb, - &daNpcCdn3_c::sittalkbb, - &daNpcCdn3_c::sitwaitb, - &daNpcCdn3_c::sittalkb, - &daNpcCdn3_c::sittalkbb, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq20_funcTbl[2] = {&daNpcCdn3_c::looka, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq21_funcTbl[2] = {&daNpcCdn3_c::lookb, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq22_funcTbl[4] = {&daNpcCdn3_c::looka, &daNpcCdn3_c::lookb, - &daNpcCdn3_c::waita, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq23_funcTbl[7] = { - &daNpcCdn3_c::talka, - &daNpcCdn3_c::waita, - &daNpcCdn3_c::talkb, - &daNpcCdn3_c::waita, - &daNpcCdn3_c::talka, - &daNpcCdn3_c::talkb, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq24_funcTbl[5] = { - &daNpcCdn3_c::talkb, &daNpcCdn3_c::talka, &daNpcCdn3_c::talkc, &daNpcCdn3_c::waita, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq25_funcTbl[7] = { - &daNpcCdn3_c::browsea, - &daNpcCdn3_c::browseb, - &daNpcCdn3_c::talka, - &daNpcCdn3_c::talkb, - &daNpcCdn3_c::talkc, - &daNpcCdn3_c::waita, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq26_funcTbl[3] = { - &daNpcCdn3_c::browsea, - &daNpcCdn3_c::browseb, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq27_funcTbl[2] = {&daNpcCdn3_c::dance, NULL}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq28_funcTbl[3] = { - &daNpcCdn3_c::ladytalka, - &daNpcCdn3_c::normtalka, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq29_funcTbl[3] = { - &daNpcCdn3_c::ladytalkb, - &daNpcCdn3_c::normtalkb, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq30_funcTbl[6] = { - &daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::waita, - &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq31_funcTbl[6] = { - &daNpcCdn3_c::waita, &daNpcCdn3_c::ladytalkb, &daNpcCdn3_c::talka, - &daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq32_funcTbl[7] = { - &daNpcCdn3_c::talka, - &daNpcCdn3_c::ladytalka, - &daNpcCdn3_c::waita, - &daNpcCdn3_c::talkb, - &daNpcCdn3_c::waita, - &daNpcCdn3_c::normtalka, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq33_funcTbl[7] = { - &daNpcCdn3_c::waita, - &daNpcCdn3_c::ladytalkb, - &daNpcCdn3_c::talka, - &daNpcCdn3_c::waita, - &daNpcCdn3_c::talkb, - &daNpcCdn3_c::normtalkb, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq34_funcTbl[9] = { - &daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::ladytalkb, - &daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, - &daNpcCdn3_c::normtalka, &daNpcCdn3_c::normtalkb, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq35_funcTbl[2] = { - &daNpcCdn3_c::sellme, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq36_funcTbl[4] = { - &daNpcCdn3_c::ladytalkb, - &daNpcCdn3_c::talka, - &daNpcCdn3_c::waita, - NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq37_funcTbl[2] = { - &daNpcCdn3_c::sing, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq38_funcTbl[2] = { - &daNpcCdn3_c::sittalka, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq39_funcTbl[2] = { - &daNpcCdn3_c::sittalkab, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq40_funcTbl[3] = { - &daNpcCdn3_c::sittalka, &daNpcCdn3_c::sittalkab, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq41_funcTbl[2] = { - &daNpcCdn3_c::sittalkb, NULL, -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq42_funcTbl[2] = { - &daNpcCdn3_c::sittalkbb, NULL, - -}; - -daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq43_funcTbl[3] = { - &daNpcCdn3_c::sittalkb, &daNpcCdn3_c::sittalkbb, NULL, -}; + mpMorf->setMorf(0.0f); + field_0xb64 = current.pos.y = mAcch.GetGroundH(); + setMtx(); +} void daNpcCdn3_c::executeEscape() { if (field_0xb68 == 0) { @@ -1005,11 +854,19 @@ void daNpcCdn3_c::setSchedule(daTagSchedule_c* param_1) { } inline bool daNpcCdn3_c::isInShop() { - u8 rv = FALSE; - if (strcmp(dComIfGp_getStartStageName(), "R_SP160") == 0 && dComIfG_play_c::getLayerNo(0) <= 1) { - rv = TRUE; + return (bool)(strcmp(dComIfGp_getStartStageName(), "R_SP160") == 0 && dComIfG_play_c::getLayerNo(0) <= 1); +} + +inline bool daNpcCdn3_c::isOrchestra() { + if (strcmp(dComIfGp_getStartStageName(), "F_SP116") != 0) { + return false; + } else if (m_seqNum == 17 && (getType() == 4 || getType() == 5 || getType() == 6 || getType() == 16)) { + return true; + } else if (m_seqNum == 37 && getType() == 7) { + return true; + } else { + return false; } - return rv; } bool daNpcCdn3_c::isChairStyle() { @@ -1456,74 +1313,6 @@ int daNpcCdn3_c::sing(void* param_0) { return field_0xaa0 == 0; } -int daNpcCdn3_c::create() { - fopAcM_ct(this, daNpcCdn3_c); - mIsDarkWorld = dKy_darkworld_check(); - m_type = getType(); - mObjNum = getObjNum(); - m_seqNum = getSeqNum(); - mFlowNodeNum = getFlowNodeNum(); - if (m_seqNum < 0 || 44 <= m_seqNum) { - OSReport_Error("城下町の町人 マップツール設定値異常 引数1モーションシーケンス=%dが異常です。\n", m_seqNum); - JUT_ASSERT(175, FALSE); - } - int rv = loadResrc(m_type, mObjNum); - if (rv == cPhs_COMPLEATE_e) { - int msb = 0x80000000; - int heapSize = 0x2890; - heapSize |= msb; - if (fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize) == 0) { - OS_REPORT("アクター生成失敗しました!\n"); - return cPhs_ERROR_e; - } - create_init(); - } - return rv; -} - -void daNpcCdn3_c::create_init() { -#if DEBUG - l_Cd2_HIO.entryHIO("NPC(C級,D級)HighPoly"); -#endif - - gravity = -3.0f; - initTimeSchedule(); - fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); - fopAcM_setCullSizeBox(this, -40.0f, -10.0f, -40.0f, 40.0f, 190.0f, 40.0f); - mAcchCir.SetWall(Cd2_HIO_chkWallH(m_type), Cd2_HIO_chkWallR(m_type)); - mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, - fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); - mAcch.SetRoofNone(); - mAcch.SetWaterNone(); - mAcch.CrrPos(dComIfG_Bgsp()); - setEnvTevCol(); - setRoomNo(); - initCollision(); - if (strcmp(dComIfGp_getStartStageName(), "F_SP116") == 0 && - dComIfGp_getStartStageRoomNo() == 3 && getType() == 7) - { - attention_info.distances[fopAc_attn_SPEAK_e] = 0xda; - attention_info.distances[fopAc_attn_TALK_e] = 0xda; - } else { - attention_info.distances[fopAc_attn_SPEAK_e] = 0xd9; - attention_info.distances[fopAc_attn_TALK_e] = 0xd9; - } - - if (isInShop()) { - fopAcM_OnStatus(this, fopAcStts_UNK_0x4000_e); - } - - if (m_path.setPath(getPathID(), fopAcM_GetRoomNo(this), 1, ¤t.pos, false)) { - setAction(MODE_PATH); - } else { - setAction(MODE_WAIT); - } - - mpMorf->setMorf(0.0f); - field_0xb64 = current.pos.y = mAcch.GetGroundH(); - setMtx(); -} - void daNpcCdn3_c::setMtx() { mDoMtx_stack_c::transS(current.pos.x, field_0xb64, current.pos.z); mDoMtx_stack_c::YrotM(shape_angle.y); @@ -1711,6 +1500,232 @@ inline int daNpcCdn3_c::draw() { return 1; } +daNpcCdn3_c::seqFunc* daNpcCdn3_c::m_funcTbl[44] = { + m_seq00_funcTbl, m_seq01_funcTbl, + m_seq02_funcTbl, m_seq03_funcTbl, + m_seq04_funcTbl, m_seq05_funcTbl, + m_seq06_funcTbl, m_seq07_funcTbl, + m_seq08_funcTbl, m_seq09_funcTbl, + m_seq10_funcTbl, m_seq11_funcTbl, + m_seq12_funcTbl, m_seq13_funcTbl, + m_seq14_funcTbl, m_seq15_funcTbl, + m_seq16_funcTbl, m_seq17_funcTbl, + m_seq18_funcTbl, m_seq19_funcTbl, + m_seq20_funcTbl, m_seq21_funcTbl, + m_seq22_funcTbl, m_seq23_funcTbl, + m_seq24_funcTbl, m_seq25_funcTbl, + m_seq26_funcTbl, m_seq27_funcTbl, + m_seq28_funcTbl, m_seq29_funcTbl, + m_seq30_funcTbl, m_seq31_funcTbl, + m_seq32_funcTbl, m_seq33_funcTbl, + m_seq34_funcTbl, m_seq35_funcTbl, + m_seq36_funcTbl, m_seq37_funcTbl, + m_seq38_funcTbl, m_seq39_funcTbl, + m_seq40_funcTbl, m_seq41_funcTbl, + m_seq42_funcTbl, m_seq43_funcTbl, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq00_funcTbl[2] = {&daNpcCdn3_c::walka, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq01_funcTbl[2] = {&daNpcCdn3_c::runa, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq02_funcTbl[2] = {&daNpcCdn3_c::waita, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq03_funcTbl[2] = {&daNpcCdn3_c::talka, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq04_funcTbl[2] = {&daNpcCdn3_c::runb, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq05_funcTbl[4] = {&daNpcCdn3_c::turnr, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talka, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq06_funcTbl[4] = {&daNpcCdn3_c::turnl, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talka, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq07_funcTbl[2] = {&daNpcCdn3_c::waitwall, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq08_funcTbl[7] = { + &daNpcCdn3_c::talkwall, + &daNpcCdn3_c::waitwall, + &daNpcCdn3_c::talkbwall, + &daNpcCdn3_c::waitwall, + &daNpcCdn3_c::talkwall, + &daNpcCdn3_c::talkbwall, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq09_funcTbl[2] = {&daNpcCdn3_c::talkb, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq10_funcTbl[2] = {&daNpcCdn3_c::talkc, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq11_funcTbl[6] = {&daNpcCdn3_c::talka, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, &daNpcCdn3_c::waitb, + &daNpcCdn3_c::talkc, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq12_funcTbl[2] = {&daNpcCdn3_c::waitb, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq13_funcTbl[6] = { + &daNpcCdn3_c::browsea, &daNpcCdn3_c::browseb, &daNpcCdn3_c::talka, + &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq14_funcTbl[2] = {&daNpcCdn3_c::walkb, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq15_funcTbl[2] = {&daNpcCdn3_c::sitwaita, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq16_funcTbl[7] = { + &daNpcCdn3_c::sittalka, + &daNpcCdn3_c::sitwaita, + &daNpcCdn3_c::sittalkab, + &daNpcCdn3_c::sitwaita, + &daNpcCdn3_c::sittalka, + &daNpcCdn3_c::sittalkab, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq17_funcTbl[2] = { + &daNpcCdn3_c::playm, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq18_funcTbl[2] = {&daNpcCdn3_c::sitwaitb, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq19_funcTbl[7] = { + &daNpcCdn3_c::sittalkb, + &daNpcCdn3_c::sitwaitb, + &daNpcCdn3_c::sittalkbb, + &daNpcCdn3_c::sitwaitb, + &daNpcCdn3_c::sittalkb, + &daNpcCdn3_c::sittalkbb, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq20_funcTbl[2] = {&daNpcCdn3_c::looka, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq21_funcTbl[2] = {&daNpcCdn3_c::lookb, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq22_funcTbl[4] = {&daNpcCdn3_c::looka, &daNpcCdn3_c::lookb, + &daNpcCdn3_c::waita, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq23_funcTbl[7] = { + &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::talkb, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq24_funcTbl[5] = { + &daNpcCdn3_c::talkb, &daNpcCdn3_c::talka, &daNpcCdn3_c::talkc, &daNpcCdn3_c::waita, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq25_funcTbl[7] = { + &daNpcCdn3_c::browsea, + &daNpcCdn3_c::browseb, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::talkc, + &daNpcCdn3_c::waita, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq26_funcTbl[3] = { + &daNpcCdn3_c::browsea, + &daNpcCdn3_c::browseb, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq27_funcTbl[2] = {&daNpcCdn3_c::dance, NULL}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq28_funcTbl[3] = { + &daNpcCdn3_c::ladytalka, + &daNpcCdn3_c::normtalka, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq29_funcTbl[3] = { + &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::normtalkb, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq30_funcTbl[6] = { + &daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq31_funcTbl[6] = { + &daNpcCdn3_c::waita, &daNpcCdn3_c::ladytalkb, &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq32_funcTbl[7] = { + &daNpcCdn3_c::talka, + &daNpcCdn3_c::ladytalka, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::normtalka, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq33_funcTbl[7] = { + &daNpcCdn3_c::waita, + &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, + &daNpcCdn3_c::talkb, + &daNpcCdn3_c::normtalkb, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq34_funcTbl[9] = { + &daNpcCdn3_c::talka, &daNpcCdn3_c::ladytalka, &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::waita, &daNpcCdn3_c::talkb, &daNpcCdn3_c::waita, + &daNpcCdn3_c::normtalka, &daNpcCdn3_c::normtalkb, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq35_funcTbl[2] = { + &daNpcCdn3_c::sellme, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq36_funcTbl[4] = { + &daNpcCdn3_c::ladytalkb, + &daNpcCdn3_c::talka, + &daNpcCdn3_c::waita, + NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq37_funcTbl[2] = { + &daNpcCdn3_c::sing, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq38_funcTbl[2] = { + &daNpcCdn3_c::sittalka, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq39_funcTbl[2] = { + &daNpcCdn3_c::sittalkab, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq40_funcTbl[3] = { + &daNpcCdn3_c::sittalka, &daNpcCdn3_c::sittalkab, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq41_funcTbl[2] = { + &daNpcCdn3_c::sittalkb, NULL, +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq42_funcTbl[2] = { + &daNpcCdn3_c::sittalkbb, NULL, + +}; + +daNpcCdn3_c::seqFunc daNpcCdn3_c::m_seq43_funcTbl[3] = { + &daNpcCdn3_c::sittalkb, &daNpcCdn3_c::sittalkbb, NULL, +}; + static int daNpcCdn3_Create(void* i_this) { return static_cast(i_this)->create(); } diff --git a/src/d/actor/d_a_npc_chin.cpp b/src/d/actor/d_a_npc_chin.cpp index c362c718ea..f6f28ec2e8 100644 --- a/src/d/actor/d_a_npc_chin.cpp +++ b/src/d/actor/d_a_npc_chin.cpp @@ -150,6 +150,9 @@ daNpcChin_HIO_c::daNpcChin_HIO_c() { m = daNpcChin_Param_c::m; } +daNpcChin_HIO_c::~daNpcChin_HIO_c() { +} + void daNpcChin_HIO_c::genMessage(JORMContext* ctx) { daNpcF_commonGenMessage(ctx, &m.common); } @@ -1216,9 +1219,9 @@ bool daNpcChin_c::wait(void* param_0) { u16 eventMask = 0xffff; if (mOrderEvtNo == EVT_CHIN_APPEAR) { - // maybe fakematch? this still doesn't quite match for debug but it's closer + //TODO: maybe fakematch? #if PLATFORM_SHIELD - eventMask = eventMask & 0xff7f; + eventMask &= (u16)~0x80; #else eventMask &= ~0x80; #endif @@ -1360,6 +1363,8 @@ bool daNpcChin_c::demo(void* param_0) { Event_DT(); } + (void)0; + break; } default: { @@ -1434,6 +1439,8 @@ bool daNpcChin_c::watch_game(void* param_0) { } } + (void)0; + break; } default: { diff --git a/src/d/actor/d_a_npc_du.cpp b/src/d/actor/d_a_npc_du.cpp index 5a605916f6..7d62813ac7 100644 --- a/src/d/actor/d_a_npc_du.cpp +++ b/src/d/actor/d_a_npc_du.cpp @@ -98,13 +98,15 @@ static void anm_init(npc_du_class* i_this, int i_index, f32 i_morf, u8 i_mode, f static int nodeCallBack(J3DJoint* i_joint, int param_2) { if (param_2 == 0) { - int jntNo = i_joint->getJntNo(); + J3DJoint* joint = i_joint; + int jntNo = joint->getJntNo(); J3DModel* model = j3dSys.getModel(); npc_du_class* actor = (npc_du_class*)model->getUserArea(); + npc_du_class* actor_copy = actor; if (actor != NULL) { if (jntNo == JNT_NECK2) { MTXCopy(model->getAnmMtx(jntNo), *calc_mtx); - + cMtx_XrotM(*calc_mtx, actor->mNeck2XRot); model->setAnmMtx(jntNo, *calc_mtx); @@ -600,8 +602,8 @@ static int daNpc_Du_Delete(npc_du_class* i_this) { return 1; } -static int useHeapInit(fopAc_ac_c* actor) { - npc_du_class* i_this = (npc_du_class*)actor; +static int useHeapInit(fopAc_ac_c* i_actor) { + npc_du_class* i_this = (npc_du_class*)i_actor; i_this->mpMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("Npc_Du", 0xA), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("Npc_Du", 6), 0, 1.0f, 0, -1, 1, NULL, @@ -611,7 +613,7 @@ static int useHeapInit(fopAc_ac_c* actor) { } J3DModel* model = i_this->mpMorf->getModel(); - model->setUserArea((uintptr_t)actor); + model->setUserArea((uintptr_t)i_this); for (u16 i = 0; i < model->getModelData()->getJointNum(); i++) { model->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack); } @@ -632,45 +634,45 @@ static int useHeapInit(fopAc_ac_c* actor) { return 1; } -static cPhs_Step daNpc_Du_Create(fopAc_ac_c* a_this) { - npc_du_class* i_this = (npc_du_class*)a_this; - fopAcM_ct(a_this, npc_du_class); +static cPhs_Step daNpc_Du_Create(fopAc_ac_c* i_this) { + npc_du_class* du = (npc_du_class*)i_this; + fopAcM_ct(&du->actor, npc_du_class); - cPhs_Step phase = dComIfG_resLoad(&i_this->mPhase, "Npc_Du"); + cPhs_Step phase = dComIfG_resLoad(&du->mPhase, "Npc_Du"); if (phase == cPhs_COMPLEATE_e) { - OS_REPORT("NPC_DU PARAM %x\n", fopAcM_GetParam(a_this)); - i_this->arg0 = fopAcM_GetParam(a_this); - i_this->arg1 = (fopAcM_GetParam(a_this) & 0xFF00) >> 8; - i_this->mMsgFNo = a_this->current.angle.x; - a_this->current.angle.x = a_this->shape_angle.x = 0; + OS_REPORT("NPC_DU PARAM %x\n", fopAcM_GetParam(i_this)); + du->arg0 = fopAcM_GetParam(i_this); + du->arg1 = (fopAcM_GetParam(i_this) & 0xFF00) >> 8; + du->mMsgFNo = i_this->current.angle.x; + i_this->current.angle.x = i_this->shape_angle.x = 0; - if (i_this->arg0 == 1) { - i_this->mMsgFNo = 0x2EF; + if (du->arg0 == 1) { + du->mMsgFNo = 0x2EF; } else { - i_this->mMsgFNo = 0x2F0; + du->mMsgFNo = 0x2F0; } OS_REPORT("NPC_DU//////////////NPC_DU SET 1 !!\n"); - if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x1280)) { + if (!fopAcM_entrySolidHeap(i_this, useHeapInit, 0x1280)) { OS_REPORT("//////////////NPC_DU SET NON !!\n"); return cPhs_ERROR_e; } OS_REPORT("//////////////NPC_DU SET 2 !!\n"); if (!hio_set) { - i_this->mIsFirstSpawn = 1; + du->mIsFirstSpawn = 1; hio_set = true; l_HIO.id = mDoHIO_CREATE_CHILD("アヒル", &l_HIO); } - i_this->mAction = ACTION_NORMAL; + du->mAction = ACTION_NORMAL; - fopAcM_SetMtx(a_this, i_this->mpMorf->getModel()->getBaseTRMtx()); - i_this->mBgc.Set(fopAcM_GetPosition_p(a_this), fopAcM_GetOldPosition_p(a_this), a_this, 1, &i_this->mAcchCir, - fopAcM_GetSpeed_p(a_this), NULL, NULL); - i_this->mAcchCir.SetWall(20.0f, 25.0f); - i_this->mStts.Init(100, 0, a_this); + fopAcM_SetMtx(i_this, du->mpMorf->getModel()->getBaseTRMtx()); + du->mBgc.Set(fopAcM_GetPosition_p(i_this), fopAcM_GetOldPosition_p(i_this), i_this, 1, &du->mAcchCir, + fopAcM_GetSpeed_p(i_this), NULL, NULL); + du->mAcchCir.SetWall(20.0f, 25.0f); + du->mStts.Init(100, 0, i_this); static dCcD_SrcSph cc_sph_src = { { @@ -684,11 +686,11 @@ static cPhs_Step daNpc_Du_Create(fopAc_ac_c* a_this) { } // mSphAttr }; - i_this->mSph.Set(cc_sph_src); - i_this->mSph.SetStts(&i_this->mStts); - i_this->mFrameCounter = cM_rndF(65536.0f); - a_this->gravity = -5.0f; - daNpc_Du_Execute(i_this); + du->mSph.Set(cc_sph_src); + du->mSph.SetStts(&du->mStts); + du->mFrameCounter = cM_rndF(65536.0f); + i_this->gravity = -5.0f; + daNpc_Du_Execute(du); } return phase; diff --git a/src/d/actor/d_a_obj_movebox.cpp b/src/d/actor/d_a_obj_movebox.cpp index a63568b768..317827d640 100644 --- a/src/d/actor/d_a_obj_movebox.cpp +++ b/src/d/actor/d_a_obj_movebox.cpp @@ -17,12 +17,6 @@ #include "d/actor/d_a_player.h" #include "d/d_path.h" -#define ATTR_F32(x) (*((f32*)&attr().x)) -#define ATTR_S16(x) (*((s16*)&attr().x)) -// There are a lot of attr() problems in debug, -// they seem to be fixed by casting, like `((daObjMovebox::Attr_c*)&attr())->field` -// but sometimes breaks in release - #if DEBUG const char* const daObjMovebox::Hio_c::M_name[8] = { "押引・木・1.5m", // Push-pull type, wood, 1.5m @@ -36,36 +30,6 @@ const char* const daObjMovebox::Hio_c::M_name[8] = { }; #endif -const daObjMovebox::BgcSrc_c daObjMovebox::Bgc_c::M_lin5[] = { - {0.0f, 0.0f, 0.0f, 0.0f}, {-0.5f, -0.5f, 1.0f, 1.0f}, {0.5f, -0.5f, -1.0f, 1.0f}, - {0.5f, 0.5f, -1.0f, -1.0f}, {-0.5f, 0.5f, 1.0f, -1.0f}, -}; - -const daObjMovebox::BgcSrc_c daObjMovebox::Bgc_c::M_lin20[] = { - {0.0f, 0.0f, 0.0f, 0.0f}, {-0.25f, -0.25f, 0.0f, 0.0f}, {-0.5f, -0.5f, 1.0f, 1.0f}, - {0.0f, -0.5f, -1.0f, 1.0f}, {0.0f, 0.0f, -1.0f, -1.0f}, {-0.5f, 0.0f, 1.0f, -1.0f}, - {0.25f, -0.25f, 0.0f, 0.0f}, {0.0f, -0.5f, 1.0f, 1.0f}, {0.5f, -0.5f, -1.0f, 1.0f}, - {0.5f, 0.0f, -1.0f, -1.0f}, {0.0f, 0.0f, 1.0f, -1.0f}, {0.25f, 0.25f, 0.0f, 0.0f}, - {0.0f, 0.0f, 1.0f, 1.0f}, {0.5f, 0.0f, -1.0f, 1.0f}, {0.5f, 0.5f, -1.0f, -1.0f}, - {0.0f, 0.5f, 1.0f, -1.0f}, {-0.25f, 0.25f, 0.0f, 0.0f}, {-0.5f, 0.0f, 1.0f, 1.0f}, - {0.0f, 0.0f, -1.0f, 1.0f}, {0.0f, 0.5f, -1.0f, -1.0f}, {-0.5f, 0.5f, 1.0f, -1.0f}, - {-0.75f, 0.25f, 0.0f, 0.0f}, {-0.75f, -0.25f, 0.0f, 0.0f}, -}; - -daObjMovebox::Bgc_c::Bgc_c() { - for (int i = 0; i < 23; i++) { - field_0x0[i] = 0.0f; - field_0x64[i] = cXyz::Zero; - } - - field_0x5c = 0xFFFFFFFF; - field_0x178 = 0xFFFFFFFF; - field_0x17c = FLT_MAX; - field_0x60 = 0.0f; - mState = STATE_0_e; -} - - #if DEBUG namespace daObjMovebox { namespace { @@ -135,13 +99,42 @@ void daObjMovebox::Hio_c::genMessage(JORMContext* context) { #endif +const daObjMovebox::BgcSrc_c daObjMovebox::Bgc_c::M_lin5[] = { + {0.0f, 0.0f, 0.0f, 0.0f}, {-0.5f, -0.5f, 1.0f, 1.0f}, {0.5f, -0.5f, -1.0f, 1.0f}, + {0.5f, 0.5f, -1.0f, -1.0f}, {-0.5f, 0.5f, 1.0f, -1.0f}, +}; + +const daObjMovebox::BgcSrc_c daObjMovebox::Bgc_c::M_lin20[] = { + {0.0f, 0.0f, 0.0f, 0.0f}, {-0.25f, -0.25f, 0.0f, 0.0f}, {-0.5f, -0.5f, 1.0f, 1.0f}, + {0.0f, -0.5f, -1.0f, 1.0f}, {0.0f, 0.0f, -1.0f, -1.0f}, {-0.5f, 0.0f, 1.0f, -1.0f}, + {0.25f, -0.25f, 0.0f, 0.0f}, {0.0f, -0.5f, 1.0f, 1.0f}, {0.5f, -0.5f, -1.0f, 1.0f}, + {0.5f, 0.0f, -1.0f, -1.0f}, {0.0f, 0.0f, 1.0f, -1.0f}, {0.25f, 0.25f, 0.0f, 0.0f}, + {0.0f, 0.0f, 1.0f, 1.0f}, {0.5f, 0.0f, -1.0f, 1.0f}, {0.5f, 0.5f, -1.0f, -1.0f}, + {0.0f, 0.5f, 1.0f, -1.0f}, {-0.25f, 0.25f, 0.0f, 0.0f}, {-0.5f, 0.0f, 1.0f, 1.0f}, + {0.0f, 0.0f, -1.0f, 1.0f}, {0.0f, 0.5f, -1.0f, -1.0f}, {-0.5f, 0.5f, 1.0f, -1.0f}, + {-0.75f, 0.25f, 0.0f, 0.0f}, {-0.75f, -0.25f, 0.0f, 0.0f}, +}; + +daObjMovebox::Bgc_c::Bgc_c() { + for (int i = 0; i < 23; i++) { + field_0x0[i] = 0.0f; + field_0x64[i] = cXyz::Zero; + } + + field_0x5c = 0xFFFFFFFF; + field_0x178 = 0xFFFFFFFF; + field_0x17c = FLT_MAX; + field_0x60 = 0.0f; + mState = STATE_0_e; +} + dBgS_ObjGndChk daObjMovebox::Bgc_c::M_gnd_work[23]; void daObjMovebox::Bgc_c::gnd_pos(const daObjMovebox::Act_c* i_actor, const daObjMovebox::BgcSrc_c* i_bgcSrc, int i_checkNum, f32 param_3) { - cXyz sp50; - cXyz sp5C; + cXyz sp20; + cXyz sp14; f32 var_f31 = -G_CM3D_F_INF; mDoMtx_stack_c::transS(i_actor->current.pos); @@ -149,15 +142,15 @@ void daObjMovebox::Bgc_c::gnd_pos(const daObjMovebox::Act_c* i_actor, field_0x5c = -1; for (int i = 0; i < i_checkNum; i++, i_bgcSrc++) { - sp50.set(i_bgcSrc->field_0xc + i_bgcSrc->field_0x4 * i_actor->attr().field_0x70, param_3, + sp20.set(i_bgcSrc->field_0xc + i_bgcSrc->field_0x4 * i_actor->attr().mScaleXZ, param_3, i_bgcSrc->field_0x8 + i_bgcSrc->field_0x0 * i_actor->attr().field_0x78); - mDoMtx_stack_c::multVec(&sp50, &sp5C); - M_gnd_work[i].SetPos(&sp5C); + mDoMtx_stack_c::multVec(&sp20, &sp14); + M_gnd_work[i].SetPos(&sp14); M_gnd_work[i].SetActorPid(i_actor->base.base.id); field_0x0[i] = dComIfG_Bgsp().GroundCross(&M_gnd_work[i]); #if DEBUG - L_gnd_start[i_actor->mType][i].set(sp50); + L_gnd_start[i_actor->mType][i].set(sp14); L_gnd_flag[i_actor->mType][i] = 1; #endif if (field_0x0[i] > var_f31) { @@ -222,9 +215,9 @@ void daObjMovebox::Bgc_c::wall_pos(daObjMovebox::Act_c const* i_actor, mDoMtx_stack_c::YrotS(sp8C); mDoMtx_stack_c::transM(sp60); - mDoMtx_stack_c::scaleM(i_actor->attr().field_0x70, - i_actor->attr().field_0x64, - i_actor->attr().field_0x70); + mDoMtx_stack_c::scaleM(i_actor->attr().mScaleXZ, + i_actor->attr().mScaleY, + i_actor->attr().mScaleXZ); mDoMtx_stack_c::transM(0.0f, 0.5f, 0.0f); mDoMtx_stack_c::XrotM(0x4000); @@ -261,8 +254,8 @@ void daObjMovebox::Bgc_c::proc_vertical(daObjMovebox::Act_c* i_actor) { State_e var_r29 = mState; mState = STATE_0_e; - gnd_pos(i_actor, i_actor->attr().field_0x9e ? M_lin20 : M_lin5, - i_actor->attr().field_0x9e ? 21 : 5, 100.0f); + gnd_pos(i_actor, i_actor->attr().mUseLargeGrid ? M_lin20 : M_lin5, + i_actor->attr().mUseLargeGrid ? 21 : 5, 100.0f); if (field_0x5c >= 0 && field_0x0[field_0x5c] > i_actor->current.pos.y) { i_actor->current.pos.y = field_0x0[field_0x5c]; @@ -305,6 +298,7 @@ bool daObjMovebox::Bgc_c::chk_wall_pre(daObjMovebox::Act_c const* i_actor, bool daObjMovebox::Bgc_c::chk_wall_touch(daObjMovebox::Act_c const* i_actor, daObjMovebox::BgcSrc_c const* i_bgcSrc, s16 param_2) { static dBgS_ObjLinChk touch_work; + static const f32 bgc_add = 10.0f; const s16 sp8C = i_actor->home.angle.y + param_2; @@ -318,7 +312,7 @@ bool daObjMovebox::Bgc_c::chk_wall_touch(daObjMovebox::Act_c const* i_actor, mDoMtx_stack_c::XrotM(0x4000); sp50.set(i_bgcSrc->field_0xc, 0.0f, i_bgcSrc->field_0x8); mDoMtx_stack_c::multVec(&cXyz::BaseY, &sp68); - sp68 *= i_actor->attr().field_0x70 * 0.5f + 10.0f; + sp68 *= i_actor->attr().mScaleXZ * 0.5f + 10.0f; mDoMtx_stack_c::XrotM(0x4000); sp50.set(i_bgcSrc->field_0xc, 0.0f, i_bgcSrc->field_0x8); @@ -326,10 +320,10 @@ bool daObjMovebox::Bgc_c::chk_wall_touch(daObjMovebox::Act_c const* i_actor, mDoMtx_stack_c::YrotS(sp8C); mDoMtx_stack_c::transM(sp5C); - - mDoMtx_stack_c::scaleM(i_actor->attr().field_0x70, - i_actor->attr().field_0x64, - i_actor->attr().field_0x70); + + mDoMtx_stack_c::scaleM(i_actor->attr().mScaleXZ, + i_actor->attr().mScaleY, + i_actor->attr().mScaleXZ); mDoMtx_stack_c::transM(0.0f, 0.5f, 0.0f); mDoMtx_stack_c::XrotM(0x4000); @@ -436,77 +430,179 @@ const dCcD_SrcCyl daObjMovebox::Act_c::M_cyl_src = { } }; -// __declspec(section ".rodata") const daObjMovebox::Attr_c daObjMovebox::Act_c::M_attr[8] = { { - 0x6, 0xE, 0xA, 0x6, 0xE, 0xA, 75.0f, 90.0f, - -3.0f, 0.005f, 0.001f, 0.0f, 1.8f, 3.9f, -0.39f, -0.2f, - 0.02f, 1000, 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, - 0.075f, 4, 7, 0xC00, 150.0f, 150.0f, 0.0066666668f, 150.0f, - 0.0066666668f, 150.0f, 0x8013C, 0x8013D, 0x80151, 0x8002A, 0x8002D, {-90, -1}, - {-90, 90}, {151, 90}, 0, 0, 0, + // Timing + 6, 14, 10, 6, 14, 10, + // Misc + 75.0f, 90.0f, -3.0f, 0.005f, 0.001f, 0.0f, 1.8f, 3.9f, -0.39f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0xC00, + 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, + // Sound effects + Z2SE_OBJ_MOVE_WBLOCK, Z2SE_OBJ_MOVE_WBLOCK_LIMIT, Z2SE_OBJ_WBOX_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_M, JA_SE_OBJ_FALL_MAGMA_M, + // Cull + {-90, -1, -90, 90, 151, 90}, + // Flags + false, false, false }, { - 0x8, 0x13, 0xD, 0x8, 0x13, 0xD, 75.0f, 90.0f, - -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, - 0.02f, 1000, 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, - 0.075f, 4, 7, 0xC00, 150.0f, 150.0f, 0.0066666668f, 150.0f, - 0.0066666668f, 150.0f, 0x20038, 0x20039, 0x8002F, 0x8002B, 0x8002E, {-90, -1}, - {-90, 90}, {151, 90}, 0, 0, 0, + // Timing + 8, 19, 13, 8, 19, 13, + // Misc + 75.0f, 90.0f, -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0xC00, + 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, + // Sound effects + JA_SE_LK_MOVE_ROCK, JA_SE_LK_MOVE_ROCK_LIMIT, JA_SE_OBJ_BLOCK_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_L, JA_SE_OBJ_FALL_MAGMA_L, + // Cull + {-90, -1, -90, 90, 151, 90}, + // Flags + false, false, false }, { - 0x8, 0x13, 0xD, 0x8, 0x13, 0xD, 50.0f, 110.0f, -5.0f, - 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, 0.02f, 1000, - 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, 4, 7, - 0x1000, 200.0f, 200.0f, 0.005f, 200.0f, 0.005f, 200.0f, 0x80154, 0x80155, - 0x8002F, 0x8002B, 0x8002E, {-110, -1}, {-110, 110}, {210, 110}, 0, 1, 0, + // Timing + 8, 19, 13, 8, 19, 13, + // Misc + 50.0f, 110.0f, -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0x1000, + 200.0f, 200.0f, 1 / 200.0f, 200.0f, 1.0f / 200.0f, 200.0f, + // Sound effects + Z2SE_OBJ_MOVE_ROCK, Z2SE_OBJ_MOVE_ROCK_LIMIT, JA_SE_OBJ_BLOCK_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_L, JA_SE_OBJ_FALL_MAGMA_L, + // Cull + {-110, -1, -110, 110, 210, 110}, + // Flags + false, true, false }, { - 0x8, 0x13, 0xD, 0x8, 0x13, 0xD, 75.0f, 180.0f, - -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, - 0.02f, 1000, 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, - 0.075f, 4, 7, 0xC00, 300.0f, 300.0f, 0.0033333334f, 300.0f, - 0.0033333334f, 300.0f, 0x20038, 0x20039, 0x8002F, 0x8002B, 0x8002E, {-180, -1}, - {-180, 180}, {310, 180}, 0, 0, 0, + // Timing + 8, 19, 13, 8, 19, 13, + // Misc + 75.0f, 180.0f, -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0xC00, + 300.0f, 300.0f, 1.0f / 300.0f, 300.0f, 1.0f / 300.0f, 300.0f, + // Sound effects + JA_SE_LK_MOVE_ROCK, JA_SE_LK_MOVE_ROCK_LIMIT, JA_SE_OBJ_BLOCK_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_L, JA_SE_OBJ_FALL_MAGMA_L, + // Cull + {-180, -1, -180, 180, 310, 180}, + // Flags + false, false, false }, { - 0x8, 0x13, 0xD, 0x8, 0x13, 0xD, 75.0f, 180.0f, - -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, - 0.02f, 1000, 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, - 0.075f, 4, 7, 0x2670, 300.0f, 300.0f, 0.0033333334f, 300.0f, - 0.0033333334f, 300.0f, 0x20038, 0x20039, 0x8002F, 0x8002B, 0x8002E, {-180, -1}, - {-180, 180}, {310, 180}, 0, 0, 0, + // Timing + 8, 19, 13, 8, 19, 13, + // Misc + 75.0f, 180.0f, -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0x2670, + 300.0f, 300.0f, 1.0f / 300.0f, 300.0f, 1.0f / 300.0f, 300.0f, + // Sound effects + JA_SE_LK_MOVE_ROCK, JA_SE_LK_MOVE_ROCK_LIMIT, JA_SE_OBJ_BLOCK_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_L, JA_SE_OBJ_FALL_MAGMA_L, + // Cull + {-180, -1, -180, 180, 310, 180}, + // Flags + false, false, false }, { - 0x8, 0x13, 0xD, 0x8, 0x13, 0xD, 75.0f, 90.0f, - -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, - 0.02f, 1000, 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, - 0.075f, 4, 7, 0xC00, 150.0f, 150.0f, 0.0066666668f, 150.0f, - 0.0066666668f, 150.0f, 0x20038, 0x20039, 0x8002F, 0x8002B, 0x8002E, {-90, -1}, - {-90, 90}, {360, 90}, 0, 0, 0, + // Timing + 8, 19, 13, 8, 19, 13, + // Misc + 75.0f, 90.0f, -5.0f, 0.005f, 0.001f, 0.0f, 1.8f, 4.5f, -0.5f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0xC00, + 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, + // Sound effects + JA_SE_LK_MOVE_ROCK, JA_SE_LK_MOVE_ROCK_LIMIT, JA_SE_OBJ_BLOCK_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_L, JA_SE_OBJ_FALL_MAGMA_L, + // Cull + {-90, -1, -90, 90, 360, 90}, + // Flags + false, false, false }, { - 0x8, 0x13, 0xD, 0x8, 0x13, 0xD, 50.0f, 90.0f, -3.0f, - 0.005f, 0.001f, 0.0f, 1.8f, 3.9f, -0.39f, -0.2f, 0.02f, 1000, - 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, 4, 7, - 0x1620, 200.0f, 200.0f, 0.005f, 230.0f, 0.0043478259f, 100.0f, 0x8013C, 0x8013D, - 0x80151, 0x8002A, 0x8002D, {-130, -10}, {-60, 130}, {210, 60}, 0, 1, 0, + // Timing + 8, 19, 13, 8, 19, 13, + // Misc + 50.0f, 90.0f, -3.0f, 0.005f, 0.001f, 0.0f, 1.8f, 3.9f, -0.39f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0x1620, + 200.0f, 200.0f, 1 / 200.0f, 230.0f, 1.0f / 230.0f, 100.0f, + // Sound effects + Z2SE_OBJ_MOVE_WBLOCK, Z2SE_OBJ_MOVE_WBLOCK_LIMIT, Z2SE_OBJ_WBOX_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_M, JA_SE_OBJ_FALL_MAGMA_M, + // Cull + {-130, -10, -60, 130, 210, 60}, + // Flags + false, true, false }, { - 0x4, 0x4, 0x14, 0x4, 0x4, 0x14, 75.0f, 90.0f, - -3.0f, 0.005f, 0.001f, 0.0f, 1.8f, 3.9f, -0.39f, -0.2f, - 0.02f, 1000, 0.04f, 0.013f, 0.15f, 0.1f, 0.1f, 0.06f, - 0.075f, 4, 7, 0x1620, 150.0f, 150.0f, 0.0066666668f, 150.0f, - 0.0066666668f, 150.0f, 0x8013C, 0x8013D, 0x80151, 0x8002A, 0x8002D, {-90, -1}, - {-90, 90}, {151, 90}, 0, 0, 0, + // Timing + 4, 4, 20, 4, 4, 20, + // Misc + 75.0f, 90.0f, -3.0f, 0.005f, 0.001f, 0.0f, 1.8f, 3.9f, -0.39f, -0.2f, + // Water + 0.02f, 1000, 0.04f, 0.013f, + // Tilt + 0.15f, 0.1f, 0.1f, 0.06f, 0.075f, + // Scales/Limits + 4, 7, 0x1620, + 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, 1.0f / 150.0f, 150.0f, + // Sound effects + Z2SE_OBJ_MOVE_WBLOCK, Z2SE_OBJ_MOVE_WBLOCK_LIMIT, Z2SE_OBJ_WBOX_FALL_NORMAL, + Z2SE_OBJ_FALL_WATER_M, JA_SE_OBJ_FALL_MAGMA_M, + // Cull + {-90, -1, -90, 90, 151, 90}, + // Flags + false, false, false }, }; -const inline daObjMovebox::Attr_c& daObjMovebox::Act_c::attr() const { -#if DEBUG - return daObjMovebox::Act_c::M_hio[mType].mAttr; +// see comment in header +#if PLATFORM_GCN +inline const daObjMovebox::Attr_c& daObjMovebox::Act_c::attr() const { #else - return M_attr[mType]; +inline daObjMovebox::Attr_c& daObjMovebox::Act_c::attr() const { +#endif +#if DEBUG + return M_hio[mType].mAttr; +#else + return const_cast(M_attr[mType]); #endif } @@ -630,9 +726,9 @@ void daObjMovebox::Act_c::path_save() { int daObjMovebox::Act_c::CreateHeap() { BOOL var_r29 = true; - if (attr().field_0x58 >= 0) { + if (attr().mModelResIdx >= 0) { J3DModelData* modelData = - (J3DModelData*)dComIfG_getObjectRes(M_arcname[mType], attr().field_0x58); + (J3DModelData*)dComIfG_getObjectRes(M_arcname[mType], attr().mModelResIdx); JUT_ASSERT(1403, modelData != NULL); mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); @@ -662,14 +758,14 @@ void daObjMovebox::Act_c::RideCallBack(dBgW* i_bgw, fopAc_ac_c* i_actor, fopAc_a if (fopAcM_GetProfName(i_rideActor) == fpcNm_ALINK_e) { var_f30 = a_this->attr().mPlayerGravity; - var_f27 = a_this->attr().field_0x74 * a_this->attr().mPlayerTiltPower; + var_f27 = a_this->attr().mTiltForceScale * a_this->attr().mPlayerTiltPower; } else { var_f30 = a_this->attr().mMiscGravity; - var_f27 = a_this->attr().field_0x74 * a_this->attr().mMiscTiltPower; + var_f27 = a_this->attr().mTiltForceScale * a_this->attr().mMiscTiltPower; } var_f31 = 1.0f - (JMAFastSqrt(var_f29 * var_f29 + var_f28 * var_f28) * - a_this->attr().field_0x74); + a_this->attr().mTiltForceScale); var_f31 = (var_f31 * 0.9f) + 0.1f; if (var_f31 < 0.0f) { var_f31 = 0.0f; @@ -698,26 +794,28 @@ enum MOVE_DIR { }; fopAc_ac_c* daObjMovebox::Act_c::PPCallBack(fopAc_ac_c* i_bgActor, fopAc_ac_c* i_pushActor, - s16 i_angle, dBgW_Base::PushPullLabel pp_label) { + s16 i_angle, dBgW_Base::PushPullLabel i_pp_label) { UNUSED(i_pushActor); - dBgW::PushPullLabel var_r26 = cLib_checkBit( - pp_label, (dBgW::PushPullLabel)(dBgW::PPLABEL_PUSH | dBgW::PPLABEL_PULL)); + static const int pp_field = 3; + + dBgW::PushPullLabel pp_label = cLib_checkBit( + i_pp_label, (dBgW::PushPullLabel)(dBgW::PPLABEL_PUSH | dBgW::PPLABEL_PULL)); Act_c* a_this = (Act_c*)i_bgActor; bool sp_e = - a_this->attr().field_0x9e ? - (cLib_checkBit(pp_label, dBgW::PPLABEL_HEAVY) ? true : false) : + a_this->attr().mUseLargeGrid ? + (cLib_checkBit(i_pp_label, dBgW::PPLABEL_HEAVY) ? true : false) : true; - if (var_r26 && sp_e) { + if (pp_label && sp_e) { s16 sp10 = - cLib_checkBit(var_r26, dBgW::PPLABEL_PULL) ? i_angle - 0x8000 : i_angle; + cLib_checkBit(pp_label, dBgW::PPLABEL_PULL) ? i_angle - 0x8000 : i_angle; s16 dir = sp10 - a_this->home.angle.y; JUT_ASSERT(1499, pp_label != pp_field); - a_this->mPPLabel = pp_label; + a_this->mPPLabel = i_pp_label; int move_dir; if (dir >= -0x2000 && dir < 0x2000) { move_dir = DIR_SOUTH; @@ -778,10 +876,10 @@ int daObjMovebox::Act_c::Create() { fopAcM_SetMtx(this, mBgMtx); - fopAcM_setCullSizeBox(this, attr().mCullX.min, attr().mCullX.max, attr().mCullY.min, - attr().mCullY.max, attr().mCullZ.min, attr().mCullZ.max); + fopAcM_setCullSizeBox(this, attr().mCull.xMin, attr().mCull.xMax, attr().mCull.yMin, + attr().mCull.yMax, attr().mCull.zMin, attr().mCull.zMax); fopAcM_SetSpeedF(this, 0.0f); - fopAcM_SetGravity(this, ATTR_F32(mGravity)); + fopAcM_SetGravity(this, attr().mGravity); fopAcM_posMoveF(this, NULL); mBgc.proc_vertical(this); @@ -820,17 +918,13 @@ int daObjMovebox::Act_c::Create() { void daObjMovebox::Act_c::afl_sway() { bool var_r22; bool var_r21; - + f32 var_f31 = field_0x8c0 * field_0x8c0 + field_0x8c4 * field_0x8c4; f32 var_f29 = attr().mMaxTiltPower * attr().mMaxTiltPower; - const BgcSrc_c* pbgc; - if (attr().field_0x9e) { - pbgc = mBgc.M_lin20; - } else { - pbgc = mBgc.M_lin5; - } - s32 check_num = attr().field_0x9e ? 21 : 5; + //TODO: possible fakematch, the const_cast is very suspicious + BgcSrc_c* pbgc = const_cast(attr().mUseLargeGrid ? mBgc.M_lin20 : mBgc.M_lin5); + s32 check_num = attr().mUseLargeGrid ? 21 : 5; var_r22 = mBgc.chk_wall_touch2(this, pbgc, check_num, M_dir_base[0]) || mBgc.chk_wall_touch2(this, pbgc, check_num, M_dir_base[2]); @@ -900,8 +994,8 @@ int daObjMovebox::Act_c::check_to_walk() { for (int i = 0; i < 4; i++) { if (field_0x8f0[i] >= (s16)var_r28) { - const BgcSrc_c* pbgc = attr().field_0x9e ? mBgc.M_lin20 : mBgc.M_lin5; - int check_num = attr().field_0x9e ? 21 : 5; + const BgcSrc_c* pbgc = attr().mUseLargeGrid ? mBgc.M_lin20 : mBgc.M_lin5; + int check_num = attr().mUseLargeGrid ? 21 : 5; if (!mBgc.chk_wall_pre(this, pbgc, check_num, M_dir_base[i])) { var_r27 = i; @@ -950,7 +1044,7 @@ void daObjMovebox::Act_c::eff_smoke_slip_start() { void daObjMovebox::Act_c::mode_wait_init() { fopAcM_SetSpeedF(this, 0.0f); - fopAcM_SetGravity(this, ATTR_F32(mGravity)); + fopAcM_SetGravity(this, attr().mGravity); mpBgW->SetCrrFunc(dBgS_MoveBGProc_Trans); clr_moment_cnt(); field_0x8e8 = -1; @@ -970,8 +1064,8 @@ void daObjMovebox::Act_c::mode_wait() { path_save(); } - daObj::posMoveF_stream(this, NULL, &cXyz::Zero, ATTR_F32(mViscosityResistance), - ATTR_F32(mInertiaResistance)); + daObj::posMoveF_stream(this, NULL, &cXyz::Zero, attr().mViscosityResistance, + attr().mInertiaResistance); cXyz sp48; mDoMtx_stack_c::transS(home.pos); @@ -991,10 +1085,10 @@ void daObjMovebox::Act_c::mode_wait() { mode_walk_init(); if (cLib_checkBit(mPPLabel, dBgW::PPLABEL_PULL)) { - field_0x8f8 = ATTR_S16(mPullMoveTime); + field_0x8f8 = attr().mPullMoveTime; field_0x8e4 = 32768.0f / attr().mPullMoveTime; } else { - field_0x8f8 = ATTR_S16(mPushMoveTime); + field_0x8f8 = attr().mPushMoveTime; field_0x8e4 = 32768.0f / attr().mPushMoveTime; } } @@ -1032,16 +1126,16 @@ void daObjMovebox::Act_c::mode_walk() { sound_slip(); if (var_r28) { - const BgcSrc_c* pbgc = attr().field_0x9e ? mBgc.M_lin20 : mBgc.M_lin5; - int check_num = attr().field_0x9e ? 21 : 5; + const BgcSrc_c* pbgc = attr().mUseLargeGrid ? mBgc.M_lin20 : mBgc.M_lin5; + int check_num = attr().mUseLargeGrid ? 21 : 5; if (mBgc.chk_wall_pre(this, pbgc, check_num, M_dir_base[field_0x8e8])) { sound_limit(); } } - daObj::posMoveF_stream(this, NULL, &cXyz::Zero, ATTR_F32(mViscosityResistance), - ATTR_F32(mInertiaResistance)); + daObj::posMoveF_stream(this, NULL, &cXyz::Zero, attr().mViscosityResistance, + attr().mInertiaResistance); current.pos.x = sp78.x; current.pos.z = sp78.z; @@ -1080,7 +1174,7 @@ void daObjMovebox::Act_c::mode_afl() { } else if (var_f30 <= -attr().field_0x68) { var_f31 = 1.0f; } else { - var_f31 = -var_f30 * attr().field_0x6c; + var_f31 = -var_f30 * attr().mWaterBobScale; } S16_ADD(field_0x8b8, attr().mWaterOscillationAngleSpeed * (cM_rnd() + 1.0f)); @@ -1114,7 +1208,7 @@ static void dummy() { void daObjMovebox::Act_c::mode_proc_call() { typedef void (daObjMovebox::Act_c::*modeFunc)(); - static modeFunc mode_proc[] = { + static const modeFunc mode_proc[] = { &daObjMovebox::Act_c::mode_wait, &daObjMovebox::Act_c::mode_walk, &daObjMovebox::Act_c::mode_afl, @@ -1133,7 +1227,7 @@ void daObjMovebox::Act_c::sound_slip() { } } - mDoAud_seStartLevel(attr().field_0x7c, &eyePos, var_r29, mReverb); + mDoAud_seStartLevel(attr().mSoundSlip, &eyePos, var_r29, mReverb); } void daObjMovebox::Act_c::sound_limit() { @@ -1146,7 +1240,7 @@ void daObjMovebox::Act_c::sound_limit() { } } - mDoAud_seStart(attr().field_0x80, &eyePos, var_r29, mReverb); + mDoAud_seStart(attr().mSoundLimit, &eyePos, var_r29, mReverb); } void daObjMovebox::Act_c::sound_land() { @@ -1159,7 +1253,7 @@ void daObjMovebox::Act_c::sound_land() { } } - mDoAud_seStart(attr().field_0x84, &eyePos, var_r29, mReverb); + mDoAud_seStart(attr().mSoundLand, &eyePos, var_r29, mReverb); } void daObjMovebox::Act_c::vib_land() { @@ -1171,10 +1265,10 @@ f32 dummy_literal(f32 x) { } void daObjMovebox::Act_c::eff_land_smoke() { - daObjEff::Act_c::make_land_smoke(¤t.pos, ATTR_F32(mLandSmokeScale)); + daObjEff::Act_c::make_land_smoke(¤t.pos, attr().mLandSmokeScale); } -void dummy_static() { +void daObjMovebox::Act_c::eff_break() { static cXyz particle_scale; } @@ -1235,7 +1329,7 @@ int daObjMovebox::Act_c::Execute(Mtx** param_0) { if (cLib_checkBit(mBgc.mState, daObjMovebox::Bgc_c::STATE_20_e)) { - mDoAud_seStart(attr().field_0x88, &eyePos, 0, mReverb); + mDoAud_seStart(attr().mSoundFallWater, &eyePos, 0, mReverb); } if (field_0x5ac == 0) { @@ -1305,13 +1399,13 @@ int daObjMovebox::Act_c::Draw() { dComIfGd_setList(); } - if (attr().field_0x9d == 0 && mBgc.field_0x5c >= 0) { + if (attr().mDisableShadow == 0 && mBgc.field_0x5c >= 0) { int index = mBgc.field_0x5c; f32 var_f31 = mBgc.field_0x0[index]; cM3dGPla sp40; bool b = dComIfG_Bgsp().GetTriPla(mBgc.M_gnd_work[index], &sp40); if (b && var_f31 != -G_CM3D_F_INF) { - dComIfGd_setSimpleShadow(¤t.pos, var_f31, ATTR_F32(mShadowSize), &sp40.mNormal, + dComIfGd_setSimpleShadow(¤t.pos, var_f31, attr().mShadowSize, &sp40.mNormal, shape_angle.y, -0.4f, NULL); } } @@ -1365,12 +1459,12 @@ int daObjMovebox::Act_c::Mthd_Create() { int phase_state = dComIfG_resLoad(&mPhase, M_arcname[mType]); if (phase_state == cPhs_COMPLEATE_e) { - u32 heap_size = attr().field_0x60; + u32 heap_size = attr().mHeapSize; path_init(); - phase_state = MoveBGCreate(M_arcname[mType], attr().field_0x5c, dBgS_MoveBGProc_Trans, + phase_state = MoveBGCreate(M_arcname[mType], attr().mMoveBGIdx, dBgS_MoveBGProc_Trans, heap_size, NULL); - JUT_ASSERT(0, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e)); + JUT_ASSERT(1663, (phase_state == cPhs_COMPLEATE_e) || (phase_state == cPhs_ERROR_e)); } return phase_state; diff --git a/src/d/actor/d_a_tag_attack_item.cpp b/src/d/actor/d_a_tag_attack_item.cpp index d07d511934..3c61256e3b 100644 --- a/src/d/actor/d_a_tag_attack_item.cpp +++ b/src/d/actor/d_a_tag_attack_item.cpp @@ -37,6 +37,11 @@ static dCcD_SrcCyl l_cyl_src = { }; #if DEBUG +daTagAtkItem_HIO_c::daTagAtkItem_HIO_c() { + field_0x8 = 0.0f; + show_range = 0; +} + void daTagAtkItem_HIO_c::genMessage(JORMContext* ctx) { // "Attack reaction item" ctx->genLabel("攻撃反応アイテム", 0); @@ -61,11 +66,6 @@ int daTagAtkItem_c::Create() { return 1; } -daTagAtkItem_HIO_c::daTagAtkItem_HIO_c() { - field_0x8 = 0.0f; - show_range = 0; -} - int daTagAtkItem_c::create() { fopAcM_ct(this, daTagAtkItem_c); diff --git a/src/d/actor/d_a_tag_attention.cpp b/src/d/actor/d_a_tag_attention.cpp index 339818c772..a0b8bf0339 100644 --- a/src/d/actor/d_a_tag_attention.cpp +++ b/src/d/actor/d_a_tag_attention.cpp @@ -13,6 +13,11 @@ #if DEBUG daAttp_HIO_c l_HIO; +daAttp_HIO_c::daAttp_HIO_c() { + type_spec = 0; + dist_max = dist_max_release = dist_adjust = upper_y = lower_y = 0.0f; +} + void daAttp_HIO_c::genMessage(JORMContext* ctx) { static const char* l_type_name[37] = { "注目なし - ダミー", // No focus - dummy @@ -258,11 +263,6 @@ int daAttp_c::_delete() { return 1; } -daAttp_HIO_c::daAttp_HIO_c() { - type_spec = 0; - dist_max = dist_max_release = dist_adjust = upper_y = lower_y = 0.0f; -} - static int daAttp_Draw(daAttp_c* i_this) { return i_this->draw(); } @@ -273,13 +273,13 @@ static int daAttp_Execute(daAttp_c* i_this) { } static int daAttp_Delete(daAttp_c* i_this) { - fpc_ProcID id = fopAcM_GetID(i_this); + fopAcM_RegisterDeleteID(i_this, "Attp"); return i_this->_delete(); } static int daAttp_Create(fopAc_ac_c* i_this) { daAttp_c* attp = static_cast(i_this); - fpc_ProcID id = fopAcM_GetID(i_this); + fopAcM_RegisterCreateID(i_this, "Attp"); return attp->create(); } diff --git a/src/d/actor/d_a_tag_camera.cpp b/src/d/actor/d_a_tag_camera.cpp index a25e1a942f..ce5a929c9c 100644 --- a/src/d/actor/d_a_tag_camera.cpp +++ b/src/d/actor/d_a_tag_camera.cpp @@ -136,9 +136,11 @@ u16 daTag_Cam_c::getAreaNoChk() { return home.angle.z & 0x200; } +#if PLATFORM_GCN static u8 const lit_3874[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; +#endif int daTag_Cam_c::create() { fopAcM_ct(this, daTag_Cam_c); diff --git a/src/d/actor/d_a_tag_hjump.cpp b/src/d/actor/d_a_tag_hjump.cpp index 7f57cbcf44..36613aaaee 100644 --- a/src/d/actor/d_a_tag_hjump.cpp +++ b/src/d/actor/d_a_tag_hjump.cpp @@ -26,6 +26,11 @@ static char const l_arcName[] = "Hfence"; #if DEBUG daTagHjump_HIO_c l_HIO; +daTagHjump_HIO_c::daTagHjump_HIO_c() { + height = 350.0f; + depth = 400.0f; +} + void daTagHjump_HIO_c::genMessage(JORMContext* ctx) { ctx->genSlider("高さ", &height, 0.0f, 500.0f); ctx->genSlider("奥行き", &depth, 0.0f, 1000.0f); @@ -109,11 +114,6 @@ int daTagHjump_c::create() { return phase; } -daTagHjump_HIO_c::daTagHjump_HIO_c() { - height = 350.0f; - depth = 400.0f; -} - static int daTagHjump_Create(fopAc_ac_c* i_this) { daTagHjump_c* hJump = static_cast(i_this); int id = fopAcM_GetID(i_this); diff --git a/src/d/actor/d_a_ykgr.cpp b/src/d/actor/d_a_ykgr.cpp index dbbb12d215..980da689f5 100644 --- a/src/d/actor/d_a_ykgr.cpp +++ b/src/d/actor/d_a_ykgr.cpp @@ -198,7 +198,13 @@ inline int daYkgr_c::_execute() { if (m_alpha_flag == 0) { if (m_alpha > 0) { if (m_alpha > l_HIO.field_0xc) { - m_alpha = m_alpha - l_HIO.field_0xc; + // this doesn't feel right but it looks an awful lot + // like the cast only exists in Shield+ShieldD +#if PLATFORM_SHIELD + m_alpha -= (u8)l_HIO.field_0xc; +#else + m_alpha -= l_HIO.field_0xc; +#endif } else { m_alpha = 0; } @@ -206,7 +212,11 @@ inline int daYkgr_c::_execute() { } else { if (m_alpha < 0xff) { if (m_alpha < 0xff - l_HIO.field_0xc) { - m_alpha = m_alpha + l_HIO.field_0xc; +#if PLATFORM_SHIELD + m_alpha += (u8)l_HIO.field_0xc; +#else + m_alpha += l_HIO.field_0xc; +#endif } else { m_alpha = 0xff; } @@ -235,10 +245,12 @@ void daYkgr_c::set_mtx() { MTXCopy(mDoMtx_stack_c::get(), field_0x570); } -inline int daYkgr_c::_draw() { - bool rv; +// typically we would expect an int return type, but debug seems to indicate this returns a bool +inline bool daYkgr_c::_draw() { f32 alpha = 255.0f; if (strcmp(dComIfGp_getStartStageName(), "D_MN04A") == 0) { + int dummy; // force stack pointer into r31 on debug + alpha = dComIfGs_BossLife_public_Get() / 100.0f; m_alpha = alpha * 255.0f; if (m_alpha == 0) { @@ -246,7 +258,7 @@ inline int daYkgr_c::_draw() { } } if (m_alpha == 0) { - rv = true; + return true; } else { set_mtx(); if (m_emitter != NULL) { @@ -258,9 +270,8 @@ inline int daYkgr_c::_draw() { m_emitter->setGlobalAlpha(m_alpha); } } - rv = true; + return true; } - return rv; } static int daYkgrDraw(void* i_this) {