Decompiling Actor NSSW (#153)

* feat: begin decompiling

* feat: decompiling enhanced

* fix: symbols sheningans

* fix: make jp build

* merge: update NSSW

* feat: improve overall matching

* feat: update

* feat: improve matching of ActorItemTornado's vfunc_2C

* fix: first attempt to make usa build

* style: move external functions

* fix: building NSSW

* fix: build for jp

* feat: improve matching

* feat: comply to suggestions
This commit is contained in:
Alessevan
2026-10-11 19:18:57 -04:00
committed by GitHub
parent f96b3a6e31
commit 6c8f5c72bc
23 changed files with 929 additions and 192 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ src/032_MapA1/Actor/ActorUnkNSSW.cpp:
.text start:0x0211fd80 end:0x02120e90
.init start:0x0212208c end:0x021220dc
.ctor start:0x02122138 end:0x0212213c
.data start:0x021226c0 end:0x02122744
.data start:0x0212268c end:0x02122744
.bss start:0x02122a5c end:0x02122aa8
src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp:
+1 -1
View File
@@ -899,7 +899,7 @@ from:0x02120d8c kind:arm_call to:0x01ffb800 module:itcm
from:0x02120d9c kind:arm_call to:0x02120bc0 module:overlay(32)
from:0x02120da8 kind:arm_call to:0x02120b7c module:overlay(32)
from:0x02120db4 kind:arm_call to:0x020f6384 module:overlay(31)
from:0x02120df4 kind:load to:0x021226ac module:overlay(32)
from:0x02120df4 kind:load to:0x021226a4 module:overlay(32) add:0x8
from:0x02120e04 kind:load to:0x02120bfc module:overlay(32)
from:0x02120e10 kind:arm_call to:0x0207b6c0 module:overlay(0)
from:0x02120e18 kind:arm_call to:0x02011ff4 module:main
+20 -20
View File
@@ -169,32 +169,32 @@ _ZN19ActorProfileUnkNSSW10GetProfileEv kind:function(arm,size=0xc) addr:0x0211fd
_ZN19ActorProfileUnkNSSW6CreateEv kind:function(arm,size=0x24) addr:0x0211fd8c
_ZN19ActorProfileUnkNSSWC1Ev kind:function(arm,size=0x44) addr:0x0211fdb0
_ZN12ActorUnkNSSWC1Ev kind:function(arm,size=0x108) addr:0x0211fdf4
_ZN12ActorUnkNSSW19func_ov032_0211fefcEv kind:function(arm,size=0x14) addr:0x0211fefc
_ZN12ActorUnkNSSW19func_ov032_0211ff10Ev kind:function(arm,size=0x28) addr:0x0211ff10
_ZN12ActorUnkNSSW19func_ov032_0211ff38Ev kind:function(arm,size=0x1e0) addr:0x0211ff38
_ZN16ActorUnkNSSW_104D1Ev kind:function(arm,size=0x14) addr:0x0211fefc
_ZN12ActorUnkNSSW4InitEi kind:function(arm,size=0x28) addr:0x0211ff10
_ZN12ActorUnkNSSW6UpdateEv kind:function(arm,size=0x1e0) addr:0x0211ff38
_ZN12ActorUnkNSSW19func_ov032_02120118Ev kind:function(arm,size=0x78) addr:0x02120118
_ZN12ActorUnkNSSW19func_ov032_02120190Ev kind:function(arm,size=0xcc) addr:0x02120190
_ZN12ActorUnkNSSW19func_ov032_0212025cEv kind:function(arm,size=0x7c) addr:0x0212025c
_ZN12ActorUnkNSSW19func_ov032_021202d8Ev kind:function(arm,size=0x124) addr:0x021202d8
_ZN12ActorUnkNSSW19func_ov032_021203fcEv kind:function(arm,size=0x350) addr:0x021203fc
_ZN12ActorUnkNSSW19func_ov032_0212074cEv kind:function(arm,size=0x134) addr:0x0212074c
_ZN12ActorUnkNSSW8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x134) addr:0x0212074c
_ZN12ActorUnkNSSW19func_ov032_02120880Ev kind:function(arm,size=0x14) addr:0x02120880
_ZN12ActorUnkNSSW19func_ov032_02120894Ev kind:function(arm,size=0x2a0) addr:0x02120894
_ZN12ActorUnkNSSW19func_ov032_02120b34Ev kind:function(arm,size=0x38) addr:0x02120b34
_ZN12ActorUnkNSSW19func_ov032_02120894Ei kind:function(arm,size=0x2a0) addr:0x02120894
_ZN12ActorUnkNSSW19func_ov032_02120b34E9RefStruct kind:function(arm,size=0x38) addr:0x02120b34
_ZN12ActorUnkNSSW19func_ov032_02120b6cEv kind:function(arm,size=0x10) addr:0x02120b6c
_ZN12ActorUnkNSSW19func_ov032_02120b7cEv kind:function(arm,size=0x44) addr:0x02120b7c
_ZN12ActorUnkNSSW19func_ov032_02120b7cEP7VecFx32 kind:function(arm,size=0x44) addr:0x02120b7c
_ZN12ActorUnkNSSW19func_ov032_02120bc0Ev kind:function(arm,size=0x3c) addr:0x02120bc0
_ZN12ActorUnkNSSW19func_ov032_02120bfcEv kind:function(arm,size=0x68) addr:0x02120bfc
_ZN12ActorUnkNSSW19func_ov032_02120bfcEP5Actor kind:function(arm,size=0x68) addr:0x02120bfc
_ZN12ActorUnkNSSW19func_ov032_02120c64EP16MapObjectUnkSWSW kind:function(arm,size=0x8c) addr:0x02120c64
_ZN12ActorUnkNSSW19func_ov032_02120cf0Ev kind:function(arm,size=0x34) addr:0x02120cf0
_ZN12ActorUnkNSSW19func_ov032_02120d24Ev kind:function(arm,size=0x3c) addr:0x02120d24
_ZN12ActorUnkNSSW19func_ov032_02120d60Ev kind:function(arm,size=0x1c) addr:0x02120d60
_ZN12ActorUnkNSSW19func_ov032_02120d7cEv kind:function(arm,size=0x40) addr:0x02120d7c
_ZN12ActorUnkNSSW19func_ov032_02120dbcEv kind:function(arm,size=0x3c) addr:0x02120dbc
_ZN12ActorUnkNSSW19func_ov032_02120df8Ev kind:function(arm,size=0x10) addr:0x02120df8
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x1c) addr:0x02120e08
_ZN16ActorUnkNSSW_0E0C1EP12ActorUnkNSSW kind:function(arm,size=0x34) addr:0x02120cf0
_ZN16ActorUnkNSSW_0E08vfunc_00E9RefStructi kind:function(arm,size=0x3c) addr:0x02120d24
_ZN16ActorUnkNSSW_0E08vfunc_04Ev kind:function(arm,size=0x1c) addr:0x02120d60
_ZN16ActorUnkNSSW_0E08vfunc_0CEP7VecFx32 kind:function(arm,size=0x40) addr:0x02120d7c
_ZN16ActorUnkNSSW_104C1EP12ActorUnkNSSW kind:function(arm,size=0x3c) addr:0x02120dbc
_ZN16ActorUnkNSSW_1048vfunc_10EP5Actor kind:function(arm,size=0x10) addr:0x02120df8
_ZN16ActorUnkNSSW_104D0Ev kind:function(arm,size=0x1c) addr:0x02120e08
_ZN12ActorUnkNSSWD1Ev kind:function(arm,size=0x28) addr:0x02120e24
_ZN12ActorUnkNSSW19func_ov032_02120e4cEv kind:function(arm,size=0x30) addr:0x02120e4c
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x30) addr:0x02120e4c
_ZN19ActorProfileUnkNSSWD1Ev kind:function(arm,size=0x14) addr:0x02120e7c
_ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02120e90
_ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02120e9c
@@ -260,10 +260,10 @@ _ZTV26ModelRender_ov032_02122568 kind:data(any) addr:0x02122560
data_ov032_0212258c kind:data(any) addr:0x0212258c
data_ov032_021225dc kind:data(any) addr:0x021225dc
_ZTV10ActorKeese kind:data(any) addr:0x0212262c
_ZTV19data_ov032_02122694 kind:data(any) addr:0x0212268c
data_ov032_021226ac kind:data(any) addr:0x021226ac
_ZTV19data_ov032_021226c0 kind:data(any) addr:0x021226c0
data_ov032_021226e4 kind:data(any) addr:0x021226e4
_ZTV16ActorUnkNSSW_0E0 kind:data(any) addr:0x0212268c
_ZTV16ActorUnkNSSW_104 kind:data(any) addr:0x021226a4
_ZTV19ActorProfileUnkNSSW kind:data(any) addr:0x021226c0
_ZTV12ActorUnkNSSW kind:data(any) addr:0x021226e4
_ZTV23MapObjectProfileUnkSWSW kind:data(any) addr:0x02122744
_ZTV28MapObjectProfileUnkSWSW_Base kind:data(any) addr:0x02122760
_ZTV17MapObject_10_SWSW kind:data(any) addr:0x0212277c
@@ -30,6 +30,7 @@ src/032_MapA1/Actor/ActorUnkNSSW.cpp:
.text start:0x0211fec0 end:0x0212104c
.init start:0x02122248 end:0x02122298
.ctor start:0x021222f4 end:0x021222f8
.data start:0x0212282c end:0x021228e4
.bss start:0x02122bfc end:0x02122c48
src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp:
+5 -5
View File
@@ -779,7 +779,7 @@ from:0x0211fec8 kind:load to:0x02122c0c module:overlay(32)
from:0x0211fedc kind:arm_call to:0x02011f3c module:main
from:0x0211fee8 kind:arm_call to:0x0211ff34 module:overlay(32)
from:0x0211fefc kind:arm_call to:0x020976d0 module:overlay(0)
from:0x0211ff2c kind:load to:0x02122868 module:overlay(32)
from:0x0211ff2c kind:load to:0x02122860 module:overlay(32) add:0x8
from:0x0211ff3c kind:arm_call to:0x02098b7c module:overlay(0)
from:0x0211ff50 kind:arm_call to:0x0209c70c module:overlay(0)
from:0x0211ff68 kind:arm_call to:0x0200f05c module:main
@@ -787,7 +787,7 @@ from:0x0211ffa0 kind:arm_call to:0x02097c0c module:overlay(0)
from:0x0211ffac kind:arm_call to:0x02120eac module:overlay(32)
from:0x0211ffb8 kind:arm_call to:0x02120f78 module:overlay(32)
from:0x02120014 kind:arm_call to:0x01ffa06c module:itcm
from:0x02120028 kind:load to:0x0212288c module:overlay(32)
from:0x02120028 kind:load to:0x02122884 module:overlay(32) add:0x8
from:0x0212002c kind:load to:0x020b5d7c module:overlay(0)
from:0x02120034 kind:load to:0x021220a0 module:overlay(32)
from:0x02120038 kind:load to:0x020b19a0 add:0x8 module:overlay(0)
@@ -898,14 +898,14 @@ from:0x02120e9c kind:arm_call to:0x021209f4 module:overlay(32)
from:0x02120ec4 kind:arm_call to:0x020f63b4 module:overlay(31)
from:0x02120edc kind:load to:0x0212282c add:0x8 module:overlay(32)
from:0x02120efc kind:arm_call to:0x02120ce0 module:overlay(32)
from:0x02120f0c kind:arm_call to:0x020f6414 module:overlays(21,31)
from:0x02120f0c kind:arm_call to:0x020f6414 module:overlay(31)
from:0x02120f28 kind:arm_call to:0x02120d18 module:overlay(32)
from:0x02120f30 kind:arm_call to:0x020f64a4 module:overlay(31)
from:0x02120f48 kind:arm_call to:0x01ffb800 module:itcm
from:0x02120f58 kind:arm_call to:0x02120d6c module:overlay(32)
from:0x02120f64 kind:arm_call to:0x02120d28 module:overlay(32)
from:0x02120f70 kind:arm_call to:0x020f64b4 module:overlay(31)
from:0x02120fb0 kind:load to:0x0212284c module:overlay(32)
from:0x02120fb0 kind:load to:0x02122844 module:overlay(32) add:0x8
from:0x02120fc0 kind:load to:0x02120da8 module:overlay(32)
from:0x02120fcc kind:arm_call to:0x0207b6f4 module:overlay(0)
from:0x02120fd4 kind:arm_call to:0x02011ff4 module:main
@@ -1251,7 +1251,7 @@ from:0x02122824 kind:load to:0x0211fe00 module:overlay(32)
from:0x02122828 kind:load to:0x020995dc module:overlay(0)
from:0x02122834 kind:load to:0x02120ee0 module:overlay(32)
from:0x02122838 kind:load to:0x02120f1c module:overlay(32)
from:0x0212283c kind:load to:0x020f64ac module:overlays(22,23,31)
from:0x0212283c kind:load to:0x020f64ac module:overlay(31)
from:0x02122840 kind:load to:0x02120f38 module:overlay(32)
from:0x0212284c kind:load to:0x0212003c module:overlay(32)
from:0x02122850 kind:load to:0x02120fc4 module:overlay(32)
+21 -21
View File
@@ -169,32 +169,32 @@ _ZN19ActorProfileUnkNSSW10GetProfileEv kind:function(arm,size=0xc) addr:0x0211fe
_ZN19ActorProfileUnkNSSW6CreateEv kind:function(arm,size=0x24) addr:0x0211fecc
_ZN19ActorProfileUnkNSSWC1Ev kind:function(arm,size=0x44) addr:0x0211fef0
_ZN12ActorUnkNSSWC1Ev kind:function(arm,size=0x108) addr:0x0211ff34
_ZN12ActorUnkNSSW19func_ov032_0211fefcEv kind:function(arm,size=0x14) addr:0x0212003c
_ZN12ActorUnkNSSW19func_ov032_0211ff10Ev kind:function(arm,size=0x28) addr:0x02120050
_ZN12ActorUnkNSSW19func_ov032_0211ff38Ev kind:function(arm,size=0x200) addr:0x02120078
_ZN16ActorUnkNSSW_104D1Ev kind:function(arm,size=0x14) addr:0x0212003c
_ZN12ActorUnkNSSW4InitEi kind:function(arm,size=0x28) addr:0x02120050
_ZN12ActorUnkNSSW6UpdateEv kind:function(arm,size=0x200) addr:0x02120078
_ZN12ActorUnkNSSW19func_ov032_02120118Ev kind:function(arm,size=0x78) addr:0x02120278
_ZN12ActorUnkNSSW19func_ov032_02120190Ev kind:function(arm,size=0xcc) addr:0x021202f0
_ZN12ActorUnkNSSW19func_ov032_0212025cEv kind:function(arm,size=0x7c) addr:0x021203bc
_ZN12ActorUnkNSSW19func_ov032_021202d8Ev kind:function(arm,size=0x124) addr:0x02120438
_ZN12ActorUnkNSSW19func_ov032_021203fcEv kind:function(arm,size=0x350) addr:0x0212055c
_ZN12ActorUnkNSSW19func_ov032_0212074cEv kind:function(arm,size=0x134) addr:0x021208ac
_ZN12ActorUnkNSSW8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x134) addr:0x021208ac
_ZN12ActorUnkNSSW19func_ov032_02120880Ev kind:function(arm,size=0x14) addr:0x021209e0
_ZN12ActorUnkNSSW19func_ov032_02120894Ev kind:function(arm,size=0x2ec) addr:0x021209f4
_ZN12ActorUnkNSSW19func_ov032_02120b34Ev kind:function(arm,size=0x38) addr:0x02120ce0
_ZN12ActorUnkNSSW19func_ov032_02120894Ei kind:function(arm,size=0x2ec) addr:0x021209f4
_ZN12ActorUnkNSSW19func_ov032_02120b34E9RefStruct kind:function(arm,size=0x38) addr:0x02120ce0
_ZN12ActorUnkNSSW19func_ov032_02120b6cEv kind:function(arm,size=0x10) addr:0x02120d18
_ZN12ActorUnkNSSW19func_ov032_02120b7cEv kind:function(arm,size=0x44) addr:0x02120d28
_ZN12ActorUnkNSSW19func_ov032_02120b7cEP7VecFx32 kind:function(arm,size=0x44) addr:0x02120d28
_ZN12ActorUnkNSSW19func_ov032_02120bc0Ev kind:function(arm,size=0x3c) addr:0x02120d6c
_ZN12ActorUnkNSSW19func_ov032_02120bfcEv kind:function(arm,size=0x78) addr:0x02120da8
_ZN12ActorUnkNSSW19func_ov032_02120bfcEP5Actor kind:function(arm,size=0x78) addr:0x02120da8
_ZN12ActorUnkNSSW19func_ov032_02120c64EP16MapObjectUnkSWSW kind:function(arm,size=0x8c) addr:0x02120e20
_ZN12ActorUnkNSSW19func_ov032_02120cf0Ev kind:function(arm,size=0x34) addr:0x02120eac
_ZN12ActorUnkNSSW19func_ov032_02120d24Ev kind:function(arm,size=0x3c) addr:0x02120ee0
_ZN12ActorUnkNSSW19func_ov032_02120d60Ev kind:function(arm,size=0x1c) addr:0x02120f1c
_ZN12ActorUnkNSSW19func_ov032_02120d7cEv kind:function(arm,size=0x40) addr:0x02120f38
_ZN12ActorUnkNSSW19func_ov032_02120dbcEv kind:function(arm,size=0x3c) addr:0x02120f78
_ZN12ActorUnkNSSW19func_ov032_02120df8Ev kind:function(arm,size=0x10) addr:0x02120fb4
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x1c) addr:0x02120fc4
_ZN16ActorUnkNSSW_0E0C1EP12ActorUnkNSSW kind:function(arm,size=0x34) addr:0x02120eac
_ZN16ActorUnkNSSW_0E08vfunc_00E9RefStructi kind:function(arm,size=0x3c) addr:0x02120ee0
_ZN16ActorUnkNSSW_0E08vfunc_04Ev kind:function(arm,size=0x1c) addr:0x02120f1c
_ZN16ActorUnkNSSW_0E08vfunc_0CEP7VecFx32 kind:function(arm,size=0x40) addr:0x02120f38
_ZN16ActorUnkNSSW_104C1EP12ActorUnkNSSW kind:function(arm,size=0x3c) addr:0x02120f78
_ZN16ActorUnkNSSW_1048vfunc_10EP5Actor kind:function(arm,size=0x10) addr:0x02120fb4
_ZN16ActorUnkNSSW_104D0Ev kind:function(arm,size=0x1c) addr:0x02120fc4
_ZN12ActorUnkNSSWD1Ev kind:function(arm,size=0x28) addr:0x02120fe0
_ZN12ActorUnkNSSW19func_ov032_02120e4cEv kind:function(arm,size=0x30) addr:0x02121008
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x30) addr:0x02121008
_ZN19ActorProfileUnkNSSWD1Ev kind:function(arm,size=0x14) addr:0x02121038
_ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x0212104c
_ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02121058
@@ -217,7 +217,7 @@ _ZN16MapObjectUnkSWSWD1Ev kind:function(arm,size=0x20) addr:0x02122030
_ZN16MapObjectUnkSWSWD0Ev kind:function(arm,size=0x28) addr:0x02122050
_ZN23MapObjectProfileUnkSWSWD1Ev kind:function(arm,size=0x14) addr:0x02122078
data_ov032_02121ed4 kind:data(any) addr:0x02122090
data_ov032_021220a0 kind:data(any) addr:0x021220a0
data_ov032_02121ee4 kind:data(any) addr:0x021220a0
data_ov032_021220b0 kind:data(any) addr:0x021220b0
data_ov032_021220c0 kind:data(any) addr:0x021220c0
data_ov032_021220d0 kind:data(any) addr:0x021220d0
@@ -261,10 +261,10 @@ _ZTV26ModelRender_ov032_02122568 kind:data(any) addr:0x02122700
data_ov032_0212258c kind:data(any) addr:0x0212272c
data_ov032_021225dc kind:data(any) addr:0x0212277c
_ZTV10ActorKeese kind:data(any) addr:0x021227cc
_ZTV19data_ov032_02122834 kind:data(any) addr:0x0212282c
data_ov032_0212284c kind:data(any) addr:0x0212284c
data_ov032_02122868 kind:data(any) addr:0x02122868
data_ov032_0212288c kind:data(any) addr:0x0212288c
_ZTV16ActorUnkNSSW_0E0 kind:data(any) addr:0x0212282c
_ZTV16ActorUnkNSSW_104 kind:data(any) addr:0x02122844
_ZTV19ActorProfileUnkNSSW kind:data(any) addr:0x02122860
_ZTV12ActorUnkNSSW kind:data(any) addr:0x02122884
_ZTV23MapObjectProfileUnkSWSW kind:data(any) addr:0x021228e4
_ZTV28MapObjectProfileUnkSWSW_Base kind:data(any) addr:0x02122900
_ZTV17MapObject_10_SWSW kind:data(any) addr:0x0212291c
@@ -30,6 +30,7 @@ src/032_MapA1/Actor/ActorUnkNSSW.cpp:
.text start:0x02121b20 end:0x02122e68
.init start:0x02124064 end:0x021240b4
.ctor start:0x02124110 end:0x02124114
.data start:0x0212464c end:0x02124720
.bss start:0x02124a3c end:0x02124a88
src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp:
+5 -5
View File
@@ -792,7 +792,7 @@ from:0x02121c9c kind:load to:0x021246c0 add:0x8 module:overlay(32)
from:0x02121ca0 kind:load to:0x020b7544 module:overlay(0)
from:0x02121ca8 kind:load to:0x02123ebc module:overlay(32)
from:0x02121cac kind:load to:0x020b3160 add:0x8 module:overlay(0)
from:0x02121cb0 kind:load to:0x02124688 module:overlay(32)
from:0x02121cb0 kind:load to:0x02124680 module:overlay(32) add:0x8
from:0x02121cbc kind:arm_call to:0x0207cd78 module:overlay(0)
from:0x02121cd0 kind:arm_call to:0x0207d6b4 module:overlay(0)
from:0x02121cf8 kind:arm_call to:0x021226b4 module:overlay(32)
@@ -902,8 +902,8 @@ from:0x02122b20 kind:arm_call to:0x01fff584 module:itcm
from:0x02122b64 kind:arm_call to:0x021226b4 module:overlay(32)
from:0x02122bdc kind:arm_call to:0x01ffa06c module:itcm
from:0x02122bf4 kind:arm_call to:0x021226b4 module:overlay(32)
from:0x02122c1c kind:arm_call to:0x020f7d24 module:overlays(21,31)
from:0x02122c34 kind:load to:0x0212464c add:0x8 module:overlay(32)
from:0x02122c1c kind:arm_call to:0x020f7d24 module:overlay(31)
from:0x02122c34 kind:load to:0x0212464c module:overlay(32) add:0x8
from:0x02122c54 kind:arm_call to:0x021229a0 module:overlay(32)
from:0x02122c64 kind:arm_call to:0x020f7d84 module:overlay(31)
from:0x02122c80 kind:arm_call to:0x021229d8 module:overlay(32)
@@ -912,7 +912,7 @@ from:0x02122ca0 kind:arm_call to:0x01ffb800 module:itcm
from:0x02122cb0 kind:arm_call to:0x02122a2c module:overlay(32)
from:0x02122cbc kind:arm_call to:0x021229e8 module:overlay(32)
from:0x02122cc8 kind:arm_call to:0x020f7e24 module:overlay(31)
from:0x02122d08 kind:load to:0x0212466c module:overlay(32)
from:0x02122d08 kind:load to:0x02124664 module:overlay(32) add:0x8
from:0x02122d18 kind:load to:0x02122a68 module:overlay(32)
from:0x02122d70 kind:arm_call to:0x01fff498 module:itcm
from:0x02122d80 kind:arm_call to:0x02122b0c module:overlay(32)
@@ -1266,7 +1266,7 @@ from:0x02124644 kind:load to:0x02121a60 module:overlay(32)
from:0x02124648 kind:load to:0x0209ad54 module:overlay(0)
from:0x02124654 kind:load to:0x02122c38 module:overlay(32)
from:0x02124658 kind:load to:0x02122c74 module:overlay(32)
from:0x0212465c kind:load to:0x020f7e1c module:overlays(22,23,31)
from:0x0212465c kind:load to:0x020f7e1c module:overlay(31)
from:0x02124660 kind:load to:0x02122c90 module:overlay(32)
from:0x0212466c kind:load to:0x02121cb4 module:overlay(32)
from:0x02124670 kind:load to:0x02122db4 module:overlay(32)
+26 -26
View File
@@ -169,36 +169,36 @@ _ZN19ActorProfileUnkNSSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02121b
_ZN19ActorProfileUnkNSSW6CreateEv kind:function(arm,size=0x24) addr:0x02121b2c
_ZN19ActorProfileUnkNSSWC1Ev kind:function(arm,size=0x44) addr:0x02121b50
_ZN12ActorUnkNSSWC1Ev kind:function(arm,size=0x120) addr:0x02121b94
_ZN12ActorUnkNSSW19func_ov032_02121cb4Ev kind:function(arm,size=0x14) addr:0x02121cb4
_ZN12ActorUnkNSSW19func_ov032_02121cc8Ev kind:function(arm,size=0x14) addr:0x02121cc8
_ZN12ActorUnkNSSW19func_ov032_0211ff10Ev kind:function(arm,size=0x28) addr:0x02121cdc
_ZN12ActorUnkNSSW19func_ov032_0211ff38Ev kind:function(arm,size=0x224) addr:0x02121d04
_ZN16ActorUnkNSSW_104D1Ev kind:function(arm,size=0x14) addr:0x02121cb4
_ZN16ActorUnkNSSW_138D1Ev kind:function(arm,size=0x14) addr:0x02121cc8
_ZN12ActorUnkNSSW4InitEi kind:function(arm,size=0x28) addr:0x02121cdc
_ZN12ActorUnkNSSW6UpdateEv kind:function(arm,size=0x224) addr:0x02121d04
_ZN12ActorUnkNSSW19func_ov032_02120118Ev kind:function(arm,size=0x78) addr:0x02121f28
_ZN12ActorUnkNSSW19func_ov032_02120190Ev kind:function(arm,size=0xcc) addr:0x02121fa0
_ZN12ActorUnkNSSW19func_ov032_0212025cEv kind:function(arm,size=0x7c) addr:0x0212206c
_ZN12ActorUnkNSSW19func_ov032_021202d8Ev kind:function(arm,size=0x124) addr:0x021220e8
_ZN12ActorUnkNSSW19func_ov032_021203fcEv kind:function(arm,size=0x360) addr:0x0212220c
_ZN12ActorUnkNSSW19func_ov032_0212074cEv kind:function(arm,size=0x134) addr:0x0212256c
_ZN12ActorUnkNSSW8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x134) addr:0x0212256c
_ZN12ActorUnkNSSW19func_ov032_02120880Ev kind:function(arm,size=0x14) addr:0x021226a0
_ZN12ActorUnkNSSW19func_ov032_02120894Ev kind:function(arm,size=0x2ec) addr:0x021226b4
_ZN12ActorUnkNSSW19func_ov032_02120b34Ev kind:function(arm,size=0x38) addr:0x021229a0
_ZN12ActorUnkNSSW19func_ov032_02120894Ei kind:function(arm,size=0x2ec) addr:0x021226b4
_ZN12ActorUnkNSSW19func_ov032_02120b34E9RefStruct kind:function(arm,size=0x38) addr:0x021229a0
_ZN12ActorUnkNSSW19func_ov032_02120b6cEv kind:function(arm,size=0x10) addr:0x021229d8
_ZN12ActorUnkNSSW19func_ov032_02120b7cEv kind:function(arm,size=0x44) addr:0x021229e8
_ZN12ActorUnkNSSW19func_ov032_02120b7cEP7VecFx32 kind:function(arm,size=0x44) addr:0x021229e8
_ZN12ActorUnkNSSW19func_ov032_02120bc0Ev kind:function(arm,size=0x3c) addr:0x02122a2c
_ZN12ActorUnkNSSW19func_ov032_02122a68Ev kind:function(arm,size=0xa4) addr:0x02122a68
_ZN12ActorUnkNSSW19func_ov032_02122b0cEv kind:function(arm,size=0x6c) addr:0x02122b0c
_ZN12ActorUnkNSSW19func_ov032_02120bfcEP5Actor kind:function(arm,size=0xa4) addr:0x02122a68
_ZN12ActorUnkNSSW19func_ov032_02122b0cEP9MapObject kind:function(arm,size=0x6c) addr:0x02122b0c
_ZN12ActorUnkNSSW19func_ov032_02120c64EP16MapObjectUnkSWSW kind:function(arm,size=0x8c) addr:0x02122b78
_ZN12ActorUnkNSSW19func_ov032_02120cf0Ev kind:function(arm,size=0x34) addr:0x02122c04
_ZN12ActorUnkNSSW19func_ov032_02120d24Ev kind:function(arm,size=0x3c) addr:0x02122c38
_ZN12ActorUnkNSSW19func_ov032_02120d60Ev kind:function(arm,size=0x1c) addr:0x02122c74
_ZN12ActorUnkNSSW19func_ov032_02120d7cEv kind:function(arm,size=0x40) addr:0x02122c90
_ZN12ActorUnkNSSW19func_ov032_02120dbcEv kind:function(arm,size=0x3c) addr:0x02122cd0
_ZN12ActorUnkNSSW19func_ov032_02120df8Ev kind:function(arm,size=0x10) addr:0x02122d0c
_ZN12ActorUnkNSSW19func_ov032_02122d1cEv kind:function(arm,size=0x98) addr:0x02122d1c
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x1c) addr:0x02122db4
_ZN12ActorUnkNSSW19func_ov032_02122dd0Ev kind:function(arm,size=0x1c) addr:0x02122dd0
_ZN16ActorUnkNSSW_0E0C1EP12ActorUnkNSSW kind:function(arm,size=0x34) addr:0x02122c04
_ZN16ActorUnkNSSW_0E08vfunc_00E9RefStructi kind:function(arm,size=0x3c) addr:0x02122c38
_ZN16ActorUnkNSSW_0E08vfunc_04Ev kind:function(arm,size=0x1c) addr:0x02122c74
_ZN16ActorUnkNSSW_0E08vfunc_0CEP7VecFx32 kind:function(arm,size=0x40) addr:0x02122c90
_ZN16ActorUnkNSSW_104C1EP12ActorUnkNSSW kind:function(arm,size=0x3c) addr:0x02122cd0
_ZN16ActorUnkNSSW_1048vfunc_10EP5Actor kind:function(arm,size=0x10) addr:0x02122d0c
_ZN16ActorUnkNSSW_1388vfunc_0CE9RefStructP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x98) addr:0x02122d1c
_ZN16ActorUnkNSSW_104D0Ev kind:function(arm,size=0x1c) addr:0x02122db4
_ZN16ActorUnkNSSW_138D0Ev kind:function(arm,size=0x1c) addr:0x02122dd0
_ZN12ActorUnkNSSWD1Ev kind:function(arm,size=0x30) addr:0x02122dec
_ZN12ActorUnkNSSW19func_ov032_02122e1cEv kind:function(arm,size=0x38) addr:0x02122e1c
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x38) addr:0x02122e1c
_ZN19ActorProfileUnkNSSWD1Ev kind:function(arm,size=0x14) addr:0x02122e54
_ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02122e68
_ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02122e74
@@ -221,7 +221,7 @@ _ZN16MapObjectUnkSWSWD1Ev kind:function(arm,size=0x20) addr:0x02123e4c
_ZN16MapObjectUnkSWSWD0Ev kind:function(arm,size=0x28) addr:0x02123e6c
_ZN23MapObjectProfileUnkSWSWD1Ev kind:function(arm,size=0x14) addr:0x02123e94
data_ov032_02121ed4 kind:data(any) addr:0x02123eac
data_ov032_02123ebc kind:data(any) addr:0x02123ebc
data_ov032_02121ee4 kind:data(any) addr:0x02123ebc
data_ov032_02121ef4 kind:data(any) addr:0x02123ecc
data_ov032_02121f04 kind:data(any) addr:0x02123edc
data_ov032_02121f14 kind:data(any) addr:0x02123eec
@@ -264,11 +264,11 @@ _ZTV26ModelRender_ov032_02122568 kind:data(any) addr:0x02124520
data_ov032_0212258c kind:data(any) addr:0x0212454c
data_ov032_021225dc kind:data(any) addr:0x0212459c
_ZTV10ActorKeese kind:data(any) addr:0x021245ec
_ZTV19data_ov032_02124654 kind:data(any) addr:0x0212464c
data_ov032_0212466c kind:data(any) addr:0x0212466c
data_ov032_02124688 kind:data(any) addr:0x02124688
_ZTV19data_ov032_0212469c kind:data(any) addr:0x0212469c
_ZTV19data_ov032_021246c0 kind:data(any) addr:0x021246c0
_ZTV16ActorUnkNSSW_0E0 kind:data(any) addr:0x0212464c
_ZTV16ActorUnkNSSW_104 kind:data(any) addr:0x02124664
_ZTV16ActorUnkNSSW_138 kind:data(any) addr:0x02124680
_ZTV19ActorProfileUnkNSSW kind:data(any) addr:0x0212469c
_ZTV12ActorUnkNSSW kind:data(any) addr:0x021246c0
_ZTV23MapObjectProfileUnkSWSW kind:data(any) addr:0x02124720
_ZTV28MapObjectProfileUnkSWSW_Base kind:data(any) addr:0x0212473c
_ZTV17MapObject_10_SWSW kind:data(any) addr:0x02124758
+1 -1
View File
@@ -2341,7 +2341,7 @@ data_020408b0 kind:data(any) addr:0x020408b0
data_02040ab0 kind:data(any) addr:0x02040ab0
data_02040eb0 kind:data(any) addr:0x02040eb0
data_020418b0 kind:data(any) addr:0x020418b0
data_02041eb0 kind:data(any) addr:0x02041eb0
data_02040964 kind:data(any) addr:0x02041eb0
data_020428b0 kind:data(any) addr:0x020428b0
data_02042eb0 kind:data(any) addr:0x02042eb0
data_020438b0 kind:data(any) addr:0x020438b0
@@ -30,6 +30,7 @@ src/032_MapA1/Actor/ActorUnkNSSW.cpp:
.text start:0x0211fd60 end:0x02120e70
.init start:0x0212206c end:0x021220bc
.ctor start:0x02122118 end:0x0212211c
.data start:0x0212266c end:0x02122724
.bss start:0x02122a3c end:0x02122a88
src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp:
+4 -4
View File
@@ -779,7 +779,7 @@ from:0x0211fd68 kind:load to:0x02122a4c module:overlay(32)
from:0x0211fd7c kind:arm_call to:0x02011f3c module:main
from:0x0211fd88 kind:arm_call to:0x0211fdd4 module:overlay(32)
from:0x0211fd9c kind:arm_call to:0x0209765c module:overlay(0)
from:0x0211fdcc kind:load to:0x021226a8 module:overlay(32)
from:0x0211fdcc kind:load to:0x021226a0 module:overlay(32) add:0x8
from:0x0211fddc kind:arm_call to:0x02098b08 module:overlay(0)
from:0x0211fdf0 kind:arm_call to:0x0209c698 module:overlay(0)
from:0x0211fe08 kind:arm_call to:0x0200f05c module:main
@@ -787,7 +787,7 @@ from:0x0211fe40 kind:arm_call to:0x02097b98 module:overlay(0)
from:0x0211fe4c kind:arm_call to:0x02120cd0 module:overlay(32)
from:0x0211fe58 kind:arm_call to:0x02120d9c module:overlay(32)
from:0x0211feb4 kind:arm_call to:0x01ffa06c module:itcm
from:0x0211fec8 kind:load to:0x021226cc module:overlay(32)
from:0x0211fec8 kind:load to:0x021226c4 module:overlay(32) add:0x8
from:0x0211fecc kind:load to:0x020b5d14 module:overlay(0)
from:0x0211fed4 kind:load to:0x02121ec4 module:overlay(32)
from:0x0211fed8 kind:load to:0x020b1940 add:0x8 module:overlay(0)
@@ -899,7 +899,7 @@ from:0x02120d6c kind:arm_call to:0x01ffb800 module:itcm
from:0x02120d7c kind:arm_call to:0x02120ba0 module:overlay(32)
from:0x02120d88 kind:arm_call to:0x02120b5c module:overlay(32)
from:0x02120d94 kind:arm_call to:0x020f6364 module:overlay(31)
from:0x02120dd4 kind:load to:0x0212268c module:overlay(32)
from:0x02120dd4 kind:load to:0x02122684 module:overlay(32) add:0x8
from:0x02120de4 kind:load to:0x02120bdc module:overlay(32)
from:0x02120df0 kind:arm_call to:0x0207b6a0 module:overlay(0)
from:0x02120df8 kind:arm_call to:0x02011ff4 module:main
@@ -1245,7 +1245,7 @@ from:0x02122664 kind:load to:0x0211fca0 module:overlay(32)
from:0x02122668 kind:load to:0x02099568 module:overlay(0)
from:0x02122674 kind:load to:0x02120d04 module:overlay(32)
from:0x02122678 kind:load to:0x02120d40 module:overlay(32)
from:0x0212267c kind:load to:0x020f635c module:overlays(22,23,31)
from:0x0212267c kind:load to:0x020f635c module:overlay(31)
from:0x02122680 kind:load to:0x02120d5c module:overlay(32)
from:0x0212268c kind:load to:0x0211fedc module:overlay(32)
from:0x02122690 kind:load to:0x02120de8 module:overlay(32)
+22 -22
View File
@@ -169,32 +169,32 @@ _ZN19ActorProfileUnkNSSW10GetProfileEv kind:function(arm,size=0xc) addr:0x0211fd
_ZN19ActorProfileUnkNSSW6CreateEv kind:function(arm,size=0x24) addr:0x0211fd6c
_ZN19ActorProfileUnkNSSWC1Ev kind:function(arm,size=0x44) addr:0x0211fd90
_ZN12ActorUnkNSSWC1Ev kind:function(arm,size=0x108) addr:0x0211fdd4
_ZN12ActorUnkNSSW19func_ov032_0211fefcEv kind:function(arm,size=0x14) addr:0x0211fedc
_ZN12ActorUnkNSSW19func_ov032_0211ff10Ev kind:function(arm,size=0x28) addr:0x0211fef0
_ZN12ActorUnkNSSW19func_ov032_0211ff38Ev kind:function(arm,size=0x1e0) addr:0x0211ff18
_ZN16ActorUnkNSSW_104D1Ev kind:function(arm,size=0x14) addr:0x0211fedc
_ZN12ActorUnkNSSW4InitEi kind:function(arm,size=0x28) addr:0x0211fef0
_ZN12ActorUnkNSSW6UpdateEv kind:function(arm,size=0x1e0) addr:0x0211ff18
_ZN12ActorUnkNSSW19func_ov032_02120118Ev kind:function(arm,size=0x78) addr:0x021200f8
_ZN12ActorUnkNSSW19func_ov032_02120190Ev kind:function(arm,size=0xcc) addr:0x02120170
_ZN12ActorUnkNSSW19func_ov032_0212025cEv kind:function(arm,size=0x7c) addr:0x0212023c
_ZN12ActorUnkNSSW19func_ov032_021202d8Ev kind:function(arm,size=0x124) addr:0x021202b8
_ZN12ActorUnkNSSW19func_ov032_021203fcEv kind:function(arm,size=0x350) addr:0x021203dc
_ZN12ActorUnkNSSW19func_ov032_0212074cEv kind:function(arm,size=0x134) addr:0x0212072c
_ZN12ActorUnkNSSW8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x134) addr:0x0212072c
_ZN12ActorUnkNSSW19func_ov032_02120880Ev kind:function(arm,size=0x14) addr:0x02120860
_ZN12ActorUnkNSSW19func_ov032_02120894Ev kind:function(arm,size=0x2a0) addr:0x02120874
_ZN12ActorUnkNSSW19func_ov032_02120b34Ev kind:function(arm,size=0x38) addr:0x02120b14
_ZN12ActorUnkNSSW19func_ov032_02120894Ei kind:function(arm,size=0x2a0) addr:0x02120874
_ZN12ActorUnkNSSW19func_ov032_02120b34E9RefStruct kind:function(arm,size=0x38) addr:0x02120b14
_ZN12ActorUnkNSSW19func_ov032_02120b6cEv kind:function(arm,size=0x10) addr:0x02120b4c
_ZN12ActorUnkNSSW19func_ov032_02120b7cEv kind:function(arm,size=0x44) addr:0x02120b5c
_ZN12ActorUnkNSSW19func_ov032_02120b7cEP7VecFx32 kind:function(arm,size=0x44) addr:0x02120b5c
_ZN12ActorUnkNSSW19func_ov032_02120bc0Ev kind:function(arm,size=0x3c) addr:0x02120ba0
_ZN12ActorUnkNSSW19func_ov032_02120bfcEv kind:function(arm,size=0x68) addr:0x02120bdc
_ZN12ActorUnkNSSW19func_ov032_02120bfcEP5Actor kind:function(arm,size=0x68) addr:0x02120bdc
_ZN12ActorUnkNSSW19func_ov032_02120c64EP16MapObjectUnkSWSW kind:function(arm,size=0x8c) addr:0x02120c44
_ZN12ActorUnkNSSW19func_ov032_02120cf0Ev kind:function(arm,size=0x34) addr:0x02120cd0
_ZN12ActorUnkNSSW19func_ov032_02120d24Ev kind:function(arm,size=0x3c) addr:0x02120d04
_ZN12ActorUnkNSSW19func_ov032_02120d60Ev kind:function(arm,size=0x1c) addr:0x02120d40
_ZN12ActorUnkNSSW19func_ov032_02120d7cEv kind:function(arm,size=0x40) addr:0x02120d5c
_ZN12ActorUnkNSSW19func_ov032_02120dbcEv kind:function(arm,size=0x3c) addr:0x02120d9c
_ZN12ActorUnkNSSW19func_ov032_02120df8Ev kind:function(arm,size=0x10) addr:0x02120dd8
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x1c) addr:0x02120de8
_ZN16ActorUnkNSSW_0E0C1EP12ActorUnkNSSW kind:function(arm,size=0x34) addr:0x02120cd0
_ZN16ActorUnkNSSW_0E08vfunc_00E9RefStructi kind:function(arm,size=0x3c) addr:0x02120d04
_ZN16ActorUnkNSSW_0E08vfunc_04Ev kind:function(arm,size=0x1c) addr:0x02120d40
_ZN16ActorUnkNSSW_0E08vfunc_0CEP7VecFx32 kind:function(arm,size=0x40) addr:0x02120d5c
_ZN16ActorUnkNSSW_104C1EP12ActorUnkNSSW kind:function(arm,size=0x3c) addr:0x02120d9c
_ZN16ActorUnkNSSW_1048vfunc_10EP5Actor kind:function(arm,size=0x10) addr:0x02120dd8
_ZN16ActorUnkNSSW_104D0Ev kind:function(arm,size=0x1c) addr:0x02120de8
_ZN12ActorUnkNSSWD1Ev kind:function(arm,size=0x28) addr:0x02120e04
_ZN12ActorUnkNSSW19func_ov032_02120e4cEv kind:function(arm,size=0x30) addr:0x02120e2c
_ZN12ActorUnkNSSWD0Ev kind:function(arm,size=0x30) addr:0x02120e2c
_ZN19ActorProfileUnkNSSWD1Ev kind:function(arm,size=0x14) addr:0x02120e5c
_ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02120e70
_ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02120e7c
@@ -217,9 +217,9 @@ _ZN16MapObjectUnkSWSWD1Ev kind:function(arm,size=0x20) addr:0x02121e54
_ZN16MapObjectUnkSWSWD0Ev kind:function(arm,size=0x28) addr:0x02121e74
_ZN23MapObjectProfileUnkSWSWD1Ev kind:function(arm,size=0x14) addr:0x02121e9c
data_ov032_02121ed4 kind:data(any) addr:0x02121eb4
data_ov032_02121ec4 kind:data(any) addr:0x02121ec4
data_ov032_02121ee4 kind:data(any) addr:0x02121ec4
data_ov032_02121ed4_usa kind:data(any) addr:0x02121ed4
data_ov032_02121ee4 kind:data(any) addr:0x02121ee4
data_ov032_02121ee4_usa kind:data(any) addr:0x02121ee4
data_ov032_02121ef4 kind:data(any) addr:0x02121ef4
data_ov032_02121f04 kind:data(any) addr:0x02121f04
__sinit_ActorSpinut.cpp kind:function(arm,size=0x6c) addr:0x02121f14 local
@@ -260,10 +260,10 @@ _ZTV26ModelRender_ov032_02122568 kind:data(any) addr:0x02122540
data_ov032_0212258c kind:data(any) addr:0x0212256c
data_ov032_021225dc kind:data(any) addr:0x021225bc
_ZTV10ActorKeese kind:data(any) addr:0x0212260c
_ZTV19data_ov032_02122674 kind:data(any) addr:0x0212266c
data_ov032_0212268c kind:data(any) addr:0x0212268c
data_ov032_021226a8 kind:data(any) addr:0x021226a8
data_ov032_021226cc kind:data(any) addr:0x021226cc
_ZTV16ActorUnkNSSW_0E0 kind:data(any) addr:0x0212266c
_ZTV16ActorUnkNSSW_104 kind:data(any) addr:0x02122684
_ZTV19ActorProfileUnkNSSW kind:data(any) addr:0x021226a0
_ZTV12ActorUnkNSSW kind:data(any) addr:0x021226c4
_ZTV23MapObjectProfileUnkSWSW kind:data(any) addr:0x02122724
_ZTV28MapObjectProfileUnkSWSW_Base kind:data(any) addr:0x02122740
_ZTV17MapObject_10_SWSW kind:data(any) addr:0x0212275c
+1 -1
View File
@@ -2319,7 +2319,7 @@ data_02040105 kind:data(any) addr:0x02040105
data_02040202 kind:data(any) addr:0x02040202
data_0204033c kind:data(any) addr:0x0204033c
data_02040403 kind:data(any) addr:0x02040403
data_0204093c kind:data(any) addr:0x0204093c
data_02040964 kind:data(any) addr:0x0204093c
data_0204133c kind:data(any) addr:0x0204133c
data_0204193c kind:data(any) addr:0x0204193c
data_0204233c kind:data(any) addr:0x0204233c
+4
View File
@@ -353,12 +353,16 @@ class Actor_C4 : public Actor_C4_Base {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
// might be a VecFx16
/* 08 */ unk16 mUnk_08;
/* 08 */ unk16 mUnk_0A;
/* 0C */ unk16 mUnk_0C;
// might be a VecFx16
/* 0C */ unk16 mUnk_0E;
/* 10 */ unk16 mUnk_10;
/* 10 */ unk16 mUnk_12;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
+79 -43
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -8,60 +6,99 @@
#include "global.h"
#include "types.h"
class ActorUnkNSSW_C4 : public Actor_C4 {
class ActorUnkNSSW;
class ActorUnkNSSW_0E0 : public Actor_C4 {
public:
ActorUnkNSSW_C4(Actor *param1);
/* 00 (base) */
/* 24 */
ActorUnkNSSW_0E0(ActorUnkNSSW *param1);
/* 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;
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorUnkNSSW : public Actor {
class ActorUnkNSSW_104 : public UnkStruct_ov031_Items_01 {
public:
/* 000 (base) */
/* 094 */ PAD(0x094, 0x0BC);
/* 0BC */ unk32 mUnk_0BC;
/* 0C0 */ PAD(0x0C0, 0x184);
/* 00 (base) */
/* 2C */ ActorUnkNSSW *mUnk_2C;
/* 30 */
ActorUnkNSSW_104(ActorUnkNSSW *actor);
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
#if IS_JP
/* 184 */ PAD(0x184, 0x190);
/* 190 */ MapObjectUnkSWSW *mUnk_184_eur;
/* 194 */ MapObjectUnkSWSW *mUnk_188_eur;
#else
/* 184 */ MapObjectUnkSWSW *mUnk_184_eur;
/* 188 */ MapObjectUnkSWSW *mUnk_188_eur;
class ActorUnkNSSW_138 : public UnkStruct_ov031_Items_00 {
public:
/* 00 (base) */
/* 04 */ unk32 mUnk_04;
/* 08 */ ActorUnkNSSW *mUnk_08;
ActorUnkNSSW_138(ActorUnkNSSW *actor) :
UnkStruct_ov031_Items_00(),
mUnk_08(actor) {}
/* 0C */ virtual bool vfunc_0C(RefStruct ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3,
const VecFx32 *param4) override;
};
#endif
/* 18C */
class ActorUnkNSSW : public Actor_Derived2 {
public:
/* EUR - JPN */
/* 000 - 000 (base) */
/* 0AE - 0AE */ PAD(0x0AE, 0x0B0);
/* 0B0 - 0B0 */ UnkSystem6_Derived2 mUnk_0B0;
/* 0BC - 0BC */ unk32 mUnk_0BC;
/* 0C0 - 0C0 */ Actor_9C mUnk_0C0;
/* 0E0 - 0E0 */ ActorUnkNSSW_0E0 mUnk_0E0;
/* 104 - 104 */ ActorUnkNSSW_104 mUnk_104;
/* 134 - 134 */ RefStruct mUnk_134;
#if IS_JP
/* 138 - 138 */ ActorUnkNSSW_138 mUnk_138_jp;
#endif
/* 138 - 144 */ VecFx32Cpp mUnk_138;
/* 144 - 150 */ VecFx32Cpp mUnk_144;
/* 150 - 15C */ MtxFx33 mUnk_150;
/* 174 - 180 */ unk32 mUnk_174;
/* 178 - 184 */ unk32 mUnk_178;
/* 17C - 188 */ unk32 mUnk_17C;
/* 180 - 18C */ unk32 mUnk_180;
/* 184 - 190 */ MapObjectUnkSWSW *mUnk_184;
/* 188 - 194 */ MapObjectUnkSWSW *mUnk_188;
/* 18C - 198 */ unk16 mUnk_18C;
/* 190 - 19C */ VecFx32Cpp mUnk_190;
/* 19C - 1A8 */ bool mUnk_19C;
/* 19D - 1A9 */ bool mUnk_19D;
/* 1A0 - 1AC */ unk32 mUnk_1A0;
/* 1A4 - 1B0 */
ActorUnkNSSW();
/* 4C */ virtual ~ActorUnkNSSW() override;
/* 1C */ virtual bool Init(unk32 param1) override;
/* 20 */ virtual void Update() override;
/* 2C */ virtual void vfunc_2C(Actor_vfunc_30 *param1) override;
void func_ov032_0211fefc(void);
void func_ov032_0211ff10(void);
void func_ov032_0211ff38(void);
void func_ov032_02120118(void);
void func_ov032_02120190(void);
void func_ov032_0212025c(void);
void func_ov032_021202d8(void);
void func_ov032_021203fc(void);
void func_ov032_0212074c(void);
void func_ov032_02120880(void);
void func_ov032_02120894(void);
void func_ov032_02120b34(void);
void func_ov032_02120b6c(void);
void func_ov032_02120b7c(void);
void func_ov032_02120bc0(void);
void func_ov032_02120bfc(void);
void func_ov032_02120118();
void func_ov032_02120190();
void func_ov032_0212025c();
void func_ov032_021202d8();
void func_ov032_021203fc();
void func_ov032_02120880();
void func_ov032_02120894(unk32 param1);
void func_ov032_02120b34(RefStruct ref);
void func_ov032_02120b6c();
void func_ov032_02120b7c(VecFx32 *param1);
void func_ov032_02120bc0();
void func_ov032_02120bfc(Actor *actor);
#if IS_JP
void func_ov032_02122b0c(MapObject *mapObject);
#endif
void func_ov032_02120c64(MapObjectUnkSWSW *param1);
void func_ov032_02120cf0(void);
void func_ov032_02120d24(void);
void func_ov032_02120d60(void);
void func_ov032_02120d7c(void);
void func_ov032_02120dbc(void);
void func_ov032_02120df8(void);
void func_ov032_02120e4c(void);
};
class ActorProfileUnkNSSW : public ActorProfile {
@@ -69,7 +106,6 @@ public:
/* 00 (base) */
ActorProfileUnkNSSW();
~ActorProfileUnkNSSW();
/* 0C */ virtual Actor *Create();
+3 -2
View File
@@ -19,8 +19,9 @@ public:
class ActorUnkRCHU : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 000 (base) */
/* 094 */ PAD(0x094, 0x268);
/* 268 */ unk32 mUnk_268;
ActorUnkRCHU();
+7 -1
View File
@@ -131,7 +131,8 @@ void func_0200b58c(G3d_RenderObject *);
void G3d_GetCurrentMtx(MtxFx43 *mtx1, MtxFx33 *mtx2);
void func_0200ea38(G3d_Model *, unk32, unk32);
void func_0200eab0(G3d_Model *, unk32, u8);
void func_0200ef9c(G3d_Model *);
void func_0200ef5c(G3d_Model *, unk32);
void func_0200ef9c(G3d_Model *, unk32);
UnkResourceStruct2 *func_0200f05c(G3d_NameList *, char *);
unk32 func_0200f218(G3d_NameList *, const char name[16]);
void *func_02012ec8(unk32, unk16, const char *, size_t *, unk32, u8);
@@ -279,6 +280,11 @@ VecFx32 *func_ov000_0205d524(unk32, unk32);
void func_ov000_0205d65c(void *, VecFx32 *, VecFx32 *, UnkAngleStruct);
void func_ov000_0205db44(void *, void *, unk32);
void func_ov000_0205dbe4(u16);
void func_ov000_0205f298(unk32 *, VecFx32 *, unk32);
void func_ov000_0205f4fc(unk32 *, MtxFx33 *);
void func_ov000_0205f6e4(VecFx32 *, VecFx32 *);
bool func_ov000_0205f7d4(VecFx32 *, VecFx32 *, VecFx32 *);
void func_ov000_0205f8e8(unk32 *, MtxFx33 *);
void func_ov000_02062e44(Vec2s *param1, void *param2);
void *func_ov000_02066294();
unk32 func_ov000_02068504(int);
+22
View File
@@ -1,5 +1,7 @@
#pragma once
#include "global.h"
#include <nitro/math.h>
// some kind of angle conversion? only used for angle values so far
@@ -45,6 +47,26 @@ struct VecFx32Cpp {
vec.y = Y;
vec.z = Z;
}
void Set(fx32 X, fx32 Y, fx32 Z) {
VecFx32_Init(X, Y, Z, &this->vec);
}
void Reset() {
VecFx32_Reset(&this->vec);
}
void CopyIn(VecFx32Cpp *vec) {
VecFx32_Copy(&this->vec, &vec->vec);
}
void CopyIn(VecFx32 *vec) {
VecFx32_Copy(&this->vec, vec);
}
bool TryNormalize() {
return VecFx32_TryNormalize(&this->vec);
}
};
// C++ wrapper for VecFx16
+12
View File
@@ -84,12 +84,24 @@ static inline void VecFx32_Copy(const VecFx32 *vec, VecFx32 *out) {
out->z = vec->z;
}
static inline void VecFx32_Copy2VecFx16(const VecFx32 *vec, VecFx16 *out) {
out->x = vec->x;
out->y = vec->y;
out->z = vec->z;
}
static inline void VecFx32_Init(fx32 x, fx32 y, fx32 z, VecFx32 *dst) {
dst->x = x;
dst->y = y;
dst->z = z;
}
static inline void VecFx16_Init(fx16 x, fx16 y, fx16 z, VecFx16 *dst) {
dst->x = x;
dst->y = y;
dst->z = z;
}
static inline void VecFx32_Reset(VecFx32 *dst) {
dst->x = 0;
dst->y = 0;
+1 -2
View File
@@ -286,7 +286,6 @@ void ActorItemTornado::vfunc_24() {
#define MUL_FXUNK2(a, b) (fx32)((((s32) (a)) * ((s32) (b)) + 0x800) >> FX32_SHIFT)
// non-matching
void ActorItemTornado::vfunc_2C(Actor_vfunc_30 *param1) {
if (this->mUnk_1DC <= 0x0) {
return;
@@ -304,7 +303,7 @@ void ActorItemTornado::vfunc_2C(Actor_vfunc_30 *param1) {
u32 var_r7;
G3d_Model *var_r8 = this->mUnk_94.mpModel;
func_0200ef9c(var_r8);
func_0200ef9c(var_r8, var_r1);
for (var_r7 = 0x0; var_r7 < this->mUnk_1D1; ++var_r7) {
func_0200ea38(var_r8, var_r7, data_ov000_020b4ec4.func_01ffc768(0x4));
+684 -30
View File
@@ -1,43 +1,697 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkNSSW.hpp"
#include "Actor/ActorManager.hpp"
#include "Actor/ActorUnkRCHU.hpp"
#include "CommonFuncs.hpp"
#include "MapObject/MapObjectManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e09b4.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_ov000_020b4ec4.hpp"
#include "Unknown/UnkStruct_ov000_020b5d34.hpp"
class ActorWithMat4x3pAt154 : public Actor {
public:
/* 000 (base) */
/* 094 */ PAD(0x094, 0x154);
/* 154 */ MtxFx43 mUnk_154;
/* 184 */
};
class UnkActor_ov032_02120190 : public Actor {
public:
/* 000 (base) */
/* 94 */ PAD(0x94, 0xE8);
/* E8 */ VecFx32 mUnk_E8;
};
class UnkStruct_ov071_0215f92c : public UnkStruct_ov031_Items_00 {
public:
/* 00 (base) */
/* 04 */ u16 mUnk_04;
/* 08 */ UnkStruct_ov031_020e5d18_00 mUnk_08;
/* 0C */
UnkStruct_ov071_0215f92c();
};
#if IS_JP
class ActorWithBoolAt17F : public Actor {
public:
/* 000 (base) */
/* 094 */ PAD(0x094, 0x17F);
/* 17F */ bool mUnk_17F;
/* 180 */
};
#endif
extern fx16 data_02040964[];
extern VecFx32 data_027e0108;
extern unk32 data_ov000_020aecf8;
DECL_PROFILE(ActorProfileUnkNSSW);
extern char data_ov032_02121ee4;
Actor *ActorProfileUnkNSSW::Create() {
return new(HeapIndex_2) ActorUnkNSSW();
}
ActorProfileUnkNSSW::ActorProfileUnkNSSW() :
ActorProfile(ActorId_NSSW) {}
ActorProfile(ActorId_NSSW) {
this->mUnk_04.Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.3f));
}
ActorUnkNSSW::ActorUnkNSSW() {}
ActorUnkNSSW::ActorUnkNSSW() :
mUnk_0B0(
G3d_GetUnkPtr(((MapObjectProfile_Derived2 *) data_ov000_020b5d34.GetProfileFromId(MapObjectId_SWSW))->mUnk_20.mUnk_50,
&data_ov032_02121ee4),
true),
mUnk_0BC(0x7),
mUnk_0E0(this),
mUnk_104(this),
mUnk_134(0x0),
#if IS_JP
mUnk_138_jp(this),
#endif
mUnk_138(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f)),
mUnk_144(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f)),
mUnk_174(0x0),
mUnk_178(0x0),
mUnk_17C(0x0),
mUnk_180(0x1000),
mUnk_184(NULL),
mUnk_188(NULL),
mUnk_18C(0x0),
mUnk_190(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f)),
mUnk_19D(false) {
MtxFx33_InitIdentity(&this->mUnk_150);
this->mUnk_40 = &this->mUnk_0E0;
}
void ActorUnkNSSW::func_ov032_0211fefc(void) {}
void ActorUnkNSSW::func_ov032_0211ff10(void) {}
void ActorUnkNSSW::func_ov032_0211ff38(void) {}
void ActorUnkNSSW::func_ov032_02120118(void) {}
void ActorUnkNSSW::func_ov032_02120190(void) {}
void ActorUnkNSSW::func_ov032_0212025c(void) {}
void ActorUnkNSSW::func_ov032_021202d8(void) {}
void ActorUnkNSSW::func_ov032_021203fc(void) {}
void ActorUnkNSSW::func_ov032_0212074c(void) {}
void ActorUnkNSSW::func_ov032_02120880(void) {}
void ActorUnkNSSW::func_ov032_02120894(void) {}
void ActorUnkNSSW::func_ov032_02120b34(void) {}
void ActorUnkNSSW::func_ov032_02120b6c(void) {}
void ActorUnkNSSW::func_ov032_02120b7c(void) {}
void ActorUnkNSSW::func_ov032_02120bc0(void) {}
void ActorUnkNSSW::func_ov032_02120bfc(void) {}
void ActorUnkNSSW::func_ov032_02120c64(MapObjectUnkSWSW *param1) {}
void ActorUnkNSSW::func_ov032_02120cf0(void) {}
void ActorUnkNSSW::func_ov032_02120d24(void) {}
void ActorUnkNSSW::func_ov032_02120d60(void) {}
void ActorUnkNSSW::func_ov032_02120d7c(void) {}
void ActorUnkNSSW::func_ov032_02120dbc(void) {}
void ActorUnkNSSW::func_ov032_02120df8(void) {}
void ActorUnkNSSW::func_ov032_02120e4c(void) {}
bool ActorUnkNSSW::Init(unk32 param1) {
this->mUnk_104.mUnk_04 = this->mRef;
this->mUnk_0E0.mUnk_1C = 0x1;
this->mUnk_19D = false;
ActorUnkNSSW::~ActorUnkNSSW() {}
ActorProfileUnkNSSW::~ActorProfileUnkNSSW() {}
this->func_ov032_02120894(0x0);
return true;
}
void ActorUnkNSSW::Update() {
VecFx32Cpp sp10(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(1.0f));
VecFx32Cpp sp04(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(1.0f));
func_01ffa7a0(&sp10.vec, &this->mUnk_150, &sp10.vec);
func_01ffa7a0(&sp04.vec, &this->mUnk_150, &sp04.vec);
fx16 z1 = sp10.vec.z;
fx16 y1 = sp10.vec.y;
fx16 z2 = sp04.vec.z;
fx16 y2 = sp04.vec.y;
fx16 x2 = sp04.vec.x;
fx16 x1 = sp10.vec.x;
VecFx16_Init(x1, y1, z1, (VecFx16 *) &this->mUnk_0E0.mUnk_08);
VecFx16_Init(x2, y2, z2, (VecFx16 *) &this->mUnk_0E0.mUnk_0E);
this->mUnk_0E0.mUnk_1C = 0x1;
this->mUnk_190.Reset();
this->mUnk_19C = false;
switch (this->mUnk_0BC) {
case 0x0:
MtxFx33_InitYRotation(&this->mUnk_150, SIN(this->mAngle.angle_u), COS(this->mAngle.angle_u));
func_ov000_0205f8e8(&this->mUnk_174, &this->mUnk_150);
this->func_ov032_02120880();
break;
case 0x1: {
this->func_ov032_02120880();
if (this->mTimer.value <= 0x14) {
break;
}
UnkStruct_027e0cd8_0C_Base *data = data_027e0cd8->mUnk_0C;
Vec2bCpp sp0;
func_01ffedac(&sp0, &this->mPos);
switch (data->func_ov000_02080180(&sp0)) {
case 0x09:
case 0x14:
case 0x17:
case 0x28:
case 0x2B:
this->func_ov032_02120894(0x5);
break;
}
break;
}
case 0x3:
this->func_ov032_02120190();
#if IS_JP
{
ActorWithBoolAt17F *actor = (ActorWithBoolAt17F *) gpActorManager->func_01fff3b4(this->mUnk_134);
if (actor != NULL) {
actor->mUnk_17F = this->mUnk_19C = true;
}
}
#endif
break;
case 0x4:
this->func_ov032_02120880();
this->func_ov032_021203fc();
break;
case 0x6:
this->func_ov032_021202d8();
break;
default:
break;
}
this->mTimer.Update();
#if IS_JP || IS_EUR1
if (!func_ov000_02080998(&this->mPos)) {
return;
}
this->func_ov032_02120894(0x5);
#endif
}
void ActorUnkNSSW::func_ov032_02120118() {
ActorWithMat4x3pAt154 *actor = (ActorWithMat4x3pAt154 *) gpActorManager->func_01fff3b4(this->mUnk_134);
if (actor == NULL) {
return;
}
CopySingle288(&actor->mUnk_154, &this->mUnk_150);
MtxFx33 stack;
MtxFx33_InitYRotation(&stack, data_02040964[0], data_02040964[1]);
func_01ffa60c(&stack, &this->mUnk_150, &this->mUnk_150);
func_ov000_0205f8e8(&this->mUnk_174, &this->mUnk_150);
}
void ActorUnkNSSW::func_ov032_02120190() {
UnkActor_ov032_02120190 *actor = (UnkActor_ov032_02120190 *) gpActorManager->func_01fff3b4(this->mUnk_134);
if (actor == NULL) {
this->func_ov032_02120894(0x6);
return;
}
VecFx16_Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), (VecFx16 *) &this->mUnk_0E0.mUnk_08);
VecFx16_Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), (VecFx16 *) &this->mUnk_0E0.mUnk_0E);
VecFx32_Copy(&this->mPos, &this->mPrevPos);
VecFx32 vec;
VecFx32_Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(-1.0002f), &vec);
func_01ffa7a0(&vec, &this->mUnk_150, &vec);
VecFx32_Add(&vec, &actor->mUnk_E8, &vec);
VecFx32_Copy(&vec, &this->mPos);
this->func_ov032_02120118();
}
// non-matching (ctor of sp0C called before sp0C.mUnk_08.mUnk_00 = NULL)
void ActorUnkNSSW::func_ov032_0212025c() {
UnkStruct_ov031_020e5d18_00 sp14;
sp14.mUnk_00 = NULL;
UnkStruct_ov071_0215f92c sp0C;
sp0C.mUnk_08.mUnk_00 = NULL;
UnkStruct_ov031_020e5d18_00 *pActor = &sp0C.mUnk_08;
func_01ffe6c4(&pActor->mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, 0x4, &this->mPos, &sp0C);
this->mUnk_46 = ((Actor *) pActor)->func_ov000_0207e294(this->mUnk_30);
if (this->mUnk_46 & 0x4) {
this->func_ov032_02120894(0x5);
}
}
void ActorUnkNSSW::func_ov032_021202d8() {
fx32 newY = this->mUnk_144.vec.y - data_ov000_020aecf8;
this->mUnk_1A0 = data_ov000_020aecf8;
this->mUnk_144.vec.y = newY;
VecFx32_Copy(&this->mPos, &this->mPrevPos);
VecFx32_Add(&this->mPos, &this->mUnk_144.vec, &this->mPos);
VecFx32 vec = this->mPos;
vec.y += FX_F32_TO_FX32(0.2f);
fx32 y = data_027e0cd8->mUnk_0C->vfunc_28(&vec, 0x1, 0x0);
if (this->mPos.y <= y) {
Vec2bCpp sp00;
UnkStruct_027e0cd8_0C_Base *data_0C = data_027e0cd8->mUnk_0C;
func_01ffedac(&sp00, &vec);
if (data_0C->func_ov000_02080180(&sp00) == 0x14) {
this->func_ov032_02120894(0x5);
} else {
this->mPos.y = y;
this->mUnk_144.vec.y = FX_F32_TO_FX32(0.0f);
this->func_ov032_02120894(0x1);
}
}
if (this->mPos.y >= FX_F32_TO_FX32(-5.0002f)) {
return;
}
this->func_ov032_02120894(0x5);
}
// non-matching
void ActorUnkNSSW::func_ov032_021203fc() {
/* 90 */ UnkStruct_ov031_020e5d18_00 stack_90;
/* 84 */ VecFx32Cpp stack_84;
/* 78 */ VecFx32Cpp stack_78;
/* 68 */ Cylinder stack_68;
/* 58 */ Cylinder stack_58;
/* 40 */ UnkStruct_ov031_020e5d18_00 stack_40;
/* 34 */ VecFx32Cpp stack_34;
/* 28 */ VecFx32Cpp stack_28;
/* 1C */ VecFx32Cpp stack_1C;
/* 10 */ VecFx32Cpp stack_10;
/* 0C */ u16 stack_0C;
if (this->mTimer.value < 0x4) {
this->func_ov032_02120190();
stack_90.mUnk_00 = NULL;
UnkStruct_ov031_020e5d18_00 *pActor = &stack_90;
#if IS_JP
func_01ffe6c4(&pActor->mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, (s16) this->mUnk_44, &this->mPos,
&this->mUnk_138_jp);
((Actor *) pActor)->func_ov000_0207df88(this->mUnk_30, 0x0A);
#else
func_01ffe6c4(&pActor->mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, (s16) this->mUnk_44, &this->mPos, NULL);
((Actor *) pActor)->func_ov000_0207df88(this->mUnk_30, 0x10);
#endif
if (this->mUnk_0BC == 0x0) {
MapObjectUnkSWSW *objectSWSW = this->mUnk_188;
if (objectSWSW == NULL) {
return;
}
fx32 z = objectSWSW->mPos.z + objectSWSW->mUnk_0EC.vec.z;
fx32 x = objectSWSW->mPos.x + objectSWSW->mUnk_0EC.vec.x;
fx32 y = objectSWSW->mPos.y + objectSWSW->mUnk_0EC.vec.y;
stack_34.vec.x = x;
stack_34.vec.y = y;
stack_34.vec.z = z;
stack_1C = stack_34;
VecFx32_Copy(&stack_1C.vec, &this->mPos);
VecFx32_Copy(&stack_1C.vec, &this->mPrevPos);
return;
}
this->func_ov032_0212025c();
return;
}
stack_84 = this->mUnk_138;
stack_84.vec.x = -stack_84.vec.x;
stack_84.vec.y = -stack_84.vec.y;
stack_84.vec.z = -stack_84.vec.z;
if (!stack_84.TryNormalize()) {
stack_84.vec.y = data_027e0108.y;
stack_84.vec.x = data_027e0108.x;
stack_84.vec.z = data_027e0108.z;
unk16 *ptr = (unk16 *) &stack_0C;
func_01fff17c(ptr, data_027e0ce0, stack_84.vec.z);
func_01ff9638(&stack_84.vec, *ptr);
}
stack_78.vec.x = stack_84.vec.x;
stack_78.vec.y = FX_F32_TO_FX32(0.0f);
stack_78.vec.z = stack_84.vec.z;
if (!func_ov000_0205f7d4(&stack_58.pos, &data_027e0108, &stack_78.vec)) {
stack_58.Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(1.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f));
}
if (!func_ov000_0205f7d4(&stack_68.pos, &stack_78.vec, &stack_84.vec)) {
stack_68.Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(1.0f));
}
func_ov000_0205f6e4(&stack_68.pos, &stack_58.pos);
func_ov000_0205f298(&this->mUnk_174, &stack_68.pos, 0x333);
func_ov000_0205f4fc(&this->mUnk_174, &this->mUnk_150);
VecFx32_Copy(&this->mPos, &this->mPrevPos);
VecFx32_Add(&this->mPos, &this->mUnk_144.vec, &this->mPos);
stack_40.mUnk_00 = NULL;
UnkStruct_ov031_020e5d18_00 *pActor = &stack_40;
#if IS_JP
func_01ffe6c4(&pActor->mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, (s16) this->mUnk_44, &this->mPos,
&this->mUnk_138_jp);
((Actor *) pActor)->func_ov000_0207df88(this->mUnk_30, 0x0A);
#else
func_01ffe6c4(&pActor->mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, (s16) this->mUnk_44, &this->mPos, NULL);
((Actor *) pActor)->func_ov000_0207df88(this->mUnk_30, 0x10);
#endif
if (this->mUnk_0BC == 0x0) {
MapObjectUnkSWSW *objectSWSW = this->mUnk_188;
if (objectSWSW == NULL) {
return;
}
fx32 z = objectSWSW->mPos.z + objectSWSW->mUnk_0EC.vec.z;
fx32 x = objectSWSW->mPos.x + objectSWSW->mUnk_0EC.vec.x;
fx32 y = objectSWSW->mPos.y + objectSWSW->mUnk_0EC.vec.y;
stack_28.vec.x = x;
stack_28.vec.y = y;
stack_28.vec.z = z;
stack_10 = stack_28;
VecFx32_Copy(&stack_10.vec, &this->mPos);
VecFx32_Copy(&stack_10.vec, &this->mPrevPos);
return;
}
VecFx32_Copy(&this->mPos, &this->mUnk_104.mUnk_0C.pos);
this->mUnk_104.mUnk_0C.size = FX_F32_TO_FX32(0.3f);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0x8, 0x4, &this->mUnk_104);
this->func_ov032_0212025c();
}
void ActorUnkNSSW::vfunc_2C(Actor_vfunc_30 *param1) {
if (!this->Actor::func_01fff5d0(param1, 0x0)) {
return;
}
unk32 val = data_ov000_020b4ec4.func_01ffc768(0x3);
func_0200ef5c(this->mUnk_0B0.mpModel, val);
func_0200ef9c(this->mUnk_0B0.mpModel, 0x1F);
VecFx32 sp24;
VecFx32 sp18;
VecFx32 sp0C;
// VecFx32_Add does not match
VecFx32_Init(this->mPos.x + this->mUnk_190.vec.x, this->mPos.y + this->mUnk_190.vec.y, this->mPos.z + this->mUnk_190.vec.z,
&sp0C);
this->mUnk_0B0.vfunc_14(&this->mUnk_150, &sp0C);
VecFx32_Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(1.0f), &sp24);
func_01ffa7a0(&sp24, &this->mUnk_150, &sp24);
fx16 angle = func_01ffbbe0(sp24.x, sp24.z);
sp18 = this->mPos;
sp24.x = FX_F32_TO_FX32(0.1001f);
sp24.y = FX_F32_TO_FX32(0.0f);
sp24.z = FX_F32_TO_FX32(0.9f);
sp18.y += FX_F32_TO_FX32(0.2f);
data_027e09b4->func_ov017_020c08c4(&sp18, sp24.x, sp24.z, 0x1F, angle, 0x1);
}
void ActorUnkNSSW::func_ov032_02120880() {
this->mUnk_3C = &this->mUnk_0C0;
this->Actor::func_ov000_020989e0();
}
// non-matching
// eur,usa: regalloc
// eur1,jp: regalloc + accessing actor in spC
void ActorUnkNSSW::func_ov032_02120894(unk32 param1) {
unk32 oldVal0BC = this->mUnk_0BC;
unk32 newVal1A0 = data_ov000_020aecf8;
this->mUnk_0BC = param1;
this->mTimer.Reset();
this->mUnk_1A0 = newVal1A0;
switch (param1) {
case 0x0:
this->mUnk_1A0 = 0x0;
this->mUnk_18C = 0x0;
break;
case 0x1:
this->mUnk_1A0 = 0x0;
break;
case 0x2:
this->mUnk_1A0 = 0x0;
break;
case 0x3:
this->mUnk_1A0 = 0x0;
if (this->mUnk_188 != NULL && this == this->mUnk_188->mUnk_114) {
this->mUnk_188->vfunc_38();
}
func_ov000_0205f8e8(&this->mUnk_174, &this->mUnk_150);
break;
case 0x4:
this->mUnk_138.CopyIn(&this->mUnk_144);
*(s16 *) &this->mUnk_44 &= ~0x20;
this->mUnk_1A0 = 0x0;
break;
case 0x5:
this->mUnk_1A0 = 0x0;
if (oldVal0BC == 0x5) {
break;
}
if (this->mUnk_184 != NULL) {
this->mUnk_184->func_ov032_02121b90();
}
if (this->mUnk_19D == 0x0) {
data_027e0cec->func_ov000_0209feac(0x0822, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0xD09C, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0xD09D, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0xD09E, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0xD09F, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0xD0A0, &this->mPos, 0x2, 0x0, 0x0);
data_027e09a8->func_ov000_02071b30(0x9927, &this->mPos, 0x0);
}
this->Actor::func_ov000_020984d0();
break;
case 0x6: {
this->mUnk_144.Reset();
VecFx32 vec;
VecFx32_Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(1.0f), &vec);
func_01ffa7a0(&vec, &this->mUnk_150, &vec);
u16 angle = (u16) (s16) func_01ffbbe0(vec.x, vec.z);
MtxFx33_InitYRotation(&this->mUnk_150, SIN(angle), COS(angle));
*(s16 *) &this->mUnk_44 &= ~0x20;
#if IS_JP || IS_EUR1
UnkStruct_ov031_020e5d18_00 spC;
spC.mUnk_00 = NULL;
VecFx32 *vec2 = this->Actor::func_ov000_0209853c(0x0);
UnkStruct_ov031_020e5d18_00 *pActor = &spC;
func_01ffe6c4(&pActor->mUnk_00, this->mRef, &this->mPos, vec2, (s16) this->mUnk_44, &this->mPos, NULL);
((Actor *) pActor)->func_ov000_0207df88(this->mUnk_30, 0x10);
((Actor *) pActor)->func_ov000_0207e294(this->mUnk_30);
#endif
break;
}
default:
break;
}
}
void ActorUnkNSSW::func_ov032_02120b34(RefStruct ref) {
if (this->mUnk_0BC == 0x3) {
return;
}
this->mUnk_134 = ref;
this->func_ov032_02120894(0x2);
}
void ActorUnkNSSW::func_ov032_02120b6c() {
this->func_ov032_02120894(0x3);
}
void ActorUnkNSSW::func_ov032_02120b7c(VecFx32 *param1) {
fx32 x = param1->x;
fx32 y = param1->y;
fx32 z = param1->z;
this->mUnk_138.Set(x, y, z);
if (x == FX_F32_TO_FX32(0.0f) && y == FX_F32_TO_FX32(0.0f) && z == FX_F32_TO_FX32(0.0f)) {
this->func_ov032_02120894(0x6);
return;
}
this->func_ov032_02120894(0x4);
}
void ActorUnkNSSW::func_ov032_02120bc0() {
if (this->mUnk_188 != NULL && this == this->mUnk_188->mUnk_114) {
this->mUnk_188->vfunc_38();
}
this->func_ov032_02120894(0x6);
}
void ActorUnkNSSW::func_ov032_02120bfc(Actor *actor) {
#if IS_EUR1
if (this->mUnk_0BC != 0x4) {
return;
}
#endif
this->mUnk_19D = true;
if (actor != NULL) {
switch (actor->GetActorId()) {
case ActorId_RCMS:
this->mUnk_19D = false;
break;
case ActorId_RCHU:
if (((ActorUnkRCHU *) actor)->mUnk_268 != 0x0) {
this->mUnk_19D = false;
}
break;
#if IS_JP
case ActorId_NSSW:
case ActorId_FRTN:
this->mUnk_19D = false;
break;
#endif
default:
break;
}
}
this->func_ov032_02120894(0x5);
}
#if IS_JP
void ActorUnkNSSW::func_ov032_02122b0c(MapObject *mapObject) {
if (mapObject == NULL) {
return;
}
MapObjectId id = mapObject->GetMapObjectId();
// Weird branching, I think that there is a better way
if (id <= MapObjectId_FSPS) {
if (id < MapObjectId_FSPS && id != MapObjectId_FLSP) {
return;
}
} else if (id > MapObjectId_GTTN || id != MapObjectId_GTTN) {
return;
}
this->mUnk_19D = false;
this->func_ov032_02120894(0x5);
}
#endif
// non-matching
void ActorUnkNSSW::func_ov032_02120c64(MapObjectUnkSWSW *param1) {
if (this->mUnk_0BC != 0x4) {
return;
}
VecFx32 vec = param1->mPos;
VecFx32_Copy(&vec, &this->mPrevPos);
VecFx32_Copy(&vec, &this->mPos); // non-matching
this->mUnk_18C = 0x0;
MtxFx33_InitIdentity(&this->mUnk_150);
this->mUnk_138.Reset();
this->func_ov032_02120894(0x0);
this->mUnk_188 = param1;
}
ActorUnkNSSW_0E0::ActorUnkNSSW_0E0(ActorUnkNSSW *actor) :
Actor_C4(actor, 0x1) {
this->mUnk_20 = actor;
this->mUnk_04 = 0x1;
}
bool ActorUnkNSSW_0E0::vfunc_00(RefStruct ref, unk32 param2) {
if (param2 != 0x0) {
ActorUnkNSSW *actor = this->GetActorPtr<ActorUnkNSSW>();
actor->func_ov032_02120b34(ref);
}
return this->Actor_C4::vfunc_00(ref, param2);
}
bool ActorUnkNSSW_0E0::vfunc_04() {
this->GetActorPtr<ActorUnkNSSW>()->func_ov032_02120b6c();
return this->Actor_C4::vfunc_04();
}
void ActorUnkNSSW_0E0::vfunc_0C(VecFx32 *param1) {
if (VecFx32_Length(param1) < FX_F32_TO_FX32(0.01f)) {
this->GetActorPtr<ActorUnkNSSW>()->func_ov032_02120bc0();
} else {
this->GetActorPtr<ActorUnkNSSW>()->func_ov032_02120b7c(param1);
}
return this->Actor_C4::vfunc_0C(param1);
}
ActorUnkNSSW_104::ActorUnkNSSW_104(ActorUnkNSSW *actor) :
mUnk_2C(actor) {}
void ActorUnkNSSW_104::vfunc_10(Actor *actor) {
this->mUnk_2C->func_ov032_02120bfc(actor);
}
#if IS_JP
// non-matching
bool ActorUnkNSSW_138::vfunc_0C(RefStruct ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3,
const VecFx32 *param4) {
if ((s32) ref.moRef.unk_00_u16 & 0x1000) {
Vec2bCpp vec(0, 0);
MapObject *mapObject = gpMapObjManager->func_01fff498(vec);
if (mapObject != NULL) {
this->mUnk_08->func_ov032_02122b0c(mapObject);
}
}
this->UnkStruct_027e0ce0_38_Base::vfunc_0C(ref, param2, param3, param4);
}
#endif
+7 -7
View File
@@ -398,13 +398,13 @@ void MapObjectUnkSWSW::func_ov032_02121b90() {
this->mUnk_0F8 = NULL;
if (this->mUnk_114 != NULL) {
if (this->mUnk_114->mUnk_184_eur != NULL && this != this->mUnk_114->mUnk_184_eur) {
this->mUnk_114->mUnk_184_eur->func_ov032_02121b90();
if (this->mUnk_114->mUnk_184 != NULL && this != this->mUnk_114->mUnk_184) {
this->mUnk_114->mUnk_184->func_ov032_02121b90();
}
this->mUnk_0F8 = this->mUnk_114;
this->mUnk_114->mUnk_184_eur = this;
this->mUnk_0F8->mUnk_188_eur = this;
this->mUnk_0F8 = this->mUnk_114;
this->mUnk_114->mUnk_184 = this;
this->mUnk_0F8->mUnk_188 = this;
this->vfunc_3C(0x0);
return;
@@ -501,8 +501,8 @@ ActorUnkNSSW *MapObjectUnkSWSW::func_ov032_02121dc8(VecFx32 *param1) {
ActorUnkNSSW *actor = (ActorUnkNSSW *) gpActorManager->func_01fff3b4(unk.ref);
actor->mUnk_184_eur = this;
actor->mUnk_188_eur = this;
actor->mUnk_184 = this;
actor->mUnk_188 = this;
return actor;
}