Start decompiling ActorUnkCASE (#124)

* feat: Start decompiling ActorUnkCASE's ctor

* fix: Fix broken member names

* feat: Finish decompiling ActorUnkCASE's ctor (orr mismatch)

* feat: Match ActorUnkCASE_174::vfunc_10

* fix: Update flags arithmetic

* feat: Match ActorUnkCASE_150 ctor

* feat: Match ActorProfileUnkCASE ctor

* feat: Update symbols and vfunc of ActorUnkCASE

* feat: Match ActorUnkCASE::vfunc_24

* feat: Decompile ActorUnkCASE::vfunc_10, update Actor::vfunc_10 to use Cylinder

* fix: Fix broken Actor symbols

* feat: Match ActorUnkCASE::vfunc_18

* feat: Match ActorUnkCASE::vfunc_2C

* feat: Start decompiling ActorUnkCASE::vfunc_20

* feat: Match ActorUnkCASE's ctor

* feat: Almost finish decompiling ActorUnkCASE::vfunc_20

* feat: Decompile func_ov063_0215b054 and func_ov063_0215afa4

* feat: Match func_ov063_0215af60

* feat: Decompile func_ov063_0215afb8

* feat: Match func_ov063_0215b090

* feat: Match func_ov063_0215b2b0

* feat: Match func_ov063_0215b244

* feat: Match func_ov063_0215b1bc

* feat: Match ActorUnkCASE_150::vfunc_00

* feat: Match ActorUnkCASE_150::vfunc_04

* feat: Match ActorUnkCASE_150::vfunc_0C

* feat: Match func_ov063_0215b814

* feat: Decompile func_ov063_0215b854

* feat: Match func_ov063_0215aefc

* feat: Match func_ov063_0215acec

* feat: Update jp symbols

* feat: Some symbols and improved matching

* feat: Match func_ov063_0215b99c

* feat: Start decompiling func_ov063_0215b8e8

* feat: Decompile some funcs

* feat: Rename symbols, improve matching, add some data

* fix: Fix wrong code for JP only

* fix: Fix broken symbols

* feat: Update symbols and extend .data, match sinit

The .data ordering is wrong

* feat: Small changes

* Apply suggestions from code review

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

* fix: More code review

* feat: Add small comment for the goto

* feat: Update func_ov063_0215b8e8 and vfunc_0C to use VexFx32

* fix: Missing c/hpp changes for previous commit

* feat: Update func_ov063_0215afb8 to use ActorUnkITWP

---------

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
This commit is contained in:
Mityno
2026-08-14 13:14:49 +00:00
committed by GitHub
parent c505bcac20
commit 39288e4605
34 changed files with 804 additions and 204 deletions
+1 -1
View File
@@ -203,7 +203,7 @@ _ZN12ActorManager13func_01fff350EPvPP5Actor kind:function(arm,size=0x64) addr:0x
_ZN12ActorManager13func_01fff3b4E8ActorRef kind:function(arm,size=0x8c) addr:0x01fff3b4
func_01fff440 kind:function(arm,size=0x18) addr:0x01fff440
_ZN5Actor10GetActorIdEv kind:function(arm,size=0xc) addr:0x01fff458
_ZN5Actor8vfunc_10EP7VecFx32 kind:function(arm,size=0x34) addr:0x01fff464
_ZN5Actor8vfunc_10EP8Cylinder kind:function(arm,size=0x34) addr:0x01fff464
_ZN16MapObjectManager13func_01fff498E8Vec2bCpp kind:function(arm,size=0x34) addr:0x01fff498
_ZN16MapObjectManager13func_01fff4ccEPFvPvS0_ES0_ kind:function(arm,size=0x54) addr:0x01fff4cc
_ZN16MapObjectManager13func_01fff520EP24UnkStruct_ov000_020b34c4PP9MapObject kind:function(arm,size=0x64) addr:0x01fff520
+2 -2
View File
@@ -83,7 +83,7 @@ func_ov000_02057a24 kind:function(thumb,size=0x14) addr:0x02057a24
func_ov000_02057a38 kind:function(arm,size=0x18) addr:0x02057a38
func_ov000_02057a50 kind:function(thumb,size=0x1c) addr:0x02057a50
func_ov000_02057a6c kind:function(thumb,size=0x1c) addr:0x02057a6c
func_ov000_02057a88 kind:function(arm,size=0x3c) addr:0x02057a88
_ZN24UnkStruct_ov000_020b19f08vfunc_0CEv kind:function(arm,size=0x3c) addr:0x02057a88
_ZN19func_ov000_02057ac4D1Ev kind:function(arm,size=0x14) addr:0x02057ac4
_ZN19func_ov000_02057ad8D0Ev kind:function(arm,size=0x1c) addr:0x02057ad8
func_ov000_02057af4 kind:function(arm,size=0x14) addr:0x02057af4
@@ -1498,7 +1498,7 @@ func_ov000_0207ed84 kind:function(arm,size=0x8) addr:0x0207ed84
func_ov000_0207ed8c kind:function(arm,size=0x20) addr:0x0207ed8c
_ZN17Actor_Derived1_94C1Ev kind:function(arm,size=0x20) addr:0x0207edac
func_ov000_0207edcc kind:function(arm,size=0x1c) addr:0x0207edcc
_ZN17Actor_Derived1_94D2Ev kind:function(arm,size=0x30) addr:0x0207ede8
_ZN17Actor_Derived1_94D1Ev kind:function(arm,size=0x30) addr:0x0207ede8
_ZN19func_ov000_0207ee18D0Ev kind:function(arm,size=0x38) addr:0x0207ee18
_ZN19func_ov000_0207ee50D2Ev kind:function(arm,size=0x30) addr:0x0207ee50
func_ov000_0207ee80 kind:function(arm,size=0x4) addr:0x0207ee80
+5 -5
View File
@@ -601,7 +601,7 @@ _ZN10ActorRupee19func_ov031_020e9e5cEv kind:function(arm,size=0x94) addr:0x020e9
_ZN13ActorRupee_C4C1EP5Actor kind:function(arm,size=0x38) addr:0x020e9ef0
_ZN13ActorRupee_C48vfunc_00E8ActorRefi kind:function(arm,size=0x44) addr:0x020e9f28
_ZN13ActorRupee_C48vfunc_04Ev kind:function(arm,size=0x20) addr:0x020e9f6c
_ZN13ActorRupee_C48vfunc_0CEi kind:function(arm,size=0x28) addr:0x020e9f8c
_ZN13ActorRupee_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x28) addr:0x020e9f8c
_ZN13ActorRupee_C48vfunc_08Ev kind:function(arm,size=0x1c) addr:0x020e9fb4
_ZN10ActorRupeeD1Ev kind:function(arm,size=0x20) addr:0x020e9fd0
_ZN10ActorRupeeD0Ev kind:function(arm,size=0x28) addr:0x020e9ff0
@@ -757,7 +757,7 @@ _ZN10ActorHeart19func_ov031_020ef698Ev kind:function(arm,size=0x60) addr:0x020ef
_ZN13ActorHeart_C4C1EP5Actor kind:function(arm,size=0x38) addr:0x020ef6f8
_ZN13ActorHeart_C48vfunc_00E8ActorRefi kind:function(arm,size=0x44) addr:0x020ef730
_ZN13ActorHeart_C48vfunc_04Ev kind:function(arm,size=0x20) addr:0x020ef774
_ZN13ActorHeart_C48vfunc_0CEi kind:function(arm,size=0x28) addr:0x020ef794
_ZN13ActorHeart_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x28) addr:0x020ef794
_ZN13ActorHeart_C48vfunc_08Ev kind:function(arm,size=0x1c) addr:0x020ef7bc
_ZN10ActorHeartD0Ev kind:function(arm,size=0x1c) addr:0x020ef7d8
_ZN10ActorHeartD1Ev kind:function(arm,size=0x14) addr:0x020ef7f4
@@ -1007,7 +1007,7 @@ _ZN13Actor_C4_BaseC2EPvi kind:function(arm,size=0x60) addr:0x020f6284
_ZN8Actor_C48vfunc_00E8ActorRefi kind:function(arm,size=0x90) addr:0x020f62e4
_ZN8Actor_C48vfunc_04Ev kind:function(arm,size=0x8) addr:0x020f6374
_ZN8Actor_C48vfunc_08Ev kind:function(arm,size=0x8) addr:0x020f637c
_ZN8Actor_C48vfunc_0CEi kind:function(arm,size=0x8) addr:0x020f6384
_ZN8Actor_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x8) addr:0x020f6384
func_ov031_020f638c kind:function(arm,size=0x4c) addr:0x020f638c
func_ov031_020f63d8 kind:function(arm,size=0x14) addr:0x020f63d8
func_ov031_020f63ec kind:function(arm,size=0x5c) addr:0x020f63ec
@@ -1193,7 +1193,7 @@ _ZN13ActorItemDrop19func_ov031_020fa900Ev kind:function(arm,size=0xf8) addr:0x02
_ZN16ActorItemDrop_C4C1EP5Actor kind:function(arm,size=0x38) addr:0x020fa9f8
_ZN16ActorItemDrop_C48vfunc_00E8ActorRefi kind:function(arm,size=0x44) addr:0x020faa30
_ZN16ActorItemDrop_C48vfunc_04Ev kind:function(arm,size=0x20) addr:0x020faa74
_ZN16ActorItemDrop_C48vfunc_0CEi kind:function(arm,size=0x28) addr:0x020faa94
_ZN16ActorItemDrop_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x28) addr:0x020faa94
_ZN16ActorItemDrop_C48vfunc_08Ev kind:function(arm,size=0x20) addr:0x020faabc
_ZN13ActorItemDropD1Ev kind:function(arm,size=0x14) addr:0x020faadc
_ZN13ActorItemDropD0Ev kind:function(arm,size=0x1c) addr:0x020faaf0
@@ -1273,7 +1273,7 @@ _ZN15ActorUnkNFSP_C0C1EP12ActorUnkNFSP kind:function(arm,size=0x38) addr:0x020fb
_ZN15ActorUnkNFSP_C08vfunc_00E8ActorRefi kind:function(arm,size=0x58) addr:0x020fbc3c
_ZN15ActorUnkNFSP_C08vfunc_04Ev kind:function(arm,size=0x2c) addr:0x020fbc94
_ZN15ActorUnkNFSP_C08vfunc_08Ev kind:function(arm,size=0x30) addr:0x020fbcc0
_ZN15ActorUnkNFSP_C08vfunc_0CEi kind:function(arm,size=0x38) addr:0x020fbcf0
_ZN15ActorUnkNFSP_C08vfunc_0CEP7VecFx32 kind:function(arm,size=0x38) addr:0x020fbcf0
_ZN12ActorUnkNFSPD1Ev kind:function(arm,size=0x14) addr:0x020fbd28
_ZN12ActorUnkNFSPD0Ev kind:function(arm,size=0x1c) addr:0x020fbd3c
_ZN19ActorProfileUnkNFSPD1Ev kind:function(arm,size=0x14) addr:0x020fbd58
@@ -15,6 +15,7 @@ src/063_Shrine/Actor/ActorUnkCASE.cpp:
.text start:0x0215aaf8 end:0x0215bafc
.init start:0x021627a0 end:0x02162834
.ctor start:0x02162e44 end:0x02162e48
.data start:0x021630c8 end:0x02163224
.bss start:0x02163c48 end:0x02163d30
src/063_Shrine/Actor/ActorUnkRMSV.cpp:
+3 -3
View File
@@ -306,17 +306,17 @@ from:0x0215ab34 kind:arm_call to:0x02097898 module:overlay(0)
from:0x0215ab68 kind:load to:0x02163174 add:0x8 module:overlay(63)
from:0x0215ab78 kind:arm_call_thumb to:0x0209a764 module:overlay(0)
from:0x0215ab8c kind:arm_call to:0x02057f18 module:overlay(0)
from:0x0215ab9c kind:load to:0x021631a0 module:overlay(63)
from:0x0215ab9c kind:load to:0x02163198 module:overlay(63) add:0x8
from:0x0215aba0 kind:load to:0x02162568 module:overlay(63)
from:0x0215abbc kind:arm_call to:0x020f6284 module:overlay(31)
from:0x0215abd4 kind:load to:0x02163148 module:overlay(63)
from:0x0215abd4 kind:load to:0x02163140 module:overlay(63) add:0x8
from:0x0215ac2c kind:arm_call to:0x0215b814 module:overlay(63)
from:0x0215ac3c kind:arm_call to:0x020f62e4 module:overlay(31)
from:0x0215ac58 kind:arm_call to:0x0215b854 module:overlay(63)
from:0x0215ac60 kind:arm_call to:0x020f6374 module:overlay(31)
from:0x0215ac78 kind:arm_call to:0x0215b8e8 module:overlay(63)
from:0x0215ac84 kind:arm_call to:0x020f6384 module:overlay(31)
from:0x0215acc4 kind:load to:0x02163160 module:overlay(63)
from:0x0215acc4 kind:load to:0x02163158 module:overlay(63) add:0x8
from:0x0215acd8 kind:arm_call to:0x0215b724 module:overlay(63)
from:0x0215ace4 kind:arm_call to:0x0207b70c module:overlay(0)
from:0x0215ad0c kind:arm_call to:0x020975f8 module:overlay(0)
+26 -26
View File
@@ -65,19 +65,19 @@ _ZN19ActorProfileUnkCANSD1Ev kind:function(arm,size=0x14) addr:0x0215aae4
_ZN19ActorProfileUnkCASE10GetProfileEv kind:function(arm,size=0xc) addr:0x0215aaf8
_ZN19ActorProfileUnkCASE6CreateEv kind:function(arm,size=0x24) addr:0x0215ab04
_ZN19ActorProfileUnkCASEC1Ev kind:function(arm,size=0x48) addr:0x0215ab28
_ZN12ActorUnkCASE19func_ov063_0215ab70Ev kind:function(arm,size=0x34) addr:0x0215ab70
_ZN12ActorUnkCASE19func_ov063_0215aba4Ev kind:function(arm,size=0x34) addr:0x0215aba4
_ZN12ActorUnkCASE19func_ov063_0215abd8Ev kind:function(arm,size=0x74) addr:0x0215abd8
_ZN12ActorUnkCASE19func_ov063_0215ac4cEv kind:function(arm,size=0x1c) addr:0x0215ac4c
_ZN12ActorUnkCASE19func_ov063_0215ac68Ev kind:function(arm,size=0x24) addr:0x0215ac68
_ZN12ActorUnkCASE19func_ov063_0215ac8cEv kind:function(arm,size=0x3c) addr:0x0215ac8c
_ZN12ActorUnkCASE19func_ov063_0215acc8Ev kind:function(arm,size=0x24) addr:0x0215acc8
_ZN24UnkStruct_ov063_021631a0C1EP10G3d_Model_ kind:function(arm,size=0x34) addr:0x0215ab70
_ZN16ActorUnkCASE_150C1EP5Actor kind:function(arm,size=0x34) addr:0x0215aba4
_ZN16ActorUnkCASE_1508vfunc_00E8ActorRefi kind:function(arm,size=0x74) addr:0x0215abd8
_ZN16ActorUnkCASE_1508vfunc_04Ev kind:function(arm,size=0x1c) addr:0x0215ac4c
_ZN16ActorUnkCASE_1508vfunc_0CEP7VecFx32 kind:function(arm,size=0x24) addr:0x0215ac68
_ZN16ActorUnkCASE_174C1EP5Actor kind:function(arm,size=0x3c) addr:0x0215ac8c
_ZN16ActorUnkCASE_1748vfunc_10EP5Actor kind:function(arm,size=0x24) addr:0x0215acc8
_ZN12ActorUnkCASE19func_ov063_0215acecEP8ActorRefS0_ kind:function(arm,size=0x5c) addr:0x0215acec
_ZN12ActorUnkCASEC1Ev kind:function(arm,size=0x124) addr:0x0215ad48
_ZN12ActorUnkCASE19func_ov063_0215ae6cEv kind:function(arm,size=0x14) addr:0x0215ae6c
_ZN12ActorUnkCASE19func_ov063_0215ae80Ev kind:function(arm,size=0x14) addr:0x0215ae80
_ZN12ActorUnkCASE19func_ov063_0215ae94Ev kind:function(arm,size=0x68) addr:0x0215ae94
_ZN12ActorUnkCASE19func_ov063_0215aefcEv kind:function(arm,size=0x58) addr:0x0215aefc
_ZN24UnkStruct_ov063_021631a0D1Ev kind:function(arm,size=0x14) addr:0x0215ae6c
_ZN16ActorUnkCASE_174D1Ev kind:function(arm,size=0x14) addr:0x0215ae80
_ZN12ActorUnkCASE8vfunc_18Ei kind:function(arm,size=0x68) addr:0x0215ae94
_ZN12ActorUnkCASE19func_ov063_0215aefcEs kind:function(arm,size=0x58) addr:0x0215aefc
_ZN12ActorUnkCASE19func_ov063_0215af54Ev kind:function(arm,size=0x4) addr:0x0215af54
_ZN12ActorUnkCASE19func_ov063_0215af58Ev kind:function(arm,size=0x4) addr:0x0215af58
_ZN12ActorUnkCASE19func_ov063_0215af5cEv kind:function(arm,size=0x4) addr:0x0215af5c
@@ -90,20 +90,20 @@ _ZN12ActorUnkCASE19func_ov063_0215b1bcEv kind:function(arm,size=0x88) addr:0x021
_ZN12ActorUnkCASE19func_ov063_0215b244Ev kind:function(arm,size=0x6c) addr:0x0215b244
_ZN12ActorUnkCASE19func_ov063_0215b2b0Ev kind:function(arm,size=0x14) addr:0x0215b2b0
_ZN12ActorUnkCASE19func_ov063_0215b2c4Ev kind:function(arm,size=0x4) addr:0x0215b2c4
_ZN12ActorUnkCASE19func_ov063_0215b2c8Ev kind:function(arm,size=0x24) addr:0x0215b2c8
_ZN12ActorUnkCASE19func_ov063_0215b2ecEv kind:function(arm,size=0x338) addr:0x0215b2ec
_ZN12ActorUnkCASE19func_ov063_0215b624Ev kind:function(arm,size=0xa4) addr:0x0215b624
_ZN12ActorUnkCASE8vfunc_24Ev kind:function(arm,size=0x24) addr:0x0215b2c8
_ZN12ActorUnkCASE8vfunc_20Ev kind:function(arm,size=0x338) addr:0x0215b2ec
_ZN12ActorUnkCASE8vfunc_2CEi kind:function(arm,size=0xa4) addr:0x0215b624
_ZN12ActorUnkCASE19func_ov063_0215b6c8EP7VecFx3214UnkAngleStruct kind:function(arm,size=0x5c) addr:0x0215b6c8
_ZN12ActorUnkCASE19func_ov063_0215b724Ev kind:function(arm,size=0xa8) addr:0x0215b724
_ZN12ActorUnkCASE19func_ov063_0215b7ccEv kind:function(arm,size=0x48) addr:0x0215b7cc
_ZN12ActorUnkCASE19func_ov063_0215b814Ev kind:function(arm,size=0x40) addr:0x0215b814
_ZN12ActorUnkCASE8vfunc_10EP8Cylinder kind:function(arm,size=0x48) addr:0x0215b7cc
_ZN12ActorUnkCASE19func_ov063_0215b814E8ActorRef kind:function(arm,size=0x40) addr:0x0215b814
_ZN12ActorUnkCASE19func_ov063_0215b854Ev kind:function(arm,size=0x94) addr:0x0215b854
_ZN12ActorUnkCASE19func_ov063_0215b8e8Ev kind:function(arm,size=0xb4) addr:0x0215b8e8
_ZN12ActorUnkCASE19func_ov063_0215b99cEv kind:function(arm,size=0xac) addr:0x0215b99c
_ZN12ActorUnkCASED0Ev kind:function(arm,size=0x1c) addr:0x0215ba48
_ZN12ActorUnkCASE19func_ov063_0215ba64Ev kind:function(arm,size=0x1c) addr:0x0215ba64
_ZN12ActorUnkCASE19func_ov063_0215b8e8EP7VecFx32 kind:function(arm,size=0xb4) addr:0x0215b8e8
_ZN12ActorUnkCASE19func_ov063_0215b99cEPS_P29UnkStruct_func_ov063_0215a678 kind:function(arm,size=0xac) addr:0x0215b99c
_ZN16ActorUnkCASE_174D0Ev kind:function(arm,size=0x1c) addr:0x0215ba48
_ZN24UnkStruct_ov063_021631a0D0Ev kind:function(arm,size=0x1c) addr:0x0215ba64
_ZN12ActorUnkCASED1Ev kind:function(arm,size=0x30) addr:0x0215ba80
_ZN12ActorUnkCASE19func_ov063_0215bab0Ev kind:function(arm,size=0x38) addr:0x0215bab0
_ZN12ActorUnkCASED0Ev kind:function(arm,size=0x38) addr:0x0215bab0
_ZN19ActorProfileUnkCASED1Ev kind:function(arm,size=0x14) addr:0x0215bae8
func_ov063_0215bafc kind:function(arm,size=0x38) addr:0x0215bafc
func_ov063_0215bb34 kind:function(arm,size=0x54) addr:0x0215bb34
@@ -429,11 +429,11 @@ data_ov063_021630b0 kind:data(any) addr:0x021630b0
data_ov063_021630c8 kind:data(any) addr:0x021630c8
data_ov063_021630e0 kind:data(any) addr:0x021630e0
data_ov063_02163110 kind:data(any) addr:0x02163110
data_ov063_02163148 kind:data(any) addr:0x02163148
data_ov063_02163160 kind:data(any) addr:0x02163160
_ZTV19data_ov063_02163174 kind:data(any) addr:0x02163174
data_ov063_021631a0 kind:data(any) addr:0x021631a0
_ZTV19data_ov063_021631c4 kind:data(any) addr:0x021631c4
_ZTV16ActorUnkCASE_150 kind:data(any) addr:0x02163140
_ZTV16ActorUnkCASE_174 kind:data(any) addr:0x02163158
_ZTV19ActorProfileUnkCASE kind:data(any) addr:0x02163174
_ZTV24UnkStruct_ov063_021631a0 kind:data(any) addr:0x02163198
_ZTV12ActorUnkCASE kind:data(any) addr:0x021631c4
_ZTV19data_ov063_02163224 kind:data(any) addr:0x02163224
data_ov063_02163228 kind:data(any) addr:0x02163228 ambiguous
_ZTV19ActorProfileUnkRMSV kind:data(any) addr:0x02163288
+1 -1
View File
@@ -321,7 +321,7 @@ _ZN14ActorTearLight19func_ov071_0215ffbcEv kind:function(arm,size=0x44) addr:0x0
_ZN18ActorTearLight_194C2EP14ActorTearLight kind:function(arm,size=0x38) addr:0x02160000
_ZN18ActorTearLight_1948vfunc_00E8ActorRefi kind:function(arm,size=0x40) addr:0x02160038
_ZN18ActorTearLight_1948vfunc_04Ev kind:function(arm,size=0x1c) addr:0x02160078
_ZN18ActorTearLight_1948vfunc_0CEi kind:function(arm,size=0x24) addr:0x02160094
_ZN18ActorTearLight_1948vfunc_0CEP7VecFx32 kind:function(arm,size=0x24) addr:0x02160094
_ZN18ActorTearLight_1948vfunc_08Ev kind:function(arm,size=0x1c) addr:0x021600b8
_ZN18ActorTearLight_204C2Ev kind:function(arm,size=0x14) addr:0x021600d4
_ZN18ActorTearLight_104D0Ev kind:function(arm,size=0x1c) addr:0x021600e8
+1 -1
View File
@@ -203,7 +203,7 @@ _ZN12ActorManager13func_01fff350EPvPP5Actor kind:function(arm,size=0x64) addr:0x
_ZN12ActorManager13func_01fff3b4E8ActorRef kind:function(arm,size=0x8c) addr:0x01fff3b4
func_01fff440 kind:function(arm,size=0x18) addr:0x01fff440
_ZN5Actor10GetActorIdEv kind:function(arm,size=0xc) addr:0x01fff458
_ZN5Actor8vfunc_10EP7VecFx32 kind:function(arm,size=0x34) addr:0x01fff464
_ZN5Actor8vfunc_10EP8Cylinder kind:function(arm,size=0x34) addr:0x01fff464
_ZN16MapObjectManager13func_01fff498E8Vec2bCpp kind:function(arm,size=0x34) addr:0x01fff498
_ZN16MapObjectManager13func_01fff4ccEPFvPvS0_ES0_ kind:function(arm,size=0x54) addr:0x01fff4cc
_ZN16MapObjectManager13func_01fff520EP24UnkStruct_ov000_020b34c4PP9MapObject kind:function(arm,size=0x64) addr:0x01fff520
+5 -5
View File
@@ -83,7 +83,7 @@ func_ov000_02058fa4 kind:function(thumb,size=0x14) addr:0x02058fa4
func_ov000_02058fb8 kind:function(arm,size=0x18) addr:0x02058fb8
_ZN24UnkStruct_ov000_020b19f0C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x02058fd0
func_ov000_02058fec kind:function(thumb,size=0x1c) addr:0x02058fec
func_ov000_02059008 kind:function(arm,size=0x3c) addr:0x02059008
_ZN24UnkStruct_ov000_020b19f08vfunc_0CEv kind:function(arm,size=0x3c) addr:0x02059008
_ZN19func_ov000_02059044D1Ev kind:function(arm,size=0x14) addr:0x02059044
_ZN19func_ov000_02059058D0Ev kind:function(arm,size=0x1c) addr:0x02059058
func_ov000_02059074 kind:function(arm,size=0x14) addr:0x02059074
@@ -1381,9 +1381,9 @@ _ZN19func_ov000_0207cd10D1Ev kind:function(arm,size=0x30) addr:0x0207cd10
_ZN19func_ov000_0207cd40D0Ev kind:function(arm,size=0x38) addr:0x0207cd40
_ZN29UnkStruct_ov031_Items_01_BaseD2Ev 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
func_ov000_0207b70c kind:function(arm,size=0x10) addr:0x0207cdc4
_ZN24UnkStruct_ov031_Items_018vfunc_08Ev kind:function(arm,size=0x38) addr:0x0207cdd4
func_ov000_0207ce0c kind:function(arm,size=0x80) addr:0x0207ce0c
_ZN24UnkStruct_ov031_Items_018vfunc_0CEP5ActorP7VecFx32 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
func_ov000_0207cf4c kind:function(arm,size=0x48) addr:0x0207cf4c
@@ -1496,7 +1496,7 @@ func_ov000_0208043c kind:function(arm,size=0x8) addr:0x0208043c
func_ov000_02080444 kind:function(arm,size=0x20) addr:0x02080444
_ZN17Actor_Derived1_94C1Ev kind:function(arm,size=0x20) addr:0x02080464
func_ov000_02080484 kind:function(arm,size=0x1c) addr:0x02080484
_ZN17Actor_Derived1_94D2Ev kind:function(arm,size=0x30) addr:0x020804a0
_ZN17Actor_Derived1_94D1Ev kind:function(arm,size=0x30) addr:0x020804a0
_ZN19func_ov000_020804d0D0Ev kind:function(arm,size=0x38) addr:0x020804d0
_ZN19func_ov000_02080508D2Ev kind:function(arm,size=0x30) addr:0x02080508
func_ov000_02080538 kind:function(arm,size=0x4) addr:0x02080538
@@ -2352,7 +2352,7 @@ func_ov000_02098d7c kind:function(arm,size=0x1b8) addr:0x0209a548
func_ov000_02098f34 kind:function(arm,size=0xd0) addr:0x0209a700
_ZN14Actor_Derived28vfunc_30EP14Actor_vfunc_30 kind:function(arm,size=0xc) addr:0x0209a7d0
func_ov000_0209a7dc kind:function(arm,size=0xb0) addr:0x0209a7dc
func_ov000_0209a88c kind:function(arm,size=0x21c) addr:0x0209a88c
func_ov000_020990c0 kind:function(arm,size=0x21c) addr:0x0209a88c
func_ov000_0209aaa8 kind:function(arm,size=0x90) addr:0x0209aaa8
func_ov000_0209ab38 kind:function(arm,size=0x64) addr:0x0209ab38
func_ov000_0209ab9c kind:function(arm,size=0x80) addr:0x0209ab9c
+6 -6
View File
@@ -601,7 +601,7 @@ _ZN10ActorRupee19func_ov031_020e9e5cEv kind:function(arm,size=0x94) addr:0x020eb
_ZN13ActorRupee_C4C1EP5Actor kind:function(arm,size=0x38) addr:0x020eb8dc
_ZN13ActorRupee_C48vfunc_00E8ActorRefi kind:function(arm,size=0x44) addr:0x020eb914
_ZN13ActorRupee_C48vfunc_04Ev kind:function(arm,size=0x20) addr:0x020eb958
_ZN13ActorRupee_C48vfunc_0CEi kind:function(arm,size=0x28) addr:0x020eb978
_ZN13ActorRupee_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x28) addr:0x020eb978
_ZN13ActorRupee_C48vfunc_08Ev kind:function(arm,size=0x1c) addr:0x020eb9a0
_ZN10ActorRupeeD1Ev kind:function(arm,size=0x20) addr:0x020eb9bc
_ZN10ActorRupeeD0Ev kind:function(arm,size=0x28) addr:0x020eb9dc
@@ -757,7 +757,7 @@ _ZN10ActorHeart19func_ov031_020ef698Ev kind:function(arm,size=0x60) addr:0x020f1
_ZN13ActorHeart_C4C1EP5Actor kind:function(arm,size=0x38) addr:0x020f10f4
_ZN13ActorHeart_C48vfunc_00E8ActorRefi kind:function(arm,size=0x44) addr:0x020f112c
_ZN13ActorHeart_C48vfunc_04Ev kind:function(arm,size=0x20) addr:0x020f1170
_ZN13ActorHeart_C48vfunc_0CEi kind:function(arm,size=0x28) addr:0x020f1190
_ZN13ActorHeart_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x28) addr:0x020f1190
_ZN13ActorHeart_C48vfunc_08Ev kind:function(arm,size=0x1c) addr:0x020f11b8
_ZN10ActorHeartD0Ev kind:function(arm,size=0x1c) addr:0x020f11d4
_ZN10ActorHeartD1Ev kind:function(arm,size=0x14) addr:0x020f11f0
@@ -1007,7 +1007,7 @@ _ZN13Actor_C4_BaseC2EPvi kind:function(arm,size=0x60) addr:0x020f7d24
_ZN8Actor_C48vfunc_00E8ActorRefi kind:function(arm,size=0x90) addr:0x020f7d84
_ZN8Actor_C48vfunc_04Ev kind:function(arm,size=0x8) addr:0x020f7e14
_ZN8Actor_C48vfunc_08Ev kind:function(arm,size=0x8) addr:0x020f7e1c
_ZN8Actor_C48vfunc_0CEi kind:function(arm,size=0x8) addr:0x020f7e24
_ZN8Actor_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x8) addr:0x020f7e24
func_ov031_020f7e2c kind:function(arm,size=0x4c) addr:0x020f7e2c
func_ov031_020f7e78 kind:function(arm,size=0x14) addr:0x020f7e78
func_ov031_020f7e8c kind:function(arm,size=0x5c) addr:0x020f7e8c
@@ -1076,7 +1076,7 @@ _ZN12ActorUnkSWCHD1Ev kind:function(arm,size=0x14) addr:0x020f95dc
_ZN12ActorUnkSWCHD0Ev kind:function(arm,size=0x1c) addr:0x020f95f0
_ZN19ActorProfileUnkSWCHD1Ev kind:function(arm,size=0x14) addr:0x020f960c
func_ov031_020f9620 kind:function(arm,size=0x30) addr:0x020f9620
func_ov031_020f9650 kind:function(arm,size=0x30) addr:0x020f9650
_ZN18ActorShotArrow_140C1EP5Actor kind:function(arm,size=0x30) addr:0x020f9650
func_ov031_020f9680 kind:function(arm,size=0x158) addr:0x020f9680
func_ov031_020f97d8 kind:function(arm,size=0x28) addr:0x020f97d8
_ZN19ActorProfileUnkSWON10GetProfileEv kind:function(arm,size=0xc) addr:0x020f9800
@@ -1192,7 +1192,7 @@ _ZN13ActorItemDrop19func_ov031_020fa900Ev kind:function(arm,size=0xf8) addr:0x02
_ZN16ActorItemDrop_C4C1EP5Actor kind:function(arm,size=0x38) addr:0x020fc450
_ZN16ActorItemDrop_C48vfunc_00E8ActorRefi kind:function(arm,size=0x44) addr:0x020fc488
_ZN16ActorItemDrop_C48vfunc_04Ev kind:function(arm,size=0x20) addr:0x020fc4cc
_ZN16ActorItemDrop_C48vfunc_0CEi kind:function(arm,size=0x28) addr:0x020fc4ec
_ZN16ActorItemDrop_C48vfunc_0CEP7VecFx32 kind:function(arm,size=0x28) addr:0x020fc4ec
_ZN16ActorItemDrop_C48vfunc_08Ev kind:function(arm,size=0x20) addr:0x020fc514
_ZN13ActorItemDropD1Ev kind:function(arm,size=0x14) addr:0x020fc534
_ZN13ActorItemDropD0Ev kind:function(arm,size=0x1c) addr:0x020fc548
@@ -1272,7 +1272,7 @@ _ZN15ActorUnkNFSP_C0C1EP12ActorUnkNFSP kind:function(arm,size=0x38) addr:0x020fd
_ZN15ActorUnkNFSP_C08vfunc_00E8ActorRefi kind:function(arm,size=0x58) addr:0x020fd684
_ZN15ActorUnkNFSP_C08vfunc_04Ev kind:function(arm,size=0x2c) addr:0x020fd6dc
_ZN15ActorUnkNFSP_C08vfunc_08Ev kind:function(arm,size=0x30) addr:0x020fd708
_ZN15ActorUnkNFSP_C08vfunc_0CEi kind:function(arm,size=0x38) addr:0x020fd738
_ZN15ActorUnkNFSP_C08vfunc_0CEP7VecFx32 kind:function(arm,size=0x38) addr:0x020fd738
_ZN12ActorUnkNFSPD1Ev kind:function(arm,size=0x14) addr:0x020fd770
_ZN12ActorUnkNFSPD0Ev kind:function(arm,size=0x1c) addr:0x020fd784
_ZN19ActorProfileUnkNFSPD1Ev kind:function(arm,size=0x14) addr:0x020fd7a0
@@ -15,6 +15,7 @@ src/063_Shrine/Actor/ActorUnkCASE.cpp:
.text start:0x0215c894 end:0x0215d890
.init start:0x021645b8 end:0x0216464c
.ctor start:0x02164c5c end:0x02164c60
.data start:0x02164ee8 end:0x02165044
.bss start:0x02165a68 end:0x02165b50
src/063_Shrine/Actor/ActorUnkRMSV.cpp:
+4 -4
View File
@@ -309,17 +309,17 @@ from:0x0215c8d0 kind:arm_call to:0x02099040 module:overlay(0)
from:0x0215c904 kind:load to:0x02164f94 add:0x8 module:overlay(63)
from:0x0215c914 kind:arm_call_thumb to:0x0209bf30 module:overlay(0)
from:0x0215c928 kind:arm_call to:0x02059498 module:overlay(0)
from:0x0215c938 kind:load to:0x02164fc0 module:overlay(63)
from:0x0215c938 kind:load to:0x02164fb8 module:overlay(63) add:0x8
from:0x0215c93c kind:load to:0x02164380 module:overlay(63)
from:0x0215c958 kind:arm_call to:0x020f7d24 module:overlays(21,31)
from:0x0215c970 kind:load to:0x02164f68 module:overlay(63)
from:0x0215c970 kind:load to:0x02164f60 module:overlay(63) add:0x8
from:0x0215c9c8 kind:arm_call to:0x0215d5b0 module:overlay(63)
from:0x0215c9d8 kind:arm_call to:0x020f7d84 module:overlay(31)
from:0x0215c9f4 kind:arm_call to:0x0215d5f0 module:overlay(63)
from:0x0215c9fc kind:arm_call to:0x020f7e14 module:overlay(31)
from:0x0215ca14 kind:arm_call to:0x0215d684 module:overlay(63)
from:0x0215ca20 kind:arm_call to:0x020f7e24 module:overlay(31)
from:0x0215ca60 kind:load to:0x02164f80 module:overlay(63)
from:0x0215ca60 kind:load to:0x02164f78 module:overlay(63) add:0x8
from:0x0215ca74 kind:arm_call to:0x0215d4c0 module:overlay(63)
from:0x0215ca80 kind:arm_call to:0x0207cdc4 module:overlay(0)
from:0x0215caa8 kind:arm_call to:0x02098dac module:overlay(0)
@@ -1622,7 +1622,7 @@ from:0x02164f50 kind:load to:0x0215cf58 module:overlay(63)
from:0x02164f58 kind:load to:0x0215d04c module:overlay(63)
from:0x02164f68 kind:load to:0x0215c974 module:overlay(63)
from:0x02164f6c kind:load to:0x0215c9e8 module:overlay(63)
from:0x02164f70 kind:load to:0x020f7e1c module:overlays(22,23,31)
from:0x02164f70 kind:load to:0x020f7e1c module:overlay(31)
from:0x02164f74 kind:load to:0x0215ca04 module:overlay(63)
from:0x02164f80 kind:load to:0x0215cc1c module:overlay(63)
from:0x02164f84 kind:load to:0x0215d7dc module:overlay(63)
+31 -31
View File
@@ -65,19 +65,19 @@ _ZN19ActorProfileUnkCANSD1Ev kind:function(arm,size=0x14) addr:0x0215c880
_ZN19ActorProfileUnkCASE10GetProfileEv kind:function(arm,size=0xc) addr:0x0215c894
_ZN19ActorProfileUnkCASE6CreateEv kind:function(arm,size=0x24) addr:0x0215c8a0
_ZN19ActorProfileUnkCASEC1Ev kind:function(arm,size=0x48) addr:0x0215c8c4
_ZN12ActorUnkCASE19func_ov063_0215ab70Ev kind:function(arm,size=0x34) addr:0x0215c90c
_ZN12ActorUnkCASE19func_ov063_0215aba4Ev kind:function(arm,size=0x34) addr:0x0215c940
_ZN12ActorUnkCASE19func_ov063_0215abd8Ev kind:function(arm,size=0x74) addr:0x0215c974
_ZN12ActorUnkCASE19func_ov063_0215ac4cEv kind:function(arm,size=0x1c) addr:0x0215c9e8
_ZN12ActorUnkCASE19func_ov063_0215ac68Ev kind:function(arm,size=0x24) addr:0x0215ca04
_ZN12ActorUnkCASE19func_ov063_0215ac8cEv kind:function(arm,size=0x3c) addr:0x0215ca28
_ZN12ActorUnkCASE19func_ov063_0215acc8Ev kind:function(arm,size=0x24) addr:0x0215ca64
_ZN24UnkStruct_ov063_021631a0C1EP10G3d_Model_ kind:function(arm,size=0x34) addr:0x0215c90c
_ZN16ActorUnkCASE_150C1EP5Actor kind:function(arm,size=0x34) addr:0x0215c940
_ZN16ActorUnkCASE_1508vfunc_00E8ActorRefi kind:function(arm,size=0x74) addr:0x0215c974
_ZN16ActorUnkCASE_1508vfunc_04Ev kind:function(arm,size=0x1c) addr:0x0215c9e8
_ZN16ActorUnkCASE_1508vfunc_0CEP7VecFx32 kind:function(arm,size=0x24) addr:0x0215ca04
_ZN16ActorUnkCASE_174C1EP5Actor kind:function(arm,size=0x3c) addr:0x0215ca28
_ZN16ActorUnkCASE_1748vfunc_10EP5Actor kind:function(arm,size=0x24) addr:0x0215ca64
_ZN12ActorUnkCASE19func_ov063_0215acecEP8ActorRefS0_ kind:function(arm,size=0x5c) addr:0x0215ca88
_ZN12ActorUnkCASEC1Ev kind:function(arm,size=0x124) addr:0x0215cae4
_ZN12ActorUnkCASE19func_ov063_0215ae6cEv kind:function(arm,size=0x14) addr:0x0215cc08
_ZN12ActorUnkCASE19func_ov063_0215ae80Ev kind:function(arm,size=0x14) addr:0x0215cc1c
_ZN12ActorUnkCASE19func_ov063_0215ae94Ev kind:function(arm,size=0x68) addr:0x0215cc30
_ZN12ActorUnkCASE19func_ov063_0215aefcEv kind:function(arm,size=0x58) addr:0x0215cc98
_ZN24UnkStruct_ov063_021631a0D1Ev kind:function(arm,size=0x14) addr:0x0215cc08
_ZN16ActorUnkCASE_174D1Ev kind:function(arm,size=0x14) addr:0x0215cc1c
_ZN12ActorUnkCASE8vfunc_18Ei kind:function(arm,size=0x68) addr:0x0215cc30
_ZN12ActorUnkCASE19func_ov063_0215aefcEs kind:function(arm,size=0x58) addr:0x0215cc98
_ZN12ActorUnkCASE19func_ov063_0215af54Ev kind:function(arm,size=0x4) addr:0x0215ccf0
_ZN12ActorUnkCASE19func_ov063_0215af58Ev kind:function(arm,size=0x4) addr:0x0215ccf4
_ZN12ActorUnkCASE19func_ov063_0215af5cEv kind:function(arm,size=0x4) addr:0x0215ccf8
@@ -90,20 +90,20 @@ _ZN12ActorUnkCASE19func_ov063_0215b1bcEv kind:function(arm,size=0x88) addr:0x021
_ZN12ActorUnkCASE19func_ov063_0215b244Ev kind:function(arm,size=0x6c) addr:0x0215cfe0
_ZN12ActorUnkCASE19func_ov063_0215b2b0Ev kind:function(arm,size=0x14) addr:0x0215d04c
_ZN12ActorUnkCASE19func_ov063_0215b2c4Ev kind:function(arm,size=0x4) addr:0x0215d060
_ZN12ActorUnkCASE19func_ov063_0215b2c8Ev kind:function(arm,size=0x24) addr:0x0215d064
_ZN12ActorUnkCASE19func_ov063_0215b2ecEv kind:function(arm,size=0x338) addr:0x0215d088
_ZN12ActorUnkCASE19func_ov063_0215b624Ev kind:function(arm,size=0xa4) addr:0x0215d3c0
_ZN12ActorUnkCASE8vfunc_24Ev kind:function(arm,size=0x24) addr:0x0215d064
_ZN12ActorUnkCASE8vfunc_20Ev kind:function(arm,size=0x338) addr:0x0215d088
_ZN12ActorUnkCASE8vfunc_2CEi kind:function(arm,size=0xa4) addr:0x0215d3c0
_ZN12ActorUnkCASE19func_ov063_0215b6c8EP7VecFx3214UnkAngleStruct kind:function(arm,size=0x5c) addr:0x0215d464
_ZN12ActorUnkCASE19func_ov063_0215b724Ev kind:function(arm,size=0xa8) addr:0x0215d4c0
_ZN12ActorUnkCASE19func_ov063_0215b7ccEv kind:function(arm,size=0x48) addr:0x0215d568
_ZN12ActorUnkCASE19func_ov063_0215b814Ev kind:function(arm,size=0x40) addr:0x0215d5b0
_ZN12ActorUnkCASE8vfunc_10EP8Cylinder kind:function(arm,size=0x48) addr:0x0215d568
_ZN12ActorUnkCASE19func_ov063_0215b814E8ActorRef kind:function(arm,size=0x40) addr:0x0215d5b0
_ZN12ActorUnkCASE19func_ov063_0215b854Ev kind:function(arm,size=0x94) addr:0x0215d5f0
_ZN12ActorUnkCASE19func_ov063_0215b8e8Ev kind:function(arm,size=0xac) addr:0x0215d684
_ZN12ActorUnkCASE19func_ov063_0215b99cEv kind:function(arm,size=0xac) addr:0x0215d730
_ZN12ActorUnkCASED0Ev kind:function(arm,size=0x1c) addr:0x0215d7dc
_ZN12ActorUnkCASE19func_ov063_0215ba64Ev kind:function(arm,size=0x1c) addr:0x0215d7f8
_ZN12ActorUnkCASE19func_ov063_0215b8e8EP7VecFx32 kind:function(arm,size=0xac) addr:0x0215d684
_ZN12ActorUnkCASE19func_ov063_0215b99cEPS_P29UnkStruct_func_ov063_0215a678 kind:function(arm,size=0xac) addr:0x0215d730
_ZN16ActorUnkCASE_174D0Ev kind:function(arm,size=0x1c) addr:0x0215d7dc
_ZN24UnkStruct_ov063_021631a0D0Ev kind:function(arm,size=0x1c) addr:0x0215d7f8
_ZN12ActorUnkCASED1Ev kind:function(arm,size=0x30) addr:0x0215d814
_ZN12ActorUnkCASE19func_ov063_0215bab0Ev kind:function(arm,size=0x38) addr:0x0215d844
_ZN12ActorUnkCASED0Ev kind:function(arm,size=0x38) addr:0x0215d844
_ZN19ActorProfileUnkCASED1Ev kind:function(arm,size=0x14) addr:0x0215d87c
func_ov063_0215bafc kind:function(arm,size=0x38) addr:0x0215d890
func_ov063_0215bb34 kind:function(arm,size=0x54) addr:0x0215d8c8
@@ -364,8 +364,8 @@ func_ov063_021624dc kind:function(arm,size=0x48) addr:0x021642f4
data_ov063_02162528 kind:data(any) addr:0x02164340
data_ov063_02162538 kind:data(any) addr:0x02164350
data_ov063_02162548 kind:data(any) addr:0x02164360
data_ov063_02164370 kind:data(any) addr:0x02164370
data_ov063_02164380 kind:data(any) addr:0x02164380
data_ov063_02162558 kind:data(any) addr:0x02164370
data_ov063_02162568 kind:data(any) addr:0x02164380
data_ov063_02162578 kind:data(any) addr:0x02164390
data_ov063_02162588 kind:data(any) addr:0x021643a0
data_ov063_02162598 kind:data(any) addr:0x021643b0
@@ -427,14 +427,14 @@ data_ov063_02163068 kind:data(any) addr:0x02164e88
data_ov063_02163080 kind:data(any) addr:0x02164ea0
data_ov063_02163098 kind:data(any) addr:0x02164eb8
data_ov063_021630b0 kind:data(any) addr:0x02164ed0
data_ov063_02164ee8 kind:data(any) addr:0x02164ee8
data_ov063_02164f00 kind:data(any) addr:0x02164f00
data_ov063_02164f30 kind:data(any) addr:0x02164f30
data_ov063_02164f68 kind:data(any) addr:0x02164f68
data_ov063_02164f80 kind:data(any) addr:0x02164f80
_ZTV19data_ov063_02164f94 kind:data(any) addr:0x02164f94
data_ov063_02164fc0 kind:data(any) addr:0x02164fc0
_ZTV19data_ov063_02164fe4 kind:data(any) addr:0x02164fe4
data_ov063_021630c8 kind:data(any) addr:0x02164ee8
data_ov063_021630e0 kind:data(any) addr:0x02164f00
data_ov063_02163110 kind:data(any) addr:0x02164f30
_ZTV16ActorUnkCASE_150 kind:data(any) addr:0x02164f60
_ZTV16ActorUnkCASE_174 kind:data(any) addr:0x02164f78
_ZTV19ActorProfileUnkCASE kind:data(any) addr:0x02164f94
_ZTV24UnkStruct_ov063_021631a0 kind:data(any) addr:0x02164fb8
_ZTV12ActorUnkCASE kind:data(any) addr:0x02164fe4
_ZTV19data_ov063_02165044 kind:data(any) addr:0x02165044
_ZTV19ActorProfileUnkRMSV kind:data(any) addr:0x021650a8
data_ov063_021632ac kind:data(any) addr:0x021650cc
+1 -1
View File
@@ -322,7 +322,7 @@ _ZN14ActorTearLight19func_ov071_0215ffbcEv kind:function(arm,size=0x44) addr:0x0
_ZN18ActorTearLight_194C2EP14ActorTearLight kind:function(arm,size=0x38) addr:0x02162240
_ZN18ActorTearLight_1948vfunc_00E8ActorRefi kind:function(arm,size=0x40) addr:0x02162278
_ZN18ActorTearLight_1948vfunc_04Ev kind:function(arm,size=0x1c) addr:0x021622b8
_ZN18ActorTearLight_1948vfunc_0CEi kind:function(arm,size=0x24) addr:0x021622d4
_ZN18ActorTearLight_1948vfunc_0CEP7VecFx32 kind:function(arm,size=0x24) addr:0x021622d4
_ZN18ActorTearLight_1948vfunc_08Ev kind:function(arm,size=0x1c) addr:0x021622f8
_ZN18ActorTearLight_204C2Ev kind:function(arm,size=0x14) addr:0x02162314
_ZN18ActorTearLight_104D0Ev kind:function(arm,size=0x1c) addr:0x02162328
+6 -2
View File
@@ -9,6 +9,7 @@
#include "flags.h"
#include "global.h"
#include "math.hpp"
#include "nitro/fx.h"
#include "types.h"
#include "versions.h"
@@ -164,7 +165,7 @@ public:
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual unk16 vfunc_08();
/* 0C */ virtual unk8 vfunc_0C();
/* 10 */ virtual void vfunc_10(VecFx32 *param1);
/* 10 */ virtual void vfunc_10(Cylinder *param1);
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual bool vfunc_18(unk32 param1); // Init?
/* 1C */ virtual void vfunc_1C(); // Setup
@@ -281,7 +282,7 @@ public:
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2);
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C(unk32 param1);
/* 0C */ virtual void vfunc_0C(VecFx32 *param1);
/* 10 */
template <typename T> T *GetActorPtr() {
@@ -290,6 +291,9 @@ public:
Actor_C4(Actor *param1) :
Actor_C4_Base(&param1->mRef, 0) {}
Actor_C4(Actor *param1, unk32 param2) :
Actor_C4_Base(&param1->mRef, param2) {}
};
class Actor_Derived2 : public Actor {
+2 -1
View File
@@ -3,6 +3,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "ActorRupee.hpp"
#include "nitro/fx.h"
#include "types.h"
enum ActorHeartState_ {
@@ -22,7 +23,7 @@ public:
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorHeart : public Actor {
+2 -1
View File
@@ -3,6 +3,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "nitro/fx.h"
#include "types.h"
typedef u32 ItemDropType;
@@ -39,7 +40,7 @@ public:
virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
virtual bool vfunc_04() override;
virtual void vfunc_08() override;
virtual void vfunc_0C(unk32 param1) override;
virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorItemDrop : public Actor_Derived2 {
+2 -1
View File
@@ -5,6 +5,7 @@
#include "Actor/ActorProfile.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "Player/PlayerGet.hpp"
#include "nitro/fx.h"
#include "types.h"
typedef u32 RupeeId;
@@ -43,7 +44,7 @@ public:
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorRupee : public Actor {
+2 -1
View File
@@ -7,6 +7,7 @@
#include "ActorUnkZLSL_ZSRS.hpp"
#include "Item/Item.hpp"
#include "global.h"
#include "nitro/fx.h"
#include "types.h"
class ActorTearLight;
@@ -39,7 +40,7 @@ public:
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorTearLight_104_Base : public UnkStruct_ov000_020b31a8 {
+1 -22
View File
@@ -45,16 +45,6 @@ public:
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2, unk32 param3) override;
};
class UnkStruct_ov000_020b19f0 : public ModelRender {
public:
UnkStruct_ov000_020b19f0(G3d_Model *pModel);
};
class UnkStruct_ov000_020b3268 : public UnkStruct_ov000_020b19f0 {
public:
UnkStruct_ov000_020b3268(G3d_Model *pModel);
};
class UnkStruct_ov063_02162ee8 : public UnkStruct_ov000_020b3268 {
public:
/* 00 (base) */
@@ -100,17 +90,6 @@ public:
/* 04 */ virtual unk32 vfunc_04(ActorRef param1, unk32 param2, unk32 param3, unk32 *param4) override;
};
class UnkStruct_func_ov063_0215a678 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x04);
/* 04 */ ModelRender *mUnk_04; //! INFO: Placeholder that matches
/* 08 */ unk32 mUnk_08;
/* 0C */ STRUCT_PAD(0x0C, 0x92);
/* 92 */ s8 mUnk_92;
/* 93 */ STRUCT_PAD(0x93, 0xAE);
/* AE */ u8 mUnk_AE;
};
class UnkStruct_ActorUnkCANS_224 {
public:
/* 00 (base) */
@@ -123,7 +102,7 @@ class ActorUnkCANS : public Actor_Derived2 {
public:
/* 000 (base) */
/* 0AE */ STRUCT_PAD(0xAE, 0xB0);
/* 0B0 */ UnkStruct_ov063_02162ee8 mUnk_B0;
/* 0B0 */ UnkStruct_ov063_02162ee8 mUnk_0B0;
/* 128 */ UnkStruct_ov063_02162f14 mUnk_128;
/* 1C8 */ STRUCT_PAD(0x1C8, 0x1F4);
/* 1F4 */ Actor_Derived1_94 mUnk_1F4;
+78 -16
View File
@@ -5,26 +5,94 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorRef.hpp"
#include "Actor/ActorShotArrow.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "Unknown/UnkStruct_ov000_020b3268.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
#include "global.h"
#include "nitro/fx.h"
#include "nitro/math.h"
#include "types.h"
class ActorUnkCASE_C4 : public Actor_C4 {
class UnkStruct_ov063_021631a0 : public UnkStruct_ov000_020b3268 {
public:
ActorUnkCASE_C4(Actor *param1);
/* 00 (base) */
/* 60 */ STRUCT_PAD(0x60, 0x6C);
/* 6C */ unk32 mUnk_6C;
/* 70 */
UnkStruct_ov063_021631a0(G3d_Model *pModel);
/* 00 */ virtual ~UnkStruct_ov063_021631a0() override {};
};
class UnkStruct_func_ov063_0215a678 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x04);
/* 04 */ ModelRender *mUnk_04; //! INFO: Placeholder that matches
/* 08 */ unk32 mUnk_08;
/* 0C */ STRUCT_PAD(0x0C, 0x25);
/* 25 */ u8 mUnk_25;
/* 26 */ STRUCT_PAD(0x26, 0x92);
/* 92 */ s8 mUnk_92;
/* 93 */ STRUCT_PAD(0x93, 0xAE);
/* AE */ u8 mUnk_AE;
};
class ActorUnkCASE_150 : public Actor_C4 {
public:
/* 00 (base) */
/* 24 */
ActorUnkCASE_150(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorUnkCASE : public Actor {
class ActorUnkCASE_174 : public UnkStruct_ov031_Items_01 {
public:
/* 00 (base) */
/* 94 */
/* 2C */ Actor *mUnk_2C;
/* 30 */
ActorUnkCASE_174(Actor *param1);
/* 00 */ virtual ~ActorUnkCASE_174() override {};
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
class ActorUnkCASE : public Actor_Derived2 {
public:
/* 000 (base) */
/* 0AE */ unk16 mUnk_0AE;
/* 0B0 */ UnkStruct_ov063_021631a0 mUnk_0B0;
/* 120 */ unk16 mUnk_120;
/* 122 */ STRUCT_PAD(0x122, 0x124);
/* 124 */ ActorShotArrow_140 mUnk_124;
/* 14C */ Actor *mUnk_14C;
/* 150 */ ActorUnkCASE_150 mUnk_150;
/* 174 */ ActorUnkCASE_174 mUnk_174;
/* 1A4 */ Mat3p mUnk_1A4;
/* 1C8 */ unk16 mUnk_1C8; // Angle related
/* 1CA */ STRUCT_PAD(0x1CA, 0x1CC);
/* 1CC */ VecFx32 mUnk_1CC;
/* 1D8 */ unk32 mUnk_1D8;
/* 1DC */ unk32 mUnk_1DC;
/* 1E0 */ unk32 mUnk_1E0;
/* 1E4 */ ActorRef mUnk_1E4;
/* 1E8 */ Actor_Derived1_94 mUnk_1E8;
/* 1F4 */ u8 mUnk_1F4;
/* 1F5 */
ActorUnkCASE();
/* 10 */ virtual void vfunc_10(Cylinder *param1) override;
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 4C */ virtual ~ActorUnkCASE() override;
void func_ov063_0215ab70(void);
@@ -37,8 +105,7 @@ public:
static void func_ov063_0215acec(ActorRef *ref1, ActorRef ref2); // copy ?
void func_ov063_0215ae6c(void);
void func_ov063_0215ae80(void);
void func_ov063_0215ae94(void);
void func_ov063_0215aefc(void);
void func_ov063_0215aefc(ActorState param2);
void func_ov063_0215af54(void);
void func_ov063_0215af58(void);
void func_ov063_0215af5c(void);
@@ -51,18 +118,13 @@ public:
void func_ov063_0215b244(void);
void func_ov063_0215b2b0(void);
void func_ov063_0215b2c4(void);
void func_ov063_0215b2c8(void);
void func_ov063_0215b2ec(void);
void func_ov063_0215b624(void);
void func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle);
void func_ov063_0215b724(void);
void func_ov063_0215b7cc(void);
void func_ov063_0215b814(void);
void func_ov063_0215b814(ActorRef ref);
void func_ov063_0215b854(void);
void func_ov063_0215b8e8(void);
void func_ov063_0215b99c(void);
void func_ov063_0215b8e8(VecFx32 *param1);
static void func_ov063_0215b99c(ActorUnkCASE *param1, UnkStruct_func_ov063_0215a678 *param2);
void func_ov063_0215ba64(void);
void func_ov063_0215bab0(void);
};
class ActorProfileUnkCASE : public ActorProfile_Derived1 {
+5 -1
View File
@@ -5,6 +5,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "nitro/math.h"
#include "types.h"
class ActorUnkITWP_C4 : public Actor_C4 {
@@ -20,7 +21,10 @@ public:
class ActorUnkITWP : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 094 */ STRUCT_PAD(0x094, 0x0E8);
/* 0E8 */ VecFx32 mUnk_0E8;
/* 0F4 */ STRUCT_PAD(0x0F4, 0x154);
/* 154 */ Mat3p mUnk_154;
ActorUnkITWP();
+2 -1
View File
@@ -4,6 +4,7 @@
#include "Actor/ActorProfile.hpp"
#include "ActorManager.hpp"
#include "global.h"
#include "nitro/fx.h"
#include "types.h"
class MapObjectUnkSWFS;
@@ -16,7 +17,7 @@ public:
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorUnkNFSP : public Actor {
@@ -0,0 +1,10 @@
#pragma once
#include "Actor/ActorUnkZLSL_ZSRS.hpp"
class UnkStruct_ov000_020b19f0 : public ModelRender_ov000_020b4d64 {
public:
UnkStruct_ov000_020b19f0(G3d_Model *pModel);
/* 0C */ virtual void vfunc_0C() override;
};
@@ -0,0 +1,8 @@
#pragma once
#include "UnkStruct_ov000_020b19f0.hpp"
class UnkStruct_ov000_020b3268 : public UnkStruct_ov000_020b19f0 {
public:
UnkStruct_ov000_020b3268(G3d_Model *pModel);
};
+2 -1
View File
@@ -3,6 +3,7 @@
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "nitro/fx.h"
typedef struct {
unk16 mUnk_00;
@@ -451,7 +452,7 @@ bool ActorHeart_C4::vfunc_04() {
return this->Actor_C4::vfunc_04();
}
void ActorHeart_C4::vfunc_0C(unk32 param1) {
void ActorHeart_C4::vfunc_0C(VecFx32 *param1) {
this->GetActorPtr<ActorHeart>()->SetState(ActorHeartState_1);
this->Actor_C4::vfunc_0C(param1);
}
+2 -1
View File
@@ -7,6 +7,7 @@
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
#include "nitro/fx.h"
#include "versions.h"
extern "C" void func_01ffedac(Vec2bCpp *, VecFx32 *);
@@ -547,7 +548,7 @@ bool ActorItemDrop_C4::vfunc_04() {
return Actor_C4::vfunc_04();
}
void ActorItemDrop_C4::vfunc_0C(unk32 param1) {
void ActorItemDrop_C4::vfunc_0C(VecFx32 *param1) {
this->GetActorPtr<ActorItemDrop>()->SetState(ActorItemDropState_1);
Actor_C4::vfunc_0C(param1);
}
+9 -8
View File
@@ -1,5 +1,6 @@
#include "Actor/ActorRollingStone.hpp"
#include "Physics/Cylinder.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e09b4.hpp"
@@ -288,17 +289,17 @@ void ActorRollingStone::func_ov031_020f8bc4() {
sp38.z = MUL_FX32(cosValue, FLOAT_TO_FX32(1.0f));
sp38.y = FLOAT_TO_FX32(0.0f);
VecFx32 sp28;
Cylinder sp28;
this->vfunc_10(&sp28);
sp28.z += FLOAT_TO_FX32(0.05f);
sp28.pos.z += FLOAT_TO_FX32(0.05f);
if (data_027e09c0->func_ov000_0207e458(0x2, 0x1B, &sp28, 0x2, &sp38, this->mRef)) {
if (data_027e09c0->func_ov000_0207e458(0x2, 0x1B, &sp28.pos, 0x2, &sp38, this->mRef)) {
return;
}
this->func_ov000_02098ab4(0x2, 0x5, 0x1, &this->mVel);
this->vfunc_10(&this->mUnk_D4.mUnk_0C.pos);
this->vfunc_10(&this->mUnk_D4.mUnk_0C);
VecFx32 sp14;
VecFx32_Copy(&this->mPos, &sp14);
@@ -625,17 +626,17 @@ void ActorRollingStone::func_ov031_020f9554() {
sp38.y = FLOAT_TO_FX32(0.0f);
sp38.z = MUL_FX32(cosValue, FLOAT_TO_FX32(0.25f));
VecFx32 sp28;
Cylinder sp28;
this->vfunc_10(&sp28);
sp28.z += FLOAT_TO_FX32(0.05f);
sp28.pos.z += FLOAT_TO_FX32(0.05f);
if (data_027e09c0->func_ov000_0207e458(0x2, 0x1B, &sp28, 0x2, &sp38, this->mRef)) {
if (data_027e09c0->func_ov000_0207e458(0x2, 0x1B, &sp28.pos, 0x2, &sp38, this->mRef)) {
return;
}
this->func_ov000_02098ab4(0x2, 0x5, 0x1, 0x0);
this->vfunc_10(&this->mUnk_D4.mUnk_0C.pos);
this->vfunc_10(&this->mUnk_D4.mUnk_0C);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xB, 0x4, &this->mUnk_D4);
+2 -1
View File
@@ -6,6 +6,7 @@
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
#include "nitro/fx.h"
static PTMF<ActorRupee> data_ov031_02113588[0xD] = {
ActorRupee::func_ov031_020e91a8, // ActorRupeeState_0
@@ -863,7 +864,7 @@ bool ActorRupee_C4::vfunc_04() {
return this->Actor_C4::vfunc_04();
}
void ActorRupee_C4::vfunc_0C(unk32 param1) {
void ActorRupee_C4::vfunc_0C(VecFx32 *param1) {
this->GetActorPtr<ActorRupee>()->SetState(ActorRupeeState_1);
this->Actor_C4::vfunc_0C(param1);
}
+7 -8
View File
@@ -4,6 +4,7 @@
#include "Actor/ActorUnkGYAM.hpp"
#include "Actor/ActorUnkIWTS.hpp"
#include "Actor/ActorUnkMRD2.hpp"
#include "Physics/Cylinder.hpp"
#include "System/OverlayManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
@@ -24,8 +25,7 @@ typedef struct UnkResourceStruct2 {
typedef struct {
/* 00 */ VecFx32 mUnk_00;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ unk32 mUnk_18;
/* 0C */ Cylinder mUnk_0C;
/* 1C */ VecFx32 mUnk_1C;
/* 28 */ VecFx32 mUnk_28;
/* 34 */
@@ -43,8 +43,7 @@ typedef struct {
typedef struct {
/* 00 */ STRUCT_PAD(0x00, 0x04);
/* 04 */ VecFx32 mUnk_04;
/* 10 */ STRUCT_PAD(0x10, 0x14);
/* 04 */ Cylinder mUnk_04;
/* 14 */ VecFx32 mUnk_14;
/* 20 */
} UnkStruct_020f3c38;
@@ -1006,14 +1005,14 @@ void ActorShotArrow_194::func_ov031_020f374c(Actor *actor) {
func_01ffb714(&stack.mUnk_1C, &actor->mVel, &stack.mUnk_1C);
actor->vfunc_10(&stack.mUnk_0C);
stack.mUnk_00 = stack.mUnk_0C;
stack.mUnk_00 = stack.mUnk_0C.pos;
func_01ffb714(&stack.mUnk_00, &stack.mUnk_1C, &stack.mUnk_00);
unk32 temp = func_01ff9258(stack.mUnk_00.x, stack.mUnk_00.z);
//! @bug: stack.mUnk_18 is used uninitialized?
if (temp > stack.mUnk_18 && stack.mUnk_18 > FLOAT_TO_FX32(0.15f)) {
fx32 temp_r5 = (temp - stack.mUnk_18) + FLOAT_TO_FX32(0.15f);
if (temp > stack.mUnk_0C.size && stack.mUnk_0C.size > FLOAT_TO_FX32(0.15f)) {
fx32 temp_r5 = (temp - stack.mUnk_0C.size) + FLOAT_TO_FX32(0.15f);
u16 value = (u32) (s16) (s32) func_01ffbbe0(stack.mUnk_00.x, stack.mUnk_00.z);
fx16 sin = SIN(value);
@@ -1130,7 +1129,7 @@ bool ActorShotArrow_194::vfunc_0C(Actor *actor, VecFx32 *vector) {
func_01ffb714(&actor->mVel, &this->mUnk_2C->mVel, &stack.mUnk_14);
actor->vfunc_10(&stack.mUnk_04);
if (!func_01ffccf4(&this->mUnk_0C, &stack.mUnk_04, &stack.mUnk_14, &this->mUnk_30)) {
if (!func_01ffccf4(&this->mUnk_0C, &stack.mUnk_04.pos, &stack.mUnk_14, &this->mUnk_30)) {
return false;
}
+2 -1
View File
@@ -3,6 +3,7 @@
#include "Actor/ActorManager.hpp"
#include "MapObject/MapObjectUnkSWFS.hpp"
#include "System/SysNew.hpp"
#include "nitro/fx.h"
class ActorUnkNFSP_vfunc_54 : public Actor {
public:
@@ -221,7 +222,7 @@ void ActorUnkNFSP_C0::vfunc_08() {
this->Actor_C4::vfunc_08();
}
void ActorUnkNFSP_C0::vfunc_0C(unk32 param1) {
void ActorUnkNFSP_C0::vfunc_0C(VecFx32 *param1) {
this->mUnk_04 = 0x1;
this->GetActorPtr<ActorUnkNFSP>()->vfunc_54(0x3);
this->Actor_C4::vfunc_0C(param1);
+10 -15
View File
@@ -152,11 +152,6 @@ bool UnkStruct_ov063_02162ea8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1,
return UnkStruct_027e0ce0_38_Base::vfunc_0C((const UnkStruct_ov031_020e54d4 *) param2Struct->mUnk_04, param2,
param2Struct->mUnk_04);
}
UnkStruct_ov000_020b19f0::UnkStruct_ov000_020b19f0(G3d_Model *pModel) :
ModelRender(pModel) {}
UnkStruct_ov000_020b3268::UnkStruct_ov000_020b3268(G3d_Model *pModel) :
UnkStruct_ov000_020b19f0(pModel) {}
UnkStruct_ov063_02162ee8::UnkStruct_ov063_02162ee8(G3d_Model *pModel) :
UnkStruct_ov000_020b3268(pModel),
@@ -216,8 +211,8 @@ unk32 UnkStruct_ov063_02162e88::vfunc_04(ActorRef param1, unk32 param2, unk32 pa
}
ActorUnkCANS::ActorUnkCANS() :
mUnk_B0(G3d_GetModelPtr(((MapObjectProfile_Derived2_20 *) GET_PROFILE(ActorProfileUnkCANS)->vfunc_04())->mUnk_50)),
mUnk_128(&mUnk_B0, GET_PROFILE(ActorProfileUnkCANS)->vfunc_04()),
mUnk_0B0(G3d_GetModelPtr(((MapObjectProfile_Derived2_20 *) GET_PROFILE(ActorProfileUnkCANS)->vfunc_04())->mUnk_50)),
mUnk_128(&mUnk_0B0, GET_PROFILE(ActorProfileUnkCANS)->vfunc_04()),
mUnk_1F4(),
mUnk_200(this),
mUnk_224(),
@@ -228,12 +223,12 @@ ActorUnkCANS::ActorUnkCANS() :
mUnk_250(mUnk_5C.mInitialPos),
mUnk_274(0),
mUnk_270(0xCD) {
mFlags[0] |= 0x40;
SET_FLAG(mFlags, ActorFlag_6);
Actor_38 *actor_38 = (Actor_38 *) &mUnk_1F4;
mUnk_38 = actor_38;
actor_38->mUnk_08 = 4;
this->func_ov000_0209862c(4);
mUnk_200.mUnk_04 &= 0xFFFFBFFF;
UNSET_FLAG(&mUnk_200.mUnk_04, ActorFlag_14);
mUnk_276 = gRandom.Next32(0) & 0x80000000 ? 1 : -1;
mUnk_48 = 4;
mUnk_270 *= mUnk_276;
@@ -255,8 +250,8 @@ void ActorUnkCANS::vfunc_10(Cylinder *param1) {
// return bool ?
unk32 ActorUnkCANS::vfunc_18(void) {
this->mUnk_B0.func_ov000_02057c38(6, 2);
this->mUnk_B0.func_ov000_0209a7b8(this, (UnkSystem4_UnkCallback) ActorUnkCANS::func_ov063_0215a678);
this->mUnk_0B0.func_ov000_02057c38(6, 2);
this->mUnk_0B0.func_ov000_0209a7b8(this, (UnkSystem4_UnkCallback) ActorUnkCANS::func_ov063_0215a678);
ActorRef var;
ActorManager *actorManager = gpActorManager;
@@ -506,7 +501,7 @@ void ActorUnkCANS::vfunc_2C(unk32 param1) {
return;
}
((UnkSystem6_Derived2 *) &mUnk_B0)->func_01ffc6d4(mAngleStruct, &mPos);
((UnkSystem6_Derived2 *) &mUnk_0B0)->func_01ffc6d4(mAngleStruct, &mPos);
if (mUnk_268 != NULL) {
VecFx32 vec;
@@ -1202,10 +1197,10 @@ void ActorUnkCANS::func_ov063_0215a678(ActorUnkCANS *actor, UnkStruct_func_ov063
} else {
var1 = 0x1F;
}
func_0200eab0(modelRender->mpModel, actor->mUnk_B0.mUnk_6C, var1);
func_0200eab0(modelRender->mpModel, actor->mUnk_0B0.mUnk_6C, var1);
unk32 var2 = param2->mUnk_08 & 0x10 ? param2->mUnk_AE : -1;
if (var2 == actor->mUnk_B0.mUnk_70) {
if (var2 == actor->mUnk_0B0.mUnk_70) {
if (((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] == 2) {
param2->mUnk_92 = 3;
((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] = 3;
@@ -1236,7 +1231,7 @@ void ActorUnkCANS::func_ov063_0215a678(ActorUnkCANS *actor, UnkStruct_func_ov063
}
unk32 var3 = param2->mUnk_08 & 0x10 ? param2->mUnk_AE : -1;
if (var3 == actor->mUnk_B0.mUnk_74) {
if (var3 == actor->mUnk_0B0.mUnk_74) {
if (((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] == 2) {
param2->mUnk_92 = 3;
((u8 *) &modelRender->mRenderObj.mUnk_1C)[1] = 3;
+562 -36
View File
@@ -1,9 +1,76 @@
//! TODO: This file was generated automatically and might contain errors
#define VECFX32_CTORS //! TODO: remove this hack
#include "Actor/ActorUnkCASE.hpp"
#include "Actor/Actor.hpp"
#include "Actor/ActorId.hpp"
#include "Actor/ActorManager.hpp"
#include "Actor/ActorRef.hpp"
#include "System/SysNew.hpp"
#include "Actor/ActorShotArrow.hpp"
#include "Actor/ActorUnkCANS.hpp"
#include "Actor/ActorUnkITWP.hpp"
#include "MapObject/MapObjectProfile_Derived2_20.hpp"
#include "Physics/Cylinder.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d38.hpp"
#include "flags.h"
#include "global.h"
#include "nitro/fx.h"
#include "nitro/math.h"
#include "nns/g3d/g3d.h"
extern const void *data_ov063_02162558;
extern const void *data_ov063_02162568;
extern Mat4x3p data_027e0964;
extern "C" void func_01ffa60c(const Mat3p *, Mat3p *, Mat3p *);
extern "C" void func_01ffa7a0(VecFx32 *, Mat3p *, VecFx32 *);
extern "C" void func_01ffad5c(Mat4x3p *, Mat4x3p *, Mat4x3p *);
extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *);
extern "C" u16 func_01ffbbe0(fx32 x, fx32 z);
// Overlay 0
extern unk32 data_ov000_020aecf8[0x2]; //! INFO: Unsure about the size and type
extern u16 data_ov000_020aed00;
extern "C" void func_ov000_0207b70c(ActorUnkCASE_174 *param1, Actor *param2);
extern "C" void func_ov000_020990c0(ActorUnkCASE *param1, ActorShotArrow_140 *param2, unk32 param3, unk32 param4);
// Overlay 17
extern "C" unk32 func_ov017_020bef4c(ActorUnkCASE *param1, unk32 param2);
// Other
extern "C" void G3d_GetCurrentMtx(Mat4x3p *mtx1, Mat3p *mtx2);
struct UnkStruct_data_ov063_021630c8 {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
UnkStruct_data_ov063_021630c8(unk32 a, unk32 b, unk32 c, unk32 d, unk32 e, unk32 f) {
mUnk_00 = a;
mUnk_04 = b;
mUnk_08 = c;
mUnk_0C = d;
mUnk_10 = e;
mUnk_14 = f;
}
};
const UnkStruct_data_ov063_021630c8 data_ov063_021630c8(0x5EC, 0x785, 0xFFFFFD48, 0x7AE, 0x112, 0xFFFFECA4);
static PTMF<ActorUnkCASE> data_ov063_021630e0[0x6] = {ActorUnkCASE::func_ov063_0215af58, ActorUnkCASE::func_ov063_0215af60,
ActorUnkCASE::func_ov063_0215afb8, ActorUnkCASE::func_ov063_0215b090,
ActorUnkCASE::func_ov063_0215b244, ActorUnkCASE::func_ov063_0215b2c4};
static PTMF<ActorUnkCASE> data_ov063_02163110[0x6] = {ActorUnkCASE::func_ov063_0215af54, ActorUnkCASE::func_ov063_0215af5c,
ActorUnkCASE::func_ov063_0215afa4, ActorUnkCASE::func_ov063_0215b054,
ActorUnkCASE::func_ov063_0215b1bc, ActorUnkCASE::func_ov063_0215b2b0};
DECL_PROFILE(ActorProfileUnkCASE);
@@ -12,46 +79,505 @@ Actor *ActorProfileUnkCASE::Create() {
}
ActorProfileUnkCASE::ActorProfileUnkCASE() :
ActorProfile_Derived1(ActorId_CASE) {}
ActorProfile_Derived1(ActorId_CASE) {
VecFx32_Init(0, 0x666, 0, &mUnk_04.pos);
mUnk_04.size = 0x800;
}
ActorUnkCASE::ActorUnkCASE() {}
UnkStruct_ov063_021631a0::UnkStruct_ov063_021631a0(G3d_Model *pModel) :
UnkStruct_ov000_020b3268(pModel),
mUnk_6C(ModelRender::func_ov000_02057f18(&data_ov063_02162568)) {}
void ActorUnkCASE::func_ov063_0215ab70(void) {}
void ActorUnkCASE::func_ov063_0215aba4(void) {}
void ActorUnkCASE::func_ov063_0215abd8(void) {}
void ActorUnkCASE::func_ov063_0215ac4c(void) {}
void ActorUnkCASE::func_ov063_0215ac68(void) {}
void ActorUnkCASE::func_ov063_0215ac8c(void) {}
void ActorUnkCASE::func_ov063_0215acc8(void) {}
void ActorUnkCASE::func_ov063_0215acec(ActorRef *ref1, ActorRef ref2) {};
void ActorUnkCASE::func_ov063_0215ae6c(void) {}
void ActorUnkCASE::func_ov063_0215ae80(void) {}
void ActorUnkCASE::func_ov063_0215ae94(void) {}
void ActorUnkCASE::func_ov063_0215aefc(void) {}
ActorUnkCASE_150::ActorUnkCASE_150(Actor *param1) :
Actor_C4(param1, 1) {
mUnk_20 = param1;
mUnk_04 = 1;
}
bool ActorUnkCASE_150::vfunc_00(ActorRef ref, unk32 param2) {
ActorUnkCASE *actor = (ActorUnkCASE *) mUnk_20;
if (actor->mUnk_1F4 == 0) {
bool cond = true;
if ((u32) actor->mState != 5 && actor->mState != 4) {
cond = false;
}
if (!cond) {
return false;
}
}
if (param2 != 0) {
actor->func_ov063_0215b814(ref);
}
return Actor_C4::vfunc_00(ref, param2);
}
bool ActorUnkCASE_150::vfunc_04() {
((ActorUnkCASE *) mUnk_20)->func_ov063_0215b854();
return Actor_C4::vfunc_04();
}
void ActorUnkCASE_150::vfunc_0C(VecFx32 *param1) {
((ActorUnkCASE *) mUnk_20)->func_ov063_0215b8e8(param1);
Actor_C4::vfunc_0C(param1);
}
ActorUnkCASE_174::ActorUnkCASE_174(Actor *param1) {
mUnk_04 = 0;
mUnk_2C = param1;
}
void ActorUnkCASE_174::vfunc_10(Actor *actor) {
((ActorUnkCASE *) mUnk_2C)->func_ov063_0215b724();
func_ov000_0207b70c(this, actor);
}
ActorUnkCASE::ActorUnkCASE() :
mUnk_0B0(G3d_GetModelPtr(((MapObjectProfile_Derived2_20 *) GET_PROFILE(ActorProfileUnkCASE)->vfunc_04())->mUnk_50)),
mUnk_120(0),
mUnk_124(this),
mUnk_14C(NULL),
mUnk_150(this),
mUnk_174(this),
mUnk_1C8(0),
mUnk_1CC(0, 0, 0),
mUnk_1D8(0),
mUnk_1DC(0),
mUnk_1E0(0),
mUnk_1E4(0),
mUnk_1F4(0) {
UNSET_FLAG(mFlags, ActorFlag_6);
mUnk_40 = &mUnk_150;
mUnk_124.mUnk_04 = 0;
SET_FLAG2(mUnk_124.mUnk_04, ActorFlag_13);
mUnk_124.mUnk_24 = 1;
mUnk_38 = (Actor_38 *) &mUnk_1E8;
mUnk_38->mUnk_08 = 4;
mUnk_A8 = &data_ov063_02162558;
}
void ActorUnkCASE::vfunc_10(Cylinder *param1) {
if (mUnk_14C != NULL) {
((ActorUnkCASE *) mUnk_14C)->vfunc_10(param1);
return;
}
VecFx32_Copy(&mPos, &param1->pos); // doesn't match
param1->size = 0x800;
}
bool ActorUnkCASE::vfunc_18(unk32 param1) {
mUnk_14C = gpActorManager->func_01fff3b4(mUnk_5C.mUnk_28);
mUnk_0B0.func_ov000_02057c38(6, 2);
mUnk_0B0.func_ov000_0209a7b8(this, (UnkSystem4_UnkCallback) ActorUnkCASE::func_ov063_0215b99c);
this->func_ov063_0215aefc(0);
VecFx32_Init(0, 0, 0, &mVel);
return true;
}
void ActorUnkCASE::vfunc_20() {
mUnk_150.mUnk_1C = 1;
if (!func_ov017_020bef4c(this, 0x4000) && mUnk_48 != 0) {
bool cond = true;
if (mState != 1 && mState != 2) {
cond = false;
}
if (!cond) {
return;
}
if (mState == 3) {
this->func_ov063_0215b724();
return;
}
}
mUnk_3C = &mUnk_124;
CALL_PTMF(PTMF<ActorUnkCASE>, data_ov063_021630e0[mState]);
VecFx32 *vec_base, *vec2;
u16 ret1;
fx16 x, y, z;
fx32 x_pos, x_neg, z_pos, z_neg;
if (mUnk_14C != NULL) {
VecFx32 vec1;
VecFx32 *mUnk_14C_vec = (VecFx32 *) (((u8 *) mUnk_14C) + 0x25C);
vec1 = *mUnk_14C_vec;
func_01ffb714(&vec1, &mPos, &vec1);
z = vec1.z;
y = vec1.y;
x = vec1.x;
((VecFx16 *) &mUnk_150.mUnk_0E)->x = x;
((VecFx16 *) &mUnk_150.mUnk_0E)->y = y;
((VecFx16 *) &mUnk_150.mUnk_0E)->z = z;
vec2 = data_027e0ce0->func_01fff148(0);
vec_base = (VecFx32 *) (((u8 *) mUnk_14C) + 0x25C);
z_neg = vec2->z;
z_pos = vec_base->z;
x_pos = vec_base->x;
x_neg = vec2->x;
} else if (mState == 5) {
VecFx32 vec1;
vec1 = mUnk_1CC;
func_01ffb714(&vec1, &mPos, &vec1);
z = vec1.z;
y = vec1.y;
x = vec1.x;
((VecFx16 *) &mUnk_150.mUnk_0E)->x = x;
((VecFx16 *) &mUnk_150.mUnk_0E)->y = y;
((VecFx16 *) &mUnk_150.mUnk_0E)->z = z;
vec2 = data_027e0ce0->func_01fff148(0);
vec_base = &mUnk_1CC;
z_pos = vec_base->z;
z_neg = vec2->z;
x_pos = vec_base->x;
x_neg = vec2->x;
} else {
goto post;
}
// Unsuccessful tries to remove the goto: duplicating raw code, duplicating an inline of the code, wrapping the code in an
// "if (cond1 || cond2) { code }"
ret1 = func_01ffbbe0(x_pos - x_neg, z_pos - z_neg);
s16 sin_val = SIN((u16) (s16) ret1);
s16 cos_val = COS((u16) (s16) ret1);
((VecFx16 *) &mUnk_150.mUnk_08)->y = y;
// ((VecFx16 *) &mUnk_150.mUnk_08)->x = x + (((1 - sin_val) * 0x8000) >> 0x10);
// ((VecFx16 *) &mUnk_150.mUnk_08)->z = z + (((1 - cos_val) * 0x8000) >> 0x10);
((VecFx16 *) &mUnk_150.mUnk_08)->x = x + (s16) ((1 - sin_val) >> 1);
((VecFx16 *) &mUnk_150.mUnk_08)->z = z + (s16) ((1 - cos_val) >> 1);
post:
this->func_ov000_020989e0();
if (((u32) mState == 5 || mState == 4) && (mUnk_124.mUnk_08 & 0x3FFFF) != 0) {
switch (mUnk_124.mUnk_1C) {
case 4:
data_027e0d38->func_ov031_020d9c44(data_ov000_020aed00);
break;
case 11:
if (gpActorManager->func_01fff3b4(mUnk_124.mUnk_0C)->GetActorId() == ActorId_RollingStone) {
this->func_ov063_0215b724();
}
break;
case 13:
break;
default:
func_ov000_020990c0(this, &mUnk_124, 1, 0);
break;
}
}
if (GET_FLAG(mFlags, ActorFlag_Alive)) {
if (mState == 5) {
UnkStruct_ov000_0207de98 param2;
VecFx32_Copy(&mPos, &param2.vec);
param2.param1 = 0x548;
param2.param2 = 0x1000;
data_027e09c0->func_ov000_0207de98(mRef, &param2, mUnk_38);
}
}
}
void ActorUnkCASE::vfunc_24() {
if (mState != 1 && mState != 2) {
return;
}
this->vfunc_20();
}
void ActorUnkCASE::vfunc_2C(unk32 param1) {
if (!this->func_01fff5d0(param1, 0)) {
return;
}
if (mUnk_14C == NULL || ((u32 *) mUnk_14C)[0x268 >> 2] == NULL) {
fx32 sin_val = SIN((u16) mUnk_1C8);
fx32 cos_val = COS((u16) mUnk_1C8);
Mat3p mat2;
Mat3p mat1;
Mat3p_InitZRotation(&mat1, sin_val, cos_val);
func_01ffa60c(&mat1, &mUnk_1A4, &mat2);
mUnk_0B0.vfunc_14(&mat2, &mPos);
}
}
// Static
void ActorUnkCASE::func_ov063_0215acec(ActorRef *ref1, ActorRef ref2) {
ActorParams params;
params.mUnk_28 = 0;
params.func_ov000_020975f8();
params.mUnk_28 = ref2;
Actor::func_ov000_020973f4(ref1, &data_ov000_020b539c_eur, ActorId_CASE, &params, 0);
}
void ActorUnkCASE::func_ov063_0215aefc(ActorState param1) {
mState = param1;
mUnk_2C = data_ov000_020aecf8[0];
mUnk_120 = 0;
CALL_PTMF(PTMF<ActorUnkCASE>, data_ov063_02163110[mState]);
}
// Matched
void ActorUnkCASE::func_ov063_0215af54(void) {}
// Matched
void ActorUnkCASE::func_ov063_0215af58(void) {}
// Matched
void ActorUnkCASE::func_ov063_0215af5c(void) {}
void ActorUnkCASE::func_ov063_0215af60(void) {}
void ActorUnkCASE::func_ov063_0215afa4(void) {}
void ActorUnkCASE::func_ov063_0215afb8(void) {}
void ActorUnkCASE::func_ov063_0215b054(void) {}
void ActorUnkCASE::func_ov063_0215b090(void) {}
void ActorUnkCASE::func_ov063_0215b1bc(void) {}
void ActorUnkCASE::func_ov063_0215b244(void) {}
void ActorUnkCASE::func_ov063_0215b2b0(void) {}
void ActorUnkCASE::func_ov063_0215af60(void) {
if (gpActorManager->func_01fff3b4(mUnk_1E4)) {
return;
}
if (mUnk_14C != NULL) {
((ActorUnkCANS *) mUnk_14C)->func_ov063_0215a428();
}
this->func_ov063_0215aefc(0);
}
void ActorUnkCASE::func_ov063_0215afa4(void) {
mUnk_2C = 0;
mVel.x = 0;
mVel.z = 0;
}
void ActorUnkCASE::func_ov063_0215afb8(void) {
ActorUnkITWP *otherActor = (ActorUnkITWP *) gpActorManager->func_01fff3b4(mUnk_1E4);
if (otherActor == NULL) {
this->func_ov063_0215aefc(4);
return;
}
//! INFO: Actually a Mat3p, this is only used to allow a "batched" copy (all 9 elements at a time, not 3 by 3)
struct Fx32Array9 {
fx32 array[9];
};
*(Fx32Array9 *) &mUnk_1A4 = *(Fx32Array9 *) &otherActor->mUnk_154;
VecFx32 vec = otherActor->mUnk_0E8;
mPos.x = vec.x;
mPos.y = vec.y;
mPos.z = vec.z;
mPrevPos.x = vec.x;
mPrevPos.y = vec.y;
mPrevPos.z = vec.z;
}
void ActorUnkCASE::func_ov063_0215b054(void) {
mVel.x = mUnk_1D8;
mVel.y = 0;
mVel.z = mUnk_1E0;
UNSET_FLAG2(*(s16 *) &mUnk_44, ActorFlag_5);
mUnk_52 = -1;
mUnk_50 = 0;
}
void ActorUnkCASE::func_ov063_0215b090(void) {
if (mUnk_50 < 4) {
this->func_ov063_0215afb8();
if (mUnk_50 < mUnk_52) {
mUnk_50++;
}
this->vfunc_10(&mUnk_174.mUnk_0C);
data_027e09c0->func_ov000_0207e58c(mRef, 3, 4, &mUnk_174);
return;
}
mUnk_1C8 += DEG_TO_ANG(45);
VecFx32_Copy(&mPos, &mPrevPos);
VecFx32_Add(&mPos, &mVel, &mPos);
if (mVel.x == 0 && mVel.z == 0) {
mVel.y -= mUnk_2C;
}
this->func_ov000_02098910(NULL, 16);
this->vfunc_10(&mUnk_174.mUnk_0C);
data_027e09c0->func_ov000_0207e58c(mRef, 3, 4, &mUnk_174);
if (mUnk_46) {
this->func_ov063_0215b724();
}
}
void ActorUnkCASE::func_ov063_0215b1bc(void) {
mVel.x = 0;
mVel.z = 0;
VecFx32 vec;
VecFx32_Init(0, 0, FLOAT_TO_FX32(1.0f), &vec);
func_01ffa7a0(&vec, &mUnk_1A4, &vec);
s16 angle = func_01ffbbe0(vec.x, vec.z);
Mat3p_InitYRotation(&mUnk_1A4, SIN((u16) angle), COS((u16) angle));
}
void ActorUnkCASE::func_ov063_0215b244(void) {
mVel.y -= mUnk_2C;
VecFx32_Copy(&mPos, &mPrevPos);
VecFx32_Add(&mPos, &mVel, &mPos);
this->func_ov000_02098b8c(1, NULL);
if ((mUnk_46 & 3) != 0) {
this->func_ov063_0215aefc(5);
}
}
void ActorUnkCASE::func_ov063_0215b2b0(void) {
mVel.x = 0;
mVel.z = 0;
mUnk_2C = 0;
}
// Matched
void ActorUnkCASE::func_ov063_0215b2c4(void) {}
void ActorUnkCASE::func_ov063_0215b2c8(void) {}
void ActorUnkCASE::func_ov063_0215b2ec(void) {}
void ActorUnkCASE::func_ov063_0215b624(void) {}
void ActorUnkCASE::func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle) {}
void ActorUnkCASE::func_ov063_0215b724(void) {}
void ActorUnkCASE::func_ov063_0215b7cc(void) {}
void ActorUnkCASE::func_ov063_0215b814(void) {}
void ActorUnkCASE::func_ov063_0215b854(void) {}
void ActorUnkCASE::func_ov063_0215b8e8(void) {}
void ActorUnkCASE::func_ov063_0215b99c(void) {}
void ActorUnkCASE::func_ov063_0215ba64(void) {}
void ActorUnkCASE::func_ov063_0215bab0(void) {}
void ActorUnkCASE::func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle) {
VecFx32 vec = *param1;
VecFx32_Copy(&vec, &mPos);
VecFx32_Copy(&vec, &mPrevPos);
mAngle = *(s16 *) &angle.angle;
}
void ActorUnkCASE::func_ov063_0215b724(void) {
this->func_ov000_020984d0();
data_027e0cec->func_ov000_0209feac(0xCC06, &mPos, 2, 0, 0);
data_027e0cec->func_ov000_0209feac(0xCC07, &mPos, 2, 0, 0);
data_027e0cec->func_ov000_0209feac(0x823, &mPos, 2, 0, 0);
data_027e09a8->func_ov000_02071b30(0x9865, &mPos, 0);
}
void ActorUnkCASE::func_ov063_0215b814(ActorRef ref) {
mUnk_1E4 = ref;
if (mUnk_14C != NULL) {
((ActorUnkCANS *) mUnk_14C)->func_ov063_02158448(9);
}
this->func_ov063_0215aefc(1);
}
void ActorUnkCASE::func_ov063_0215b854(void) {
if (mUnk_14C != NULL) {
ActorUnkCANS *actorCans = (ActorUnkCANS *) mUnk_14C;
VecFx32 vec = actorCans->mPos;
VecFx32_Copy(&vec, &mPos);
VecFx32_Copy(&vec, &mPrevPos);
actorCans->mUnk_236 = 20;
actorCans->mUnk_234 = 0;
actorCans = (ActorUnkCANS *) mUnk_14C;
actorCans->func_ov063_02158b0c();
actorCans = (ActorUnkCANS *) mUnk_14C;
actorCans->func_ov063_0215a428();
mUnk_124.mUnk_04 = ~0x38000;
mUnk_14C = NULL;
}
this->func_ov063_0215aefc(2);
}
static inline bool VecFx32_IsZero(VecFx32 *vec) {
return vec->x == 0 && vec->y == 0 && vec->z == 0;
}
void ActorUnkCASE::func_ov063_0215b8e8(VecFx32 *param1) {
if (mUnk_14C != NULL) {
((ActorUnkCANS *) mUnk_14C)->func_ov063_0215a428();
if (param1->x == 0 && param1->y == 0 && param1->z == 0) {
this->func_ov063_0215aefc(0);
return;
}
((ActorUnkCANS *) mUnk_14C)->func_ov063_02158b0c();
mUnk_14C = NULL;
}
if (VecFx32_IsZero((VecFx32 *) param1)) {
this->func_ov063_0215aefc(4);
} else {
unk32 x = param1->x;
unk32 y = param1->y;
unk32 z = param1->z;
#if !IS_JP
mUnk_150.mUnk_04 = 0;
#endif
VecFx32_Init(x, y, z, (VecFx32 *) &mUnk_1D8);
this->func_ov063_0215aefc(3);
}
}
void ActorUnkCASE::func_ov063_0215b99c(ActorUnkCASE *param1, UnkStruct_func_ov063_0215a678 *param2) {
unk32 var1;
if ((param2->mUnk_08 & 0x10) != 0) {
var1 = param2->mUnk_AE;
} else {
var1 = -1;
}
u8 *var2 = ((u8 *) param2->mUnk_04);
// Can probably use a ternary instead of var1
if (var1 != param1->mUnk_0B0.mUnk_6C) {
return;
}
if (var2[0x25] == 2) {
param2->mUnk_92 = 3;
var2[0x25] = 3;
return;
}
if (var2[0x25] != 3) {
return;
}
Mat4x3p matx1, matx2;
G3d_GetCurrentMtx(&matx1, NULL);
func_01ffad5c(&matx1, &data_027e0964, &matx2);
// VecFx32_Copy(&matx2.wColumn, &param1->mUnk_1CC);
fx32 x = matx2.wColumn.x;
fx32 z = matx2.wColumn.z;
fx32 y = matx2.wColumn.y;
param1->mUnk_1CC.x = x;
param1->mUnk_1CC.y = y;
param1->mUnk_1CC.z = z;
param2->mUnk_92 = 2;
var2[0x25] = 2;
}
ActorUnkCASE::~ActorUnkCASE() {}
ActorProfileUnkCASE::~ActorProfileUnkCASE() {}
+2 -1
View File
@@ -10,6 +10,7 @@
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
#include "Unknown/UnkStruct_027e0d38.hpp"
#include "nitro/fx.h"
class UnkStruct_ov071_0215f92c : public UnkStruct_ov031_Items_00 {
public:
@@ -453,7 +454,7 @@ bool ActorTearLight_194::vfunc_04() {
return this->Actor_C4::vfunc_04();
}
void ActorTearLight_194::vfunc_0C(unk32 param1) {
void ActorTearLight_194::vfunc_0C(VecFx32 *param1) {
this->GetActorPtr<ActorTearLight>()->func_ov071_0215fca4();
return this->Actor_C4::vfunc_0C(param1);
}