ActorNavi (#132)

* Map symbol in Game

* ActorNavi 93%

* ActorNavi_04 96%

* Document Actor fields

* Move MAX_KEYS to ItemManager

* Move gTouchControl to its own header

* Fix missing includes

* Fix regressions

* Fix build

* Update decompiling guide images

* Fix regression
This commit is contained in:
Aetias
2025-08-29 20:01:10 +02:00
committed by GitHub
parent be02098914
commit cb52c8c23f
66 changed files with 778 additions and 346 deletions
+1 -1
View File
@@ -6473,7 +6473,7 @@ from:0x020b80f8 kind:arm_call to:0x0202e9dc module:main
from:0x020b8104 kind:arm_call_thumb to:0x02107aa0 module:overlay(4)
from:0x020b810c kind:load to:0x027e0fe0 module:dtcm
from:0x020b811c kind:arm_call to:0x020beba8 module:overlay(0)
from:0x020b8130 kind:load to:0x020e6658 module:overlay(0)
from:0x020b8130 kind:load to:0x020e6650 add:8 module:overlay(0)
from:0x020b813c kind:arm_call to:0x02081f4c module:overlay(0)
from:0x020b8150 kind:arm_call to:0x02081f4c module:overlay(0)
from:0x020b8158 kind:arm_call to:0x0202ea0c module:main
+20 -20
View File
@@ -1091,7 +1091,7 @@ func_ov000_0209394c kind:function(arm,size=0xc) addr:0x0209394c
func_ov000_02093958 kind:function(arm,size=0x10) addr:0x02093958
func_ov000_02093968 kind:function(arm,size=0x78) addr:0x02093968
func_ov000_020939e0 kind:function(arm,size=0x3c) addr:0x020939e0
_Z19func_ov000_02093a1cPjPii kind:function(arm,size=0x20) addr:0x02093a1c
_ZN18UnkStruct_027e0f6c19func_ov000_02093a1cEPjPS_t kind:function(arm,size=0x20) addr:0x02093a1c
func_ov000_02093a3c kind:function(arm,size=0x10) addr:0x02093a3c
func_ov000_02093a4c kind:function(arm,size=0x10) addr:0x02093a4c
func_ov000_02093a5c kind:function(arm,size=0x94) addr:0x02093a5c
@@ -1986,8 +1986,8 @@ _ZN12TouchGestureD2Ev kind:function(arm,size=0x4) addr:0x020a9544
_ZN16TouchGestureBaseD2Ev kind:function(arm,size=0x4) addr:0x020a9548
_ZN16TouchGestureBase17ResetTouchHistoryEv kind:function(arm,size=0xc) addr:0x020a954c
_ZN16TouchGestureBaseD1Ev kind:function(arm,size=0x14) addr:0x020a9558
_ZN11ModelRenderC2Ev kind:function(thumb,size=0x1c) addr:0x020a956c
_ZN11ModelRenderC1Ei kind:function(thumb,size=0x1c) addr:0x020a9588
_ZN11ModelRenderC2EP9ItemModel kind:function(thumb,size=0x1c) addr:0x020a956c
_ZN11ModelRenderC1EP9ItemModel kind:function(thumb,size=0x1c) addr:0x020a9588
_ZN11ModelRenderD1Ev kind:function(thumb,size=0x20) addr:0x020a95a4
_ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x020a95c4
_ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x020a95ec
@@ -2007,7 +2007,7 @@ _ZN11ModelRender8vfunc_30Ev kind:function(arm,size=0x2c) addr:0x020a98bc
_ZN11ModelRender19func_ov000_020a98e8Ei kind:function(arm,size=0x24) addr:0x020a98e8
_ZN11ModelRender19func_ov000_020a990cEi kind:function(arm,size=0x2c) addr:0x020a990c
_ZN11ModelRender19func_ov000_020a9938Ei kind:function(thumb,size=0x28) addr:0x020a9938
_ZN11ModelRender19func_ov000_020a9960Ei kind:function(arm,size=0x8) addr:0x020a9960
_ZN11ModelRender19func_ov000_020a9960EPv kind:function(arm,size=0x8) addr:0x020a9960
_ZN11ModelRender8vfunc_38Ev kind:function(arm,size=0x2c) addr:0x020a9968
_ZN11ModelRender8vfunc_3cEv kind:function(arm,size=0x4) addr:0x020a9994
_ZN11ModelRender19func_ov000_020a9998Eii kind:function(arm,size=0x28) addr:0x020a9998
@@ -2018,7 +2018,7 @@ func_ov000_020a9a40 kind:function(thumb,size=0x28) addr:0x020a9a40
func_ov000_020a9a68 kind:function(thumb,size=0x24) addr:0x020a9a68
func_ov000_020a9a8c kind:function(thumb,size=0xc) addr:0x020a9a8c
func_ov000_020a9a98 kind:function(thumb,size=0x12) addr:0x020a9a98
func_ov000_020a9aac kind:function(thumb,size=0xc) addr:0x020a9aac
_ZN18ActorNaviBase_Unk2D1Ev kind:function(thumb,size=0xc) addr:0x020a9aac
func_ov000_020a9ab8 kind:function(thumb,size=0x12) addr:0x020a9ab8
func_ov000_020a9acc kind:function(thumb,size=0xc) addr:0x020a9acc
func_ov000_020a9ad8 kind:function(thumb,size=0x12) addr:0x020a9ad8
@@ -2398,10 +2398,10 @@ _ZN13PlayerManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0
_ZN13PlayerManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x020b804c
_ZN13PlayerManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x020b8060
_ZN9ActorNavi6CreateEv kind:function(arm,size=0x30) addr:0x020b80e0
_ZN24UnkStruct_ov000_020b8110C2Ev kind:function(arm,size=0x24) addr:0x020b8110
_ZN24UnkStruct_ov000_020b8110C1Ev kind:function(arm,size=0x24) addr:0x020b8110
_ZN24UnkStruct_ov000_020b8110D1Ev kind:function(arm,size=0x14) addr:0x020b8134
_ZN24UnkStruct_ov000_020b8110D0Ev kind:function(arm,size=0x1c) addr:0x020b8148
_ZN24UnkStruct_ov000_020b81108vfunc_08EPs kind:function(arm,size=0x50) addr:0x020b8164
_ZN24UnkStruct_ov000_020b81108vfunc_08EP27UnkStruct_ov000_020beba8_08 kind:function(arm,size=0x50) addr:0x020b8164
_ZN24UnkStruct_ov000_020b81108vfunc_18EPi kind:function(arm,size=0x40) addr:0x020b81b4
_ZN24UnkStruct_ov000_020b81108vfunc_14EPt kind:function(arm,size=0xc) addr:0x020b81f4
_ZN9ActorNavi19func_ov000_020b8200Ev kind:function(arm,size=0x10) addr:0x020b8200
@@ -2411,7 +2411,7 @@ _ZN9ActorNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x020b8280
_ZN9ActorNavi8vfunc_b8Ev kind:function(arm,size=0x8) addr:0x020b8288
_ZN9ActorNavi8vfunc_d4Ev kind:function(arm,size=0x2c) addr:0x020b8290
_ZN9ActorNavi8vfunc_d0Ev kind:function(arm,size=0x2c) addr:0x020b82bc
_ZN9ActorNavi9SetActiveEb kind:function(arm,size=0x58) addr:0x020b82e8
_ZN9ActorNavi9SetActiveEi kind:function(arm,size=0x58) addr:0x020b82e8
_ZN9ActorNavi8vfunc_e0Ev kind:function(arm,size=0xb8) addr:0x020b8340
_ZN9ActorNavi8vfunc_d8Ev kind:function(arm,size=0x20) addr:0x020b83f8
_ZN9ActorNavi8vfunc_20Eb kind:function(arm,size=0x3c) addr:0x020b8418
@@ -2422,8 +2422,8 @@ _ZN9ActorNavi8vfunc_8cEv kind:function(arm,size=0x8) addr:0x020b84d0
_ZN9ActorNavi8vfunc_ecEv kind:function(arm,size=0x54) addr:0x020b84d8
_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x020b852c local
_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x020b853c
_ZN9ActorNaviD1Ev kind:function(arm,size=0x48) addr:0x020b8550
_ZN9ActorNaviD0Ev kind:function(arm,size=0x40) addr:0x020b8598
_ZN9ActorNaviD0Ev kind:function(arm,size=0x48) addr:0x020b8550
_ZN9ActorNaviD1Ev kind:function(arm,size=0x40) addr:0x020b8598
func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x020b85d8
func_ov000_020b8600 kind:function(arm,size=0x10) addr:0x020b8600
func_ov000_020b8610 kind:function(arm,size=0x1c) addr:0x020b8610
@@ -2650,7 +2650,7 @@ _ZN9EquipItem8GiveAmmoEj kind:function(arm,size=0x34) addr:0x020beb5c
_ZNK9EquipItem9GetHitboxEP8Cylinder kind:function(arm,size=0x18) addr:0x020beb90
_ZN24UnkStruct_ov000_020beba8C2Ei kind:function(arm,size=0x18) addr:0x020beba8
_ZN24UnkStruct_ov000_020beba8C1Ei kind:function(arm,size=0x18) addr:0x020bebc0
_ZN24UnkStruct_ov000_020beba88vfunc_08EPs kind:function(arm,size=0x84) addr:0x020bebd8
_ZN24UnkStruct_ov000_020beba88vfunc_08EP27UnkStruct_ov000_020beba8_08 kind:function(arm,size=0x84) addr:0x020bebd8
_ZN24UnkStruct_ov000_020beba88vfunc_0cEPs kind:function(arm,size=0x84) addr:0x020bec5c
_ZN24UnkStruct_ov000_020beba88vfunc_10EPi kind:function(arm,size=0x9c) addr:0x020bece0
_ZN24UnkStruct_ov000_020beba88vfunc_18EPi kind:function(arm,size=0x50) addr:0x020bed7c
@@ -2701,7 +2701,7 @@ _ZN15ActorWisdomNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x020c0ba4
_ZN15ActorWisdomNaviD0Ev kind:function(arm,size=0x1c) addr:0x020c0bac
_ZN15ActorWisdomNaviD1Ev kind:function(arm,size=0x14) addr:0x020c0bc8
func_ov000_020c0bdc kind:function(arm,size=0x2c) addr:0x020c0bdc
_ZN24UnkStruct_ov000_020c0c08C1EP27UnkStruct_ov000_020c0c08_04Ph kind:function(thumb,size=0x28) addr:0x020c0c08
_ZN24UnkStruct_ov000_020c0c08C2EP27UnkStruct_ov000_020c0c08_04P9ItemModel kind:function(thumb,size=0x28) addr:0x020c0c08
func_ov000_020c0c30 kind:function(thumb,size=0x2) addr:0x020c0c30
func_ov000_020c0c34 kind:function(thumb,size=0xc) addr:0x020c0c34
func_ov000_020c0c40 kind:function(thumb,size=0x2) addr:0x020c0c40
@@ -2747,8 +2747,8 @@ _ZN5Actor8vfunc_18Ej kind:function(arm,size=0x18) addr:0x020c17bc
_ZN5Actor8vfunc_1cEPt kind:function(arm,size=0xc0) addr:0x020c17d4
_ZN5Actor8vfunc_20Eb kind:function(arm,size=0x4) addr:0x020c1894
_ZN5Actor10SetUnk_129Eb kind:function(arm,size=0x10) addr:0x020c1898
_ZN5Actor10SetUnk_11bEv kind:function(arm,size=0x1c) addr:0x020c18a8
_ZN5Actor11SetVelocityEP5Vec3p kind:function(arm,size=0x38) addr:0x020c18c4
_ZN5Actor4GrabEv kind:function(arm,size=0x1c) addr:0x020c18a8
_ZN5Actor4DropEP5Vec3p kind:function(arm,size=0x38) addr:0x020c18c4
_ZN5Actor8vfunc_60Ev kind:function(arm,size=0x8) addr:0x020c18fc
_ZN5Actor8vfunc_64Ev kind:function(arm,size=0x4) addr:0x020c1904
_ZN5Actor10SetUnk_11cEc kind:function(arm,size=0x8) addr:0x020c1908
@@ -3393,8 +3393,8 @@ func_ov000_020d17a0 kind:function(arm,size=0x74) addr:0x020d17a0
func_ov000_020d1814 kind:function(arm,size=0x5c) addr:0x020d1814
func_ov000_020d1870 kind:function(arm,size=0x44) addr:0x020d1870
func_ov000_020d18b4 kind:function(arm,size=0x40) addr:0x020d18b4
func_ov000_020d18f4 kind:function(arm,size=0x8c) addr:0x020d18f4
func_ov000_020d1980 kind:function(arm,size=0x54) addr:0x020d1980
_ZN24UnkStruct_ov000_020d18f4C1Ei kind:function(arm,size=0x8c) addr:0x020d18f4
_ZN24UnkStruct_ov000_020d18f4D1Ev kind:function(arm,size=0x54) addr:0x020d1980
func_ov000_020d19d4 kind:function(arm,size=0x5c) addr:0x020d19d4
func_ov000_020d1a30 kind:function(arm,size=0x20) addr:0x020d1a30
func_ov000_020d1a50 kind:function(arm,size=0xa0) addr:0x020d1a50
@@ -5010,8 +5010,8 @@ data_ov000_020e6528 kind:data(any) addr:0x020e6528
data_ov000_020e652c kind:data(any) addr:0x020e652c
data_ov000_020e6530 kind:data(any) addr:0x020e6530
data_ov000_020e6534 kind:data(any) addr:0x020e6534
_ZTV9ActorNavi kind:data(any) addr:0x020e6560
_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x020e6658
_ZTV9ActorNavi kind:data(any) addr:0x020e6558
_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x020e6650
_ZTV14ActorForceNavi kind:data(any) addr:0x020e6674
data_ov000_020e676c kind:data(any) addr:0x020e676c
data_ov000_020e6770 kind:data(any) addr:0x020e6770
@@ -5025,8 +5025,8 @@ data_ov000_020e678c kind:data(any) addr:0x020e678c
data_ov000_020e67ac kind:data(any) addr:0x020e67ac
data_ov000_020e67b8 kind:data(any) addr:0x020e67b8
data_ov000_020e67d8 kind:data(any) addr:0x020e67d8
vtable_ov000_020e67e4 kind:data(any) addr:0x020e67dc
vtable_ov000_020e68dc kind:data(any) addr:0x020e68d4
_ZTV13ActorNaviBase kind:data(any) addr:0x020e67dc
_ZTV18ActorNaviBase_Unk3 kind:data(any) addr:0x020e68d4
data_ov000_020e691c kind:data(any) addr:0x020e691c
data_ov000_020e6934 kind:data(any) addr:0x020e6934
data_ov000_020e6974 kind:data(any) addr:0x020e6974
@@ -8,3 +8,6 @@
src/04_Load/Player/LinkStateMove_04.cpp:
complete
.text start:0x0210aed4 end:0x0210af14
src/04_Load/Actor/Navi/ActorNavi_04.cpp:
.text start:0x02107810 end:0x02107c00
+3 -3
View File
@@ -1534,7 +1534,7 @@ from:0x0210788e kind:thumb_call_arm to:0x020d18f4 module:overlay(0)
from:0x021078f4 kind:load to:0x020e67dc add:8 module:overlay(0)
from:0x021078f8 kind:load to:0x020ee1f8 module:overlay(0)
from:0x021078fc kind:load to:0x020e67ac module:overlay(0)
from:0x02107900 kind:load to:0x02110540 module:overlay(4)
from:0x02107900 kind:load to:0x02110538 add:8 module:overlay(4)
from:0x02107904 kind:load to:0x020b7d74 module:overlay(0)
from:0x02107908 kind:load to:0x021079d5 module:overlay(4)
from:0x02107916 kind:thumb_call_arm to:0x020d1980 module:overlay(0)
@@ -1569,9 +1569,9 @@ from:0x02107abe kind:thumb_call to:0x020a9588 module:overlay(0)
from:0x02107ac8 kind:thumb_call_arm to:0x020ad52c module:overlay(0)
from:0x02107ad8 kind:thumb_call to:0x020c0c08 module:overlay(0)
from:0x02107b1c kind:thumb_call_arm to:0x0204f614 module:main
from:0x02107b4c kind:load to:0x020e6560 module:overlay(0)
from:0x02107b4c kind:load to:0x020e6558 add:8 module:overlay(0)
from:0x02107b50 kind:load to:0x027e0fb4 module:dtcm
from:0x02107b54 kind:load to:0x02110540 module:overlay(4)
from:0x02107b54 kind:load to:0x02110538 add:8 module:overlay(4)
from:0x02107b58 kind:load to:0x020b7d74 module:overlay(0)
from:0x02107b5c kind:load to:0x021079d5 module:overlay(4)
from:0x02107b60 kind:load to:0x02057200 module:main
+5 -5
View File
@@ -224,11 +224,11 @@ _ZN13ActorNaviBaseC2Ev kind:function(thumb,size=0xfc) addr:0x02107810
_ZN13ActorNaviBaseD1Ev kind:function(thumb,size=0x40) addr:0x0210790c
_ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x0210794c
_ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x02107994
_Z19func_ov004_021079d4Pi kind:function(thumb,size=0x6) addr:0x021079d4
_ZN18ActorNaviBase_Unk1C1Ev kind:function(thumb,size=0x6) addr:0x021079d4
_ZN13ActorNaviBase4InitEv kind:function(thumb,size=0xa4) addr:0x021079dc
func_ov004_02107a80 kind:function(thumb,size=0x20) addr:0x02107a80
func_ov004_02107aa0 kind:function(thumb,size=0xc4) addr:0x02107aa0
func_ov004_02107b64 kind:function(thumb,size=0x9c) addr:0x02107b64
_ZN18ActorNaviBase_Unk3C1EP9ItemModel kind:function(thumb,size=0x20) addr:0x02107a80
_ZN9ActorNaviC1Ev kind:function(thumb,size=0xc4) addr:0x02107aa0
_ZN9ActorNavi4InitEv kind:function(thumb,size=0x9c) addr:0x02107b64
func_ov004_02107c00 kind:function(thumb,size=0x2c) addr:0x02107c00
func_ov004_02107c2c kind:function(thumb,size=0x20) addr:0x02107c2c
func_ov004_02107c4c kind:function(thumb,size=0x1c0) addr:0x02107c4c
@@ -594,7 +594,7 @@ data_ov004_021104f8 kind:data(any) addr:0x021104f8
data_ov004_02110500 kind:data(any) addr:0x02110500
data_ov004_02110508 kind:data(any) addr:0x02110508
data_ov004_02110520 kind:data(any) addr:0x02110520
data_ov004_02110540 kind:data(any) addr:0x02110540
_ZTV18ActorNaviBase_Unk2 kind:data(any) addr:0x02110538
data_ov004_02110548 kind:data(any) addr:0x02110548
data_ov004_0211054c kind:data(any) addr:0x0211054c
data_ov004_02110554 kind:data(any) addr:0x02110554
+1 -1
View File
@@ -62,7 +62,7 @@ _ZN9ActorBomb8vfunc_18Ej kind:function(arm,size=0x98) addr:0x02122b20
_ZN9ActorBomb19func_ov014_02122bb8Ei kind:function(arm,size=0xe4) addr:0x02122bb8
_ZN9ActorBomb8vfunc_54Ev kind:function(arm,size=0x18) addr:0x02122c9c
_ZN9ActorBomb8vfunc_20Eb kind:function(arm,size=0xb8) addr:0x02122cb4
_ZN9ActorBomb11SetVelocityEP5Vec3p kind:function(arm,size=0xdc) addr:0x02122d6c
_ZN9ActorBomb4DropEP5Vec3p kind:function(arm,size=0xdc) addr:0x02122d6c
_ZN9ActorBomb19func_ov014_02122e48EPi kind:function(arm,size=0x34) addr:0x02122e48
_ZN9ActorBomb19func_ov014_02122e7cEv kind:function(arm,size=0x1c) addr:0x02122e7c
_ZN9ActorBomb19func_ov014_02122e98Ev kind:function(arm,size=0x20) addr:0x02122e98
+1 -1
View File
@@ -18,7 +18,7 @@ _Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x0219930c
_ZN13LinkStateItem15StopUsingHammerEv kind:function(arm,size=0x20) addr:0x0219931c
_ZN9ActorNavi19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x0219933c
_ZN9ActorNavi19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x0219a0ac
_ZN9ActorNavi19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x0219aa08
_ZN9ActorNavi19func_ov059_0219aa08Eb kind:function(arm,size=0x1a0) addr:0x0219aa08
_ZN9ActorNavi19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x0219aba8
_ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x0219af14
_ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x0219afc4
+2 -2
View File
@@ -919,8 +919,8 @@ func_0201e5c8 kind:function(arm,size=0x10) addr:0x0201e5c8
func_0201e5d8 kind:function(arm,size=0x10) addr:0x0201e5d8
func_0201e5e8 kind:function(arm,size=0x74) addr:0x0201e5e8
func_0201e65c kind:function(arm,size=0x1c) addr:0x0201e65c
func_0201e678 kind:function(arm,size=0x20) addr:0x0201e678
func_0201e698 kind:function(arm,size=0x1c) addr:0x0201e698
GetJntAnimation kind:function(arm,size=0x20) addr:0x0201e678
FindJntSection kind:function(arm,size=0x1c) addr:0x0201e698
func_0201e6b4 kind:function(arm,size=0xac) addr:0x0201e6b4
func_0201e760 kind:function(arm,size=0x2c) addr:0x0201e760
func_0201e78c kind:function(arm,size=0x94) addr:0x0201e78c
+1 -1
View File
@@ -6473,7 +6473,7 @@ from:0x020b8098 kind:arm_call to:0x0202e9d8 module:main
from:0x020b80a4 kind:arm_call_thumb to:0x02107a20 module:overlay(4)
from:0x020b80ac kind:load to:0x027e0fe0 module:dtcm
from:0x020b80bc kind:arm_call to:0x020beb48 module:overlay(0)
from:0x020b80d0 kind:load to:0x020e65f8 module:overlay(0)
from:0x020b80d0 kind:load to:0x020e65f0 add:8 module:overlay(0)
from:0x020b80dc kind:arm_call to:0x02081eec module:overlay(0)
from:0x020b80f0 kind:arm_call to:0x02081eec module:overlay(0)
from:0x020b80f8 kind:arm_call to:0x0202ea08 module:main
+20 -20
View File
@@ -1091,7 +1091,7 @@ func_ov000_0209394c kind:function(arm,size=0xc) addr:0x020938ec
func_ov000_02093958 kind:function(arm,size=0x10) addr:0x020938f8
func_ov000_02093968 kind:function(arm,size=0x78) addr:0x02093908
func_ov000_020939e0 kind:function(arm,size=0x3c) addr:0x02093980
_Z19func_ov000_02093a1cPjPii kind:function(arm,size=0x20) addr:0x020939bc
_ZN18UnkStruct_027e0f6c19func_ov000_02093a1cEPjPS_t kind:function(arm,size=0x20) addr:0x020939bc
func_ov000_02093a3c kind:function(arm,size=0x10) addr:0x020939dc
func_ov000_02093a4c kind:function(arm,size=0x10) addr:0x020939ec
func_ov000_02093a5c kind:function(arm,size=0x94) addr:0x020939fc
@@ -1986,8 +1986,8 @@ _ZN12TouchGestureD2Ev kind:function(arm,size=0x4) addr:0x020a94e4
_ZN16TouchGestureBaseD2Ev kind:function(arm,size=0x4) addr:0x020a94e8
_ZN16TouchGestureBase17ResetTouchHistoryEv kind:function(arm,size=0xc) addr:0x020a94ec
_ZN16TouchGestureBaseD1Ev kind:function(arm,size=0x14) addr:0x020a94f8
_ZN11ModelRenderC2Ev kind:function(thumb,size=0x1c) addr:0x020a950c
_ZN11ModelRenderC1Ei kind:function(thumb,size=0x1c) addr:0x020a9528
_ZN11ModelRenderC2EP9ItemModel kind:function(thumb,size=0x1c) addr:0x020a950c
_ZN11ModelRenderC1EP9ItemModel kind:function(thumb,size=0x1c) addr:0x020a9528
_ZN11ModelRenderD1Ev kind:function(thumb,size=0x20) addr:0x020a9544
_ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x020a9564
_ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x020a958c
@@ -2007,7 +2007,7 @@ _ZN11ModelRender8vfunc_30Ev kind:function(arm,size=0x2c) addr:0x020a985c
_ZN11ModelRender19func_ov000_020a98e8Ei kind:function(arm,size=0x24) addr:0x020a9888
_ZN11ModelRender19func_ov000_020a990cEi kind:function(arm,size=0x2c) addr:0x020a98ac
_ZN11ModelRender19func_ov000_020a9938Ei kind:function(thumb,size=0x28) addr:0x020a98d8
_ZN11ModelRender19func_ov000_020a9960Ei kind:function(arm,size=0x8) addr:0x020a9900
_ZN11ModelRender19func_ov000_020a9960EPv kind:function(arm,size=0x8) addr:0x020a9900
_ZN11ModelRender8vfunc_38Ev kind:function(arm,size=0x2c) addr:0x020a9908
_ZN11ModelRender8vfunc_3cEv kind:function(arm,size=0x4) addr:0x020a9934
_ZN11ModelRender19func_ov000_020a9998Eii kind:function(arm,size=0x28) addr:0x020a9938
@@ -2018,7 +2018,7 @@ func_ov000_020a9a40 kind:function(thumb,size=0x28) addr:0x020a99e0
func_ov000_020a9a68 kind:function(thumb,size=0x24) addr:0x020a9a08
func_ov000_020a9a8c kind:function(thumb,size=0xc) addr:0x020a9a2c
func_ov000_020a9a98 kind:function(thumb,size=0x12) addr:0x020a9a38
func_ov000_020a9aac kind:function(thumb,size=0xc) addr:0x020a9a4c
_ZN18ActorNaviBase_Unk2D1Ev kind:function(thumb,size=0xc) addr:0x020a9a4c
func_ov000_020a9ab8 kind:function(thumb,size=0x12) addr:0x020a9a58
func_ov000_020a9acc kind:function(thumb,size=0xc) addr:0x020a9a6c
func_ov000_020a9ad8 kind:function(thumb,size=0x12) addr:0x020a9a78
@@ -2398,10 +2398,10 @@ _ZN13PlayerManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0
_ZN13PlayerManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x020b7fec
_ZN13PlayerManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x020b8000
_ZN9ActorNavi6CreateEv kind:function(arm,size=0x30) addr:0x020b8080
_ZN24UnkStruct_ov000_020b8110C2Ev kind:function(arm,size=0x24) addr:0x020b80b0
_ZN24UnkStruct_ov000_020b8110C1Ev kind:function(arm,size=0x24) addr:0x020b80b0
_ZN24UnkStruct_ov000_020b8110D1Ev kind:function(arm,size=0x14) addr:0x020b80d4
_ZN24UnkStruct_ov000_020b8110D0Ev kind:function(arm,size=0x1c) addr:0x020b80e8
_ZN24UnkStruct_ov000_020b81108vfunc_08EPs kind:function(arm,size=0x50) addr:0x020b8104
_ZN24UnkStruct_ov000_020b81108vfunc_08EP27UnkStruct_ov000_020beba8_08 kind:function(arm,size=0x50) addr:0x020b8104
_ZN24UnkStruct_ov000_020b81108vfunc_18EPi kind:function(arm,size=0x40) addr:0x020b8154
_ZN24UnkStruct_ov000_020b81108vfunc_14EPt kind:function(arm,size=0xc) addr:0x020b8194
_ZN9ActorNavi19func_ov000_020b8200Ev kind:function(arm,size=0x10) addr:0x020b81a0
@@ -2411,7 +2411,7 @@ _ZN9ActorNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x020b8220
_ZN9ActorNavi8vfunc_b8Ev kind:function(arm,size=0x8) addr:0x020b8228
_ZN9ActorNavi8vfunc_d4Ev kind:function(arm,size=0x2c) addr:0x020b8230
_ZN9ActorNavi8vfunc_d0Ev kind:function(arm,size=0x2c) addr:0x020b825c
_ZN9ActorNavi9SetActiveEb kind:function(arm,size=0x58) addr:0x020b8288
_ZN9ActorNavi9SetActiveEi kind:function(arm,size=0x58) addr:0x020b8288
_ZN9ActorNavi8vfunc_e0Ev kind:function(arm,size=0xb8) addr:0x020b82e0
_ZN9ActorNavi8vfunc_d8Ev kind:function(arm,size=0x20) addr:0x020b8398
_ZN9ActorNavi8vfunc_20Eb kind:function(arm,size=0x3c) addr:0x020b83b8
@@ -2422,8 +2422,8 @@ _ZN9ActorNavi8vfunc_8cEv kind:function(arm,size=0x8) addr:0x020b8470
_ZN9ActorNavi8vfunc_ecEv kind:function(arm,size=0x54) addr:0x020b8478
_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x020b84cc local
_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x020b84dc
_ZN9ActorNaviD1Ev kind:function(arm,size=0x48) addr:0x020b84f0
_ZN9ActorNaviD0Ev kind:function(arm,size=0x40) addr:0x020b8538
_ZN9ActorNaviD0Ev kind:function(arm,size=0x48) addr:0x020b84f0
_ZN9ActorNaviD1Ev kind:function(arm,size=0x40) addr:0x020b8538
func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x020b8578
func_ov000_020b8600 kind:function(arm,size=0x10) addr:0x020b85a0
func_ov000_020b8610 kind:function(arm,size=0x1c) addr:0x020b85b0
@@ -2650,7 +2650,7 @@ _ZN9EquipItem8GiveAmmoEj kind:function(arm,size=0x34) addr:0x020beafc
_ZNK9EquipItem9GetHitboxEP8Cylinder kind:function(arm,size=0x18) addr:0x020beb30
_ZN24UnkStruct_ov000_020beba8C2Ei kind:function(arm,size=0x18) addr:0x020beb48
_ZN24UnkStruct_ov000_020beba8C1Ei kind:function(arm,size=0x18) addr:0x020beb60
_ZN24UnkStruct_ov000_020beba88vfunc_08EPs kind:function(arm,size=0x84) addr:0x020beb78
_ZN24UnkStruct_ov000_020beba88vfunc_08EP27UnkStruct_ov000_020beba8_08 kind:function(arm,size=0x84) addr:0x020beb78
_ZN24UnkStruct_ov000_020beba88vfunc_0cEPs kind:function(arm,size=0x84) addr:0x020bebfc
_ZN24UnkStruct_ov000_020beba88vfunc_10EPi kind:function(arm,size=0x9c) addr:0x020bec80
_ZN24UnkStruct_ov000_020beba88vfunc_18EPi kind:function(arm,size=0x50) addr:0x020bed1c
@@ -2701,7 +2701,7 @@ _ZN15ActorWisdomNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x020c0b44
_ZN15ActorWisdomNaviD0Ev kind:function(arm,size=0x1c) addr:0x020c0b4c
_ZN15ActorWisdomNaviD1Ev kind:function(arm,size=0x14) addr:0x020c0b68
func_ov000_020c0bdc kind:function(arm,size=0x2c) addr:0x020c0b7c
_ZN24UnkStruct_ov000_020c0c08C1EP27UnkStruct_ov000_020c0c08_04Ph kind:function(thumb,size=0x28) addr:0x020c0ba8
_ZN24UnkStruct_ov000_020c0c08C2EP27UnkStruct_ov000_020c0c08_04P9ItemModel kind:function(thumb,size=0x28) addr:0x020c0ba8
func_ov000_020c0c30 kind:function(thumb,size=0x2) addr:0x020c0bd0
func_ov000_020c0c34 kind:function(thumb,size=0xc) addr:0x020c0bd4
func_ov000_020c0c40 kind:function(thumb,size=0x2) addr:0x020c0be0
@@ -2747,8 +2747,8 @@ _ZN5Actor8vfunc_18Ej kind:function(arm,size=0x18) addr:0x020c175c
_ZN5Actor8vfunc_1cEPt kind:function(arm,size=0xc0) addr:0x020c1774
_ZN5Actor8vfunc_20Eb kind:function(arm,size=0x4) addr:0x020c1834
_ZN5Actor10SetUnk_129Eb kind:function(arm,size=0x10) addr:0x020c1838
_ZN5Actor10SetUnk_11bEv kind:function(arm,size=0x1c) addr:0x020c1848
_ZN5Actor11SetVelocityEP5Vec3p kind:function(arm,size=0x38) addr:0x020c1864
_ZN5Actor4GrabEv kind:function(arm,size=0x1c) addr:0x020c1848
_ZN5Actor4DropEP5Vec3p kind:function(arm,size=0x38) addr:0x020c1864
_ZN5Actor8vfunc_60Ev kind:function(arm,size=0x8) addr:0x020c189c
_ZN5Actor8vfunc_64Ev kind:function(arm,size=0x4) addr:0x020c18a4
_ZN5Actor10SetUnk_11cEc kind:function(arm,size=0x8) addr:0x020c18a8
@@ -3393,8 +3393,8 @@ func_ov000_020d17a0 kind:function(arm,size=0x74) addr:0x020d1740
func_ov000_020d1814 kind:function(arm,size=0x5c) addr:0x020d17b4
func_ov000_020d1870 kind:function(arm,size=0x44) addr:0x020d1810
func_ov000_020d18b4 kind:function(arm,size=0x40) addr:0x020d1854
func_ov000_020d18f4 kind:function(arm,size=0x8c) addr:0x020d1894
func_ov000_020d1980 kind:function(arm,size=0x54) addr:0x020d1920
_ZN24UnkStruct_ov000_020d18f4C1Ei kind:function(arm,size=0x8c) addr:0x020d1894
_ZN24UnkStruct_ov000_020d18f4D1Ev kind:function(arm,size=0x54) addr:0x020d1920
func_ov000_020d19d4 kind:function(arm,size=0x5c) addr:0x020d1974
func_ov000_020d1a30 kind:function(arm,size=0x20) addr:0x020d19d0
func_ov000_020d1a50 kind:function(arm,size=0xa0) addr:0x020d19f0
@@ -5010,8 +5010,8 @@ data_ov000_020e6528 kind:data(any) addr:0x020e64c8
data_ov000_020e652c kind:data(any) addr:0x020e64cc
data_ov000_020e6530 kind:data(any) addr:0x020e64d0
data_ov000_020e6534 kind:data(any) addr:0x020e64d4
_ZTV9ActorNavi kind:data(any) addr:0x020e6500
_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x020e65f8
_ZTV9ActorNavi kind:data(any) addr:0x020e64f8
_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x020e65f0
_ZTV14ActorForceNavi kind:data(any) addr:0x020e6614
data_ov000_020e676c kind:data(any) addr:0x020e670c
data_ov000_020e6770 kind:data(any) addr:0x020e6710
@@ -5025,8 +5025,8 @@ data_ov000_020e678c kind:data(any) addr:0x020e672c
data_ov000_020e67ac kind:data(any) addr:0x020e674c
data_ov000_020e67b8 kind:data(any) addr:0x020e6758
data_ov000_020e67d8 kind:data(any) addr:0x020e6778
vtable_ov000_020e67e4 kind:data(any) addr:0x020e677c
vtable_ov000_020e68dc kind:data(any) addr:0x020e6874
_ZTV13ActorNaviBase kind:data(any) addr:0x020e677c
_ZTV18ActorNaviBase_Unk3 kind:data(any) addr:0x020e6874
data_ov000_020e691c kind:data(any) addr:0x020e68bc
data_ov000_020e6934 kind:data(any) addr:0x020e68d4
data_ov000_020e6974 kind:data(any) addr:0x020e6914
@@ -8,3 +8,6 @@
src/04_Load/Player/LinkStateMove_04.cpp:
complete
.text start:0x0210ae54 end:0x0210ae94
src/04_Load/Actor/Navi/ActorNavi_04.cpp:
.text start:0x02107790 end:0x02107b80
+3 -3
View File
@@ -1534,7 +1534,7 @@ from:0x0210780e kind:thumb_call_arm to:0x020d1894 module:overlay(0)
from:0x02107874 kind:load to:0x020e677c add:8 module:overlay(0)
from:0x02107878 kind:load to:0x020ee198 module:overlay(0)
from:0x0210787c kind:load to:0x020e674c module:overlay(0)
from:0x02107880 kind:load to:0x021104c0 module:overlay(4)
from:0x02107880 kind:load to:0x021104b8 add:8 module:overlay(4)
from:0x02107884 kind:load to:0x020b7d14 module:overlay(0)
from:0x02107888 kind:load to:0x02107955 module:overlay(4)
from:0x02107896 kind:thumb_call_arm to:0x020d1920 module:overlay(0)
@@ -1569,9 +1569,9 @@ from:0x02107a3e kind:thumb_call to:0x020a9528 module:overlay(0)
from:0x02107a48 kind:thumb_call_arm to:0x020ad4cc module:overlay(0)
from:0x02107a58 kind:thumb_call to:0x020c0ba8 module:overlay(0)
from:0x02107a9c kind:thumb_call_arm to:0x0204f5d0 module:main
from:0x02107acc kind:load to:0x020e6500 module:overlay(0)
from:0x02107acc kind:load to:0x020e64f8 add:8 module:overlay(0)
from:0x02107ad0 kind:load to:0x027e0fb4 module:dtcm
from:0x02107ad4 kind:load to:0x021104c0 module:overlay(4)
from:0x02107ad4 kind:load to:0x021104b8 add:8 module:overlay(4)
from:0x02107ad8 kind:load to:0x020b7d14 module:overlay(0)
from:0x02107adc kind:load to:0x02107955 module:overlay(4)
from:0x02107ae0 kind:load to:0x020571b8 module:main
+5 -5
View File
@@ -224,11 +224,11 @@ _ZN13ActorNaviBaseC2Ev kind:function(thumb,size=0xfc) addr:0x02107790
_ZN13ActorNaviBaseD1Ev kind:function(thumb,size=0x40) addr:0x0210788c
_ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x021078cc
_ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x02107914
_Z19func_ov004_021079d4Pi kind:function(thumb,size=0x6) addr:0x02107954
_ZN18ActorNaviBase_Unk1C1Ev kind:function(thumb,size=0x6) addr:0x02107954
_ZN13ActorNaviBase4InitEv kind:function(thumb,size=0xa4) addr:0x0210795c
func_ov004_02107a80 kind:function(thumb,size=0x20) addr:0x02107a00
func_ov004_02107aa0 kind:function(thumb,size=0xc4) addr:0x02107a20
func_ov004_02107b64 kind:function(thumb,size=0x9c) addr:0x02107ae4
_ZN18ActorNaviBase_Unk3C1EP9ItemModel kind:function(thumb,size=0x20) addr:0x02107a00
_ZN9ActorNaviC1Ev kind:function(thumb,size=0xc4) addr:0x02107a20
_ZN9ActorNavi4InitEv kind:function(thumb,size=0x9c) addr:0x02107ae4
func_ov004_02107c00 kind:function(thumb,size=0x2c) addr:0x02107b80
func_ov004_02107c2c kind:function(thumb,size=0x20) addr:0x02107bac
func_ov004_02107c4c kind:function(thumb,size=0x1c0) addr:0x02107bcc
@@ -594,7 +594,7 @@ data_ov004_021104f8 kind:data(any) addr:0x02110478
data_ov004_02110500 kind:data(any) addr:0x02110480
data_ov004_02110508 kind:data(any) addr:0x02110488
data_ov004_02110520 kind:data(any) addr:0x021104a0
data_ov004_02110540 kind:data(any) addr:0x021104c0
_ZTV18ActorNaviBase_Unk2 kind:data(any) addr:0x021104b8
data_ov004_02110548 kind:data(any) addr:0x021104c8
data_ov004_0211054c kind:data(any) addr:0x021104cc
data_ov004_02110554 kind:data(any) addr:0x021104d4
+1 -1
View File
@@ -62,7 +62,7 @@ _ZN9ActorBomb8vfunc_18Ej kind:function(arm,size=0x98) addr:0x02122aa0
_ZN9ActorBomb19func_ov014_02122bb8Ei kind:function(arm,size=0xe4) addr:0x02122b38
_ZN9ActorBomb8vfunc_54Ev kind:function(arm,size=0x18) addr:0x02122c1c
_ZN9ActorBomb8vfunc_20Eb kind:function(arm,size=0xb8) addr:0x02122c34
_ZN9ActorBomb11SetVelocityEP5Vec3p kind:function(arm,size=0xdc) addr:0x02122cec
_ZN9ActorBomb4DropEP5Vec3p kind:function(arm,size=0xdc) addr:0x02122cec
_ZN9ActorBomb19func_ov014_02122e48EPi kind:function(arm,size=0x34) addr:0x02122dc8
_ZN9ActorBomb19func_ov014_02122e7cEv kind:function(arm,size=0x1c) addr:0x02122dfc
_ZN9ActorBomb19func_ov014_02122e98Ev kind:function(arm,size=0x20) addr:0x02122e18
+1 -1
View File
@@ -18,7 +18,7 @@ _Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x0219926c
_ZN13LinkStateItem15StopUsingHammerEv kind:function(arm,size=0x20) addr:0x0219927c
_ZN9ActorNavi19func_ov059_0219933cEj kind:function(arm,size=0xd70) addr:0x0219929c
_ZN9ActorNavi19func_ov059_0219a0acEv kind:function(arm,size=0x95c) addr:0x0219a00c
_ZN9ActorNavi19func_ov059_0219aa08Ev kind:function(arm,size=0x1a0) addr:0x0219a968
_ZN9ActorNavi19func_ov059_0219aa08Eb kind:function(arm,size=0x1a0) addr:0x0219a968
_ZN9ActorNavi19func_ov059_0219aba8Ej kind:function(arm,size=0x36c) addr:0x0219ab08
_ZN9ActorNavi19func_ov059_0219af14Ev kind:function(arm,size=0xb0) addr:0x0219ae74
_ZN9ActorNavi19func_ov059_0219afc4Ev kind:function(arm,size=0x5c) addr:0x0219af24
+2 -2
View File
@@ -919,8 +919,8 @@ func_0201e5c8 kind:function(arm,size=0x10) addr:0x0201e5c8
func_0201e5d8 kind:function(arm,size=0x10) addr:0x0201e5d8
func_0201e5e8 kind:function(arm,size=0x74) addr:0x0201e5e8
func_0201e65c kind:function(arm,size=0x1c) addr:0x0201e65c
func_0201e678 kind:function(arm,size=0x20) addr:0x0201e678
func_0201e698 kind:function(arm,size=0x1c) addr:0x0201e698
GetJntAnimation kind:function(arm,size=0x20) addr:0x0201e678
FindJntSection kind:function(arm,size=0x1c) addr:0x0201e698
func_0201e6b4 kind:function(arm,size=0xac) addr:0x0201e6b4
func_0201e760 kind:function(arm,size=0x2c) addr:0x0201e760
func_0201e78c kind:function(arm,size=0x94) addr:0x0201e78c
+4 -4
View File
@@ -45,10 +45,10 @@ As a starting point, we look at the decompiler output in Ghidra. You can request
Looking at this output, we might try writing something like this:
```cpp
ARM bool Actor::SetVelocity(Vec3p *vel) {
if (mUnk_11b) {
mVel = *vel;
mUnk_11b = false;
ARM bool Actor::Drop(Vec3p *vel) {
if (mGrabbed) {
mVel = *vel;
mGrabbed = false;
return true;
}
return false;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 52 KiB

+13 -11
View File
@@ -3,10 +3,10 @@
#include "global.h"
#include "types.h"
#include "nds/math.h"
#include <nds/math.h>
#include "Actor/ActorRef.hpp"
#include "Actor/ActorType.hpp"
#include "Actor/ActorTypeId.hpp"
#include "Actor/FilterActorBase.hpp"
#include "Physics/Cylinder.hpp"
#include "Physics/Transform.hpp"
@@ -60,8 +60,7 @@ struct Actor_UnkStruct_0a4 {
/* 01 */ bool mUnk_01;
/* 02 */ bool mUnk_02;
/* 03 */ bool mUnk_03;
/* 04 */ Vec3p mUnk_04;
/* 10 */ s32 mUnk_10;
/* 04 */ Cylinder mUnk_04;
/* 14 */
Actor_UnkStruct_0a4(q20 x, q20 y, q20 z, s32 unk_10);
@@ -126,20 +125,23 @@ public:
/* 08c */ Cylinder mUnk_08c;
/* 09c */ Actor_UnkStruct_09c mUnk_09c;
/* 0a4 */ Actor_UnkStruct_0a4 mUnk_0a4;
/* 0b8 */ unk8 mUnk_0b8[0x24];
/* 0b8 */ Vec3p mUnk_0b8; // same as position for some actors
/* 0c4 */ unk8 mUnk_0c4[0x18];
/* 0dc */ u16 mUnk_0dc;
/* 0de */ u16 mUnk_0de;
/* 0e0 */ u16 mUnk_0e0;
/* 0e2 */ u16 mUnk_0e2;
/* 0e4 */ unk16 mUnk_0e4;
/* 0e6 */ unk8 mUnk_0e6[0x20];
/* 0e6 */ unk8 mUnk_0e6[0x1a];
/* 100 */ void *mUnk_100;
/* 104 */ unk16 mUnk_104;
/* 106 */ unk8 mUnk_106;
/* 107 */ unk8 mUnk_107;
/* 108 */ unk8 mUnk_108;
/* 109 */ unk8 mUnk_109;
/* 10a */ unk8 mUnk_10a[0x6];
/* 110 */ bool mUnk_110;
/* 111 */ bool mUnk_111;
/* 110 */ bool mTouchingWall;
/* 111 */ bool mTouchingFloor;
/* 112 */ bool mUnk_112;
/* 113 */ bool mUnk_113;
/* 114 */ unk8 mUnk_114;
@@ -149,7 +151,7 @@ public:
/* 118 */ bool mAlive;
/* 119 */ u8 mUnk_119;
/* 11a */ bool mVisible;
/* 11b */ bool mUnk_11b;
/* 11b */ bool mGrabbed;
/* 11c */ unk8 mUnk_11c;
/* 11d */ bool mUnk_11d;
/* 11e */ q4 mYOffset;
@@ -194,8 +196,8 @@ public:
/* 4c */ virtual bool vfunc_4c(unk32 *param1);
/* 50 */ virtual Vec3p *GetPos();
/* 54 */ virtual void vfunc_54();
/* 58 */ virtual bool SetUnk_11b();
/* 5c */ virtual bool SetVelocity(Vec3p *vel);
/* 58 */ virtual bool Grab();
/* 5c */ virtual bool Drop(Vec3p *vel);
/* 60 */ virtual bool vfunc_60();
/* 64 */ virtual void vfunc_64();
/* 68 */ virtual void vfunc_68();
+2 -92
View File
@@ -3,97 +3,8 @@
#include "global.h"
#include "types.h"
typedef u32 ActorTypeId;
enum ActorTypeId_ {
ActorTypeId_Null = 'NULL',
ActorTypeId_Navi = 'NAVI',
ActorTypeId_ForceNavi = 'FCNV',
ActorTypeId_WisdomNavi = 'WSNV',
ActorTypeId_TreasureMap = 'TMAP',
ActorTypeId_DigSpot = 'DGTG',
ActorTypeId_ShopItemBombchus = 'ITBT',
ActorTypeId_ShopItemBombs = 'ITBM',
ActorTypeId_ShopItemTreasure = 'ITTR',
ActorTypeId_ShopItemHeartContainer = 'ITHU',
ActorTypeId_ShopItemQuiver = 'ITAP',
ActorTypeId_ShopItemBombBag = 'ITBB',
ActorTypeId_ShopItemRedPotion = 'ITPB',
ActorTypeId_ShopItemCourageGem = 'ITSR',
ActorTypeId_ShopItemShield = 'ITSL',
ActorTypeId_ShopItemSoldOut = 'ITSO',
ActorTypeId_RefillArrows = 'FLAL',
ActorTypeId_RefillBombs = 'FLBM',
ActorTypeId_RefillBombchus = 'FLBT',
ActorTypeId_RefillTime = 'FLTM',
ActorTypeId_Heart = 'HART',
ActorTypeId_LSTM = 'LSTM',
ActorTypeId_Rupee = 'RUPY',
ActorTypeId_Arrow = 'ARRW',
ActorTypeId_Blast = 'BLST',
ActorTypeId_Bomb = 'BOMB',
ActorTypeId_Bombchu = 'BMTY',
ActorTypeId_GrapplingHook = 'ROPE',
ActorTypeId_PlayerDummy = 'PLDM',
ActorTypeId_PushBlock = 'PSBL',
ActorTypeId_WindBlock = 'WBLK',
ActorTypeId_StorageDrum = 'DRUM',
ActorTypeId_SmallKey = 'NKEY',
ActorTypeId_SwitchObject = 'SWOB',
ActorTypeId_EventIcon = 'EVIC',
ActorTypeId_ActionObject = 'ACOB',
ActorTypeId_Sandworm = 'MLDW',
ActorTypeId_Tektite = 'TEKT',
ActorTypeId_PolsVoice = 'PLSV',
ActorTypeId_Yook = 'YETI',
ActorTypeId_Armos = 'AMOS',
ActorTypeId_Stalfos = 'STLF',
ActorTypeId_StalfosWarrior = 'STLW',
ActorTypeId_ChuChu = 'CHUC',
ActorTypeId_Gel = 'GELL',
ActorTypeId_Bee = 'BEE0',
ActorTypeId_BeeHive = 'BEEH',
ActorTypeId_Cucco = 'KOKO',
ActorTypeId_Rope = 'SNAK',
ActorTypeId_Octorok = 'OCTA',
ActorTypeId_Keese = 'KETH',
ActorTypeId_Rat = 'RAT0',
ActorTypeId_Beamos = 'BMOS',
ActorTypeId_LikeLike = 'LKLK',
ActorTypeId_Crow = 'CROW',
ActorTypeId_Linebeck = 'LNBK',
ActorTypeId_Mailbox = 'POST',
ActorTypeId_Postman = 'PSTM',
ActorTypeId_BIGR = 'BIGR',
ActorTypeId_BKEY = 'BKEY',
ActorTypeId_BMRN = 'BMRN',
ActorTypeId_BMTY = 'BMTY',
ActorTypeId_BTRF = 'BTRF',
ActorTypeId_CBLS = 'CBLS',
ActorTypeId_EVIC = 'EVIC',
ActorTypeId_FLAL = 'FLAL',
ActorTypeId_FLBM = 'FLBM',
ActorTypeId_FLBT = 'FLBT',
ActorTypeId_FLTB = 'FLTB',
ActorTypeId_FLTM = 'FLTM',
ActorTypeId_FORC = 'FORC',
ActorTypeId_PWBS = 'PWBS',
ActorTypeId_SBEM = 'SBEM',
ActorTypeId_STNE = 'STNE',
ActorTypeId_TARU = 'TARU',
ActorTypeId_TSBH = 'TSBH',
ActorTypeId_TSUB = 'TSUB',
ActorTypeId_VLR0 = 'VLR0',
};
#include "Actor/Actor.hpp"
#include "Actor/ActorTypeId.hpp"
class ActorType_UnkClass {
public:
@@ -106,7 +17,6 @@ public:
mUnk_4(unk_04) {}
};
class Actor;
typedef Actor *(*ActorCreateFunc)();
struct ActorType {
+96
View File
@@ -0,0 +1,96 @@
#pragma once
#include "global.h"
#include "types.h"
typedef u32 ActorTypeId;
enum ActorTypeId_ {
ActorTypeId_Null = 'NULL',
ActorTypeId_Navi = 'NAVI',
ActorTypeId_ForceNavi = 'FCNV',
ActorTypeId_WisdomNavi = 'WSNV',
ActorTypeId_TreasureMap = 'TMAP',
ActorTypeId_DigSpot = 'DGTG',
ActorTypeId_ShopItemBombchus = 'ITBT',
ActorTypeId_ShopItemBombs = 'ITBM',
ActorTypeId_ShopItemTreasure = 'ITTR',
ActorTypeId_ShopItemHeartContainer = 'ITHU',
ActorTypeId_ShopItemQuiver = 'ITAP',
ActorTypeId_ShopItemBombBag = 'ITBB',
ActorTypeId_ShopItemRedPotion = 'ITPB',
ActorTypeId_ShopItemCourageGem = 'ITSR',
ActorTypeId_ShopItemShield = 'ITSL',
ActorTypeId_ShopItemSoldOut = 'ITSO',
ActorTypeId_RefillArrows = 'FLAL',
ActorTypeId_RefillBombs = 'FLBM',
ActorTypeId_RefillBombchus = 'FLBT',
ActorTypeId_RefillTime = 'FLTM',
ActorTypeId_Heart = 'HART',
ActorTypeId_LSTM = 'LSTM',
ActorTypeId_Rupee = 'RUPY',
ActorTypeId_Arrow = 'ARRW',
ActorTypeId_Blast = 'BLST',
ActorTypeId_Bomb = 'BOMB',
ActorTypeId_Bombchu = 'BMTY',
ActorTypeId_GrapplingHook = 'ROPE',
ActorTypeId_PlayerDummy = 'PLDM',
ActorTypeId_PushBlock = 'PSBL',
ActorTypeId_WindBlock = 'WBLK',
ActorTypeId_StorageDrum = 'DRUM',
ActorTypeId_SmallKey = 'NKEY',
ActorTypeId_SwitchObject = 'SWOB',
ActorTypeId_EventIcon = 'EVIC',
ActorTypeId_ActionObject = 'ACOB',
ActorTypeId_Sandworm = 'MLDW',
ActorTypeId_Tektite = 'TEKT',
ActorTypeId_PolsVoice = 'PLSV',
ActorTypeId_Yook = 'YETI',
ActorTypeId_Armos = 'AMOS',
ActorTypeId_Stalfos = 'STLF',
ActorTypeId_StalfosWarrior = 'STLW',
ActorTypeId_ChuChu = 'CHUC',
ActorTypeId_Gel = 'GELL',
ActorTypeId_Bee = 'BEE0',
ActorTypeId_BeeHive = 'BEEH',
ActorTypeId_Cucco = 'KOKO',
ActorTypeId_Rope = 'SNAK',
ActorTypeId_Octorok = 'OCTA',
ActorTypeId_Keese = 'KETH',
ActorTypeId_Rat = 'RAT0',
ActorTypeId_Beamos = 'BMOS',
ActorTypeId_LikeLike = 'LKLK',
ActorTypeId_Crow = 'CROW',
ActorTypeId_Linebeck = 'LNBK',
ActorTypeId_Mailbox = 'POST',
ActorTypeId_Postman = 'PSTM',
ActorTypeId_BIGR = 'BIGR',
ActorTypeId_BKEY = 'BKEY',
ActorTypeId_BMRN = 'BMRN',
ActorTypeId_BMTY = 'BMTY',
ActorTypeId_BTRF = 'BTRF',
ActorTypeId_CBLS = 'CBLS',
ActorTypeId_EVIC = 'EVIC',
ActorTypeId_FLAL = 'FLAL',
ActorTypeId_FLBM = 'FLBM',
ActorTypeId_FLBT = 'FLBT',
ActorTypeId_FLTB = 'FLTB',
ActorTypeId_FLTM = 'FLTM',
ActorTypeId_FORC = 'FORC',
ActorTypeId_PWBS = 'PWBS',
ActorTypeId_SBEM = 'SBEM',
ActorTypeId_STNE = 'STNE',
ActorTypeId_TARU = 'TARU',
ActorTypeId_TSBH = 'TSBH',
ActorTypeId_TSUB = 'TSUB',
ActorTypeId_VLR0 = 'VLR0',
};
@@ -1,6 +1,7 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
class ActorActionObject : public Actor {
public:
+1
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Actor/ActorType.hpp"
#include "Actor/Navi/ActorNaviBase.hpp"
class ActorForceNavi : public ActorNaviBase {
+32 -14
View File
@@ -1,6 +1,8 @@
#pragma once
#include "Actor/ActorType.hpp"
#include "Actor/Navi/ActorNaviBase.hpp"
#include "Unknown/UnkStruct_02057200.hpp"
#include "Unknown/UnkStruct_ov000_020beba8.hpp"
#include "Unknown/UnkStruct_ov000_020c0c08.hpp"
@@ -10,34 +12,50 @@ public:
/* c */
/* 00 */ virtual ~UnkStruct_ov000_020b8110() override;
/* 08 */ virtual void vfunc_08(unk16 *param1) override;
/* 08 */ virtual bool vfunc_08(UnkStruct_ov000_020beba8_08 *param1) override;
/* 14 */ virtual bool vfunc_14(u16 *param1) override;
/* 18 */ virtual void vfunc_18(s32 *param1) override;
/* 18 */ virtual bool vfunc_18(s32 *param1) override;
/* 1c */
UnkStruct_ov000_020b8110();
};
class ActorNavi_Unk_334 {
public:
/* 00 */ Vec3p mUnk_00;
/* 0c */
inline ActorNavi_Unk_334() {
mUnk_00.x = 0;
mUnk_00.y = 0;
mUnk_00.z = 0;
}
};
class ActorNavi : public ActorNaviBase {
public:
static ActorType gType;
/* 000 (base) */
/* 294 */ ModelRender mUnk_294;
/* 2f0 */ UnkStruct_ov000_020c0c08 mUnk_2f0;
/* 314 */ UnkStruct_ov000_020c0c08_04 mUnk_314;
/* 334 */ Vec3p mUnk_334;
/* 2f0 */ ActorNaviBase_Unk2 mUnk_2f0;
/* 334 */ ActorNavi_Unk_334 mUnk_334;
/* 340 */ unk16 mUnk_340;
/* 342 */ unk8 mUnk_342[0x2];
/* 344 */ u32 mUnk_344;
/* 342 (padding) */
/* 344 */ q20 mUnk_344;
/* 348 */ unk32 mUnk_348;
/* 34c */ unk8 mUnk_34c[0x38];
/* 34c */ ActorNaviBase_Unk1 mUnk_34c[4];
/* 35c */ unk8 mUnk_35c[0x28];
/* 384 */ Mat3p mUnk_384;
/* 3a8 */ unk8 mUnk_3a8[0xC];
/* 3b4 */ EquipHammer *mHammer;
/* 3b8 */ unk32 mUnk_3b8;
/* 3bc */ unk32 mUnk_3bc;
/* 3c0 */ u8 mUnk_3c0[0x8];
/* 3b8 */ UnkStruct_02057200 mUnk_3b8;
/* 3c0 */ u8 mUnk_3c0;
/* 3c1 */ u8 mUnk_3c1;
/* 3c2 */ u8 mUnk_3c2;
/* 3c2 */ u8 mUnk_3c3;
/* 3c4 */ u16 mUnk_3c4;
/* 3c6 */ u16 mUnk_3c6;
/* 3c8 */
/* 00 */ virtual ~ActorNavi() override;
@@ -47,8 +65,8 @@ public:
/* b4 */ virtual FairyId GetFairyId() override;
/* b8 */ virtual s32 vfunc_b8() override;
/* c0 */ virtual bool vfunc_c0(Vec3p *param1) override;
/* c4 */ virtual void vfunc_c4() override;
/* c8 */ virtual void vfunc_c8() override;
/* c4 */ virtual u16 vfunc_c4() override;
/* c8 */ virtual u16 vfunc_c8() override;
/* cc */ virtual bool vfunc_cc(unk32 *param1) override;
/* d0 */ virtual void vfunc_d0() override;
/* d4 */ virtual void vfunc_d4() override;
@@ -64,7 +82,7 @@ public:
bool func_ov059_0219933c(u32 param1);
void func_ov059_0219a0ac();
void func_ov059_0219aa08();
void func_ov059_0219aa08(bool param1);
void func_ov059_0219aba8(u32 param1);
bool func_ov059_0219af14();
bool func_ov059_0219afc4();
+48 -18
View File
@@ -6,6 +6,8 @@
#include "Actor/Actor.hpp"
#include "Player/EquipHammer.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/UnkStruct_ov000_020b7d74.hpp"
#include "Unknown/UnkStruct_ov000_020d18f4.hpp"
typedef s32 FairyId;
enum FairyId_ {
@@ -16,34 +18,62 @@ enum FairyId_ {
FairyId_COUNT = 3,
};
class ActorNaviBase_Unk1 {};
class ActorNaviBase_Unk1 : public UnkStruct_ov000_020b7d74 {
public:
ActorNaviBase_Unk1();
};
class ActorNaviBase_Unk2 : public UnkStruct_ov000_020c0c08 {
public:
/* 00 (base) */
/* 24 */ UnkStruct_ov000_020c0c08_04 mUnk_24;
/* 44 */
/* 00 */ virtual ~ActorNaviBase_Unk2() override;
/* 08 */
inline ActorNaviBase_Unk2(ItemModel *model) :
UnkStruct_ov000_020c0c08(&mUnk_24, model) {}
inline ActorNaviBase_Unk2(NsAnimation *param2, ItemModel *model) :
UnkStruct_ov000_020c0c08(&mUnk_24, model) {
this->func_ov000_020c0c44(param2);
}
};
class ActorNaviBase_Unk3 : public ModelRender {
public:
/* 00 */ virtual ~ActorNaviBase_Unk3() {}
/* 3c */ virtual void vfunc_3c() override;
/* 40 */
ActorNaviBase_Unk3(ItemModel *param1);
};
class ActorNaviBase : public Actor {
public:
/* 000 (base) */
/* 158 */ Vec3p mOffsetPos;
/* 164 */ unk32 mUnk_164;
/* 168 */ ModelRender mUnk_168;
/* 168 */ ActorNaviBase_Unk3 mUnk_168;
/* 1c4 */ unk8 mUnk_1c4[0xc];
/* 1d0 */ void *mUnk_1d0;
/* 1d4 */ unk8 mUnk_1d4[0x20];
/* 1f4 */ unk8 mUnk_1f4[0x20];
/* 1d0 */ ActorNaviBase_Unk2 mUnk_1d0;
/* 214 */ unk16 mUnk_214;
/* 216 */ unk8 mUnk_216[0xc];
/* 216 */ unk8 mUnk_216[0x2];
/* 218 */ ActorNaviBase_Unk1 mUnk_218[2];
/* 220 */ unk8 mUnk_220[0x2];
/* 222 */ unk16 mUnk_222;
/* 224 */ unk8 mUnk_224[0x28];
/* 24c */ unk32 mUnk_24c;
/* 250 */ unk32 mUnk_250;
/* 254 */ unk32 mUnk_254;
/* 258 */ unk32 mUnk_258;
/* 25c */ unk32 mUnk_25c;
/* 260 */ unk32 mUnk_260;
/* 264 */ unk8 mUnk_264[0x1c];
/* 224 */ UnkStruct_ov000_020d18f4 mUnk_224;
/* 280 */ unk32 mUnk_280;
/* 284 */ unk32 mUnk_284;
/* 288 */ unk8 mUnk_288[0x2];
/* 288 */ unk8 mUnk_288;
/* 288 */ unk8 mUnk_289;
/* 28a */ unk16 mUnk_28a;
/* 28c */ unk8 mUnk_28c[0x8];
/* 28c */ unk8 mUnk_28c;
/* 28d */ unk8 mUnk_28d;
/* 28e */ unk8 mUnk_28e;
/* 28e */ unk8 mUnk_28f;
/* 290 */ unk8 mUnk_290;
/* 291 */ unk8 mUnk_291;
/* 294 */
/* 00 */ virtual ~ActorNaviBase() override;
@@ -65,8 +95,8 @@ public:
/* b8 */ virtual s32 vfunc_b8();
/* bc */ virtual bool vfunc_bc(unk32 param1, unk8 param2, s32 param3);
/* c0 */ virtual bool vfunc_c0(Vec3p *param1);
/* c4 */ virtual void vfunc_c4();
/* c8 */ virtual void vfunc_c8();
/* c4 */ virtual u16 vfunc_c4();
/* c8 */ virtual u16 vfunc_c8();
/* cc */ virtual bool vfunc_cc(unk32 *param1);
/* d0 */ virtual void vfunc_d0();
/* d4 */ virtual void vfunc_d4();
+1
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Actor/ActorType.hpp"
#include "Actor/Navi/ActorNaviBase.hpp"
class ActorWisdomNavi : public ActorNaviBase {
+1 -1
View File
@@ -59,7 +59,7 @@ public:
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
/* 54 */ virtual void vfunc_54() override;
/* 5c */ virtual bool SetVelocity(Vec3p *vel) override;
/* 5c */ virtual bool Drop(Vec3p *vel) override;
/* b4 */
static ActorBomb *Create();
+3
View File
@@ -3,6 +3,8 @@
#include "global.h"
#include "types.h"
#include <nds/math.h>
class UnkStruct_027e0f6c_Unk_1 {
public:
/* 00 */ unk32 mUnk_00;
@@ -49,6 +51,7 @@ struct UnkStruct_027e0f6c {
/* 00 */ unk8 mUnk_00[0x20];
/* 20 */ UnkStruct_027e0f6c_20 *mUnk_20;
static void func_ov000_02093a1c(u32 *param_1, UnkStruct_027e0f6c *param_2, u16 param_3);
void func_ov004_02102770();
};
+1
View File
@@ -20,6 +20,7 @@ extern "C" {
#define MAX_HOURGLASS_SECONDS 1500 // 25 minutes
#define MAX_AMMO_UPGRADE 2
#define MAX_UNK_0BA 9
#define MAX_KEYS 8
typedef u32 ItemModelId;
enum ItemModelId_ {
-2
View File
@@ -9,8 +9,6 @@
#include "Physics/AABB.hpp"
#include "System/SysNew.hpp"
#define MAX_KEYS 8
typedef unk32 CourseType;
enum CourseType_ {
CourseType_Normal = 0,
+1 -1
View File
@@ -142,7 +142,7 @@ public:
/* 64 */ virtual unk32 vfunc_64();
/* 68 */ virtual unk32 vfunc_68(Vec3p *param_1, bool param_2);
/* 6c */ virtual unk8 vfunc_6c(Vec3p *param_2, unk32 *param_3, Vec3p *param_4);
/* 70 */ virtual unk32 vfunc_70(Vec3p *param_2);
/* 70 */ virtual u16 vfunc_70(Vec3p *param_2);
/* 74 */ virtual unk32 *vfunc_74(Vec3p *param_2);
/* 78 */ virtual unk32 *vfunc_78(TilePos *param_1);
/* 7c */ virtual s32 vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]);
+1 -1
View File
@@ -268,7 +268,7 @@ public:
s32 func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3, bool param_4);
unk32 func_ov00_02083f44(Vec3p *param_2, bool param_3);
unk8 MapData_vfunc_6c(Vec3p *param_2, unk32 *param_3, Vec3p *param_4);
unk32 MapData_vfunc_70(Vec3p *param_2);
u16 MapData_vfunc_70(Vec3p *param_2);
static void func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
void GetTileWorldBounds(TilePos *tile, AABB *tileBounds);
unk32 MapData_vfunc_54(TilePos *a);
-1
View File
@@ -119,7 +119,6 @@ extern "C" void func_020347b0(unk32, unk16, unk32 *, unk32 *, unk32, unk32);
extern THUMB unk32 func_0202ab48(void);
extern "C" void func_02034984(unk32, u8, unk32, unk32);
extern "C" void func_02034698(unk32, unk32, unk32 *, unk32 *);
extern struct TouchControl gTouchControl;
class UnkClass_027e0e28 {
public:
+5
View File
@@ -18,6 +18,11 @@ struct Cylinder {
this->size = size;
}
inline void MakeEmpty() {
pos = gVec3p_ZERO;
size = -1;
}
bool Overlaps(Cylinder *other);
bool func_ov000_0208f030(Vec3p *param1, Vec3p *param2, s32 param3);
};
+1
View File
@@ -53,5 +53,6 @@ public:
static bool func_0202b864(Vec3p *param1, s32 size, unk8 param3);
static bool func_0202b894(Vec3p *param1, s32 size, unk8 param3);
};
extern TouchControl gTouchControl;
extern "C" void Fill16(int value, unsigned short *dst, int size); // TODO: Replace with header file
+2 -2
View File
@@ -41,12 +41,12 @@ public:
/* 3c */ virtual void vfunc_3c();
/* 40 */
ModelRender(unk32 param1);
ModelRender(ItemModel *param1);
void *func_ov000_020a9624(s32 param1);
void func_ov000_020a98e8(unk32 param1);
void func_ov000_020a990c(unk32 param1);
void func_ov000_020a9938(unk32 param1);
void func_ov000_020a9960(unk32 param1);
void func_ov000_020a9960(void *param1);
void func_ov000_020a9998(unk32 param1, unk32 param2);
void func_ov000_020a99c0();
void func_ov000_020b413c(unk16 param1, Vec3p *param2);
+6 -4
View File
@@ -3,9 +3,11 @@
#include "global.h"
#include "types.h"
#include "Player/LinkStateInteract.hpp"
#include <nds/math.h>
#include "System/SysNew.hpp"
class LinkStateInteract;
class UnkStruct_020397f8;
typedef unk32 (*UnkStruct_02037750_Callback1)(unk32);
@@ -43,9 +45,9 @@ public:
class UnkStruct_020386d8_24 {
public:
/* 00 */ u8 mUnk_00;
/* 00 */ u8 mUnk_01;
/* 00 */ u8 mUnk_02;
/* 00 */ u8 mUnk_03;
/* 01 */ u8 mUnk_01;
/* 02 */ u8 mUnk_02;
/* 03 */ u8 mUnk_03;
/* 04 */
void func_020376c0(const Vec3p *param_2);
+10
View File
@@ -0,0 +1,10 @@
#pragma once
#include "global.h"
#include "types.h"
struct UnkStruct_02057200 {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
};
extern UnkStruct_02057200 data_02057200;
@@ -0,0 +1,14 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_ov000_020b7d74 {
public:
/* 0 */ unk32 mUnk_0;
/* 4 */
inline UnkStruct_ov000_020b7d74() :
mUnk_0(0) {}
~UnkStruct_ov000_020b7d74();
};
+2 -2
View File
@@ -24,8 +24,8 @@ public:
/* 08 */ virtual bool vfunc_08(UnkStruct_ov000_020beba8_08 *param1);
/* 0c */ virtual void vfunc_0c(unk16 *param1);
/* 10 */ virtual bool vfunc_10(s32 *param1);
/* 14 */ virtual bool vfunc_14(u16 *param1, s32 param2);
/* 18 */ virtual void vfunc_18(s32 *param1);
/* 14 */ virtual bool vfunc_14(u16 *param1);
/* 18 */ virtual bool vfunc_18(s32 *param1);
/* 1c */
UnkStruct_ov000_020beba8(unk32 param1);
@@ -3,6 +3,8 @@
#include "global.h"
#include "types.h"
#include <nds/ns.h>
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_0202e1a0.hpp"
@@ -0,0 +1,25 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
#include "Unknown/UnkStruct_02037750.hpp"
class UnkStruct_ov000_020d18f4 : public UnkStruct_02037750 {
public:
/* 00 (base) */
/* 20 */ ActorRef mUnk_20;
/* 28 */ unk8 mUnk_28[0x18];
/* 40 */ void *mUnk_40;
/* 44 */ unk32 mUnk_44;
/* 48 */ unk32 mUnk_48;
/* 4c */ unk32 mUnk_4c;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5c */
UnkStruct_ov000_020d18f4(unk32 param1);
~UnkStruct_ov000_020d18f4();
};
+70
View File
@@ -0,0 +1,70 @@
#ifndef _NDS_NS_H
#define _NDS_NS_H
#include "global.h"
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct NsFile {
/* 00 */ u32 magic;
/* 04 */ u16 bom;
/* 06 */ u16 version;
/* 08 */ u32 size;
/* 0c */ u16 headerSize;
/* 0e */ u16 numSections;
/* 10 */ u32 sectionOffsets[];
/* 10 + 4 * numSections */
} NsFile;
typedef struct NsName {
char name[16];
} NsName;
typedef struct NsInfoBlock {
/* 00 */ u8 dummy;
/* 01 */ u8 count;
/* 02 */ u16 size;
/* 04 */ u16 unknownOffset;
/* 06 */ u16 listOffset;
/* 08 */ u32 unknownNum;
/* 0c */ u32 unknown[]; // u32[count]
// u16 elementSize;
// u16 dataSectionSize;
// T data[count];
// NsName data[count];
} NsInfoBlock;
#define NS_INFO_BLOCK_ELEMENT_SIZE(section) *(u16 *) ((u32) (section) + (section)->listOffset)
#define NS_INFO_BLOCK_DATA_SECTION_SIZE(section) *(u16 *) ((u32) (section) + (section)->listOffset + 2)
#define NS_INFO_BLOCK_DATA(section, i) \
*(u16 *) ((u32) (section) + (section)->listOffset + 4 + i * NS_INFO_BLOCK_ELEMENT_SIZE(section))
#define NS_INFO_BLOCK_NAME(section, info, i) \
*(u16 *) ((u32) (section) + (section)->listOffset + 4 + (info)->count * NS_INFO_BLOCK_ELEMENT_SIZE(section) + \
i * sizeof(NsName))
typedef struct NsJntSection {
/* 00 */ u32 magic;
/* 04 */ u32 size;
/* 08 */ NsInfoBlock animations;
} NsJntSection;
typedef struct NsAnimation {
/* 00 */ u32 magic;
/* 04 */ u16 numFrames;
/* 06 */ u16 numTracks;
/* 08 */ u32 unknown;
/* 0c */ u32 pivotDataOffset;
/* 10 */ u32 basisMatricesOffset;
/* 14 */ u16 trackOffsets[]; // u16[numTracks]
} NsAnimation;
NsJntSection *FindJntSection(NsFile *file);
NsAnimation *GetJntAnimation(NsJntSection *section, u32 index);
#ifdef __cplusplus
}
#endif
#endif
+2
View File
@@ -1,6 +1,8 @@
#ifndef _NDS_OVERLAY_H
#define _NDS_OVERLAY_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
+15 -15
View File
@@ -70,8 +70,8 @@ ARM Actor::Actor() :
mUnk_107(0),
mUnk_108(0),
mUnk_109(0),
mUnk_110(0),
mUnk_111(0),
mTouchingWall(false),
mTouchingFloor(false),
mUnk_112(0),
mUnk_113(0),
mUnk_114(0),
@@ -79,7 +79,7 @@ ARM Actor::Actor() :
mAlive(true),
mUnk_119(1),
mVisible(true),
mUnk_11b(false),
mGrabbed(false),
mUnk_11c(0),
mUnk_11d(false),
mYOffset(0),
@@ -202,21 +202,21 @@ ARM void Actor::SetUnk_129(bool value) {
}
}
ARM bool Actor::SetUnk_11b() {
if (mUnk_11b) {
ARM bool Actor::Grab() {
if (mGrabbed) {
return false;
}
mUnk_11b = true;
mGrabbed = true;
return true;
}
ARM bool Actor::SetVelocity(Vec3p *vel) {
if (!mUnk_11b) {
return false;
ARM bool Actor::Drop(Vec3p *vel) {
if (mGrabbed) {
mVel = *vel;
mGrabbed = false;
return true;
}
mVel = *vel;
mUnk_11b = false;
return true;
return false;
}
ARM bool Actor::vfunc_60() {
@@ -263,7 +263,7 @@ ARM bool Actor::vfunc_98() {}
ARM bool Actor::vfunc_9c() {}
ARM bool Actor::func_ov00_020c195c() {
if (!mUnk_11b) {
if (!mGrabbed) {
return false;
}
gPlayerLink->func_ov000_020bc854(&mPos);
@@ -359,7 +359,7 @@ ARM bool Actor::IsNearLink() {
}
ARM void Actor::func_ov00_020c1cf8() {
if (mUnk_0a4.mUnk_00 || mUnk_0a4.mUnk_01 || mUnk_129 == true || mUnk_11d == true || mUnk_11b == true) {
if (mUnk_0a4.mUnk_00 || mUnk_0a4.mUnk_01 || mUnk_129 == true || mUnk_11d == true || mGrabbed == true) {
mInactive = 0;
} else {
if (this->IsNearLink()) {
@@ -648,7 +648,7 @@ ARM bool Actor::CollidesWith(Actor *other) {
}
ARM bool Actor::func_ov00_020c27a8(unk32 param1) {
if (mUnk_11b) {
if (mGrabbed) {
return false;
}
if (param1 == 0) {
@@ -19,15 +19,14 @@ ARM ActorActionObject::~ActorActionObject() {}
// non-matching
ARM bool ActorActionObject::Init() {
mGravity = 0;
mHitbox.pos = gVec3p_ZERO;
mHitbox.size = -1;
mUnk_08c.pos = mHitbox.pos;
mUnk_08c.size = mHitbox.size;
mUnk_0a4.mUnk_04 = gVec3p_ZERO;
mUnk_0a4.mUnk_10 = -1;
mVisible = false;
mUnk_130 = 0;
mGravity = 0;
mHitbox.pos = gVec3p_ZERO;
mHitbox.size = -1;
mUnk_08c.pos = mHitbox.pos;
mUnk_08c.size = mHitbox.size;
mUnk_0a4.mUnk_04.MakeEmpty();
mVisible = false;
mUnk_130 = 0;
return true;
}
+191 -24
View File
@@ -1,32 +1,199 @@
#include "Actor/Navi/ActorNavi.hpp"
#include "DTCM/UnkStruct_027e0f6c.hpp"
#include "Game/Game.hpp"
#include "Item/ItemManager.hpp"
#include "Player/EquipHammer.hpp"
static char *sShipParts[8] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"};
ActorType ActorNavi::gType = ActorType(ActorTypeId_Navi, (ActorCreateFunc) ActorNavi::Create, NULL);
UnkStruct_ov000_020b8110 data_ov000_020ee1cc;
ActorNavi *ActorNavi::Create() {}
UnkStruct_ov000_020b8110::UnkStruct_ov000_020b8110() :
extern u32 **data_027e0fe0[];
ARM ActorNavi *ActorNavi::Create() {
return new(*data_027e0fe0[0], 4) ActorNavi();
}
ARM UnkStruct_ov000_020b8110::UnkStruct_ov000_020b8110() :
UnkStruct_ov000_020beba8(7) {}
UnkStruct_ov000_020b8110::~UnkStruct_ov000_020b8110() {}
void UnkStruct_ov000_020b8110::vfunc_08(unk16 *param1) {}
void UnkStruct_ov000_020b8110::vfunc_18(s32 *param1) {}
bool UnkStruct_ov000_020b8110::vfunc_14(u16 *param1) {}
void ActorNavi::func_ov000_020b8200() {}
void ActorNavi::vfunc_c4() {}
void ActorNavi::vfunc_c8() {}
FairyId ActorNavi::GetFairyId() {}
s32 ActorNavi::vfunc_b8() {}
void ActorNavi::vfunc_d4() {}
void ActorNavi::vfunc_d0() {}
void ActorNavi::SetActive(unk32 active) {}
void ActorNavi::vfunc_e0() {}
void ActorNavi::vfunc_d8() {}
void ActorNavi::vfunc_20(bool param1) {}
bool ActorNavi::vfunc_cc(unk32 *param1) {}
bool ActorNavi::vfunc_c0(Vec3p *param1) {}
void ActorNavi::vfunc_e8() {}
bool ActorNavi::vfunc_8c() {}
void ActorNavi::vfunc_ec() {}
EquipHammer *GetEquipHammer() {}
void ActorNavi::func_ov000_020b853c() {}
ARM UnkStruct_ov000_020b8110::~UnkStruct_ov000_020b8110() {}
ARM bool UnkStruct_ov000_020b8110::vfunc_08(UnkStruct_ov000_020beba8_08 *param1) {
u32 temp_r0;
UnkStruct_027e0f6c::func_ov000_02093a1c(&temp_r0, data_027e0f6c, param1->mUnk_00);
if ((temp_r0 & 0x1f) == 0 && ((temp_r0 >> 7) & 0x3) == 2) {
return true;
}
return UnkStruct_ov000_020beba8::vfunc_08(param1);
}
ARM bool UnkStruct_ov000_020b8110::vfunc_18(s32 *param1) {
switch ((*(unk32(**)(s32 *))((*param1) + 0x1c))(param1)) {
case 0x10:
case 0x17:
return false;
}
return UnkStruct_ov000_020beba8::vfunc_18(param1);
}
ARM bool UnkStruct_ov000_020b8110::vfunc_14(u16 *param1) {
return UnkStruct_ov000_020beba8::vfunc_14(param1);
}
ARM void ActorNavi::func_ov000_020b8200() {
mUnk_09c.mUnk_4 = &data_ov000_020ee1cc;
}
ARM u16 ActorNavi::vfunc_c4() {
if ((gGame.mModeId != GameModeId_Battle) && (mUnk_3c1 == 0)) {
return ActorNaviBase::vfunc_c4();
}
return mUnk_3c4;
}
ARM u16 ActorNavi::vfunc_c8() {
if ((gGame.mModeId != GameModeId_Battle) && (mUnk_3c1 == 0)) {
return ActorNaviBase::vfunc_c8();
}
return mUnk_3c6;
}
ARM FairyId ActorNavi::GetFairyId() {
return FairyId_Courage;
}
ARM s32 ActorNavi::vfunc_b8() {
return 58;
}
ARM void ActorNavi::vfunc_d4() {
if (mHammer != NULL && this->func_ov059_0219af14()) {
return;
}
return ActorNaviBase::vfunc_d4();
}
ARM void ActorNavi::vfunc_d0() {
if (mHammer != NULL && this->func_ov059_0219afc4()) {
return;
}
ActorNaviBase::vfunc_d0();
}
extern void func_ov000_020b7e6c(s32 *param1);
ARM void ActorNavi::SetActive(unk32 active) {
s32 temp_r4;
s32 var_r5;
var_r5 = (s32) mUnk_34c;
temp_r4 = (s32) (mUnk_34c + 4);
if (var_r5 != temp_r4) {
do {
func_ov000_020b7e6c((s32 *) var_r5);
var_r5 += 4;
} while (var_r5 != temp_r4);
}
if (mHammer != NULL) {
this->func_ov059_0219aba8(active);
}
return ActorNaviBase::SetActive(active);
}
ARM void ActorNavi::vfunc_e0() {
void (*var_r1)();
s32 temp_r0;
void **temp_r0_2;
if (mUnk_3b8.mUnk_00 != NULL) {
if (mUnk_130 != 0) {
this->SetActive(1);
} else {
(*(void (**)())((*(unk32 *) ((s32) this + (mUnk_3b8.mUnk_04 >> 1))) + mUnk_3b8.mUnk_00))();
return;
}
}
if (mHammer != NULL) {
if (!mHammer->IsInUse()) {
this->func_ov000_020b853c();
} else {
if (mUnk_130 != 0) {
return;
}
this->SetActive(3);
return;
}
}
return ActorNaviBase::vfunc_e0();
}
ARM void ActorNavi::vfunc_d8() {
if (mHammer != NULL) {
this->func_ov059_0219a0ac();
return;
}
ActorNaviBase::vfunc_d8();
}
ARM void ActorNavi::vfunc_20(bool param1) {
ActorNaviBase::vfunc_20(param1);
u8 var_r0 = param1 ? mUnk_0a4.mUnk_01 : mUnk_0a4.mUnk_00;
if ((var_r0 != 0) && mHammer != NULL) {
this->func_ov059_0219aa08(param1);
}
}
ARM bool ActorNavi::vfunc_cc(unk32 *param1) {
if (mHammer != NULL || mUnk_3b8.mUnk_00 != 0) {
return false;
}
return ActorNaviBase::vfunc_cc(param1);
}
ARM bool ActorNavi::vfunc_c0(Vec3p *param1) {
if (mHammer != NULL || mUnk_3b8.mUnk_00 != 0) {
return false;
}
return ActorNaviBase::vfunc_c0(param1);
}
static unk32 data_ov000_020e6554 = 0x2000;
ARM void ActorNavi::vfunc_e8() {
ActorNaviBase::vfunc_e8();
if (mHammer == NULL) {
return;
}
mUnk_2f0.mUnk_0c.mUnk_04 = data_ov000_020e6554;
mUnk_2f0.func_ov000_020c0e04();
}
ARM bool ActorNavi::vfunc_8c() {
return true;
}
ARM void ActorNavi::vfunc_ec() {
if (mUnk_3b8.mUnk_00 != 0 || mHammer != NULL) {
return;
}
if (gGame.mModeId == GameModeId_Battle) {
return;
}
if (!GetEquipHammer()->IsInUse()) {
return;
}
this->func_ov059_0219b020();
}
ARM EquipHammer *GetEquipHammer() {
return (EquipHammer *) gItemManager->GetEquipItemUnchecked(ItemFlag_Hammer);
}
ARM void ActorNavi::func_ov000_020b853c() {
mHammer = NULL;
mUnk_3c0 = 0;
mUnk_348 = 0;
}
ActorNavi::~ActorNavi() {}
+2 -2
View File
@@ -1,7 +1,7 @@
#include "Actor/Navi/ActorNaviBase.hpp"
void ActorNaviBase::vfunc_c4() {}
void ActorNaviBase::vfunc_c8() {}
u16 ActorNaviBase::vfunc_c4() {}
u16 ActorNaviBase::vfunc_c8() {}
unk32 ActorNaviBase::vfunc_30() {}
s32 ActorNaviBase::vfunc_b8() {}
bool ActorNaviBase::vfunc_cc(unk32 *param1) {}
+1 -1
View File
@@ -28,7 +28,7 @@ unk8 MapBase::func_ov00_0207e940(unk8 *param_1) {}
unk8 MapBase::func_ov00_0207e968() {}
unk8 MapBase::func_ov00_0207e96c() {}
unk8 MapBase::vfunc_6c(Vec3p *param_2, unk32 *param_3, Vec3p *param_4) {}
unk32 MapBase::vfunc_70(Vec3p *param_2) {}
u16 MapBase::vfunc_70(Vec3p *param_2) {}
unk32 *MapBase::vfunc_74(Vec3p *param_2) {}
unk8 MapBase::func_ov00_0207f100() {}
bool MapBase::func_ov00_0207f104(unk32 param_2, unk32 param_3) {}
+6 -7
View File
@@ -44,7 +44,6 @@ extern s32 func_ov000_0208e6f0(Vec3p *param_1);
extern s32 func_ov000_0208e704(Vec3p *param_1);
extern s32 func_ov000_0208e87c(AABB *param_1, Vec3p *param_2, Vec3p *param_3);
extern void func_ov000_0208ed74(AABB *param_1, Vec3p *param_2);
extern void func_ov000_02093a1c(u32 *param_1, unk32 *param_2, unk32 param_3);
extern void func_ov000_02096324(unk32 *param_1, unk32 *param_2);
extern s32 *func_ov000_02096418(s32 *param_1);
extern void func_ov015_021849a4(unk32 *param_1);
@@ -1268,13 +1267,13 @@ unk8 MapManager::MapData_vfunc_6c(Vec3p *param_2, unk32 *param_3, Vec3p *param_4
this->mMap->vfunc_6c(param_2, param_3, param_4);
}
ARM unk32 MapManager::MapData_vfunc_70(Vec3p *param_2) {
ARM u16 MapManager::MapData_vfunc_70(Vec3p *param_2) {
return this->mMap->vfunc_70(param_2);
}
ARM void MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3) {
unk32 *iVar1; // find type with field that exists at offset 0xc
s32 dVar2;
u16 dVar2;
iVar1 = (unk32 *) param_2->mMap->vfunc_74(param_3);
if (iVar1 != NULL) {
@@ -1284,7 +1283,7 @@ ARM void MapManager::func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p
dVar2 = param_2->MapData_vfunc_70(param_3);
if (dVar2 != 0xffff) {
func_ov000_02093a1c(param_1, (unk32 *) data_027e0f6c, dVar2);
UnkStruct_027e0f6c::func_ov000_02093a1c(param_1, data_027e0f6c, dVar2);
return;
}
@@ -2086,7 +2085,7 @@ unk32 MapManager::func_ov00_02084ebc(Vec3p *param_2) {
}
// dVar3 = this->MapData_vfunc_70(); // Missing param.
if (dVar3 != 0xffff) {
func_ov000_02093a1c(&uStack_14, (unk32 *) data_027e0f6c, dVar3);
UnkStruct_027e0f6c::func_ov000_02093a1c(&uStack_14, data_027e0f6c, dVar3);
if ((uStack_14 >> 5 & 3) != 1) {
return 0;
}
@@ -2274,7 +2273,7 @@ s32 MapManager::func_ov00_020853fc(MapManager *param_1, Vec3p *param_2, s32 *par
ARM unk32 MapManager::func_ov00_02085594(Vec3p *param_2) {
UnkStruct_02085594 *piVar1;
unk32 dVar3;
u16 dVar3;
unk32 uVar4;
bool bVar5;
u32 uStack_24;
@@ -2337,7 +2336,7 @@ ARM unk32 MapManager::func_ov00_02085594(Vec3p *param_2) {
if (dVar3 == 0xffff) {
return 0;
}
func_ov000_02093a1c(&uStack_24, (unk32 *) data_027e0f6c, dVar3);
UnkStruct_027e0f6c::func_ov000_02093a1c(&uStack_24, data_027e0f6c, dVar3);
if ((uStack_24 >> 5 & 3) == 1) {
return bVar5 ? 1 : 2;
}
+2 -2
View File
@@ -1,6 +1,6 @@
#include "Render/ModelRender.hpp"
ModelRender::ModelRender(unk32 param1) {}
ModelRender::ModelRender(ItemModel *param1) {}
ModelRender::~ModelRender() {}
void *ModelRender::GetLcdcAddress() {}
void ModelRender::vfunc_0c(ItemModel *model) {}
@@ -18,7 +18,7 @@ void ModelRender::vfunc_30() {}
void ModelRender::func_ov000_020a98e8(unk32 param1) {}
void ModelRender::func_ov000_020a990c(unk32 param1) {}
void ModelRender::func_ov000_020a9938(unk32 param1) {}
void ModelRender::func_ov000_020a9960(unk32 param1) {}
void ModelRender::func_ov000_020a9960(void *param1) {}
void ModelRender::vfunc_38() {}
void ModelRender::vfunc_3c() {}
void ModelRender::func_ov000_020a9998(unk32 param1, unk32 param2) {}
@@ -4,6 +4,6 @@ UnkStruct_ov000_020beba8::UnkStruct_ov000_020beba8(unk32 param1) {}
bool UnkStruct_ov000_020beba8::vfunc_08(UnkStruct_ov000_020beba8_08 *param1) {}
void UnkStruct_ov000_020beba8::vfunc_0c(unk16 *param1) {}
bool UnkStruct_ov000_020beba8::vfunc_10(s32 *param1) {}
void UnkStruct_ov000_020beba8::vfunc_18(s32 *param1) {}
bool UnkStruct_ov000_020beba8::vfunc_14(u16 *param1, s32 param2) {}
bool UnkStruct_ov000_020beba8::vfunc_18(s32 *param1) {}
bool UnkStruct_ov000_020beba8::vfunc_14(u16 *param1) {}
UnkStruct_ov000_020beba8::~UnkStruct_ov000_020beba8() {}
-6
View File
@@ -1,6 +0,0 @@
#include "Actor/Navi/ActorNavi.hpp"
#include "Item/ItemManager.hpp"
ActorNavi::ActorNavi() :
mUnk_294(0),
mUnk_2f0(&mUnk_314, gItemManager->GetItemModel(ItemModelId_Hammer)) {}
-7
View File
@@ -1,7 +0,0 @@
#include "Actor/Navi/ActorNaviBase.hpp"
ActorNaviBase::ActorNaviBase() :
mUnk_168(0) {}
ActorNaviBase::~ActorNaviBase() {}
void func_ov004_021079d4(unk32 *param1) {}
bool ActorNaviBase::Init() {}
+81
View File
@@ -0,0 +1,81 @@
#include "Actor/Navi/ActorNavi.hpp"
#include "Item/ItemManager.hpp"
extern ItemModel *data_ov000_020ee1f8;
extern NsFile *data_ov000_020e67ac;
THUMB ActorNaviBase::ActorNaviBase() :
mUnk_164(0),
mUnk_168(data_ov000_020ee1f8),
mUnk_1d0(GetJntAnimation(FindJntSection(data_ov000_020e67ac), 0), data_ov000_020ee1f8),
mUnk_214(0),
mUnk_222(-1),
mUnk_224(0x1000000),
mUnk_280(-1),
mUnk_284(-1),
mUnk_288(0),
mUnk_289(0),
mUnk_28a(0),
mUnk_28c(0),
mUnk_28d(0),
mUnk_290(0),
mUnk_291(0) {
mOffsetPos = mPos;
mUnk_130 = 0;
mYOffset = FLOAT_TO_Q20(0.2);
}
THUMB ActorNaviBase::~ActorNaviBase() {}
THUMB ActorNaviBase_Unk1::ActorNaviBase_Unk1() {}
THUMB bool ActorNaviBase::Init() {
mGravity = 0;
mHitbox.MakeEmpty();
mUnk_08c.pos.x = 0;
mUnk_08c.pos.y = 0;
mUnk_08c.pos.z = 0;
mUnk_08c.size = FLOAT_TO_Q20(0.4);
mUnk_0a4.mUnk_04.MakeEmpty();
if (data_027e0d38->func_ov000_02078b40() == 2) {
return true;
}
this->func_ov000_020b9770(0);
mUnk_224.mUnk_20.id = mRef.id;
mUnk_224.mUnk_20.index = mRef.index;
mUnk_28e = 0;
mUnk_28f = 0;
return true;
}
ActorNaviBase_Unk3::ActorNaviBase_Unk3(ItemModel *param1) :
ModelRender(param1) {
this->func_ov000_020a9998(6, 3);
}
THUMB ActorNavi::ActorNavi() :
mUnk_294(gItemManager->GetItemModel(ItemModelId_Hammer)),
mUnk_2f0(gItemManager->GetItemModel(ItemModelId_Hammer)),
mUnk_340(0),
mUnk_344(FLOAT_TO_Q20(1.0)),
mUnk_348(0),
mHammer(NULL),
mUnk_3b8(data_02057200),
mUnk_3c0(0),
mUnk_3c1(0),
mUnk_3c2(0) {}
extern const ItemManager_Unk1 data_ov000_020dc7d0;
THUMB bool ActorNavi::Init() {
mUnk_2f0.func_ov000_020c0c44(gItemManager->func_ov00_020ad538(&data_ov000_020dc7d0));
mUnk_2f0.func_ov000_020c0e5c(0);
mUnk_294.func_ov000_020a9960(&mUnk_35c);
mUnk_294.vfunc_24(&mUnk_2f0);
mUnk_3c4 = ActorNaviBase::vfunc_c4();
mUnk_3c6 = ActorNaviBase::vfunc_c8();
mUnk_09c.mUnk_0 = 0xff;
mUnk_09c.mUnk_0 = (s16) (mUnk_09c.mUnk_0 & ~2);
mUnk_09c.mUnk_0 = (s16) (mUnk_09c.mUnk_0 & ~0x80);
this->func_ov000_020b8200();
return ActorNaviBase::Init();
}
+19 -19
View File
@@ -33,24 +33,24 @@ ActorRupee::ActorRupee() {
}
bool ActorRupee::Init() {
RupeeId rupeeId = (RupeeId) mUnk_020.mUnk_00[0];
mRupeeId = rupeeId;
s32 iVar1 = (func_ov14_0213b70c(rupeeId) ? data_ov014_021589f4.mUnk_4 : 0xaa8) >> 1;
mHitbox.pos.x = 0;
mHitbox.pos.y = iVar1;
mHitbox.pos.z = 0;
mHitbox.size = iVar1;
mUnk_08c.pos.x = mHitbox.pos.x;
mUnk_08c.pos.y = mHitbox.pos.y;
mUnk_08c.pos.z = mHitbox.pos.z;
mUnk_08c.size = mHitbox.size;
mUnk_0a4.mUnk_04.x = 0;
mUnk_0a4.mUnk_04.y = iVar1;
mUnk_0a4.mUnk_04.z = 0;
mUnk_0a4.mUnk_10 = iVar1 + 0x1000;
mUnk_09c.mUnk_0 = mUnk_09c.mUnk_0 & ~0xb0;
mUnk_09c.mUnk_3 = 1;
mMaxFall = mUnk_08c.size + -1;
RupeeId rupeeId = (RupeeId) mUnk_020.mUnk_00[0];
mRupeeId = rupeeId;
s32 iVar1 = (func_ov14_0213b70c(rupeeId) ? data_ov014_021589f4.mUnk_4 : 0xaa8) >> 1;
mHitbox.pos.x = 0;
mHitbox.pos.y = iVar1;
mHitbox.pos.z = 0;
mHitbox.size = iVar1;
mUnk_08c.pos.x = mHitbox.pos.x;
mUnk_08c.pos.y = mHitbox.pos.y;
mUnk_08c.pos.z = mHitbox.pos.z;
mUnk_08c.size = mHitbox.size;
mUnk_0a4.mUnk_04.pos.x = 0;
mUnk_0a4.mUnk_04.pos.y = iVar1;
mUnk_0a4.mUnk_04.pos.z = 0;
mUnk_0a4.mUnk_04.size = iVar1 + 0x1000;
mUnk_09c.mUnk_0 = mUnk_09c.mUnk_0 & ~0xb0;
mUnk_09c.mUnk_3 = 1;
mMaxFall = mUnk_08c.size + -1;
if (mUnk_03c >= 0) {
this->func_ov14_0213b204(1);
} else {
@@ -215,7 +215,7 @@ void ActorRupee::Update(bool param1) {
switch (mUnk_130) {
case 0:
Move();
if (mUnk_111) {
if (mTouchingFloor) {
local_1c = mPos;
MapManager::func_ov00_02083fb0(&local_20, gMapManager, &local_1c);
if (((local_20 >> 5) & 3) == 2) {
+1 -1
View File
@@ -16,7 +16,7 @@ void ActorBomb::vfunc_18(u32 param1) {}
bool ActorBomb::func_ov014_02122bb8(s32 param1) {}
void ActorBomb::vfunc_54() {}
void ActorBomb::vfunc_20(bool param1) {}
bool ActorBomb::SetVelocity(Vec3p *vel) {}
bool ActorBomb::Drop(Vec3p *vel) {}
bool ActorBomb::func_ov014_02122e48(unk32 *param1) {}
bool ActorBomb::func_ov014_02122e7c() {}
bool ActorBomb::func_ov014_02122e98() {}
+14 -14
View File
@@ -57,18 +57,18 @@ ARM bool ActorRefill::Init() {
return false;
}
}
mHitbox.pos.x = 0;
mHitbox.pos.y = FLOAT_TO_Q20(0.3);
mHitbox.pos.z = 0;
mHitbox.size = FLOAT_TO_Q20(0.3);
mUnk_08c.pos.x = mHitbox.pos.x;
mUnk_08c.pos.y = mHitbox.pos.y;
mUnk_08c.pos.z = mHitbox.pos.z;
mUnk_08c.size = mHitbox.size;
mUnk_0a4.mUnk_04.x = 0;
mUnk_0a4.mUnk_04.y = FLOAT_TO_Q20(0.3);
mUnk_0a4.mUnk_04.z = 0;
mUnk_0a4.mUnk_10 = FLOAT_TO_Q20(1.3);
mHitbox.pos.x = 0;
mHitbox.pos.y = FLOAT_TO_Q20(0.3);
mHitbox.pos.z = 0;
mHitbox.size = FLOAT_TO_Q20(0.3);
mUnk_08c.pos.x = mHitbox.pos.x;
mUnk_08c.pos.y = mHitbox.pos.y;
mUnk_08c.pos.z = mHitbox.pos.z;
mUnk_08c.size = mHitbox.size;
mUnk_0a4.mUnk_04.pos.x = 0;
mUnk_0a4.mUnk_04.pos.y = FLOAT_TO_Q20(0.3);
mUnk_0a4.mUnk_04.pos.z = 0;
mUnk_0a4.mUnk_04.size = FLOAT_TO_Q20(1.3);
mUnk_09c.mUnk_0 &= ~0xa4;
mUnk_09c.mUnk_3 = 1;
mMaxFall = mUnk_08c.size + -1;
@@ -94,11 +94,11 @@ ARM void ActorRefill::vfunc_14(u32 param1) {
temp_r0_2 = &mPos;
Vec3p_Add(temp_r0_2, &mVel, temp_r0_2);
this->func_01fffd04(0);
if (mUnk_110 || mUnk_112 || mUnk_113) {
if (mTouchingWall || mUnk_112 || mUnk_113) {
mVel.x = 0;
mVel.z = 0;
}
if (mUnk_111) {
if (mTouchingFloor) {
this->func_ov014_02135364(1);
} else if (this->func_ov00_020c2c0c()) {
this->func_ov014_02135364(4);
+1 -1
View File
@@ -70,7 +70,7 @@ ARM bool EquipBombchu_Unk_02198d00::vfunc_14(u16 *param1, s32 param2) {
ARM bool EquipBombchu_Unk_02198d00::vfunc_10(s32 *param1) {
Actor *temp_r0 = (Actor *) param1;
if (!temp_r0->SetUnk_11b()) {
if (!temp_r0->Grab()) {
return false;
}
bool result;
+14 -14
View File
@@ -18,7 +18,7 @@ ARM bool ActorNavi::func_ov059_0219933c(u32 param1) {}
ARM void ActorNavi::func_ov059_0219a0ac() {}
// non-matching
ARM void ActorNavi::func_ov059_0219aa08() {
ARM void ActorNavi::func_ov059_0219aa08(bool param1) {
int iVar1;
s64 lVar2;
u16 uVar3;
@@ -28,7 +28,7 @@ ARM void ActorNavi::func_ov059_0219aa08() {
Mat3p MStack_48;
Vec3p VStack_24;
if (this->mUnk_3c0[0] != 0) {
if (this->mUnk_3c0 != 0) {
VStack_24.x = this->mPos.x;
VStack_24.y = this->mPos.y + 0x333; // FLOAT_TO_Q20(0.2)?
VStack_24.z = this->mPos.z;
@@ -42,17 +42,17 @@ ARM void ActorNavi::func_ov059_0219aa08() {
lVar2 = 0x666 * this->mUnk_344;
uVar4 = lVar2;
this->mUnk_334.x =
this->mUnk_334.mUnk_00.x =
ROUND_Q20(uVar4) | ((this->mUnk_344 >> 0x1F) * 0x666 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000;
Mat3p_MultiplyVec(&this->mUnk_334, &this->mUnk_384, &this->mUnk_334);
Vec3p_RotateY(uVar3, &this->mUnk_334);
Vec3p_Add(&this->mUnk_334, &VStack_24, &this->mUnk_334);
VStack_60.z = this->mUnk_334.z;
VStack_60.x = this->mUnk_334.x;
Mat3p_MultiplyVec(&this->mUnk_334.mUnk_00, &this->mUnk_384, &this->mUnk_334.mUnk_00);
Vec3p_RotateY(uVar3, &this->mUnk_334.mUnk_00);
Vec3p_Add(&this->mUnk_334.mUnk_00, &VStack_24, &this->mUnk_334.mUnk_00);
VStack_60.z = this->mUnk_334.mUnk_00.z;
VStack_60.x = this->mUnk_334.mUnk_00.x;
lVar2 = 0x333 * this->mUnk_344;
uVar4 = lVar2;
VStack_60.y = this->mUnk_334.y + 0x800;
VStack_60.y = this->mUnk_334.mUnk_00.y + 0x800;
uVar4 = ROUND_Q20(uVar4) | ((this->mUnk_344 >> 0x1F) * 0x333 + (lVar2 >> 0x20) + (~0x800 < uVar4)) * 0x100000;
func_ov005_02102c2c(&data_ov000_020e9370[0], 0, &VStack_60, uVar4, uVar4, 0, 0x10, 0, 0, 0);
}
@@ -160,7 +160,7 @@ ARM void ActorNavi::func_ov059_0219aba8(u32 param1) {
ARM bool ActorNavi::func_ov059_0219af14() {
int iVar1;
if (this->mUnk_3c0[2] != 0) {
if (this->mUnk_3c2 != 0) {
return false;
}
@@ -193,7 +193,7 @@ ARM bool ActorNavi::func_ov059_0219af14() {
}
ARM bool ActorNavi::func_ov059_0219afc4() {
this->mUnk_3c0[2] = 0;
this->mUnk_3c2 = 0;
this->func_ov059_0219933c(0);
switch (this->mUnk_130) {
@@ -220,8 +220,8 @@ ARM void ActorNavi::func_ov059_0219b020() {
gPlayerControl->mAimWorld = this->mOffsetPos;
this->mHammer = GetEquipHammer();
this->mUnk_3c0[0] = 0x0;
this->mUnk_3c0[2] = 0x0;
this->mHammer = GetEquipHammer();
this->mUnk_3c0 = 0x0;
this->mUnk_3c2 = 0x0;
this->SetActive(3);
}
+2 -2
View File
@@ -25,7 +25,7 @@ ARM bool EquipHammer::IsUsable(unk32 param1) const {
pAVar3 = (ActorNavi *) gItemManager->GetFairy(FairyId_Courage);
if (pAVar3 == NULL || pAVar3->mUnk_3b8 != 0) {
if (pAVar3 == NULL || pAVar3->mUnk_3b8.mUnk_00 != 0) {
return false;
}
@@ -187,7 +187,7 @@ ARM void LinkStateItem::func_ov059_021990a4() {
if (CHECK_0219b160(data_ov059_0219b180.mUnk_00)) {
this->mUnk_38 = gPlayerControl->mAimWorld;
if (pAVar5->mUnk_3c0[0] != 0 && gPlayerControl->UpdateAimWorld(&this->mUnk_38) && pEVar4->GetState() <= 0) {
if (pAVar5->mUnk_3c0 != 0 && gPlayerControl->UpdateAimWorld(&this->mUnk_38) && pEVar4->GetState() <= 0) {
pEVar4->func_ov059_02198e90();
if (this->mUnk_25[2] != 0 && this->mUnk_25[3] != 0) {
+1 -1
View File
@@ -2,7 +2,7 @@
#include "Game/Game.hpp"
#include "Unknown/UnkStruct_020ee698.hpp"
#include "global.h"
#include "nds/overlay.h"
#include <nds/overlay.h>
extern u32 *data_027e0ce0[];
extern "C" void func_ov007_02102850(u32 **);
+1
View File
@@ -2,6 +2,7 @@
#include "Actor/ActorManager.hpp"
#include "Item/ItemManager.hpp"
#include "Message/MessageManager.hpp"
#include "Player/LinkStateBase.hpp"
#include "Save/AdventureFlags.hpp"
#include "System/Random.hpp"
+1
View File
@@ -1,6 +1,7 @@
#include "Unknown/UnkStruct_020397f8.hpp"
#include "DTCM/UnkStruct_027e0c38.hpp"
#include "DTCM/UnkStruct_027e0c54.hpp"
#include "DTCM/UnkStruct_027e0d38.hpp"
#include "DTCM/UnkStruct_027e103c.hpp"
#include "Game/Game.hpp"
#include "Message/MessageManager.hpp"