Decompiling actor for boomerang (#93)

* feat: begin decompiling ActorItemBoomerang

* feat: decompile functions

* refactor: rename function and use ActorState

* feat: match vfunc

* feat: magic stuff on addresses to match .data

* feat: more black magic

* feat: improvements

* feat: match .data

* feat: unmatch .data 😭

* feat: match stuff

* refactor: move shotarrows' class used in boomerang

* feat: fix mangled names

* feat: weird magic

* fix: build issues

* fix: build issue for jp version

* fix: back to +0.2% :yeah:

* feat: improvements before changing laptop

* feat: continue decompiling

* fix: build issues

* feat: improvements

* feat: solve build on eur

* fix: build issue

* fix: better match

* fix: match back ActorShotArrow data

* feat: increase .text matching

* fix: propagate changes to ActorShotArrow

* feat: matching func_ov031_020e5034

* fix: logical errors

* fix: replace whiles with fors

* style: use uppercased hex value

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>

* style: do not use fx32 for global timer

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>

* style: add parameters name in prototypes

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>

* style: use bool instead of unk32 for external function

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>

* style: use DEG2ANG

* refactor: use ActorRef instead of u16

* style: use boring array access instead of chad pointer manipulation

* fix: use bool as return type for ActorItemBoomerang::vfunc_2C

* feat: remove old non-matching comments

* style: explicit null check

* revert: change vfunc_2C back to void signature and change 01fff5d0 function's signature to bool

---------

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
This commit is contained in:
Alessevan
2026-07-02 20:51:46 +02:00
committed by GitHub
parent 58235d4f98
commit 66eb66f081
26 changed files with 762 additions and 285 deletions
+1 -1
View File
@@ -128,7 +128,7 @@ func_01ffc520 kind:function(arm,size=0x5c) addr:0x01ffc520
_ZN11ModelRender8vfunc_0CEv kind:function(arm,size=0x24) addr:0x01ffc57c
func_01ffc5a0 kind:function(arm,size=0x94) addr:0x01ffc5a0
func_01ffc634 kind:function(arm,size=0xa0) addr:0x01ffc634
func_01ffc6d4 kind:function(arm,size=0x70) addr:0x01ffc6d4
_ZN19UnkSystem6_Derived213func_01ffc6d4EtP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4
func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744
func_01ffc768 kind:function(arm,size=0x3c) addr:0x01ffc768
_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4
+11 -11
View File
@@ -1381,11 +1381,11 @@ _ZN19func_ov000_0207b628D1Ev kind:function(arm,size=0x14) addr:0x0207b628
_ZN19func_ov000_0207b63cD0Ev kind:function(arm,size=0x1c) addr:0x0207b63c
_ZN19func_ov000_0207b658D1Ev kind:function(arm,size=0x30) addr:0x0207b658
_ZN19func_ov000_0207b688D0Ev kind:function(arm,size=0x38) addr:0x0207b688
_ZN23ActorShotArrow_194_BaseD2Ev kind:function(arm,size=0x30) addr:0x0207b6c0
_ZN24UnkStruct_ov031_Items_01D2Ev kind:function(arm,size=0x30) addr:0x0207b6c0
func_ov000_0207b6f0 kind:function(arm,size=0x1c) addr:0x0207b6f0
func_ov000_0207b70c kind:function(arm,size=0x10) addr:0x0207b70c
_ZN23ActorShotArrow_194_Base8vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207b71c
func_ov000_0207b754 kind:function(arm,size=0x80) addr:0x0207b754
_ZN24UnkStruct_ov031_Items_018vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207b71c
_ZN24UnkStruct_ov031_Items_018vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0x80) addr:0x0207b754
func_ov000_0207b7d4 kind:function(arm,size=0x40) addr:0x0207b7d4
func_ov000_0207b814 kind:function(arm,size=0x80) addr:0x0207b814
func_ov000_0207b894 kind:function(arm,size=0x48) addr:0x0207b894
@@ -1412,9 +1412,9 @@ func_ov000_0207bcfc kind:function(arm,size=0x88) addr:0x0207bcfc
func_ov000_0207bd84 kind:function(arm,size=0x260) addr:0x0207bd84
func_ov000_0207bfe4 kind:function(arm,size=0x4) addr:0x0207bfe4
_ZN19func_ov000_0207bfe8D0Ev kind:function(arm,size=0x14) addr:0x0207bfe8
_ZN23ActorShotArrow_178_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207bffc
_ZN24UnkStruct_ov031_Items_00D2Ev kind:function(arm,size=0x4) addr:0x0207bffc
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_08Ev kind:function(arm,size=0x8) addr:0x0207c000
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEv kind:function(arm,size=0x8) addr:0x0207c008
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x8) addr:0x0207c008
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_10Ev kind:function(arm,size=0x8) addr:0x0207c010
_ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207c018
func_ov000_0207c048 kind:function(arm,size=0x30) addr:0x0207c048
@@ -1460,7 +1460,7 @@ func_ov000_0207dc64 kind:function(arm,size=0x24) addr:0x0207dc64
func_ov000_0207dc88 kind:function(arm,size=0x210) addr:0x0207dc88
func_ov000_0207de98 kind:function(arm,size=0xc0) addr:0x0207de98
func_ov000_0207df58 kind:function(arm,size=0x30) addr:0x0207df58
func_ov000_0207df88 kind:function(arm,size=0xd8) addr:0x0207df88
_ZN5Actor19func_ov000_0207df88EP8Cylinderi kind:function(arm,size=0xd8) addr:0x0207df88
func_ov000_0207e060 kind:function(arm,size=0x68) addr:0x0207e060
func_ov000_0207e0c8 kind:function(arm,size=0xbc) addr:0x0207e0c8
func_ov000_0207e184 kind:function(arm,size=0x58) addr:0x0207e184
@@ -1474,7 +1474,7 @@ func_ov000_0207e3ac kind:function(arm,size=0xac) addr:0x0207e3ac
func_ov000_0207e458 kind:function(arm,size=0x84) addr:0x0207e458
func_ov000_0207e4dc kind:function(arm,size=0x84) addr:0x0207e4dc
func_ov000_0207e560 kind:function(arm,size=0x2c) addr:0x0207e560
_ZN18UnkStruct_027e09c019func_ov000_0207e58cE8ActorRefihP18ActorShotArrow_194 kind:function(arm,size=0xa4) addr:0x0207e58c
_ZN18UnkStruct_027e09c019func_ov000_0207e58cE8ActorRefihP24UnkStruct_ov031_Items_01 kind:function(arm,size=0xa4) addr:0x0207e58c
func_ov000_0207e630 kind:function(arm,size=0x38) addr:0x0207e630
func_ov000_0207e668 kind:function(arm,size=0x50) addr:0x0207e668
func_ov000_0207e6b8 kind:function(arm,size=0x14) addr:0x0207e6b8
@@ -2062,7 +2062,7 @@ func_ov000_0208eb90 kind:function(arm,size=0x104) addr:0x0208eb90
func_ov000_0208ec94 kind:function(arm,size=0x60) addr:0x0208ec94
func_ov000_0208ecf4 kind:function(thumb,size=0x1c) addr:0x0208ecf4
func_ov000_0208ed10 kind:function(thumb,size=0x20) addr:0x0208ed10
func_ov000_0208ed30 kind:function(thumb,size=0x34) addr:0x0208ed30
_ZN18UnkStruct_027e0ce019func_ov000_0208ed30EiiPc kind:function(thumb,size=0x34) addr:0x0208ed30
func_ov000_0208ed64 kind:function(thumb,size=0xc4) addr:0x0208ed64
func_ov000_0208ee28 kind:function(thumb,size=0x6c) addr:0x0208ee28
func_ov000_0208ee94 kind:function(arm,size=0x8c) addr:0x0208ee94
@@ -2306,7 +2306,7 @@ func_ov000_020980e0 kind:function(arm,size=0x80) addr:0x020980e0
func_ov000_02098160 kind:function(arm,size=0x80) addr:0x02098160
func_ov000_020981e0 kind:function(arm,size=0x64) addr:0x020981e0
func_ov000_02098244 kind:function(arm,size=0x64) addr:0x02098244
_ZN23ActorShotArrow_178_BaseC2Ev kind:function(arm,size=0x18) addr:0x020982a8
_ZN24UnkStruct_ov031_Items_00C2Ev kind:function(arm,size=0x18) addr:0x020982a8
func_ov000_020982c0 kind:function(arm,size=0x18) addr:0x020982c0
func_ov000_020982d8 kind:function(arm,size=0x80) addr:0x020982d8
_ZN19func_ov000_02098358D1Ev kind:function(arm,size=0x14) addr:0x02098358
@@ -2557,7 +2557,7 @@ _ZN9MapObject19func_ov000_0209d0bcEP8Vec2bCppPS_ kind:function(arm,size=0x58) ad
_ZN9MapObject19func_ov000_0209d114Ev kind:function(arm,size=0x18) addr:0x0209d114
_ZN9MapObject19func_ov000_0209d12cEv kind:function(arm,size=0x18) addr:0x0209d12c
_ZN9MapObject19func_ov000_0209d144EP5Vec2sii kind:function(arm,size=0x88) addr:0x0209d144
_ZN9MapObject8vfunc_1CEv kind:function(arm,size=0x8) addr:0x0209d1cc
_ZN9MapObject8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x8) addr:0x0209d1cc
_ZN9MapObject8vfunc_20Ev kind:function(arm,size=0x4) addr:0x0209d1d4
_ZN9MapObject8vfunc_24Ev kind:function(arm,size=0xc) addr:0x0209d1d8
_ZN9MapObject8vfunc_28Ev kind:function(arm,size=0x8) addr:0x0209d1e4
@@ -2675,7 +2675,7 @@ func_ov000_0209ff4c kind:function(arm,size=0x40) addr:0x0209ff4c
_ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP7VecFx32i kind:function(arm,size=0x74) addr:0x0209ff8c
func_ov000_020a0000 kind:function(arm,size=0xa0) addr:0x020a0000
func_ov000_020a00a0 kind:function(arm,size=0x34) addr:0x020a00a0
func_ov000_020a00d4 kind:function(arm,size=0x3c) addr:0x020a00d4
_ZN18UnkStruct_027e0cec19func_ov000_020a00d4EP22UnkStruct_PlayerGet_eciiiP7VecFx32i kind:function(arm,size=0x3c) addr:0x020a00d4
_ZN18UnkStruct_027e0cec19func_ov000_020a0110EP22UnkStruct_PlayerGet_ec kind:function(arm,size=0x30) addr:0x020a0110
func_ov000_020a0140 kind:function(arm,size=0xe0) addr:0x020a0140
_ZN18UnkStruct_027e0cec19func_ov000_020a0220EPvS0_ kind:function(arm,size=0xb4) addr:0x020a0220
+2 -1
View File
@@ -26,10 +26,11 @@ src/031_Land/Actor/ActorUnkTLKT.cpp:
.ctor start:0x021127a4 end:0x021127a8
.bss start:0x0211649c end:0x021164e8
src/031_Land/Actor/ActorUnkITBM.cpp:
src/031_Land/Actor/ActorItemBoomerang.cpp:
.text start:0x020e45a4 end:0x020e575c
.init start:0x021110e8 end:0x02111138
.ctor start:0x021127a8 end:0x021127ac
.data start:0x02112efc end:0x02112fd0
.bss start:0x021164e8 end:0x02116534
src/031_Land/Actor/ActorUnkITTD.cpp:
+7 -7
View File
@@ -1236,16 +1236,16 @@ from:0x020e4114 kind:arm_call to:0x0209767c module:overlay(0)
from:0x020e412c kind:load to:0x02112e4c add:0x8 module:overlay(31)
from:0x020e4138 kind:arm_call to:0x020e3da0 module:overlay(31)
from:0x020e415c kind:load to:0x02112e70 add:0x8 module:overlay(31)
from:0x020e4160 kind:load to:0x02112eec module:overlay(31)
from:0x020e4160 kind:load to:0x02112ee4 module:overlay(31) add:0x8
from:0x020e4188 kind:arm_call to:0x020e4514 module:overlay(31)
from:0x020e4190 kind:arm_call to:0x02098488 module:overlay(0)
from:0x020e419c kind:load to:0x02112e70 add:0x8 module:overlay(31)
from:0x020e41a0 kind:load to:0x02112eec module:overlay(31)
from:0x020e41a0 kind:load to:0x02112ee4 module:overlay(31) add:0x8
from:0x020e41c8 kind:arm_call to:0x020e4514 module:overlay(31)
from:0x020e41d0 kind:arm_call to:0x02098488 module:overlay(0)
from:0x020e41d8 kind:arm_call to:0x02011ff4 module:main
from:0x020e41e4 kind:load to:0x02112e70 add:0x8 module:overlay(31)
from:0x020e41e8 kind:load to:0x02112eec module:overlay(31)
from:0x020e41e8 kind:load to:0x02112ee4 module:overlay(31) add:0x8
from:0x020e4230 kind:arm_call to:0x020e4274 module:overlay(31)
from:0x020e424c kind:arm_call to:0x020732ec module:overlay(0)
from:0x020e4270 kind:load to:0x027e09b8 module:dtcm
@@ -1282,8 +1282,8 @@ from:0x020e4724 kind:arm_call to:0x020d8df0 module:overlay(31)
from:0x020e4740 kind:load to:0x02112f74 add:0x8 module:overlay(31)
from:0x020e4744 kind:load to:0x027e0ce0 module:dtcm
from:0x020e4748 kind:load to:0x020b1960 add:0x8 module:overlay(0)
from:0x020e474c kind:load to:0x02112f04 module:overlay(31)
from:0x020e4750 kind:load to:0x02112f3c module:overlay(31)
from:0x020e474c kind:load to:0x02112efc module:overlay(31) add:0x8
from:0x020e4750 kind:load to:0x02112f34 module:overlay(31) add:0x8
from:0x020e4754 kind:load to:0x020a02d4 module:overlay(0)
from:0x020e4758 kind:load to:0x020e5704 module:overlay(31)
from:0x020e4768 kind:arm_call to:0x0207b6c0 module:overlay(0)
@@ -1399,7 +1399,7 @@ from:0x020e53f8 kind:load to:0x027e0d2c module:dtcm
from:0x020e53fc kind:load to:0x020d95c8 module:overlay(31)
from:0x020e543c kind:arm_call to:0x0207b754 module:overlay(0)
from:0x020e5458 kind:arm_call to:0x020982a8 module:overlay(0)
from:0x020e5470 kind:load to:0x02112f20 module:overlay(31)
from:0x020e5470 kind:load to:0x02112f18 module:overlay(31) add:0x8
from:0x020e547c kind:arm_call to:0x0207bffc module:overlay(0)
from:0x020e5490 kind:arm_call to:0x0207bffc module:overlay(0)
from:0x020e5498 kind:arm_call to:0x02011ff4 module:main
@@ -1446,7 +1446,7 @@ from:0x020e5b00 kind:load to:0x0211302c add:0x8 module:overlay(31)
from:0x020e5b04 kind:load to:0x02110a88 module:overlay(31)
from:0x020e5b08 kind:load to:0x027e0ce0 module:dtcm
from:0x020e5b0c kind:load to:0x02112ff4 module:overlay(31)
from:0x020e5b10 kind:load to:0x02112fd8 module:overlay(31)
from:0x020e5b10 kind:load to:0x02112fd0 module:overlay(31) add:0x8
from:0x020e5b14 kind:load to:0x020b27c8 module:overlay(0)
from:0x020e5b18 kind:load to:0x020a02d4 module:overlay(0)
from:0x020e5b1c kind:load to:0x020e5704 module:overlay(31)
+46 -46
View File
@@ -8,8 +8,8 @@ func_ov031_020d8cd0 kind:function(arm,size=0x28) addr:0x020d8cd0
func_ov031_020d8cf8 kind:function(arm,size=0x70) addr:0x020d8cf8
func_ov031_020d8d68 kind:function(arm,size=0x74) addr:0x020d8d68
func_ov031_020d8ddc kind:function(arm,size=0x14) addr:0x020d8ddc
_ZN18ActorShotArrow_1DCC1Eii kind:function(arm,size=0x7c) addr:0x020d8df0
_ZN18ActorShotArrow_1DCD1Ev kind:function(arm,size=0x1c) addr:0x020d8e6c
_ZN24UnkStruct_ov031_Items_02C1Eii kind:function(arm,size=0x7c) addr:0x020d8df0
_ZN24UnkStruct_ov031_Items_02D1Ev kind:function(arm,size=0x1c) addr:0x020d8e6c
func_ov031_020d8e88 kind:function(arm,size=0x9c) addr:0x020d8e88
func_ov031_020d8f24 kind:function(arm,size=0x34) addr:0x020d8f24
func_ov031_020d8f58 kind:function(arm,size=0x40) addr:0x020d8f58
@@ -34,11 +34,11 @@ func_ov031_020d9524 kind:function(arm,size=0x44) addr:0x020d9524
_ZN19func_ov031_020d9568D1Ev kind:function(arm,size=0x14) addr:0x020d9568
_ZN19func_ov031_020d957cD0Ev kind:function(arm,size=0x1c) addr:0x020d957c
func_ov031_020d9598 kind:function(thumb,size=0x1a) addr:0x020d9598
func_ov031_020d95b4 kind:function(arm,size=0x14) addr:0x020d95b4
func_ov031_020d95c8 kind:function(arm,size=0x24) addr:0x020d95c8
_ZN18UnkStruct_027e0d2c19func_ov031_020d95b4Ev kind:function(arm,size=0x14) addr:0x020d95b4
_ZN18UnkStruct_027e0d2c19func_ov031_020d95c8E8ActorRef kind:function(arm,size=0x24) addr:0x020d95c8
func_ov031_020d95ec kind:function(arm,size=0x30) addr:0x020d95ec
func_ov031_020d961c kind:function(arm,size=0x10) addr:0x020d961c
func_ov031_020d962c kind:function(arm,size=0x1c) addr:0x020d962c
_ZN18UnkStruct_027e0d2c19func_ov031_020d962cEP7VecFx32iS1_P8ActorRef kind:function(arm,size=0x1c) addr:0x020d962c
func_ov031_020d9648 kind:function(arm,size=0x10) addr:0x020d9648
func_ov031_020d9658 kind:function(thumb,size=0x1a) addr:0x020d9658
func_ov031_020d9674 kind:function(arm,size=0x10) addr:0x020d9674
@@ -420,35 +420,35 @@ _ZN12ActorUnkTLKT19func_ov031_020e4514Ev kind:function(arm,size=0x5c) addr:0x020
_ZN19ActorProfileUnkTLKTD1Ev kind:function(arm,size=0x14) addr:0x020e4570
func_ov031_020e4584 kind:function(arm,size=0x10) addr:0x020e4584
func_ov031_020e4594 kind:function(arm,size=0x10) addr:0x020e4594
_ZN19ActorProfileUnkITBM10GetProfileEv kind:function(arm,size=0xc) addr:0x020e45a4
_ZN19ActorProfileUnkITBM6CreateEv kind:function(arm,size=0x24) addr:0x020e45b0
_ZN19ActorProfileUnkITBMC1Ev kind:function(arm,size=0x28) addr:0x020e45d4
_ZN12ActorUnkITBM19func_ov031_020e45fcEv kind:function(arm,size=0x24) addr:0x020e45fc
_ZN12ActorUnkITBMC1Ev kind:function(arm,size=0x140) addr:0x020e4620
_ZN12ActorUnkITBM19func_ov031_020e4760Ev kind:function(arm,size=0x14) addr:0x020e4760
_ZN12ActorUnkITBM19func_ov031_020e4774Ev kind:function(arm,size=0x14) addr:0x020e4774
_ZN12ActorUnkITBM19func_ov031_020e4788Ev kind:function(arm,size=0xa0) addr:0x020e4788
_ZN12ActorUnkITBMD0Ev kind:function(arm,size=0xa8) addr:0x020e4828
_ZN12ActorUnkITBM19func_ov031_020e48d0Ev kind:function(arm,size=0xc4) addr:0x020e48d0
_ZN12ActorUnkITBM19func_ov031_020e4994Ev kind:function(arm,size=0x1c) addr:0x020e4994
_ZN12ActorUnkITBM19func_ov031_020e49b0Ev kind:function(arm,size=0x70) addr:0x020e49b0
_ZN12ActorUnkITBM19func_ov031_020e4a20Ev kind:function(arm,size=0x614) addr:0x020e4a20
_ZN12ActorUnkITBM19func_ov031_020e5034Ev kind:function(arm,size=0x1ec) addr:0x020e5034
_ZN12ActorUnkITBM19func_ov031_020e5220Ev kind:function(arm,size=0x80) addr:0x020e5220
_ZN12ActorUnkITBM19func_ov031_020e52a0Ev kind:function(arm,size=0xb4) addr:0x020e52a0
_ZN12ActorUnkITBM19func_ov031_020e5354Ev kind:function(arm,size=0x74) addr:0x020e5354
_ZN12ActorUnkITBM19func_ov031_020e53c8Ev kind:function(arm,size=0x1c) addr:0x020e53c8
_ZN12ActorUnkITBM19func_ov031_020e53e4Ev kind:function(arm,size=0x1c) addr:0x020e53e4
_ZN12ActorUnkITBM19func_ov031_020e5400Ev kind:function(arm,size=0x4c) addr:0x020e5400
_ZN12ActorUnkITBM19func_ov031_020e544cEv kind:function(arm,size=0x28) addr:0x020e544c
_ZN12ActorUnkITBMD1Ev kind:function(arm,size=0x14) addr:0x020e5474
_ZN12ActorUnkITBM19func_ov031_020e5488Ev kind:function(arm,size=0x1c) addr:0x020e5488
_ZN12ActorUnkITBM19func_ov031_020e54a4Ev kind:function(arm,size=0x30) addr:0x020e54a4
_ZN12ActorUnkITBM19func_ov031_020e54d4Ev kind:function(arm,size=0x230) addr:0x020e54d4
_ZN12ActorUnkITBM19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e5704
_ZN12ActorUnkITBM19func_ov031_020e5710Ev kind:function(arm,size=0x1c) addr:0x020e5710
_ZN12ActorUnkITBM19func_ov031_020e572cEv kind:function(arm,size=0x1c) addr:0x020e572c
_ZN19ActorProfileUnkITBMD1Ev kind:function(arm,size=0x14) addr:0x020e5748
_ZN25ActorProfileItemBoomerang10GetProfileEv kind:function(arm,size=0xc) addr:0x020e45a4
_ZN25ActorProfileItemBoomerang6CreateEv kind:function(arm,size=0x24) addr:0x020e45b0
_ZN25ActorProfileItemBoomerangC1Ev kind:function(arm,size=0x28) addr:0x020e45d4
_ZN26ActorItemBoomerang_Unknown19func_ov031_020e45fcEv kind:function(arm,size=0x24) addr:0x020e45fc
_ZN18ActorItemBoomerangC1Ev kind:function(arm,size=0x140) addr:0x020e4620
_ZN21ActorItemBoomerang_A0D1Ev kind:function(arm,size=0x14) addr:0x020e4760
_ZN21ActorItemBoomerang_CCD1Ev kind:function(arm,size=0x14) addr:0x020e4774
_ZN18ActorItemBoomerangD1Ev kind:function(arm,size=0xa0) addr:0x020e4788
_ZN18ActorItemBoomerangD0Ev kind:function(arm,size=0xa8) addr:0x020e4828
_ZN18ActorItemBoomerang8vfunc_18Ei kind:function(arm,size=0xc4) addr:0x020e48d0
_ZN18ActorItemBoomerang8SetStateEs kind:function(arm,size=0x1c) addr:0x020e4994
_ZN18ActorItemBoomerang19func_ov031_020e49b0Ei kind:function(arm,size=0x70) addr:0x020e49b0
_ZN18ActorItemBoomerang8vfunc_20Ev kind:function(arm,size=0x614) addr:0x020e4a20
_ZN18ActorItemBoomerang19func_ov031_020e5034Ei kind:function(arm,size=0x1ec) addr:0x020e5034
_ZN18ActorItemBoomerang19func_ov031_020e5220Ev kind:function(arm,size=0x80) addr:0x020e5220
_ZN18ActorItemBoomerang19func_ov031_020e52a0Ev kind:function(arm,size=0xb4) addr:0x020e52a0
_ZN18ActorItemBoomerang8vfunc_2CEi kind:function(arm,size=0x74) addr:0x020e5354
_ZN21ActorItemBoomerang_A08vfunc_10EP5Actor kind:function(arm,size=0x1c) addr:0x020e53c8
_ZN21ActorItemBoomerang_CC8vfunc_10EP5Actor kind:function(arm,size=0x1c) addr:0x020e53e4
_ZN21ActorItemBoomerang_CC8vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0x4c) addr:0x020e5400
_ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) addr:0x020e544c
_ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e5474
_ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e5488
_ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x30) addr:0x020e54a4
_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x230) addr:0x020e54d4
_ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e5704
_ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e5710
_ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e572c
_ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e5748
func_ov031_020e575c kind:function(arm,size=0x28) addr:0x020e575c
func_ov031_020e5784 kind:function(arm,size=0x114) addr:0x020e5784
func_ov031_020e5898 kind:function(arm,size=0x30) addr:0x020e5898
@@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f32c4
_ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f32e0
_ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f3304
_ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0xac) addr:0x020f3310
_ZN18ActorShotArrow_1788vfunc_0CEv kind:function(arm,size=0x350) addr:0x020f33bc
_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x350) addr:0x020f33bc
_ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f370c
_ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f374c
_ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f38b0
@@ -2073,7 +2073,7 @@ __sinit_ov031_02110fe8 kind:function(arm,size=0x10) addr:0x02110fe8
__sinit_ActorUnkBOMB.cpp kind:function(arm,size=0x50) addr:0x02110ff8
__sinit_ActorUnkBLST.cpp kind:function(arm,size=0x50) addr:0x02111048
__sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02111098
__sinit_ActorUnkITBM.cpp kind:function(arm,size=0x50) addr:0x021110e8
__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x021110e8
__sinit_ActorUnkITTD.cpp kind:function(arm,size=0x74) addr:0x02111138
__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x021111ac
__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02111220
@@ -2137,7 +2137,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724
.p__sinit_ActorUnkBOMB.cpp kind:data(word) addr:0x0211279c
.p__sinit_ActorUnkBLST.cpp kind:data(word) addr:0x021127a0
.p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x021127a4
.p__sinit_ActorUnkITBM.cpp kind:data(word) addr:0x021127a8
.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x021127a8
.p__sinit_ActorUnkITTD.cpp kind:data(word) addr:0x021127ac
.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x021127b0
.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x021127b4
@@ -2256,13 +2256,13 @@ _ZTV19data_ov031_02112d84 kind:data(any) addr:0x02112d84
_ZTV19data_ov031_02112de0 kind:data(any) addr:0x02112de0
_ZTV19data_ov031_02112e4c kind:data(any) addr:0x02112e4c
_ZTV19data_ov031_02112e70 kind:data(any) addr:0x02112e70
data_ov031_02112eec kind:data(any) addr:0x02112eec
data_ov031_02112f04 kind:data(any) addr:0x02112f04
data_ov031_02112f20 kind:data(any) addr:0x02112f20
data_ov031_02112f3c kind:data(any) addr:0x02112f3c
_ZTV19data_ov031_02112f50 kind:data(any) addr:0x02112f50
_ZTV19data_ov031_02112f74 kind:data(any) addr:0x02112f74
data_ov031_02112fd8 kind:data(any) addr:0x02112fd8
_ZTV19data_ov031_02112eec kind:data(any) addr:0x02112ee4
_ZTV21ActorItemBoomerang_A0 kind:data(any) addr:0x02112efc
_ZTV22ActorItemBoomerang_11C kind:data(any) addr:0x02112f18
_ZTV21ActorItemBoomerang_CC kind:data(any) addr:0x02112f34
_ZTV25ActorProfileItemBoomerang kind:data(any) addr:0x02112f50
_ZTV18ActorItemBoomerang kind:data(any) addr:0x02112f74
_ZTV19data_ov031_02112fd8 kind:data(any) addr:0x02112fd0
data_ov031_02112fdc kind:data(any) addr:0x02112fdc
data_ov031_02112ff4 kind:data(any) addr:0x02112ff4
_ZTV19data_ov031_02113008 kind:data(any) addr:0x02113008
@@ -2529,9 +2529,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkBLSTE8sProfileE kind:bss addr:0x02116460
_ZGVN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211649c
@10787 kind:bss addr:0x021164a0
_ZN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x021164ac
_ZGVN15ProfileInstanceI19ActorProfileUnkITBME8sProfileE kind:bss addr:0x021164e8
_ZGVN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x021164e8
@10793 kind:bss addr:0x021164ec
_ZN15ProfileInstanceI19ActorProfileUnkITBME8sProfileE kind:bss addr:0x021164f8
_ZN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x021164f8
_ZGVN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x02116534
@10799 kind:bss addr:0x02116538
_ZN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x02116544
+1 -1
View File
@@ -128,7 +128,7 @@ func_01ffc520 kind:function(arm,size=0x5c) addr:0x01ffc520
_ZN11ModelRender8vfunc_0CEv kind:function(arm,size=0x24) addr:0x01ffc57c
func_01ffc5a0 kind:function(arm,size=0x94) addr:0x01ffc5a0
func_01ffc634 kind:function(arm,size=0xa0) addr:0x01ffc634
func_01ffc6d4 kind:function(arm,size=0x70) addr:0x01ffc6d4
_ZN19UnkSystem6_Derived213func_01ffc6d4EtP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4
func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744
func_01ffc768 kind:function(arm,size=0x3c) addr:0x01ffc768
_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4
+7 -7
View File
@@ -1379,10 +1379,10 @@ _ZN19func_ov000_0207cce0D1Ev kind:function(arm,size=0x14) addr:0x0207cce0
_ZN19func_ov000_0207ccf4D0Ev kind:function(arm,size=0x1c) addr:0x0207ccf4
_ZN19func_ov000_0207cd10D1Ev kind:function(arm,size=0x30) addr:0x0207cd10
_ZN19func_ov000_0207cd40D0Ev kind:function(arm,size=0x38) addr:0x0207cd40
_ZN23ActorShotArrow_194_BaseD2Ev kind:function(arm,size=0x30) addr:0x0207cd78
_ZN24UnkStruct_ov031_Items_01D2Ev kind:function(arm,size=0x30) addr:0x0207cd78
func_ov000_0207cda8 kind:function(arm,size=0x1c) addr:0x0207cda8
func_ov000_0207cdc4 kind:function(arm,size=0x10) addr:0x0207cdc4
_ZN23ActorShotArrow_194_Base8vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207cdd4
_ZN24UnkStruct_ov031_Items_018vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207cdd4
func_ov000_0207ce0c kind:function(arm,size=0x80) addr:0x0207ce0c
func_ov000_0207ce8c kind:function(arm,size=0x40) addr:0x0207ce8c
func_ov000_0207cecc kind:function(arm,size=0x80) addr:0x0207cecc
@@ -1410,9 +1410,9 @@ func_ov000_0207d3b4 kind:function(arm,size=0x88) addr:0x0207d3b4
func_ov000_0207d43c kind:function(arm,size=0x260) addr:0x0207d43c
func_ov000_0207d69c kind:function(arm,size=0x4) addr:0x0207d69c
_ZN19func_ov000_0207d6a0D0Ev kind:function(arm,size=0x14) addr:0x0207d6a0
_ZN23ActorShotArrow_178_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207d6b4
_ZN24UnkStruct_ov031_Items_00D2Ev kind:function(arm,size=0x4) addr:0x0207d6b4
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_08Ev kind:function(arm,size=0x8) addr:0x0207d6b8
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEv kind:function(arm,size=0x8) addr:0x0207d6c0
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x8) addr:0x0207d6c0
_ZN26UnkStruct_027e0ce0_38_Base8vfunc_10Ev kind:function(arm,size=0x8) addr:0x0207d6c8
_ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207d6d0
func_ov000_0207d700 kind:function(arm,size=0x30) addr:0x0207d700
@@ -1472,7 +1472,7 @@ func_ov000_0207fa64 kind:function(arm,size=0xac) addr:0x0207fa64
func_ov000_0207fb10 kind:function(arm,size=0x84) addr:0x0207fb10
func_ov000_0207fb94 kind:function(arm,size=0x84) addr:0x0207fb94
func_ov000_0207fc18 kind:function(arm,size=0x2c) addr:0x0207fc18
_ZN18UnkStruct_027e09c019func_ov000_0207e58cE8ActorRefihP18ActorShotArrow_194 kind:function(arm,size=0xa4) addr:0x0207fc44
_ZN18UnkStruct_027e09c019func_ov000_0207e58cE8ActorRefihP24UnkStruct_ov031_Items_01 kind:function(arm,size=0xa4) addr:0x0207fc44
func_ov000_0207fce8 kind:function(arm,size=0x38) addr:0x0207fce8
func_ov000_0207fd20 kind:function(arm,size=0x50) addr:0x0207fd20
func_ov000_0207fd70 kind:function(arm,size=0x14) addr:0x0207fd70
@@ -2303,7 +2303,7 @@ func_ov000_02099888 kind:function(arm,size=0x80) addr:0x02099888
func_ov000_02099908 kind:function(arm,size=0x80) addr:0x02099908
func_ov000_02099988 kind:function(arm,size=0x64) addr:0x02099988
func_ov000_020999ec kind:function(arm,size=0x64) addr:0x020999ec
_ZN23ActorShotArrow_178_BaseC2Ev kind:function(arm,size=0x18) addr:0x02099a50
_ZN24UnkStruct_ov031_Items_00C2Ev kind:function(arm,size=0x18) addr:0x02099a50
func_ov000_02099a68 kind:function(arm,size=0x18) addr:0x02099a68
func_ov000_02099a80 kind:function(arm,size=0x80) addr:0x02099a80
_ZN19func_ov000_02099b00D1Ev kind:function(arm,size=0x14) addr:0x02099b00
@@ -2553,7 +2553,7 @@ _ZN9MapObject19func_ov000_0209d0bcEP8Vec2bCppPS_ kind:function(arm,size=0x58) ad
_ZN9MapObject19func_ov000_0209d114Ev kind:function(arm,size=0x18) addr:0x0209e8d8
_ZN9MapObject19func_ov000_0209d12cEv kind:function(arm,size=0x18) addr:0x0209e8f0
_ZN9MapObject19func_ov000_0209d144EP5Vec2sii kind:function(arm,size=0x88) addr:0x0209e908
_ZN9MapObject8vfunc_1CEv kind:function(arm,size=0x8) addr:0x0209e990
_ZN9MapObject8vfunc_1CE8ActorRefiP7VecFx32 kind:function(arm,size=0x8) addr:0x0209e990
_ZN9MapObject8vfunc_20Ev kind:function(arm,size=0x4) addr:0x0209e998
_ZN9MapObject8vfunc_24Ev kind:function(arm,size=0xc) addr:0x0209e99c
_ZN9MapObject8vfunc_28Ev kind:function(arm,size=0x8) addr:0x0209e9a8
+1 -1
View File
@@ -26,7 +26,7 @@ src/031_Land/Actor/ActorUnkTLKT.cpp:
.ctor start:0x02114530 end:0x02114534
.bss start:0x0211823c end:0x02118288
src/031_Land/Actor/ActorUnkITBM.cpp:
src/031_Land/Actor/ActorItemBoomerang.cpp:
.text start:0x020e5f90 end:0x020e7148
.init start:0x02112e58 end:0x02112ea8
.ctor start:0x02114534 end:0x02114538
+34 -34
View File
@@ -420,35 +420,35 @@ _ZN12ActorUnkTLKT19func_ov031_020e4514Ev kind:function(arm,size=0x5c) addr:0x020
_ZN19ActorProfileUnkTLKTD1Ev kind:function(arm,size=0x14) addr:0x020e5f5c
func_ov031_020e5f70 kind:function(arm,size=0x10) addr:0x020e5f70
func_ov031_020e5f80 kind:function(arm,size=0x10) addr:0x020e5f80
_ZN19ActorProfileUnkITBM10GetProfileEv kind:function(arm,size=0xc) addr:0x020e5f90
_ZN19ActorProfileUnkITBM6CreateEv kind:function(arm,size=0x24) addr:0x020e5f9c
_ZN19ActorProfileUnkITBMC1Ev kind:function(arm,size=0x28) addr:0x020e5fc0
_ZN12ActorUnkITBM19func_ov031_020e45fcEv kind:function(arm,size=0x24) addr:0x020e5fe8
_ZN12ActorUnkITBMC1Ev kind:function(arm,size=0x140) addr:0x020e600c
_ZN12ActorUnkITBM19func_ov031_020e4760Ev kind:function(arm,size=0x14) addr:0x020e614c
_ZN12ActorUnkITBM19func_ov031_020e4774Ev kind:function(arm,size=0x14) addr:0x020e6160
_ZN12ActorUnkITBM19func_ov031_020e4788Ev kind:function(arm,size=0xa0) addr:0x020e6174
_ZN12ActorUnkITBMD0Ev kind:function(arm,size=0xa8) addr:0x020e6214
_ZN12ActorUnkITBM19func_ov031_020e48d0Ev kind:function(arm,size=0xc4) addr:0x020e62bc
_ZN12ActorUnkITBM19func_ov031_020e4994Ev kind:function(arm,size=0x1c) addr:0x020e6380
_ZN12ActorUnkITBM19func_ov031_020e49b0Ev kind:function(arm,size=0x70) addr:0x020e639c
_ZN12ActorUnkITBM19func_ov031_020e4a20Ev kind:function(arm,size=0x614) addr:0x020e640c
_ZN12ActorUnkITBM19func_ov031_020e5034Ev kind:function(arm,size=0x1ec) addr:0x020e6a20
_ZN12ActorUnkITBM19func_ov031_020e5220Ev kind:function(arm,size=0x80) addr:0x020e6c0c
_ZN12ActorUnkITBM19func_ov031_020e52a0Ev kind:function(arm,size=0xb4) addr:0x020e6c8c
_ZN12ActorUnkITBM19func_ov031_020e5354Ev kind:function(arm,size=0x74) addr:0x020e6d40
_ZN12ActorUnkITBM19func_ov031_020e53c8Ev kind:function(arm,size=0x1c) addr:0x020e6db4
_ZN12ActorUnkITBM19func_ov031_020e53e4Ev kind:function(arm,size=0x1c) addr:0x020e6dd0
_ZN12ActorUnkITBM19func_ov031_020e5400Ev kind:function(arm,size=0x4c) addr:0x020e6dec
_ZN12ActorUnkITBM19func_ov031_020e544cEv kind:function(arm,size=0x28) addr:0x020e6e38
_ZN12ActorUnkITBMD1Ev kind:function(arm,size=0x14) addr:0x020e6e60
_ZN12ActorUnkITBM19func_ov031_020e5488Ev kind:function(arm,size=0x1c) addr:0x020e6e74
_ZN12ActorUnkITBM19func_ov031_020e54a4Ev kind:function(arm,size=0x30) addr:0x020e6e90
_ZN12ActorUnkITBM19func_ov031_020e54d4Ev kind:function(arm,size=0x230) addr:0x020e6ec0
_ZN12ActorUnkITBM19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e70f0
_ZN12ActorUnkITBM19func_ov031_020e5710Ev kind:function(arm,size=0x1c) addr:0x020e70fc
_ZN12ActorUnkITBM19func_ov031_020e572cEv kind:function(arm,size=0x1c) addr:0x020e7118
_ZN19ActorProfileUnkITBMD1Ev kind:function(arm,size=0x14) addr:0x020e7134
_ZN25ActorProfileItemBoomerang10GetProfileEv kind:function(arm,size=0xc) addr:0x020e5f90
_ZN25ActorProfileItemBoomerang6CreateEv kind:function(arm,size=0x24) addr:0x020e5f9c
_ZN25ActorProfileItemBoomerangC1Ev kind:function(arm,size=0x28) addr:0x020e5fc0
_ZN26ActorItemBoomerang_Unknown19func_ov031_020e45fcEv kind:function(arm,size=0x24) addr:0x020e5fe8
_ZN18ActorItemBoomerangC1Ev kind:function(arm,size=0x140) addr:0x020e600c
_ZN21ActorItemBoomerang_A0D1Ev kind:function(arm,size=0x14) addr:0x020e614c
_ZN21ActorItemBoomerang_CCD1Ev kind:function(arm,size=0x14) addr:0x020e6160
_ZN18ActorItemBoomerangD1Ev kind:function(arm,size=0xa0) addr:0x020e6174
_ZN18ActorItemBoomerangD0Ev kind:function(arm,size=0xa8) addr:0x020e6214
_ZN18ActorItemBoomerang8vfunc_18Ei kind:function(arm,size=0xc4) addr:0x020e62bc
_ZN18ActorItemBoomerang8SetStateEs kind:function(arm,size=0x1c) addr:0x020e6380
_ZN18ActorItemBoomerang19func_ov031_020e49b0Ei kind:function(arm,size=0x70) addr:0x020e639c
_ZN18ActorItemBoomerang8vfunc_20Ev kind:function(arm,size=0x614) addr:0x020e640c
_ZN18ActorItemBoomerang19func_ov031_020e5034Ei kind:function(arm,size=0x1ec) addr:0x020e6a20
_ZN18ActorItemBoomerang19func_ov031_020e5220Ev kind:function(arm,size=0x80) addr:0x020e6c0c
_ZN18ActorItemBoomerang19func_ov031_020e52a0Ev kind:function(arm,size=0xb4) addr:0x020e6c8c
_ZN18ActorItemBoomerang8vfunc_2CEi kind:function(arm,size=0x74) addr:0x020e6d40
_ZN21ActorItemBoomerang_A08vfunc_10EP5Actor kind:function(arm,size=0x1c) addr:0x020e6db4
_ZN21ActorItemBoomerang_CC8vfunc_10EP5Actor kind:function(arm,size=0x1c) addr:0x020e6dd0
_ZN21ActorItemBoomerang_CC8vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0x4c) addr:0x020e6dec
_ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) addr:0x020e6e38
_ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e6e60
_ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e6e74
_ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x30) addr:0x020e6e90
_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x230) addr:0x020e6ec0
_ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e70f0
_ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e70fc
_ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e7118
_ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e7134
func_ov031_020e7148 kind:function(arm,size=0x28) addr:0x020e7148
func_ov031_020e7170 kind:function(arm,size=0x114) addr:0x020e7170
func_ov031_020e7284 kind:function(arm,size=0x30) addr:0x020e7284
@@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f4cc0
_ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f4cdc
_ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f4d00
_ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0xac) addr:0x020f4d0c
_ZN18ActorShotArrow_1788vfunc_0CEv kind:function(arm,size=0x3f8) addr:0x020f4db8
_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x3f8) addr:0x020f4db8
_ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f51b0
_ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f51f0
_ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f5354
@@ -2070,7 +2070,7 @@ __sinit_ov031_02112d58 kind:function(arm,size=0x10) addr:0x02112d58
__sinit_ActorUnkBOMB.cpp kind:function(arm,size=0x50) addr:0x02112d68
__sinit_ActorUnkBLST.cpp kind:function(arm,size=0x50) addr:0x02112db8
__sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02112e08
__sinit_ActorUnkITBM.cpp kind:function(arm,size=0x50) addr:0x02112e58
__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x02112e58
__sinit_ActorUnkITTD.cpp kind:function(arm,size=0x74) addr:0x02112ea8
__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x02112f1c
__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02112f90
@@ -2134,7 +2134,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0
.p__sinit_ActorUnkBOMB.cpp kind:data(word) addr:0x02114528
.p__sinit_ActorUnkBLST.cpp kind:data(word) addr:0x0211452c
.p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x02114530
.p__sinit_ActorUnkITBM.cpp kind:data(word) addr:0x02114534
.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x02114534
.p__sinit_ActorUnkITTD.cpp kind:data(word) addr:0x02114538
.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x0211453c
.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x02114540
@@ -2525,9 +2525,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkBLSTE8sProfileE kind:bss addr:0x02118200
_ZGVN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211823c
@30787 kind:bss addr:0x02118240
_ZN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211824c
_ZGVN15ProfileInstanceI19ActorProfileUnkITBME8sProfileE kind:bss addr:0x02118288
_ZGVN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x02118288
@30793 kind:bss addr:0x0211828c
_ZN15ProfileInstanceI19ActorProfileUnkITBME8sProfileE kind:bss addr:0x02118298
_ZN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x02118298
_ZGVN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x021182d4
@30799 kind:bss addr:0x021182d8
_ZN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x021182e4
+2 -1
View File
@@ -172,7 +172,7 @@ public:
/* 4C */ virtual ~Actor();
/* 54 */
unk32 func_01fff5d0(unk32 param1, unk32 param2);
bool func_01fff5d0(unk32 param1, unk32 param2);
void ResetFlags() {
*(u32 *) this->mFlags = 0;
@@ -201,6 +201,7 @@ public:
// overlay 0
bool func_ov000_0205cbc4(u32 param1, VecFx32 *param2);
unk32 func_ov000_0207df88(Cylinder *param1, unk32 param2);
unk32 func_ov000_0207e294(Cylinder *param1);
void func_ov000_0209848c(ActorProfile *param1);
void func_ov000_020984b0();
+109
View File
@@ -0,0 +1,109 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
#include "global.h"
#include "types.h"
enum ActorItemBoomerangState_ {
ActorItemBoomerangState_0,
ActorItemBoomerangState_1,
ActorItemBoomerangState_MAX
};
class ActorItemBoomerang;
class ActorItemBoomerang_Unknown { // inherits from UnkStruct_PlayerGet_ec ?
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ VecFx32 mUnk_04;
/* 10 */
void func_ov031_020e45fc();
void func_ov031_020e5704();
};
class ActorItemBoomerang_11C : public UnkStruct_ov031_Items_00 {
public:
/* 00 (vtable) */
/* 04 */ STRUCT_PAD(0x04, 0x08);
/* 08 */ ActorItemBoomerang *mUnk_08;
/* 0C */
ActorItemBoomerang_11C(ActorItemBoomerang *param1);
/* 00 */ virtual ~ActorItemBoomerang_11C() override;
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override;
};
class ActorItemBoomerang_A0 : public UnkStruct_ov031_Items_01 {
public:
/* 00 (vtable) */
/* 04 */
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
class ActorItemBoomerang_CC : public UnkStruct_ov031_Items_01 {
public:
/* 00 (vtable) */
/* 2C */ unk32 mUnk_2C;
/* 30 */ ActorItemBoomerang_Unknown mUnk_30;
/* 40 */
ActorItemBoomerang_CC() :
mUnk_2C(0x0) {}
/* 0C */ virtual bool vfunc_0C(Actor *actor, VecFx32 *param2) override;
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
class ActorItemBoomerang : public Actor {
public:
/* 000 (base) */
/* 094 */ UnkSystem6_Derived2 mUnk_94;
/* 09C */ bool mUnk_9C;
/* 09D */ STRUCT_PAD(0x9D, 0xA0);
/* 0A0 */ ActorItemBoomerang_A0 mUnk_A0;
/* 0CC */ ActorItemBoomerang_CC mUnk_CC;
/* 10C */ VecFx32 mUnk_10C;
/* 118 */ unk32 mUnk_118;
/* 11C */ ActorItemBoomerang_11C mUnk_11C;
/* 128 */ u32 mUnk_128;
/* 12C */ UnkStruct_PlayerGet_ec mUnk_12C[0x3];
/* 138 */ u16 mUnk_138; // timer ?
/* 13A */ u16 mUnk_13A;
/* 13C */ u16 mUnk_13C;
/* 13E */ STRUCT_PAD(0x13E, 0x140);
/* 140 */ UnkStruct_ov031_Items_02 mUnk_140;
/* 14C */ STRUCT_PAD(0x14C, 0x188);
/* 188 */
ActorItemBoomerang();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 4C */ virtual ~ActorItemBoomerang() override;
void SetState(ActorState state);
void func_ov031_020e49b0(unk32 param1);
void func_ov031_020e5034(unk32 param1);
void func_ov031_020e5220();
void func_ov031_020e52a0();
};
class ActorProfileItemBoomerang : public ActorProfile {
public:
/* 00 (base) */
ActorProfileItemBoomerang();
~ActorProfileItemBoomerang();
/* 0C */ virtual Actor *Create();
static ActorProfileItemBoomerang *GetProfile();
};
+5 -57
View File
@@ -4,6 +4,7 @@
#include "Actor/ActorProfile.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
#include "global.h"
#include "types.h"
@@ -35,19 +36,7 @@ public:
ActorShotArrow_140(Actor *param1);
};
class ActorShotArrow_178_Base : public UnkStruct_027e0ce0_38_Base {
public:
/* 00 (vtable) */
/* 04 */
ActorShotArrow_178_Base();
// data_ov000_020b30d0
/* 00 */ virtual ~ActorShotArrow_178_Base();
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
};
class ActorShotArrow_178 : public ActorShotArrow_178_Base {
class ActorShotArrow_178 : public UnkStruct_ov031_Items_00 {
public:
/* 00 (vtable) */
/* 04 */ STRUCT_PAD(0x04, 0x08);
@@ -61,44 +50,12 @@ public:
// data_ov031_02114288
/* 00 */ virtual ~ActorShotArrow_178() override;
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
/* 0C */ virtual bool vfunc_0C() override;
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) override;
void func_ov031_020f3304();
};
class ActorShotArrow_194_Base {
public:
/* 00 (vtable) */
/* 04 */ ActorRef mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 08 */ unk16 mUnk_0A;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ fx32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2C */
ActorShotArrow_194_Base() {
this->mUnk_04 = 0;
this->mUnk_08 = 0;
VecFx32_Init(0, 0, 0, &this->mUnk_0C);
this->mUnk_18 = 0;
this->mUnk_1C = 0;
this->mUnk_20 = 0;
this->mUnk_24 = 0;
this->mUnk_28 = 0;
}
// data_ov000_020b27c8
/* 00 */ virtual ~ActorShotArrow_194_Base();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual bool vfunc_0C(Actor *param1, VecFx32 *vector);
/* 10 */ virtual void vfunc_10(Actor *actor);
};
class ActorShotArrow_194 : public ActorShotArrow_194_Base {
class ActorShotArrow_194 : public UnkStruct_ov031_Items_01 {
public:
/* 00 (base) */
/* 2C */ ActorShotArrow *mUnk_2C;
@@ -138,15 +95,6 @@ public:
}
};
class ActorShotArrow_1DC {
public:
/* 00 */ VecFx32 mUnk_00;
/* 0C */
ActorShotArrow_1DC(unk32 param1, unk32 param2);
~ActorShotArrow_1DC();
};
class ActorShotArrow : public Actor {
public:
/* 000 (base) */
@@ -167,7 +115,7 @@ public:
/* 178 */ ActorShotArrow_178 mUnk_178;
/* 194 */ ActorShotArrow_194 mUnk_194;
/* 1C8 */ ActorShotArrow_1C8 mUnk_1C8;
/* 1DC */ ActorShotArrow_1DC mUnk_1DC;
/* 1DC */ UnkStruct_ov031_Items_02 mUnk_1DC;
/* 1E0 */ STRUCT_PAD(0x1E8, 0x224);
/* 224 */ Mat4x3p *mUnk_224;
/* 228 */ Mat4x3p mUnk_228;
-63
View File
@@ -1,63 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "types.h"
class ActorUnkITBM_C4 : public Actor_C4 {
public:
ActorUnkITBM_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkITBM : public Actor {
public:
/* 00 (base) */
/* 94 */
ActorUnkITBM();
/* 4C */ virtual ~ActorUnkITBM() override;
void func_ov031_020e45fc(void);
void func_ov031_020e4760(void);
void func_ov031_020e4774(void);
void func_ov031_020e4788(void);
void func_ov031_020e48d0(void);
void func_ov031_020e4994(void);
void func_ov031_020e49b0(void);
void func_ov031_020e4a20(void);
void func_ov031_020e5034(void);
void func_ov031_020e5220(void);
void func_ov031_020e52a0(void);
void func_ov031_020e5354(void);
void func_ov031_020e53c8(void);
void func_ov031_020e53e4(void);
void func_ov031_020e5400(void);
void func_ov031_020e544c(void);
void func_ov031_020e5488(void);
void func_ov031_020e54a4(void);
void func_ov031_020e54d4(void);
void func_ov031_020e5704(void);
void func_ov031_020e5710(void);
void func_ov031_020e572c(void);
};
class ActorProfileUnkITBM : public ActorProfile {
public:
/* 00 (base) */
ActorProfileUnkITBM();
~ActorProfileUnkITBM();
/* 0C */ virtual Actor *Create();
static ActorProfileUnkITBM *GetProfile();
};
+1 -1
View File
@@ -139,7 +139,7 @@ public:
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2);
/* 1C */ virtual bool vfunc_1C();
/* 1C */ virtual bool vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3);
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual unk32 vfunc_28();
+2
View File
@@ -96,6 +96,8 @@ public:
// data_ov000_020b1968
/* 00 */ virtual ~UnkSystem6_Derived2() {}
/* 0C */ virtual void vfunc_0C() override;
void func_01ffc6d4(u16 angle, VecFx32 *pos);
};
class UnkSystem5 {
+5 -1
View File
@@ -909,7 +909,11 @@ extern "C" void func_ov000_02072fd0(UnkStackStruct1 *);
struct UnkSystem7_UnkStruct_00 {
/* 00 */ STRUCT_PAD(0x00, 0x24);
/* 24 */ unk32 mUnk_24;
/* 28 */ STRUCT_PAD(0x28, 0xA4);
/* 28 */ unk32 mUnk_28;
/* 2C */ unk32 mUnk_2C;
/* 30 */ unk32 mUnk_30;
/* 34 */ STRUCT_PAD(0x34, 0xA0);
/* A0 */ unk32 mUnk_A0;
/* A4 */ unk16 mUnk_A4;
void func_ov000_02052c48(VecFx32 *param1, VecFx32 *param2);
+1 -1
View File
@@ -17,7 +17,7 @@ public:
// overlay 0
void func_ov000_0207da40();
void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, ActorShotArrow_194 *param4);
void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, UnkStruct_ov031_Items_01 *param4);
// overlay 1
void func_ov001_020be394();
+10 -2
View File
@@ -81,6 +81,12 @@ public:
/* 20 */
};
class UnkStruct_ov031_020e54d4 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x08);
/* 08 */ u32 mUnk_08;
};
class UnkStruct_027e0ce0_38_Base {
public:
/* 00 (vtable) */
@@ -89,7 +95,7 @@ public:
// data_ov000_020b2838
/* 00 */ virtual ~UnkStruct_027e0ce0_38_Base();
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1);
/* 0C */ virtual bool vfunc_0C();
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2);
/* 10 */ virtual void vfunc_10();
/* 14 */
};
@@ -439,10 +445,12 @@ public:
void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, u16 param3);
void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, void *param3);
void func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
void func_ov000_0208bc9c(unk32 param1, unk32 param2);
void func_ov000_0208bd30(bool param1, unk32 param2, unk32 param3, unk32 param4);
G3d_Model *func_ov000_0208ed30(unk32 param1, unk32 param2, char *param3);
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
// overlay 1
+2
View File
@@ -13,6 +13,8 @@ public:
void func_ov000_0209ff24(unk32 param1, VecFx32 *param2, VecFx16 *param3, unk32 param4);
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, VecFx32 *param3, unk32 param4);
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, VecFx32 *param4, unk32 param5);
void func_ov000_020a00d4(UnkStruct_PlayerGet_ec *param1, unk32 param2, unk32 param3, unk32 param4, VecFx32 *param5,
unk32 param6);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
void func_ov000_020a0220(void *param1, void *param2);
void func_ov001_020bf028();
+15
View File
@@ -0,0 +1,15 @@
#pragma once
#include "Actor/ActorRef.hpp"
#include "math.hpp"
#include "types.h"
class UnkStruct_027e0d2c : public AutoInstance<UnkStruct_027e0d2c> {
public:
// overlay 31
void func_ov031_020d95b4();
void func_ov031_020d95c8(ActorRef param1);
bool func_ov031_020d962c(VecFx32 *param1, unk32 param2, VecFx32 *param3, ActorRef *param4);
};
extern UnkStruct_027e0d2c *data_027e0d2c;
+55
View File
@@ -0,0 +1,55 @@
#pragma once
#include "UnkStruct_027e0ce0.hpp"
class UnkStruct_ov031_Items_00 : public UnkStruct_027e0ce0_38_Base {
public:
/* 00 (vtable) */
/* 04 */
UnkStruct_ov031_Items_00();
// data_ov000_020b30d0
/* 00 */ virtual ~UnkStruct_ov031_Items_00();
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1) override;
};
class UnkStruct_ov031_Items_01 {
public:
/* 00 (vtable) */
/* 04 */ ActorRef mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 08 */ unk16 mUnk_0A;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ fx32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2C */
UnkStruct_ov031_Items_01() {
this->mUnk_04 = 0;
this->mUnk_08 = 0;
VecFx32_Init(0, 0, 0, &this->mUnk_0C);
this->mUnk_18 = 0;
this->mUnk_1C = 0;
this->mUnk_20 = 0;
this->mUnk_24 = 0;
this->mUnk_28 = 0;
}
// data_ov000_020b27c8
/* 00 */ virtual ~UnkStruct_ov031_Items_01();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual bool vfunc_0C(Actor *param1, VecFx32 *vector);
/* 10 */ virtual void vfunc_10(Actor *actor);
};
class UnkStruct_ov031_Items_02 {
public:
/* 00 */ VecFx32 mUnk_00;
/* 0C */
UnkStruct_ov031_Items_02(unk32 param1, unk32 param2);
~UnkStruct_ov031_Items_02();
};
+1 -1
View File
@@ -103,7 +103,7 @@ bool MapObject::func_ov000_0209d144(Vec2s *param1, unk32 param2, unk32 param3) {
return false;
}
bool MapObject::vfunc_1C() {
bool MapObject::vfunc_1C(ActorRef param1, unk32 param2, VecFx32 *param3) {
return true;
}
+437
View File
@@ -0,0 +1,437 @@
#include "Actor/ActorItemBoomerang.hpp"
#include "MapObject/MapObjectUnkICEB.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e09b4.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d2c.hpp"
extern "C" void func_01ff916c(void *, int, int);
extern "C" void func_01ff93c0(VecFx32 *, unk32);
extern "C" void func_01ff97c8(VecFx32 *, int);
extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, void *);
extern "C" unk32 func_01ffb9cc(VecFx32 *, VecFx32 *);
extern "C" void func_01ffe6c4(Actor **, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *, UnkStruct_ov031_Items_00 *);
extern "C" void func_01ffedac(u16 *, VecFx32 *);
extern "C" bool func_ov000_0205aeac();
extern "C" bool func_ov000_020982d8();
DECL_PROFILE(ActorProfileItemBoomerang);
Actor *ActorProfileItemBoomerang::Create() {
return new(HeapIndex_2) ActorItemBoomerang();
}
ActorProfileItemBoomerang::ActorProfileItemBoomerang() :
ActorProfile(ActorId_ITBM) {}
// non-matching
ActorItemBoomerang::ActorItemBoomerang() :
mUnk_94(data_027e0ce0->func_ov000_0208ed30(0x0, 0x1, ItemManager::func_ov000_020a8974(0x1)->mUnk_10)),
mUnk_9C(true),
mUnk_11C(this),
mUnk_12C(),
mUnk_138(0x0),
mUnk_13A(0x0),
mUnk_13C((u16) 0x8D71),
mUnk_140(0x1000, 0x0) {
this->mState = ActorItemBoomerangState_0;
this->mUnk_52 = 0xFFFF;
this->mUnk_50 = 0x0;
}
bool ActorItemBoomerang::vfunc_18(unk32 param1) {
this->mUnk_CC.mUnk_30.func_ov031_020e45fc();
this->mUnk_A0.mUnk_0C.x = FLOAT_TO_FX32(0.0f);
this->mUnk_A0.mUnk_0C.y = FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.z = FLOAT_TO_FX32(0.0f);
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.4f);
this->mUnk_10C.x = FLOAT_TO_FX32(0.0f);
this->mUnk_10C.y = FLOAT_TO_FX32(-0.1003f);
this->mUnk_10C.z = FLOAT_TO_FX32(0.0f);
this->mUnk_118 = FLOAT_TO_FX32(0.0f);
this->func_ov031_020e5034(0x0);
unk16 sin = SIN((u16) this->mAngle);
unk16 cos = COS((u16) this->mAngle);
this->mVel.x = MUL_FX32(sin, FLOAT_TO_FX32(0.5f));
this->mVel.z = MUL_FX32(cos, FLOAT_TO_FX32(0.5f));
this->mVel.y = FLOAT_TO_FX32(0.0f);
return true;
}
// non-matching
void ActorItemBoomerang::SetState(ActorState state) {
this->mState = state;
this->mUnk_52 = 0xFFFF;
this->mUnk_50 = 0;
}
void ActorItemBoomerang::func_ov031_020e49b0(unk32 param1) {
data_027e09a8->func_ov000_02071b30(param1, &this->mPos, 0);
data_027e09a8->func_ov000_02071eac(&this->mPos);
this->func_ov031_020e5220();
if (this->mState == ActorItemBoomerangState_1) {
return;
}
this->mVel.x = FLOAT_TO_FX32(0.0f);
this->mVel.y = FLOAT_TO_FX32(0.0f);
this->mVel.z = FLOAT_TO_FX32(0.0f);
data_027e0d2c->func_ov031_020d95b4();
this->SetState(ActorItemBoomerangState_1);
}
// non-matching
void ActorItemBoomerang::vfunc_20() {
VecFx32_Copy(&this->mPos, &this->mPrevPos);
VecFx32_Add(&this->mPos, &this->mVel, &this->mPos);
if (func_ov000_0205aeac() && this->mUnk_128 == 0x1 || this->mUnk_128 == 0x2) {
VecFx32_Copy(&this->mPos, &this->mUnk_140.mUnk_00);
}
this->IsTimerOut();
this->mAngle += DEG_TO_ANG(45);
this->func_ov031_020e52a0();
data_027e09a8->func_ov000_02071d34(&this->mRef, this->mUnk_13C, &this->mPos, 0x0);
bool var2 = false;
switch (this->mState) {
case ActorItemBoomerangState_0:
this->mUnk_A0.mUnk_0C.z = this->mPos.z;
this->mUnk_A0.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.x = this->mPos.x;
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.3f);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0);
bool var1 = false;
if (data_027e0ce0->func_ov000_0208bc1c(0x1, 0x0, 0x16, 0x0, 0x0, 0x0)) {
var1 = true;
this->mUnk_13A = 0x14;
this->mUnk_138 = 0x0;
}
Actor *sp54; /* actor* ? */
func_01ffe6c4(&sp54, this->mRef, &this->mPos, &this->mPrevPos, 0x1C, NULL, &this->mUnk_11C);
unk32 tmp = sp54->func_ov000_0207df88((Cylinder *) &this->mUnk_CC.mUnk_30.mUnk_00, 0xC);
func_01ffe6c4(&sp54, this->mRef, &this->mPos, &this->mPrevPos, 0x1F, NULL, &this->mUnk_11C);
if ((tmp | sp54->func_ov000_0207e294((Cylinder *) &this->mUnk_10C)) == 0 && !var1) {
if (data_027e0ce0->mUnk_2C->mEquippedItem != ItemFlag_Boomerang) {
this->SetState(ActorItemBoomerangState_1);
return;
}
VecFx32 sp6C;
ActorRef sp14;
if (!data_027e0d2c->func_ov031_020d962c(&this->mPos, 0x4CD, &sp6C, &sp14)) {
this->SetState(ActorItemBoomerangState_1);
} else {
unk32 vecLength = VecFx32_Length(&this->mVel);
unk32 lengthModified = (vecLength << 0xA) + 0x800;
unk32 sp18 = lengthModified;
func_01ff916c(&sp18, 0x0, MUL_FX32(vecLength, lengthModified));
func_01ffb714(&sp6C, &this->mPos, &this->mVel);
func_01ff97c8(&this->mPos, sp18 + 0x200);
}
if (sp14.type != 0) {
this->mUnk_CC.mUnk_0C.z = this->mPos.z;
this->mUnk_CC.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_CC.mUnk_18 = 0xA000;
this->mUnk_CC.mUnk_0C.x = this->mPos.x;
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_CC);
return;
}
if (!(sp14.data & 0x1000)) {
return;
}
Vec2bCpp pos;
pos.x = 0x0;
pos.y = 0x0;
MapObject *object = gpMapObjManager->func_01fff498(pos);
if (object == NULL) {
return;
}
object->vfunc_1C(this->mRef, 0xC, &this->mVel);
if (object->mUnk_10 != NULL) {
unk32 val = object->mUnk_10->mUnk_0C.y;
if (val == 0x2) {
this->func_ov031_020e5034(0x1);
} else if (val == 0x4) {
this->func_ov031_020e5034(0x2);
}
}
MapObjectId objectId = object->GetMapObjectId();
if (objectId != MapObjectId_SKDI && objectId != MapObjectId_SWHT && objectId != MapObjectId_TSUB) {
this->func_ov031_020e49b0(0x8D70);
}
return;
}
this->func_ov031_020e49b0(0x8D70);
break;
case ActorItemBoomerangState_1:
this->mUnk_A0.mUnk_0C.z = this->mPos.z;
this->mUnk_A0.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.x = this->mPos.x;
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.3f);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0);
Actor *sp24; /* actor* ? */
func_01ffe6c4(&sp24, this->mRef, &this->mPos, &this->mPrevPos, 0x1C, NULL, &this->mUnk_11C);
sp24->func_ov000_0207df88((Cylinder *) &this->mUnk_CC.mUnk_30.mUnk_00, 0xC);
bool var3 = false;
if ((u32) this->mUnk_138 < (u32) this->mUnk_13A) {
++this->mUnk_138;
} else {
var2 = true;
}
if (var2 && data_027e0ce0->func_ov000_0208bc1c(0x1, 0x0, 0x16, 0x0, 0x0, 0x0)) {
var3 = true;
}
if (var3) {
this->mUnk_13A = 0x14;
this->mUnk_138 = 0x0;
this->func_ov031_020e49b0(0x8D70);
}
u16 spC;
VecFx32 sp3C;
VecFx32_Copy(data_027e0ce0->func_01fff148(0x0), &sp3C);
if (func_01ffb9cc(&sp3C, &this->mPos) <= 0x800) {
if (this->mUnk_128 == 0x2) {
func_01ffedac(&spC, &sp3C);
Vec2bCpp pos;
pos.x = 0x0;
pos.y = 0x0;
MapObject *object = gpMapObjManager->func_01fff498(pos);
if (object != NULL && object->GetMapObjectId() == MapObjectId_ICEB) {
((MapObjectUnkICEB *) object)->func_ov094_02174870();
}
}
data_027e0d2c->func_ov031_020d95b4();
this->Kill();
return;
}
VecFx32 sp48;
func_01ff93c0(&this->mVel, 0xC00);
func_01ffb714(&sp3C, &this->mPos, &sp48);
func_01ff97c8(&sp48, 0x200);
VecFx32_Add(&this->mVel, &sp48, &this->mVel);
break;
default:
break;
}
}
void ActorItemBoomerang::func_ov031_020e5034(unk32 param1) {
if (this->mUnk_128 == param1) {
return;
}
this->mUnk_128 = param1;
UnkStruct_PlayerGet_ec *ptr = NULL;
switch (this->mUnk_128) {
case 0x1:
this->mUnk_13C = 0x8D72;
for (ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
ptr->func_ov000_020a0334();
}
data_027e0cec->func_ov000_0209ff8c(&this->mUnk_12C[0], 0x818, &this->mPos, 0x2);
data_027e0cec->func_ov000_0209ff8c(&this->mUnk_12C[1], 0x819, &this->mPos, 0x2);
if (!func_ov000_0205aeac()) {
return;
}
if (this->mUnk_12C[0].mUnk_00 != NULL) {
this->mUnk_12C[0].mUnk_00->mUnk_A0 = 0;
}
if (this->mUnk_12C[1].mUnk_00 != NULL) {
this->mUnk_12C[1].mUnk_00->mUnk_A0 = 0;
}
data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_140.mUnk_00);
return;
case 0x2:
this->mUnk_13C = 0x8D73;
for (ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
ptr->func_ov000_020a0334();
}
data_027e0cec->func_ov000_020a00d4(&this->mUnk_12C[0], 0x815, 0x816, 0x817, &this->mPos, 0x2);
if (!func_ov000_0205aeac()) {
return;
}
if (this->mUnk_12C[0].mUnk_00 != NULL) {
this->mUnk_12C[0].mUnk_00->mUnk_A0 = 0;
}
if (this->mUnk_12C[1].mUnk_00 != NULL) {
this->mUnk_12C[1].mUnk_00->mUnk_A0 = 0;
}
if (this->mUnk_12C[2].mUnk_00 != NULL) {
this->mUnk_12C[2].mUnk_00->mUnk_A0 = 0;
}
data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_140.mUnk_00);
return;
default:
this->mUnk_13C = 0x8D71;
if (!func_ov000_0205aeac()) {
return;
}
data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_140.mUnk_00);
break;
}
}
void ActorItemBoomerang::func_ov031_020e5220() {
data_027e0cec->func_ov000_0209feac(0x81A, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0x81B, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0x81C, &this->mPos, 0x2, 0x0, 0x0);
}
// non-matching
void ActorItemBoomerang::func_ov031_020e52a0() {
if (this->mUnk_128 == 0x1 || this->mUnk_128 == 0x2) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
// non sense
ptr->mUnk_00->mUnk_28 = this->mPos.x + ptr->mUnk_00->mUnk_24;
ptr->mUnk_00->mUnk_2C = this->mPos.y + ptr->mUnk_00->mUnk_28;
ptr->mUnk_00->mUnk_30 = this->mPos.z + ptr->mUnk_00->mUnk_2C;
}
return;
}
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
ptr->func_ov000_020a0334();
}
}
// non-matching
void ActorItemBoomerang::vfunc_2C(unk32 param1) {
if (Actor::func_01fff5d0(param1, 0x0)) {
this->mUnk_94.func_01ffc6d4((u16) this->mAngle, &this->mPos);
data_027e09b4->func_ov017_020c08c4(&this->mPos, 0x400, 0x400, 0x1F, 0x0, 0x1);
}
}
void ActorItemBoomerang_A0::vfunc_10(Actor *actor) {
data_027e0d2c->func_ov031_020d95c8(actor->mRef);
}
void ActorItemBoomerang_CC::vfunc_10(Actor *actor) {
data_027e0d2c->func_ov031_020d95c8(actor->mRef);
}
// non-matching
bool ActorItemBoomerang_CC::vfunc_0C(Actor *actor, VecFx32 *param2) {
if (actor != NULL) {
if (actor->mRef.Get32() == this->mUnk_2C && actor->mVel.x == FLOAT_TO_FX32(0.0f) &&
actor->mVel.y == FLOAT_TO_FX32(0.0f) && actor->mVel.z == FLOAT_TO_FX32(0.0f)) {
this->mUnk_2C = 0x0;
return UnkStruct_ov031_Items_01::vfunc_0C(actor, param2);
}
}
return false;
}
void ActorItemBoomerang_Unknown::func_ov031_020e45fc() {
this->mUnk_00 = 0x0;
this->mUnk_04.x = FLOAT_TO_FX32(-0.1003f);
this->mUnk_04.y = FLOAT_TO_FX32(0.0f);
this->mUnk_04.z = FLOAT_TO_FX32(0.3f);
}
ActorItemBoomerang_11C::ActorItemBoomerang_11C(ActorItemBoomerang *param1) :
mUnk_08(param1) {}
ActorItemBoomerang_11C::~ActorItemBoomerang_11C() {}
// non-matching
bool ActorItemBoomerang_11C::vfunc_08(const UnkStruct_ov031_020f3310 *param1) {
u32 var = param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06];
if (((var >> 0x18) & 1) == 1) {
return false;
}
return func_ov000_020982d8();
}
bool ActorItemBoomerang_11C::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) {
u32 val = (param1->mUnk_08 >> 9) & 7;
if (val == 0x2) {
this->mUnk_08->func_ov031_020e5034(0x1);
}
if (val == 0x4) {
this->mUnk_08->func_ov031_020e5034(0x2);
}
if (param1->mUnk_08 >> 0x18 & 1) {
return false;
}
Vec2bCpp pos;
if (this->mUnk_08->mState == ActorItemBoomerangState_1) {
if (param2 & 0x1000) {
pos.x = (u8) param2 >> 16;
pos.y = (u8) param2 >> 24;
MapObject *mapObject = gpMapObjManager->func_01fff498(pos);
if (mapObject != NULL) {
if (mapObject->GetMapObjectId() == MapObjectId_ICEB || mapObject->GetMapObjectId() == MapObjectId_THAW) {
mapObject->vfunc_1C(this->mUnk_08->mRef, 0xC, &this->mUnk_08->mVel);
}
}
}
return false;
}
if (param2 & 0x1000) {
pos.x = (u8) param2 >> 16;
pos.y = (u8) param2 >> 24;
MapObject *mapObject = gpMapObjManager->func_01fff498(pos);
if (mapObject != NULL) {
switch (mapObject->GetMapObjectId()) {
case MapObjectId_SKDI:
case MapObjectId_SWHT:
data_027e0d2c->func_ov031_020d95c8(param2);
case MapObjectId_TSUB:
mapObject->vfunc_1C(this->mUnk_08->mRef, 0xC, &this->mUnk_08->mVel);
return false;
}
}
}
UnkStruct_027e0ce0_38_Base::vfunc_0C(param1, param2);
}
void ActorItemBoomerang_Unknown::func_ov031_020e5704() {
this->mUnk_00 = 0;
}
ActorItemBoomerang::~ActorItemBoomerang() {
if (data_027e0d2c) {
data_027e0d2c->func_ov031_020d95b4();
}
if (func_ov000_0205aeac()) {
data_027e0cd8->mUnk_0C->func_ov000_02080a78(&this->mUnk_140.mUnk_00);
}
}
ActorProfileItemBoomerang::~ActorProfileItemBoomerang() {}
+6 -7
View File
@@ -67,7 +67,7 @@ typedef struct {
} UnkStack_ov031_020f2310;
struct UnkStruct_020f1b04 {
/* 0C */ unk32 mUnk_0C;
/* 0C */ Actor *mUnk_0C;
/* 10 */ STRUCT_PAD(0x10, 0x24);
/* 24 */
};
@@ -96,7 +96,7 @@ extern "C" void func_01ffad5c(Mat4x3p *, Mat4x3p *, Mat4x3p *);
extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *);
extern "C" fx16 func_01ffbbe0(fx32, fx32);
extern "C" bool func_01ffccf4(VecFx32 *, VecFx32 *, VecFx32 *, unk32 *);
extern "C" void func_01ffe6c4(unk32 *, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *, unk32);
extern "C" void func_01ffe6c4(Actor **, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *, unk32);
extern "C" void func_0200eab0(G3d_Model *, unk16, u8);
extern "C" UnkResourceStruct2 *func_0200f05c(G3d_NameList *, char *);
extern "C" void func_ov000_02057c98(ModelRender *param1, UnkSystem5 *param2);
@@ -330,7 +330,7 @@ void ActorShotArrow::func_ov031_020f1b04() {
}
if (!this->func_ov017_020beeec(0x0)) {
stack.mUnk_0C = 0;
stack.mUnk_0C = NULL;
VecFx32 *mPos = &this->mPos;
func_01ffe6c4(&stack.mUnk_0C, this->mRef, mPos, &this->mPrevPos, (s16) this->mUnk_44, mPos, 0);
@@ -846,14 +846,13 @@ void ActorShotArrow::func_ov031_020f2cac(VecFx32 *param1, bool param2) {
// non-matching
void ActorShotArrow::func_ov031_020f2ef0() {
unk32 value;
Actor *value = NULL;
ActorShotArrow_178 *unk_178;
value = 0;
unk_178 = &this->mUnk_178;
func_01ffe6c4(&value, this->mRef.Get32(), &this->mPos, &this->mVel, (s16) this->mUnk_44, &this->mPos, 0);
this->mUnk_46 = (s16) (func_ov000_0207df88(&value, this->mUnk_30, 0x3) | func_ov000_0207e294(this->mUnk_30));
this->mUnk_46 = (s16) (value->func_ov000_0207df88(this->mUnk_30, 0x3) | func_ov000_0207e294(this->mUnk_30));
}
void ActorShotArrow::func_ov031_020f2f5c(VecFx32 *param1) {
@@ -990,7 +989,7 @@ bool ActorShotArrow_178::vfunc_08(const UnkStruct_ov031_020f3310 *param1) {
}
// non-matching
bool ActorShotArrow_178::vfunc_0C() {}
bool ActorShotArrow_178::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2) {}
ActorShotArrow_194::ActorShotArrow_194(ActorShotArrow *param1) {
this->mUnk_2C = param1;
-41
View File
@@ -1,41 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkITBM.hpp"
#include "System/SysNew.hpp"
DECL_PROFILE(ActorProfileUnkITBM);
Actor *ActorProfileUnkITBM::Create() {
return new(HeapIndex_2) ActorUnkITBM();
}
ActorProfileUnkITBM::ActorProfileUnkITBM() :
ActorProfile(ActorId_ITBM) {}
ActorUnkITBM::ActorUnkITBM() {}
void ActorUnkITBM::func_ov031_020e45fc(void) {}
void ActorUnkITBM::func_ov031_020e4760(void) {}
void ActorUnkITBM::func_ov031_020e4774(void) {}
void ActorUnkITBM::func_ov031_020e4788(void) {}
void ActorUnkITBM::func_ov031_020e48d0(void) {}
void ActorUnkITBM::func_ov031_020e4994(void) {}
void ActorUnkITBM::func_ov031_020e49b0(void) {}
void ActorUnkITBM::func_ov031_020e4a20(void) {}
void ActorUnkITBM::func_ov031_020e5034(void) {}
void ActorUnkITBM::func_ov031_020e5220(void) {}
void ActorUnkITBM::func_ov031_020e52a0(void) {}
void ActorUnkITBM::func_ov031_020e5354(void) {}
void ActorUnkITBM::func_ov031_020e53c8(void) {}
void ActorUnkITBM::func_ov031_020e53e4(void) {}
void ActorUnkITBM::func_ov031_020e5400(void) {}
void ActorUnkITBM::func_ov031_020e544c(void) {}
void ActorUnkITBM::func_ov031_020e5488(void) {}
void ActorUnkITBM::func_ov031_020e54a4(void) {}
void ActorUnkITBM::func_ov031_020e54d4(void) {}
void ActorUnkITBM::func_ov031_020e5704(void) {}
void ActorUnkITBM::func_ov031_020e5710(void) {}
void ActorUnkITBM::func_ov031_020e572c(void) {}
ActorUnkITBM::~ActorUnkITBM() {}
ActorProfileUnkITBM::~ActorProfileUnkITBM() {}
+1 -1
View File
@@ -459,7 +459,7 @@ config.libs = [
Object("031_Land/Actor/ActorUnkEFSB.cpp"),
Object("031_Land/Actor/ActorUnkFLEN.cpp"),
Object("031_Land/Actor/ActorHeart.cpp"),
Object("031_Land/Actor/ActorUnkITBM.cpp"),
Object("031_Land/Actor/ActorItemBoomerang.cpp"),
Object("031_Land/Actor/ActorUnkITTD.cpp"),
Object("031_Land/Actor/ActorUnkMLCK.cpp"),
Object("031_Land/Actor/ActorUnkNFSP.cpp"),