Decompiling RFCO actor (#168)

* feat: begin decompiling

* feat: update

* feat: update

* feat: progress decompiling

* feat: increase matching

* refactor: change unk32 -> fx32

* feat: increase matching

* refactor: use appropriate function

* fix: use new name for CANS

* feat: use Copy macro for UnkStackStruct2 and match function

* refactor: replace strange bitshifts by division
This commit is contained in:
Alessevan
2026-10-25 05:03:57 -04:00
committed by GitHub
parent 55e41ee9a6
commit f6a7b43b15
37 changed files with 613 additions and 257 deletions
+2 -2
View File
@@ -282,9 +282,9 @@ func_ov000_0205b090 kind:function(arm,size=0x1c) addr:0x0205b090
func_ov000_0205b0ac kind:function(arm,size=0x20) addr:0x0205b0ac
func_ov000_0205b0cc kind:function(arm,size=0x7c) addr:0x0205b0cc
func_ov000_0205b148 kind:function(arm,size=0x84) addr:0x0205b148
func_ov000_0205b1cc kind:function(arm,size=0xc) addr:0x0205b1cc
_ZN16ActorUnkRCFO_910C1EP5Vec2si kind:function(arm,size=0xc) addr:0x0205b1cc
func_ov000_0205b1d8 kind:function(arm,size=0x4c) addr:0x0205b1d8
func_ov000_0205b224 kind:function(arm,size=0xb0) addr:0x0205b224
_ZN16ActorUnkRCFO_91019func_ov000_0205b224Eii kind:function(arm,size=0xb0) addr:0x0205b224
func_ov000_0205b2d4 kind:function(arm,size=0x50) addr:0x0205b2d4
func_ov000_0205b324 kind:function(arm,size=0x50) addr:0x0205b324
func_ov000_0205b374 kind:function(arm,size=0x18) addr:0x0205b374
@@ -9,6 +9,7 @@ src/033_MapA2/Actor/ActorUnkRCFO.cpp:
.text start:0x02119348 end:0x02119d80
.init start:0x0212103c end:0x0212108c
.ctor start:0x0212114c end:0x02121150
.data start:0x02121160 end:0x02121224
.bss start:0x02121c64 end:0x02121cb4
src/033_MapA2/MapObject/MapObjectUnkDOPA.cpp:
+1 -1
View File
@@ -84,7 +84,7 @@ from:0x02119cf4 kind:load to:0x021214a0 module:overlay(33)
from:0x02119cf8 kind:load to:0x0211dbcc module:overlay(33)
from:0x02119cfc kind:load to:0x0211dba4 module:overlay(33)
from:0x02119d10 kind:arm_call to:0x0201667c module:main
from:0x02119d3c kind:load to:0x0212118c module:overlay(33)
from:0x02119d3c kind:load to:0x02121184 module:overlay(33) add:0x8
from:0x02119d60 kind:arm_call to:0x0205b224 module:overlay(0)
from:0x02119d74 kind:arm_call to:0x02097724 module:overlay(0)
from:0x02119d88 kind:load to:0x02121ccc module:overlay(33)
+20 -21
View File
@@ -1,7 +1,7 @@
func_ov033_02118fc0 kind:function(arm,size=0x84) addr:0x02118fc0
func_ov033_02119044 kind:function(arm,size=0x4) addr:0x02119044
func_ov033_02119048 kind:function(arm,size=0x94) addr:0x02119048
func_ov033_021190dc kind:function(arm,size=0x18) addr:0x021190dc
_ZN16ActorUnkRCFO_094C1Ev kind:function(arm,size=0x84) addr:0x02118fc0
_ZN16ActorUnkRCFO_094D1Ev kind:function(arm,size=0x4) addr:0x02119044
_ZN16ActorUnkRCFO_09419func_ov033_02119048EPi kind:function(arm,size=0x94) addr:0x02119048
_ZN16ActorUnkRCFO_09419func_ov033_021190dcEv kind:function(arm,size=0x18) addr:0x021190dc
func_ov033_021190f4 kind:function(arm,size=0x18) addr:0x021190f4
func_ov033_0211910c kind:function(arm,size=0xc) addr:0x0211910c
func_ov033_02119118 kind:function(arm,size=0xc) addr:0x02119118
@@ -15,17 +15,17 @@ _ZN19ActorProfileUnkRCFOC1Ev kind:function(arm,size=0x28) addr:0x0211937c
_ZN12ActorUnkRCFOC1Ev kind:function(arm,size=0xe0) addr:0x021193a4
_ZN12ActorUnkRCFOD1Ev kind:function(arm,size=0x3c) addr:0x02119484
_ZN12ActorUnkRCFOD0Ev kind:function(arm,size=0x44) addr:0x021194c0
_ZN12ActorUnkRCFO19func_ov033_02119504Ev kind:function(arm,size=0x3c) addr:0x02119504
_ZN12ActorUnkRCFO19func_ov033_02119540Ev kind:function(arm,size=0xdc) addr:0x02119540
_ZN12ActorUnkRCFO19func_ov033_0211961cEv kind:function(arm,size=0x20c) addr:0x0211961c
_ZN12ActorUnkRCFO19func_ov033_02119828Ev kind:function(arm,size=0x14) addr:0x02119828
_ZN12ActorUnkRCFO19func_ov033_0211983cEv kind:function(arm,size=0x4) addr:0x0211983c
_ZN12ActorUnkRCFO19func_ov033_02119840Ev kind:function(arm,size=0x1b4) addr:0x02119840
_ZN12ActorUnkRCFO4InitEi kind:function(arm,size=0x3c) addr:0x02119504
_ZN12ActorUnkRCFO5SetupEv kind:function(arm,size=0xdc) addr:0x02119540
_ZN12ActorUnkRCFO6UpdateEv kind:function(arm,size=0x20c) addr:0x0211961c
_ZN12ActorUnkRCFO8vfunc_24Ev kind:function(arm,size=0x14) addr:0x02119828
_ZN12ActorUnkRCFO8vfunc_2CEi kind:function(arm,size=0x4) addr:0x0211983c
_ZN12ActorUnkRCFO19func_ov033_02119840Eii kind:function(arm,size=0x1b4) addr:0x02119840
_ZN12ActorUnkRCFO19func_ov033_021199f4Ev kind:function(arm,size=0x64) addr:0x021199f4
_ZN12ActorUnkRCFO19func_ov033_02119a58Ev kind:function(arm,size=0x16c) addr:0x02119a58
_ZN12ActorUnkRCFO19func_ov033_02119bc4Ev kind:function(arm,size=0x13c) addr:0x02119bc4
_ZN12ActorUnkRCFO19func_ov033_02119d00Ev kind:function(arm,size=0x40) addr:0x02119d00
_ZN12ActorUnkRCFO19func_ov033_02119d40Ev kind:function(arm,size=0x2c) addr:0x02119d40
_ZN16ActorUnkRCFO_DFCC1EP16ActorUnkRCFO_910 kind:function(arm,size=0x40) addr:0x02119d00
_ZN16ActorUnkRCFO_DFC8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x02119d40
_ZN19ActorProfileUnkRCFOD1Ev kind:function(arm,size=0x14) addr:0x02119d6c
_ZN23MapObjectProfileUnkDOPA10GetProfileEv kind:function(arm,size=0xc) addr:0x02119d80
_ZN23MapObjectProfileUnkDOPA6CreateEv kind:function(arm,size=0x24) addr:0x02119d8c
@@ -148,16 +148,15 @@ __sinit_MapObjectUnkRCFL.cpp kind:function(arm,size=0x50) addr:0x021210fc
.p__sinit_ActorUnkRCFO.cpp kind:data(word) addr:0x0212114c
.p__sinit_MapObjectUnkDOPA.cpp kind:data(word) addr:0x02121150
.p__sinit_MapObjectUnkRCFL.cpp kind:data(word) addr:0x02121154
data_ov033_02121160 kind:data(any) addr:0x02121160
data_ov033_02121164 kind:data(any) addr:0x02121164
data_ov033_02121168 kind:data(any) addr:0x02121168
data_ov033_0212116c kind:data(any) addr:0x0212116c
data_ov033_02121178 kind:data(any) addr:0x02121178
data_ov033_0212118c kind:data(any) addr:0x0212118c
@4913 kind:data(byte[2]) addr:0x02121160
@4914 kind:data(byte[3]) addr:0x02121164
@4915 kind:data(byte[4]) addr:0x02121168
@4916 kind:data(byte[9]) addr:0x0212116c
@4917 kind:data(byte[9]) addr:0x02121178
_ZTV16ActorUnkRCFO_DFC kind:data(any) addr:0x02121184
data_ov033_02121190 kind:data(any) addr:0x02121190
_ZTV19data_ov033_021211a4 kind:data(any) addr:0x021211a4
_ZTV19data_ov033_021211c8 kind:data(any) addr:0x021211c8
_ZTV19data_ov033_021211f0 kind:data(any) addr:0x021211f0 ambiguous
_ZTV19ActorProfileUnkRCFO kind:data(any) addr:0x021211a4
_ZTV12ActorUnkRCFO kind:data(any) addr:0x021211c8
data_ov033_02121224 kind:data(any) addr:0x02121224
data_ov033_02121228 kind:data(any) addr:0x02121228
data_ov033_0212122c kind:data(any) addr:0x0212122c
+2 -2
View File
@@ -282,9 +282,9 @@ func_ov000_0205b090 kind:function(arm,size=0x1c) addr:0x0205b090
func_ov000_0205b0ac kind:function(arm,size=0x20) addr:0x0205b0ac
func_ov000_0205b0cc kind:function(arm,size=0x7c) addr:0x0205b0cc
func_ov000_0205b148 kind:function(arm,size=0x84) addr:0x0205b148
func_ov000_0205b1cc kind:function(arm,size=0xc) addr:0x0205b1cc
_ZN16ActorUnkRCFO_910C1EP5Vec2si kind:function(arm,size=0xc) addr:0x0205b1cc
func_ov000_0205b1d8 kind:function(arm,size=0x4c) addr:0x0205b1d8
func_ov000_0205b224 kind:function(arm,size=0xb0) addr:0x0205b224
_ZN16ActorUnkRCFO_91019func_ov000_0205b224Eii kind:function(arm,size=0xb0) addr:0x0205b224
func_ov000_0205b2d4 kind:function(arm,size=0x50) addr:0x0205b2d4
func_ov000_0205b324 kind:function(arm,size=0x50) addr:0x0205b324
func_ov000_0205b374 kind:function(arm,size=0x18) addr:0x0205b374
@@ -9,6 +9,7 @@ src/033_MapA2/Actor/ActorUnkRCFO.cpp:
.text start:0x02119488 end:0x02119ec0
.init start:0x0212117c end:0x021211cc
.ctor start:0x0212128c end:0x02121290
.data start:0x021212a0 end:0x02121364
.bss start:0x02121da4 end:0x02121df4
src/033_MapA2/MapObject/MapObjectUnkDOPA.cpp:
+5 -5
View File
@@ -18,24 +18,24 @@ from:0x02119490 kind:load to:0x02121db4 module:overlay(33)
from:0x021194a4 kind:arm_call to:0x02011f3c module:main
from:0x021194b0 kind:arm_call to:0x021194e4 module:overlay(33)
from:0x021194c8 kind:arm_call to:0x020976d0 module:overlay(0)
from:0x021194e0 kind:load to:0x021212ec module:overlay(33)
from:0x021194e0 kind:load to:0x021212e4 module:overlay(33) add:0x8
from:0x021194ec kind:arm_call to:0x020983dc module:overlay(0)
from:0x021194fc kind:arm_call to:0x02119100 module:overlay(33)
from:0x02119510 kind:arm_call to:0x0205b1cc module:overlay(0)
from:0x02119570 kind:arm_call to:0x02119e40 module:overlay(33)
from:0x02119584 kind:arm_call to:0x02028c90 module:main
from:0x021195bc kind:load to:0x02121310 module:overlay(33)
from:0x021195bc kind:load to:0x02121308 module:overlay(33) add:0x8
from:0x021195d8 kind:arm_call to:0x0211921c module:overlay(33)
from:0x021195e0 kind:arm_call to:0x02016694 module:main
from:0x021195e8 kind:arm_call to:0x02119184 module:overlay(33)
from:0x021195f0 kind:arm_call to:0x020984dc module:overlay(0)
from:0x021195fc kind:load to:0x02121310 module:overlay(33)
from:0x021195fc kind:load to:0x02121308 module:overlay(33) add:0x8
from:0x02119614 kind:arm_call to:0x0211921c module:overlay(33)
from:0x0211961c kind:arm_call to:0x02016694 module:main
from:0x02119624 kind:arm_call to:0x02119184 module:overlay(33)
from:0x0211962c kind:arm_call to:0x020984dc module:overlay(0)
from:0x02119634 kind:arm_call to:0x02011ff4 module:main
from:0x02119640 kind:load to:0x02121310 module:overlay(33)
from:0x02119640 kind:load to:0x02121308 module:overlay(33) add:0x8
from:0x0211965c kind:arm_call to:0x02119188 module:overlay(33)
from:0x02119670 kind:arm_call to:0x02119980 module:overlay(33)
from:0x0211967c kind:load to:0x0211dd20 module:overlay(33)
@@ -84,7 +84,7 @@ from:0x02119e34 kind:load to:0x021215e0 module:overlay(33)
from:0x02119e38 kind:load to:0x0211dd0c module:overlay(33)
from:0x02119e3c kind:load to:0x0211dce4 module:overlay(33)
from:0x02119e50 kind:arm_call to:0x0201667c module:main
from:0x02119e7c kind:load to:0x021212cc module:overlay(33)
from:0x02119e7c kind:load to:0x021212c4 module:overlay(33) add:0x8
from:0x02119ea0 kind:arm_call to:0x0205b224 module:overlay(0)
from:0x02119eb4 kind:arm_call to:0x02097778 module:overlay(0)
from:0x02119ec8 kind:load to:0x02121e0c module:overlay(33)
+28 -29
View File
@@ -1,7 +1,7 @@
func_ov033_02118fc0 kind:function(arm,size=0x84) addr:0x02119100
func_ov033_02119044 kind:function(arm,size=0x4) addr:0x02119184
func_ov033_02119048 kind:function(arm,size=0x94) addr:0x02119188
func_ov033_021190dc kind:function(arm,size=0x18) addr:0x0211921c
_ZN16ActorUnkRCFO_094C1Ev kind:function(arm,size=0x84) addr:0x02119100
_ZN16ActorUnkRCFO_094D1Ev kind:function(arm,size=0x4) addr:0x02119184
_ZN16ActorUnkRCFO_09419func_ov033_02119048EPi kind:function(arm,size=0x94) addr:0x02119188
_ZN16ActorUnkRCFO_09419func_ov033_021190dcEv kind:function(arm,size=0x18) addr:0x0211921c
func_ov033_021190f4 kind:function(arm,size=0x18) addr:0x02119234
func_ov033_0211910c kind:function(arm,size=0xc) addr:0x0211924c
func_ov033_02119118 kind:function(arm,size=0xc) addr:0x02119258
@@ -15,17 +15,17 @@ _ZN19ActorProfileUnkRCFOC1Ev kind:function(arm,size=0x28) addr:0x021194bc
_ZN12ActorUnkRCFOC1Ev kind:function(arm,size=0xe0) addr:0x021194e4
_ZN12ActorUnkRCFOD1Ev kind:function(arm,size=0x3c) addr:0x021195c4
_ZN12ActorUnkRCFOD0Ev kind:function(arm,size=0x44) addr:0x02119600
_ZN12ActorUnkRCFO19func_ov033_02119504Ev kind:function(arm,size=0x3c) addr:0x02119644
_ZN12ActorUnkRCFO19func_ov033_02119540Ev kind:function(arm,size=0xdc) addr:0x02119680
_ZN12ActorUnkRCFO19func_ov033_0211961cEv kind:function(arm,size=0x20c) addr:0x0211975c
_ZN12ActorUnkRCFO19func_ov033_02119828Ev kind:function(arm,size=0x14) addr:0x02119968
_ZN12ActorUnkRCFO19func_ov033_0211983cEv kind:function(arm,size=0x4) addr:0x0211997c
_ZN12ActorUnkRCFO19func_ov033_02119840Ev kind:function(arm,size=0x1b4) addr:0x02119980
_ZN12ActorUnkRCFO4InitEi kind:function(arm,size=0x3c) addr:0x02119644
_ZN12ActorUnkRCFO5SetupEv kind:function(arm,size=0xdc) addr:0x02119680
_ZN12ActorUnkRCFO6UpdateEv kind:function(arm,size=0x20c) addr:0x0211975c
_ZN12ActorUnkRCFO8vfunc_24Ev kind:function(arm,size=0x14) addr:0x02119968
_ZN12ActorUnkRCFO8vfunc_2CEi kind:function(arm,size=0x4) addr:0x0211997c
_ZN12ActorUnkRCFO19func_ov033_02119840Eii kind:function(arm,size=0x1b4) addr:0x02119980
_ZN12ActorUnkRCFO19func_ov033_021199f4Ev kind:function(arm,size=0x64) addr:0x02119b34
_ZN12ActorUnkRCFO19func_ov033_02119a58Ev kind:function(arm,size=0x16c) addr:0x02119b98
_ZN12ActorUnkRCFO19func_ov033_02119bc4Ev kind:function(arm,size=0x13c) addr:0x02119d04
_ZN12ActorUnkRCFO19func_ov033_02119d00Ev kind:function(arm,size=0x40) addr:0x02119e40
_ZN12ActorUnkRCFO19func_ov033_02119d40Ev kind:function(arm,size=0x2c) addr:0x02119e80
_ZN16ActorUnkRCFO_DFCC1EP16ActorUnkRCFO_910 kind:function(arm,size=0x40) addr:0x02119e40
_ZN16ActorUnkRCFO_DFC8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x02119e80
_ZN19ActorProfileUnkRCFOD1Ev kind:function(arm,size=0x14) addr:0x02119eac
_ZN23MapObjectProfileUnkDOPA10GetProfileEv kind:function(arm,size=0xc) addr:0x02119ec0
_ZN23MapObjectProfileUnkDOPA6CreateEv kind:function(arm,size=0x24) addr:0x02119ecc
@@ -100,7 +100,7 @@ func_ov033_0211d774 kind:function(arm,size=0x430) addr:0x0211d8b4
data_ov033_0211dce4 kind:data(any) addr:0x0211dce4
data_ov033_0211dcf8 kind:data(any) addr:0x0211dcf8
data_ov033_0211dd0c kind:data(any) addr:0x0211dd0c
data_ov033_0211dd20 kind:data(any) addr:0x0211dd20
data_ov033_0211dbe0 kind:data(any) addr:0x0211dd20
data_ov033_0211dd34 kind:data(any) addr:0x0211dd34
data_ov033_0211df6c kind:data(any) addr:0x0211df6c ambiguous
data_ov033_0211e0a8 kind:data(any) addr:0x0211e0a8 ambiguous
@@ -141,23 +141,22 @@ data_ov033_0212112c kind:data(any) addr:0x0212112c
data_ov033_0212113c kind:data(any) addr:0x0212113c
data_ov033_0212114c kind:data(any) addr:0x0212114c
data_ov033_0212115c kind:data(any) addr:0x0212115c
data_ov033_0212116c kind:data(any) addr:0x0212116c
__sinit_ov033_0212117c kind:function(arm,size=0x50) addr:0x0212117c
@4916 kind:data(any) addr:0x0212116c
__sinit_ActorUnkRCFO.cpp kind:function(arm,size=0x50) addr:0x0212117c
__sinit_ov033_021211cc kind:function(arm,size=0x70) addr:0x021211cc
__sinit_ov033_0212123c kind:function(arm,size=0x50) addr:0x0212123c
.p__sinit_ov033_0212117c kind:data(word) addr:0x0212128c
.p__sinit_ActorUnkRCFO.cpp kind:data(word) addr:0x0212128c
.p__sinit_ov033_021211cc kind:data(word) addr:0x02121290
.p__sinit_ov033_0212123c kind:data(word) addr:0x02121294
data_ov033_021212a0 kind:data(any) addr:0x021212a0
data_ov033_021212a4 kind:data(any) addr:0x021212a4
data_ov033_021212a8 kind:data(any) addr:0x021212a8
data_ov033_021212ac kind:data(any) addr:0x021212ac
data_ov033_021212b8 kind:data(any) addr:0x021212b8
data_ov033_021212cc kind:data(any) addr:0x021212cc
data_ov033_021212d0 kind:data(any) addr:0x021212d0
data_ov033_021212ec kind:data(any) addr:0x021212ec
data_ov033_02121310 kind:data(any) addr:0x02121310
data_ov033_02121318 kind:data(any) addr:0x02121318 ambiguous
@8266 kind:data(byte[2]) addr:0x021212a0
@8267 kind:data(byte[3]) addr:0x021212a4
@8268 kind:data(byte[4]) addr:0x021212a8
@8270 kind:data(byte[9]) addr:0x021212ac
@8269 kind:data(byte[9]) addr:0x021212b8
_ZTV16ActorUnkRCFO_DFC kind:data(any) addr:0x021212c4
data_ov033_02121190 kind:data(any) addr:0x021212d0
_ZTV19ActorProfileUnkRCFO kind:data(any) addr:0x021212e4
_ZTV12ActorUnkRCFO kind:data(any) addr:0x02121308
data_ov033_02121364 kind:data(any) addr:0x02121364
data_ov033_02121368 kind:data(any) addr:0x02121368
data_ov033_0212136c kind:data(any) addr:0x0212136c
@@ -317,9 +316,9 @@ data_ov033_0212198c kind:data(any) addr:0x0212198c
data_ov033_021219a8 kind:data(any) addr:0x021219a8
data_ov033_02121a00 kind:bss addr:0x02121a00
data_ov033_02121a04 kind:bss addr:0x02121a04
data_ov033_02121da4 kind:bss addr:0x02121da4
data_ov033_02121da8 kind:bss addr:0x02121da8
data_ov033_02121db4 kind:bss addr:0x02121db4
_ZGVN15ProfileInstanceI19ActorProfileUnkRCFOE8sProfileE kind:bss addr:0x02121da4
@8262 kind:bss addr:0x02121da8
_ZN15ProfileInstanceI19ActorProfileUnkRCFOE8sProfileE kind:bss addr:0x02121db4
data_ov033_02121df0 kind:bss addr:0x02121df0
data_ov033_02121df4 kind:bss addr:0x02121df4
data_ov033_02121e00 kind:bss addr:0x02121e00
+2 -2
View File
@@ -282,9 +282,9 @@ func_ov000_0205b090 kind:function(arm,size=0x1c) addr:0x0205c618
func_ov000_0205b0ac kind:function(arm,size=0x20) addr:0x0205c634
func_ov000_0205b0cc kind:function(arm,size=0x7c) addr:0x0205c654
func_ov000_0205b148 kind:function(arm,size=0x84) addr:0x0205c6d0
func_ov000_0205b1cc kind:function(arm,size=0xc) addr:0x0205c754
_ZN16ActorUnkRCFO_910C1EP5Vec2si kind:function(arm,size=0xc) addr:0x0205c754
func_ov000_0205b1d8 kind:function(arm,size=0x4c) addr:0x0205c760
func_ov000_0205b224 kind:function(arm,size=0xb0) addr:0x0205c7ac
_ZN16ActorUnkRCFO_91019func_ov000_0205b224Eii kind:function(arm,size=0xb0) addr:0x0205c7ac
func_ov000_0205b2d4 kind:function(arm,size=0x50) addr:0x0205c85c
func_ov000_0205b324 kind:function(arm,size=0x50) addr:0x0205c8ac
func_ov000_0205b374 kind:function(arm,size=0x18) addr:0x0205c8fc
@@ -9,6 +9,7 @@ src/033_MapA2/Actor/ActorUnkRCFO.cpp:
.text start:0x0211b0e8 end:0x0211bb20
.init start:0x02122e08 end:0x02122e58
.ctor start:0x02122f18 end:0x02122f1c
.data start:0x02122f40 end:0x02123004
.bss start:0x02123a44 end:0x02123a94
src/033_MapA2/MapObject/MapObjectUnkDOPA.cpp:
+1 -1
View File
@@ -84,7 +84,7 @@ from:0x0211ba94 kind:load to:0x02123280 module:overlay(33)
from:0x0211ba98 kind:load to:0x0211f96c module:overlay(33)
from:0x0211ba9c kind:load to:0x0211f944 module:overlay(33)
from:0x0211bab0 kind:arm_call to:0x02016614 module:main
from:0x0211badc kind:load to:0x02122f6c module:overlay(33)
from:0x0211badc kind:load to:0x02122f64 module:overlay(33) add:0x8
from:0x0211bb00 kind:arm_call to:0x0205c7ac module:overlay(0)
from:0x0211bb14 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x0211bb28 kind:load to:0x02123aac module:overlay(33)
+21 -21
View File
@@ -1,7 +1,7 @@
func_ov033_0211ad60 kind:function(arm,size=0x84) addr:0x0211ad60
func_ov033_0211ade4 kind:function(arm,size=0x4) addr:0x0211ade4
func_ov033_0211ade8 kind:function(arm,size=0x94) addr:0x0211ade8
func_ov033_0211ae7c kind:function(arm,size=0x18) addr:0x0211ae7c
_ZN16ActorUnkRCFO_094D1Ev kind:function(arm,size=0x4) addr:0x0211ade4
_ZN16ActorUnkRCFO_09419func_ov033_02119048EPi kind:function(arm,size=0x94) addr:0x0211ade8
_ZN16ActorUnkRCFO_09419func_ov033_021190dcEv kind:function(arm,size=0x18) addr:0x0211ae7c
func_ov033_0211ae94 kind:function(arm,size=0x18) addr:0x0211ae94
func_ov033_0211aeac kind:function(arm,size=0xc) addr:0x0211aeac
func_ov033_0211aeb8 kind:function(arm,size=0xc) addr:0x0211aeb8
@@ -15,17 +15,17 @@ _ZN19ActorProfileUnkRCFOC1Ev kind:function(arm,size=0x28) addr:0x0211b11c
_ZN12ActorUnkRCFOC1Ev kind:function(arm,size=0xe0) addr:0x0211b144
_ZN12ActorUnkRCFOD1Ev kind:function(arm,size=0x3c) addr:0x0211b224
_ZN12ActorUnkRCFOD0Ev kind:function(arm,size=0x44) addr:0x0211b260
_ZN12ActorUnkRCFO19func_ov033_02119504Ev kind:function(arm,size=0x3c) addr:0x0211b2a4
_ZN12ActorUnkRCFO19func_ov033_02119540Ev kind:function(arm,size=0xdc) addr:0x0211b2e0
_ZN12ActorUnkRCFO19func_ov033_0211961cEv kind:function(arm,size=0x20c) addr:0x0211b3bc
_ZN12ActorUnkRCFO19func_ov033_02119828Ev kind:function(arm,size=0x14) addr:0x0211b5c8
_ZN12ActorUnkRCFO19func_ov033_0211983cEv kind:function(arm,size=0x4) addr:0x0211b5dc
_ZN12ActorUnkRCFO19func_ov033_02119840Ev kind:function(arm,size=0x1b4) addr:0x0211b5e0
_ZN12ActorUnkRCFO4InitEi kind:function(arm,size=0x3c) addr:0x0211b2a4
_ZN12ActorUnkRCFO5SetupEv kind:function(arm,size=0xdc) addr:0x0211b2e0
_ZN12ActorUnkRCFO6UpdateEv kind:function(arm,size=0x20c) addr:0x0211b3bc
_ZN12ActorUnkRCFO8vfunc_24Ev kind:function(arm,size=0x14) addr:0x0211b5c8
_ZN12ActorUnkRCFO8vfunc_2CEi kind:function(arm,size=0x4) addr:0x0211b5dc
_ZN12ActorUnkRCFO19func_ov033_02119840Eii kind:function(arm,size=0x1b4) addr:0x0211b5e0
_ZN12ActorUnkRCFO19func_ov033_021199f4Ev kind:function(arm,size=0x64) addr:0x0211b794
_ZN12ActorUnkRCFO19func_ov033_02119a58Ev kind:function(arm,size=0x16c) addr:0x0211b7f8
_ZN12ActorUnkRCFO19func_ov033_02119bc4Ev kind:function(arm,size=0x13c) addr:0x0211b964
_ZN12ActorUnkRCFO19func_ov033_02119d00Ev kind:function(arm,size=0x40) addr:0x0211baa0
_ZN12ActorUnkRCFO19func_ov033_02119d40Ev kind:function(arm,size=0x2c) addr:0x0211bae0
_ZN16ActorUnkRCFO_DFCC1EP16ActorUnkRCFO_910 kind:function(arm,size=0x40) addr:0x0211baa0
_ZN16ActorUnkRCFO_DFC8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x0211bae0
_ZN19ActorProfileUnkRCFOD1Ev kind:function(arm,size=0x14) addr:0x0211bb0c
_ZN23MapObjectProfileUnkDOPA10GetProfileEv kind:function(arm,size=0xc) addr:0x0211bb20
_ZN23MapObjectProfileUnkDOPA6CreateEv kind:function(arm,size=0x24) addr:0x0211bb2c
@@ -100,7 +100,7 @@ func_ov033_0211f514 kind:function(arm,size=0x430) addr:0x0211f514
data_ov033_0211f944 kind:data(any) addr:0x0211f944
data_ov033_0211f958 kind:data(any) addr:0x0211f958
data_ov033_0211f96c kind:data(any) addr:0x0211f96c
data_ov033_0211f980 kind:data(any) addr:0x0211f980
data_ov033_0211dbe0 kind:data(any) addr:0x0211f980
data_ov033_0211f994 kind:data(any) addr:0x0211f994
data_ov033_0211fbcc kind:data(any) addr:0x0211fbcc ambiguous
data_ov033_0211fd08 kind:data(any) addr:0x0211fd08 ambiguous
@@ -147,15 +147,15 @@ __sinit_MapObjectUnkRCFL.cpp kind:function(arm,size=0x50) addr:0x02122ec8
.p__sinit_ActorUnkRCFO.cpp kind:data(word) addr:0x02122f18
.p__sinit_MapObjectUnkDOPA.cpp kind:data(word) addr:0x02122f1c
.p__sinit_MapObjectUnkRCFL.cpp kind:data(word) addr:0x02122f20
data_ov033_02122f40 kind:data(any) addr:0x02122f40
data_ov033_02122f44 kind:data(any) addr:0x02122f44
data_ov033_02122f48 kind:data(any) addr:0x02122f48
data_ov033_02122f4c kind:data(any) addr:0x02122f4c
data_ov033_02122f58 kind:data(any) addr:0x02122f58
data_ov033_02122f6c kind:data(any) addr:0x02122f6c
data_ov033_02122f70 kind:data(any) addr:0x02122f70
_ZTV19data_ov033_02122f84 kind:data(any) addr:0x02122f84
_ZTV19data_ov033_02122fa8 kind:data(any) addr:0x02122fa8
@8266 kind:data(byte[2]) addr:0x02122f40
@8267 kind:data(byte[3]) addr:0x02122f44
@8268 kind:data(byte[4]) addr:0x02122f48
@8270 kind:data(byte[9]) addr:0x02122f4c
@8269 kind:data(byte[9]) addr:0x02122f58
_ZTV16ActorUnkRCFO_DFC kind:data(any) addr:0x02122f64
data_ov033_02121190 kind:data(any) addr:0x02122f70
_ZTV19ActorProfileUnkRCFO kind:data(any) addr:0x02122f84
_ZTV12ActorUnkRCFO kind:data(any) addr:0x02122fa8
data_ov033_02123004 kind:data(any) addr:0x02123004
data_ov033_02123008 kind:data(any) addr:0x02123008
data_ov033_0212300c kind:data(any) addr:0x0212300c
+2 -2
View File
@@ -282,9 +282,9 @@ func_ov000_0205b090 kind:function(arm,size=0x1c) addr:0x0205b070
func_ov000_0205b0ac kind:function(arm,size=0x20) addr:0x0205b08c
func_ov000_0205b0cc kind:function(arm,size=0x7c) addr:0x0205b0ac
func_ov000_0205b148 kind:function(arm,size=0x84) addr:0x0205b128
func_ov000_0205b1cc kind:function(arm,size=0xc) addr:0x0205b1ac
_ZN16ActorUnkRCFO_910C1EP5Vec2si kind:function(arm,size=0xc) addr:0x0205b1ac
func_ov000_0205b1d8 kind:function(arm,size=0x4c) addr:0x0205b1b8
func_ov000_0205b224 kind:function(arm,size=0xb0) addr:0x0205b204
_ZN16ActorUnkRCFO_91019func_ov000_0205b224Eii kind:function(arm,size=0xb0) addr:0x0205b204
func_ov000_0205b2d4 kind:function(arm,size=0x50) addr:0x0205b2b4
func_ov000_0205b324 kind:function(arm,size=0x50) addr:0x0205b304
func_ov000_0205b374 kind:function(arm,size=0x18) addr:0x0205b354
@@ -9,6 +9,7 @@ src/033_MapA2/Actor/ActorUnkRCFO.cpp:
.text start:0x02119328 end:0x02119d60
.init start:0x0212101c end:0x0212106c
.ctor start:0x0212112c end:0x02121130
.data start:0x02121140 end:0x02121204
.bss start:0x02121c44 end:0x02121c94
src/033_MapA2/MapObject/MapObjectUnkDOPA.cpp:
+5 -5
View File
@@ -18,24 +18,24 @@ from:0x02119330 kind:load to:0x02121c54 module:overlay(33)
from:0x02119344 kind:arm_call to:0x02011f3c module:main
from:0x02119350 kind:arm_call to:0x02119384 module:overlay(33)
from:0x02119368 kind:arm_call to:0x0209765c module:overlay(0)
from:0x02119380 kind:load to:0x0212118c module:overlay(33)
from:0x02119380 kind:load to:0x02121184 module:overlay(33) add:0x8
from:0x0211938c kind:arm_call to:0x02098368 module:overlay(0)
from:0x0211939c kind:arm_call to:0x02118fa0 module:overlay(33)
from:0x021193b0 kind:arm_call to:0x0205b1ac module:overlay(0)
from:0x02119410 kind:arm_call to:0x02119ce0 module:overlay(33)
from:0x02119424 kind:arm_call to:0x02028c68 module:main
from:0x0211945c kind:load to:0x021211b0 module:overlay(33)
from:0x0211945c kind:load to:0x021211a8 module:overlay(33) add:0x8
from:0x02119478 kind:arm_call to:0x021190bc module:overlay(33)
from:0x02119480 kind:arm_call to:0x0201666c module:main
from:0x02119488 kind:arm_call to:0x02119024 module:overlay(33)
from:0x02119490 kind:arm_call to:0x02098468 module:overlay(0)
from:0x0211949c kind:load to:0x021211b0 module:overlay(33)
from:0x0211949c kind:load to:0x021211a8 module:overlay(33) add:0x8
from:0x021194b4 kind:arm_call to:0x021190bc module:overlay(33)
from:0x021194bc kind:arm_call to:0x0201666c module:main
from:0x021194c4 kind:arm_call to:0x02119024 module:overlay(33)
from:0x021194cc kind:arm_call to:0x02098468 module:overlay(0)
from:0x021194d4 kind:arm_call to:0x02011ff4 module:main
from:0x021194e0 kind:load to:0x021211b0 module:overlay(33)
from:0x021194e0 kind:load to:0x021211a8 module:overlay(33) add:0x8
from:0x021194fc kind:arm_call to:0x02119028 module:overlay(33)
from:0x02119510 kind:arm_call to:0x02119820 module:overlay(33)
from:0x0211951c kind:load to:0x0211dbc0 module:overlay(33)
@@ -84,7 +84,7 @@ from:0x02119cd4 kind:load to:0x02121480 module:overlay(33)
from:0x02119cd8 kind:load to:0x0211dbac module:overlay(33)
from:0x02119cdc kind:load to:0x0211db84 module:overlay(33)
from:0x02119cf0 kind:arm_call to:0x02016654 module:main
from:0x02119d1c kind:load to:0x0212116c module:overlay(33)
from:0x02119d1c kind:load to:0x02121164 module:overlay(33) add:0x8
from:0x02119d40 kind:arm_call to:0x0205b204 module:overlay(0)
from:0x02119d54 kind:arm_call to:0x02097704 module:overlay(0)
from:0x02119d68 kind:load to:0x02121cac module:overlay(33)
+27 -28
View File
@@ -1,7 +1,7 @@
func_ov033_02118fc0 kind:function(arm,size=0x84) addr:0x02118fa0
func_ov033_02119044 kind:function(arm,size=0x4) addr:0x02119024
func_ov033_02119048 kind:function(arm,size=0x94) addr:0x02119028
func_ov033_021190dc kind:function(arm,size=0x18) addr:0x021190bc
_ZN16ActorUnkRCFO_094C1Ev kind:function(arm,size=0x84) addr:0x02118fa0
_ZN16ActorUnkRCFO_094D1Ev kind:function(arm,size=0x4) addr:0x02119024
_ZN16ActorUnkRCFO_09419func_ov033_02119048EPi kind:function(arm,size=0x94) addr:0x02119028
_ZN16ActorUnkRCFO_09419func_ov033_021190dcEv kind:function(arm,size=0x18) addr:0x021190bc
func_ov033_021190f4 kind:function(arm,size=0x18) addr:0x021190d4
func_ov033_0211910c kind:function(arm,size=0xc) addr:0x021190ec
func_ov033_02119118 kind:function(arm,size=0xc) addr:0x021190f8
@@ -15,17 +15,17 @@ _ZN19ActorProfileUnkRCFOC1Ev kind:function(arm,size=0x28) addr:0x0211935c
_ZN12ActorUnkRCFOC1Ev kind:function(arm,size=0xe0) addr:0x02119384
_ZN12ActorUnkRCFOD1Ev kind:function(arm,size=0x3c) addr:0x02119464
_ZN12ActorUnkRCFOD0Ev kind:function(arm,size=0x44) addr:0x021194a0
_ZN12ActorUnkRCFO19func_ov033_02119504Ev kind:function(arm,size=0x3c) addr:0x021194e4
_ZN12ActorUnkRCFO19func_ov033_02119540Ev kind:function(arm,size=0xdc) addr:0x02119520
_ZN12ActorUnkRCFO19func_ov033_0211961cEv kind:function(arm,size=0x20c) addr:0x021195fc
_ZN12ActorUnkRCFO19func_ov033_02119828Ev kind:function(arm,size=0x14) addr:0x02119808
_ZN12ActorUnkRCFO19func_ov033_0211983cEv kind:function(arm,size=0x4) addr:0x0211981c
_ZN12ActorUnkRCFO19func_ov033_02119840Ev kind:function(arm,size=0x1b4) addr:0x02119820
_ZN12ActorUnkRCFO4InitEi kind:function(arm,size=0x3c) addr:0x021194e4
_ZN12ActorUnkRCFO5SetupEv kind:function(arm,size=0xdc) addr:0x02119520
_ZN12ActorUnkRCFO6UpdateEv kind:function(arm,size=0x20c) addr:0x021195fc
_ZN12ActorUnkRCFO8vfunc_24Ev kind:function(arm,size=0x14) addr:0x02119808
_ZN12ActorUnkRCFO8vfunc_2CEi kind:function(arm,size=0x4) addr:0x0211981c
_ZN12ActorUnkRCFO19func_ov033_02119840Eii kind:function(arm,size=0x1b4) addr:0x02119820
_ZN12ActorUnkRCFO19func_ov033_021199f4Ev kind:function(arm,size=0x64) addr:0x021199d4
_ZN12ActorUnkRCFO19func_ov033_02119a58Ev kind:function(arm,size=0x16c) addr:0x02119a38
_ZN12ActorUnkRCFO19func_ov033_02119bc4Ev kind:function(arm,size=0x13c) addr:0x02119ba4
_ZN12ActorUnkRCFO19func_ov033_02119d00Ev kind:function(arm,size=0x40) addr:0x02119ce0
_ZN12ActorUnkRCFO19func_ov033_02119d40Ev kind:function(arm,size=0x2c) addr:0x02119d20
_ZN16ActorUnkRCFO_DFCC1EP16ActorUnkRCFO_910 kind:function(arm,size=0x40) addr:0x02119ce0
_ZN16ActorUnkRCFO_DFC8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x02119d20
_ZN19ActorProfileUnkRCFOD1Ev kind:function(arm,size=0x14) addr:0x02119d4c
_ZN23MapObjectProfileUnkDOPA10GetProfileEv kind:function(arm,size=0xc) addr:0x02119d60
_ZN23MapObjectProfileUnkDOPA6CreateEv kind:function(arm,size=0x24) addr:0x02119d6c
@@ -100,7 +100,7 @@ func_ov033_0211d774 kind:function(arm,size=0x430) addr:0x0211d754
data_ov033_0211db84 kind:data(any) addr:0x0211db84
data_ov033_0211db98 kind:data(any) addr:0x0211db98
data_ov033_0211dbac kind:data(any) addr:0x0211dbac
data_ov033_0211dbc0 kind:data(any) addr:0x0211dbc0
data_ov033_0211dbe0 kind:data(any) addr:0x0211dbc0
data_ov033_0211dbd4 kind:data(any) addr:0x0211dbd4
data_ov033_0211de08 kind:data(any) addr:0x0211de08 ambiguous
data_ov033_0211df44 kind:data(any) addr:0x0211df44 ambiguous
@@ -142,22 +142,21 @@ data_ov033_02120fdc kind:data(any) addr:0x02120fdc
data_ov033_02120fec kind:data(any) addr:0x02120fec
data_ov033_02120ffc kind:data(any) addr:0x02120ffc
data_ov033_0212100c kind:data(any) addr:0x0212100c
__sinit_ov033_0212101c kind:function(arm,size=0x50) addr:0x0212101c
__sinit_ActorUnkRCFO.cpp kind:function(arm,size=0x50) addr:0x0212101c
__sinit_ov033_0212106c kind:function(arm,size=0x70) addr:0x0212106c
__sinit_ov033_021210dc kind:function(arm,size=0x50) addr:0x021210dc
.p__sinit_ov033_0212101c kind:data(word) addr:0x0212112c
.p__sinit_ActorUnkRCFO.cpp kind:data(word) addr:0x0212112c
.p__sinit_ov033_0212106c kind:data(word) addr:0x02121130
.p__sinit_ov033_021210dc kind:data(word) addr:0x02121134
data_ov033_02121140 kind:data(any) addr:0x02121140
data_ov033_02121144 kind:data(any) addr:0x02121144
data_ov033_02121148 kind:data(any) addr:0x02121148
data_ov033_0212114c kind:data(any) addr:0x0212114c
data_ov033_02121158 kind:data(any) addr:0x02121158
data_ov033_0212116c kind:data(any) addr:0x0212116c
data_ov033_02121170 kind:data(any) addr:0x02121170
data_ov033_0212118c kind:data(any) addr:0x0212118c
data_ov033_021211b0 kind:data(any) addr:0x021211b0
data_ov033_021211d8 kind:data(any) addr:0x021211d8 ambiguous
@8265 kind:data(byte[2]) addr:0x02121140
@8266 kind:data(byte[3]) addr:0x02121144
@8267 kind:data(byte[4]) addr:0x02121148
@8269 kind:data(byte[9]) addr:0x0212114c
@8268 kind:data(byte[9]) addr:0x02121158
_ZTV16ActorUnkRCFO_DFC kind:data(any) addr:0x02121164
data_ov033_02121190 kind:data(any) addr:0x02121170
_ZTV19ActorProfileUnkRCFO kind:data(any) addr:0x02121184
_ZTV12ActorUnkRCFO kind:data(any) addr:0x021211a8
data_ov033_02121204 kind:data(any) addr:0x02121204
data_ov033_02121208 kind:data(any) addr:0x02121208
data_ov033_0212120c kind:data(any) addr:0x0212120c
@@ -317,9 +316,9 @@ data_ov033_0212182c kind:data(any) addr:0x0212182c
data_ov033_02121848 kind:data(any) addr:0x02121848
data_ov033_021218a0 kind:bss addr:0x021218a0
data_ov033_021218a4 kind:bss addr:0x021218a4
data_ov033_02121c44 kind:bss addr:0x02121c44
data_ov033_02121c48 kind:bss addr:0x02121c48
data_ov033_02121c54 kind:bss addr:0x02121c54
_ZGVN15ProfileInstanceI19ActorProfileUnkRCFOE8sProfileE kind:bss addr:0x02121c44
@8261 kind:bss addr:0x02121c48
_ZN15ProfileInstanceI19ActorProfileUnkRCFOE8sProfileE kind:bss addr:0x02121c54
data_ov033_02121c90 kind:bss addr:0x02121c90
data_ov033_02121c94 kind:bss addr:0x02121c94
data_ov033_02121ca0 kind:bss addr:0x02121ca0
+1 -1
View File
@@ -126,7 +126,7 @@ public:
/* 268 */ ActorLobarrierShield *shield;
/* 26C */ fx16 mUnk_26C; // Some kind of angle, probably
/* 26E */ PAD(0x26E, 0x270);
/* 270 */ unk32 mUnk_270;
/* 270 */ fx32 mUnk_270;
/* 274 */ u16 mUnk_274;
/* 276 */ s8 mUnk_276;
/* 277 */ s8 mUnk_277;
+1 -1
View File
@@ -101,7 +101,7 @@ public:
/* 1FC */ PAD(0x1FC, 0x218);
/* 218 */ unk16 mUnk_218;
/* 21C */ unk32 mUnk_21C;
/* 220 */ unk32 mUnk_220;
/* 220 */ fx32 mUnk_220;
/* 224 */ unk16 mUnk_224;
/* 228 */ Actor_9C mUnk_228;
/* 248 */ UnkStruct_ActorLobarrier_224 mUnk_248;
+1 -1
View File
@@ -13,7 +13,7 @@ public:
/* 098 */ ModelRender mUnk_098;
/* 0F8 */ ActorUnkZLSL_27CC mUnk_0F8;
/* 154 */ ActorUnkZLSL_27CC mUnk_154;
/* 1B0 */ unk32 mUnk_1B0;
/* 1B0 */ fx32 mUnk_1B0;
/* 1B4 */
ActorUnkEFSB();
+71 -21
View File
@@ -1,42 +1,92 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "MapObject/MapObjectUnkRCFL.hpp"
#include "global.h"
#include "types.h"
class ActorUnkRCFO_C4 : public Actor_C4 {
class ActorUnkRCFO_094 {
public:
ActorUnkRCFO_C4(Actor *param1);
/* 00 */ unk32 mUnk_00;
/* 04 */
/* 00 */ virtual bool vfunc_00(RefStruct ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
ActorUnkRCFO_094();
~ActorUnkRCFO_094();
void func_ov033_02119048(unk32 *param1);
void func_ov033_021190dc();
void func_ov033_021190f4();
};
class ActorUnkRCFO_910 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */
ActorUnkRCFO_910(Vec2s *param1, unk32 param2); // func_ov000_0205b1cc
void func_ov000_0205b1d8(Vec2s *param1);
void func_ov000_0205b224(unk32 param1, unk32 param2);
};
class ActorUnkRCFO_DFC_Base : public LinkList<ActorUnkRCFO_DFC_Base> {
public:
/* 00 */
/* 0C */ unk32 mUnk_0C;
/* 10 */
ActorUnkRCFO_DFC_Base() :
mUnk_0C() {}
};
class ActorUnkRCFO_DFC : public ActorUnkRCFO_DFC_Base {
public:
/* 00 (base) */
/* 10 */ ActorUnkRCFO_910 *mUnk_10;
/* 14 */ bool mUnk_14;
/* 15 */ bool mUnk_15;
/* 16 */
ActorUnkRCFO_DFC(ActorUnkRCFO_910 *param1);
virtual void vfunc_00();
};
class ActorUnkRCFO : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 000 (base) */
/* 094 */ ActorUnkRCFO_094 mUnk_094;
/* 098 */ PAD(0x098, 0x910);
/* 910 */ ActorUnkRCFO_910 mUnk_910;
/* 914 */ PAD(0x918, 0x91C);
/* 91C */ Vec2s mUnk_91C[0xC8];
/* C3C */ MapObjectUnkRCFL *mUnk_C3C[0x64];
/* DDC */ MapObjectUnkRCFL **mUnk_DCC;
/* DD0 */ MapObjectUnkRCFL *mUnk_DD0;
/* DD4 */ unk32 mUnk_DD4;
/* DD8 */ Timer mUnk_DD8;
/* DDC */ VecFx32Cpp mUnk_DDC;
/* DE8 */ VecFx32Cpp mUnk_DE8;
/* DF4 */ unk32 mUnk_DF4;
/* DF8 */ unk32 mUnk_DF8;
/* DFC */ ActorUnkRCFO_DFC mUnk_DFC;
/* E14 */
ActorUnkRCFO();
/* 18 */ virtual bool Init(unk32 param1) override;
/* 1C */ virtual void Setup() override;
/* 20 */ virtual void Update() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 4C */ virtual ~ActorUnkRCFO() override;
void func_ov033_02119504(void);
void func_ov033_02119540(void);
void func_ov033_0211961c(void);
void func_ov033_02119828(void);
void func_ov033_0211983c(void);
void func_ov033_02119840(void);
void func_ov033_021199f4(void);
void func_ov033_02119a58(void);
void func_ov033_02119bc4(void);
void func_ov033_02119d00(void);
void func_ov033_02119d40(void);
void func_ov033_02119840(unk32 param1, unk32 param2);
void func_ov033_021199f4();
void func_ov033_02119a58();
bool func_ov033_02119bc4();
};
class ActorProfileUnkRCFO : public ActorProfile {
+2 -2
View File
@@ -88,7 +88,7 @@ void func_01ffa7a0(VecFx32 *, MtxFx33 *, VecFx32 *);
void func_01ffa9e8(MtxFx43 *, MtxFx43 *);
void func_01ffad5c(MtxFx43 *, MtxFx43 *, MtxFx43 *);
void func_01ffaf74(VecFx32 *, MtxFx43 *, VecFx32 *);
fx32 func_01ffb428(unk32, unk32);
fx32 func_01ffb428(fx32, fx32);
fx32 func_01ffb464(fx32);
fx32 func_01ffb66c(unk32, unk32);
unk32 func_01ffb6a8(unk32, unk32);
@@ -208,7 +208,7 @@ unk32 func_02032784(unk32 param1);
unk32 func_020328c8(void *, void *, size_t);
u16 func_02032920(void *param1, size_t param2);
unk32 func_02039d60(f32, unk32);
f32 func_02039f04(unk32);
f32 func_02039f04(fx32);
f32 func_0203ab58(unk32, f32);
f32 func_0203ad88(f32, unk32);
void func_02097bb8(void);
+1 -1
View File
@@ -21,7 +21,7 @@ public:
/* 00 (base MapObject) */
/* 40 (base MapObject_UnkStruct1_Derived2) */
/* 68 */ UnkStruct_PlayerGet_ec mUnk_68;
/* 6C */ unk32 mUnk_6C;
/* 6C */ fx32 mUnk_6C;
/* 70 */ unk32 mUnk_70;
/* 74 */ unk32 mUnk_74;
/* 78 */ u16 mUnk_78;
+6 -2
View File
@@ -10,7 +10,11 @@
class MapObjectUnkRCFL : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 40 */ unk32 mUnk_40;
/* 44 */ PAD(0x44, 0x60);
/* 60 */ unk32 mUnk_60;
/* 64 */ PAD(0x64, 0x68);
/* 68 */
MapObjectUnkRCFL();
@@ -23,7 +27,7 @@ public:
void func_ov033_0211bcac(void);
void func_ov033_0211bcc4(void);
void func_ov033_0211bcdc(void);
void func_ov033_0211bcf4(void);
fx32 func_ov033_0211bcf4();
void func_ov033_0211bcfc(void);
void func_ov033_0211bdac(void);
};
+1 -1
View File
@@ -149,7 +149,7 @@ public:
/* 04 */ fx32 mUnk_04;
/* 08 */ fx32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 10 */ fx32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */
+1 -1
View File
@@ -154,7 +154,7 @@ public:
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
unk32 func_0201ec30();
fx32 func_0201ec30();
void func_0201ebf8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
void Subprocess1_UnkValueSets() {
+1 -1
View File
@@ -276,7 +276,7 @@ void UnkStruct_ov019_020d24c8_28_270::func_ov019_020cf168() {
iVar4 += this->mUnk_7C[i];
}
iVar4_2 = ROUND_FX32(func_01ffb428(iVar4 * 0x1000, 0xF000));
iVar4_2 = ROUND_FX32(func_01ffb428(iVar4 * FX_F32_TO_FX32(1.0f), FX_F32_TO_FX32(15.0f)));
if (iVar4_2 > 0) {
this->mUnk_78[0] = 1;
@@ -556,7 +556,7 @@ void UnkStruct_ov024_020d8694_188::vfunc_00() {
void UnkStruct_ov024_020d8694_188::vfunc_04(unk8 *param1) {
MtxFx22 local;
local = data_027e0120;
local._11 = func_01ffb428(0x1000, this->mUnk_144.func_0201ec30());
local._11 = func_01ffb428(FX_F32_TO_FX32(1.0f), this->mUnk_144.func_0201ec30());
UnkDataStruct1 local_30(&local, 0x40);
this->func_ov024_020cb654(param1, &local_30);
+5 -3
View File
@@ -22,12 +22,13 @@ ActorUnkEFSB::ActorUnkEFSB() :
mUnk_154(&this->mUnk_098, GET_PROFILE(ActorProfileUnkEFSB)->vfunc_04()) {}
bool ActorUnkEFSB::Init(unk32 param1) {
#pragma unused(param1)
this->mUnk_0F8.vfunc_1C(data_ov031_02114ed0[0], 0x1000, 0x11F, 0x0);
this->mUnk_154.func_ov000_02099ff8(data_ov031_02114ed0[0], 0x1000);
this->mUnk_1B0 = this->mUnk_5C.mParams[0] << 0xC;
if (this->mUnk_1B0 == 0) {
this->mUnk_1B0 = 0x1000;
if (this->mUnk_1B0 == FX_F32_TO_FX32(0.0f)) {
this->mUnk_1B0 = FX_F32_TO_FX32(1.0f);
}
this->vfunc_54(0x0);
@@ -51,10 +52,11 @@ void ActorUnkEFSB::vfunc_54(unk32 param1) {
}
void ActorUnkEFSB::vfunc_2C(unk32 param1) {
#pragma unused(param1)
VecFx32 vec;
VecFx32_Init(FX_F32_TO_FX32(1.0f), FX_F32_TO_FX32(1.0f), FX_F32_TO_FX32(1.0f), &vec);
vec.z = func_01ffb428(this->mUnk_1B0, 0x8000);
vec.z = func_01ffb428(this->mUnk_1B0, FX_F32_TO_FX32(8.0f));
VecFx32 sp0 = this->mPos;
sp0.y += FX_F32_TO_FX32(0.85f);
+9 -7
View File
@@ -54,7 +54,7 @@ UnkStruct_ov031_02117210::UnkStruct_ov031_02117210() {
MapObjectDoorBase::MapObjectDoorBase() :
mUnk_68(NULL) {
this->mUnk_6C = 0;
this->mUnk_6C = FX_F32_TO_FX32(0.0f);
this->mUnk_70 = 0x148;
this->mUnk_74 = -1;
this->mUnk_78 = 0x32;
@@ -317,8 +317,9 @@ void MapObjectDoorBase::vfunc_5C(MapObjState state, unk32 param2) {
this->mUnk_82 = 0;
this->mUnk_84 = 0x0D;
this->mUnk_80 =
(FX_MUL(INT_TO_FX32(this->mUnk_7A), func_01ffb428(this->mUnk_6C, 0x1000)) + FX_F32_TO_FX32(0.5f)) >> 12;
this->mUnk_80 = (FX_MUL(INT_TO_FX32(this->mUnk_7A), func_01ffb428(this->mUnk_6C, FX_F32_TO_FX32(1.0f))) +
FX_F32_TO_FX32(0.5f)) >>
12;
this->vfunc_50();
@@ -373,9 +374,10 @@ void MapObjectDoorBase::vfunc_5C(MapObjState state, unk32 param2) {
case MapObjDoorBaseState_3:
this->vfunc_7C();
this->mUnk_80 =
(FX_MUL(INT_TO_FX32(this->mUnk_78), func_01ffb428(0x1000 - this->mUnk_6C, 0x1000)) + FX_F32_TO_FX32(0.5f)) >>
12;
this->mUnk_80 = (FX_MUL(INT_TO_FX32(this->mUnk_78),
func_01ffb428(FX_F32_TO_FX32(1.0f) - this->mUnk_6C, FX_F32_TO_FX32(1.0f))) +
FX_F32_TO_FX32(0.5f)) >>
12;
if (this->mUnk_8A) {
this->mUnk_82 = 0;
@@ -465,7 +467,7 @@ void MapObjectDoorBase::vfunc_5C(MapObjState state, unk32 param2) {
this->func_ov031_020fcf0c(0);
this->mUnk_82 = 0;
this->mUnk_84 = 0;
this->mUnk_6C = 0x1000;
this->mUnk_6C = FX_F32_TO_FX32(1.0f);
break;
default:
break;
@@ -49,7 +49,7 @@ bool MapObjectDoorClick::Init(void) {
this->func_ov031_020fbf10(true, false);
this->mUnk_8B = true;
this->mUnk_6C = 0;
this->mUnk_6C = FX_F32_TO_FX32(0.0f);
this->func_ov031_020fcf0c(1);
this->mUnk_8D = false;
this->mUnk_88 = false;
@@ -253,7 +253,8 @@ void MapObjectDoorClick::vfunc_5C(MapObjState state, unk32 param2) {
case MapObjDoorClickState_3: {
this->vfunc_7C();
u16 result = ROUND_FX32(FX_MUL(func_01ffb428(0x1000 - this->mUnk_6C, 0x1000), INT_TO_FX32(this->mUnk_78)));
u16 result = ROUND_FX32(
FX_MUL(func_01ffb428(FX_F32_TO_FX32(1.0f) - this->mUnk_6C, FX_F32_TO_FX32(1.0f)), INT_TO_FX32(this->mUnk_78)));
this->mUnk_80 = result;
if (this->mUnk_8A) {
@@ -59,7 +59,7 @@ void MapObjectDoorDangerSpawn::Setup(void) {
VecFx32 auStack_20;
if (this->mUnk_20.mParams[1] == 2) {
this->mUnk_6C = 0;
this->mUnk_6C = FX_F32_TO_FX32(0.0f);
ptr = data_027e0cd8->mUnk_0C;
ptr->func_ov000_0208053c(this->mUnk_20.mParams[0]);
@@ -74,7 +74,7 @@ void MapObjectDoorDangerSpawn::Setup(void) {
if (this->mUnk_20.mParams[1] == 4) {
if (this->func_ov000_0209d29c(0) != 0) {
this->mUnk_6C = 0;
this->mUnk_6C = FX_F32_TO_FX32(0.0f);
this->MapObjectDoorBase::vfunc_5C(MapObjDoorDangerSpawnState_2, 1);
return;
}
@@ -276,7 +276,8 @@ void MapObjectDoorDangerSpawn::vfunc_5C(MapObjState state, unk32 param2) {
this->mUnk_8B = 1;
}
u16 result = ROUND_FX32(FX_MUL(func_01ffb428(0x1000 - this->mUnk_6C, 0x1000), INT_TO_FX32(this->mUnk_78)));
u16 result = ROUND_FX32(
FX_MUL(func_01ffb428(FX_F32_TO_FX32(1.0f) - this->mUnk_6C, FX_F32_TO_FX32(1.0f)), INT_TO_FX32(this->mUnk_78)));
this->mUnk_80 = result;
if (this->mUnk_8A) {
+3 -3
View File
@@ -308,8 +308,8 @@ void ActorFleeingSpinut::func_ov032_0211c07c() {
// non-matching (func_01ffb428 & sp8)
void ActorFleeingSpinut::func_ov032_0211c108() {
UnkStruct_PlayerGet_50 *pGet50 = this->mUnk_110.vfunc_28();
unk32 pGet50Unk8 = pGet50->mUnk_08;
unk32 pGet50Unk10 = pGet50->mUnk_10;
fx32 pGet50Unk8 = pGet50->mUnk_08;
fx32 pGet50Unk10 = pGet50->mUnk_10;
bool var;
if (this->mUnk_1BE % 2 == 0 || !data_027e0ce0->func_01fff1a4()) {
@@ -318,7 +318,7 @@ void ActorFleeingSpinut::func_ov032_0211c108() {
var = true;
}
unk32 temp_r5_2 = func_01ffb428(pGet50Unk10 - pGet50Unk8, 0x1000) >> 0xC;
unk32 temp_r5_2 = func_01ffb428(pGet50Unk10 - pGet50Unk8, FX_F32_TO_FX32(1.0f)) >> 0xC;
unk16 sp8;
func_ov000_020986b4(&sp8, this, var);
+17 -16
View File
@@ -67,7 +67,7 @@ ActorSpinut::ActorSpinut() :
mUnk_1BC(&this->mUnk_0B0, GET_PROFILE(ActorProfileSpinut)->vfunc_04()),
mUnk_218(0x0),
mUnk_21C(0x0),
mUnk_220(0x7B),
mUnk_220(FX_F32_TO_FX32(0.03f)),
mUnk_224(0x0),
mUnk_264(0x3800) {
SET_FLAG(this->mFlags, ActorFlag_6);
@@ -274,7 +274,7 @@ void ActorSpinut::func_ov032_02119990() {
this->mUnk_264 = 0x3800;
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
this->mUnk_220 = 0x7B;
this->mUnk_220 = FX_F32_TO_FX32(0.03f);
}
// non-matching (regalloc)
@@ -334,7 +334,7 @@ void ActorSpinut::func_ov032_02119be8() {
void ActorSpinut::func_ov032_02119c80() {
UnkStruct_PlayerGet_50 *playerGet50 = this->mUnk_110.vfunc_28();
fx32 val = func_01ffb428(playerGet50->mUnk_10 - playerGet50->mUnk_08, 0x14CD);
fx32 val = func_01ffb428(playerGet50->mUnk_10 - playerGet50->mUnk_08, FX_F32_TO_FX32(1.3f));
val >>= 0xC;
s16 var;
@@ -385,9 +385,10 @@ void ActorSpinut::func_ov032_02119df4() {
void ActorSpinut::func_ov032_02119e90() {
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x1000, 0x19A, 0x0);
this->mUnk_288.x = func_01ffb66c(0x1800, func_01ffb428(0x148, 0x14) >> 0xC);
this->mUnk_288.x =
func_01ffb66c(FX_F32_TO_FX32(1.5f), func_01ffb428(FX_F32_TO_FX32(0.08f), FX_F32_TO_FX32(0.005f)) >> 0xC);
this->mTimer.Set(0, 180);
this->mUnk_220 = 0x0;
this->mUnk_220 = FX_F32_TO_FX32(0.0f);
if (this->mUnk_5C.mParams[0] == 0x2) {
this->mUnk_264 = 0x14000;
@@ -407,15 +408,15 @@ void ActorSpinut::func_ov032_02119f40() {
switch (this->mUnk_218) {
case 0x0: {
this->mUnk_220 += 0x14;
this->mUnk_220 += FX_F32_TO_FX32(0.005f);
fx32 newValAdd = this->mUnk_110.vfunc_28()->mUnk_04 + this->mUnk_288.x;
this->mUnk_110.vfunc_28()->mUnk_04 = newValAdd;
if (this->mUnk_220 < 0x148) {
if (this->mUnk_220 < FX_F32_TO_FX32(0.08f)) {
break;
}
this->mUnk_220 = 0x148;
this->mUnk_220 = FX_F32_TO_FX32(0.08f);
this->mUnk_110.vfunc_28()->mUnk_04 = FX_F32_TO_FX32(2.5f);
++this->mUnk_218;
break;
@@ -436,13 +437,13 @@ void ActorSpinut::func_ov032_02119f40() {
case 0x2: {
fx32 newValSub = this->mUnk_110.vfunc_28()->mUnk_04 - this->mUnk_288.x;
this->mUnk_110.vfunc_28()->mUnk_04 = newValSub;
this->mUnk_220 -= 0x14;
this->mUnk_220 -= FX_F32_TO_FX32(0.005f);
if (this->mUnk_220 > 0x0) {
if (this->mUnk_220 > FX_F32_TO_FX32(0.0f)) {
break;
}
this->mUnk_220 = 0x0;
this->mUnk_220 = FX_F32_TO_FX32(0.0f);
this->mUnk_110.vfunc_28()->mUnk_04 = FX_F32_TO_FX32(1.0f);
this->SetState(ActorSpinutState_9);
@@ -463,7 +464,7 @@ void ActorSpinut::func_ov032_02119f40() {
void ActorSpinut::func_ov032_0211a140() {
this->mUnk_110.vfunc_1C(data_ov032_02122184, 0x2000, 0x19A, 0x0);
this->mUnk_220 = 0x11F;
this->mUnk_220 = FX_F32_TO_FX32(0.07f);
this->mUnk_264 = 0x4800;
unk32 var;
@@ -485,7 +486,7 @@ void ActorSpinut::func_ov032_0211a20c() {}
void ActorSpinut::func_ov032_0211a484() {
this->mUnk_110.vfunc_1C(data_ov032_02122184, this->mUnk_110.vfunc_28()->mUnk_04, 0x19A, 0x0);
fx32 val = func_01ffb428(this->mUnk_220, 0x14);
fx32 val = func_01ffb428(this->mUnk_220, FX_F32_TO_FX32(0.005f));
this->mUnk_288.x = func_01ffb66c(0x1000 - this->mUnk_110.vfunc_28()->mUnk_04, val >> 0xC);
}
@@ -495,7 +496,7 @@ void ActorSpinut::func_ov032_0211a52c() {
case 0x0: {
this->mUnk_110.vfunc_28()->mUnk_04 = this->mUnk_110.vfunc_28()->mUnk_04 + this->mUnk_288.x;
unk32 val = this->mUnk_220 - 0x14;
fx32 val = this->mUnk_220 - FX_F32_TO_FX32(0.005f);
fx32 sinValue = SIN((u16) this->mAngle.angle_s);
fx32 cosValue = COS((u16) this->mAngle.angle_s);
this->mUnk_220 = val;
@@ -503,13 +504,13 @@ void ActorSpinut::func_ov032_0211a52c() {
this->mVel.x = FX_MUL(sinValue, val);
this->mVel.z = FX_MUL(cosValue, val);
if (val > 0x0) {
if (val > FX_F32_TO_FX32(0.0f)) {
return;
}
this->mVel.x = FX_F32_TO_FX32(0.0f);
this->mVel.z = FX_F32_TO_FX32(0.0f);
this->mUnk_220 = 0x0;
this->mUnk_220 = FX_F32_TO_FX32(0.0f);
this->mUnk_110.vfunc_28()->mUnk_04 = FX_F32_TO_FX32(1.0f);
++this->mUnk_218;
+309 -15
View File
@@ -1,10 +1,17 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkRCFO.hpp"
#include "CommonFuncs.hpp"
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectManager.hpp"
#include "MapObject/MapObjectUnkRCFL.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_ov000_020b5214.hpp"
DECL_PROFILE(ActorProfileUnkRCFO);
char *data_ov033_02121190[] = {"-", "☆", "tri", "sitaboko", "umbrella"};
Actor *ActorProfileUnkRCFO::Create() {
return new(HeapIndex_2) ActorUnkRCFO();
}
@@ -12,19 +19,306 @@ Actor *ActorProfileUnkRCFO::Create() {
ActorProfileUnkRCFO::ActorProfileUnkRCFO() :
ActorProfile(ActorId_RCFO) {}
ActorUnkRCFO::ActorUnkRCFO() {}
// non-matching
ActorUnkRCFO::ActorUnkRCFO() :
mUnk_910(this->mUnk_91C, 0xC8),
mUnk_DCC(this->mUnk_C3C),
mUnk_DD0(NULL),
mUnk_DD4(0x5),
mUnk_DD8(0, 0),
mUnk_DDC(0x2710000, FX_F32_TO_FX32(0.0f), 0x2710000),
mUnk_DE8(-0x2710000, FX_F32_TO_FX32(0.0f), -0x2710000),
mUnk_DF8(-0x1),
mUnk_DFC(&this->mUnk_910) {
MI_CpuClearFast(this->mUnk_C3C, ARRAY_LEN(this->mUnk_C3C));
void ActorUnkRCFO::func_ov033_02119504(void) {}
void ActorUnkRCFO::func_ov033_02119540(void) {}
void ActorUnkRCFO::func_ov033_0211961c(void) {}
void ActorUnkRCFO::func_ov033_02119828(void) {}
void ActorUnkRCFO::func_ov033_0211983c(void) {}
void ActorUnkRCFO::func_ov033_02119840(void) {}
void ActorUnkRCFO::func_ov033_021199f4(void) {}
void ActorUnkRCFO::func_ov033_02119a58(void) {}
void ActorUnkRCFO::func_ov033_02119bc4(void) {}
void ActorUnkRCFO::func_ov033_02119d00(void) {}
void ActorUnkRCFO::func_ov033_02119d40(void) {}
Vec2s base_value(0, 0);
for (s32 i = 0; i < ARRAY_LEN(this->mUnk_91C); ++i) {
this->mUnk_91C[i] = base_value;
}
}
ActorUnkRCFO::~ActorUnkRCFO() {
this->mUnk_094.func_ov033_021190dc();
}
extern unk32 data_ov033_0211dbe0;
bool ActorUnkRCFO::Init(unk32 param1) {
#pragma unused(param1)
this->mUnk_DF4 = this->mUnk_5C.mParams[0];
this->mUnk_094.func_ov033_02119048(&data_ov033_0211dbe0);
this->func_ov033_02119840(0x0, 0x1);
return true;
}
void ActorUnkRCFO::Setup() {
this->mUnk_DCC = this->mUnk_C3C;
for (MapObject **mapObjectPtr = gpMapObjManager->mMapObjTable; mapObjectPtr != gpMapObjManager->mUnk_08; ++mapObjectPtr) {
MapObjectUnkRCFL *mapObject = (MapObjectUnkRCFL *) *mapObjectPtr;
if (mapObject == NULL || mapObject->GetMapObjectId() != MapObjectId_RCFL) {
continue;
}
fx32 delta = mapObject->func_ov033_0211bcf4();
fx32 limit = mapObject->mPos.x - delta;
if (limit < this->mUnk_DDC.vec.x) {
this->mUnk_DDC.vec.x = limit;
}
limit = mapObject->mPos.x + delta;
if (limit > this->mUnk_DE8.vec.x) {
this->mUnk_DE8.vec.x = limit;
}
limit = mapObject->mPos.z - delta;
if (limit < this->mUnk_DDC.vec.z) {
this->mUnk_DDC.vec.z = limit;
}
limit = mapObject->mPos.z + delta;
if (limit > this->mUnk_DE8.vec.z) {
this->mUnk_DE8.vec.z = limit;
}
if (this->mUnk_DCC != NULL) {
*mUnk_DCC = mapObject;
}
++this->mUnk_DCC;
}
}
void ActorUnkRCFO::Update() {
bool foundOneRCFL = false;
MapObjectUnkRCFL *lastValidRCFL = NULL;
for (MapObjectUnkRCFL **mapObjectPtr = this->mUnk_C3C; mapObjectPtr != this->mUnk_DCC; ++mapObjectPtr) {
MapObjectUnkRCFL *mapObject = *mapObjectPtr;
if (mapObject->mUnk_40 == 0x1) {
foundOneRCFL = true;
lastValidRCFL = mapObject;
}
}
switch (this->mUnk_DD4) {
case 0x0:
if (!foundOneRCFL) {
break;
}
if (lastValidRCFL->mUnk_60 == 0x1) {
this->func_ov033_02119840(0x1, 0x0);
break;
}
this->func_ov033_021199f4();
break;
case 0x1: {
if (!foundOneRCFL) {
this->func_ov033_02119840(0x0, 0x0);
break;
}
if (lastValidRCFL->mUnk_60 == 0x2) {
if (!this->func_ov033_02119bc4()) {
this->func_ov033_02119840(0x2, 0x0);
} else {
this->func_ov033_02119840(0x3, 0x0);
}
break;
}
this->func_ov033_02119a58();
unk32 delta = this->mUnk_910.mUnk_04 - this->mUnk_910.mUnk_00;
if ((u32) (delta / 4) >= 200) {
this->func_ov033_02119840(0x0, 0x0);
break;
}
break;
}
case 0x2: {
if (data_027e09b8->func_ov000_020732ec(this->mUnk_DF8) == 0x0) {
for (MapObjectUnkRCFL **mapObjectPtr = this->mUnk_C3C; mapObjectPtr != this->mUnk_DCC; ++mapObjectPtr) {
MapObjectUnkRCFL *mapObject = *mapObjectPtr;
mapObject->func_ov033_0211bcdc();
}
this->Actor::func_ov000_02098a88(0x0, 0x1);
this->func_ov033_02119840(0x4, 0x0);
break;
}
if (this->mUnk_DD8.GetValue() == 0x1E) {
for (MapObjectUnkRCFL **mapObjectPtr = this->mUnk_C3C; mapObjectPtr != this->mUnk_DCC; ++mapObjectPtr) {
MapObjectUnkRCFL *mapObject = *mapObjectPtr;
if (!(mapObject->mUnk_40 != 0x2 && mapObject->mUnk_40 != 0x1)) {
mapObject->func_ov033_0211bcc4();
}
}
data_ov000_020b5214_eur.func_ov000_0206db44(0x96);
}
break;
}
case 0x3:
this->func_ov033_02119840(0x0, 0x0);
return;
default:
break;
}
this->mUnk_DD0 = lastValidRCFL;
this->mUnk_DD8.Update();
}
void ActorUnkRCFO::vfunc_24() {
this->Update();
}
void ActorUnkRCFO::vfunc_2C(unk32 param1) {
#pragma unused(param1)
}
void ActorUnkRCFO::func_ov033_02119840(unk32 param1, unk32 param2) {
this->mUnk_DD4 = param1;
this->mUnk_DD8.Set(0x0, 0xFFFF);
switch (param1) {
case 0x0:
this->func_ov033_021199f4();
this->mUnk_910.mUnk_04 = this->mUnk_910.mUnk_00;
this->mUnk_DF8 = -0x1;
this->mUnk_DD0 = NULL;
if (param2 != 0x0) {
break;
}
data_ov000_020b5214_eur.func_ov000_0206db44(0x177);
break;
case 0x2: {
UnkStackStruct1 sp0C;
func_ov000_02072fd0(&sp0C);
sp0C.mUnk_08 = 0x3C;
sp0C.mUnk_00 = 0x80;
sp0C.mUnk_3A = 0x7;
sp0C.mUnk_18.Copy(0x1);
sp0C.mUnk_18.s.mUnk_08 += 0x10000;
sp0C.mUnk_38 |= 0x80;
VecFx32Cpp vec(this->mUnk_DE8.vec.x + this->mUnk_DDC.vec.x, this->mUnk_DE8.vec.y + this->mUnk_DDC.vec.y,
this->mUnk_DE8.vec.z + this->mUnk_DDC.vec.z);
func_01ff93c0(&vec.vec, FX_F32_TO_FX32(0.5f));
VecFx32_Copy(&vec.vec, &sp0C.mUnk_0C);
this->mUnk_DF8 = data_027e09b8->func_ov000_02073388(&sp0C, 0);
break;
}
case 0x3:
data_ov000_020b5214_eur.func_ov000_0206db44(0x97);
break;
case 0x1:
default:
break;
}
}
void ActorUnkRCFO::func_ov033_021199f4() {
for (MapObject **mapObjectPtr = gpMapObjManager->mMapObjTable; mapObjectPtr != gpMapObjManager->mUnk_08; ++mapObjectPtr) {
MapObjectUnkRCFL *mapObject = (MapObjectUnkRCFL *) *mapObjectPtr;
if (mapObject == NULL || mapObject->GetMapObjectId() != MapObjectId_RCFL) {
continue;
}
mapObject->func_ov033_0211bcac();
}
}
// non-matching
void ActorUnkRCFO::func_ov033_02119a58() {
VecFx32 *vec = data_027e0ce0->func_01fff148(0x1);
Vec2s sp;
sp.x = (func_01ffb428(vec->x - this->mUnk_DDC.vec.x, this->mUnk_DE8.vec.x - this->mUnk_DDC.vec.x) << 8) >> 0xC;
sp.y = (func_01ffb428(vec->z - this->mUnk_DDC.vec.z, this->mUnk_DE8.vec.z - this->mUnk_DDC.vec.z) * 0xC0) >> 0xC;
if (sp.x < 0) {
sp.x = 0;
}
if (sp.x > 0xFF) {
sp.x = 0xFF;
}
if (sp.y < 0) {
sp.y = 0;
}
if (sp.y > 0xBF) {
sp.y = 0xBF;
}
unk32 val = this->mUnk_910.mUnk_00;
unk32 delta = this->mUnk_910.mUnk_04 - val;
if ((u32) (delta / 4) == 0x0) {
this->mUnk_910.func_ov000_0205b1d8(&sp);
return;
}
Vec2s *newVal = (Vec2s *) (val + delta * 2);
bool cond = false;
// strange vec2s access
if (newVal->x == sp.x && newVal->y == sp.y) {
cond = true;
}
if (cond) {
return;
}
fx16 deltaX = ABS(sp.x - newVal->x);
fx16 deltaY = ABS(sp.y - newVal->y);
if (deltaX > 2 && deltaY > 2) {
this->mUnk_910.func_ov000_0205b1d8(&sp);
}
}
// non-matching
bool ActorUnkRCFO::func_ov033_02119bc4() {
this->mUnk_094.func_ov033_021190f4();
}
ActorUnkRCFO_DFC::ActorUnkRCFO_DFC(ActorUnkRCFO_910 *param1) :
mUnk_10(param1),
mUnk_14(true),
mUnk_15(false) {}
void ActorUnkRCFO_DFC::vfunc_00() {
if (!this->mUnk_14 || this->mUnk_10 == NULL) {
return;
}
this->mUnk_10->func_ov000_0205b224(0x2000, 0x7FBC);
}
ActorUnkRCFO::~ActorUnkRCFO() {}
ActorProfileUnkRCFO::~ActorProfileUnkRCFO() {}
+2 -2
View File
@@ -6,7 +6,7 @@
DECL_PROFILE(MapObjectProfileUnkRCFL);
MapObject *MapObjectProfileUnkRCFL::Create() {
return new(HeapIndex_2) MapObjectUnkRCFL();
return new(HeapIndex_ITCM) MapObjectUnkRCFL();
}
MapObjectProfileUnkRCFL::MapObjectProfileUnkRCFL() :
@@ -21,7 +21,7 @@ void MapObjectUnkRCFL::func_ov033_0211bc34(void) {}
void MapObjectUnkRCFL::func_ov033_0211bcac(void) {}
void MapObjectUnkRCFL::func_ov033_0211bcc4(void) {}
void MapObjectUnkRCFL::func_ov033_0211bcdc(void) {}
void MapObjectUnkRCFL::func_ov033_0211bcf4(void) {}
fx32 MapObjectUnkRCFL::func_ov033_0211bcf4() {}
void MapObjectUnkRCFL::func_ov033_0211bcfc(void) {}
void MapObjectUnkRCFL::func_ov033_0211bdac(void) {}
+53 -53
View File
@@ -158,7 +158,7 @@ ActorLobarrier::ActorLobarrier() :
mUnk_238(0, 0),
mUnk_250(mUnk_5C.mInitialPos),
mUnk_274(0),
mUnk_270(0xCD) {
mUnk_270(FX_F32_TO_FX32(0.05f)) {
SET_FLAG(mFlags, ActorFlag_6);
Actor_38 *actor_38 = (Actor_38 *) &mUnk_1F4;
mUnk_38 = actor_38;
@@ -183,7 +183,7 @@ bool ActorLobarrier::Init(unk32 param1) {
return true;
}
void ActorLobarrier::Setup(void) {
void ActorLobarrier::Setup() {
mUnk_26C = mUnk_5C.mInitialAngle;
s16 var;
@@ -208,7 +208,7 @@ void ActorLobarrier::Setup(void) {
this->SetState(ActorLobarrierState_Idle);
}
void ActorLobarrier::func_ov063_02158424(void) {
void ActorLobarrier::func_ov063_02158424() {
mUnk_274 = 0;
if (mState == 6) {
this->mUnk_238.Set(0, 20);
@@ -221,20 +221,20 @@ void ActorLobarrier::SetState(ActorState state) {
CALL_PTMF(PTMF<ActorLobarrier>, data_ov063_02162f58[mState]);
}
void ActorLobarrier::func_ov063_02158490(void) {
void ActorLobarrier::func_ov063_02158490() {
mUnk_48 -= mUnk_200.mUnk_1E;
this->func_ov017_020bf050(&mUnk_200, 1);
this->SetState(ActorLobarrierState_Dying);
}
void ActorLobarrier::vfunc_24(void) {
void ActorLobarrier::vfunc_24() {
if (data_027e09b8->HasAdventureFlag(AdventureFlag_VisitedIslandSanctuaryFirstTime)) {
this->Update();
}
}
// non-matching
void ActorLobarrier::Update(void) {
void ActorLobarrier::Update() {
this->mUnk_238.Update();
if (!this->func_ov017_020bef4c(0x4000) && mUnk_48 != 0 && mState != 4) {
@@ -441,19 +441,19 @@ void ActorLobarrier::vfunc_2C(unk32 param1) {
}
}
void ActorLobarrier::func_ov063_02158b0c(void) {
void ActorLobarrier::func_ov063_02158b0c() {
this->shield = NULL;
mUnk_38->mUnk_08 = 1;
mUnk_34 = (Cylinder *) &data_ov063_02162e90;
mUnk_30 = (Cylinder *) &data_ov063_02162e90;
}
void ActorLobarrier::func_ov063_02158b34(void) {
void ActorLobarrier::func_ov063_02158b34() {
mUnk_128.vfunc_1C(data_ov063_02163068, 0x1000, 0x19A, 0);
}
// non-matching
void ActorLobarrier::func_ov063_02158b98(void) {
void ActorLobarrier::func_ov063_02158b98() {
if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0x11000) ||
mUnk_128.vfunc_28()->func_02015080(0x21000)) {
data_027e09a8->func_ov000_02071b30(0x985F, &mPos, 0);
@@ -469,7 +469,7 @@ void ActorLobarrier::func_ov063_02158b98(void) {
}
func_01ff916c(&mUnk_270, mUnk_276 * 0xCD, 0xCD);
u16 angle = (fx16) (fx32) (mUnk_26C + 0x4000);
u16 angle = (fx16) (fx32) (mUnk_26C + FX_F32_TO_FX32(4.0f));
mVel.x = FX_MUL(SIN(angle), mUnk_270);
mVel.z = FX_MUL(COS(angle), mUnk_270);
@@ -483,13 +483,13 @@ void ActorLobarrier::func_ov063_02158b98(void) {
}
}
void ActorLobarrier::func_ov063_02158d40(void) {
void ActorLobarrier::func_ov063_02158d40() {
this->mUnk_128.vfunc_1C(data_ov063_02163068, 0x1800, 0x19A, 0);
this->mUnk_238.Init();
}
// non-matching
void ActorLobarrier::func_ov063_02158db0(void) {
void ActorLobarrier::func_ov063_02158db0() {
if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0xD000) ||
mUnk_128.vfunc_28()->func_02015080(0x19000) || mUnk_128.vfunc_28()->func_02015080(0x25000)) {
data_027e09a8->func_ov000_02071b30(0x985F, &mPos, 0);
@@ -505,7 +505,7 @@ void ActorLobarrier::func_ov063_02158db0(void) {
mUnk_276 *= -1;
}
fx32 ret1 = func_01ffb428(mUnk_270 + 0x66, 0xCD);
fx32 ret1 = func_01ffb428(mUnk_270 + FX_F32_TO_FX32(0.025f), FX_F32_TO_FX32(0.05f));
u32 threshold = (u16) (mUnk_270 / 2) * ((u32) ret1 << 0x4 >> 0x10) + 0x4CD;
VecFx32 vec = {mPos.x, mPos.y, mPos.z};
@@ -545,12 +545,12 @@ void ActorLobarrier::func_ov063_02158db0(void) {
this->SetState(ActorLobarrierState_LinkInRange);
}
void ActorLobarrier::func_ov063_021590c8(void) {
void ActorLobarrier::func_ov063_021590c8() {
this->Actor::func_ov017_020bf634(&mUnk_200.mUnk_10, this->func_ov063_0215a5bc(), this->func_ov063_0215a5d8());
mUnk_200.func_ov000_02097bec();
}
void ActorLobarrier::func_ov063_02159100(void) {
void ActorLobarrier::func_ov063_02159100() {
this->Actor::func_ov017_020bf688();
if (!GET_FLAG(this->mFlags, ActorFlag_5)) {
@@ -594,11 +594,11 @@ void ActorLobarrier::func_ov063_02159100(void) {
this->SetState(ActorLobarrierState_Idle);
}
void ActorLobarrier::func_ov063_021591f4(void) {
void ActorLobarrier::func_ov063_021591f4() {
mUnk_128.vfunc_1C(data_ov063_02163068, 0x1000, 0x19A, 0);
}
void ActorLobarrier::func_ov063_02159258(void) {
void ActorLobarrier::func_ov063_02159258() {
if (mUnk_128.vfunc_28()->func_02015080(0x6000) || mUnk_128.vfunc_28()->func_02015080(0xF000)) {
data_027e09a8->func_ov000_02071b30(0x9860, &mPos, 0);
}
@@ -609,29 +609,29 @@ void ActorLobarrier::func_ov063_02159258(void) {
func_01ff916c(&mUnk_270, 0, 0xCD);
unk32 val = mUnk_270;
fx32 val = mUnk_270;
fx16 angle = mUnk_26C + DEG_TO_ANG(90);
fx32 sin_val = SIN((u16) angle);
fx32 cos_val = COS((u16) angle);
mVel.x = FX_MUL(sin_val, val);
mVel.z = FX_MUL(cos_val, val);
if (!mUnk_270 && this->func_ov063_0215a514()) {
if (mUnk_270 == FX_F32_TO_FX32(0.0f) && this->func_ov063_0215a514()) {
this->SetState(ActorLobarrierState_Rotating);
} else if (!mUnk_270 && this->mUnk_238.HasReachedMaxU() && this->func_ov063_0215a474()) {
} else if (mUnk_270 == FX_F32_TO_FX32(0.0f) && this->mUnk_238.HasReachedMaxU() && this->func_ov063_0215a474()) {
this->SetState(ActorLobarrierState_Hitting);
} else if (!this->func_ov063_0215a2c0()) {
this->SetState(ActorLobarrierState_Chasing);
}
}
void ActorLobarrier::func_ov063_02159408(void) {
void ActorLobarrier::func_ov063_02159408() {
this->func_ov000_02099450(&mUnk_224, &data_027e07d4, 0, data_ov000_020aecf0[0]);
mUnk_128.vfunc_1C(data_ov063_02163068, 0, 0x19A, 0);
mUnk_200.func_ov000_02097bec();
}
void ActorLobarrier::func_ov063_02159494(void) {
void ActorLobarrier::func_ov063_02159494() {
this->func_ov000_020994a0();
if (GET_FLAG(mFlags, ActorFlag_5) == 0) {
@@ -661,15 +661,15 @@ void ActorLobarrier::func_ov063_02159494(void) {
}
}
void ActorLobarrier::func_ov063_021595a4(void) {
mVel.x = 0;
mVel.z = 0;
mUnk_270 = 0;
void ActorLobarrier::func_ov063_021595a4() {
mVel.x = FX_F32_TO_FX32(0.0f);
mVel.z = FX_F32_TO_FX32(0.0f);
mUnk_270 = FX_F32_TO_FX32(0.0f);
mUnk_128.vfunc_1C(data_ov063_021630b0, 0x1000, 0x400, 0);
mUnk_200.func_ov000_02097bec();
}
void ActorLobarrier::func_ov063_02159618(void) {
void ActorLobarrier::func_ov063_02159618() {
if (!mUnk_128.vfunc_28()->func_01ff8fa8()) {
return;
}
@@ -689,14 +689,14 @@ void ActorLobarrier::func_ov063_02159618(void) {
}
}
void ActorLobarrier::func_ov063_02159714(void) {
mVel.x = 0;
mVel.z = 0;
mUnk_270 = 0;
void ActorLobarrier::func_ov063_02159714() {
mVel.x = FX_F32_TO_FX32(0.0f);
mVel.z = FX_F32_TO_FX32(0.0f);
mUnk_270 = FX_F32_TO_FX32(0.0f);
mUnk_128.vfunc_1C(data_ov063_02163098, 0x1000, 0x19A, 0);
}
void ActorLobarrier::func_ov063_02159784(void) {
void ActorLobarrier::func_ov063_02159784() {
if (mUnk_128.vfunc_28()->func_02015080(0x7000)) {
data_027e09a8->func_ov000_02071b30(0x9862, &mPos, 0);
}
@@ -735,14 +735,14 @@ void ActorLobarrier::func_ov063_02159784(void) {
}
}
void ActorLobarrier::func_ov063_021598fc(void) {
void ActorLobarrier::func_ov063_021598fc() {
mUnk_128.vfunc_1C(data_ov063_02163080, 0x1333, 0x19A, 0);
this->mTimer.Set(0, gRandom.Next32(21) + 10);
mUnk_276 = gRandom.Next32(0) & 0x80000000 ? 1 : -1;
}
// non-matching
void ActorLobarrier::func_ov063_021599e4(void) {
void ActorLobarrier::func_ov063_021599e4() {
if (mUnk_128.vfunc_28()->func_02015080(0x1000) || mUnk_128.vfunc_28()->func_02015080(0xA000) ||
mUnk_128.vfunc_28()->func_02015080(0x13000) || mUnk_128.vfunc_28()->func_02015080(0x1C000)) {
data_027e09a8->func_ov000_02071b30(0x9864, &mPos, 0);
@@ -778,11 +778,11 @@ void ActorLobarrier::func_ov063_021599e4(void) {
}
}
void ActorLobarrier::func_ov063_02159ca8(void) {
void ActorLobarrier::func_ov063_02159ca8() {
mUnk_128.vfunc_1C(data_ov063_02163068, 0x1333, 0x19A, 0);
mVel.x = 0;
mVel.z = 0;
mUnk_270 = 0;
mVel.x = FX_F32_TO_FX32(0.0f);
mVel.z = FX_F32_TO_FX32(0.0f);
mUnk_270 = FX_F32_TO_FX32(0.0f);
volatile u16 var;
func_ov000_020986b4((s16 *) &var, this, 0);
@@ -796,7 +796,7 @@ void ActorLobarrier::func_ov063_02159ca8(void) {
mUnk_26C += -FX_F32_TO_FX32(8.f);
}
void ActorLobarrier::func_ov063_02159d68(void) {
void ActorLobarrier::func_ov063_02159d68() {
if (this->func_ov063_0215a514()) {
mUnk_26C += -FX_F32_TO_FX32(8.f);
}
@@ -818,17 +818,17 @@ void ActorLobarrier::func_ov063_02159d68(void) {
}
}
void ActorLobarrier::func_ov063_02159dfc(void) {
mVel.x = 0;
mVel.z = 0;
mUnk_270 = 0;
void ActorLobarrier::func_ov063_02159dfc() {
mVel.x = FX_F32_TO_FX32(0.0f);
mVel.z = FX_F32_TO_FX32(0.0f);
mUnk_270 = FX_F32_TO_FX32(0.0f);
mUnk_200.func_ov000_02097bec();
}
// Empty (matched)
void ActorLobarrier::func_ov063_02159e1c(void) {}
void ActorLobarrier::func_ov063_02159e1c() {}
void ActorLobarrier::func_ov063_02159e20(void) {
void ActorLobarrier::func_ov063_02159e20() {
this->func_ov000_02098f34(&mUnk_200.mUnk_10);
vfunc_40();
@@ -844,7 +844,7 @@ void ActorLobarrier::func_ov063_02159e20(void) {
}
// non-matching
void ActorLobarrier::func_ov063_02159ec0(void) {
void ActorLobarrier::func_ov063_02159ec0() {
this->vfunc_44();
if (!GET_FLAG(mFlags, ActorFlag_5)) {
@@ -909,7 +909,7 @@ unk32 ActorLobarrier::func_ov063_02159f3c(unk32 param1) {
// non-matching
// return bool ?
unk32 ActorLobarrier::func_ov063_0215a0f0(void) {
unk32 ActorLobarrier::func_ov063_0215a0f0() {
s16 var1;
func_ov000_020986b4((s16 *) &var1, this, 0);
@@ -956,7 +956,7 @@ unk32 ActorLobarrier::func_ov063_0215a0f0(void) {
}
// non-matching
unk32 ActorLobarrier::func_ov063_0215a2c0(void) {
unk32 ActorLobarrier::func_ov063_0215a2c0() {
s16 var1;
func_ov000_020986b4((s16 *) &var1, this, 0);
unk32 val1 = ABS((s16) (var1 - mUnk_26C));
@@ -1002,7 +1002,7 @@ unk32 ActorLobarrier::func_ov063_0215a2c0(void) {
return func_01ff9a5c(otherVecPtr, &mPos, &stackVec) < 0xB33;
}
void ActorLobarrier::func_ov063_0215a428(void) {
void ActorLobarrier::func_ov063_0215a428() {
// A not very clean code to access 22C and 22E matching the asm
u16 *values = (u16 *) &mUnk_224.mUnk_08;
if (values[0] < values[1]) {
@@ -1015,7 +1015,7 @@ void ActorLobarrier::func_ov063_0215a428(void) {
}
// return bool ?
unk32 ActorLobarrier::func_ov063_0215a474(void) {
unk32 ActorLobarrier::func_ov063_0215a474() {
s16 var;
VecFx32 stackVec;
@@ -1044,7 +1044,7 @@ unk32 ActorLobarrier::func_ov063_0215a474(void) {
#endif
}
unk32 ActorLobarrier::func_ov063_0215a514(void) {
unk32 ActorLobarrier::func_ov063_0215a514() {
s16 var;
func_ov000_020986b4((s16 *) &var, this, 0);
@@ -1074,14 +1074,14 @@ void ActorLobarrier::func_ov063_0215a5a0(VecFx32 *param1) {
param1->y = vec.y;
}
unk32 ActorLobarrier::func_ov063_0215a5bc(void) {
unk32 ActorLobarrier::func_ov063_0215a5bc() {
if (this->shield != NULL) {
return 10;
}
return data_ov000_020aecf4[0];
}
unk32 ActorLobarrier::func_ov063_0215a5d8(void) {
unk32 ActorLobarrier::func_ov063_0215a5d8() {
if (this->shield != NULL) {
return 0x385;
}
@@ -67,7 +67,7 @@ bool MapObjectUnkSTAT::Init(void) {
void MapObjectUnkSTAT::vfunc_08(void) {
if (mUnk_20.mParams[1]) {
mUnk_54 = func_01ffb428(mUnk_20.mParams[1] << 0xC, 0xA000);
mUnk_54 = func_01ffb428(mUnk_20.mParams[1] << 0xC, FX_F32_TO_FX32(10.0f));
}
switch (mUnk_4C) {