summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-12-24 12:36:01 +0200
committerGitHub <noreply@github.com>2024-12-24 02:36:01 -0800
commitd874f05f44b97c6852867453394e2308d771f86a (patch)
tree924e93151a89c32be37b655f40cfa2a90e91e52b
parente0ea8495f78feb83aaba7700f668fc3d52405c1d (diff)
d_a_obj_wsStick, d_a_obj_onsenTaru OK (#2268)
* d_a_obj_wsStick, d_a_obj_onsenTaru OK * d_a_obj_pdtile OK * d_a_obj_stone equivalent * d_a_npc_lf OK * Z2SoundMgr OK * Remove fixed nonmatching comment * d_a_obj_kantera OK * Remove unneeded header * daMyna_c::deleteItem matching * d_a_obj_crvsteel OK
-rw-r--r--config/GZ2E01/rels/d_a_npc_lf/symbols.txt20
-rw-r--r--config/GZ2E01/rels/d_a_obj_crvsteel/symbols.txt14
-rw-r--r--config/GZ2E01/rels/d_a_obj_kantera/symbols.txt16
-rw-r--r--config/GZ2E01/rels/d_a_obj_onsenTaru/symbols.txt16
-rw-r--r--config/GZ2E01/rels/d_a_obj_pdtile/symbols.txt40
-rw-r--r--config/GZ2E01/rels/d_a_obj_stone/symbols.txt64
-rw-r--r--config/GZ2E01/rels/d_a_obj_wdStick/symbols.txt16
-rw-r--r--configure.py16
-rw-r--r--include/JSystem/JAudio2/JAISound.h2
-rw-r--r--include/SSystem/SComponent/c_cc_d.h1
-rw-r--r--include/Z2AudioLib/Z2Audience.h4
-rw-r--r--include/d/actor/d_a_npc_lf.h4
-rw-r--r--include/d/actor/d_a_obj_crvsteel.h32
-rw-r--r--include/d/actor/d_a_obj_kantera.h2
-rw-r--r--include/d/actor/d_a_obj_pdtile.h57
-rw-r--r--include/d/actor/d_a_obj_stone.h11
-rw-r--r--include/d/actor/d_a_obj_wdStick.h69
-rw-r--r--include/d/actor/d_a_player.h1
-rw-r--r--src/Z2AudioLib/Z2SeMgr.cpp19
-rw-r--r--src/Z2AudioLib/Z2SoundMgr.cpp4
-rw-r--r--src/Z2AudioLib/Z2WolfHowlMgr.cpp2
-rw-r--r--src/d/actor/d_a_e_oct_bg.cpp2
-rw-r--r--src/d/actor/d_a_myna.cpp8
-rw-r--r--src/d/actor/d_a_npc_lf.cpp158
-rw-r--r--src/d/actor/d_a_obj_crvsteel.cpp386
-rw-r--r--src/d/actor/d_a_obj_kantera.cpp339
-rw-r--r--src/d/actor/d_a_obj_pdtile.cpp1003
-rw-r--r--src/d/actor/d_a_obj_stone.cpp1253
-rw-r--r--src/d/actor/d_a_obj_wdStick.cpp1219
-rw-r--r--src/d/d_cc_uty.cpp12
30 files changed, 1877 insertions, 2913 deletions
diff --git a/config/GZ2E01/rels/d_a_npc_lf/symbols.txt b/config/GZ2E01/rels/d_a_npc_lf/symbols.txt
index 6176995b85..6d5280cbc6 100644
--- a/config/GZ2E01/rels/d_a_npc_lf/symbols.txt
+++ b/config/GZ2E01/rels/d_a_npc_lf/symbols.txt
@@ -4,15 +4,15 @@ _unresolved = .text:0x00000058; // type:function size:0x20 scope:global
__register_global_object = .text:0x00000078; // type:function size:0x1C scope:global
__destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global
__ct__14daNPC_LF_HIO_cFv = .text:0x000000EC; // type:function size:0x48 scope:global
-nodeCallBack__FP8J3DJointi = .text:0x00000134; // type:function size:0x124 scope:global
-daNPC_LF_Draw__FP12npc_lf_class = .text:0x00000258; // type:function size:0xB8 scope:global
+nodeCallBack__FP8J3DJointi = .text:0x00000134; // type:function size:0x124 scope:local
+daNPC_LF_Draw__FP12npc_lf_class = .text:0x00000258; // type:function size:0xB8 scope:local
npc_lf_move__FP10fopAc_ac_cP4lf_s = .text:0x00000310; // type:function size:0x428 scope:global
action__FP10fopAc_ac_cP4lf_s = .text:0x00000738; // type:function size:0x268 scope:global
-daNPC_LF_Execute__FP12npc_lf_class = .text:0x000009A0; // type:function size:0xF4 scope:global
-daNPC_LF_IsDelete__FP12npc_lf_class = .text:0x00000A94; // type:function size:0x8 scope:global
-daNPC_LF_Delete__FP12npc_lf_class = .text:0x00000A9C; // type:function size:0x54 scope:global
-useHeapInit__FP10fopAc_ac_c = .text:0x00000AF0; // type:function size:0xE0 scope:global
-daNPC_LF_Create__FP10fopAc_ac_c = .text:0x00000BD0; // type:function size:0x254 scope:global
+daNPC_LF_Execute__FP12npc_lf_class = .text:0x000009A0; // type:function size:0xF4 scope:local
+daNPC_LF_IsDelete__FP12npc_lf_class = .text:0x00000A94; // type:function size:0x8 scope:local
+daNPC_LF_Delete__FP12npc_lf_class = .text:0x00000A9C; // type:function size:0x54 scope:local
+useHeapInit__FP10fopAc_ac_c = .text:0x00000AF0; // type:function size:0xE0 scope:local
+daNPC_LF_Create__FP10fopAc_ac_c = .text:0x00000BD0; // type:function size:0x254 scope:local
__dt__4lf_sFv = .text:0x00000E24; // type:function size:0x3C scope:global
__ct__4lf_sFv = .text:0x00000E60; // type:function size:0x4 scope:global
__dt__14daNPC_LF_HIO_cFv = .text:0x00000E64; // type:function size:0x48 scope:global
@@ -56,10 +56,10 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@4176 = .rodata:0x00000094; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000098; // type:object size:0x7 scope:local data:string_table
wp$3976 = .data:0x00000000; // type:object size:0xC scope:local
-l_daNPC_LF_Method = .data:0x0000000C; // type:object size:0x20 scope:global
+l_daNPC_LF_Method = .data:0x0000000C; // type:object size:0x20 scope:local
g_profile_NPC_LF = .data:0x0000002C; // type:object size:0x30 scope:global
__vt__14daNPC_LF_HIO_c = .data:0x0000005C; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
-lbl_333_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
+lbl_333_bss_8 = .bss:0x00000008; // type:object size:0x1 scope:local data:byte
@3764 = .bss:0x0000000C; // type:object size:0xC scope:local
-l_HIO = .bss:0x00000018; // type:object size:0x1C scope:global data:byte
+l_HIO = .bss:0x00000018; // type:object size:0x1C scope:local data:byte
diff --git a/config/GZ2E01/rels/d_a_obj_crvsteel/symbols.txt b/config/GZ2E01/rels/d_a_obj_crvsteel/symbols.txt
index 814d475f1d..12a199ab5d 100644
--- a/config/GZ2E01/rels/d_a_obj_crvsteel/symbols.txt
+++ b/config/GZ2E01/rels/d_a_obj_crvsteel/symbols.txt
@@ -1,20 +1,20 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
-daObjCRVSTEEL_Create__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:global
-daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c = .text:0x00000098; // type:function size:0x24 scope:global
+daObjCRVSTEEL_Create__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:local
+daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c = .text:0x00000098; // type:function size:0x24 scope:local
OpenSet__15daObjCRVSTEEL_cFff = .text:0x000000BC; // type:function size:0x1C scope:global
CloseSet__15daObjCRVSTEEL_cFf = .text:0x000000D8; // type:function size:0x10 scope:global
CloseExecute__15daObjCRVSTEEL_cFv = .text:0x000000E8; // type:function size:0x78 scope:global
OpenExecute__15daObjCRVSTEEL_cFv = .text:0x00000160; // type:function size:0x28 scope:global
Action__15daObjCRVSTEEL_cFv = .text:0x00000188; // type:function size:0x48 scope:global
setBaseMtx__15daObjCRVSTEEL_cFv = .text:0x000001D0; // type:function size:0x5C scope:global
-daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c = .text:0x0000022C; // type:function size:0x2C scope:global
-daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c = .text:0x00000258; // type:function size:0x20 scope:global
+daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c = .text:0x0000022C; // type:function size:0x2C scope:local
+daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c = .text:0x00000258; // type:function size:0x20 scope:local
CreateHeap__15daObjCRVSTEEL_cFv = .text:0x00000278; // type:function size:0x78 scope:global
create__15daObjCRVSTEEL_cFv = .text:0x000002F0; // type:function size:0x200 scope:global
__dt__12dBgS_ObjAcchFv = .text:0x000004F0; // type:function size:0x70 scope:global
-daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c = .text:0x00000560; // type:function size:0x8 scope:global
+daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c = .text:0x00000560; // type:function size:0x8 scope:local
Create__15daObjCRVSTEEL_cFv = .text:0x00000568; // type:function size:0x44 scope:global
Execute__15daObjCRVSTEEL_cFPPA3_A4_f = .text:0x000005AC; // type:function size:0x4C scope:global
Draw__15daObjCRVSTEEL_cFv = .text:0x000005F8; // type:function size:0x84 scope:global
@@ -38,8 +38,8 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@3949 = .rodata:0x0000002C; // type:object size:0x4 scope:local
@3950 = .rodata:0x00000030; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000034; // type:object size:0x2F scope:local data:string_table
-l_arcName = .data:0x00000000; // type:object size:0x4 scope:global
-l_daObjCRVSTEEL_Method = .data:0x00000004; // type:object size:0x20 scope:global
+l_arcName = .data:0x00000000; // type:object size:0x4 scope:local
+l_daObjCRVSTEEL_Method = .data:0x00000004; // type:object size:0x20 scope:local
g_profile_Obj_CRVSTEEL = .data:0x00000024; // type:object size:0x30 scope:global
__vt__12dBgS_ObjAcch = .data:0x00000054; // type:object size:0x24 scope:global
__vt__15daObjCRVSTEEL_c = .data:0x00000078; // type:object size:0x28 scope:global
diff --git a/config/GZ2E01/rels/d_a_obj_kantera/symbols.txt b/config/GZ2E01/rels/d_a_obj_kantera/symbols.txt
index fb4374586f..efbed3ce32 100644
--- a/config/GZ2E01/rels/d_a_obj_kantera/symbols.txt
+++ b/config/GZ2E01/rels/d_a_obj_kantera/symbols.txt
@@ -23,17 +23,17 @@ actionGetDemo__15daItemKantera_cFv = .text:0x00000D4C; // type:function size:0x6
execute__15daItemKantera_cFv = .text:0x00000DB0; // type:function size:0x12C scope:global
draw__15daItemKantera_cFv = .text:0x00000EDC; // type:function size:0x54 scope:global
_delete__15daItemKantera_cFv = .text:0x00000F30; // type:function size:0x38 scope:global
-daItemKantera_Draw__FP15daItemKantera_c = .text:0x00000F68; // type:function size:0x20 scope:global
-daItemKantera_Execute__FP15daItemKantera_c = .text:0x00000F88; // type:function size:0x20 scope:global
-daItemKantera_Delete__FP15daItemKantera_c = .text:0x00000FA8; // type:function size:0x20 scope:global
-daItemKantera_Create__FP10fopAc_ac_c = .text:0x00000FC8; // type:function size:0x20 scope:global
+daItemKantera_Draw__FP15daItemKantera_c = .text:0x00000F68; // type:function size:0x20 scope:local
+daItemKantera_Execute__FP15daItemKantera_c = .text:0x00000F88; // type:function size:0x20 scope:local
+daItemKantera_Delete__FP15daItemKantera_c = .text:0x00000FA8; // type:function size:0x20 scope:local
+daItemKantera_Create__FP10fopAc_ac_c = .text:0x00000FC8; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00000FE8; // type:function size:0x48 scope:global
@36@__dt__12dBgS_ObjAcchFv = .text:0x00001030; // type:function size:0x8 scope:local
@20@__dt__12dBgS_ObjAcchFv = .text:0x00001038; // type:function size:0x8 scope:local
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
-l_cyl_src = .rodata:0x00000000; // type:object size:0x44 scope:global
+l_cyl_src = .rodata:0x00000000; // type:object size:0x44 scope:local
@3855 = .rodata:0x00000044; // type:object size:0x4 scope:local
@3856 = .rodata:0x00000048; // type:object size:0x8 scope:local
@3857 = .rodata:0x00000050; // type:object size:0x8 scope:local
@@ -48,14 +48,14 @@ l_cyl_src = .rodata:0x00000000; // type:object size:0x44 scope:global
@4145 = .rodata:0x00000080; // type:object size:0x4 scope:local data:string
@stringBase0 = .rodata:0x00000084; // type:object size:0x10 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
-cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
+cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
@4184 = .data:0x00000020; // type:object size:0xC scope:local
@4185 = .data:0x0000002C; // type:object size:0xC scope:local
@4186 = .data:0x00000038; // type:object size:0xC scope:local
@4187 = .data:0x00000044; // type:object size:0xC scope:local
l_demoFunc$4183 = .data:0x00000050; // type:object size:0x30 scope:local
-l_daItemKantera_Method = .data:0x00000080; // type:object size:0x20 scope:global
+l_daItemKantera_Method = .data:0x00000080; // type:object size:0x20 scope:local
g_profile_Obj_Kantera = .data:0x000000A0; // type:object size:0x30 scope:global
__vt__12dBgS_AcchCir = .data:0x000000D0; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x000000DC; // type:object size:0xC scope:global
@@ -65,4 +65,4 @@ __vt__8cM3dGAab = .data:0x00000100; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x0000010C; // type:object size:0x24 scope:global
__vt__15daItemKantera_c = .data:0x00000130; // type:object size:0x44 scope:global
__vt__8cM3dGPla = .data:0x00000174; // type:object size:0xC scope:global
-lbl_494_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
+lbl_494_bss_0 = .bss:0x00000000; // type:object size:0x1 scope:local data:byte
diff --git a/config/GZ2E01/rels/d_a_obj_onsenTaru/symbols.txt b/config/GZ2E01/rels/d_a_obj_onsenTaru/symbols.txt
index 0288737ef1..4af54026e0 100644
--- a/config/GZ2E01/rels/d_a_obj_onsenTaru/symbols.txt
+++ b/config/GZ2E01/rels/d_a_obj_onsenTaru/symbols.txt
@@ -33,10 +33,10 @@ mode_proc_sink__11daOnsTaru_cFv = .text:0x00001050; // type:function size:0xF0 s
breakEffSet__11daOnsTaru_cFv = .text:0x00001140; // type:function size:0x298 scope:global
Draw__11daOnsTaru_cFv = .text:0x000013D8; // type:function size:0xA4 scope:global
Delete__11daOnsTaru_cFv = .text:0x0000147C; // type:function size:0x30 scope:global
-daOnsTaru_Draw__FP11daOnsTaru_c = .text:0x000014AC; // type:function size:0x2C scope:global
-daOnsTaru_Execute__FP11daOnsTaru_c = .text:0x000014D8; // type:function size:0x2C scope:global
-daOnsTaru_Delete__FP11daOnsTaru_c = .text:0x00001504; // type:function size:0x2C scope:global
-daOnsTaru_Create__FP10fopAc_ac_c = .text:0x00001530; // type:function size:0x20 scope:global
+daOnsTaru_Draw__FP11daOnsTaru_c = .text:0x000014AC; // type:function size:0x2C scope:local
+daOnsTaru_Execute__FP11daOnsTaru_c = .text:0x000014D8; // type:function size:0x2C scope:local
+daOnsTaru_Delete__FP11daOnsTaru_c = .text:0x00001504; // type:function size:0x2C scope:local
+daOnsTaru_Create__FP10fopAc_ac_c = .text:0x00001530; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00001550; // type:function size:0x48 scope:global
__dt__15daOnsTaru_HIO_cFv = .text:0x00001598; // type:function size:0x6C scope:global
__sinit_d_a_obj_onsenTaru_cpp = .text:0x00001604; // type:function size:0x70 scope:local
@@ -68,7 +68,7 @@ mCcDObjInfo__11daOnsTaru_c = .rodata:0x00000008; // type:object size:0x30 scope:
@4186 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float
@stringBase0 = .rodata:0x0000007C; // type:object size:0x21 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
-cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
+cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
mCcDCyl__11daOnsTaru_c = .data:0x00000020; // type:object size:0x44 scope:global
@4002 = .data:0x00000064; // type:object size:0xC scope:local
@@ -77,7 +77,7 @@ mCcDCyl__11daOnsTaru_c = .data:0x00000020; // type:object size:0x44 scope:global
@4005 = .data:0x00000088; // type:object size:0xC scope:local
@4006 = .data:0x00000094; // type:object size:0xC scope:local
l_mode_func$4001 = .data:0x000000A0; // type:object size:0x3C scope:local
-l_daOnsTaru_Method = .data:0x000000DC; // type:object size:0x20 scope:global
+l_daOnsTaru_Method = .data:0x000000DC; // type:object size:0x20 scope:local
g_profile_Obj_OnsenTaru = .data:0x000000FC; // type:object size:0x30 scope:global
__vt__12dBgS_AcchCir = .data:0x0000012C; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x00000138; // type:object size:0xC scope:global
@@ -91,5 +91,5 @@ __vt__18fOpAcm_HIO_entry_c = .data:0x000001B0; // type:object size:0xC scope:glo
__vt__14mDoHIO_entry_c = .data:0x000001BC; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
@3647 = .bss:0x00000008; // type:object size:0xC scope:local
-l_HIO = .bss:0x00000014; // type:object size:0x10 scope:global data:byte
-lbl_588_bss_24 = .bss:0x00000024; // type:object size:0x1 data:byte
+l_HIO = .bss:0x00000014; // type:object size:0x10 scope:local data:byte
+init$1920 = .bss:0x00000024; // type:object size:0x1 scope:local data:byte
diff --git a/config/GZ2E01/rels/d_a_obj_pdtile/symbols.txt b/config/GZ2E01/rels/d_a_obj_pdtile/symbols.txt
index 9296c49b25..d374731bb7 100644
--- a/config/GZ2E01/rels/d_a_obj_pdtile/symbols.txt
+++ b/config/GZ2E01/rels/d_a_obj_pdtile/symbols.txt
@@ -1,7 +1,7 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
-rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c = .text:0x00000078; // type:function size:0x28 scope:global
+rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c = .text:0x00000078; // type:function size:0x28 scope:local
create1st__13daObjPDtile_cFv = .text:0x000000A0; // type:function size:0x1A0 scope:global
setMtx__13daObjPDtile_cFv = .text:0x00000240; // type:function size:0x110 scope:global
rideActor__13daObjPDtile_cFP10fopAc_ac_c = .text:0x00000350; // type:function size:0x260 scope:global
@@ -11,13 +11,13 @@ Execute__13daObjPDtile_cFPPA3_A4_f = .text:0x00000734; // type:function size:0xB
__dt__14dBgS_ObjGndChkFv = .text:0x00001298; // type:function size:0x78 scope:global
Draw__13daObjPDtile_cFv = .text:0x00001310; // type:function size:0x144 scope:global
Delete__13daObjPDtile_cFv = .text:0x00001454; // type:function size:0x44 scope:global
-daObjPDtile_create1st__FP13daObjPDtile_c = .text:0x00001498; // type:function size:0xFC scope:global
+daObjPDtile_create1st__FP13daObjPDtile_c = .text:0x00001498; // type:function size:0xFC scope:local
__dt__8cM3dGCylFv = .text:0x00001594; // type:function size:0x48 scope:global
__dt__8cM3dGAabFv = .text:0x000015DC; // type:function size:0x48 scope:global
__dt__10dCcD_GSttsFv = .text:0x00001624; // type:function size:0x5C scope:global
-daObjPDtile_MoveBGDelete__FP13daObjPDtile_c = .text:0x00001680; // type:function size:0x20 scope:global
-daObjPDtile_MoveBGExecute__FP13daObjPDtile_c = .text:0x000016A0; // type:function size:0x20 scope:global
-daObjPDtile_MoveBGDraw__FP13daObjPDtile_c = .text:0x000016C0; // type:function size:0x2C scope:global
+daObjPDtile_MoveBGDelete__FP13daObjPDtile_c = .text:0x00001680; // type:function size:0x20 scope:local
+daObjPDtile_MoveBGExecute__FP13daObjPDtile_c = .text:0x000016A0; // type:function size:0x20 scope:local
+daObjPDtile_MoveBGDraw__FP13daObjPDtile_c = .text:0x000016C0; // type:function size:0x2C scope:local
__dt__10cCcD_GSttsFv = .text:0x000016EC; // type:function size:0x48 scope:global
__dt__13daObjPDtile_cFv = .text:0x00001734; // type:function size:0x178 scope:global
@20@__dt__14dBgS_ObjGndChkFv = .text:0x000018AC; // type:function size:0x8 scope:local
@@ -56,22 +56,22 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@4256 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float
@stringBase0 = .rodata:0x00000074; // type:object size:0x1C scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
-cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
+cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
-l_arcName4 = .data:0x00000020; // type:object size:0x4 scope:global
-l_dzbidx4 = .data:0x00000024; // type:object size:0x8 scope:global
-l_bmdidx4 = .data:0x0000002C; // type:object size:0x8 scope:global
-l_cull_box4 = .data:0x00000034; // type:object size:0x30 scope:global
-l_arcName7 = .data:0x00000064; // type:object size:0x4 scope:global
-l_dzbidx7 = .data:0x00000068; // type:object size:0x4 scope:global
-l_bmdidx7 = .data:0x0000006C; // type:object size:0x4 scope:global
-l_cull_box7 = .data:0x00000070; // type:object size:0x18 scope:global
-l_arcName9 = .data:0x00000088; // type:object size:0x4 scope:global
-l_dzbidx9 = .data:0x0000008C; // type:object size:0x4 scope:global
-l_bmdidx9 = .data:0x00000090; // type:object size:0x4 scope:global
-l_cull_box9 = .data:0x00000094; // type:object size:0x18 scope:global
-cc_cyl_src = .data:0x000000AC; // type:object size:0x44 scope:global
-daObjPDtile_METHODS = .data:0x000000F0; // type:object size:0x20 scope:global
+l_arcName4 = .data:0x00000020; // type:object size:0x4 scope:local
+l_dzbidx4 = .data:0x00000024; // type:object size:0x8 scope:local
+l_bmdidx4 = .data:0x0000002C; // type:object size:0x8 scope:local
+l_cull_box4 = .data:0x00000034; // type:object size:0x30 scope:local
+l_arcName7 = .data:0x00000064; // type:object size:0x4 scope:local
+l_dzbidx7 = .data:0x00000068; // type:object size:0x4 scope:local
+l_bmdidx7 = .data:0x0000006C; // type:object size:0x4 scope:local
+l_cull_box7 = .data:0x00000070; // type:object size:0x18 scope:local
+l_arcName9 = .data:0x00000088; // type:object size:0x4 scope:local
+l_dzbidx9 = .data:0x0000008C; // type:object size:0x4 scope:local
+l_bmdidx9 = .data:0x00000090; // type:object size:0x4 scope:local
+l_cull_box9 = .data:0x00000094; // type:object size:0x18 scope:local
+cc_cyl_src = .data:0x000000AC; // type:object size:0x44 scope:local
+daObjPDtile_METHODS = .data:0x000000F0; // type:object size:0x20 scope:local
g_profile_Obj_PDtile = .data:0x00000110; // type:object size:0x30 scope:global
__vt__10cCcD_GStts = .data:0x00000140; // type:object size:0xC scope:global
__vt__10dCcD_GStts = .data:0x0000014C; // type:object size:0xC scope:global
diff --git a/config/GZ2E01/rels/d_a_obj_stone/symbols.txt b/config/GZ2E01/rels/d_a_obj_stone/symbols.txt
index 77d5bb5f2d..1e9432a026 100644
--- a/config/GZ2E01/rels/d_a_obj_stone/symbols.txt
+++ b/config/GZ2E01/rels/d_a_obj_stone/symbols.txt
@@ -3,7 +3,7 @@ _epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
bound__FP4cXyzRC13cBgS_PolyInfof = .text:0x00000078; // type:function size:0x2E4 scope:global
__dt__8cM3dGPlaFv = .text:0x0000035C; // type:function size:0x48 scope:global
-CheckCreateHeap__FP10fopAc_ac_c = .text:0x000003A4; // type:function size:0x20 scope:global
+CheckCreateHeap__FP10fopAc_ac_c = .text:0x000003A4; // type:function size:0x20 scope:local
initBaseMtx__12daObjStone_cFv = .text:0x000003C4; // type:function size:0xA4 scope:global
setBaseMtx__12daObjStone_cFv = .text:0x00000468; // type:function size:0xD8 scope:global
Create__12daObjStone_cFv = .text:0x00000540; // type:function size:0x280 scope:global
@@ -40,10 +40,10 @@ set_carry_eff__12daObjStone_cFv = .text:0x000036D8; // type:function size:0x104
effect_delete__12daObjStone_cFb = .text:0x000037DC; // type:function size:0xAC scope:global
draw__12daObjStone_cFv = .text:0x00003888; // type:function size:0xC0 scope:global
_delete__12daObjStone_cFv = .text:0x00003948; // type:function size:0x74 scope:global
-daObjStone_Draw__FP12daObjStone_c = .text:0x000039BC; // type:function size:0x20 scope:global
-daObjStone_Execute__FP12daObjStone_c = .text:0x000039DC; // type:function size:0x20 scope:global
-daObjStone_Delete__FP12daObjStone_c = .text:0x000039FC; // type:function size:0x20 scope:global
-daObjStone_Create__FP10fopAc_ac_c = .text:0x00003A1C; // type:function size:0x20 scope:global
+daObjStone_Draw__FP12daObjStone_c = .text:0x000039BC; // type:function size:0x20 scope:local
+daObjStone_Execute__FP12daObjStone_c = .text:0x000039DC; // type:function size:0x20 scope:local
+daObjStone_Delete__FP12daObjStone_c = .text:0x000039FC; // type:function size:0x20 scope:local
+daObjStone_Create__FP10fopAc_ac_c = .text:0x00003A1C; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00003A3C; // type:function size:0x48 scope:global
@36@__dt__12dBgS_ObjAcchFv = .text:0x00003A84; // type:function size:0x8 scope:local
@20@__dt__12dBgS_ObjAcchFv = .text:0x00003A8C; // type:function size:0x8 scope:local
@@ -53,29 +53,29 @@ __dt__10cCcD_GSttsFv = .text:0x00003A3C; // type:function size:0x48 scope:global
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
-l_bmdIdx = .rodata:0x00000000; // type:object size:0x8 scope:global
-l_sph_src = .rodata:0x00000008; // type:object size:0x40 scope:global
-l_r = .rodata:0x00000048; // type:object size:0x8 scope:global
-l_rolling_speedF = .rodata:0x00000050; // type:object size:0x8 scope:global
-l_rolling_time = .rodata:0x00000058; // type:object size:0x8 scope:global
-l_initial_offsetY = .rodata:0x00000060; // type:object size:0x8 scope:global
-l_put_offsetY = .rodata:0x00000068; // type:object size:0x8 scope:global
-l_weight = .rodata:0x00000070; // type:object size:0x2 scope:global
-l_speedH = .rodata:0x00000074; // type:object size:0x8 scope:global
-l_speedV = .rodata:0x0000007C; // type:object size:0x8 scope:global
-l_water_speedH = .rodata:0x00000084; // type:object size:0x8 scope:global
-l_water_speedV = .rodata:0x0000008C; // type:object size:0x8 scope:global
-l_water_resist = .rodata:0x00000094; // type:object size:0x8 scope:global
-l_water_walk_resist = .rodata:0x0000009C; // type:object size:0x8 scope:global
-l_buoyancy = .rodata:0x000000A4; // type:object size:0x8 scope:global
-l_shadow_size = .rodata:0x000000AC; // type:object size:0x8 scope:global
-l_wpillar_scl = .rodata:0x000000B4; // type:object size:0x8 scope:global
-l_hamon_scl = .rodata:0x000000BC; // type:object size:0x8 scope:global
-l_yogan_eff_scl = .rodata:0x000000C4; // type:object size:0x8 scope:global
-l_wall_h = .rodata:0x000000CC; // type:object size:0x8 scope:global
-l_wall_r = .rodata:0x000000D4; // type:object size:0x8 scope:global
-l_rot_angle = .rodata:0x000000DC; // type:object size:0x4 scope:global
-l_walk_rot_angle = .rodata:0x000000E0; // type:object size:0x4 scope:global
+l_bmdIdx = .rodata:0x00000000; // type:object size:0x8 scope:local
+l_sph_src = .rodata:0x00000008; // type:object size:0x40 scope:local
+l_r = .rodata:0x00000048; // type:object size:0x8 scope:local
+l_rolling_speedF = .rodata:0x00000050; // type:object size:0x8 scope:local
+l_rolling_time = .rodata:0x00000058; // type:object size:0x8 scope:local
+l_initial_offsetY = .rodata:0x00000060; // type:object size:0x8 scope:local
+l_put_offsetY = .rodata:0x00000068; // type:object size:0x8 scope:local
+l_weight = .rodata:0x00000070; // type:object size:0x2 scope:local
+l_speedH = .rodata:0x00000074; // type:object size:0x8 scope:local
+l_speedV = .rodata:0x0000007C; // type:object size:0x8 scope:local
+l_water_speedH = .rodata:0x00000084; // type:object size:0x8 scope:local
+l_water_speedV = .rodata:0x0000008C; // type:object size:0x8 scope:local
+l_water_resist = .rodata:0x00000094; // type:object size:0x8 scope:local
+l_water_walk_resist = .rodata:0x0000009C; // type:object size:0x8 scope:local
+l_buoyancy = .rodata:0x000000A4; // type:object size:0x8 scope:local
+l_shadow_size = .rodata:0x000000AC; // type:object size:0x8 scope:local
+l_wpillar_scl = .rodata:0x000000B4; // type:object size:0x8 scope:local
+l_hamon_scl = .rodata:0x000000BC; // type:object size:0x8 scope:local
+l_yogan_eff_scl = .rodata:0x000000C4; // type:object size:0x8 scope:local
+l_wall_h = .rodata:0x000000CC; // type:object size:0x8 scope:local
+l_wall_r = .rodata:0x000000D4; // type:object size:0x8 scope:local
+l_rot_angle = .rodata:0x000000DC; // type:object size:0x4 scope:local
+l_walk_rot_angle = .rodata:0x000000E0; // type:object size:0x4 scope:local
@3746 = .rodata:0x000000E4; // type:object size:0x4 scope:local
@3747 = .rodata:0x000000E8; // type:object size:0x8 scope:local
@3748 = .rodata:0x000000F0; // type:object size:0x8 scope:local
@@ -112,9 +112,9 @@ l_eff_id$5089 = .rodata:0x0000016C; // type:object size:0x6 scope:local
l_carry_eff_id$5307 = .rodata:0x00000180; // type:object size:0x6 scope:local
@stringBase0 = .rodata:0x00000188; // type:object size:0x17 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
-cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
+cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
-l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
+l_arcName = .data:0x00000020; // type:object size:0x8 scope:local
@4015 = .data:0x00000028; // type:object size:0xC scope:local
@4016 = .data:0x00000034; // type:object size:0xC scope:local
@4017 = .data:0x00000040; // type:object size:0xC scope:local
@@ -123,7 +123,7 @@ l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
@4020 = .data:0x00000064; // type:object size:0xC scope:local
@4021 = .data:0x00000070; // type:object size:0xC scope:local
l_func$4014 = .data:0x0000007C; // type:object size:0x54 scope:local
-l_daObjStone_Method = .data:0x000000D0; // type:object size:0x20 scope:global
+l_daObjStone_Method = .data:0x000000D0; // type:object size:0x20 scope:local
g_profile_Obj_Stone = .data:0x000000F0; // type:object size:0x30 scope:global
__vt__14dBgS_ObjGndChk = .data:0x00000120; // type:object size:0x30 scope:global
__vt__12dBgS_AcchCir = .data:0x00000150; // type:object size:0xC scope:global
@@ -133,4 +133,4 @@ __vt__8cM3dGSph = .data:0x00000174; // type:object size:0xC scope:global
__vt__8cM3dGAab = .data:0x00000180; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x0000018C; // type:object size:0x24 scope:global
__vt__8cM3dGPla = .data:0x000001B0; // type:object size:0xC scope:global
-lbl_633_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
+lbl_633_bss_0 = .bss:0x00000000; // type:object size:0x1 scope:local data:byte
diff --git a/config/GZ2E01/rels/d_a_obj_wdStick/symbols.txt b/config/GZ2E01/rels/d_a_obj_wdStick/symbols.txt
index ccc2a47686..9a02cf7ec8 100644
--- a/config/GZ2E01/rels/d_a_obj_wdStick/symbols.txt
+++ b/config/GZ2E01/rels/d_a_obj_wdStick/symbols.txt
@@ -37,10 +37,10 @@ mode_init_sink__11daWdStick_cFv = .text:0x00002308; // type:function size:0x24 s
mode_proc_sink__11daWdStick_cFv = .text:0x0000232C; // type:function size:0x124 scope:global
Draw__11daWdStick_cFv = .text:0x00002450; // type:function size:0x64 scope:global
Delete__11daWdStick_cFv = .text:0x000024B4; // type:function size:0x30 scope:global
-daWdStick_Draw__FP11daWdStick_c = .text:0x000024E4; // type:function size:0x2C scope:global
-daWdStick_Execute__FP11daWdStick_c = .text:0x00002510; // type:function size:0x2C scope:global
-daWdStick_Delete__FP11daWdStick_c = .text:0x0000253C; // type:function size:0x2C scope:global
-daWdStick_Create__FP10fopAc_ac_c = .text:0x00002568; // type:function size:0x20 scope:global
+daWdStick_Draw__FP11daWdStick_c = .text:0x000024E4; // type:function size:0x2C scope:local
+daWdStick_Execute__FP11daWdStick_c = .text:0x00002510; // type:function size:0x2C scope:local
+daWdStick_Delete__FP11daWdStick_c = .text:0x0000253C; // type:function size:0x2C scope:local
+daWdStick_Create__FP10fopAc_ac_c = .text:0x00002568; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00002588; // type:function size:0x48 scope:global
__dt__15daWdStick_HIO_cFv = .text:0x000025D0; // type:function size:0x5C scope:global
__sinit_d_a_obj_wdStick_cpp = .text:0x0000262C; // type:function size:0x70 scope:local
@@ -94,7 +94,7 @@ mCcDObjInfo__11daWdStick_c = .rodata:0x00000000; // type:object size:0x30 scope:
@4780 = .rodata:0x000000D4; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x000000D8; // type:object size:0xA scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
-cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
+cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
mCcDSph__11daWdStick_c = .data:0x00000020; // type:object size:0x40 scope:global
@4470 = .data:0x00000060; // type:object size:0xC scope:local
@@ -103,7 +103,7 @@ mCcDSph__11daWdStick_c = .data:0x00000020; // type:object size:0x40 scope:global
@4473 = .data:0x00000084; // type:object size:0xC scope:local
@4474 = .data:0x00000090; // type:object size:0xC scope:local
l_mode_func$4469 = .data:0x0000009C; // type:object size:0x3C scope:local
-l_daWdStick_Method = .data:0x000000D8; // type:object size:0x20 scope:global
+l_daWdStick_Method = .data:0x000000D8; // type:object size:0x20 scope:local
g_profile_Obj_WdStick = .data:0x000000F8; // type:object size:0x30 scope:global
__vt__14dBgS_ObjGndChk = .data:0x00000128; // type:object size:0x30 scope:global
__vt__8cM3dGPla = .data:0x00000158; // type:object size:0xC scope:global
@@ -118,5 +118,5 @@ __vt__15daWdStick_HIO_c = .data:0x000001DC; // type:object size:0xC scope:global
__vt__14mDoHIO_entry_c = .data:0x000001E8; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
@3643 = .bss:0x00000008; // type:object size:0xC scope:local
-l_HIO = .bss:0x00000014; // type:object size:0xC scope:global data:2byte
-lbl_683_bss_20 = .bss:0x00000020; // type:object size:0x1 data:byte
+l_HIO = .bss:0x00000014; // type:object size:0xC scope:local data:2byte
+lbl_683_bss_20 = .bss:0x00000020; // type:object size:0x1 scope:local data:byte
diff --git a/configure.py b/configure.py
index 4299e6d8b3..5ad027c576 100644
--- a/configure.py
+++ b/configure.py
@@ -851,7 +851,7 @@ config.libs = [
Object(Matching, "Z2AudioLib/Z2Calc.cpp"),
Object(NonMatching, "Z2AudioLib/Z2AudioArcLoader.cpp"),
Object(Matching, "Z2AudioLib/Z2Param.cpp"),
- Object(NonMatching, "Z2AudioLib/Z2SoundMgr.cpp"),
+ Object(Matching, "Z2AudioLib/Z2SoundMgr.cpp"),
Object(Matching, "Z2AudioLib/Z2SoundStarter.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SoundHandles.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SeMgr.cpp"),
@@ -1698,7 +1698,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_npc_ks"),
ActorRel(NonMatching, "d_a_npc_kyury"),
ActorRel(NonMatching, "d_a_npc_len"),
- ActorRel(NonMatching, "d_a_npc_lf"),
+ ActorRel(Matching, "d_a_npc_lf"),
ActorRel(NonMatching, "d_a_npc_lud"),
ActorRel(NonMatching, "d_a_npc_midp"),
ActorRel(Matching, "d_a_npc_mk"),
@@ -1796,7 +1796,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_crvhahen"),
ActorRel(NonMatching, "d_a_obj_crvlh_down"),
ActorRel(NonMatching, "d_a_obj_crvlh_up"),
- ActorRel(NonMatching, "d_a_obj_crvsteel"),
+ ActorRel(Matching, "d_a_obj_crvsteel"),
ActorRel(Matching, "d_a_obj_crystal"),
ActorRel(NonMatching, "d_a_obj_cwall"),
ActorRel(Matching, "d_a_obj_damCps"),
@@ -1859,7 +1859,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_kago"),
ActorRel(NonMatching, "d_a_obj_kaisou"),
ActorRel(NonMatching, "d_a_obj_kamakiri"),
- ActorRel(NonMatching, "d_a_obj_kantera"),
+ ActorRel(Matching, "d_a_obj_kantera"),
ActorRel(NonMatching, "d_a_obj_katatsumuri"),
ActorRel(Matching, "d_a_obj_kazeneko"),
ActorRel(NonMatching, "d_a_obj_kbox"),
@@ -1953,9 +1953,9 @@ config.libs = [
ActorRel(Matching, "d_a_obj_oiltubo"),
ActorRel(Matching, "d_a_obj_onsen"),
ActorRel(Matching, "d_a_obj_onsenFire"),
- ActorRel(NonMatching, "d_a_obj_onsenTaru"),
+ ActorRel(Matching, "d_a_obj_onsenTaru"),
ActorRel(NonMatching, "d_a_obj_pdoor"),
- ActorRel(NonMatching, "d_a_obj_pdtile"),
+ ActorRel(Matching, "d_a_obj_pdtile"),
ActorRel(NonMatching, "d_a_obj_pdwall"),
ActorRel(NonMatching, "d_a_obj_picture"),
ActorRel(Matching, "d_a_obj_pillar"),
@@ -1998,7 +1998,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_ss_drink"),
ActorRel(Matching, "d_a_obj_ss_item"),
ActorRel(NonMatching, "d_a_obj_stairBlock"),
- ActorRel(NonMatching, "d_a_obj_stone"),
+ ActorRel(Equivalent, "d_a_obj_stone"),
ActorRel(NonMatching, "d_a_obj_stopper"),
ActorRel(NonMatching, "d_a_obj_stopper2"),
ActorRel(Matching, "d_a_obj_suisya"),
@@ -2048,7 +2048,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_obj_waterPillar"),
ActorRel(Matching, "d_a_obj_waterfall"),
ActorRel(NonMatching, "d_a_obj_wchain"),
- ActorRel(NonMatching, "d_a_obj_wdStick"),
+ ActorRel(Matching, "d_a_obj_wdStick"),
ActorRel(NonMatching, "d_a_obj_web0"),
ActorRel(Matching, "d_a_obj_web1"),
ActorRel(Matching, "d_a_obj_well_cover"),
diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h
index 76848227d4..e7429af630 100644
--- a/include/JSystem/JAudio2/JAISound.h
+++ b/include/JSystem/JAudio2/JAISound.h
@@ -19,7 +19,7 @@ public:
JAISoundID() {}
- bool isAnonymous() { return mId.mFullId == 0xffffffff; }
+ bool isAnonymous() const { return mId.mFullId == 0xffffffff; }
void setAnonymous() { mId.mFullId = -1; }
union {
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h
index 2e7393be49..00427f85e1 100644
--- a/include/SSystem/SComponent/c_cc_d.h
+++ b/include/SSystem/SComponent/c_cc_d.h
@@ -45,6 +45,7 @@ enum cCcD_ObjAtType {
/* 0x00004000 */ AT_TYPE_HOOKSHOT = (1 << 14),
/* 0x00008000 */ AT_TYPE_8000 = (1 << 15),
/* 0x00010000 */ AT_TYPE_BOOMERANG = (1 << 16),
+ /* 0x00020000 */ AT_TYPE_20000 = (1 << 17),
/* 0x00040000 */ AT_TYPE_40000 = (1 << 18),
/* 0x00080000 */ AT_TYPE_SPINNER = (1 << 19),
/* 0x00100000 */ AT_TYPE_CSTATUE_BOSS_SWING = (1 << 20),
diff --git a/include/Z2AudioLib/Z2Audience.h b/include/Z2AudioLib/Z2Audience.h
index b157e9611b..e01b6d4b0f 100644
--- a/include/Z2AudioLib/Z2Audience.h
+++ b/include/Z2AudioLib/Z2Audience.h
@@ -215,8 +215,8 @@ struct Z2Audience : public JAIAudience, public JASGlobalInstance<Z2Audience> {
/* 802BD71C */ virtual void mixChannelOut(JASSoundParams const&, JAIAudible*, int);
Z2SpotMic* getLinkMic() { return mLinkMic; }
- JGeometry::TVec3<f32> getAudioCamPos() {
- return *mAudioCamera[0].getPos();
+ JGeometry::TVec3<f32> getAudioCamPos(int idx) {
+ return *mAudioCamera[idx].getPos();
}
Z2Audience3DSetting* getSetting() { return &mSetting; }
diff --git a/include/d/actor/d_a_npc_lf.h b/include/d/actor/d_a_npc_lf.h
index 13401f3b54..771a3dcdae 100644
--- a/include/d/actor/d_a_npc_lf.h
+++ b/include/d/actor/d_a_npc_lf.h
@@ -8,8 +8,8 @@ struct lf_s {
/* 80A6A8E0 */ lf_s();
/* 0x00 */ J3DModel* mpModel;
- /* 0x04 */ cXyz field_0x04;
- /* 0x10 */ csXyz field_0x10;
+ /* 0x04 */ cXyz mPos;
+ /* 0x10 */ csXyz mAngle;
/* 0x16 */ s8 field_0x16;
/* 0x17 */ s8 field_0x17;
/* 0x18 */ s16 field_0x18;
diff --git a/include/d/actor/d_a_obj_crvsteel.h b/include/d/actor/d_a_obj_crvsteel.h
index 46883ba8b1..a0b2afe424 100644
--- a/include/d/actor/d_a_obj_crvsteel.h
+++ b/include/d/actor/d_a_obj_crvsteel.h
@@ -1,6 +1,9 @@
#ifndef D_A_OBJ_CRVSTEEL_H
#define D_A_OBJ_CRVSTEEL_H
+#include "d/d_bg_s_acch.h"
+#include "d/d_bg_s_movebg_actor.h"
+#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -11,7 +14,7 @@
* @details
*
*/
-class daObjCRVSTEEL_c : public fopAc_ac_c {
+class daObjCRVSTEEL_c : public dBgS_MoveBgActor {
public:
/* 80BD5BFC */ void OpenSet(f32, f32);
/* 80BD5C18 */ void CloseSet(f32);
@@ -19,15 +22,28 @@ public:
/* 80BD5CA0 */ void OpenExecute();
/* 80BD5CC8 */ void Action();
/* 80BD5D10 */ void setBaseMtx();
- /* 80BD5DB8 */ void CreateHeap();
- /* 80BD5E30 */ void create();
- /* 80BD60A8 */ void Create();
- /* 80BD60EC */ void Execute(f32 (**)[3][4]);
- /* 80BD6138 */ void Draw();
- /* 80BD61BC */ void Delete();
+ /* 80BD5DB8 */ int CreateHeap();
+ /* 80BD5E30 */ int create();
+ /* 80BD60A8 */ int Create();
+ /* 80BD60EC */ int Execute(Mtx**);
+ /* 80BD6138 */ int Draw();
+ /* 80BD61BC */ int Delete();
private:
- /* 0x568 */ u8 field_0x568[0x848 - 0x568];
+ /* 0x5A0 */ u32 mSmokeParticle1;
+ /* 0x5A4 */ u32 mSmokeParticle2;
+ /* 0x5A8 */ s16 mAction;
+ /* 0x5AC */ f32 mMaxHeight;
+ /* 0x5B0 */ f32 mMinHeight;
+ /* 0x5B4 */ f32 field_0x5b4;
+ /* 0x5B8 */ f32 field_0x5b8;
+ /* 0x5BC */ f32 field_0x5bc;
+ /* 0x5C0 */ J3DModel* mModel;
+ /* 0x5C4 */ request_of_phase_process_class mPhase;
+ /* 0x5CC */ dBgS_AcchCir mAcchCir;
+ /* 0x60C */ dBgS_ObjAcch mAcch;
+ /* 0x7E4 */ dCcD_Stts mStts;
+ /* 0x820 */ u8 field_0x820[0x848 - 0x820];
};
STATIC_ASSERT(sizeof(daObjCRVSTEEL_c) == 0x848);
diff --git a/include/d/actor/d_a_obj_kantera.h b/include/d/actor/d_a_obj_kantera.h
index f6316a846b..c0b88d02c2 100644
--- a/include/d/actor/d_a_obj_kantera.h
+++ b/include/d/actor/d_a_obj_kantera.h
@@ -13,6 +13,8 @@
*/
class daItemKantera_c : public daItemBase_c {
public:
+ typedef int (daItemKantera_c::*actionFunc)();
+
/* 80C389BC */ void initBaseMtx();
/* 80C389F8 */ void setBaseMtx();
/* 80C38A64 */ int Create();
diff --git a/include/d/actor/d_a_obj_pdtile.h b/include/d/actor/d_a_obj_pdtile.h
index 66374e1597..da4d43bd24 100644
--- a/include/d/actor/d_a_obj_pdtile.h
+++ b/include/d/actor/d_a_obj_pdtile.h
@@ -1,6 +1,8 @@
#ifndef D_A_OBJ_PDTILE_H
#define D_A_OBJ_PDTILE_H
+#include "d/d_bg_s_movebg_actor.h"
+#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -11,20 +13,57 @@
* @details
*
*/
-class daObjPDtile_c : public fopAc_ac_c {
+class daObjPDtile_c : public dBgS_MoveBgActor, request_of_phase_process_class {
public:
- /* 80CAACE0 */ void create1st();
+ enum Type {
+ TYPE_0,
+ TYPE_1,
+ TYPE_2,
+ TYPE_3,
+ TYPE_4,
+ };
+
+ /* 80CAACE0 */ int create1st();
/* 80CAAE80 */ void setMtx();
/* 80CAAF90 */ void rideActor(fopAc_ac_c*);
- /* 80CAB1F0 */ void CreateHeap();
- /* 80CAB258 */ void Create();
- /* 80CAB374 */ void Execute(f32 (**)[3][4]);
- /* 80CABF50 */ void Draw();
- /* 80CAC094 */ void Delete();
- /* 80CAC374 */ ~daObjPDtile_c();
+ /* 80CAB1F0 */ int CreateHeap();
+ /* 80CAB258 */ int Create();
+ /* 80CAB374 */ int Execute(Mtx**);
+ /* 80CABF50 */ int Draw();
+ /* 80CAC094 */ int Delete();
+ /* 80CAC374 */ virtual ~daObjPDtile_c() {}
+
+ u8 getType() { return fopAcM_GetParamBit(this, 0, 4); }
private:
- /* 0x568 */ u8 field_0x568[0x7fc - 0x568];
+ /* 0x5A8 */ Mtx mBgMtx;
+ /* 0x5D8 */ Mtx field_0x5d8;
+ /* 0x608 */ J3DModel* mModel;
+ /* 0x60C */ Type mType;
+ /* 0x610 */ int field_0x610;
+ /* 0x614 */ u8 field_0x614;
+ /* 0x618 */ int field_0x618;
+ /* 0x61C */ f32 field_0x61c;
+ /* 0x620 */ cXyz field_0x620;
+ /* 0x62C */ f32 field_0x62c;
+ /* 0x630 */ u8 field_0x630;
+ /* 0x634 */ dCcD_Stts mStts;
+ /* 0x670 */ dCcD_Cyl mCyl;
+ /* 0x7AC */ int field_0x7ac;
+ /* 0x7B0 */ s16 field_0x7b0;
+ /* 0x7B2 */ s16 field_0x7b2;
+ /* 0x7B4 */ u8 field_0x7b4;
+ /* 0x7B5 */ u8 field_0x7b5;
+ /* 0x7B8 */ int field_0x7b8;
+ /* 0x7BC */ char* mArcName;
+ /* 0x7C0 */ u32 mDzbId;
+ /* 0x7C4 */ u32 mBmdId;
+ /* 0x7C8 */ Vec* mCullBox;
+ /* 0x7CC */ f32 field_0x7cc;
+ /* 0x7D0 */ u8 field_0x7d0;
+ /* 0x7D4 */ int field_0x7d4;
+ /* 0x7D8 */ int field_0x7d8;
+ /* 0x7DC */ Z2SoundObjSimple mSoundObj;
};
STATIC_ASSERT(sizeof(daObjPDtile_c) == 0x7fc);
diff --git a/include/d/actor/d_a_obj_stone.h b/include/d/actor/d_a_obj_stone.h
index 3c2cd16742..7e650a3689 100644
--- a/include/d/actor/d_a_obj_stone.h
+++ b/include/d/actor/d_a_obj_stone.h
@@ -18,6 +18,8 @@ enum {
*/
class daObjStone_c : public fopAc_ac_c {
public:
+ typedef void (daObjStone_c::*modeFunc)();
+
u8 getType() { return fopAcM_GetParamBit(this,0,4); }
u8 getItemType() { return fopAcM_GetParamBit(this,4,2); }
u8 getItemNo() { return fopAcM_GetParamBit(this,8,8); }
@@ -67,7 +69,7 @@ private:
/* 0x0908 */ u8 field_0x0908;
/* 0x090C */ u32 mMode; // maybe a better name for this
/* 0x0910 */ cXyz field_0x0910;
- /* 0x091C */ u16 field_0x091c;
+ /* 0x091C */ s16 field_0x091c;
/* 0x091E */ u8 field_0x091E[0x0920 - 0x091E];
/* 0x0920 */ Quaternion field_0x0920;
/* 0x0930 */ Quaternion field_0x0930;
@@ -75,11 +77,14 @@ private:
/* 0x0944 */ f32 mLastPosY;
/* 0x0948 */ f32 mLastSpeedY; // maybe a better name for this
/* 0x094C */ u8 field_0x094c;
- /* 0x094C */ u8 field_0x094d;
+ /* 0x094D */ u8 field_0x094d;
/* 0x094E */ bool mIsInWater;
/* 0x094F */ u8 field_0x094f;
/* 0x0950 */ u8 field_0x0950;
- /* 0x0951 */ u8 field_0x0951[0x0960 - 0x0951];
+ /* 0x0951 */ u8 field_0x0951;
+ /* 0x0954 */ u32 field_0x0954;
+ /* 0x0954 */ u32 field_0x0958;
+ /* 0x0954 */ u32 field_0x095c;
/* 0x0960 */ u32 field_0x0960;
/* 0x0964 */ JPABaseEmitter* field_0x0964[3];
/* 0x0970 */ Z2SoundObjSimple mSound;
diff --git a/include/d/actor/d_a_obj_wdStick.h b/include/d/actor/d_a_obj_wdStick.h
index e5b1c719b4..1e9f531599 100644
--- a/include/d/actor/d_a_obj_wdStick.h
+++ b/include/d/actor/d_a_obj_wdStick.h
@@ -1,6 +1,8 @@
#ifndef D_A_OBJ_WDSTICK_H
#define D_A_OBJ_WDSTICK_H
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -13,14 +15,24 @@
*/
class daWdStick_c : public fopAc_ac_c {
public:
+ typedef void (daWdStick_c::*modeFunc)();
+
+ enum Mode {
+ MODE_WAIT,
+ MODE_CARRY,
+ MODE_DROP,
+ MODE_ROLL,
+ MODE_SINK,
+ };
+
/* 80D31BD0 */ void setBaseMtx();
- /* 80D31C58 */ void CreateHeap();
- /* 80D31CC4 */ void create();
- /* 80D32168 */ void createHeapCallBack(fopAc_ac_c*);
+ /* 80D31C58 */ virtual int CreateHeap();
+ /* 80D31CC4 */ int create();
+ /* 80D32168 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80D32194 */ void lightInit();
/* 80D32198 */ void setLight();
/* 80D3219C */ void setFire();
- /* 80D3269C */ void Execute();
+ /* 80D3269C */ virtual int Execute();
/* 80D32DB4 */ void bgCheck();
/* 80D33348 */ void setBoundSe();
/* 80D333F4 */ void mode_proc_call();
@@ -32,25 +44,58 @@ public:
/* 80D33890 */ void mode_proc_drop();
/* 80D338DC */ void mode_init_roll();
/* 80D338F4 */ void mode_proc_roll();
- /* 80D33D44 */ void chkWaterLineIn();
+ /* 80D33D44 */ BOOL chkWaterLineIn();
/* 80D33D68 */ void mode_init_sink();
/* 80D33D8C */ void mode_proc_sink();
- /* 80D33EB0 */ void Draw();
- /* 80D33F14 */ void Delete();
+ /* 80D33EB0 */ virtual int Draw();
+ /* 80D33F14 */ virtual int Delete();
- static u8 const mCcDObjInfo[48];
- static u8 mCcDSph[64];
+ static dCcD_SrcGObjInf const mCcDObjInfo;
+ static dCcD_SrcSph mCcDSph;
private:
- /* 0x568 */ u8 field_0x568[0xaf8 - 0x568];
+ /* 0x56C */ request_of_phase_process_class mPhase;
+ /* 0x574 */ J3DModel* mModel;
+ /* 0x578 */ u8 mMode;
+ /* 0x579 */ bool misCarrying;
+ /* 0x57C */ cXyz field_0x57c;
+ /* 0x588 */ u8 field_0x588[0x594 - 0x588];
+ /* 0x594 */ cXyz field_0x594;
+ /* 0x5A0 */ dBgS_ObjAcch mAcch;
+ /* 0x778 */ dBgS_AcchCir mAcchCir;
+ /* 0x7B8 */ dCcD_Stts mStts;
+ /* 0x7F4 */ dCcD_Sph mSph1;
+ /* 0x92C */ dCcD_Sph mSph2;
+ /* 0xA64 */ cXyz field_0xa64;
+ /* 0xA70 */ cXyz field_0xa70;
+ /* 0xA7C */ cXyz field_0xa7c;
+ /* 0xA88 */ cXyz field_0xa88;
+ /* 0xA94 */ cXyz field_0xa94;
+ /* 0xAA0 */ cXyz field_0xaa0;
+ /* 0xAAC */ u8 field_0xaac;
+ /* 0xAAD */ u8 field_0xaad;
+ /* 0xAAE */ u16 field_0xaae;
+ /* 0xAB0 */ u16 field_0xab0;
+ /* 0xAB4 */ cXyz field_0xab4;
+ /* 0xAC0 */ cXyz field_0xac0;
+ /* 0xACC */ cXyz field_0xacc;
+ /* 0xAD8 */ cXyz field_0xad8;
+ /* 0xAE4 */ u32 field_0xae4[2];
+ /* 0xAEC */ u32 field_0xaec[2];
+ /* 0xAF4 */ u8 field_0xaf4;
};
STATIC_ASSERT(sizeof(daWdStick_c) == 0xaf8);
-class daWdStick_HIO_c {
+class daWdStick_HIO_c : public mDoHIO_entry_c {
public:
/* 80D31B4C */ daWdStick_HIO_c();
- /* 80D34030 */ ~daWdStick_HIO_c();
+ /* 80D34030 */ virtual ~daWdStick_HIO_c() {}
+
+ /* 0x04 */ u8 field_0x04;
+ /* 0x05 */ u8 field_0x05;
+ /* 0x06 */ s16 field_0x06;
+ /* 0x08 */ u8 field_0x08;
};
diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h
index 271beebeb8..d044673891 100644
--- a/include/d/actor/d_a_player.h
+++ b/include/d/actor/d_a_player.h
@@ -894,6 +894,7 @@ public:
bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; }
bool getHeavyStateAndBoots() { return checkNoResetFlg0(FLG0_HVY_STATE); }
bool checkEnemyAttentionLock() const { return checkResetFlg0(RFLG0_ENEMY_ATTN_LOCK); }
+ bool getGrabUpStart() const { return checkResetFlg0(RFLG0_UNK_8000); }
bool checkCanoeSlider() const { return mSpecialMode == 0x2D; }
bool checkGoatStopGame() const { return mSpecialMode == 0x2A; }
u8 getCutType() const { return mCutType; }
diff --git a/src/Z2AudioLib/Z2SeMgr.cpp b/src/Z2AudioLib/Z2SeMgr.cpp
index 920ee7c900..4c3a4c7655 100644
--- a/src/Z2AudioLib/Z2SeMgr.cpp
+++ b/src/Z2AudioLib/Z2SeMgr.cpp
@@ -119,7 +119,7 @@ void Z2SeMgr::modHeightAtCamera(Vec const** param_0) {
}
}
field_0x340[idx] = **param_0;
- Vec cam_pos = Z2GetAudience()->getAudioCamPos();
+ Vec cam_pos = Z2GetAudience()->getAudioCamPos(0);
if (field_0x340[idx].y > cam_pos.y) {
field_0x340[idx].y = cam_pos.y;
}
@@ -266,19 +266,19 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
break;
case Z2SE_SY_TALK_START:
case Z2SE_SY_TALK_END:
- if (Z2GetSceneMgr()->getCurrentSceneNum() != 0) {
+ if (Z2GetStatusMgr()->getDemoStatus() != 0) {
return false;
}
break;
case Z2SE_SY_TALK_NEXT:
- if (Z2GetSceneMgr()->isMovieDemo()) {
+ if (Z2GetStatusMgr()->isMovieDemo()) {
i_soundID = Z2SE_SY_DEMO_MESSAGE_NEXT;
}
break;
case Z2SE_SY_TALK_WIN_CLOSE:
- if (Z2GetSceneMgr()->getCurrentSceneNum() == 1) {
+ if (Z2GetStatusMgr()->getDemoStatus() == 1) {
i_soundID = Z2SE_SY_TALK_END;
- } else if (Z2GetSceneMgr()->isMovieDemo()) {
+ } else if (Z2GetStatusMgr()->isMovieDemo()) {
i_soundID = Z2SE_SY_DEMO_MESSAGE_END;
}
break;
@@ -287,11 +287,13 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
return false;
}
break;
- case Z2SE_OBJ_CHANDELIER_SWING:
- if (i_pos->y > Z2GetAudience()->getAudioCamPos().y) {
+ case Z2SE_OBJ_CHANDELIER_SWING: {
+ Vec tmp = Z2GetAudience()->getAudioCamPos(0);
+ if (i_pos->y > tmp.y) {
return false;
}
break;
+ }
case Z2SE_OBJ_CHANDLV5_SWING:
i_volume = Z2Calc::getParamByExp(param_2, 35.0f, 261.0f, 0.4f, 0.05f, 1.0f,
Z2Calc::CURVE_SIGN_2);
@@ -313,7 +315,8 @@ bool Z2SeMgr::seStart(JAISoundID i_soundID, Vec const* i_pos, u32 param_2, s8 i_
Z2Calc::CURVE_SIGN_2);
break;
case Z2SE_OBJ_L8_B_FOG_FLY:
- if (i_pos->y > Z2GetAudience()->getAudioCamPos().y) {
+ Vec tmp = Z2GetAudience()->getAudioCamPos(0);
+ if (i_pos->y > tmp.y) {
return false;
}
break;
diff --git a/src/Z2AudioLib/Z2SoundMgr.cpp b/src/Z2AudioLib/Z2SoundMgr.cpp
index 5d1f8952df..f0de70d5a5 100644
--- a/src/Z2AudioLib/Z2SoundMgr.cpp
+++ b/src/Z2AudioLib/Z2SoundMgr.cpp
@@ -1,5 +1,4 @@
//
-// Generated By: dol2asm
// Translation Unit: Z2SoundMgr
//
@@ -169,7 +168,6 @@ bool Z2SoundMgr::startSound(JAISoundID i_soundID, JAISoundHandle* i_handle,
/* 802AA1B0-802AA270 2A4AF0 00C0+00 2/2 0/0 0/0 .text calc__10Z2SoundMgrFv */
-// NONMATCHING extra load
void Z2SoundMgr::calc() {
mSeMgr.calc();
if (!mSoundID.isAnonymous() && !isPlayingSoundID(mSoundID)) {
@@ -358,7 +356,6 @@ void Z2SoundMgr::initParams() {
/* 802AA9E8-802AAAC4 2A5328 00DC+00 0/0 1/1 0/0 .text
* multiVolumeSoundID__10Z2SoundMgrF10JAISoundIDf */
-// NONMATCHING extra load
void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
if (!i_soundID.isAnonymous() && Z2GetSoundInfo()->getSoundType(i_soundID) == 0) {
JSUList<JAISe>* list =
@@ -373,7 +370,6 @@ void Z2SoundMgr::multiVolumeSoundID(JAISoundID i_soundID, f32 i_multi) {
/* 802AAAC4-802AAB94 2A5404 00D0+00 1/1 0/0 0/0 .text isPlayingSoundID__10Z2SoundMgrF10JAISoundID
*/
-// NONMATCHING extra load
bool Z2SoundMgr::isPlayingSoundID(JAISoundID i_soundID) {
if (i_soundID.isAnonymous()) {
return false;
diff --git a/src/Z2AudioLib/Z2WolfHowlMgr.cpp b/src/Z2AudioLib/Z2WolfHowlMgr.cpp
index f8030a3c77..5e51235357 100644
--- a/src/Z2AudioLib/Z2WolfHowlMgr.cpp
+++ b/src/Z2AudioLib/Z2WolfHowlMgr.cpp
@@ -463,7 +463,7 @@ void Z2WolfHowlMgr::startWindStoneSound(s8 param_0, Vec* param_1) {
if (param_1 == NULL || Z2GetLink() == NULL || Z2GetLink()->getCurrentPos() == NULL) {
return;
}
- Vec local_60 = Z2GetAudience()->getAudioCamPos();
+ Vec local_60 = Z2GetAudience()->getAudioCamPos(0);
f32 dVar13 = sqrtf(VECSquareDistance(param_1, &local_60));
if (dVar13 > 2100.0f && field_0x04) {
field_0x04->stop();
diff --git a/src/d/actor/d_a_e_oct_bg.cpp b/src/d/actor/d_a_e_oct_bg.cpp
index b01598248c..ba57c225e4 100644
--- a/src/d/actor/d_a_e_oct_bg.cpp
+++ b/src/d/actor/d_a_e_oct_bg.cpp
@@ -847,7 +847,7 @@ void daE_OctBg_c::damage_check() {
dScnPly_c::setPauseTimer(0);
field_0x8c0.ClrTgHit();
field_0x5bc.startCreatureVoice(Z2SE_EN_BG_V_DAMAGE, -1);
- if (field_0xb30.mpCollider->ChkAtType(0x4000)) {
+ if (field_0xb30.mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) {
setAction(&daE_OctBg_c::hook);
} else {
setAction(&daE_OctBg_c::damage);
diff --git a/src/d/actor/d_a_myna.cpp b/src/d/actor/d_a_myna.cpp
index 3468c2b790..70da16e9c0 100644
--- a/src/d/actor/d_a_myna.cpp
+++ b/src/d/actor/d_a_myna.cpp
@@ -1362,12 +1362,11 @@ void daMyna_c::deleteItem(int i_itemIndex) {
}
/* 80949144-80949190 0035C4 004C+00 0/0 0/0 0/0 .text deleteItem__8daMyna_cFUi */
-// Nonmatching, no clue what's going on here
void daMyna_c::deleteItem(fpc_ProcID i_itemId) {
for (int i = 0; i < mNumShopItems; i++) {
if (i_itemId == mShopItems[i].mTargetActorID) {
- mShopItems[i].mTargetActorID = -1;
- mShopItems[i].mItemStatus = 4;
+ mShopItems[i_itemId].mTargetActorID = -1;
+ mShopItems[i_itemId].mItemStatus = 4;
}
}
}
@@ -1791,7 +1790,7 @@ void daMyna_c::playDefaultWaitAnime() {
setAnimeType(1, 0.0f);
}
break;
- case 6:
+ case 6: {
cXyz local_58;
cXyz local_64;
cXyz stack_70;
@@ -1818,6 +1817,7 @@ void daMyna_c::playDefaultWaitAnime() {
setAnimeType(1, 6.0f);
}
break;
+ }
case 5:
cXyz local_94;
cXyz stack_a0;
diff --git a/src/d/actor/d_a_npc_lf.cpp b/src/d/actor/d_a_npc_lf.cpp
index c683741fea..edc8e61a7a 100644
--- a/src/d/actor/d_a_npc_lf.cpp
+++ b/src/d/actor/d_a_npc_lf.cpp
@@ -55,7 +55,7 @@ static int daNPC_LF_Draw(npc_lf_class* i_this) {
for (int i = 0; i < i_this->mIter; i++, fish++) {
if (fish->field_0x17 == 0) {
if (j == 0) {
- g_env_light.settingTevStruct(0, &fish->field_0x04, &i_this->tevStr);
+ g_env_light.settingTevStruct(0, &fish->mPos, &i_this->tevStr);
}
j++;
@@ -77,151 +77,150 @@ static u8 data_80A6AA90;
/* 80A6AAA0-80A6AABC 000018 001C+00 4/4 0/0 0/0 .bss l_HIO */
static daNPC_LF_HIO_c l_HIO;
+f32 dummyLiteral1() { return 50.0f; }
+f32 dummyLiteral2() { return 0.0f; }
+
/* 80A69D90-80A6A1B8 000310 0428+00 1/1 0/0 0/0 .text npc_lf_move__FP10fopAc_ac_cP4lf_s
*/
- // NONMATCHING - still missing some instructions + float literals
-static void npc_lf_move(fopAc_ac_c* param_0, lf_s* param_1) {
+static void npc_lf_move(fopAc_ac_c* param_0, lf_s* pFish) {
cXyz pos;
s16 maxStepAngle;
f32 maxStep;
- if ((u8)(param_1->field_0x18) == 0) {
- param_1->mDistFromPlayer = fopAcM_searchPlayerDistance(param_0);
+ if ((pFish->field_0x18 & 7) == 0) {
+ pFish->mDistFromPlayer = fopAcM_searchPlayerDistance(param_0);
}
- switch (param_1->field_0x1c) {
+ switch (pFish->field_0x1c) {
case 0:
- if (param_1->field_0x38[0] == 0) {
+ if (pFish->field_0x38[0] == 0) {
for (int i = 0; i < 100; i++) {
- param_1->field_0x20.x = param_0->home.pos.x + cM_rndFX(500.0f);
- param_1->field_0x20.y = param_0->home.pos.y + cM_rndFX(100.0f);
- param_1->field_0x20.z = param_0->home.pos.z + cM_rndFX(500.0f);
+ pFish->field_0x20.x = param_0->home.pos.x + cM_rndFX(500.0f);
+ pFish->field_0x20.y = param_0->home.pos.y + cM_rndFX(100.0f);
+ pFish->field_0x20.z = param_0->home.pos.z + cM_rndFX(500.0f);
- pos = param_1->field_0x20 - param_1->field_0x04;
+ pos = pFish->field_0x20 - pFish->mPos;
pos.y = 0.0f;
if (pos.abs() > 250.0f) {
- param_1->field_0x1c = 1;
- param_1->field_0x38[0] = cM_rndF(30.0f) + 30.0f;
+ pFish->field_0x1c = 1;
+ pFish->field_0x38[0] = cM_rndF(30.0f) + 30.0f;
break;
}
}
}
- param_1->field_0x40 = 0.1f;
- maxStepAngle = 0x400;
- maxStep = 0.5f;
+ pFish->field_0x40 = 0.1f;
+ maxStepAngle = 0;
+ maxStep = 0.05f;
break;
case 1:
- if (param_1->field_0x38[0] != 0) {
- param_1->field_0x1c = 0;
- param_1->field_0x38[0] = cM_rndF(10.0f);
+ if (pFish->field_0x38[0] == 0) {
+ pFish->field_0x1c = 0;
+ pFish->field_0x38[0] = 10.0f + cM_rndF(10.0f);
}
- param_1->field_0x40 = l_HIO.field_0x0c;
- maxStepAngle = 0;
- maxStep = 0.05f;
+ pFish->field_0x40 = l_HIO.field_0x0c;
+ maxStepAngle = 0x400;
+ maxStep = 0.5f;
break;
}
- if (param_1->field_0x38[1] == 0) {
+ if (pFish->field_0x38[1] != 0) {
maxStep = 0.5f;
- param_1->field_0x40 = l_HIO.field_0x14;
+ pFish->field_0x40 = l_HIO.field_0x14;
maxStepAngle = 0x600;
} else {
- if (param_1->mDistFromPlayer < l_HIO.field_0x18) {
- param_1->field_0x38[1] = cM_rndF(20.0f) + 20.0f;
+ if (pFish->mDistFromPlayer < l_HIO.field_0x18) {
+ pFish->field_0x38[1] = cM_rndF(20.0f) + 20.0f;
- if (param_1->field_0x1c == 1)
- param_1->field_0x1c = 0;
+ if (pFish->field_0x1c == 1)
+ pFish->field_0x1c = 0;
}
}
- pos = param_1->field_0x20 - param_1->field_0x04;
- s16 old_pos_y = param_1->field_0x10.y;
+ pos = pFish->field_0x20 - pFish->mPos;
+ s16 old_pos_y = pFish->mAngle.y;
- cLib_addCalcAngleS2(&param_1->field_0x10.y, cM_atan2s(pos.x,pos.z),4,maxStepAngle);
- cLib_addCalcAngleS2(&param_1->field_0x10.x, -cM_atan2s(pos.y,JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z))),4,maxStepAngle);
+ cLib_addCalcAngleS2(&pFish->mAngle.y, cM_atan2s(pos.x,pos.z),4,maxStepAngle);
+ cLib_addCalcAngleS2(&pFish->mAngle.x, -cM_atan2s(pos.y,JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z))),4,maxStepAngle);
- f32 float1 = (old_pos_y - param_1->field_0x10.y);
- float1 *= 5.0f;
- f32 float2 = 4000.0f;
+ old_pos_y -= pFish->mAngle.y;
+ f32 float1 = old_pos_y * 5.0f;
if (float1 > 4000.0f) {
+ float1 = 4000.0f;
+ } else {
if (float1 < -4000.0f) {
- float2 = -4000.0f;
+ float1 = -4000.0f;
}
- } else {
- float2 = 4000.0f;
}
- cLib_addCalc2(&param_1->field_0x58, float2, 0.5f, 1000.0f);
- cLib_addCalc2(&param_1->field_0x44, (param_1->field_0x3c * l_HIO.field_0x08), 1.0f, maxStep);
+ cLib_addCalc2(&pFish->field_0x58, float1, 0.5f, 1000.0f);
+ cLib_addCalc2(&pFish->field_0x44, (pFish->field_0x3c * l_HIO.field_0x10), 1.0f, maxStep);
}
/* 80A6A1B8-80A6A420 000738 0268+00 1/1 0/0 0/0 .text action__FP10fopAc_ac_cP4lf_s */
-// NONMATCHING - second for loop incorrect
-static void action(fopAc_ac_c* param_0, lf_s* param_1) {
+static void action(fopAc_ac_c* param_0, lf_s* pFish) {
cXyz pos;
- param_1->field_0x18++;
+ pFish->field_0x18++;
for (int i = 0; i < 2; i++) {
- if (param_1->field_0x38[i] != 0) {
- param_1->field_0x38[i]--;
+ if (pFish->field_0x38[i] != 0) {
+ pFish->field_0x38[i]--;
}
}
- switch (param_1->mActionMode) {
+ switch (pFish->mActionMode) {
case npc_lf_class::ACT_MOVE:
- npc_lf_move(param_0,param_1);
+ npc_lf_move(param_0,pFish);
}
- cMtx_YrotS(*calc_mtx,param_1->field_0x10.y);
- cMtx_XrotM(*calc_mtx,param_1->field_0x10.x);
+ cMtx_YrotS(*calc_mtx,pFish->mAngle.y);
+ cMtx_XrotM(*calc_mtx,pFish->mAngle.x);
pos.x = 0.0f;
pos.y = 0.0f;
- pos.z = param_1->field_0x44 * l_HIO.field_0x08;
+ pos.z = pFish->field_0x44 * l_HIO.field_0x08;
MtxPosition(&pos,&pos);
- param_1->field_0x04 += pos;
+ pFish->mPos += pos;
- cLib_addCalc2(&param_1->field_0x3c,param_1->field_0x40,1.0f,0.2f);
- cLib_addCalc2(&param_1->field_0x5c,(param_1->field_0x3c * 2000.0f + 2000.0f),0.5f,200.0f);
+ cLib_addCalc2(&pFish->field_0x3c,pFish->field_0x40,1.0f,0.2f);
+ cLib_addCalc2(&pFish->field_0x5c,(pFish->field_0x3c * 2000.0f + 2000.0f),0.5f,200.0f);
- param_1->field_0x4c[1] = param_1->field_0x3c * 13000.0f + 2000.0f;
- param_1->field_0x4c[0] += param_1->field_0x4c[1];
+ pFish->field_0x4c[1] = pFish->field_0x3c * 13000.0f + 2000.0f;
+ pFish->field_0x4c[0] += pFish->field_0x4c[1];
- for (int i = 0, j = 0; i < 3; i++, j++) {
-
- f32 tmp = wp[j] * param_1->field_0x5c;
- param_1->field_0x50[i] = tmp * cM_ssin(param_1->field_0x4c[j]);
+ for (int i = 0; i < 3; i++) {
+ pFish->field_0x50[i + 1] = cM_ssin(-15000 * i + pFish->field_0x4c[0]) * pFish->field_0x5c * wp[i];
}
- param_1->field_0x50[0] = param_1->field_0x5c * cM_ssin((param_1->field_0x4c[0] - 7000)) * 0.3f;
+ pFish->field_0x50[0] = pFish->field_0x5c * cM_ssin((pFish->field_0x4c[0] - 7000)) * -0.3f;
- mDoMtx_stack_c::transS(param_1->field_0x04.x,param_1->field_0x04.y,param_1->field_0x04.z);
- mDoMtx_stack_c::YrotM(param_1->field_0x10.y + param_1->field_0x50[0]);
- mDoMtx_stack_c::XrotM(param_1->field_0x10.x);
- f32 value = param_1->field_0x60 * l_HIO.field_0x08;
+ mDoMtx_stack_c::transS(pFish->mPos.x,pFish->mPos.y,pFish->mPos.z);
+ mDoMtx_stack_c::YrotM(pFish->mAngle.y + pFish->field_0x50[0]);
+ mDoMtx_stack_c::XrotM(pFish->mAngle.x);
+ f32 value = pFish->field_0x60 * l_HIO.field_0x08;
mDoMtx_stack_c::scaleM(value,value,value);
- param_1->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
+ pFish->mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80A6A420-80A6A514 0009A0 00F4+00 2/1 0/0 0/0 .text daNPC_LF_Execute__FP12npc_lf_class
*/
-// NONMATCHING - regalloc
-static int daNPC_LF_Execute(npc_lf_class* i_this) {
- camera_class* camera = dComIfGp_getCamera(0);
- lf_s* fish = i_this->mFish;
-
+static int daNPC_LF_Execute(npc_lf_class* i_this2) {
+ npc_lf_class* i_this = (npc_lf_class*) i_this2;
+ view_class* camera;
+ lf_s* fish;
+ cXyz pos;
+ cXyz pos2;
+ camera = dComIfGp_getCamera(0);
+ fish = i_this->mFish;
for (int i = 0; i < i_this->mIter; i++, fish++) {
- cXyz pos;
- pos.x = fish->field_0x04.x - camera->lookat.eye.x;
- pos.z = fish->field_0x04.z - camera->lookat.eye.z;
+ pos.x = fish->mPos.x - camera->lookat.eye.x;
+ pos.z = fish->mPos.z - camera->lookat.eye.z;
- f32 res = JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z));
- if (res < 1500.0f) {
+ if (JMAFastSqrt((pos.x * pos.x) + (pos.z * pos.z)) < 1500.0f) {
fish->field_0x17 = 0;
action(i_this, fish);
} else {
@@ -276,7 +275,6 @@ static int useHeapInit(fopAc_ac_c* i_this) {
}
/* 80A6A650-80A6A8A4 000BD0 0254+00 1/0 0/0 0/0 .text daNPC_LF_Create__FP10fopAc_ac_c */
-// NONMATCHING - float literals
static cPhs__Step daNPC_LF_Create(fopAc_ac_c* i_this) {
fopAcM_SetupActor(i_this, npc_lf_class);
npc_lf_class* a_this = static_cast<npc_lf_class*>(i_this);
@@ -319,10 +317,10 @@ static cPhs__Step daNPC_LF_Create(fopAc_ac_c* i_this) {
for (int i = 0; i < a_this->mIter; i++, fish++) {
fish->mActionMode = npc_lf_class::ACT_MOVE;
- fish->field_0x04.x = a_this->current.pos.x + cM_rndFX(300.0f);
- fish->field_0x04.y = a_this->current.pos.y + cM_rndFX(50.0f);
- fish->field_0x04.z = a_this->current.pos.z + cM_rndFX(300.0f);
- fish->field_0x10.y = cM_rndF(65536.0f);
+ fish->mPos.x = a_this->current.pos.x + cM_rndFX(300.0f);
+ fish->mPos.y = a_this->current.pos.y + cM_rndFX(50.0f);
+ fish->mPos.z = a_this->current.pos.z + cM_rndFX(300.0f);
+ fish->mAngle.y = cM_rndF(65536.0f);
fish->field_0x48 = cM_rndFX(0.1f) + 0.6f;
fish->field_0x60 = cM_rndFX(0.1f) + 0.6f;
// fish++;
diff --git a/src/d/actor/d_a_obj_crvsteel.cpp b/src/d/actor/d_a_obj_crvsteel.cpp
index 1512e2d711..d3081d9894 100644
--- a/src/d/actor/d_a_obj_crvsteel.cpp
+++ b/src/d/actor/d_a_obj_crvsteel.cpp
@@ -4,228 +4,169 @@
*/
#include "d/actor/d_a_obj_crvsteel.h"
+#include "d/d_com_inf_game.h"
#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" static void daObjCRVSTEEL_Create__FP10fopAc_ac_c();
-extern "C" static void daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c();
-extern "C" void OpenSet__15daObjCRVSTEEL_cFff();
-extern "C" void CloseSet__15daObjCRVSTEEL_cFf();
-extern "C" void CloseExecute__15daObjCRVSTEEL_cFv();
-extern "C" void OpenExecute__15daObjCRVSTEEL_cFv();
-extern "C" void Action__15daObjCRVSTEEL_cFv();
-extern "C" void setBaseMtx__15daObjCRVSTEEL_cFv();
-extern "C" static void daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c();
-extern "C" static void daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c();
-extern "C" void CreateHeap__15daObjCRVSTEEL_cFv();
-extern "C" void create__15daObjCRVSTEEL_cFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" static bool daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c();
-extern "C" void Create__15daObjCRVSTEEL_cFv();
-extern "C" void Execute__15daObjCRVSTEEL_cFPPA3_A4_f();
-extern "C" void Draw__15daObjCRVSTEEL_cFv();
-extern "C" void Delete__15daObjCRVSTEEL_cFv();
-extern "C" static void func_80BD61F0();
-extern "C" static void func_80BD61F8();
-extern "C" extern char const* const d_a_obj_crvsteel__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
-extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci();
-extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
-extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
-extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void __ct__16dBgS_MoveBgActorFv();
-extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
-extern "C" bool ToFore__16dBgS_MoveBgActorFv();
-extern "C" bool ToBack__16dBgS_MoveBgActorFv();
-extern "C" void
-MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
-extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
-extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void __dl__FPv();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_28();
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" f32 mGroundY__11fopAcM_gc_c;
-
-//
-// Declarations:
-//
-
/* 80BD5BB8-80BD5BD8 000078 0020+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Create__FP10fopAc_ac_c */
-static void daObjCRVSTEEL_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
+static int daObjCRVSTEEL_Create(fopAc_ac_c* i_this) {
+ return static_cast<daObjCRVSTEEL_c*>(i_this)->create();
}
/* 80BD5BD8-80BD5BFC 000098 0024+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c */
-static void daObjCRVSTEEL_Delete(daObjCRVSTEEL_c* param_0) {
- // NONMATCHING
+static int daObjCRVSTEEL_Delete(daObjCRVSTEEL_c* i_this) {
+ i_this->MoveBGDelete();
+ return 1;
}
/* 80BD5BFC-80BD5C18 0000BC 001C+00 0/0 0/0 1/1 .text OpenSet__15daObjCRVSTEEL_cFff */
-void daObjCRVSTEEL_c::OpenSet(f32 param_0, f32 param_1) {
- // NONMATCHING
+void daObjCRVSTEEL_c::OpenSet(f32 param_1, f32 param_2) {
+ speed.y = param_1;
+ mMaxHeight = current.pos.y + param_2;
+ mAction = 1;
}
/* 80BD5C18-80BD5C28 0000D8 0010+00 0/0 0/0 1/1 .text CloseSet__15daObjCRVSTEEL_cFf */
-void daObjCRVSTEEL_c::CloseSet(f32 param_0) {
- // NONMATCHING
+void daObjCRVSTEEL_c::CloseSet(f32 param_1) {
+ speed.y = param_1;
+ mAction = 2;
}
-/* ############################################################################################## */
-/* 80BD6208-80BD620C 000000 0004+00 3/3 0/0 0/0 .rodata @3789 */
-SECTION_RODATA static f32 const lit_3789 = 5.0f;
-COMPILER_STRIP_GATE(0x80BD6208, &lit_3789);
-
/* 80BD5C28-80BD5CA0 0000E8 0078+00 1/1 0/0 0/0 .text CloseExecute__15daObjCRVSTEEL_cFv
*/
void daObjCRVSTEEL_c::CloseExecute() {
- // NONMATCHING
+ current.pos.y += speed.y;
+ if (current.pos.y < mMinHeight) {
+ current.pos.y = mMinHeight;
+ fopAcM_effSmokeSet1(&mSmokeParticle1, &mSmokeParticle2, &current.pos, 0, 5.0f, &tevStr, 1);
+ mAction = 0;
+ }
}
/* 80BD5CA0-80BD5CC8 000160 0028+00 1/1 0/0 0/0 .text OpenExecute__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::OpenExecute() {
- // NONMATCHING
+ current.pos.y += speed.y;
+ if (current.pos.y > mMaxHeight) {
+ current.pos.y = mMaxHeight;
+ }
}
/* 80BD5CC8-80BD5D10 000188 0048+00 1/1 0/0 0/0 .text Action__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::Action() {
- // NONMATCHING
+ switch(mAction) {
+ case 0:
+ break;
+ case 1:
+ OpenExecute();
+ break;
+ case 2:
+ CloseExecute();
+ break;
+ }
}
/* 80BD5D10-80BD5D6C 0001D0 005C+00 1/1 0/0 0/0 .text setBaseMtx__15daObjCRVSTEEL_cFv */
void daObjCRVSTEEL_c::setBaseMtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
+ mModel->setBaseTRMtx(mDoMtx_stack_c::get());
+ cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
}
/* 80BD5D6C-80BD5D98 00022C 002C+00 1/0 0/0 0/0 .text daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c */
-static void daObjCRVSTEEL_Draw(daObjCRVSTEEL_c* param_0) {
- // NONMATCHING
+static int daObjCRVSTEEL_Draw(daObjCRVSTEEL_c* i_this) {
+ return i_this->Draw();
}
/* 80BD5D98-80BD5DB8 000258 0020+00 2/1 0/0 0/0 .text daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c
*/
-static void daObjCRVSTEEL_Execute(daObjCRVSTEEL_c* param_0) {
- // NONMATCHING
+static int daObjCRVSTEEL_Execute(daObjCRVSTEEL_c* i_this) {
+ return i_this->MoveBGExecute();
}
-/* ############################################################################################## */
-/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80BD623C = "CrvSteel";
-SECTION_DEAD static char const* const stringBase_80BD6245 = "U_CrvSteelGate.bmd";
-#pragma pop
-
/* 80BD626C-80BD6270 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
-SECTION_DATA static void* l_arcName = (void*)&d_a_obj_crvsteel__stringBase0;
+static char* l_arcName = "CrvSteel";
/* 80BD5DB8-80BD5E30 000278 0078+00 1/0 0/0 0/0 .text CreateHeap__15daObjCRVSTEEL_cFv */
-void daObjCRVSTEEL_c::CreateHeap() {
- // NONMATCHING
+int daObjCRVSTEEL_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "U_CrvSteelGate.bmd");
+ JUT_ASSERT(86, modelData != 0);
+ mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ return mModel != NULL ? TRUE : FALSE;
}
-/* ############################################################################################## */
-/* 80BD620C-80BD6210 000004 0004+00 0/1 0/0 0/0 .rodata @3900 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3900 = -9.0f;
-COMPILER_STRIP_GATE(0x80BD620C, &lit_3900);
-#pragma pop
-
-/* 80BD6210-80BD6214 000008 0004+00 0/1 0/0 0/0 .rodata @3901 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3901 = 100.0f;
-COMPILER_STRIP_GATE(0x80BD6210, &lit_3901);
-#pragma pop
-
-/* 80BD6214-80BD6218 00000C 0004+00 0/1 0/0 0/0 .rodata @3902 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3902 = -400.0f;
-COMPILER_STRIP_GATE(0x80BD6214, &lit_3902);
-#pragma pop
-
-/* 80BD6218-80BD621C 000010 0004+00 0/1 0/0 0/0 .rodata @3903 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3903[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80BD6218, &lit_3903);
-#pragma pop
+/* 80BD5E30-80BD6030 0002F0 0200+00 1/1 0/0 0/0 .text create__15daObjCRVSTEEL_cFv */
+int daObjCRVSTEEL_c::create() {
+ fopAcM_SetupActor(this, daObjCRVSTEEL_c);
+ int rv = dComIfG_resLoad(&mPhase, l_arcName);
+ if (rv == cPhs_COMPLEATE_e) {
+ gravity = -9.0f;
+ int dzb_id = dComIfG_getObjctResName2Index(l_arcName, "U_CrvSteelGate.dzb");
+ JUT_ASSERT()
+ if (dzb_id == -1) {
+ OS_REPORT("dzbデータが見つかりませんでした!<%s>\n\n", l_arcName);
+ JUT_PANIC(443, dzb_id != -1);
+ }
+ rv = MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY, 0x4000, NULL);
+ if (rv == cPhs_ERROR_e) {
+ return rv;
+ }
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
+ &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
+ fopAcM_SetMtx(this, mModel->getBaseTRMtx());
+ cXyz cStack_30(current.pos.x, current.pos.y + 100.0f,
+ current.pos.z);
+ if (fopAcM_gc_c::gndCheck(&cStack_30)) {
+ current.pos.y = fopAcM_gc_c::getGroundY();
+ mMinHeight = current.pos.y;
+ }
+ fopAcM_setCullSizeBox(this, -400.0f, 0.0f, -50.0f, 400.0f, 900.0f, 50.0f);
+ daObjCRVSTEEL_Execute(this);
+ }
+ return rv;
+}
-/* 80BD621C-80BD6220 000014 0004+00 0/1 0/0 0/0 .rodata @3904 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3904 = -50.0f;
-COMPILER_STRIP_GATE(0x80BD621C, &lit_3904);
-#pragma pop
+/* 80BD60A0-80BD60A8 000560 0008+00 1/0 0/0 0/0 .text daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c
+ */
+static int daObjCRVSTEEL_IsDelete(daObjCRVSTEEL_c* param_0) {
+ return 1;
+}
-/* 80BD6220-80BD6224 000018 0004+00 0/1 0/0 0/0 .rodata @3905 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3905 = 400.0f;
-COMPILER_STRIP_GATE(0x80BD6220, &lit_3905);
-#pragma pop
+/* 80BD60A8-80BD60EC 000568 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVSTEEL_cFv */
+int daObjCRVSTEEL_c::Create() {
+ fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0, 1000.0f);
+ return cPhs_COMPLEATE_e;
+}
-/* 80BD6224-80BD6228 00001C 0004+00 0/1 0/0 0/0 .rodata @3906 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3906 = 900.0f;
-COMPILER_STRIP_GATE(0x80BD6224, &lit_3906);
-#pragma pop
+/* 80BD60EC-80BD6138 0005AC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVSTEEL_cFPPA3_A4_f */
+int daObjCRVSTEEL_c::Execute(Mtx** param_1) {
+ Action();
+ *param_1 = &mBgMtx;
+ setBaseMtx();
+ return 1;
+}
-/* 80BD6228-80BD622C 000020 0004+00 0/1 0/0 0/0 .rodata @3907 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3907 = 50.0f;
-COMPILER_STRIP_GATE(0x80BD6228, &lit_3907);
-#pragma pop
+/* 80BD6138-80BD61BC 0005F8 0084+00 1/0 0/0 0/0 .text Draw__15daObjCRVSTEEL_cFv */
+int daObjCRVSTEEL_c::Draw() {
+ g_env_light.settingTevStruct(8, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
+ dComIfGd_setListBG();
+ mDoExt_modelUpdateDL(mModel);
+ return 1;
+}
-/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80BD6258 = "U_CrvSteelGate.dzb";
-#pragma pop
+/* 80BD61BC-80BD61F0 00067C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVSTEEL_cFv */
+int daObjCRVSTEEL_c::Delete() {
+ dComIfG_resDelete(&mPhase, l_arcName);
+ return 1;
+}
/* 80BD6270-80BD6290 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCRVSTEEL_Method */
static actor_method_class l_daObjCRVSTEEL_Method = {
- (process_method_func)daObjCRVSTEEL_Create__FP10fopAc_ac_c,
- (process_method_func)daObjCRVSTEEL_Delete__FP15daObjCRVSTEEL_c,
- (process_method_func)daObjCRVSTEEL_Execute__FP15daObjCRVSTEEL_c,
- (process_method_func)daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c,
- (process_method_func)daObjCRVSTEEL_Draw__FP15daObjCRVSTEEL_c,
+ (process_method_func)daObjCRVSTEEL_Create,
+ (process_method_func)daObjCRVSTEEL_Delete,
+ (process_method_func)daObjCRVSTEEL_Execute,
+ (process_method_func)daObjCRVSTEEL_IsDelete,
+ (process_method_func)daObjCRVSTEEL_Draw,
};
/* 80BD6290-80BD62C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_CRVSTEEL */
@@ -246,107 +187,4 @@ extern actor_process_profile_definition g_profile_Obj_CRVSTEEL = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
-/* 80BD62C0-80BD62E4 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80BD61F8,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80BD61F0,
-};
-
-/* 80BD62E4-80BD630C 000078 0028+00 1/1 0/0 0/0 .data __vt__15daObjCRVSTEEL_c */
-SECTION_DATA extern void* __vt__15daObjCRVSTEEL_c[10] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)CreateHeap__15daObjCRVSTEEL_cFv,
- (void*)Create__15daObjCRVSTEEL_cFv,
- (void*)Execute__15daObjCRVSTEEL_cFPPA3_A4_f,
- (void*)Draw__15daObjCRVSTEEL_cFv,
- (void*)Delete__15daObjCRVSTEEL_cFv,
- (void*)IsDelete__16dBgS_MoveBgActorFv,
- (void*)ToFore__16dBgS_MoveBgActorFv,
- (void*)ToBack__16dBgS_MoveBgActorFv,
-};
-
-/* 80BD5E30-80BD6030 0002F0 0200+00 1/1 0/0 0/0 .text create__15daObjCRVSTEEL_cFv */
-void daObjCRVSTEEL_c::create() {
- // NONMATCHING
-}
-
-/* 80BD6030-80BD60A0 0004F0 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
-
-/* 80BD60A0-80BD60A8 000560 0008+00 1/0 0/0 0/0 .text daObjCRVSTEEL_IsDelete__FP15daObjCRVSTEEL_c
- */
-static bool daObjCRVSTEEL_IsDelete(daObjCRVSTEEL_c* param_0) {
- return true;
-}
-
-/* ############################################################################################## */
-/* 80BD622C-80BD6230 000024 0004+00 0/1 0/0 0/0 .rodata @3947 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3947 = -1000.0f;
-COMPILER_STRIP_GATE(0x80BD622C, &lit_3947);
-#pragma pop
-
-/* 80BD6230-80BD6234 000028 0004+00 0/1 0/0 0/0 .rodata @3948 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3948 = -500.0f;
-COMPILER_STRIP_GATE(0x80BD6230, &lit_3948);
-#pragma pop
-
-/* 80BD6234-80BD6238 00002C 0004+00 0/1 0/0 0/0 .rodata @3949 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3949 = 1000.0f;
-COMPILER_STRIP_GATE(0x80BD6234, &lit_3949);
-#pragma pop
-
-/* 80BD6238-80BD623C 000030 0004+00 0/1 0/0 0/0 .rodata @3950 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3950 = 500.0f;
-COMPILER_STRIP_GATE(0x80BD6238, &lit_3950);
-#pragma pop
-
-/* 80BD60A8-80BD60EC 000568 0044+00 1/0 0/0 0/0 .text Create__15daObjCRVSTEEL_cFv */
-void daObjCRVSTEEL_c::Create() {
- // NONMATCHING
-}
-
-/* 80BD60EC-80BD6138 0005AC 004C+00 1/0 0/0 0/0 .text Execute__15daObjCRVSTEEL_cFPPA3_A4_f */
-void daObjCRVSTEEL_c::Execute(f32 (**param_0)[3][4]) {
- // NONMATCHING
-}
-
-/* 80BD6138-80BD61BC 0005F8 0084+00 1/0 0/0 0/0 .text Draw__15daObjCRVSTEEL_cFv */
-void daObjCRVSTEEL_c::Draw() {
- // NONMATCHING
-}
-
-/* 80BD61BC-80BD61F0 00067C 0034+00 1/0 0/0 0/0 .text Delete__15daObjCRVSTEEL_cFv */
-void daObjCRVSTEEL_c::Delete() {
- // NONMATCHING
-}
-
-/* 80BD61F0-80BD61F8 0006B0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80BD61F0() {
- // NONMATCHING
-}
-
-/* 80BD61F8-80BD6200 0006B8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80BD61F8() {
- // NONMATCHING
-}
-
/* 80BD623C-80BD623C 000034 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/d/actor/d_a_obj_kantera.cpp b/src/d/actor/d_a_obj_kantera.cpp
index b7c4e57ead..0a3d60197f 100644
--- a/src/d/actor/d_a_obj_kantera.cpp
+++ b/src/d/actor/d_a_obj_kantera.cpp
@@ -4,124 +4,15 @@
*/
#include "d/actor/d_a_obj_kantera.h"
+#include "d/actor/d_a_player.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_a_itembase_static.h"
#include "d/d_com_inf_game.h"
#include "d/d_item.h"
#include "d/d_item_data.h"
#include "d/d_procname.h"
-#include "dol2asm.h"
#include "f_op/f_op_actor_mng.h"
-//
-// Forward References:
-//
-
-extern "C" static void Reflect__FP4cXyzRC13cBgS_PolyInfof();
-extern "C" void __dt__8cM3dGPlaFv();
-extern "C" void initBaseMtx__15daItemKantera_cFv();
-extern "C" void setBaseMtx__15daItemKantera_cFv();
-extern "C" void Create__15daItemKantera_cFv();
-extern "C" bool __CreateHeap__15daItemKantera_cFv();
-extern "C" void create__15daItemKantera_cFv();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void bg_check__15daItemKantera_cFv();
-extern "C" void actionInit__15daItemKantera_cFv();
-extern "C" void actionWaitInit__15daItemKantera_cFv();
-extern "C" void actionWait__15daItemKantera_cFv();
-extern "C" void initActionOrderGetDemo__15daItemKantera_cFv();
-extern "C" void actionOrderGetDemo__15daItemKantera_cFv();
-extern "C" void actionGetDemo__15daItemKantera_cFv();
-extern "C" void execute__15daItemKantera_cFv();
-extern "C" void draw__15daItemKantera_cFv();
-extern "C" void _delete__15daItemKantera_cFv();
-extern "C" static void daItemKantera_Draw__FP15daItemKantera_c();
-extern "C" static void daItemKantera_Execute__FP15daItemKantera_c();
-extern "C" static void daItemKantera_Delete__FP15daItemKantera_c();
-extern "C" static void daItemKantera_Create__FP10fopAc_ac_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" static void func_80C39630();
-extern "C" static void func_80C39638();
-extern "C" extern char const* const d_a_obj_kantera__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
-extern "C" void fopAcM_orderItemEvent__FP10fopAc_ac_cUsUs();
-extern "C" void fopAcM_createItemForTrBoxDemo__FPC4cXyziiiPC5csXyzPC4cXyz();
-extern "C" void fopAcM_cancelCarryNow__FP10fopAc_ac_c();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void hide__12daItemBase_cFv();
-extern "C" void show__12daItemBase_cFv();
-extern "C" void chkDraw__12daItemBase_cFv();
-extern "C" void CheckFieldItemCreateHeap__FP10fopAc_ac_c();
-extern "C" void reset__14dEvt_control_cFv();
-extern "C" void setPtI_Id__14dEvt_control_cFUi();
-extern "C" void endCheckOld__16dEvent_manager_cFPCc();
-extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-extern "C" void checkItemGet__FUci();
-extern "C" void DeleteBase__12daItemBase_cFPCc();
-extern "C" bool clothCreate__12daItemBase_cFv();
-extern "C" void DrawBase__12daItemBase_cFv();
-extern "C" void RotateYBase__12daItemBase_cFv();
-extern "C" void setListStart__12daItemBase_cFv();
-extern "C" void settingBeforeDraw__12daItemBase_cFv();
-extern "C" void setTevStr__12daItemBase_cFv();
-extern "C" void setShadow__12daItemBase_cFv();
-extern "C" void animEntry__12daItemBase_cFv();
-extern "C" void chkFlag__12daItemBase_cFi();
-extern "C" void getTevFrm__12daItemBase_cFv();
-extern "C" void getBtpFrm__12daItemBase_cFv();
-extern "C" void getShadowSize__12daItemBase_cFv();
-extern "C" void getCollisionH__12daItemBase_cFv();
-extern "C" void getCollisionR__12daItemBase_cFv();
-extern "C" void __ml__4cXyzCFf();
-extern "C" void cM_atan2s__Fff();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetH__8cM3dGCylFf();
-extern "C" void SetR__8cM3dGCylFf();
-extern "C" void __dl__FPv();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" void* field_item_res__10dItem_data[1020];
-extern "C" u8 item_info__10dItem_data[1020 + 4 /* padding */];
-extern "C" extern void* __vt__12daItemBase_c[17 + 1 /* padding */];
-extern "C" extern void* __vt__12cCcD_CylAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" extern u8 data_80C39860[4];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
/* 80C39648-80C3968C 000000 0044+00 4/4 0/0 0/0 .rodata l_cyl_src */
const static dCcD_SrcCyl l_cyl_src = {
{
@@ -137,144 +28,21 @@ const static dCcD_SrcCyl l_cyl_src = {
} // mCyl
};
-/* 80C3968C-80C39690 000044 0004+00 0/3 0/0 0/0 .rodata @3855 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3855[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80C3968C, &lit_3855);
-#pragma pop
-
-/* 80C39690-80C39698 000048 0008+00 0/1 0/0 0/0 .rodata @3856 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3856[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C39690, &lit_3856);
-#pragma pop
-
-/* 80C39698-80C396A0 000050 0008+00 0/1 0/0 0/0 .rodata @3857 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3857[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C39698, &lit_3857);
-#pragma pop
-
-/* 80C396A0-80C396A8 000058 0008+00 0/1 0/0 0/0 .rodata @3858 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3858[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80C396A0, &lit_3858);
-#pragma pop
-
-/* 80C396DC-80C396E8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
-SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80C396E8-80C396FC 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
-};
-#pragma pop
-
-/* 80C396FC-80C39708 -00001 000C+00 0/1 0/0 0/0 .data @4184 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4184[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionInit__15daItemKantera_cFv,
-};
-#pragma pop
-
-/* 80C39708-80C39714 -00001 000C+00 0/1 0/0 0/0 .data @4185 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4185[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionWait__15daItemKantera_cFv,
-};
-#pragma pop
-
-/* 80C39714-80C39720 -00001 000C+00 0/1 0/0 0/0 .data @4186 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4186[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionOrderGetDemo__15daItemKantera_cFv,
-};
-#pragma pop
-
-/* 80C39720-80C3972C -00001 000C+00 0/1 0/0 0/0 .data @4187 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4187[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)actionGetDemo__15daItemKantera_cFv,
-};
-#pragma pop
-
-/* 80C3972C-80C3975C 000050 0030+00 0/1 0/0 0/0 .data l_demoFunc$4183 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_demoFunc[48] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-#pragma pop
-
-/* 80C3975C-80C3977C -00001 0020+00 1/0 0/0 0/0 .data l_daItemKantera_Method */
-static actor_method_class l_daItemKantera_Method = {
- (process_method_func)daItemKantera_Create__FP10fopAc_ac_c,
- (process_method_func)daItemKantera_Delete__FP15daItemKantera_c,
- (process_method_func)daItemKantera_Execute__FP15daItemKantera_c,
- 0,
- (process_method_func)daItemKantera_Draw__FP15daItemKantera_c,
-};
-
-/* 80C3977C-80C397AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kantera */
-extern actor_process_profile_definition g_profile_Obj_Kantera = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Kantera, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daItemKantera_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 238, // mPriority
- &l_daItemKantera_Method, // sub_method
- 0x00040100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
+UNK_REL_DATA
/* 80C38678-80C38974 000078 02FC+00 1/1 0/0 0/0 .text Reflect__FP4cXyzRC13cBgS_PolyInfof
*/
-static f32 Reflect(cXyz* i_xyz, cBgS_PolyInfo const& param_1, f32 param_2) {
- // NONMATCHING
+static f32 Reflect(cXyz* i_xyz, cBgS_PolyInfo const& param_2, f32 param_3) {
+ cM3dGPla acStack_3c;
+ if (dComIfG_Bgsp().GetTriPla(param_2, &acStack_3c) != 0) {
+ cXyz cStack_48;
+ f32 dVar5 = i_xyz->absXZ();
+ C_VECReflect(i_xyz, &acStack_3c.mNormal, &cStack_48);
+ *i_xyz = (cStack_48 * dVar5) * param_3;
+ return i_xyz->absXZ();
+ }
+
+ return 0.0f;
}
/* 80C389BC-80C389F8 0003BC 003C+00 1/1 0/0 0/0 .text initBaseMtx__15daItemKantera_cFv */
@@ -347,8 +115,8 @@ int daItemKantera_c::create() {
}
/* 80C38F78-80C39068 000978 00F0+00 1/1 0/0 0/0 .text bg_check__15daItemKantera_cFv */
-// NONMATCHING lfs not correct
void daItemKantera_c::bg_check() {
+ f32 dVar6 = 0.7f;
if (mAcch.ChkWallHit()) {
if (speedF > 5.0f) {
Reflect(&speed, mAcchCir, 1.0f);
@@ -360,7 +128,9 @@ void daItemKantera_c::bg_check() {
if (speedF > 5.0f) {
Reflect(&l_speed, mAcchCir, 0.7f);
}
- speed.y = -field_0x93c.y * 0.7f;
+ f32 tmp = field_0x93c.y;
+ tmp = -tmp;
+ speed.y = tmp * dVar6;
if (speed.y < 3.0f) {
fopAcM_SetSpeedF(this, 0.0f);
}
@@ -388,17 +158,32 @@ int daItemKantera_c::actionWaitInit() {
return 1;
}
-/* ############################################################################################## */
-/* 80C396C8-80C396CC 000080 0004+00 0/1 0/0 0/0 .rodata @4145 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4145 = 9.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80C396C8, &lit_4145);
-#pragma pop
-
/* 80C3911C-80C39234 000B1C 0118+00 1/0 0/0 0/0 .text actionWait__15daItemKantera_cFv */
int daItemKantera_c::actionWait() {
- // NONMATCHING
+ fopAcM_posMoveF(this, mCcStts.GetCCMoveP());
+ mAcch.CrrPos(dComIfG_Bgsp());
+ bg_check();
+ if (mAcch.ChkGroundHit()) {
+ cLib_onBit(attention_info.flags, 0x10UL);
+ speedF *= 0.9f;
+ if (speedF < 1.0f) {
+ speedF = 0.0f;
+ }
+ } else {
+ cLib_offBit(attention_info.flags, 0x10UL);
+ }
+ daPy_py_c* player = daPy_getPlayerActorClass();
+ if (fopAcM_checkCarryNow(this)) {
+ cLib_offBit(attention_info.flags, 0x10UL);
+ if (player->getGrabUpStart()) {
+ fopAcM_cancelCarryNow(this);
+ initActionOrderGetDemo();
+ }
+ } else {
+ cLib_onBit(attention_info.flags, 0x10UL);
+ }
+ attention_info.position = current.pos;
+ return 1;
}
/* 80C39234-80C392D0 000C34 009C+00 1/1 0/0 0/0 .text initActionOrderGetDemo__15daItemKantera_cFv
@@ -442,7 +227,19 @@ int daItemKantera_c::actionGetDemo() {
/* 80C393B0-80C394DC 000DB0 012C+00 1/1 0/0 0/0 .text execute__15daItemKantera_cFv */
int daItemKantera_c::execute() {
- // NONMATCHING
+ static daItemKantera_c::actionFunc l_demoFunc[4] = {
+ &daItemKantera_c::actionInit,
+ &daItemKantera_c::actionWait,
+ &daItemKantera_c::actionOrderGetDemo,
+ &daItemKantera_c::actionGetDemo,
+ };
+ field_0x93c = speed;
+ field_0x930++;
+ (this->*(l_demoFunc[mStatus]))();
+ eyePos = current.pos;
+ attention_info.position = current.pos;
+ setBaseMtx();
+ return 1;
}
/* 80C394DC-80C39530 000EDC 0054+00 1/1 0/0 0/0 .text draw__15daItemKantera_cFv */
@@ -480,3 +277,31 @@ static int daItemKantera_Delete(daItemKantera_c* i_this) {
static int daItemKantera_Create(fopAc_ac_c* i_this) {
return static_cast<daItemKantera_c*>(i_this)->create();
}
+
+
+/* 80C3975C-80C3977C -00001 0020+00 1/0 0/0 0/0 .data l_daItemKantera_Method */
+static actor_method_class l_daItemKantera_Method = {
+ (process_method_func)daItemKantera_Create,
+ (process_method_func)daItemKantera_Delete,
+ (process_method_func)daItemKantera_Execute,
+ NULL,
+ (process_method_func)daItemKantera_Draw,
+};
+
+/* 80C3977C-80C397AC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Kantera */
+extern actor_process_profile_definition g_profile_Obj_Kantera = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Kantera, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daItemKantera_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 238, // mPriority
+ &l_daItemKantera_Method, // sub_method
+ 0x00040100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
diff --git a/src/d/actor/d_a_obj_pdtile.cpp b/src/d/actor/d_a_obj_pdtile.cpp
index 649de27466..0c89cc331f 100644
--- a/src/d/actor/d_a_obj_pdtile.cpp
+++ b/src/d/actor/d_a_obj_pdtile.cpp
@@ -4,302 +4,204 @@
*/
#include "d/actor/d_a_obj_pdtile.h"
+#include "SSystem/SComponent/c_math.h"
+#include "d/actor/d_a_player.h"
+#include "d/d_bg_w.h"
#include "d/d_cc_d.h"
+#include "d/d_com_inf_game.h"
#include "dol2asm.h"
-
-//
-// Forward References:
-//
-
-extern "C" static void rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c();
-extern "C" void create1st__13daObjPDtile_cFv();
-extern "C" void setMtx__13daObjPDtile_cFv();
-extern "C" void rideActor__13daObjPDtile_cFP10fopAc_ac_c();
-extern "C" void CreateHeap__13daObjPDtile_cFv();
-extern "C" void Create__13daObjPDtile_cFv();
-extern "C" void Execute__13daObjPDtile_cFPPA3_A4_f();
-extern "C" void __dt__14dBgS_ObjGndChkFv();
-extern "C" void Draw__13daObjPDtile_cFv();
-extern "C" void Delete__13daObjPDtile_cFv();
-extern "C" static void daObjPDtile_create1st__FP13daObjPDtile_c();
-extern "C" void __dt__8cM3dGCylFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" static void daObjPDtile_MoveBGDelete__FP13daObjPDtile_c();
-extern "C" static void daObjPDtile_MoveBGExecute__FP13daObjPDtile_c();
-extern "C" static void daObjPDtile_MoveBGDraw__FP13daObjPDtile_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__13daObjPDtile_cFv();
-extern "C" static void func_80CAC4EC();
-extern "C" static void func_80CAC4F4();
-extern "C" static void func_80CAC4FC();
-extern "C" extern char const* const d_a_obj_pdtile__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_XYZrotM__FPA4_fsss();
-extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __dt__10fopAc_ac_cFv();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGp_getReverb__Fi();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void Release__4cBgSFP9dBgW_Base();
-extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
-extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
-extern "C" void __ct__11dBgS_GndChkFv();
-extern "C" void __dt__11dBgS_GndChkFv();
-extern "C" void __ct__16dBgS_MoveBgActorFv();
-extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
-extern "C" bool ToFore__16dBgS_MoveBgActorFv();
-extern "C" bool ToBack__16dBgS_MoveBgActorFv();
-extern "C" void
-MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
-extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
-extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void __dt__12dCcD_GObjInfFv();
-extern "C" void ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void cM_rndF__Ff();
-extern "C" void cM_rndFX__Ff();
-extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
-extern "C" void ChkUsed__9cBgW_BgIdCFv();
-extern "C" void SetC__8cM3dGCylFRC4cXyz();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __dt__14Z2SoundObjBaseFv();
-extern "C" void deleteObject__14Z2SoundObjBaseFv();
-extern "C" void __ct__16Z2SoundObjSimpleFv();
-extern "C" void __dl__FPv();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_28();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_28();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__16dBgS_MoveBgActor[10];
-extern "C" extern void* __vt__8dCcD_Cyl[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_CylAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" extern void* __vt__16Z2SoundObjSimple[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-
-//
-// Declarations:
-//
-
/* 80CAACB8-80CAACE0 000078 0028+00 1/1 0/0 0/0 .text
* rideCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
-static void rideCallBack(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) {
- // NONMATCHING
+static void rideCallBack(dBgW* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3) {
+ static_cast<daObjPDtile_c*>(param_2)->rideActor(param_3);
}
-/* ############################################################################################## */
-/* 80CAC50C-80CAC510 000000 0004+00 3/3 0/0 0/0 .rodata @3680 */
-SECTION_RODATA static f32 const lit_3680 = 1500.0f;
-COMPILER_STRIP_GATE(0x80CAC50C, &lit_3680);
-
-/* 80CAC510-80CAC514 000004 0004+00 0/1 0/0 0/0 .rodata @3681 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3681 = 600.0f;
-COMPILER_STRIP_GATE(0x80CAC510, &lit_3681);
-#pragma pop
-
-/* 80CAC514-80CAC518 000008 0004+00 0/2 0/0 0/0 .rodata @3682 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3682 = 450.0f;
-COMPILER_STRIP_GATE(0x80CAC514, &lit_3682);
-#pragma pop
-
-/* 80CAC518-80CAC51C 00000C 0004+00 1/3 0/0 0/0 .rodata @3683 */
-SECTION_RODATA static u8 const lit_3683[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80CAC518, &lit_3683);
-
-/* 80CAC580-80CAC580 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CAC580 = "P_Dtile";
-SECTION_DEAD static char const* const stringBase_80CAC588 = "P_Dtile00";
-SECTION_DEAD static char const* const stringBase_80CAC592 = "Lv9_Dtile";
-#pragma pop
-
-/* 80CAC59C-80CAC5A8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
-SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80CAC5A8-80CAC5BC 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
-};
-#pragma pop
+UNK_REL_DATA
/* 80CAC5BC-80CAC5C0 -00001 0004+00 0/1 0/0 0/0 .data l_arcName4 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_arcName4 = (void*)&d_a_obj_pdtile__stringBase0;
-#pragma pop
+static char* l_arcName4 = "P_Dtile";
/* 80CAC5C0-80CAC5C8 000024 0008+00 0/1 0/0 0/0 .data l_dzbidx4 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_dzbidx4[8] = {
- 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x08,
+static u32 l_dzbidx4[2] = {
+ 9, 8,
};
-#pragma pop
/* 80CAC5C8-80CAC5D0 00002C 0008+00 0/1 0/0 0/0 .data l_bmdidx4 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_bmdidx4[8] = {
- 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04,
+static u32 l_bmdidx4[2] = {
+ 5, 4,
};
-#pragma pop
/* 80CAC5D0-80CAC600 000034 0030+00 0/1 0/0 0/0 .data l_cull_box4 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_cull_box4[48] = {
- 0xC2, 0x48, 0x00, 0x00, 0xC2, 0xC8, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00,
- 0x41, 0xA3, 0xEB, 0x85, 0x42, 0x48, 0x00, 0x00, 0xC3, 0x20, 0x00, 0x00, 0xC3, 0xE6, 0x00, 0x00,
- 0xC3, 0x20, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00,
+static Vec l_cull_box4[2][2] = {
+ {{-50.0f, -100.0f, -50.0f}, {50.0f, 20.49f, 50.0f}},
+ {{-160.0f, -460.0f, -160.0f}, {160.0f, 20.0f, 160.0f}},
};
-#pragma pop
/* 80CAC600-80CAC604 -00001 0004+00 0/1 0/0 0/0 .data l_arcName7 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_arcName7 = (void*)(((char*)&d_a_obj_pdtile__stringBase0) + 0x8);
-#pragma pop
+static char* l_arcName7 = "P_Dtile00";
/* 80CAC604-80CAC608 000068 0004+00 0/1 0/0 0/0 .data l_dzbidx7 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 l_dzbidx7 = 0x00000007;
-#pragma pop
+static u32 l_dzbidx7 = 7;
/* 80CAC608-80CAC60C 00006C 0004+00 0/1 0/0 0/0 .data l_bmdidx7 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 l_bmdidx7 = 0x00000004;
-#pragma pop
+static u32 l_bmdidx7 = 4;
/* 80CAC60C-80CAC624 000070 0018+00 0/1 0/0 0/0 .data l_cull_box7 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_cull_box7[24] = {
- 0xC3, 0x48, 0x00, 0x00, 0xC4, 0x2F, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00,
- 0x43, 0x48, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
+static Vec l_cull_box7[2] = {
+ {-200.0f, -700.0f, -200.0f},
+ {200.0f, 50.0f, 200.0f},
};
-#pragma pop
/* 80CAC624-80CAC628 -00001 0004+00 0/1 0/0 0/0 .data l_arcName9 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* l_arcName9 = (void*)(((char*)&d_a_obj_pdtile__stringBase0) + 0x12);
-#pragma pop
+static char* l_arcName9 = "Lv9_Dtile";
/* 80CAC628-80CAC62C 00008C 0004+00 0/1 0/0 0/0 .data l_dzbidx9 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 l_dzbidx9 = 0x00000007;
-#pragma pop
+static u32 l_dzbidx9 = 7;
/* 80CAC62C-80CAC630 000090 0004+00 0/1 0/0 0/0 .data l_bmdidx9 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 l_bmdidx9 = 0x00000004;
-#pragma pop
+static u32 l_bmdidx9 = 4;
/* 80CAC630-80CAC648 000094 0018+00 0/1 0/0 0/0 .data l_cull_box9 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_cull_box9[24] = {
- 0xC3, 0x48, 0x00, 0x00, 0xC4, 0x22, 0x80, 0x00, 0xC3, 0x48, 0x00, 0x00,
- 0x43, 0x48, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
+static Vec l_cull_box9[2] = {
+ {-200.0f, -650.0f, -200.0f},
+ {200.0f, 50.0f, 200.0f},
};
-#pragma pop
/* 80CAACE0-80CAAE80 0000A0 01A0+00 1/1 0/0 0/0 .text create1st__13daObjPDtile_cFv */
-void daObjPDtile_c::create1st() {
- // NONMATCHING
+int daObjPDtile_c::create1st() {
+ mType = (Type)getType();
+ if (mType == TYPE_4) {
+ mArcName = l_arcName9;
+ mDzbId = l_dzbidx9;
+ mBmdId = l_bmdidx9;
+ mCullBox = l_cull_box9;
+ field_0x7cc = 1500.0f;
+ } else if (mType == TYPE_2) {
+ mArcName = l_arcName7;
+ mDzbId = l_dzbidx7;
+ mBmdId = l_bmdidx7;
+ mCullBox = l_cull_box7;
+ field_0x7cc = 600.0f;
+ } else if (mType == TYPE_0) {
+ mArcName = l_arcName4;
+ mDzbId = l_dzbidx4[0];
+ mBmdId = l_bmdidx4[0];
+ mCullBox = l_cull_box4[0];
+ field_0x7cc = 450.0f;
+ } else {
+ mArcName = l_arcName4;
+ mDzbId = l_dzbidx4[1];
+ mBmdId = l_bmdidx4[1];
+ mCullBox = l_cull_box4[1];
+ field_0x7cc = 450.0f;
+ }
+ int rv = dComIfG_resLoad(this, mArcName);
+ if (rv == cPhs_COMPLEATE_e) {
+ setMtx();
+ MoveBGActor_SetFunc setFunc;
+ if (mType != TYPE_4) {
+ setFunc = dBgS_MoveBGProc_TypicalRotY;
+ } else {
+ setFunc = NULL;
+ }
+ rv = MoveBGCreate(mArcName, mDzbId, setFunc, 0x12a0, &mBgMtx);
+ if (rv == cPhs_ERROR_e) {
+ return rv;
+ }
+ field_0x620.z = 0.0f;
+ field_0x620.y = 0.0f;
+ field_0x620.x = 0.0f;
+ }
+ return rv;
}
-/* ############################################################################################## */
-/* 80CAC51C-80CAC520 000010 0004+00 1/1 0/0 0/0 .rodata @3716 */
-SECTION_RODATA static f32 const lit_3716 = 101.0f / 100.0f;
-COMPILER_STRIP_GATE(0x80CAC51C, &lit_3716);
-
-/* 80CAC520-80CAC524 000014 0004+00 1/3 0/0 0/0 .rodata @3717 */
-SECTION_RODATA static f32 const lit_3717 = 1.0f;
-COMPILER_STRIP_GATE(0x80CAC520, &lit_3717);
-
/* 80CAAE80-80CAAF90 000240 0110+00 3/3 0/0 0/0 .text setMtx__13daObjPDtile_cFv */
void daObjPDtile_c::setMtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos.x + field_0x620.x,
+ current.pos.y,
+ current.pos.z + field_0x620.z);
+ mDoMtx_stack_c::XYZrotM(current.angle.x, current.angle.y, current.angle.z);
+ MTXCopy(mDoMtx_stack_c::get(), field_0x5d8);
+ if (mType != TYPE_2 && mType != TYPE_4) {
+ MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
+ } else {
+ mDoMtx_stack_c::transS(current.pos.x, current.pos.y,
+ current.pos.z);
+ mDoMtx_stack_c::XYZrotM(0, current.angle.y, 0);
+ if (mType == TYPE_2) {
+ cXyz local_1c;
+ local_1c.x = 1.01f;
+ local_1c.y = 1.0f;
+ local_1c.z = 1.01f;
+ mDoMtx_stack_c::scaleM(local_1c);
+ }
+ MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
+ }
}
-/* ############################################################################################## */
-/* 80CAC524-80CAC528 000018 0004+00 0/2 0/0 0/0 .rodata @3778 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3778 = 2.5f;
-COMPILER_STRIP_GATE(0x80CAC524, &lit_3778);
-#pragma pop
-
-/* 80CAC528-80CAC52C 00001C 0004+00 0/2 0/0 0/0 .rodata @3779 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3779 = -1.0f;
-COMPILER_STRIP_GATE(0x80CAC528, &lit_3779);
-#pragma pop
-
-/* 80CAC52C-80CAC530 000020 0004+00 1/2 0/0 0/0 .rodata @3780 */
-SECTION_RODATA static f32 const lit_3780 = 65535.0f;
-COMPILER_STRIP_GATE(0x80CAC52C, &lit_3780);
-
/* 80CAAF90-80CAB1F0 000350 0260+00 1/1 0/0 0/0 .text rideActor__13daObjPDtile_cFP10fopAc_ac_c */
-void daObjPDtile_c::rideActor(fopAc_ac_c* param_0) {
- // NONMATCHING
+void daObjPDtile_c::rideActor(fopAc_ac_c* param_1) {
+ if (param_1 == daPy_getLinkPlayerActorClass() ||
+ fopAcM_GetProfName(param_1) == PROC_B_GG)
+ {
+ if (mType == TYPE_0) {
+ field_0x7b0 = 200;
+ } else {
+ field_0x7b0 = 100;
+ }
+ field_0x7b5 = 1;
+ field_0x61c = 2.5f;
+ if (field_0x610 == 0) {
+ if (mType == TYPE_2) {
+ field_0x610 = 5;
+ mSoundObj.startSound(Z2SE_OBJ_FLR_FALL_START, 0, -1);
+ } else if ((mType == TYPE_1) || (mType == TYPE_3)) {
+ field_0x610 = 7;
+ field_0x7d8 = 0;
+ Z2GetAudioMgr()->seStart(Z2SE_OBJ_SINK_FLOOR_DW_TRG, &current.pos, 0, 0, 1.0f, 1.0f, -1.0f,
+ -1.0f, 0);
+ } else {
+ field_0x610 = 1;
+ if (mType == TYPE_4) {
+ mSoundObj.startSound(Z2SE_OBJ_FLR_FALL_START, 0, -1);
+ }
+ }
+ }
+ if (param_1 == daPy_getLinkPlayerActorClass()) {
+ if (daPy_getLinkPlayerActorClass()->checkBootsOrArmorHeavy()) {
+ field_0x630 = 1;
+ }
+ }
+ }
+ if (!cM3d_IsZero(param_1->speed.x) || !cM3d_IsZero(param_1->speed.z)) {
+ field_0x61c = 2.5f;
+ if (mType == TYPE_0) {
+ field_0x7b0 = 200;
+ } else {
+ field_0x7b0 = 100;
+ }
+ }
+ if (field_0x614 == 0) {
+ field_0x7ac = 0;
+ if (mType == TYPE_0) {
+ field_0x7b0 = 200;
+ } else {
+ field_0x7b0 = 100;
+ }
+ field_0x7b2 = cM_rndF(65535.0f);
+ field_0x61c = 2.5f;
+ }
+ field_0x614 = 1;
+ field_0x7b4 = 1;
}
/* 80CAB1F0-80CAB258 0005B0 0068+00 1/0 0/0 0/0 .text CreateHeap__13daObjPDtile_cFv */
-void daObjPDtile_c::CreateHeap() {
- // NONMATCHING
+int daObjPDtile_c::CreateHeap() {
+ J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(mArcName, mBmdId);
+ JUT_ASSERT(557, model_data != 0);
+ mModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
+ return mModel != 0 ? TRUE : FALSE;
}
/* ############################################################################################## */
@@ -319,317 +221,354 @@ static dCcD_SrcCyl cc_cyl_src = {
};
/* 80CAB258-80CAB374 000618 011C+00 1/0 0/0 0/0 .text Create__13daObjPDtile_cFv */
-void daObjPDtile_c::Create() {
- // NONMATCHING
+int daObjPDtile_c::Create() {
+ mModel->setBaseTRMtx(field_0x5d8);
+ fopAcM_SetMtx(this, field_0x5d8);
+ fopAcM_setCullSizeBox(this,
+ mCullBox[0].x, mCullBox[0].y, mCullBox[0].z,
+ mCullBox[1].x, mCullBox[1].y, mCullBox[1].z);
+ mpBgW->SetRideCallback(rideCallBack);
+ field_0x610 = 0;
+ field_0x614 = 0;
+ field_0x618 = 0;
+ field_0x61c = 0.0f;
+ field_0x62c = 0.0f;
+ field_0x630 = 0;
+ mStts.Init(0xff, 0, this);
+ mCyl.Set(cc_cyl_src);
+ mCyl.SetStts(&mStts);
+ field_0x7ac = 0;
+ field_0x7b0 = 0;
+ field_0x7b2 = cM_rndF(65535.0f);
+ field_0x7b4 = 0;
+ field_0x7d0 = 0;
+ field_0x7d8 = 0;
+ mSoundObj.init(&current.pos, 1);
+ return 1;
}
-/* ############################################################################################## */
-/* 80CAC530-80CAC534 000024 0004+00 0/1 0/0 0/0 .rodata @4184 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4184 = 3.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80CAC530, &lit_4184);
-#pragma pop
-
-/* 80CAC534-80CAC538 000028 0004+00 0/1 0/0 0/0 .rodata @4185 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4185 = 19.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80CAC534, &lit_4185);
-#pragma pop
-
-/* 80CAC538-80CAC53C 00002C 0004+00 0/1 0/0 0/0 .rodata @4186 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4186 = 4.5f;
-COMPILER_STRIP_GATE(0x80CAC538, &lit_4186);
-#pragma pop
-
-/* 80CAC53C-80CAC540 000030 0004+00 0/1 0/0 0/0 .rodata @4187 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4187 = -4.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80CAC53C, &lit_4187);
-#pragma pop
-
-/* 80CAC540-80CAC544 000034 0004+00 0/1 0/0 0/0 .rodata @4188 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4188 = 14400.0f;
-COMPILER_STRIP_GATE(0x80CAC540, &lit_4188);
-#pragma pop
-
-/* 80CAC544-80CAC548 000038 0004+00 0/1 0/0 0/0 .rodata @4189 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4189 = 30.0f;
-COMPILER_STRIP_GATE(0x80CAC544, &lit_4189);
-#pragma pop
-
-/* 80CAC548-80CAC54C 00003C 0004+00 0/1 0/0 0/0 .rodata @4190 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4190 = 5.0f;
-COMPILER_STRIP_GATE(0x80CAC548, &lit_4190);
-#pragma pop
-
-/* 80CAC54C-80CAC550 000040 0004+00 0/1 0/0 0/0 .rodata @4191 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4191 = 3.0f;
-COMPILER_STRIP_GATE(0x80CAC54C, &lit_4191);
-#pragma pop
-
-/* 80CAC550-80CAC554 000044 0004+00 0/1 0/0 0/0 .rodata @4192 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4192 = 15.0f;
-COMPILER_STRIP_GATE(0x80CAC550, &lit_4192);
-#pragma pop
-
-/* 80CAC554-80CAC558 000048 0004+00 0/1 0/0 0/0 .rodata @4193 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4193 = 2.0f;
-COMPILER_STRIP_GATE(0x80CAC554, &lit_4193);
-#pragma pop
-
-/* 80CAC558-80CAC55C 00004C 0004+00 0/1 0/0 0/0 .rodata @4194 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4194 = 3.0f / 100.0f;
-COMPILER_STRIP_GATE(0x80CAC558, &lit_4194);
-#pragma pop
-
-/* 80CAC55C-80CAC560 000050 0004+00 0/1 0/0 0/0 .rodata @4195 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4195 = 10.0f;
-COMPILER_STRIP_GATE(0x80CAC55C, &lit_4195);
-#pragma pop
-
-/* 80CAC560-80CAC564 000054 0004+00 0/1 0/0 0/0 .rodata @4196 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4196 = -1.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80CAC560, &lit_4196);
-#pragma pop
-
-/* 80CAC564-80CAC568 000058 0004+00 0/1 0/0 0/0 .rodata @4197 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4197 = 1.5f;
-COMPILER_STRIP_GATE(0x80CAC564, &lit_4197);
-#pragma pop
-
-/* 80CAC568-80CAC56C 00005C 0004+00 0/1 0/0 0/0 .rodata @4198 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4198 = 7.0f;
-COMPILER_STRIP_GATE(0x80CAC568, &lit_4198);
-#pragma pop
-
-/* 80CAC56C-80CAC570 000060 0004+00 0/1 0/0 0/0 .rodata @4199 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4199 = -3000.0f;
-COMPILER_STRIP_GATE(0x80CAC56C, &lit_4199);
-#pragma pop
-
-/* 80CAC570-80CAC574 000064 0004+00 0/1 0/0 0/0 .rodata @4200 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4200 = 127.0f;
-COMPILER_STRIP_GATE(0x80CAC570, &lit_4200);
-#pragma pop
-
-/* 80CAC574-80CAC57C 000068 0008+00 0/1 0/0 0/0 .rodata @4202 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4202[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CAC574, &lit_4202);
-#pragma pop
-
-/* 80CAC68C-80CAC6AC -00001 0020+00 1/0 0/0 0/0 .data daObjPDtile_METHODS */
-static actor_method_class daObjPDtile_METHODS = {
- (process_method_func)daObjPDtile_create1st__FP13daObjPDtile_c,
- (process_method_func)daObjPDtile_MoveBGDelete__FP13daObjPDtile_c,
- (process_method_func)daObjPDtile_MoveBGExecute__FP13daObjPDtile_c,
- 0,
- (process_method_func)daObjPDtile_MoveBGDraw__FP13daObjPDtile_c,
-};
-
-/* 80CAC6AC-80CAC6DC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_PDtile */
-extern actor_process_profile_definition g_profile_Obj_PDtile = {
- fpcLy_CURRENT_e, // mLayerID
- 3, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_PDtile, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObjPDtile_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 670, // mPriority
- &daObjPDtile_METHODS, // sub_method
- 0x00040100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80CAC6DC-80CAC6E8 000140 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
-
-/* 80CAC6E8-80CAC6F4 00014C 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
-
-/* 80CAC6F4-80CAC700 000158 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
-SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGCylFv,
-};
-
-/* 80CAC700-80CAC70C 000164 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
-
-/* 80CAC70C-80CAC73C 000170 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_ObjGndChk */
-SECTION_DATA extern void* __vt__14dBgS_ObjGndChk[12] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14dBgS_ObjGndChkFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CAC4EC,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CAC4FC,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CAC4F4,
-};
-
/* 80CAB374-80CABED8 000734 0B64+00 1/0 0/0 0/0 .text Execute__13daObjPDtile_cFPPA3_A4_f
*/
-void daObjPDtile_c::Execute(f32 (**param_0)[3][4]) {
- // NONMATCHING
-}
-
-/* 80CABED8-80CABF50 001298 0078+00 4/3 0/0 0/0 .text __dt__14dBgS_ObjGndChkFv */
-// dBgS_ObjGndChk::~dBgS_ObjGndChk() {
-extern "C" void __dt__14dBgS_ObjGndChkFv() {
- // NONMATCHING
+int daObjPDtile_c::Execute(Mtx** param_1) {
+ if (mCyl.ChkTgHit()) {
+ field_0x614 = 1;
+ if (mType == TYPE_0) {
+ field_0x7b0 = 200;
+ } else {
+ field_0x7b0 = 100;
+ }
+ field_0x61c = 2.5f;
+ if (mType == TYPE_2 || mType == TYPE_4) {
+ field_0x610 = 2;
+ field_0x62c = 0.3f;
+ }
+ }
+ if (field_0x610 == 1 || field_0x614 != 0 ||
+ field_0x7b0 != 0)
+ {
+ field_0x620.x = cM_rndFX(field_0x61c);
+ field_0x620.z = cM_rndFX(field_0x61c);
+ field_0x7ac++;
+ current.angle.x = field_0x7b0 * cM_ssin(field_0x7ac * 10000);
+ current.angle.z = field_0x7b0 *
+ cM_ssin(field_0x7b2 + field_0x7ac * 10000);
+ field_0x7b0 *= 0.95f;
+ field_0x61c *= 0.95f;
+ if (field_0x7b0 < 32) {
+ field_0x7b0 = 0;
+ field_0x7ac = 0;
+ }
+ if (field_0x610 == 1) {
+ field_0x618++;
+ if (field_0x618 >= 4.5f)
+ {
+ field_0x610 = 2;
+ field_0x62c = 0.3f;
+ }
+ }
+ if ((mType == TYPE_2 || mType == TYPE_4) && field_0x7b5 == 0 && field_0x610 != 5 &&
+ field_0x610 != 6 && field_0x610 != 2 && field_0x610 != 4 && field_0x7b0 != 0)
+ {
+ mSoundObj.startLevelSound(Z2SE_OBJ_FLR_GURAGURA, 0, -1);
+ }
+ } else {
+ field_0x620 *= -0.8f;
+ field_0x7ac = 0;
+ }
+ bool bVar5 = false;
+ cXyz local_f0(daPy_getLinkPlayerActorClass()->current.pos);
+ f32 diffx = local_f0.x - current.pos.x;
+ f32 diffz = local_f0.z - current.pos.z;
+ if (diffx * diffx +
+ diffz * diffz <
+ 14400.0f &&
+ local_f0.y > current.pos.y && local_f0.y < current.pos.y + 450.0f)
+ {
+ bVar5 = true;
+ }
+ if (field_0x610 == 2 || field_0x610 == 5) {
+ if (mType == TYPE_3 && field_0x7b5 == 0 && !bVar5) {
+ field_0x7b8++;
+ if (75 <= field_0x7b8) {
+ field_0x610 = 3;
+ }
+ } else {
+ current.pos.y -= field_0x62c;
+ if ((field_0x610 == 5) &&
+ (current.pos.y <= home.pos.y - 30.0f))
+ {
+ current.pos.y = home.pos.y - 30.0f;
+ field_0x610 = 6;
+ field_0x7d4 = 0;
+ field_0x62c *= -0.8f;
+ }
+ if (current.pos.y <= home.pos.y - field_0x7cc) {
+ current.pos.y = home.pos.y - field_0x7cc;
+ if (mType == TYPE_3 && field_0x7b5 == 0) {
+ field_0x7b8++;
+ if (75 <= field_0x7b8) {
+ field_0x7b8 = 75;
+ if (!bVar5) {
+ field_0x610 = 3;
+ }
+ }
+ } else {
+ field_0x7b8 = 0;
+ }
+ if (mType == TYPE_2 || mType == TYPE_4) {
+ field_0x610 = 4;
+ fopAcM_OnStatus(this, 0x4000);
+ }
+ } else {
+ field_0x7b8 = 0;
+ if (mType != TYPE_2 && mType != TYPE_4) {
+ Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_SINK_FLOOR_DW, &current.pos, 0, 0, 1.0f, 1.0f,
+ -1.0f, -1.0f, 0);
+ }
+ if (field_0x610 == 5) {
+ if (field_0x630 != 0) {
+ field_0x62c += 5.0f;
+ } else {
+ field_0x62c += 3.0f;
+ }
+ } else if (mType == 2 && field_0x630 != 0) {
+ field_0x62c += 1.0f;
+ if (field_0x62c >= 15.0f) {
+ field_0x62c = 15.0f;
+ }
+ } else if (mType == 4) {
+ field_0x62c += 2.0f;
+ if (field_0x630 != 0) {
+ field_0x62c += 2.0f;
+ }
+ if (field_0x62c >= 30.0f) {
+ field_0x62c = 30.0f;
+ }
+ } else {
+ field_0x62c += 0.03f;
+ if (field_0x630 != 0) {
+ field_0x62c += 0.03f;
+ }
+ if (field_0x62c >= 10.0f) {
+ field_0x62c = 10.0f;
+ }
+ }
+ }
+ }
+ }
+ if (field_0x610 == 6) {
+ current.pos.y -= field_0x62c;
+ field_0x7d4++;
+ if (field_0x62c > 0.0f &&
+ current.pos.y <= home.pos.y - 30.0f)
+ {
+ if (field_0x630 == 0 && 30 < field_0x7d4) {
+ field_0x610 = 2;
+ field_0x62c = 0;
+ } else if (field_0x630 != 0 && field_0x7d4 > 5) {
+ field_0x610 = 2;
+ field_0x62c = 0;
+ } else {
+ field_0x62c *= -0.2f;
+ }
+ } else {
+ if (field_0x630 != 0) {
+ field_0x62c += 5.0f;
+ } else {
+ field_0x62c += 3.0f;
+ }
+ }
+ }
+ if (field_0x610 == 3 && mType == TYPE_3) {
+ if (field_0x7b5 == 1) {
+ field_0x610 = 2;
+ if (mType == TYPE_2 && field_0x630 != 0) {
+ field_0x62c = 0.3f;
+ } else if (mType == 4) {
+ field_0x62c = 2.0f;
+ } else {
+ field_0x62c = 0.3f;
+ }
+ }
+ current.pos.y += 1.5f;
+ Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_SINK_FLOOR_UP, &current.pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f,
+ 0);
+ if (current.pos.y >= home.pos.y) {
+ current.pos.y = home.pos.y;
+ field_0x610 = 0;
+ }
+ }
+ if (field_0x610 == 4) {
+ if (mpBgW->ChkUsed()) {
+ dComIfG_Bgsp().Release(mpBgW);
+ }
+ if (field_0x7d0 != 0) {
+ field_0x62c *= 2.0f;
+ }
+ field_0x7d0 = 0;
+ if (mType == TYPE_2 && field_0x630 != 0) {
+ field_0x62c += 7.0f;
+ } else if (mType == 4) {
+ field_0x62c += 10.0f;
+ } else {
+ field_0x62c += 5.0f;
+ }
+ fopAc_ac_c* player = dComIfGp_getPlayer(0);
+ if (field_0x62c >= -player->maxFallSpeed + 10.0f) {
+ field_0x62c = -player->maxFallSpeed + 10.0f;
+ }
+ current.pos.y -= field_0x62c;
+ if (mType != TYPE_2 && mType != TYPE_4) {
+ Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_SINK_FLOOR_DW, &current.pos, 0, 0, 1.0f, 1.0f, -1.0f,
+ -1.0f, 0);
+ }
+ dBgS_ObjGndChk adStack_e4;
+ adStack_e4.SetActorPid(base.id);
+ adStack_e4.SetPos(&current.pos);
+ dComIfG_Bgsp().GroundCross(&adStack_e4);
+ if (home.pos.y - current.pos.y < -3000.0f) {
+ fopAcM_delete(this);
+ }
+ field_0x7b0 = 0;
+ field_0x614 = 0;
+ }
+ if (field_0x610 == 7) {
+ if (field_0x7d8 < 5.0f) {
+ current.pos.y = home.pos.y - (30.0f * field_0x7d8) / 5.0f;
+ } else {
+ current.pos.y = home.pos.y - 30.0f * (10.0f - field_0x7d8) / 5.0f;
+ }
+ field_0x7d8++;
+ if (field_0x7d8 >= 10) {
+ current.pos.y = home.pos.y;
+ field_0x610 = 2;
+ field_0x62c = 0.3f;
+ }
+ }
+ if ((mType == TYPE_2 || mType == TYPE_4) &&
+ (field_0x610 == 6 || field_0x610 == 5 || field_0x610 == 2))
+ {
+ // Fake match to load field_0x62c first.
+ f32 xx = *(vf32*)&field_0x62c;
+ u32 ff;
+ ff = xx = (127 * xx) / 15;
+ mSoundObj.startLevelSound(Z2SE_OBJ_FLR_FALLING, ff, -1);
+ }
+ setMtx();
+ mModel->setBaseTRMtx(field_0x5d8);
+ *param_1 = &mBgMtx;
+ mCyl.SetC(current.pos);
+ dComIfG_Ccsp()->Set(&mCyl);
+ if (field_0x7b4 == 0) {
+ field_0x614 = 0;
+ }
+ field_0x7b4 = 0;
+ field_0x630 = 0;
+ field_0x7b5 = 0;
+ mSoundObj.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ return 1;
}
-/* ############################################################################################## */
-/* 80CAC57C-80CAC580 000070 0004+00 1/1 0/0 0/0 .rodata @4256 */
-SECTION_RODATA static f32 const lit_4256 = 200.0f;
-COMPILER_STRIP_GATE(0x80CAC57C, &lit_4256);
-
/* 80CABF50-80CAC094 001310 0144+00 1/0 0/0 0/0 .text Draw__13daObjPDtile_cFv */
-void daObjPDtile_c::Draw() {
- // NONMATCHING
+int daObjPDtile_c::Draw() {
+ fopAc_ac_c* player = dComIfGp_getPlayer(0);
+ if (field_0x610 == 4 && player != NULL) {
+ cXyz local_48(player->current.pos);
+ f32 diffZ = local_48.z - current.pos.z;
+ f32 diffX = fabsf(local_48.x - current.pos.x);
+ if (diffX < 200.0f && fabsf(diffZ) < 200.0f && local_48.y < current.pos.y)
+ {
+ current.pos.y = local_48.y - field_0x62c;
+ field_0x7d0 = 1;
+ setMtx();
+ } else {
+ field_0x7d0 = 0;
+ }
+ }
+ g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
+ dComIfGd_setListBG();
+ mDoExt_modelUpdateDL(mModel);
+ dComIfGd_setList();
+ return 1;
}
/* 80CAC094-80CAC0D8 001454 0044+00 1/0 0/0 0/0 .text Delete__13daObjPDtile_cFv */
-void daObjPDtile_c::Delete() {
- // NONMATCHING
+int daObjPDtile_c::Delete() {
+ dComIfG_resDelete(this, mArcName);
+ mSoundObj.deleteObject();
+ return 1;
}
-/* ############################################################################################## */
-/* 80CAC73C-80CAC768 0001A0 002C+00 2/2 0/0 0/0 .data __vt__13daObjPDtile_c */
-SECTION_DATA extern void* __vt__13daObjPDtile_c[11] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)CreateHeap__13daObjPDtile_cFv,
- (void*)Create__13daObjPDtile_cFv,
- (void*)Execute__13daObjPDtile_cFPPA3_A4_f,
- (void*)Draw__13daObjPDtile_cFv,
- (void*)Delete__13daObjPDtile_cFv,
- (void*)IsDelete__16dBgS_MoveBgActorFv,
- (void*)ToFore__16dBgS_MoveBgActorFv,
- (void*)ToBack__16dBgS_MoveBgActorFv,
- (void*)__dt__13daObjPDtile_cFv,
-};
-
/* 80CAC0D8-80CAC1D4 001498 00FC+00 1/0 0/0 0/0 .text daObjPDtile_create1st__FP13daObjPDtile_c */
-static void daObjPDtile_create1st(daObjPDtile_c* param_0) {
- // NONMATCHING
-}
-
-/* 80CAC1D4-80CAC21C 001594 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
-// cM3dGCyl::~cM3dGCyl() {
-extern "C" void __dt__8cM3dGCylFv() {
- // NONMATCHING
-}
-
-/* 80CAC21C-80CAC264 0015DC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
-/* 80CAC264-80CAC2C0 001624 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
+static int daObjPDtile_create1st(daObjPDtile_c* i_this) {
+ fopAcM_SetupActor(i_this,daObjPDtile_c);
+ return i_this->create1st();
}
/* 80CAC2C0-80CAC2E0 001680 0020+00 1/0 0/0 0/0 .text daObjPDtile_MoveBGDelete__FP13daObjPDtile_c
*/
-static void daObjPDtile_MoveBGDelete(daObjPDtile_c* param_0) {
- // NONMATCHING
+static int daObjPDtile_MoveBGDelete(daObjPDtile_c* i_this) {
+ return i_this->MoveBGDelete();
}
/* 80CAC2E0-80CAC300 0016A0 0020+00 1/0 0/0 0/0 .text daObjPDtile_MoveBGExecute__FP13daObjPDtile_c
*/
-static void daObjPDtile_MoveBGExecute(daObjPDtile_c* param_0) {
- // NONMATCHING
+static int daObjPDtile_MoveBGExecute(daObjPDtile_c* i_this) {
+ return i_this->MoveBGExecute();
}
/* 80CAC300-80CAC32C 0016C0 002C+00 1/0 0/0 0/0 .text daObjPDtile_MoveBGDraw__FP13daObjPDtile_c */
-static void daObjPDtile_MoveBGDraw(daObjPDtile_c* param_0) {
- // NONMATCHING
-}
-
-/* 80CAC32C-80CAC374 0016EC 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80CAC374-80CAC4EC 001734 0178+00 1/0 0/0 0/0 .text __dt__13daObjPDtile_cFv */
-daObjPDtile_c::~daObjPDtile_c() {
- // NONMATCHING
+static int daObjPDtile_MoveBGDraw(daObjPDtile_c* i_this) {
+ return i_this->MoveBGDraw();
}
-/* 80CAC4EC-80CAC4F4 0018AC 0008+00 1/0 0/0 0/0 .text @20@__dt__14dBgS_ObjGndChkFv */
-static void func_80CAC4EC() {
- // NONMATCHING
-}
-/* 80CAC4F4-80CAC4FC 0018B4 0008+00 1/0 0/0 0/0 .text @76@__dt__14dBgS_ObjGndChkFv */
-static void func_80CAC4F4() {
- // NONMATCHING
-}
+/* 80CAC68C-80CAC6AC -00001 0020+00 1/0 0/0 0/0 .data daObjPDtile_METHODS */
+static actor_method_class daObjPDtile_METHODS = {
+ (process_method_func)daObjPDtile_create1st,
+ (process_method_func)daObjPDtile_MoveBGDelete,
+ (process_method_func)daObjPDtile_MoveBGExecute,
+ NULL,
+ (process_method_func)daObjPDtile_MoveBGDraw,
+};
-/* 80CAC4FC-80CAC504 0018BC 0008+00 1/0 0/0 0/0 .text @60@__dt__14dBgS_ObjGndChkFv */
-static void func_80CAC4FC() {
- // NONMATCHING
-}
+/* 80CAC6AC-80CAC6DC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_PDtile */
+extern actor_process_profile_definition g_profile_Obj_PDtile = {
+ fpcLy_CURRENT_e, // mLayerID
+ 3, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_PDtile, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObjPDtile_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 670, // mPriority
+ &daObjPDtile_METHODS, // sub_method
+ 0x00040100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
/* 80CAC580-80CAC580 000074 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/d/actor/d_a_obj_stone.cpp b/src/d/actor/d_a_obj_stone.cpp
index 8e7f24b3f1..1ee80e8757 100644
--- a/src/d/actor/d_a_obj_stone.cpp
+++ b/src/d/actor/d_a_obj_stone.cpp
@@ -9,184 +9,18 @@
#include "d/actor/d_a_obj_stone.h"
#include "d/actor/d_a_player.h"
#include "d/d_lib.h"
-#include "dol2asm.h"
+#include "f_op/f_op_kankyo_mng.h"
#include "global.h"
#include "SSystem/SComponent/c_math.h"
+#include "cmath.h"
-//
-// Forward References:
-//
-
-extern "C" static void bound__FP4cXyzRC13cBgS_PolyInfof();
-extern "C" void __dt__8cM3dGPlaFv();
-extern "C" static void CheckCreateHeap__FP10fopAc_ac_c();
-extern "C" void initBaseMtx__12daObjStone_cFv();
-extern "C" void setBaseMtx__12daObjStone_cFv();
-extern "C" void Create__12daObjStone_cFv();
-extern "C" void CreateHeap__12daObjStone_cFv();
-extern "C" void create__12daObjStone_cFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void execute__12daObjStone_cFv();
-extern "C" void mode_proc_call__12daObjStone_cFv();
-extern "C" void __dt__14dBgS_ObjGndChkFv();
-extern "C" void init_modePutWait__12daObjStone_cFv();
-extern "C" void modePutWait__12daObjStone_cFv();
-extern "C" void init_modeWait__12daObjStone_cFv();
-extern "C" void modeWait__12daObjStone_cFv();
-extern "C" void init_modeDrop__12daObjStone_cFv();
-extern "C" void modeDrop__12daObjStone_cFv();
-extern "C" void init_modeCarry__12daObjStone_cFv();
-extern "C" void modeCarry__12daObjStone_cFv();
-extern "C" void init_modeWalk__12daObjStone_cFv();
-extern "C" void modeWalk__12daObjStone_cFv();
-extern "C" void init_modePushWolfNonBreak__12daObjStone_cFv();
-extern "C" void init_modeYogan__12daObjStone_cFv();
-extern "C" void modeYogan__12daObjStone_cFv();
-extern "C" void init_modeBreak__12daObjStone_cFv();
-extern "C" void modeBreak__12daObjStone_cFv();
-extern "C" void CrrPos__12daObjStone_cFv();
-extern "C" void createItem__12daObjStone_cFv();
-extern "C" void calcRotBaseMtx__12daObjStone_cFPs();
-extern "C" void checkRollAngle__12daObjStone_cFv();
-extern "C" void set_carry_eff__12daObjStone_cFv();
-extern "C" void effect_delete__12daObjStone_cFb();
-extern "C" void draw__12daObjStone_cFv();
-extern "C" void _delete__12daObjStone_cFv();
-extern "C" static void daObjStone_Draw__FP12daObjStone_c();
-extern "C" static void daObjStone_Execute__FP12daObjStone_c();
-extern "C" static void daObjStone_Delete__FP12daObjStone_c();
-extern "C" static void daObjStone_Create__FP10fopAc_ac_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" static void func_80CECA84();
-extern "C" static void func_80CECA8C();
-extern "C" static void func_80CECA94();
-extern "C" static void func_80CECA9C();
-extern "C" static void func_80CECAA4();
-extern "C" extern char const* const d_a_obj_stone__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
-extern "C" void mDoMtx_YrotS__FPA4_fs();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void quatM__14mDoMtx_stack_cFPC10Quaternion();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_delete__FP10fopAc_ac_c();
-extern "C" void fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_setCullSizeSphere__FP10fopAc_ac_cffff();
-extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
-extern "C" void fopAcM_createItemFromTable__FPC4cXyziiiPC5csXyziPC4cXyzPfPfb();
-extern "C" void fopAcM_createItem__FPC4cXyziiiPC5csXyzPC4cXyzi();
-extern "C" void fopAcM_cancelCarryNow__FP10fopAc_ac_c();
-extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci();
-extern "C" void fopAcM_effHamonSet__FPUlPC4cXyzff();
-extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
-extern "C" void fopKyM_createWpillar__FPC4cXyzfi();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGp_getReverb__Fi();
-extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj();
-extern "C" void offActor__10dSv_info_cFii();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void
-setModel__18dPa_modelEcallBackFP14JPABaseEmitterP12J3DModelDataRC12dKy_tevstr_cUcPvUcUc();
-extern "C" void forceOnEventMove__Q213dPa_control_c7level_cFUl();
-extern "C" void
-set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
-extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
-extern "C" void GetPolyAtt0__4dBgSFRC13cBgS_PolyInfo();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void __ct__11dBgS_GndChkFv();
-extern "C" void __dt__11dBgS_GndChkFv();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void ClrObj__16dBgS_PolyPassChkFv();
-extern "C" void SetBomb__16dBgS_PolyPassChkFv();
-extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void ChkAtHit__12dCcD_GObjInfFv();
-extern "C" void ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
-extern "C" void GetTgHitObjSe__12dCcD_GObjInfFv();
-extern "C" void getHitSeID__12dCcD_GObjInfFUci();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void __ml__4cXyzCFf();
-extern "C" void normalizeRS__4cXyzFv();
-extern "C" void __ct__5csXyzFsss();
-extern "C" void cM_atan2s__Fff();
-extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_chaseF__FPfff();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void deleteObject__14Z2SoundObjBaseFv();
-extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase();
-extern "C" void __ct__16Z2SoundObjSimpleFv();
-extern "C" void __dl__FPv();
-extern "C" void __ptmf_scall();
-extern "C" void _savegpr_19();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_19();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__8dCcD_Sph[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_SphAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
-extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
-extern "C" f32 Zero__4cXyz[3];
-extern "C" u8 BaseX__4cXyz[12];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" f32 mGroundY__11fopAcM_gc_c;
-extern "C" u8 mEcallback__18dPa_modelEcallBack[4];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" extern u8 data_80CECE10[4];
-
-//
-// Declarations:
-//
-
-/* ############################################################################################## */
/* 80CECAB4-80CECABC 000000 0008+00 14/14 0/0 0/0 .rodata l_bmdIdx */
const static int l_bmdIdx[2] = {3, 3};
-COMPILER_STRIP_GATE(0x80CECAB4, &l_bmdIdx);
/* 80CECABC-80CECAFC 000008 0040+00 0/1 0/0 0/0 .rodata l_sph_src */
-#pragma push
-#pragma force_active on
const static dCcD_SrcSph l_sph_src = {
{
- {0, {{AT_TYPE_THROW_OBJ, 0x03, 0x13}, {3640327679, 0x11}, 0x79}},
+ {0, {{AT_TYPE_THROW_OBJ, 0x03, 0x13}, {0xD8FAFDFF, 0x11}, 0x79}},
{dCcD_SE_THROW_OBJ, 0, 0, 0, {0x08}},
{dCcD_SE_NONE, 0x02, 0, 0, {0x03}},
{0},
@@ -197,243 +31,111 @@ const static dCcD_SrcSph l_sph_src = {
50.0f,
},
}};
-COMPILER_STRIP_GATE(0x80CECABC, &l_sph_src);
-#pragma pop
/* 80CECAFC-80CECB04 000048 0008+00 0/3 0/0 0/0 .rodata l_r */
-#pragma push
-#pragma force_active on
// radius
const static f32 l_r[2] = {
30.0f,
50.0f,
};
-COMPILER_STRIP_GATE(0x80CECAFC, &l_r);
-#pragma pop
/* 80CECB04-80CECB0C 000050 0008+00 0/1 0/0 0/0 .rodata l_rolling_speedF */
-#pragma push
-#pragma force_active on
const static f32 l_rolling_speedF[2] = {9.0f, 9.0f};
-COMPILER_STRIP_GATE(0x80CECB04, &l_rolling_speedF);
-#pragma pop
/* 80CECB0C-80CECB14 000058 0008+00 0/0 0/0 0/0 .rodata l_rolling_time */
-#pragma push
-#pragma force_active on
const static u32 l_rolling_time[2] = {
- 0x0000001E,
- 0x00000017,
+ 30,
+ 23,
};
-COMPILER_STRIP_GATE(0x80CECB0C, &l_rolling_time);
-#pragma pop
/* 80CECB14-80CECB1C 000060 0008+00 1/2 0/0 0/0 .rodata l_initial_offsetY */
const static f32 l_initial_offsetY[2] = {10.0f, 20.0f};
-COMPILER_STRIP_GATE(0x80CECB14, &l_initial_offsetY);
/* 80CECB1C-80CECB24 000068 0008+00 0/3 0/0 0/0 .rodata l_put_offsetY */
-#pragma push
-#pragma force_active on
const static f32 l_put_offsetY[2] = {20.0f, 30.0f};
-COMPILER_STRIP_GATE(0x80CECB1C, &l_put_offsetY);
-#pragma pop
/* 80CECB24-80CECB28 000070 0002+02 1/2 0/0 0/0 .rodata l_weight */
-const static u8 l_weight[2] = {0x78, 0xC8};
-COMPILER_STRIP_GATE(0x80CECB24, &l_weight);
+const static u8 l_weight[2] = {120, 200};
/* 80CECB28-80CECB30 000074 0008+00 0/1 0/0 0/0 .rodata l_speedH */
-#pragma push
-#pragma force_active on
const static f32 l_speedH[2] = {
36.0f,
43.0f,
};
-COMPILER_STRIP_GATE(0x80CECB28, &l_speedH);
-#pragma pop
/* 80CECB30-80CECB38 00007C 0008+00 0/1 0/0 0/0 .rodata l_speedV */
-#pragma push
-#pragma force_active on
const static f32 l_speedV[2] = {
27.0f,
22.0f,
};
-COMPILER_STRIP_GATE(0x80CECB30, &l_speedV);
-#pragma pop
/* 80CECB38-80CECB40 000084 0008+00 0/1 0/0 0/0 .rodata l_water_speedH */
-#pragma push
-#pragma force_active on
const static f32 l_water_speedH[2] = {
5.0f,
5.0f,
};
-COMPILER_STRIP_GATE(0x80CECB38, &l_water_speedH);
-#pragma pop
/* 80CECB40-80CECB48 00008C 0008+00 0/1 0/0 0/0 .rodata l_water_speedV */
-#pragma push
-#pragma force_active on
const static f32 l_water_speedV[2] = {
5.0f,
5.0f,
};
-COMPILER_STRIP_GATE(0x80CECB40, &l_water_speedV);
-#pragma pop
/* 80CECB48-80CECB50 000094 0008+00 0/1 0/0 0/0 .rodata l_water_resist */
-#pragma push
-#pragma force_active on
const static f32 l_water_resist[2] = {
0.02f,
0.02f,
};
-COMPILER_STRIP_GATE(0x80CECB48, &l_water_resist);
-#pragma pop
/* 80CECB50-80CECB58 00009C 0008+00 0/1 0/0 0/0 .rodata l_water_walk_resist */
-#pragma push
-#pragma force_active on
const static f32 l_water_walk_resist[2] = {
0.15f,
0.15f,
};
-COMPILER_STRIP_GATE(0x80CECB50, &l_water_walk_resist);
-#pragma pop
/* 80CECB58-80CECB60 0000A4 0008+00 0/2 0/0 0/0 .rodata l_buoyancy */
-#pragma push
-#pragma force_active on
const static f32 l_buoyancy[2] = {
5.9f,
5.9f,
};
-COMPILER_STRIP_GATE(0x80CECB58, &l_buoyancy);
-#pragma pop
/* 80CECB60-80CECB68 0000AC 0008+00 1/1 0/0 0/0 .rodata l_shadow_size */
const static f32 l_shadow_size[2] = {40.0f, 65.0f};
-COMPILER_STRIP_GATE(0x80CECB60, &l_shadow_size);
/* 80CECB68-80CECB70 0000B4 0008+00 0/1 0/0 0/0 .rodata l_wpillar_scl */
-#pragma push
-#pragma force_active on
const static f32 l_wpillar_scl[2] = {
0.65f,
1.1f,
};
-COMPILER_STRIP_GATE(0x80CECB68, &l_wpillar_scl);
-#pragma pop
/* 80CECB70-80CECB78 0000BC 0008+00 0/1 0/0 0/0 .rodata l_hamon_scl */
-#pragma push
-#pragma force_active on
const static f32 l_hamon_scl[2] = {
0.7f,
1.2f,
};
-COMPILER_STRIP_GATE(0x80CECB70, &l_hamon_scl);
-#pragma pop
/* 80CECB78-80CECB80 0000C4 0008+00 0/1 0/0 0/0 .rodata l_yogan_eff_scl */
-#pragma push
-#pragma force_active on
const static f32 l_yogan_eff_scl[2] = {
0.6f,
1.1f,
};
-COMPILER_STRIP_GATE(0x80CECB78, &l_yogan_eff_scl);
-#pragma pop
/* 80CECB80-80CECB88 0000CC 0008+00 0/1 0/0 0/0 .rodata l_wall_h */
-#pragma push
-#pragma force_active on
const static f32 l_wall_h[2] = {
30.0f,
50.0f,
};
-COMPILER_STRIP_GATE(0x80CECB80, &l_wall_h);
-#pragma pop
/* 80CECB88-80CECB90 0000D4 0008+00 0/1 0/0 0/0 .rodata l_wall_r */
-#pragma push
-#pragma force_active on
const static f32 l_wall_r[2] = {30.0f, 50.0f};
-COMPILER_STRIP_GATE(0x80CECB88, &l_wall_r);
-#pragma pop
/* 80CECB90-80CECB94 0000DC 0004+00 0/1 0/0 0/0 .rodata l_rot_angle */
-#pragma push
-#pragma force_active on
const static s16 l_rot_angle[2] = {35, 18};
-COMPILER_STRIP_GATE(0x80CECB90, &l_rot_angle);
-#pragma pop
/* 80CECB94-80CECB98 0000E0 0004+00 0/1 0/0 0/0 .rodata l_walk_rot_angle */
-#pragma push
-#pragma force_active on
const static s16 l_walk_rot_angle[2] = {40, 40};
-COMPILER_STRIP_GATE(0x80CECB94, &l_walk_rot_angle);
-#pragma pop
-
-/* 80CECB98-80CECB9C 0000E4 0004+00 0/7 0/0 0/0 .rodata @3746 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3746[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80CECB98, &lit_3746);
-#pragma pop
-
-/* 80CECB9C-80CECBA4 0000E8 0008+00 0/4 0/0 0/0 .rodata @3747 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3747[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CECB9C, &lit_3747);
-#pragma pop
-
-/* 80CECBA4-80CECBAC 0000F0 0008+00 0/4 0/0 0/0 .rodata @3748 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3748[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CECBA4, &lit_3748);
-#pragma pop
-
-/* 80CECBAC-80CECBB4 0000F8 0008+00 0/4 0/0 0/0 .rodata @3749 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_3749[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CECBAC, &lit_3749);
-#pragma pop
-/* 80CECC54-80CECC60 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
-SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-/* 80CECC60-80CECC74 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
-};
-#pragma pop
+UNK_REL_DATA
/* 80CECC74-80CECC7C -00001 0008+00 3/3 0/0 0/0 .data l_arcName */
static char* l_arcName[2] = {
@@ -441,185 +143,6 @@ static char* l_arcName[2] = {
"D_Brock", // big rock
};
-/* 80CECC7C-80CECC88 -00001 000C+00 0/1 0/0 0/0 .data @4015 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4015[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWait__12daObjStone_cFv,
-};
-#pragma pop
-
-/* 80CECC88-80CECC94 -00001 000C+00 0/1 0/0 0/0 .data @4016 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4016[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeDrop__12daObjStone_cFv,
-};
-#pragma pop
-
-/* 80CECC94-80CECCA0 -00001 000C+00 0/1 0/0 0/0 .data @4017 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4017[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeCarry__12daObjStone_cFv,
-};
-#pragma pop
-
-/* 80CECCA0-80CECCAC -00001 000C+00 0/1 0/0 0/0 .data @4018 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4018[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modePutWait__12daObjStone_cFv,
-};
-#pragma pop
-
-/* 80CECCAC-80CECCB8 -00001 000C+00 0/1 0/0 0/0 .data @4019 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4019[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeWalk__12daObjStone_cFv,
-};
-#pragma pop
-
-/* 80CECCB8-80CECCC4 -00001 000C+00 0/1 0/0 0/0 .data @4020 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4020[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeBreak__12daObjStone_cFv,
-};
-#pragma pop
-
-/* 80CECCC4-80CECCD0 -00001 000C+00 0/1 0/0 0/0 .data @4021 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4021[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)modeYogan__12daObjStone_cFv,
-};
-#pragma pop
-
-/* 80CECCD0-80CECD24 00007C 0054+00 0/1 0/0 0/0 .data l_func$4014 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_func[84] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-#pragma pop
-
-/* 80CECD24-80CECD44 -00001 0020+00 1/0 0/0 0/0 .data l_daObjStone_Method */
-static actor_method_class l_daObjStone_Method = {
- (process_method_func)daObjStone_Create__FP10fopAc_ac_c,
- (process_method_func)daObjStone_Delete__FP12daObjStone_c,
- (process_method_func)daObjStone_Execute__FP12daObjStone_c, (process_method_func)0,
- (process_method_func)daObjStone_Draw__FP12daObjStone_c};
-
-/* 80CECD44-80CECD74 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Stone */
-extern actor_process_profile_definition g_profile_Obj_Stone = {
- fpcLy_CURRENT_e, // mLayerID
- 8, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_Stone, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daObjStone_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 511, // mPriority
- &l_daObjStone_Method, // sub_method
- 0x40100, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLSPHERE_8_e, // cullType
-};
-
-/* 80CECD74-80CECDA4 000120 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_ObjGndChk */
-SECTION_DATA extern void* __vt__14dBgS_ObjGndChk[12] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14dBgS_ObjGndChkFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CECA94,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CECAA4,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CECA9C,
-};
-
-/* 80CECDA4-80CECDB0 000150 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
-
-/* 80CECDB0-80CECDBC 00015C 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
-
-/* 80CECDBC-80CECDC8 000168 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
-
-/* 80CECDC8-80CECDD4 000174 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
-SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGSphFv,
-};
-
-/* 80CECDD4-80CECDE0 000180 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
-
-/* 80CECDE0-80CECE04 00018C 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CECA8C,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80CECA84,
-};
-
-/* 80CECE04-80CECE10 0001B0 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGPla */
-SECTION_DATA extern void* __vt__8cM3dGPla[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGPlaFv,
-};
-
/* 80CE9078-80CE935C 000078 02E4+00 1/1 0/0 0/0 .text bound__FP4cXyzRC13cBgS_PolyInfof */
static f32 bound(cXyz* param_0, cBgS_PolyInfo const& param_1, f32 param_2) {
cM3dGPla plane;
@@ -637,13 +160,6 @@ static f32 bound(cXyz* param_0, cBgS_PolyInfo const& param_1, f32 param_2) {
}
}
-
-/* 80CE935C-80CE93A4 00035C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */
-// cM3dGPla::~cM3dGPla() {
-extern "C" void __dt__8cM3dGPlaFv() {
- // NONMATCHING
-}
-
/* 80CE93A4-80CE93C4 0003A4 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */
static bool CheckCreateHeap(fopAc_ac_c* i_this) {
return static_cast<daObjStone_c*>(i_this)->CreateHeap();
@@ -671,18 +187,6 @@ void daObjStone_c::setBaseMtx() {
field_0x0920 = ZeroQuat;
}
-/* ############################################################################################## */
-/* 80CECBB4-80CECBB8 000100 0004+00 0/1 0/0 0/0 .rodata @3844 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3844 = 6.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80CECBB4, &lit_3844);
-#pragma pop
-
-/* 80CECBB8-80CECBBC 000104 0004+00 2/8 0/0 0/0 .rodata @3845 */
-SECTION_RODATA static f32 const lit_3845 = 1.0f;
-COMPILER_STRIP_GATE(0x80CECBB8, &lit_3845);
-
/* 80CE9540-80CE97C0 000540 0280+00 1/1 0/0 0/0 .text Create__12daObjStone_cFv */
int daObjStone_c::Create() {
mShapeAngle = shape_angle;
@@ -713,7 +217,7 @@ int daObjStone_c::Create() {
fopAcM_setCullSizeSphere(this, 0.0f, 0.0f, 0.0f, l_r[mStoneType] * 1.2f);
cLib_onBit<u32>(attention_info.flags, 0x10);
- attention_info.distances[fopAc_attn_SPEAK_e] = 0x2A;
+ attention_info.distances[fopAc_attn_CARRY_e] = 0x2A;
fopAcM_OnCarryType(this, fopAcM_CARRY_LIGHT);
cXyz other_pos = current.pos;
@@ -756,8 +260,6 @@ bool daObjStone_c::CreateHeap() {
}
/* 80CE9840-80CE99D4 000840 0194+00 1/1 0/0 0/0 .text create__12daObjStone_cFv */
-#ifdef NONMATCHING
-// matches, but too many destructors being generated
int daObjStone_c::create() {
fopAcM_SetupActor(this, daObjStone_c);
@@ -779,55 +281,13 @@ int daObjStone_c::create() {
return phase;
}
-#else
-int daObjStone_c::create() {
- // NONMATCHING
-}
-#endif
-
-/* 80CE99D4-80CE9A1C 0009D4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
-
-/* 80CE9A1C-80CE9A64 000A1C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
-/* 80CE9A64-80CE9AC0 000A64 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80CE9AC0-80CE9B30 000AC0 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
-
-/* 80CE9B30-80CE9BA0 000B30 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80CECBBC-80CECBC0 000108 0004+00 1/3 0/0 0/0 .rodata @4010 */
-SECTION_RODATA static f32 const lit_4010 = -6.0f;
-COMPILER_STRIP_GATE(0x80CECBBC, &lit_4010);
/* 80CE9BA0-80CE9CF8 000BA0 0158+00 1/1 0/0 0/0 .text execute__12daObjStone_cFv */
-#ifdef NONMATCHING
-// matches but cXyz destructor being generated after this function
int daObjStone_c::execute() {
cXyz pos;
mStatus.SetWeight(l_weight[this->mStoneType]);
- fopAcM_SetGravity(this, FLOAT_LABEL(lit_4010));
+ fopAcM_SetGravity(this, -6.0f);
mode_proc_call();
if (mCollider.ChkTgHit() && mCollider.GetTgHitObj()) {
@@ -849,110 +309,220 @@ int daObjStone_c::execute() {
effect_delete(false);
return 1;
}
-#else
-int daObjStone_c::execute() {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 80CECBC0-80CECBC4 00010C 0004+00 0/1 0/0 0/0 .rodata @4632 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4632 = 2.0f;
-COMPILER_STRIP_GATE(0x80CECBC0, &lit_4632);
-#pragma pop
-
-/* 80CECBC4-80CECBC8 000110 0004+00 0/1 0/0 0/0 .rodata @4633 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4633 = 2.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80CECBC4, &lit_4633);
-#pragma pop
-
-/* 80CECBC8-80CECBCC 000114 0004+00 0/5 0/0 0/0 .rodata @4634 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4634 = 0.5f;
-COMPILER_STRIP_GATE(0x80CECBC8, &lit_4634);
-#pragma pop
-
-/* 80CECBCC-80CECBD0 000118 0004+00 0/2 0/0 0/0 .rodata @4635 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4635 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80CECBCC, &lit_4635);
-#pragma pop
-
-/* 80CECBD0-80CECBD4 00011C 0004+00 0/1 0/0 0/0 .rodata @4636 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4636 = -100000.0f;
-COMPILER_STRIP_GATE(0x80CECBD0, &lit_4636);
-#pragma pop
-
-/* 80CECBD4-80CECBD8 000120 0004+00 0/3 0/0 0/0 .rodata @4637 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4637 = -1000000000.0f;
-COMPILER_STRIP_GATE(0x80CECBD4, &lit_4637);
-#pragma pop
-
-/* 80CECBD8-80CECBDC 000124 0004+00 0/1 0/0 0/0 .rodata @4638 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4638 = 60.0f;
-COMPILER_STRIP_GATE(0x80CECBD8, &lit_4638);
-#pragma pop
-
-/* 80CECBDC-80CECBE0 000128 0004+00 0/1 0/0 0/0 .rodata @4639 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4639 = 100.0f;
-COMPILER_STRIP_GATE(0x80CECBDC, &lit_4639);
-#pragma pop
-
-/* 80CECBE0-80CECBE4 00012C 0004+00 1/4 0/0 0/0 .rodata @4640 */
-SECTION_RODATA static f32 const lit_4640 = -1.0f;
-COMPILER_STRIP_GATE(0x80CECBE0, &lit_4640);
-
-/* 80CECBE4-80CECBE8 000130 0004+00 0/1 0/0 0/0 .rodata @4641 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4641 = 90.0f;
-COMPILER_STRIP_GATE(0x80CECBE4, &lit_4641);
-#pragma pop
-
-/* 80CECBE8-80CECBEC 000134 0004+00 0/2 0/0 0/0 .rodata @4642 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4642 = -10.0f;
-COMPILER_STRIP_GATE(0x80CECBE8, &lit_4642);
-#pragma pop
-
-/* 80CECBEC-80CECBF0 000138 0004+00 0/3 0/0 0/0 .rodata @4643 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4643 = 10.0f;
-COMPILER_STRIP_GATE(0x80CECBEC, &lit_4643);
-#pragma pop
-
-/* 80CECBF0-80CECBF4 00013C 0004+00 0/3 0/0 0/0 .rodata @4644 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4644 = 50.0f;
-COMPILER_STRIP_GATE(0x80CECBF0, &lit_4644);
-#pragma pop
/* 80CE9CF8-80CEAF10 000CF8 1218+00 1/1 0/0 0/0 .text mode_proc_call__12daObjStone_cFv */
void daObjStone_c::mode_proc_call() {
- // NONMATCHING
-}
+ static daObjStone_c::modeFunc l_func[7] = {
+ &daObjStone_c::modeWait,
+ &daObjStone_c::modeDrop,
+ &daObjStone_c::modeCarry,
+ &daObjStone_c::modePutWait,
+ &daObjStone_c::modeWait,
+ &daObjStone_c::modeBreak,
+ &daObjStone_c::modeYogan,
+ };
+ if (fopAcM_checkCarryNow(this) && field_0x0907 != 2) {
+ if (daPy_py_c::i_checkNowWolf()) {
+ init_modePushWolfNonBreak();
+ } else {
+ init_modeCarry();
+ }
+ }
+ if (mCollider.ChkTgHit()) {
+ cCcD_Obj* tgHitObj = mCollider.GetTgHitObj();
+ if (tgHitObj != NULL) {
+ fopAc_ac_c* tgHitActor = mCollider.GetTgHitAc();
+ if (fopAcM_GetName(tgHitActor) == PROC_OBJ_GRA) {
+ init_modeBreak();
+ } else {
+ if (tgHitObj->ChkAtType(AT_TYPE_BOMB)) {
+ init_modeBreak();
+ }
+ if (tgHitObj->ChkAtType(AT_TYPE_IRON_BALL) && tgHitObj->GetAtAtp() != 1) {
+ init_modeBreak();
+ } else if (tgHitObj->ChkAtType(AT_TYPE_CSTATUE_SWING) &&
+ (fopAcM_GetName(tgHitActor) == PROC_Obj_VolcanicBomb))
+ {
+ init_modeBreak();
+ }
+ }
+ }
+ }
+ if (mCollider.ChkAtHit()) {
+ init_modeBreak();
+ }
+ bool isGroundLanding = mChkObj.ChkGroundLanding() != 0;
+ u32 isWallhit = mChkObj.m_flags & dBgS_Acch::WALL_HIT;
+ bool isGroundHit = mChkObj.ChkGroundHit() != 0;
+ bool isWaterHit = mChkObj.ChkWaterHit() != 0;
+ bool isWaterIn = mChkObj.ChkWaterIn() != 0;
+ if (field_0x0907 == 1) {
+ if (isGroundLanding && !isWaterIn) {
+ speed.x = speedF * cM_ssin(current.angle.y);
+ speed.z = speedF * cM_scos(current.angle.y);
+ speed.y = mLastSpeedY;
+ if (speed.abs() > 2.0f) {
+ bound(&speed, mChkObj.m_gnd, 0.4f);
+ } else {
+ speed.setall(0.0f);
+ }
+ speedF = speed.absXZ();
+ current.angle.y = cM_atan2s(speed.x, speed.z);
+ } else {
+ if (isWallhit && field_0x0951 == 0 && isWaterIn) {
+ speed.x = speedF * cM_ssin(current.angle.y);
+ speed.z = speedF * cM_scos(current.angle.y);
+ speed.y = mLastSpeedY;
+ if (speed.abs() > 2.0f) {
+ bound(&speed, mChkCircle, 0.5f);
+ } else {
+ speed.setall(0.0f);
+ }
+ speed.y = mLastSpeedY;
+ speedF = speed.absXZ();
+ current.angle.y = cM_atan2s(speed.x, speed.z);
+ }
+ }
+ }
+ if (field_0x0907 == 4 && isWallhit) {
+ speed.x = speedF * cM_ssin(current.angle.y);
+ speed.z = speedF * cM_scos(current.angle.y);
+ if (speed.abs() > 2.0f) {
+ bound(&speed, mChkCircle, 0.5f);
+ } else {
+ speed.setall(0.0f);
+ }
+ speedF = speed.absXZ();
+ current.angle.y = cM_atan2s(speed.x, speed.z);
+ }
+ mIsInWater = false;
+ if (isWaterHit || isWaterIn) {
+ f32 waterHeight = mChkObj.m_wtr.GetHeight();
+ int iVar10 = dComIfG_Bgsp().GetPolyAtt0(mChkObj.m_wtr);
+ if (waterHeight > current.pos.y) {
+ switch (iVar10) {
+ case 7:
+ case 11:
+ default:
+ mIsInWater = 1;
+ if (field_0x094f == 0) {
+ fopKyM_createWpillar(&current.pos, l_wpillar_scl[mStoneType], 0);
+ cXyz cStack_d4(current.pos.x, waterHeight - 0.1f, current.pos.z);
+ dBgS_ObjGndChk adStack_c8;
+ adStack_c8.SetPos(&cStack_d4);
+ f32 dVar17 = dComIfG_Bgsp().GroundCross(&adStack_c8);
+ if (dVar17 == -1000000000.0f) {
+ dVar17 = -100000.0f;
+ }
+ dVar17 = fabs(waterHeight - dVar17);
+ if ((mStoneType == OBJ_STONE_TYPE_SMALL && dVar17 < 60.0f) ||
+ (mStoneType == OBJ_STONE_TYPE_BIG && dVar17 < 100.0f))
+ {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_ASASE, 0);
+ } else {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_WTR, 0);
+ }
+ }
+ if (isGroundHit) {
+ f32 waterHeightDiff = waterHeight - current.pos.y;
+ if ((mStoneType == OBJ_STONE_TYPE_SMALL && waterHeightDiff < 60.0f) ||
+ (mStoneType == OBJ_STONE_TYPE_BIG && waterHeightDiff < 90.0f))
+ {
+ cXyz cStack_e0(current.pos);
+ cStack_e0.y = waterHeight;
+ fopAcM_effHamonSet(&field_0x0954, &cStack_e0, l_hamon_scl[mStoneType], 0.1f);
+ }
+ }
+ if (speed.y < -10.0f) {
+ speed.y = -10.0f;
+ }
+ if (speed.y > 10.0f) {
+ speed.y = 10.0f;
+ }
+ if (speedF > 10.0f) {
+ speedF = 10.0f;
+ }
+ break;
+ case 6:
+ if (field_0x0907 != 6) {
+ init_modeYogan();
+ cXyz cStack_ec(current.pos.x, waterHeight, current.pos.z);
+ cXyz cStack_f8(l_yogan_eff_scl[mStoneType], l_yogan_eff_scl[mStoneType],
+ l_yogan_eff_scl[mStoneType]);
+ dComIfGp_particle_set(0x8757, &cStack_ec, &tevStr, 0, &cStack_f8);
+ dComIfGp_particle_set(0x8758, &cStack_ec, &tevStr, 0, &cStack_f8);
+ }
+ break;
-/* 80CEAF10-80CEAF88 001F10 0078+00 4/3 0/0 0/0 .text __dt__14dBgS_ObjGndChkFv */
-// dBgS_ObjGndChk::~dBgS_ObjGndChk() {
-extern "C" void __dt__14dBgS_ObjGndChkFv() {
- // NONMATCHING
+ }
+ }
+ }
+ if (field_0x0907 == 1) {
+ if (mIsInWater) {
+ if (isGroundLanding) {
+ init_modeWalk();
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_PUT_WTR, 0);
+ }
+ } else {
+ if (isGroundLanding) {
+ if (!isWaterIn) {
+ int iVar8 = dComIfG_Bgsp().GetPolyAtt0(mChkObj.m_gnd);
+ if (iVar8 == 1 || iVar8 == 3 || iVar8 == 4) {
+ mInitialOffsetY = l_put_offsetY[mStoneType];
+ if (mStoneType == 1) {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_L_ROCK_BOUND, 0);
+ } else {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_BOUND, 0);
+ }
+ init_modeWalk();
+ } else {
+ init_modeBreak();
+ }
+ } else {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_PUT_WTR, 0);
+ }
+ }
+ if (isWallhit) {
+ init_modeBreak();
+ }
+ }
+ } else if (field_0x0907 == 0 && isGroundLanding) {
+ if (!isWaterIn) {
+ if (speedF == 0.0f) {
+ if (mStoneType == 1) {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_L_ROCK_PUT, 0);
+ } else {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_PUT, 0);
+ }
+ } else if (mStoneType == 1) {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_L_ROCK_BOUND, 0);
+ } else {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_BOUND, 0);
+ }
+ } else {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_PUT_WTR, 0);
+ }
+ }
+ if (field_0x094d != 0) {
+ field_0x094d--;
+ } else {
+ if (field_0x0907 != 2) {
+ f32 dVar16 = fabs(current.pos.y - mLastPosY);
+ if (isGroundLanding && !isWaterHit && dVar16 > 50.0f) {
+ fopAcM_effSmokeSet1(&field_0x095c, &field_0x0960,
+ &current.pos, 0, l_r[mStoneType] / l_r[1], &tevStr, 1);
+ dComIfGp_particle_levelEmitterOnEventMove(field_0x095c);
+ dComIfGp_particle_levelEmitterOnEventMove(field_0x0960);
+ field_0x094d = 30;
+ }
+ }
+ }
+ if (isGroundHit) {
+ mLastPosY = current.pos.y;
+ }
+ (this->*(l_func[field_0x0907]))();
+ CrrPos();
+ field_0x0951 = isWallhit != 0;
}
/* 80CEAF88-80CEAFD8 001F88 0050+00 1/1 0/0 0/0 .text init_modePutWait__12daObjStone_cFv
@@ -980,28 +550,13 @@ void daObjStone_c::init_modeWait() {
field_0x0907 = 0;
}
-/* ############################################################################################## */
-/* 80CECBF4-80CECBF8 000140 0004+00 0/1 0/0 0/0 .rodata @4678 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4678 = 19.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80CECBF4, &lit_4678);
-#pragma pop
-
-/* 80CECBF8-80CECBFC 000144 0004+00 0/2 0/0 0/0 .rodata @4679 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4679 = 8.0f;
-COMPILER_STRIP_GATE(0x80CECBF8, &lit_4679);
-#pragma pop
-
/* 80CEB01C-80CEB0B8 00201C 009C+00 1/0 0/0 0/0 .text modeWait__12daObjStone_cFv */
void daObjStone_c::modeWait() {
mMode++;
- speedF *= FLOAT_LABEL(lit_4678);
+ speedF *= 0.95f;
fopAcM_posMoveF(this, mStatus.GetCCMoveP());
- cLib_chaseF(&mInitialOffsetY, l_put_offsetY[mStoneType], FLOAT_LABEL(lit_4679));
+ cLib_chaseF(&mInitialOffsetY, l_put_offsetY[mStoneType], 8.0f);
if (mMode > 5 && checkRollAngle()) {
init_modeWalk();
@@ -1069,15 +624,6 @@ void daObjStone_c::init_modeCarry() {
field_0x0907 = 2;
}
-
-/* ############################################################################################## */
-/* 80CECBFC-80CECC00 000148 0004+00 0/1 0/0 0/0 .rodata @4829 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4829 = 0.25f;
-COMPILER_STRIP_GATE(0x80CECBFC, &lit_4829);
-#pragma pop
-
/* 80CEB480-80CEB6E8 002480 0268+00 1/0 0/0 0/0 .text modeCarry__12daObjStone_cFv */
void daObjStone_c::modeCarry() {
mMode++;
@@ -1143,7 +689,6 @@ void daObjStone_c::modeCarry() {
}
}
-
/* 80CEB6E8-80CEB720 0026E8 0038+00 2/2 0/0 0/0 .text init_modeWalk__12daObjStone_cFv */
void daObjStone_c::init_modeWalk() {
mCollider.OffAtSPrmBit(1);
@@ -1153,38 +698,84 @@ void daObjStone_c::init_modeWalk() {
field_0x0907 = 4;
}
-/* ############################################################################################## */
-/* 80CECC00-80CECC04 00014C 0004+00 0/2 0/0 0/0 .rodata @5018 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_5018 = 0x467BBBBC;
-COMPILER_STRIP_GATE(0x80CECC00, &lit_5018);
-#pragma pop
-
-/* 80CECC04-80CECC08 000150 0004+00 0/1 0/0 0/0 .rodata @5019 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5019 = 4.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80CECC04, &lit_5019);
-#pragma pop
-
-/* 80CECC08-80CECC0C 000154 0004+00 0/1 0/0 0/0 .rodata @5020 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_5020 = 0x3C23D70B;
-COMPILER_STRIP_GATE(0x80CECC08, &lit_5020);
-#pragma pop
-
-/* 80CECC0C-80CECC10 000158 0004+00 0/1 0/0 0/0 .rodata @5021 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5021 = 9.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80CECC0C, &lit_5021);
-#pragma pop
-
/* 80CEB720-80CEBCDC 002720 05BC+00 1/0 0/0 0/0 .text modeWalk__12daObjStone_cFv */
void daObjStone_c::modeWalk() {
- // NONMATCHING
+ mMode++;
+ if (field_0x0908 == 0) {
+ if (mStoneType == OBJ_STONE_TYPE_BIG) {
+ if (mMode == 4) {
+ createItem();
+ field_0x0908 = 1;
+ }
+ } else if (mMode == 7) {
+ createItem();
+ field_0x0908 = 1;
+ }
+ }
+ if (mIsInWater) {
+ cXyz local_b0;
+ cXyz local_bc;
+ local_b0.x = speedF * cM_ssin(current.angle.y);
+ local_b0.y = speed.y;
+ local_b0.z = speedF * cM_scos(current.angle.y);
+ local_bc = local_b0;
+ local_bc.x = -local_bc.x * l_water_walk_resist[mStoneType];
+ local_bc.y = -local_bc.y * l_water_walk_resist[mStoneType];
+ local_bc.z = -local_bc.z * l_water_walk_resist[mStoneType];
+ local_b0 += local_bc;
+ speedF = std::sqrt(local_b0.x * local_b0.x + local_b0.z * local_b0.z);
+ speed.y = local_b0.y;
+ fopAcM_SetGravity(this, -6.0f + l_buoyancy[mStoneType]);
+ }
+ fopAcM_posMoveF(this, mStatus.GetCCMoveP());
+ f32 dVar15 = 89.0f;
+ cXyz cStack_c8(current.pos);
+ cStack_c8.y += 50.0f;
+ f32 dVar14 = 1.0f - 0.2f;
+ cM3dGPla acStack_a4;
+ bool iVar7 = fopAcM_gc_c::gndCheck(&cStack_c8);
+ bool isTriPla = fopAcM_gc_c::getTriPla(&acStack_a4);
+ f32 dVar12 = fopAcM_gc_c::getGroundY();
+ if (iVar7 && dVar12 != -1000000000.0f && isTriPla) {
+ f32 dVar12 = cM_scos(cM_deg2s(dVar15 - 0.5f));
+ cXyz cStack_d4(acStack_a4.mNormal);
+ if (cStack_d4.y < dVar12) {
+ cXyz local_e0(cStack_d4);
+ s16 sVar9 = cM_atan2s(local_e0.x, local_e0.z);
+ f32 dVar12 = 10.0f;
+ dVar12 *= (1.0f - cStack_d4.y);
+ if (dVar12 < 0.1f) {
+ dVar12 = 0.1f;
+ } else {
+ if (dVar12 > 1.0f) {
+ dVar12 = 1.0f;
+ }
+ }
+ cXyz local_ec((speedF * cM_ssin(current.angle.y)), 0.0f,
+ speedF * cM_scos(current.angle.y));
+ cXyz cStack_f8((dVar12 * cM_ssin(sVar9)), 0.0f, dVar12 * cM_scos(sVar9));
+ local_ec += cStack_f8;
+ speedF =
+ std::sqrt(local_ec.x * local_ec.x + local_ec.z * local_ec.z);
+ current.angle.y = cM_atan2s(local_ec.x, local_ec.z);
+ }
+ }
+ speedF *= dVar14;
+ if (mStatus.GetCCMoveP()->abs2XZ() > 0.01000000070780516f) {
+ speedF *= 0.9f;
+ }
+ if (speedF < 0.5f) {
+ speedF = 0;
+ }
+ f32 step = 8.0f;
+ if (speed.y < 0.0f && std::fabs(speed.y) > step) {
+ step = std::fabs(speed.y);
+ }
+ cLib_chaseF(&mInitialOffsetY, l_put_offsetY[mStoneType], step);
+ calcRotBaseMtx(NULL);
+ if (speedF == 0.0f && mChkObj.ChkGroundHit()) {
+ init_modeWait();
+ }
}
/* 80CEBCDC-80CEBE24 002CDC 0148+00 1/1 0/0 0/0 .text init_modePushWolfNonBreak__12daObjStone_cFv
@@ -1209,52 +800,27 @@ void daObjStone_c::init_modePushWolfNonBreak() {
field_0x0907 = 4;
}
-
-/* ############################################################################################## */
-/* 80CECC10-80CECC14 00015C 0004+00 0/1 0/0 0/0 .rodata @5063 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5063 = -2.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80CECC10, &lit_5063);
-#pragma pop
-
-/* 80CECC14-80CECC18 000160 0004+00 0/1 0/0 0/0 .rodata @5064 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_5064 = -2.0f;
-COMPILER_STRIP_GATE(0x80CECC14, &lit_5064);
-#pragma pop
-
/* 80CEBE24-80CEBE84 002E24 0060+00 1/1 0/0 0/0 .text init_modeYogan__12daObjStone_cFv */
void daObjStone_c::init_modeYogan() {
mCollider.OffAtSPrmBit(1);
mCollider.OnCoSPrmBit(1);
mInitialOffsetY = l_initial_offsetY[mStoneType];
mMode = 0;
- fopAcM_SetGravity(this, FLOAT_LABEL(lit_5063));
- fopAcM_SetMaxFallSpeed(this, FLOAT_LABEL(lit_5064));
+ fopAcM_SetGravity(this, -0.4f);
+ fopAcM_SetMaxFallSpeed(this, -2.0f);
current.pos.y = mChkObj.m_wtr.GetHeight();
field_0x0907 = 6;
}
-/* ############################################################################################## */
-/* 80CECC18-80CECC1C 000164 0004+00 1/1 0/0 0/0 .rodata @5074 */
-SECTION_RODATA static f32 const lit_5074 = 200.0f;
-COMPILER_STRIP_GATE(0x80CECC18, &lit_5074);
-
-/* 80CECC1C-80CECC20 000168 0004+00 1/1 0/0 0/0 .rodata @5075 */
-SECTION_RODATA static f32 const lit_5075 = 13.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80CECC1C, &lit_5075);
-
/* 80CEBE84-80CEBF1C 002E84 0098+00 1/0 0/0 0/0 .text modeYogan__12daObjStone_cFv */
void daObjStone_c::modeYogan() {
f32 height = mChkObj.m_wtr.GetHeight();
- f32 pos_y = FLOAT_LABEL(lit_5074) + current.pos.y;
+ f32 pos_y = 200.0f + current.pos.y;
bool pos_check = height > pos_y;
bool gnd_landing = mChkObj.ChkGroundLanding();
- speedF *= FLOAT_LABEL(lit_5075);
+ speedF *= 0.65f;
fopAcM_posMoveF(this, 0);
if (pos_check || gnd_landing) {
@@ -1264,25 +830,47 @@ void daObjStone_c::modeYogan() {
mMode++;
}
-/* ############################################################################################## */
/* 80CECC20-80CECC2C 00016C 0006+06 0/1 0/0 0/0 .rodata l_eff_id$5089 */
-#pragma push
-#pragma force_active on
-const static u8 l_eff_id[10] = {
- 0x85, 0x9B, 0x85, 0x9C, 0x85, 0x9D,
+const static u16 l_eff_id[3] = {
+ 0x859B, 0x859C, 0x859D,
};
-COMPILER_STRIP_GATE(0x80CECC20, &l_eff_id);
-#pragma pop
-
-/* 80CECC3C-80CECC3C 000188 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80CECC4C = "Always";
-#pragma pop
/* 80CEBF1C-80CEC180 002F1C 0264+00 1/1 0/0 0/0 .text init_modeBreak__12daObjStone_cFv */
void daObjStone_c::init_modeBreak() {
- // NONMATCHING
+ if (field_0x0907 != 5) {
+ fopAcM_cancelCarryNow(this);
+ if (!mIsInWater) {
+ if (mStoneType == OBJ_STONE_TYPE_BIG) {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_L_ROCK_BREAK, 0);
+ } else {
+ fopAcM_seStart(this, Z2SE_OBJ_CMN_ROCK_BREAK, 0);
+ }
+ }
+ cXyz acStack_40;
+ if (mStoneType == OBJ_STONE_TYPE_BIG) {
+ acStack_40.setall(1.0f);
+ } else {
+ acStack_40.setall(0.5f);
+ }
+ J3DModelData* stone_bmd = (J3DModelData*)dComIfG_getObjectRes("Always", 27);
+ JUT_ASSERT(1687, stone_bmd != 0);
+ JPABaseEmitter* emitter = dComIfGp_particle_set(
+ 0x15c, &current.pos, 0, &acStack_40, 0xff, &dPa_modelEcallBack::getEcallback(), fopAcM_GetRoomNo(this), 0, 0, 0);
+ dPa_modelEcallBack::setModel(emitter, stone_bmd, tevStr,
+ 3, 0, NULL, 0);
+ for (int i = 0; i < 3; i = i + 1) {
+ dComIfGp_particle_set(
+ l_eff_id[i],
+ &current.pos, NULL, &acStack_40, 0xff, 0, fopAcM_GetRoomNo(this), 0, 0, 0);
+ }
+ if (field_0x0908 == 0) {
+ createItem();
+ field_0x0908 = 1;
+ }
+ mMode = 0;
+ field_0x0907 = 5;
+ fopAcM_delete(this);
+ }
}
/* 80CEC180-80CEC1AC 003180 002C+00 1/0 0/0 0/0 .text modeBreak__12daObjStone_cFv */
@@ -1318,8 +906,6 @@ void daObjStone_c::CrrPos() {
}
/* 80CEC264-80CEC33C 003264 00D8+00 3/3 0/0 0/0 .text createItem__12daObjStone_cFv */
-#ifdef NONMATCHING
-// matches but generates extra destructor
void daObjStone_c::createItem() {
int item_no = getItemNo();
int item_bit = getItemBit();
@@ -1335,49 +921,64 @@ void daObjStone_c::createItem() {
8, 0, 0, 0, false);
}
}
-#else
-void daObjStone_c::createItem() {
- // NONMATCHING
-}
-#endif
-
-/* ############################################################################################## */
-/* 80CECC2C-80CECC34 000178 0008+00 0/1 0/0 0/0 .rodata @5256 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_5256[8] = {
- 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80CECC2C, &lit_5256);
-#pragma pop
/* 80CEC33C-80CEC5BC 00333C 0280+00 2/2 0/0 0/0 .text calcRotBaseMtx__12daObjStone_cFPs
*/
-void daObjStone_c::calcRotBaseMtx(s16* param_0) {
- // NONMATCHING
+void daObjStone_c::calcRotBaseMtx(s16* param_1) {
+ cXyz local_5c = current.pos - old.pos;
+ cXyz cStack_68(local_5c.x, 0.0f, local_5c.z);
+ bool iVar5 = local_5c.normalizeRS();
+ bool iVar6 = cStack_68.normalizeRS();
+ bool bVar4 = true;
+ if (!iVar5 && !iVar6) {
+ bVar4 = false;
+ }
+ if (iVar6) {
+ field_0x0910 = cStack_68;
+ mDoMtx_stack_c::YrotS(0x4000);
+ mDoMtx_stack_c::multVec(&field_0x0910, &field_0x0910);
+ } else if (iVar5) {
+ field_0x0910 = cXyz::BaseX;
+ }
+ if (bVar4) {
+ f32 dVar9 = std::fabs(speedF);
+ f32 dVar10 = std::fabs(speed.y);
+ if (current.pos.y == old.pos.y) {
+ dVar10 = 0.0f;
+ }
+ s16 sVar7 = l_rot_angle[mStoneType];
+ if (field_0x0907 != 1) {
+ sVar7 = l_walk_rot_angle[mStoneType];
+ }
+ if (param_1 != NULL) {
+ sVar7 = *param_1;
+ }
+ if (mChkObj.ChkWaterIn()) {
+ sVar7 *= 0.5f;
+ }
+ field_0x091c = sVar7 * (dVar9 + dVar10);
+ field_0x0920.x = field_0x0910.x * cM_ssin(field_0x091c);
+ field_0x0920.y = field_0x0910.y * cM_ssin(field_0x091c);
+ field_0x0920.z = field_0x0910.z * cM_ssin(field_0x091c);
+ field_0x0920.w = cM_scos(field_0x091c);
+ } else {
+ field_0x0920 = ZeroQuat;
+ }
}
/* 80CEC5BC-80CEC6D8 0035BC 011C+00 1/1 0/0 0/0 .text checkRollAngle__12daObjStone_cFv */
-#ifdef NONMATCHING
-// matches but cM3dGPla dtor will be generated in wrong place until TU is finished (due to bound
-// function float literal inlines)
int daObjStone_c::checkRollAngle() {
+ f32 dVar11 = 89.0f;
cXyz pos = current.pos;
- pos.y += FLOAT_LABEL(lit_4644);
- cM3dGPla plane;
+ pos.y += 50.0f;
+ cM3dGPla plane;
bool gnd_chk = fopAcM_gc_c::gndCheck(&pos);
- bool triPla =
- dComIfG_Bgsp().GetTriPla(*(dBgS_GndChk*)&fopAcM_gc_c::mGndCheck,
- &plane); // there's an inline here but it can be used until
- // fopAcM_gc_c::mGndCheck is properly setup
+ bool triPla = dComIfG_Bgsp().GetTriPla(fopAcM_gc_c::mGndCheck, &plane);
f32 ground_y = fopAcM_gc_c::getGroundY();
- if (gnd_chk && FLOAT_LABEL(lit_4637) != ground_y && triPla) {
- f32 tmp2 = cM_scos(i_cM_deg2s(FLOAT_LABEL(
- lit_5018))); // not sure what happened here. debug implies there's a multiply happening
- // in cM_deg2s, but retail has no such instructions
-
+ if (gnd_chk && -1000000000.0f != ground_y && triPla) {
+ f32 tmp2 = cM_scos(cM_deg2s(dVar11 - 0.5f));
cXyz pos2 = plane.mNormal;
if (pos2.y < tmp2) {
@@ -1387,28 +988,18 @@ int daObjStone_c::checkRollAngle() {
return 0;
}
-#else
-int daObjStone_c::checkRollAngle() {
- // NONMATCHING
-}
-#endif
-/* ############################################################################################## */
/* 80CECC34-80CECC3C 000180 0006+02 0/1 0/0 0/0 .rodata l_carry_eff_id$5307 */
-#pragma push
-#pragma force_active on
const static u16 l_carry_eff_id[3] = {0x859E, 0x859F, 0x85A0};
-COMPILER_STRIP_GATE(0x80CECC34, &l_carry_eff_id);
-#pragma pop
/* 80CEC6D8-80CEC7DC 0036D8 0104+00 1/1 0/0 0/0 .text set_carry_eff__12daObjStone_cFv */
void daObjStone_c::set_carry_eff() {
cXyz pos;
if (mStoneType == 1) {
- pos.setall(FLOAT_LABEL(lit_3845));
+ pos.setall(1.0f);
} else {
- pos.setall(FLOAT_LABEL(lit_4634));
+ pos.setall(0.5f);
}
if (field_0x0950 == 3) {
@@ -1423,10 +1014,22 @@ void daObjStone_c::set_carry_eff() {
}
}
-
/* 80CEC7DC-80CEC888 0037DC 00AC+00 2/2 0/0 0/0 .text effect_delete__12daObjStone_cFb */
-void daObjStone_c::effect_delete(bool param_0) {
- // NONMATCHING
+void daObjStone_c::effect_delete(bool param_1) {
+ for (int i = 0; i < 3; i = i + 1) {
+ if (field_0x0964[i] != NULL) {
+ if ((field_0x0964[i]->getAge() > 5 &&
+ field_0x0964[i]->getParticleNumber() == 0) ||
+ param_1)
+ {
+ field_0x0964[i]->becomeInvalidEmitter();
+ field_0x0964[i]->quitImmortalEmitter();
+ field_0x0964[i] = NULL;
+ } else {
+ field_0x0964[i]->setGlobalTranslation(current.pos);
+ }
+ }
+ }
}
/* 80CEC888-80CEC948 003888 00C0+00 1/1 0/0 0/0 .text draw__12daObjStone_cFv */
@@ -1441,7 +1044,7 @@ int daObjStone_c::draw() {
cXyz pos = current.pos;
dComIfGd_setSimpleShadow(&pos, mChkObj.GetGroundH(), shadow_size, mChkObj.m_gnd, 0,
- FLOAT_LABEL(lit_3845), pTex);
+ 1.0f, pTex);
}
return 1;
}
@@ -1479,35 +1082,31 @@ static int daObjStone_Create(fopAc_ac_c* param_0) {
return static_cast<daObjStone_c*>(param_0)->create();
}
-/* 80CECA3C-80CECA84 003A3C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80CECA84-80CECA8C 003A84 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80CECA84() {
- // NONMATCHING
-}
-
-/* 80CECA8C-80CECA94 003A8C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80CECA8C() {
- // NONMATCHING
-}
-
-/* 80CECA94-80CECA9C 003A94 0008+00 1/0 0/0 0/0 .text @20@__dt__14dBgS_ObjGndChkFv */
-static void func_80CECA94() {
- // NONMATCHING
-}
-
-/* 80CECA9C-80CECAA4 003A9C 0008+00 1/0 0/0 0/0 .text @76@__dt__14dBgS_ObjGndChkFv */
-static void func_80CECA9C() {
- // NONMATCHING
-}
+/* 80CECD24-80CECD44 -00001 0020+00 1/0 0/0 0/0 .data l_daObjStone_Method */
+static actor_method_class l_daObjStone_Method = {
+ (process_method_func)daObjStone_Create,
+ (process_method_func)daObjStone_Delete,
+ (process_method_func)daObjStone_Execute,
+ (process_method_func)NULL,
+ (process_method_func)daObjStone_Draw,
+};
-/* 80CECAA4-80CECAAC 003AA4 0008+00 1/0 0/0 0/0 .text @60@__dt__14dBgS_ObjGndChkFv */
-static void func_80CECAA4() {
- // NONMATCHING
-}
+/* 80CECD44-80CECD74 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Stone */
+extern actor_process_profile_definition g_profile_Obj_Stone = {
+ fpcLy_CURRENT_e, // mLayerID
+ 8, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_Stone, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daObjStone_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 511, // mPriority
+ &l_daObjStone_Method, // sub_method
+ 0x40100, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLSPHERE_8_e, // cullType
+};
/* 80CECC3C-80CECC3C 000188 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/d/actor/d_a_obj_wdStick.cpp b/src/d/actor/d_a_obj_wdStick.cpp
index 76e8e80157..f8b88d253e 100644
--- a/src/d/actor/d_a_obj_wdStick.cpp
+++ b/src/d/actor/d_a_obj_wdStick.cpp
@@ -4,906 +4,563 @@
*/
#include "d/actor/d_a_obj_wdStick.h"
-#include "dol2asm.h"
-
-
-
-//
-// Forward References:
-//
-
-extern "C" void __ct__15daWdStick_HIO_cFv();
-extern "C" void __dt__14mDoHIO_entry_cFv();
-extern "C" void setBaseMtx__11daWdStick_cFv();
-extern "C" void CreateHeap__11daWdStick_cFv();
-extern "C" void create__11daWdStick_cFv();
-extern "C" void __dt__8cM3dGSphFv();
-extern "C" void __dt__8cM3dGAabFv();
-extern "C" void __dt__10dCcD_GSttsFv();
-extern "C" void __dt__12dBgS_AcchCirFv();
-extern "C" void __dt__12dBgS_ObjAcchFv();
-extern "C" void createHeapCallBack__11daWdStick_cFP10fopAc_ac_c();
-extern "C" void lightInit__11daWdStick_cFv();
-extern "C" void setLight__11daWdStick_cFv();
-extern "C" void setFire__11daWdStick_cFv();
-extern "C" void Execute__11daWdStick_cFv();
-extern "C" static void bound__FP4cXyzRC13cBgS_PolyInfof();
-extern "C" void __dt__8cM3dGPlaFv();
-extern "C" void bgCheck__11daWdStick_cFv();
-extern "C" void setBoundSe__11daWdStick_cFv();
-extern "C" void mode_proc_call__11daWdStick_cFv();
-extern "C" void mode_init_wait__11daWdStick_cFv();
-extern "C" void mode_proc_wait__11daWdStick_cFv();
-extern "C" void mode_init_carry__11daWdStick_cFv();
-extern "C" void mode_proc_carry__11daWdStick_cFv();
-extern "C" void mode_init_drop__11daWdStick_cFv();
-extern "C" void mode_proc_drop__11daWdStick_cFv();
-extern "C" void mode_init_roll__11daWdStick_cFv();
-extern "C" void mode_proc_roll__11daWdStick_cFv();
-extern "C" void __dt__14dBgS_ObjGndChkFv();
-extern "C" void chkWaterLineIn__11daWdStick_cFv();
-extern "C" void mode_init_sink__11daWdStick_cFv();
-extern "C" void mode_proc_sink__11daWdStick_cFv();
-extern "C" void Draw__11daWdStick_cFv();
-extern "C" void Delete__11daWdStick_cFv();
-extern "C" static void daWdStick_Draw__FP11daWdStick_c();
-extern "C" static void daWdStick_Execute__FP11daWdStick_c();
-extern "C" static void daWdStick_Delete__FP11daWdStick_c();
-extern "C" static void daWdStick_Create__FP10fopAc_ac_c();
-extern "C" void __dt__10cCcD_GSttsFv();
-extern "C" void __dt__15daWdStick_HIO_cFv();
-extern "C" void __sinit_d_a_obj_wdStick_cpp();
-extern "C" static void func_80D340FC();
-extern "C" static void func_80D34104();
-extern "C" static void func_80D3410C();
-extern "C" static void func_80D34114();
-extern "C" static void func_80D3411C();
-extern "C" u8 const mCcDObjInfo__11daWdStick_c[48];
-extern "C" extern char const* const d_a_obj_wdStick__stringBase0;
-extern "C" u8 mCcDSph__11daWdStick_c[64];
-
-//
-// External References:
-//
-
-extern "C" void mDoMtx_ZXYrotS__FPA4_fsss();
-extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
-extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz();
-extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
-extern "C" void fopKyM_createWpillar__FPC4cXyzfi();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfGp_getReverb__Fi();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
-extern "C" void
-set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void LineCross__4cBgSFP11cBgS_LinChk();
-extern "C" void GroundCross__4cBgSFP11cBgS_GndChk();
-extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla();
-extern "C" void GetWallCode__4dBgSFRC13cBgS_PolyInfo();
-extern "C" void __ct__12dBgS_AcchCirFv();
-extern "C" void SetWall__12dBgS_AcchCirFff();
-extern "C" void __dt__9dBgS_AcchFv();
-extern "C" void __ct__9dBgS_AcchFv();
-extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
-extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
-extern "C" void __ct__11dBgS_GndChkFv();
-extern "C" void __dt__11dBgS_GndChkFv();
-extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c();
-extern "C" void __ct__14dBgS_ObjLinChkFv();
-extern "C" void __dt__14dBgS_ObjLinChkFv();
-extern "C" void SetObj__16dBgS_PolyPassChkFv();
-extern "C" void __ct__10dCcD_GSttsFv();
-extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
-extern "C" void __ct__12dCcD_GObjInfFv();
-extern "C" void ChkTgHit__12dCcD_GObjInfFv();
-extern "C" void GetTgHitGObj__12dCcD_GObjInfFv();
-extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void Set__4cCcSFP8cCcD_Obj();
-extern "C" void __pl__4cXyzCFRC3Vec();
-extern "C" void __mi__4cXyzCFRC3Vec();
-extern "C" void __ml__4cXyzCFf();
-extern "C" void cM_atan2s__Fff();
-extern "C" void SetPos__11cBgS_GndChkFPC4cXyz();
-extern "C" void __dt__13cBgS_PolyInfoFv();
-extern "C" void __dt__8cM3dGCirFv();
-extern "C" void SetC__8cM3dGSphFRC4cXyz();
-extern "C" void SetR__8cM3dGSphFf();
-extern "C" void cLib_addCalc__FPfffff();
-extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
-extern "C" void __dl__FPv();
-extern "C" void __ptmf_scall();
-extern "C" void __cvt_fp2unsigned();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_26();
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_26();
-extern "C" void _restgpr_29();
-extern "C" extern void* __vt__8dCcD_Sph[36];
-extern "C" extern void* __vt__9dCcD_Stts[11];
-extern "C" extern void* __vt__12cCcD_SphAttr[25];
-extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
-extern "C" extern void* __vt__9cCcD_Stts[8];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" u8 mGndCheck__11fopAcM_gc_c[84];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" u8 sincosTable___5JMath[65536];
-extern "C" u8 mParticleTracePCB__13dPa_control_c[4 + 4 /* padding */];
-extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
-extern "C" void __register_global_object();
-
-//
-// Declarations:
-//
+#include "SSystem/SComponent/c_math.h"
+#include "d/actor/d_a_player.h"
+#include "d/d_com_inf_game.h"
+#include "f_op/f_op_kankyo_mng.h"
+#include <cmath.h>
-/* ############################################################################################## */
-/* 80D3421C-80D34228 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
-SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+UNK_REL_DATA
-/* 80D34228-80D3423C 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
- 0x02000201,
- /* padding */
- 0x40080000,
- 0x00000000,
- 0x3FE00000,
- 0x00000000,
-};
-#pragma pop
+/* 80D34424-80D34430 000014 000C+00 2/2 0/0 0/0 .bss l_HIO */
+static daWdStick_HIO_c l_HIO;
/* 80D3423C-80D3427C 000020 0040+00 2/2 0/0 0/0 .data mCcDSph__11daWdStick_c */
-SECTION_DATA u8 daWdStick_c::mCcDSph[64] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00,
-};
-
-/* 80D3427C-80D34288 -00001 000C+00 0/1 0/0 0/0 .data @4470 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4470[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_proc_wait__11daWdStick_cFv,
-};
-#pragma pop
-
-/* 80D34288-80D34294 -00001 000C+00 0/1 0/0 0/0 .data @4471 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4471[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_proc_carry__11daWdStick_cFv,
-};
-#pragma pop
-
-/* 80D34294-80D342A0 -00001 000C+00 0/1 0/0 0/0 .data @4472 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4472[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_proc_drop__11daWdStick_cFv,
-};
-#pragma pop
-
-/* 80D342A0-80D342AC -00001 000C+00 0/1 0/0 0/0 .data @4473 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4473[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_proc_roll__11daWdStick_cFv,
-};
-#pragma pop
-
-/* 80D342AC-80D342B8 -00001 000C+00 0/1 0/0 0/0 .data @4474 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_4474[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)mode_proc_sink__11daWdStick_cFv,
-};
-#pragma pop
-
-/* 80D342B8-80D342F4 00009C 003C+00 0/1 0/0 0/0 .data l_mode_func$4469 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static u8 l_mode_func[60] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-#pragma pop
-
-/* 80D342F4-80D34314 -00001 0020+00 1/0 0/0 0/0 .data l_daWdStick_Method */
-static actor_method_class l_daWdStick_Method = {
- (process_method_func)daWdStick_Create__FP10fopAc_ac_c,
- (process_method_func)daWdStick_Delete__FP11daWdStick_c,
- (process_method_func)daWdStick_Execute__FP11daWdStick_c,
- 0,
- (process_method_func)daWdStick_Draw__FP11daWdStick_c,
-};
-
-/* 80D34314-80D34344 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_WdStick */
-extern actor_process_profile_definition g_profile_Obj_WdStick = {
- fpcLy_CURRENT_e, // mLayerID
- 7, // mListID
- fpcPi_CURRENT_e, // mListPrio
- PROC_Obj_WdStick, // mProcName
- &g_fpcLf_Method.base, // sub_method
- sizeof(daWdStick_c), // mSize
- 0, // mSizeOther
- 0, // mParameters
- &g_fopAc_Method.base, // sub_method
- 497, // mPriority
- &l_daWdStick_Method, // sub_method
- 0x00044000, // mStatus
- fopAc_ACTOR_e, // mActorType
- fopAc_CULLBOX_CUSTOM_e, // cullType
-};
-
-/* 80D34344-80D34374 000128 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_ObjGndChk */
-SECTION_DATA extern void* __vt__14dBgS_ObjGndChk[12] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14dBgS_ObjGndChkFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80D3410C,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80D3411C,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80D34114,
-};
-
-/* 80D34374-80D34380 000158 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGPla */
-SECTION_DATA extern void* __vt__8cM3dGPla[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGPlaFv,
-};
-
-/* 80D34380-80D3438C 000164 000C+00 1/1 0/0 0/0 .data __vt__12dBgS_AcchCir */
-SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_AcchCirFv,
-};
-
-/* 80D3438C-80D34398 000170 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
-SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10cCcD_GSttsFv,
-};
-
-/* 80D34398-80D343A4 00017C 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
-SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__10dCcD_GSttsFv,
-};
-
-/* 80D343A4-80D343B0 000188 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
-SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGSphFv,
-};
-
-/* 80D343B0-80D343BC 000194 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
-SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__8cM3dGAabFv,
-};
-
-/* 80D343BC-80D343E0 0001A0 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
-SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12dBgS_ObjAcchFv,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80D34104,
- (void*)NULL,
- (void*)NULL,
- (void*)func_80D340FC,
-};
-
-/* 80D343E0-80D343F8 0001C4 0018+00 1/1 0/0 0/0 .data __vt__11daWdStick_c */
-SECTION_DATA extern void* __vt__11daWdStick_c[6] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)CreateHeap__11daWdStick_cFv,
- (void*)Execute__11daWdStick_cFv,
- (void*)Draw__11daWdStick_cFv,
- (void*)Delete__11daWdStick_cFv,
-};
-
-/* 80D343F8-80D34404 0001DC 000C+00 2/2 0/0 0/0 .data __vt__15daWdStick_HIO_c */
-SECTION_DATA extern void* __vt__15daWdStick_HIO_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__15daWdStick_HIO_cFv,
-};
-
-/* 80D34404-80D34410 0001E8 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */
-SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__14mDoHIO_entry_cFv,
-};
+dCcD_SrcSph daWdStick_c::mCcDSph = {daWdStick_c::mCcDObjInfo, {{{0.0f, 0.0f, 0.0f}, 4.0f}}};
/* 80D31B4C-80D31B88 0000EC 003C+00 1/1 0/0 0/0 .text __ct__15daWdStick_HIO_cFv */
daWdStick_HIO_c::daWdStick_HIO_c() {
- // NONMATCHING
-}
-
-/* 80D31B88-80D31BD0 000128 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */
-// mDoHIO_entry_c::~mDoHIO_entry_c() {
-extern "C" void __dt__14mDoHIO_entry_cFv() {
- // NONMATCHING
+ field_0x04 = 60;
+ field_0x05 = 1;
+ field_0x06 = 0xf;
+ field_0x08 = 0;
}
/* 80D31BD0-80D31C58 000170 0088+00 2/2 0/0 0/0 .text setBaseMtx__11daWdStick_cFv */
void daWdStick_c::setBaseMtx() {
- // NONMATCHING
+ mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
+ mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
+ mModel->setBaseScale(scale);
+ mModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
-/* ############################################################################################## */
-/* 80D34210-80D34210 0000D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80D34210 = "H_Kinobou";
-#pragma pop
-
/* 80D31C58-80D31CC4 0001F8 006C+00 1/0 0/0 0/0 .text CreateHeap__11daWdStick_cFv */
-void daWdStick_c::CreateHeap() {
- // NONMATCHING
+int daWdStick_c::CreateHeap() {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("H_Kinobou", 4);
+ JUT_ASSERT(245, modelData != 0);
+ mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
+ return mModel != 0 ? 1 : 0;
}
/* ############################################################################################## */
/* 80D34138-80D34168 000000 0030+00 10/10 0/0 0/0 .rodata mCcDObjInfo__11daWdStick_c */
-SECTION_RODATA u8 const daWdStick_c::mCcDObjInfo[48] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
- 0xD8, 0xFB, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+dCcD_SrcGObjInf const daWdStick_c::mCcDObjInfo = {
+ {0, {{0x200, 0, 0x1f}, {0xd8fbffff, 0x1f}, {0x0}}},
+ {dCcD_SE_NONE, 0, 0, 0, 0},
+ {dCcD_SE_NONE, 0, 0, 0, 4},
+ {0},
};
-COMPILER_STRIP_GATE(0x80D34138, &daWdStick_c::mCcDObjInfo);
-
-/* 80D34168-80D3416C 000030 0004+00 0/2 0/0 0/0 .rodata @3775 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3775 = 10.0f;
-COMPILER_STRIP_GATE(0x80D34168, &lit_3775);
-#pragma pop
-
-/* 80D3416C-80D34170 000034 0004+00 0/1 0/0 0/0 .rodata @3776 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3776 = 35.0f;
-COMPILER_STRIP_GATE(0x80D3416C, &lit_3776);
-#pragma pop
-
-/* 80D34170-80D34174 000038 0004+00 1/2 0/0 0/0 .rodata @3777 */
-SECTION_RODATA static f32 const lit_3777 = -10.0f;
-COMPILER_STRIP_GATE(0x80D34170, &lit_3777);
-
-/* 80D34174-80D34178 00003C 0004+00 0/1 0/0 0/0 .rodata @3778 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_3778 = -100.0f;
-COMPILER_STRIP_GATE(0x80D34174, &lit_3778);
-#pragma pop
/* 80D31CC4-80D31F9C 000264 02D8+00 1/1 0/0 0/0 .text create__11daWdStick_cFv */
-void daWdStick_c::create() {
- // NONMATCHING
-}
-
-/* 80D31F9C-80D31FE4 00053C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
-// cM3dGSph::~cM3dGSph() {
-extern "C" void __dt__8cM3dGSphFv() {
- // NONMATCHING
-}
-
-/* 80D31FE4-80D3202C 000584 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
-// cM3dGAab::~cM3dGAab() {
-extern "C" void __dt__8cM3dGAabFv() {
- // NONMATCHING
-}
-
-/* 80D3202C-80D32088 0005CC 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
-// dCcD_GStts::~dCcD_GStts() {
-extern "C" void __dt__10dCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80D32088-80D320F8 000628 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
-// dBgS_AcchCir::~dBgS_AcchCir() {
-extern "C" void __dt__12dBgS_AcchCirFv() {
- // NONMATCHING
-}
-
-/* 80D320F8-80D32168 000698 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
-// dBgS_ObjAcch::~dBgS_ObjAcch() {
-extern "C" void __dt__12dBgS_ObjAcchFv() {
- // NONMATCHING
+int daWdStick_c::create() {
+ fopAcM_SetupActor(this, daWdStick_c);
+ int rv = dComIfG_resLoad(&mPhase, "H_Kinobou");
+ if (rv == cPhs_COMPLEATE_e) {
+ if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x820) == 0) {
+ return cPhs_ERROR_e;
+ }
+ setBaseMtx();
+ fopAcM_SetMtx(this, mModel->getBaseTRMtx());
+ fopAcM_setCullSizeBox2(this, mModel->getModelData());
+ lightInit();
+ field_0xaac = 0;
+ field_0xaad = 0;
+ field_0xaae = 0;
+ field_0xab0 = 0;
+ setLight();
+ mAcchCir.SetWall(10.0f, 35.0f);
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
+ &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL);
+ fopAcM_SetGravity(this, -10.0f);
+ fopAcM_SetMaxFallSpeed(this, -100.0f);
+ fopAcM_SetModel(this, mModel);
+ mStts.Init(10, 0xff, this);
+ mSph1.Set(mCcDSph);
+ mSph1.SetStts(&mStts);
+ mSph2.Set(mCcDSph);
+ mSph2.SetStts(&mStts);
+ fopAcM_OnCarryType(this, fopAcM_CARRY_UNK_30);
+ cLib_onBit(attention_info.flags, 0x10UL);
+ attention_info.distances[4] = 59;
+ misCarrying = fopAcM_checkCarryNow(this);
+ mode_init_wait();
+ }
+ return rv;
}
/* 80D32168-80D32194 000708 002C+00 1/1 0/0 0/0 .text
* createHeapCallBack__11daWdStick_cFP10fopAc_ac_c */
-void daWdStick_c::createHeapCallBack(fopAc_ac_c* param_0) {
- // NONMATCHING
+int daWdStick_c::createHeapCallBack(fopAc_ac_c* i_this) {
+ return static_cast<daWdStick_c*>(i_this)->CreateHeap();
}
/* 80D32194-80D32198 000734 0004+00 1/1 0/0 0/0 .text lightInit__11daWdStick_cFv */
void daWdStick_c::lightInit() {
- /* empty function */
}
/* 80D32198-80D3219C 000738 0004+00 2/2 0/0 0/0 .text setLight__11daWdStick_cFv */
void daWdStick_c::setLight() {
- /* empty function */
}
-/* ############################################################################################## */
-/* 80D34178-80D3417C 000040 0004+00 0/1 0/0 0/0 .rodata @4028 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4028 = 75.0f;
-COMPILER_STRIP_GATE(0x80D34178, &lit_4028);
-#pragma pop
-
-/* 80D3417C-80D34180 000044 0004+00 0/3 0/0 0/0 .rodata @4029 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4029 = 4.0f;
-COMPILER_STRIP_GATE(0x80D3417C, &lit_4029);
-#pragma pop
-
-/* 80D34180-80D34184 000048 0004+00 2/9 0/0 0/0 .rodata @4030 */
-SECTION_RODATA static u8 const lit_4030[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-COMPILER_STRIP_GATE(0x80D34180, &lit_4030);
-
-/* 80D34184-80D34188 00004C 0004+00 0/1 0/0 0/0 .rodata @4031 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4031 = -75.0f;
-COMPILER_STRIP_GATE(0x80D34184, &lit_4031);
-#pragma pop
-
-/* 80D34188-80D3418C 000050 0004+00 0/6 0/0 0/0 .rodata @4032 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4032 = 1.0f;
-COMPILER_STRIP_GATE(0x80D34188, &lit_4032);
-#pragma pop
-
-/* 80D3418C-80D34190 000054 0004+00 0/5 0/0 0/0 .rodata @4033 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4033 = -1.0f;
-COMPILER_STRIP_GATE(0x80D3418C, &lit_4033);
-#pragma pop
-
-/* 80D34190-80D34194 000058 0004+00 0/1 0/0 0/0 .rodata @4034 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4034 = 7.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80D34190, &lit_4034);
-#pragma pop
-
/* 80D3219C-80D3269C 00073C 0500+00 1/1 0/0 0/0 .text setFire__11daWdStick_cFv */
void daWdStick_c::setFire() {
- // NONMATCHING
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ cXyz local_24(75.0f, 4.0f, 0.0f);
+ cXyz cStack_30;
+ mDoMtx_stack_c::multVec(&local_24, &cStack_30);
+ field_0xa64 = current.pos + cStack_30;
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ local_24.x = -75.0f;
+ mDoMtx_stack_c::multVec(&local_24, &cStack_30);
+ field_0xa70 = current.pos + cStack_30;
+ if (field_0xab0 != 0) {
+ field_0xab0--;
+ } else if (field_0xab0 == 0 && field_0xaad == 1) {
+ field_0xaad = 0;
+ mSph2.SetAtMtrl(dCcD_MTRL_NONE);
+ mDoAud_seStart(Z2SE_OBJ_FIRE_OFF, &field_0xa70, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ }
+ if (field_0xaae != 0) {
+ field_0xaae--;
+ } else if (field_0xaae == 0 && field_0xaac == 1) {
+ field_0xaac = 0;
+ mSph1.SetAtMtrl(dCcD_MTRL_NONE);
+ mDoAud_seStart(Z2SE_OBJ_FIRE_OFF, &field_0xa64, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ }
+ int i;
+ if (field_0xaac != 0) {
+ field_0xa94 = (field_0xa64 - field_0xa7c) * 0.7f;
+ field_0xae4[0] = dComIfGp_particle_set(field_0xae4[0], 0x3ad, &field_0xa64, 0, 0);
+ field_0xae4[1] = dComIfGp_particle_set(field_0xae4[1], 0x3af, &field_0xa64, 0, 0);
+ mDoAud_seStartLevel(Z2SE_OBJ_FIRE_BURNING, &field_0xa64, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ for (i = 0; i < 2; i++) {
+ JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(field_0xae4[i]);
+ if (emitter != NULL) {
+ emitter->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB());
+ emitter->setUserWork((u32)&field_0xa94);
+ }
+ }
+ }
+ if (field_0xaad != 0) {
+ field_0xaa0 = (field_0xa70 - field_0xa88) * 0.7f;
+ field_0xaec[0] = dComIfGp_particle_set(field_0xaec[0], 0x3ad, &field_0xa70, 0, 0);
+ field_0xaec[1] = dComIfGp_particle_set(field_0xaec[1], 0x3af, &field_0xa70, 0, 0);
+ mDoAud_seStartLevel(Z2SE_OBJ_FIRE_BURNING, &field_0xa70, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ for (i = 0; i < 2; i++) {
+ JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(field_0xaec[i]);
+ if (emitter != NULL) {
+ emitter->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB());
+ emitter->setUserWork((u32)&field_0xaa0);
+ }
+ }
+ }
}
-/* ############################################################################################## */
-/* 80D34194-80D34198 00005C 0004+00 0/1 0/0 0/0 .rodata @4118 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4118 = 90.0f;
-COMPILER_STRIP_GATE(0x80D34194, &lit_4118);
-#pragma pop
-
-/* 80D34198-80D3419C 000060 0004+00 0/1 0/0 0/0 .rodata @4119 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4119 = -90.0f;
-COMPILER_STRIP_GATE(0x80D34198, &lit_4119);
-#pragma pop
-
-/* 80D3419C-80D341A0 000064 0004+00 0/1 0/0 0/0 .rodata @4120 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4120 = 30.0f;
-COMPILER_STRIP_GATE(0x80D3419C, &lit_4120);
-#pragma pop
-
-/* 80D341A0-80D341A8 000068 0004+04 0/1 0/0 0/0 .rodata @4121 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4121[1 + 1 /* padding */] = {
- -770.0f,
- /* padding */
- 0.0f,
-};
-COMPILER_STRIP_GATE(0x80D341A0, &lit_4121);
-#pragma pop
-
-/* 80D34418-80D34424 000008 000C+00 1/1 0/0 0/0 .bss @3643 */
-static u8 lit_3643[12];
-
-/* 80D34424-80D34430 000014 000C+00 2/2 0/0 0/0 .bss l_HIO */
-static u8 l_HIO[12];
-
/* 80D3269C-80D32A70 000C3C 03D4+00 1/0 0/0 0/0 .text Execute__11daWdStick_cFv */
-void daWdStick_c::Execute() {
- // NONMATCHING
+int daWdStick_c::Execute() {
+ field_0x594 = speed;
+ field_0xa7c = field_0xa64;
+ field_0xa88 = field_0xa70;
+ setFire();
+ field_0xac0 = field_0xab4;
+ field_0xad8 = field_0xacc;
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ cXyz local_24(90.0f, 4.0f, 0.0f);
+ cXyz cStack_30;
+ mDoMtx_stack_c::multVec(&local_24, &cStack_30);
+ field_0xab4 = current.pos + cStack_30;
+ mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z);
+ local_24.x = -90.0;
+ mDoMtx_stack_c::multVec(&local_24, &cStack_30);
+ field_0xacc = current.pos + cStack_30;
+ mode_proc_call();
+ attention_info.position.x = current.pos.x;
+ attention_info.position.y = current.pos.y;
+ attention_info.position.z = current.pos.z;
+ eyePos = current.pos;
+ setBaseMtx();
+ if (mSph1.ChkTgHit()) {
+ dCcD_GObjInf* tgHitObj = mSph1.GetTgHitGObj();
+ if (tgHitObj->GetAtType() == AT_TYPE_LANTERN_SWING && tgHitObj->GetAtMtrl() == dCcD_MTRL_FIRE &&
+ field_0xaac == 0)
+ {
+ field_0xaac = 1;
+ field_0xaae = l_HIO.field_0x06 * 30;
+ mSph1.SetAtMtrl(dCcD_MTRL_FIRE);
+ mDoAud_seStart(Z2SE_OBJ_FIRE_IGNITION, &field_0xa64, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ setLight();
+ }
+ }
+ if (mSph2.ChkTgHit()) {
+ dCcD_GObjInf* tgHitObj = mSph2.GetTgHitGObj();
+ if (tgHitObj->GetAtType() == AT_TYPE_LANTERN_SWING &&
+ tgHitObj->GetAtMtrl() == dCcD_MTRL_FIRE && field_0xaad == 0)
+ {
+ field_0xaad = 1;
+ field_0xab0 = l_HIO.field_0x06 * 30;
+ mSph2.SetAtMtrl(dCcD_MTRL_FIRE);
+ mDoAud_seStart(Z2SE_OBJ_FIRE_IGNITION, &field_0xa70, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ setLight();
+ }
+ }
+ field_0xaf4 = mAcch.ChkWaterIn();
+ mSph1.SetR(30.0f);
+ mSph1.SetC(field_0xa64);
+ mSph2.SetR(30.0f);
+ mSph2.SetC(field_0xa70);
+ dComIfG_Ccsp()->Set(&mSph1);
+ dComIfG_Ccsp()->Set(&mSph2);
+ if (current.pos.y - home.pos.y <= -770.0f) {
+ OS_REPORT("=== 木の棒再セット (%f) ===\n", current.pos.y - home.pos.y);
+ field_0xaac = 0;
+ field_0xaad = 0;
+ cLib_onBit(attention_info.flags, 0x10UL);
+ current.pos = home.pos;
+ mode_init_wait();
+ }
+ return 1;
}
-/* ############################################################################################## */
-/* 80D341A8-80D341B0 000070 0008+00 0/3 0/0 0/0 .rodata @4220 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4220[8] = {
- 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D341A8, &lit_4220);
-#pragma pop
-
-/* 80D341B0-80D341B8 000078 0008+00 0/3 0/0 0/0 .rodata @4221 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4221[8] = {
- 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D341B0, &lit_4221);
-#pragma pop
-
-/* 80D341B8-80D341C0 000080 0008+00 0/3 0/0 0/0 .rodata @4222 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_4222[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80D341B8, &lit_4222);
-#pragma pop
-
/* 80D32A70-80D32D6C 001010 02FC+00 1/1 0/0 0/0 .text bound__FP4cXyzRC13cBgS_PolyInfof */
-static void bound(cXyz* param_0, cBgS_PolyInfo const& param_1, f32 param_2) {
- // NONMATCHING
-}
-
-/* 80D32D6C-80D32DB4 00130C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */
-// cM3dGPla::~cM3dGPla() {
-extern "C" void __dt__8cM3dGPlaFv() {
- // NONMATCHING
+static f32 bound(cXyz* param_1, cBgS_PolyInfo const& param_2, f32 param_3) {
+ cM3dGPla acStack_3c;
+ if (dComIfG_Bgsp().GetTriPla(param_2, &acStack_3c) != 0) {
+ cXyz cStack_48;
+ f32 dVar5 = param_1->absXZ();
+ C_VECReflect(param_1, &acStack_3c.mNormal, &cStack_48);
+ *param_1 = (cStack_48 * dVar5) * param_3;
+ return param_1->absXZ();
+ }
+ return 0.0f;
}
-/* ############################################################################################## */
-/* 80D341C0-80D341C4 000088 0004+00 0/1 0/0 0/0 .rodata @4444 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4444 = 8.0f;
-COMPILER_STRIP_GATE(0x80D341C0, &lit_4444);
-#pragma pop
-
-/* 80D341C4-80D341C8 00008C 0004+00 0/1 0/0 0/0 .rodata @4445 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4445 = 3.0f / 5.0f;
-COMPILER_STRIP_GATE(0x80D341C4, &lit_4445);
-#pragma pop
-
-/* 80D341C8-80D341CC 000090 0004+00 0/1 0/0 0/0 .rodata @4446 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4446 = -50.0f;
-COMPILER_STRIP_GATE(0x80D341C8, &lit_4446);
-#pragma pop
-
-/* 80D341CC-80D341D0 000094 0004+00 0/2 0/0 0/0 .rodata @4447 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4447 = -15.0f;
-COMPILER_STRIP_GATE(0x80D341CC, &lit_4447);
-#pragma pop
-
-/* 80D341D0-80D341D4 000098 0004+00 0/2 0/0 0/0 .rodata @4448 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4448 = 2.0f;
-COMPILER_STRIP_GATE(0x80D341D0, &lit_4448);
-#pragma pop
-
-/* 80D341D4-80D341D8 00009C 0004+00 0/1 0/0 0/0 .rodata @4449 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4449 = 5.0f;
-COMPILER_STRIP_GATE(0x80D341D4, &lit_4449);
-#pragma pop
-
/* 80D32DB4-80D33348 001354 0594+00 3/3 0/0 0/0 .text bgCheck__11daWdStick_cFv */
void daWdStick_c::bgCheck() {
- // NONMATCHING
+ bool isRoofHit = mAcch.ChkRoofHit() != 0;
+ bool isGroundLanding = mAcch.ChkGroundLanding() != 0;
+ bool isWaterHit = mAcch.ChkWaterHit() != 0;
+ bool isWaterIn = mAcch.ChkWaterIn() != 0;
+ if (mAcch.ChkWallHit() && speed.abs() > 8.0f) {
+ cXyz local_7c(speed);
+ cXyz cStack_88(speed);
+ bound(&local_7c, mAcchCir, 0.6f);
+ speed.set(local_7c);
+ speed.y = cStack_88.y;
+ speedF = local_7c.absXZ();
+ current.angle.y = cM_atan2s(local_7c.x, local_7c.z);
+ if (current.pos.y - home.pos.y > -50.0f) {
+ setBoundSe();
+ }
+ }
+ if (mMode == MODE_WAIT || mMode == MODE_DROP || mMode == MODE_CARRY) {
+ f32 dVar12 = mAcch.m_wtr.GetHeight();
+ if (isWaterHit) {
+ f32 dVar13 = speed.y;
+ f32 dVar14 = dVar12;
+ if (chkWaterLineIn() && mMode != 1) {
+ mode_init_sink();
+ }
+ if (isWaterIn && field_0xaf4 == 0) {
+ cXyz cStack_94(current.pos);
+ cStack_94.y = dVar14;
+ if (dVar13 < -15.0f) {
+ fopKyM_createWpillar(&cStack_94, 2.0f, 0);
+ fopAcM_seStart(this, Z2SE_OBJ_FALL_WATER_M, 0);
+ }
+ }
+ }
+ }
+ if (isGroundLanding && speed.abs() > 8.0f) {
+ f32 dVar12 = field_0x594.y;
+ bound(&speed, mAcch.m_gnd,
+ 0.6f);
+ speed.y = (-dVar12 * 0.6f);
+ if (fabsf(speed.y) < 5.0f) {
+ speed.y = 0.0f;
+ }
+ if (current.pos.y - home.pos.y > -50.0f) {
+ setBoundSe();
+ }
+ }
+ if (isRoofHit) {
+ f32 dVar12 = field_0x594.y;
+ bound(&speed, mAcch.m_gnd, 0.6f);
+ speed.y -= -dVar12 * 0.6f;
+ OS_REPORT("HIT ROOF!!!!spdy<%f>spdy<%f>\n", dVar12, speed.y);
+ }
+ if (isGroundLanding && mMode == MODE_DROP) {
+ mode_init_roll();
+ }
}
/* 80D33348-80D333F4 0018E8 00AC+00 1/1 0/0 0/0 .text setBoundSe__11daWdStick_cFv */
void daWdStick_c::setBoundSe() {
- // NONMATCHING
+ u32 uVar1 = fabsf(field_0x594.y) * 2.0f;
+ if (uVar1 > 100) {
+ uVar1 = 100;
+ }
+ mDoAud_seStart(Z2SE_OBJ_WOODSTICK_BOUND, &current.pos, uVar1, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
}
-/* ############################################################################################## */
-/* 80D34430-80D34434 000020 0004+00 1/1 0/0 0/0 .bss None */
-static u8 data_80D34430[4];
-
/* 80D333F4-80D3350C 001994 0118+00 1/1 0/0 0/0 .text mode_proc_call__11daWdStick_cFv */
void daWdStick_c::mode_proc_call() {
- // NONMATCHING
+ static daWdStick_c::modeFunc l_mode_func[5] = {
+ &daWdStick_c::mode_proc_wait,
+ &daWdStick_c::mode_proc_carry,
+ &daWdStick_c::mode_proc_drop,
+ &daWdStick_c::mode_proc_roll,
+ &daWdStick_c::mode_proc_sink,
+ };
+
+ if (fopAcM_checkCarryNow(this) && !misCarrying) {
+ mode_init_carry();
+ }
+ (this->*(l_mode_func[mMode]))();
+ misCarrying = fopAcM_checkCarryNow(this);
}
/* 80D3350C-80D3353C 001AAC 0030+00 4/4 0/0 0/0 .text mode_init_wait__11daWdStick_cFv */
void daWdStick_c::mode_init_wait() {
- // NONMATCHING
+ cLib_onBit(attention_info.flags, 0x10UL);
+ speedF = 0.0f;
+ gravity = -10.0f;
+ mMode = MODE_WAIT;
}
/* 80D3353C-80D33588 001ADC 004C+00 1/0 0/0 0/0 .text mode_proc_wait__11daWdStick_cFv */
void daWdStick_c::mode_proc_wait() {
- // NONMATCHING
+ fopAcM_posMoveF(this, mStts.GetCCMoveP());
+ mAcch.CrrPos(dComIfG_Bgsp());
+ bgCheck();
}
/* 80D33588-80D335AC 001B28 0024+00 1/1 0/0 0/0 .text mode_init_carry__11daWdStick_cFv */
void daWdStick_c::mode_init_carry() {
- // NONMATCHING
+ cLib_offBit(attention_info.flags, 0x10UL);
+ speedF = 0.0f;
+ mMode = MODE_CARRY;
}
/* 80D335AC-80D3386C 001B4C 02C0+00 1/0 0/0 0/0 .text mode_proc_carry__11daWdStick_cFv */
void daWdStick_c::mode_proc_carry() {
- // NONMATCHING
+ daPy_py_c* player = (daPy_py_c*)daPy_getPlayerActorClass();
+ cXyz cStack_154(current.pos);
+ dBgS_ObjLinChk adStack_b0;
+ dBgS_ObjLinChk adStack_120;
+ cXyz local_160;
+ cXyz local_16c;
+ dBgS_ObjLinChk* pdVar9 = NULL;
+ local_160.x = 0.0f;
+ local_160.y = 0.0f;
+ local_160.z = 0.0f;
+ local_16c.x = 0.0f;
+ local_16c.y = 0.0f;
+ local_16c.z = 0.0f;
+ adStack_b0.Set(&current.pos, &field_0xab4, this);
+ if (dComIfG_Bgsp().LineCross(&adStack_b0)) {
+ if (dComIfG_Bgsp().GetWallCode(adStack_b0) != 7) {
+ cM3dGPla plane;
+ dComIfG_Bgsp().GetTriPla(adStack_b0, &plane);
+ f32 dVar11 = plane.getPlaneFunc(&field_0xab4);
+ VECScale(&plane.mNormal, &local_16c, dVar11 * -1.0f);
+ pdVar9 = &adStack_b0;
+ }
+ }
+
+ adStack_120.Set(&current.pos, &field_0xacc, this);
+ if (dComIfG_Bgsp().LineCross(&adStack_120)) {
+ if (dComIfG_Bgsp().GetWallCode(adStack_120) != 7) {
+ cM3dGPla plane;
+ dComIfG_Bgsp().GetTriPla(adStack_120, &plane);
+ f32 dVar11 = plane.getPlaneFunc(&field_0xacc);
+ VECScale(&plane.mNormal, &local_160, dVar11 * -1.0f);
+ pdVar9 = &adStack_120;
+ }
+ }
+
+ field_0x57c = local_160 + local_16c;
+ player->setGrabCollisionOffset(field_0x57c.x, field_0x57c.z, pdVar9);
+ current.pos = cStack_154;
+ if (!fopAcM_checkCarryNow(this)) {
+ if (fopAcM_GetSpeedF(this) != 0.0f) {
+ mode_init_drop();
+ } else {
+ mode_init_roll();
+ mDoAud_seStart(Z2SE_OBJ_WOODSTICK_PUT, &current.pos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
+ }
+ }
}
-/* ############################################################################################## */
-/* 80D341D8-80D341DC 0000A0 0004+00 1/2 0/0 0/0 .rodata @4574 */
-SECTION_RODATA static f32 const lit_4574 = -5.0f;
-COMPILER_STRIP_GATE(0x80D341D8, &lit_4574);
-
/* 80D3386C-80D33890 001E0C 0024+00 1/1 0/0 0/0 .text mode_init_drop__11daWdStick_cFv */
void daWdStick_c::mode_init_drop() {
- // NONMATCHING
+ cLib_offBit(attention_info.flags, 0x10UL);
+ gravity = -5.0f;
+ mMode = MODE_DROP;
}
/* 80D33890-80D338DC 001E30 004C+00 1/0 0/0 0/0 .text mode_proc_drop__11daWdStick_cFv */
void daWdStick_c::mode_proc_drop() {
- // NONMATCHING
+ fopAcM_posMoveF(this, mStts.GetCCMoveP());
+ mAcch.CrrPos(dComIfG_Bgsp());
+ bgCheck();
}
/* 80D338DC-80D338F4 001E7C 0018+00 2/2 0/0 0/0 .text mode_init_roll__11daWdStick_cFv */
void daWdStick_c::mode_init_roll() {
- // NONMATCHING
+ cLib_offBit(attention_info.flags, 0x10UL);
+ mMode = MODE_ROLL;
}
-/* ############################################################################################## */
-/* 80D341DC-80D341E0 0000A4 0004+00 0/1 0/0 0/0 .rodata @4704 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4704 = -1000000000.0f;
-COMPILER_STRIP_GATE(0x80D341DC, &lit_4704);
-#pragma pop
-
-/* 80D341E0-80D341E4 0000A8 0004+00 0/1 0/0 0/0 .rodata @4705 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4705 = 0x4645B05B;
-COMPILER_STRIP_GATE(0x80D341E0, &lit_4705);
-#pragma pop
-
-/* 80D341E4-80D341E8 0000AC 0004+00 0/2 0/0 0/0 .rodata @4706 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4706 = 1.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80D341E4, &lit_4706);
-#pragma pop
-
-/* 80D341E8-80D341EC 0000B0 0004+00 0/1 0/0 0/0 .rodata @4707 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4707 = 0.75f;
-COMPILER_STRIP_GATE(0x80D341E8, &lit_4707);
-#pragma pop
-
-/* 80D341EC-80D341F0 0000B4 0004+00 0/1 0/0 0/0 .rodata @4708 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u32 const lit_4708 = 0x3C23D70B;
-COMPILER_STRIP_GATE(0x80D341EC, &lit_4708);
-#pragma pop
-
-/* 80D341F0-80D341F4 0000B8 0004+00 0/2 0/0 0/0 .rodata @4709 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4709 = 9.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80D341F0, &lit_4709);
-#pragma pop
-
-/* 80D341F4-80D341F8 0000BC 0004+00 0/1 0/0 0/0 .rodata @4710 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4710 = 3.0f / 10.0f;
-COMPILER_STRIP_GATE(0x80D341F4, &lit_4710);
-#pragma pop
-
/* 80D338F4-80D33CCC 001E94 03D8+00 1/0 0/0 0/0 .text mode_proc_roll__11daWdStick_cFv */
void daWdStick_c::mode_proc_roll() {
- // NONMATCHING
-}
-
-/* 80D33CCC-80D33D44 00226C 0078+00 4/3 0/0 0/0 .text __dt__14dBgS_ObjGndChkFv */
-// dBgS_ObjGndChk::~dBgS_ObjGndChk() {
-extern "C" void __dt__14dBgS_ObjGndChkFv() {
- // NONMATCHING
-}
-
-/* ############################################################################################## */
-/* 80D341F8-80D341FC 0000C0 0004+00 0/1 0/0 0/0 .rodata @4725 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4725 = 100.0f;
-COMPILER_STRIP_GATE(0x80D341F8, &lit_4725);
-#pragma pop
-
-/* 80D341FC-80D34200 0000C4 0004+00 1/1 0/0 0/0 .rodata @4731 */
-SECTION_RODATA static f32 const lit_4731 = 40.0f;
-COMPILER_STRIP_GATE(0x80D341FC, &lit_4731);
+ f32 dVar14 = 70.0f;
+ fopAcM_posMoveF(this, mStts.GetCCMoveP());
+ dBgS_ObjGndChk adStack_d8;
+ cXyz cStack_f8(current.pos);
+ cStack_f8.y += 4.0f;
+ adStack_d8.SetPos(&cStack_f8);
+ f32 groundCross = dComIfG_Bgsp().GroundCross(&adStack_d8);
+ cXyz cStack_104;
+ f32 dVar13 = 0.75f;
+ cM3dGPla cStack_ec;
+ fopAcM_gc_c::gndCheck(&cStack_f8);
+ bool iVar7 = fopAcM_gc_c::getTriPla(&cStack_ec);
+ if ((groundCross != -1000000000.0f) && iVar7 != 0) {
+ f32 dVar11 = cM_scos(cM_deg2s(dVar14 - 0.5f));
+ cStack_104 = cStack_ec.mNormal;
+ if (cStack_104.y < dVar11) {
+ cXyz local_110(cStack_104);
+ s16 sVar8 = cM_atan2s(local_110.x, local_110.z);
+ f32 dVar11 = 10.0f;
+ dVar11 *= (1.0f - cStack_104.y);
+ if (dVar11 < 0.1f) {
+ dVar11 = 0.1f;
+ } else if (dVar11 > 1.0f) {
+ dVar11 = 1.0f;
+ }
+ cXyz local_11c((speedF * cM_ssin(current.angle.y)), 0.0f,
+ speedF * cM_scos(current.angle.y));
+ cXyz cStack_128(dVar11 * cM_ssin(sVar8), 0.0f, dVar11 * cM_scos(sVar8));
+ local_11c += cStack_128;
+ speedF = std::sqrt(local_11c.x * local_11c.x + local_11c.z * local_11c.z);
+ current.angle.y = cM_atan2s(local_11c.x, local_11c.z);
+ }
+ }
+ speedF *= dVar13;
+ if (mStts.GetCCMoveP()->abs2XZ() > 0.01000000070780516f) {
+ speedF *= 0.9f;
+ }
+ if (mAcch.ChkGroundHit()) {
+ if (speedF < 0.3f) {
+ mode_init_wait();
+ }
+ } else {
+ cLib_offBit(attention_info.flags, 0x10UL);
+ }
+ mAcch.CrrPos(dComIfG_Bgsp());
+ bgCheck();
+}
+
+f32 dummyLiteral() { return 100.0f; }
/* 80D33D44-80D33D68 0022E4 0024+00 2/2 0/0 0/0 .text chkWaterLineIn__11daWdStick_cFv */
-void daWdStick_c::chkWaterLineIn() {
- // NONMATCHING
+BOOL daWdStick_c::chkWaterLineIn() {
+ return mAcch.m_wtr.GetHeight() > current.pos.y + 40.0f;
}
/* 80D33D68-80D33D8C 002308 0024+00 1/1 0/0 0/0 .text mode_init_sink__11daWdStick_cFv */
void daWdStick_c::mode_init_sink() {
- // NONMATCHING
+ field_0xab0 = 0;
+ field_0xaae = 0;
+ cLib_offBit(attention_info.flags, 0x10UL);
+ mMode = MODE_SINK;
}
-/* ############################################################################################## */
-/* 80D34200-80D34204 0000C8 0004+00 0/1 0/0 0/0 .rodata @4777 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4777 = 1.0f / 20.0f;
-COMPILER_STRIP_GATE(0x80D34200, &lit_4777);
-#pragma pop
-
-/* 80D34204-80D34208 0000CC 0004+00 0/1 0/0 0/0 .rodata @4778 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4778 = 1.0f / 100.0f;
-COMPILER_STRIP_GATE(0x80D34204, &lit_4778);
-#pragma pop
-
-/* 80D34208-80D3420C 0000D0 0004+00 0/1 0/0 0/0 .rodata @4779 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4779 = 13.0f;
-COMPILER_STRIP_GATE(0x80D34208, &lit_4779);
-#pragma pop
-
-/* 80D3420C-80D34210 0000D4 0004+00 0/1 0/0 0/0 .rodata @4780 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static f32 const lit_4780 = -2.0f;
-COMPILER_STRIP_GATE(0x80D3420C, &lit_4780);
-#pragma pop
-
/* 80D33D8C-80D33EB0 00232C 0124+00 1/0 0/0 0/0 .text mode_proc_sink__11daWdStick_cFv */
void daWdStick_c::mode_proc_sink() {
- // NONMATCHING
+ cLib_addCalc(&speedF, 0, 0.05f, 0.1f, 0.01f);
+ speed.y = cLib_minMaxLimit(speed.y, -15.0f, 13.0f);
+ if (mAcch.ChkGroundHit()) {
+ speedF *= 0.9f;
+ }
+ if (chkWaterLineIn()) {
+ gravity = -2.0f;
+ } else {
+ gravity = -5.0f;
+ }
+ fopAcM_posMoveF(this, mStts.GetCCMoveP());
+ f32 waterHeight = mAcch.m_wtr.GetHeight();
+ if (current.pos.y < waterHeight + 100.0f) {
+ cLib_onBit(attention_info.flags, 0x10UL);
+ current.pos = home.pos;
+ mode_init_wait();
+ }
+ if (mAcch.ChkGroundHit()) {
+ cLib_onBit(attention_info.flags, 0x10UL);
+ }
}
/* 80D33EB0-80D33F14 002450 0064+00 1/0 0/0 0/0 .text Draw__11daWdStick_cFv */
-void daWdStick_c::Draw() {
- // NONMATCHING
+int daWdStick_c::Draw() {
+ g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(mModel, &tevStr);
+ mDoExt_modelUpdateDL(mModel);
+ return 1;
}
/* 80D33F14-80D33F44 0024B4 0030+00 1/0 0/0 0/0 .text Delete__11daWdStick_cFv */
-void daWdStick_c::Delete() {
- // NONMATCHING
+int daWdStick_c::Delete() {
+ dComIfG_resDelete(&mPhase, "H_Kinobou");
+ return 1;
}
/* 80D33F44-80D33F70 0024E4 002C+00 1/0 0/0 0/0 .text daWdStick_Draw__FP11daWdStick_c */
-static void daWdStick_Draw(daWdStick_c* param_0) {
- // NONMATCHING
+static int daWdStick_Draw(daWdStick_c* i_this) {
+ return i_this->Draw();
}
/* 80D33F70-80D33F9C 002510 002C+00 1/0 0/0 0/0 .text daWdStick_Execute__FP11daWdStick_c
*/
-static void daWdStick_Execute(daWdStick_c* param_0) {
- // NONMATCHING
+static int daWdStick_Execute(daWdStick_c* i_this) {
+ return i_this->Execute();
}
/* 80D33F9C-80D33FC8 00253C 002C+00 1/0 0/0 0/0 .text daWdStick_Delete__FP11daWdStick_c
*/
-static void daWdStick_Delete(daWdStick_c* param_0) {
- // NONMATCHING
+static int daWdStick_Delete(daWdStick_c* i_this) {
+ return i_this->Delete();
}
/* 80D33FC8-80D33FE8 002568 0020+00 1/0 0/0 0/0 .text daWdStick_Create__FP10fopAc_ac_c */
-static void daWdStick_Create(fopAc_ac_c* param_0) {
- // NONMATCHING
+static int daWdStick_Create(fopAc_ac_c* i_this) {
+ return static_cast<daWdStick_c*>(i_this)->create();
}
-/* 80D33FE8-80D34030 002588 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
-// cCcD_GStts::~cCcD_GStts() {
-extern "C" void __dt__10cCcD_GSttsFv() {
- // NONMATCHING
-}
-
-/* 80D34030-80D3408C 0025D0 005C+00 2/1 0/0 0/0 .text __dt__15daWdStick_HIO_cFv */
-daWdStick_HIO_c::~daWdStick_HIO_c() {
- // NONMATCHING
-}
-
-/* 80D3408C-80D340FC 00262C 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_wdStick_cpp */
-void __sinit_d_a_obj_wdStick_cpp() {
- // NONMATCHING
-}
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80D3408C, __sinit_d_a_obj_wdStick_cpp);
-#pragma pop
-
-/* 80D340FC-80D34104 00269C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
-static void func_80D340FC() {
- // NONMATCHING
-}
-
-/* 80D34104-80D3410C 0026A4 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
-static void func_80D34104() {
- // NONMATCHING
-}
-
-/* 80D3410C-80D34114 0026AC 0008+00 1/0 0/0 0/0 .text @20@__dt__14dBgS_ObjGndChkFv */
-static void func_80D3410C() {
- // NONMATCHING
-}
-
-/* 80D34114-80D3411C 0026B4 0008+00 1/0 0/0 0/0 .text @76@__dt__14dBgS_ObjGndChkFv */
-static void func_80D34114() {
- // NONMATCHING
-}
+/* 80D342F4-80D34314 -00001 0020+00 1/0 0/0 0/0 .data l_daWdStick_Method */
+static actor_method_class l_daWdStick_Method = {
+ (process_method_func)daWdStick_Create,
+ (process_method_func)daWdStick_Delete,
+ (process_method_func)daWdStick_Execute,
+ NULL,
+ (process_method_func)daWdStick_Draw,
+};
-/* 80D3411C-80D34124 0026BC 0008+00 1/0 0/0 0/0 .text @60@__dt__14dBgS_ObjGndChkFv */
-static void func_80D3411C() {
- // NONMATCHING
-}
+/* 80D34314-80D34344 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_WdStick */
+extern actor_process_profile_definition g_profile_Obj_WdStick = {
+ fpcLy_CURRENT_e, // mLayerID
+ 7, // mListID
+ fpcPi_CURRENT_e, // mListPrio
+ PROC_Obj_WdStick, // mProcName
+ &g_fpcLf_Method.base, // sub_method
+ sizeof(daWdStick_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // sub_method
+ 497, // mPriority
+ &l_daWdStick_Method, // sub_method
+ 0x00044000, // mStatus
+ fopAc_ACTOR_e, // mActorType
+ fopAc_CULLBOX_CUSTOM_e, // cullType
+};
/* 80D34210-80D34210 0000D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/src/d/d_cc_uty.cpp b/src/d/d_cc_uty.cpp
index c1df3fb303..fd1e3724fd 100644
--- a/src/d/d_cc_uty.cpp
+++ b/src/d/d_cc_uty.cpp
@@ -165,7 +165,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
u8 power = i_AtInfo->mpCollider->GetAtAtp();
if (i_AtInfo->mPowerType == 0) {
- if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
+ if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -179,7 +179,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
power = 200;
}
} else if (i_AtInfo->mPowerType == 6) {
- if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
+ if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -193,7 +193,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
} else if (i_AtInfo->mPowerType == 4) {
if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) {
power = 200;
- } else if (i_AtInfo->mpCollider->ChkAtType(0x10000000)) {
+ } else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_10000000)) {
power = 0;
} else if (power == 1) {
power = 1;
@@ -247,7 +247,7 @@ static u8 at_power_get(dCcU_AtInfo* i_AtInfo) {
power = 40;
}
} else if (i_AtInfo->mPowerType == 7) {
- if (i_AtInfo->mpCollider->ChkAtType(0x420008)) {
+ if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_THROW_OBJ | AT_TYPE_20000 | AT_TYPE_IRON_BALL)) {
power = 50;
} else if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_ARROW)) {
power = 27;
@@ -337,7 +337,7 @@ fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
s16 ac_name = fopAcM_GetName(i_AtInfo->mpActor);
if (ac_name == PROC_ALINK || ac_name == PROC_ALINK) {
- if (i_AtInfo->mpCollider->ChkAtType(0x8000) ||
+ if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_8000) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_IRON_BALL))
{
i_AtInfo->mHitType = HIT_TYPE_LINK_HEAVY_ATTACK;
@@ -358,7 +358,7 @@ fopAc_ac_c* at_power_check(dCcU_AtInfo* i_AtInfo) {
}
i_AtInfo->mHitStatus = 0;
- if (i_AtInfo->mpCollider->ChkAtType(0x40) ||
+ if (i_AtInfo->mpCollider->ChkAtType(AT_TYPE_40) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_BOOMERANG) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SLINGSHOT) ||
i_AtInfo->mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK))