Decompiling part of ActorUnkITTD (#111)

* feat: update

* feat: update

* feat: cleanup

* feat: rc

* refactor: rename UnkITTD to ItemTornado
This commit is contained in:
Alessevan
2026-07-17 18:49:02 +02:00
committed by GitHub
parent 2bc13d2ec2
commit 0fe5959c6d
24 changed files with 526 additions and 198 deletions
+1 -1
View File
@@ -130,7 +130,7 @@ func_01ffc5a0 kind:function(arm,size=0x94) addr:0x01ffc5a0
func_01ffc634 kind:function(arm,size=0xa0) addr:0x01ffc634
_ZN19UnkSystem6_Derived213func_01ffc6d4EtP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4
func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744
func_01ffc768 kind:function(arm,size=0x3c) addr:0x01ffc768
_ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768
_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4
func_01ffc858 kind:function(arm,size=0x88) addr:0x01ffc858
func_01ffc8e0 kind:function(arm,size=0x2b4) addr:0x01ffc8e0
+2 -2
View File
@@ -100,7 +100,7 @@ func_ov000_02057c14 kind:function(arm,size=0x20) addr:0x02057c14
_ZN11ModelRender8vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x4) addr:0x02057c34
_ZN11ModelRender19func_ov000_02057c38Eii kind:function(arm,size=0x34) addr:0x02057c38
func_ov000_02057c6c kind:function(arm,size=0x2c) addr:0x02057c6c
func_ov000_02057c98 kind:function(arm,size=0x18) addr:0x02057c98
_ZN11ModelRender19func_ov000_02057c98EP10UnkSystem5 kind:function(arm,size=0x18) addr:0x02057c98
func_ov000_02057cb0 kind:function(arm,size=0x18) addr:0x02057cb0
func_ov000_02057cc8 kind:function(arm,size=0x2c) addr:0x02057cc8
func_ov000_02057cf4 kind:function(arm,size=0x2c) addr:0x02057cf4
@@ -179,7 +179,7 @@ func_ov000_02058f5c kind:function(arm,size=0x18) addr:0x02058f5c
func_ov000_02058f74 kind:function(arm,size=0x10) addr:0x02058f74
func_ov000_02058f84 kind:function(arm,size=0x18) addr:0x02058f84
_ZN18UnkStruct_027e09586CreateEv kind:function(arm,size=0x28) addr:0x02058f9c
func_ov000_02058fc4 kind:function(arm,size=0x34) addr:0x02058fc4
_ZN18UnkStruct_027e095819func_ov000_02058fc4EP7VecFx32S1_ kind:function(arm,size=0x34) addr:0x02058fc4
func_ov000_02058ff8 kind:function(arm,size=0xdc) addr:0x02058ff8
func_ov000_020590d4 kind:function(arm,size=0x10) addr:0x020590d4
_ZN27UnkStruct_PlayerGet_74_baseC2Ev kind:function(arm,size=0x24) addr:0x020590e4
+2 -1
View File
@@ -33,10 +33,11 @@ src/031_Land/Actor/ActorItemBoomerang.cpp:
.data start:0x02112efc end:0x02112fd0
.bss start:0x021164e8 end:0x02116534
src/031_Land/Actor/ActorUnkITTD.cpp:
src/031_Land/Actor/ActorItemTornado.cpp:
.text start:0x020e58c8 end:0x020e64d8
.init start:0x02111138 end:0x021111ac
.ctor start:0x021127ac end:0x021127b0
.data start:0x02112fec end:0x02113088
.bss start:0x02116534 end:0x02116580
src/031_Land/Actor/ActorUnkSWBM.cpp:
+2 -2
View File
@@ -1445,7 +1445,7 @@ from:0x020e5ae4 kind:arm_call to:0x02057c98 module:overlay(0)
from:0x020e5b00 kind:load to:0x0211302c add:0x8 module:overlay(31)
from:0x020e5b04 kind:load to:0x02110a88 module:overlay(31)
from:0x020e5b08 kind:load to:0x027e0ce0 module:dtcm
from:0x020e5b0c kind:load to:0x02112ff4 module:overlay(31)
from:0x020e5b0c kind:load to:0x02112fec module:overlay(31) add:0x8
from:0x020e5b10 kind:load to:0x02112fd0 add:0x8 module:overlay(31)
from:0x020e5b14 kind:load to:0x020b27c8 module:overlay(0)
from:0x020e5b18 kind:load to:0x020a02d4 module:overlay(0)
@@ -1527,7 +1527,7 @@ from:0x020e6628 kind:arm_call to:0x020f409c module:overlay(31)
from:0x020e66ac kind:arm_call to:0x021875e8 module:overlay(105)
from:0x020e66b4 kind:arm_call to:0x0218795c module:overlay(105)
from:0x020e66e0 kind:load to:0x021130a4 add:0x8 module:overlay(31)
from:0x020e66e4 kind:load to:0x02113090 module:overlay(31)
from:0x020e66e4 kind:load to:0x02113088 module:overlay(31) add:0x8
from:0x020e66f4 kind:arm_call to:0x0207bffc module:overlay(0)
from:0x020e6708 kind:arm_call to:0x0207b6c0 module:overlay(0)
from:0x020e6728 kind:arm_call to:0x020e67dc module:overlay(31)
+30 -30
View File
@@ -100,7 +100,7 @@ func_ov031_020d9ba8 kind:function(thumb,size=0xc) addr:0x020d9ba8
func_ov031_020d9bb4 kind:function(thumb,size=0xc) addr:0x020d9bb4
func_ov031_020d9bc0 kind:function(arm,size=0x10) addr:0x020d9bc0
func_ov031_020d9bd0 kind:function(thumb,size=0x1a) addr:0x020d9bd0
func_ov031_020d9bec kind:function(arm,size=0x18) addr:0x020d9bec
_ZN18UnkStruct_027e0d3819func_ov031_020d9becEv kind:function(arm,size=0x18) addr:0x020d9bec
_ZN18UnkStruct_027e0d3819func_ov031_020d9c04Eiii kind:function(arm,size=0x10) addr:0x020d9c04
func_ov031_020d9c14 kind:function(arm,size=0x20) addr:0x020d9c14
func_ov031_020d9c34 kind:function(arm,size=0x10) addr:0x020d9c34
@@ -449,28 +449,28 @@ _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0x
_ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e5710
_ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e572c
_ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e5748
func_ov031_020e575c kind:function(arm,size=0x28) addr:0x020e575c
func_ov031_020e5784 kind:function(arm,size=0x114) addr:0x020e5784
_ZN24UnkStruct_ov031_02112ff48vfunc_08EPK24UnkStruct_ov031_020f3310 kind:function(arm,size=0x28) addr:0x020e575c
_ZN24UnkStruct_ov031_02112ff48vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x114) addr:0x020e5784
func_ov031_020e5898 kind:function(arm,size=0x30) addr:0x020e5898
_ZN19ActorProfileUnkITTD10GetProfileEv kind:function(arm,size=0xc) addr:0x020e58c8
_ZN19ActorProfileUnkITTD6CreateEv kind:function(arm,size=0x24) addr:0x020e58d4
_ZN19ActorProfileUnkITTDC1Ev kind:function(arm,size=0x44) addr:0x020e58f8
_ZN12ActorUnkITTDC1Ev kind:function(arm,size=0x1e4) addr:0x020e593c
_ZN12ActorUnkITTD19func_ov031_020e5b20Ev kind:function(arm,size=0x14) addr:0x020e5b20
_ZN12ActorUnkITTD19func_ov031_020e5b34Ev kind:function(arm,size=0xcc) addr:0x020e5b34
_ZN12ActorUnkITTD19func_ov031_020e5c00Ev kind:function(arm,size=0x118) addr:0x020e5c00
_ZN12ActorUnkITTD19func_ov031_020e5d18Ev kind:function(arm,size=0x430) addr:0x020e5d18
_ZN12ActorUnkITTD19func_ov031_020e6148Ev kind:function(arm,size=0x10) addr:0x020e6148
_ZN12ActorUnkITTD19func_ov031_020e6158Ev kind:function(arm,size=0x44) addr:0x020e6158
_ZN12ActorUnkITTD19func_ov031_020e619cEv kind:function(arm,size=0x124) addr:0x020e619c
_ZN12ActorUnkITTD19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e62c0
_ZN12ActorUnkITTD19func_ov031_020e6314Ev kind:function(arm,size=0x2c) addr:0x020e6314
_ZN12ActorUnkITTD19func_ov031_020e6340Ev kind:function(arm,size=0x58) addr:0x020e6340
_ZN12ActorUnkITTD19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e6398
_ZN12ActorUnkITTDD0Ev kind:function(arm,size=0x1c) addr:0x020e6410
_ZN12ActorUnkITTDD1Ev kind:function(arm,size=0x48) addr:0x020e642c
_ZN12ActorUnkITTD19func_ov031_020e6474Ev kind:function(arm,size=0x50) addr:0x020e6474
_ZN19ActorProfileUnkITTDD1Ev kind:function(arm,size=0x14) addr:0x020e64c4
_ZN23ActorProfileItemTornado10GetProfileEv kind:function(arm,size=0xc) addr:0x020e58c8
_ZN23ActorProfileItemTornado6CreateEv kind:function(arm,size=0x24) addr:0x020e58d4
_ZN23ActorProfileItemTornadoC1Ev kind:function(arm,size=0x44) addr:0x020e58f8
_ZN16ActorItemTornadoC1Ev kind:function(arm,size=0x1e4) addr:0x020e593c
_ZN24UnkStruct_ov031_02112ff4D1Ev kind:function(arm,size=0x14) addr:0x020e5b20
_ZN16ActorItemTornado8vfunc_18Ei kind:function(arm,size=0xcc) addr:0x020e5b34
_ZN16ActorItemTornado8SetStateEs kind:function(arm,size=0x118) addr:0x020e5c00
_ZN16ActorItemTornado19func_ov031_020e5d18Ei kind:function(arm,size=0x430) addr:0x020e5d18
_ZN16ActorItemTornado8vfunc_20Ev kind:function(arm,size=0x10) addr:0x020e6148
_ZN16ActorItemTornado8vfunc_24Ev kind:function(arm,size=0x44) addr:0x020e6158
_ZN16ActorItemTornado8vfunc_2CEi kind:function(arm,size=0x124) addr:0x020e619c
_ZN16ActorItemTornado19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e62c0
_ZN16ActorItemTornado19func_ov031_020e6314Et kind:function(arm,size=0x2c) addr:0x020e6314
_ZN16ActorItemTornado19func_ov031_020e6340EP7VecFx32ss kind:function(arm,size=0x58) addr:0x020e6340
_ZN16ActorItemTornado19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e6398
_ZN24UnkStruct_ov031_02112ff4D0Ev kind:function(arm,size=0x1c) addr:0x020e6410
_ZN16ActorItemTornadoD1Ev kind:function(arm,size=0x48) addr:0x020e642c
_ZN16ActorItemTornadoD0Ev kind:function(arm,size=0x50) addr:0x020e6474
_ZN23ActorProfileItemTornadoD1Ev kind:function(arm,size=0x14) addr:0x020e64c4
func_ov031_020e64d8 kind:function(arm,size=0x70) addr:0x020e64d8
func_ov031_020e6548 kind:function(arm,size=0xd8) addr:0x020e6548
func_ov031_020e6620 kind:function(arm,size=0xcc) addr:0x020e6620
@@ -2074,7 +2074,7 @@ __sinit_ActorUnkBOMB.cpp kind:function(arm,size=0x50) addr:0x02110ff8
__sinit_ActorUnkBLST.cpp kind:function(arm,size=0x50) addr:0x02111048
__sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02111098
__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x021110e8
__sinit_ActorUnkITTD.cpp kind:function(arm,size=0x74) addr:0x02111138
__sinit_ActorItemTornado.cpp kind:function(arm,size=0x74) addr:0x02111138
__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x021111ac
__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02111220
__sinit_ActorRupee.cpp kind:function(arm,size=0x98) addr:0x02111270
@@ -2138,7 +2138,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724
.p__sinit_ActorUnkBLST.cpp kind:data(word) addr:0x021127a0
.p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x021127a4
.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x021127a8
.p__sinit_ActorUnkITTD.cpp kind:data(word) addr:0x021127ac
.p__sinit_ActorItemTornado.cpp kind:data(word) addr:0x021127ac
.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x021127b0
.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x021127b4
.p__sinit_ActorRupee.cpp kind:data(word) addr:0x021127b8
@@ -2264,10 +2264,10 @@ _ZTV25ActorProfileItemBoomerang kind:data(any) addr:0x02112f50
_ZTV18ActorItemBoomerang kind:data(any) addr:0x02112f74
_ZTV19data_ov031_02112fd8 kind:data(any) addr:0x02112fd0
data_ov031_02112fdc kind:data(any) addr:0x02112fdc
data_ov031_02112ff4 kind:data(any) addr:0x02112ff4
_ZTV19data_ov031_02113008 kind:data(any) addr:0x02113008
_ZTV19data_ov031_0211302c kind:data(any) addr:0x0211302c
data_ov031_02113090 kind:data(any) addr:0x02113090
_ZTV24UnkStruct_ov031_02112ff4 kind:data(any) addr:0x02112fec
_ZTV23ActorProfileItemTornado kind:data(any) addr:0x02113008
_ZTV16ActorItemTornado kind:data(any) addr:0x0211302c
_ZTV19data_ov031_02113090 kind:data(any) addr:0x02113088
_ZTV19data_ov031_021130a4 kind:data(any) addr:0x021130a4
data_ov031_02113110 kind:data(any) addr:0x02113110
data_ov031_02113114 kind:data(any) addr:0x02113114
@@ -2532,9 +2532,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x021164ac
_ZGVN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x021164e8
@10793 kind:bss addr:0x021164ec
_ZN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x021164f8
_ZGVN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x02116534
_ZGVN15ProfileInstanceI23ActorProfileItemTornadoE8sProfileE kind:bss addr:0x02116534
@10799 kind:bss addr:0x02116538
_ZN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x02116544
_ZN15ProfileInstanceI23ActorProfileItemTornadoE8sProfileE kind:bss addr:0x02116544
_ZGVN15ProfileInstanceI19ActorProfileUnkSWBME8sProfileE kind:bss addr:0x02116580
@10805 kind:bss addr:0x02116584
_ZN15ProfileInstanceI19ActorProfileUnkSWBME8sProfileE kind:bss addr:0x02116590
+1 -1
View File
@@ -130,7 +130,7 @@ func_01ffc5a0 kind:function(arm,size=0x94) addr:0x01ffc5a0
func_01ffc634 kind:function(arm,size=0xa0) addr:0x01ffc634
_ZN19UnkSystem6_Derived213func_01ffc6d4EtP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4
func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744
func_01ffc768 kind:function(arm,size=0x3c) addr:0x01ffc768
_ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768
_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4
func_01ffc858 kind:function(arm,size=0x88) addr:0x01ffc858
func_01ffc8e0 kind:function(arm,size=0x2b4) addr:0x01ffc8e0
+1 -1
View File
@@ -32,7 +32,7 @@ src/031_Land/Actor/ActorItemBoomerang.cpp:
.ctor start:0x02114534 end:0x02114538
.bss start:0x02118288 end:0x021182d4
src/031_Land/Actor/ActorUnkITTD.cpp:
src/031_Land/Actor/ActorItemTornado.cpp:
.text start:0x020e72b4 end:0x020e7ec4
.init start:0x02112ea8 end:0x02112f1c
.ctor start:0x02114538 end:0x0211453c
+23 -23
View File
@@ -452,25 +452,25 @@ _ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e7134
func_ov031_020e7148 kind:function(arm,size=0x28) addr:0x020e7148
func_ov031_020e7170 kind:function(arm,size=0x114) addr:0x020e7170
func_ov031_020e7284 kind:function(arm,size=0x30) addr:0x020e7284
_ZN19ActorProfileUnkITTD10GetProfileEv kind:function(arm,size=0xc) addr:0x020e72b4
_ZN19ActorProfileUnkITTD6CreateEv kind:function(arm,size=0x24) addr:0x020e72c0
_ZN19ActorProfileUnkITTDC1Ev kind:function(arm,size=0x44) addr:0x020e72e4
_ZN12ActorUnkITTDC1Ev kind:function(arm,size=0x1e4) addr:0x020e7328
_ZN12ActorUnkITTD19func_ov031_020e5b20Ev kind:function(arm,size=0x14) addr:0x020e750c
_ZN12ActorUnkITTD19func_ov031_020e5b34Ev kind:function(arm,size=0xcc) addr:0x020e7520
_ZN12ActorUnkITTD19func_ov031_020e5c00Ev kind:function(arm,size=0x118) addr:0x020e75ec
_ZN12ActorUnkITTD19func_ov031_020e5d18Ev kind:function(arm,size=0x430) addr:0x020e7704
_ZN12ActorUnkITTD19func_ov031_020e6148Ev kind:function(arm,size=0x10) addr:0x020e7b34
_ZN12ActorUnkITTD19func_ov031_020e6158Ev kind:function(arm,size=0x44) addr:0x020e7b44
_ZN12ActorUnkITTD19func_ov031_020e619cEv kind:function(arm,size=0x124) addr:0x020e7b88
_ZN12ActorUnkITTD19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e7cac
_ZN12ActorUnkITTD19func_ov031_020e6314Ev kind:function(arm,size=0x2c) addr:0x020e7d00
_ZN12ActorUnkITTD19func_ov031_020e6340Ev kind:function(arm,size=0x58) addr:0x020e7d2c
_ZN12ActorUnkITTD19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e7d84
_ZN12ActorUnkITTDD0Ev kind:function(arm,size=0x1c) addr:0x020e7dfc
_ZN12ActorUnkITTDD1Ev kind:function(arm,size=0x48) addr:0x020e7e18
_ZN12ActorUnkITTD19func_ov031_020e6474Ev kind:function(arm,size=0x50) addr:0x020e7e60
_ZN19ActorProfileUnkITTDD1Ev kind:function(arm,size=0x14) addr:0x020e7eb0
_ZN23ActorProfileItemTornado10GetProfileEv kind:function(arm,size=0xc) addr:0x020e72b4
_ZN23ActorProfileItemTornado6CreateEv kind:function(arm,size=0x24) addr:0x020e72c0
_ZN23ActorProfileItemTornadoC1Ev kind:function(arm,size=0x44) addr:0x020e72e4
_ZN16ActorItemTornadoC1Ev kind:function(arm,size=0x1e4) addr:0x020e7328
_ZN24UnkStruct_ov031_02112ff4D1Ev kind:function(arm,size=0x14) addr:0x020e750c
_ZN16ActorItemTornado8vfunc_18Ei kind:function(arm,size=0xcc) addr:0x020e7520
_ZN16ActorItemTornado8SetStateEs kind:function(arm,size=0x118) addr:0x020e75ec
_ZN16ActorItemTornado19func_ov031_020e5d18Ei kind:function(arm,size=0x430) addr:0x020e7704
_ZN16ActorItemTornado8vfunc_20Ev kind:function(arm,size=0x10) addr:0x020e7b34
_ZN16ActorItemTornado8vfunc_24Ev kind:function(arm,size=0x44) addr:0x020e7b44
_ZN16ActorItemTornado8vfunc_2CEi kind:function(arm,size=0x124) addr:0x020e7b88
_ZN16ActorItemTornado19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e7cac
_ZN16ActorItemTornado19func_ov031_020e6314Et kind:function(arm,size=0x2c) addr:0x020e7d00
_ZN16ActorItemTornado19func_ov031_020e6340EP7VecFx32ss kind:function(arm,size=0x58) addr:0x020e7d2c
_ZN16ActorItemTornado19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e7d84
_ZN24UnkStruct_ov031_02112ff4D0Ev kind:function(arm,size=0x1c) addr:0x020e7dfc
_ZN16ActorItemTornadoD1Ev kind:function(arm,size=0x48) addr:0x020e7e18
_ZN16ActorItemTornadoD0Ev kind:function(arm,size=0x50) addr:0x020e7e60
_ZN23ActorProfileItemTornadoD1Ev kind:function(arm,size=0x14) addr:0x020e7eb0
func_ov031_020e7ec4 kind:function(arm,size=0x70) addr:0x020e7ec4
func_ov031_020e7f34 kind:function(arm,size=0xd8) addr:0x020e7f34
func_ov031_020e800c kind:function(arm,size=0xcc) addr:0x020e800c
@@ -2071,7 +2071,7 @@ __sinit_ActorUnkBOMB.cpp kind:function(arm,size=0x50) addr:0x02112d68
__sinit_ActorUnkBLST.cpp kind:function(arm,size=0x50) addr:0x02112db8
__sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02112e08
__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x02112e58
__sinit_ActorUnkITTD.cpp kind:function(arm,size=0x74) addr:0x02112ea8
__sinit_ActorItemTornado.cpp kind:function(arm,size=0x74) addr:0x02112ea8
__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x02112f1c
__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02112f90
__sinit_ActorRupee.cpp kind:function(arm,size=0x98) addr:0x02112fe0
@@ -2135,7 +2135,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0
.p__sinit_ActorUnkBLST.cpp kind:data(word) addr:0x0211452c
.p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x02114530
.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x02114534
.p__sinit_ActorUnkITTD.cpp kind:data(word) addr:0x02114538
.p__sinit_ActorItemTornado.cpp kind:data(word) addr:0x02114538
.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x0211453c
.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x02114540
.p__sinit_ActorRupee.cpp kind:data(word) addr:0x02114544
@@ -2528,9 +2528,9 @@ _ZN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211824c
_ZGVN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x02118288
@30793 kind:bss addr:0x0211828c
_ZN15ProfileInstanceI25ActorProfileItemBoomerangE8sProfileE kind:bss addr:0x02118298
_ZGVN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x021182d4
_ZGVN15ProfileInstanceI23ActorProfileItemTornadoE8sProfileE kind:bss addr:0x021182d4
@30799 kind:bss addr:0x021182d8
_ZN15ProfileInstanceI19ActorProfileUnkITTDE8sProfileE kind:bss addr:0x021182e4
_ZN15ProfileInstanceI23ActorProfileItemTornadoE8sProfileE kind:bss addr:0x021182e4
_ZGVN15ProfileInstanceI19ActorProfileUnkSWBME8sProfileE kind:bss addr:0x02118320
@30805 kind:bss addr:0x02118324
_ZN15ProfileInstanceI19ActorProfileUnkSWBME8sProfileE kind:bss addr:0x02118330
+75
View File
@@ -0,0 +1,75 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Player/PlayerGet.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_ov031_02112ff4 : public UnkStruct_ov031_Items_00 {
public:
// data_ov031_02112ff4
/* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1);
/* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2);
};
enum ActorItemTornadoState_ {
ActorItemTornadoState_0 = 0,
ActorItemTornadoState_1 = 1,
ActorItemTornadoState_2 = 2,
ActorItemTornadoState_MAX,
};
class ActorItemTornado : public Actor {
public:
/* 000 (base) */
/* 094 */ ModelRender mUnk_94;
/* 0F4 */ UnkSystem5 mUnk_F4;
/* 114 */ unk32 mUnk_114;
/* 118 */ STRUCT_PAD(0x118, 0x134);
/* 134 */ UnkSystem5 mUnk_134;
/* 154 */ unk32 mUnk_154;
/* 158 */ STRUCT_PAD(0x158, 0x174);
/* 174 */ UnkStruct_ov031_02112ff4 mUnk_174;
/* 178 */ STRUCT_PAD(0x178, 0x17C);
/* 17C */ UnkStruct_PlayerGet_74 mUnk_17C;
/* 194 */ UnkStruct_ov031_Items_01 mUnk_194;
/* 1C0 */ VecFx32 mUnk_1C0;
/* 1CC */ u16 mUnk_1CC;
/* 1CE */ bool mUnk_1CE;
/* 1CF */ bool mUnk_1CF;
/* 1D0 */ u8 mUnk_1D0;
/* 1D1 */ u8 mUnk_1D1;
/* 1D2 */ u16 mUnk_1D2;
/* 1D4 */ u16 mUnk_1D4;
/* 1D6 */ u16 mUnk_1D6;
/* 1D8 */ unk32 mUnk_1D8;
/* 1DC */ fx32 mUnk_1DC;
/* 1E0 */ UnkStruct_PlayerGet_ec mUnk_1E0[0x3];
/* 1EC */
ActorItemTornado();
/* 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;
void SetState(ActorState state);
void func_ov031_020e5d18(unk32 param1);
bool func_ov031_020e62c0();
bool func_ov031_020e6314(u16 param1);
bool func_ov031_020e6340(VecFx32 *param1, unk16 param2, unk16 param3);
bool func_ov031_020e6398();
};
class ActorProfileItemTornado : public ActorProfile {
public:
/* 00 (base) */
ActorProfileItemTornado();
/* 0C */ virtual Actor *Create();
static ActorProfileItemTornado *GetProfile();
};
-53
View File
@@ -1,53 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "types.h"
class ActorUnkITTD_C4 : public Actor_C4 {
public:
ActorUnkITTD_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
};
class ActorUnkITTD : public Actor {
public:
/* 00 (base) */
/* 94 */
ActorUnkITTD();
/* 4C */ virtual ~ActorUnkITTD() override;
void func_ov031_020e5b20(void);
void func_ov031_020e5b34(void);
void func_ov031_020e5c00(void);
void func_ov031_020e5d18(void);
void func_ov031_020e6148(void);
void func_ov031_020e6158(void);
void func_ov031_020e619c(void);
void func_ov031_020e62c0(void);
void func_ov031_020e6314(void);
void func_ov031_020e6340(void);
void func_ov031_020e6398(void);
void func_ov031_020e6474(void);
};
class ActorProfileUnkITTD : public ActorProfile {
public:
/* 00 (base) */
ActorProfileUnkITTD();
~ActorProfileUnkITTD();
/* 0C */ virtual Actor *Create();
static ActorProfileUnkITTD *GetProfile();
};
+8
View File
@@ -22,6 +22,14 @@ struct Cylinder {
this->size = size;
}
void Init(fx32 x, fx32 y, fx32 z, fx32 size) {
this->pos.x = x;
this->pos.y = y;
this->pos.z = z;
this->size = size;
}
void MakeEmpty() {
pos = gVecFx32_ZERO;
size = -1;
+2
View File
@@ -6,6 +6,7 @@
#include <nns/g3d/g3d.h>
class UnkSystem5;
extern "C" void *func_ov000_02057750(size_t allocSize);
typedef void (*UnkSystem4_UnkCallback)(void);
@@ -74,6 +75,7 @@ public:
void func_ov000_02057d20(u8 numBones);
void func_ov000_02057d3c(G3d_BoneMtxStruct *pCacheJntAnm);
void func_ov000_0209a7b8(void *param1, UnkSystem4_UnkCallback param2);
void func_ov000_02057c98(UnkSystem5 *param1);
};
class UnkSystem6_Derived1 : public ModelRenderBase {
+6 -1
View File
@@ -914,11 +914,16 @@ struct UnkStackStruct1 {
};
extern "C" void func_ov000_02072fd0(UnkStackStruct1 *);
struct UnkSystem7_UnkStruct_00_20 {
struct UnkSystem7_UnkStruct_00_20_00 {
/* 00 */ STRUCT_PAD(0x00, 0x04);
/* 04 */ VecFx32 mUnk_04;
};
struct UnkSystem7_UnkStruct_00_20 {
/* 00 */ UnkSystem7_UnkStruct_00_20_00 *mUnk_00;
/* 04 */ VecFx32 *mUnk_04;
};
struct UnkSystem7_UnkStruct_00 {
/* 00 */ STRUCT_PAD(0x00, 0x20);
/* 20 */ UnkSystem7_UnkStruct_00_20 *mUnk_20;
+3 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "global.h"
#include "Player/PlayerGet.hpp"
#include "types.h"
class UnkStruct_027e0958 : public AutoInstance<UnkStruct_027e0958> {
@@ -13,6 +13,8 @@ public:
// overlay 0
static UnkStruct_027e0958 *Create();
static void Destroy();
void func_ov000_02058fc4(UnkStruct_PlayerGet_74 *param1, VecFx32 *param2);
};
extern UnkStruct_027e0958 *data_027e0958;
+1
View File
@@ -10,6 +10,7 @@ public:
UnkStruct_027e0d38();
~UnkStruct_027e0d38();
bool func_ov031_020d9bec();
bool func_ov031_020d9c04(unk32 param1, unk32 param2, unk32 param3);
void func_ov031_020d9c44(unk32 param1);
};
@@ -14,6 +14,8 @@ public:
UnkStruct_ov000_020b4ec4();
~UnkStruct_ov000_020b4ec4();
unk32 func_01ffc768(unk32 param1);
};
extern UnkStruct_ov000_020b4ec4 data_ov000_020b4ec4;
+2 -4
View File
@@ -19,8 +19,7 @@ public:
/* 04 */ ActorRef mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 08 */ unk16 mUnk_0A;
/* 0C */ VecFx32 mUnk_0C;
/* 18 */ fx32 mUnk_18;
/* 0C */ Cylinder mUnk_0C;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
@@ -30,8 +29,7 @@ public:
UnkStruct_ov031_Items_01() {
this->mUnk_04 = 0;
this->mUnk_08 = 0;
VecFx32_Init(0, 0, 0, &this->mUnk_0C);
this->mUnk_18 = 0;
this->mUnk_0C.Init(FLOAT_TO_FX32(0.0f));
this->mUnk_1C = 0;
this->mUnk_20 = 0;
this->mUnk_24 = 0;
+16 -22
View File
@@ -46,10 +46,7 @@ ActorItemBoomerang::ActorItemBoomerang() :
bool ActorItemBoomerang::vfunc_18(unk32 param1) {
this->mUnk_CC.mUnk_30.func_ov031_020e45fc();
this->mUnk_A0.mUnk_0C.x = FLOAT_TO_FX32(0.0f);
this->mUnk_A0.mUnk_0C.y = FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.z = FLOAT_TO_FX32(0.0f);
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.4f);
this->mUnk_A0.mUnk_0C.Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(-0.1003f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.4f));
this->mUnk_10C.x = FLOAT_TO_FX32(0.0f);
this->mUnk_10C.y = FLOAT_TO_FX32(-0.1003f);
@@ -108,10 +105,7 @@ void ActorItemBoomerang::vfunc_20() {
bool var2 = false;
switch (this->mState) {
case ActorItemBoomerangState_0:
this->mUnk_A0.mUnk_0C.z = this->mPos.z;
this->mUnk_A0.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.x = this->mPos.x;
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.3f);
this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y, this->mPos.z, FLOAT_TO_FX32(0.3f));
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0);
@@ -147,10 +141,10 @@ void ActorItemBoomerang::vfunc_20() {
}
if (sp14.type != 0) {
this->mUnk_CC.mUnk_0C.z = this->mPos.z;
this->mUnk_CC.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_CC.mUnk_18 = 0xA000;
this->mUnk_CC.mUnk_0C.x = this->mPos.x;
this->mUnk_CC.mUnk_0C.pos.z = this->mPos.z;
this->mUnk_CC.mUnk_0C.pos.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_CC.mUnk_0C.size = 0xA000;
this->mUnk_CC.mUnk_0C.pos.x = this->mPos.x;
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_CC);
return;
}
@@ -183,10 +177,7 @@ void ActorItemBoomerang::vfunc_20() {
this->func_ov031_020e49b0(0x8D70);
break;
case ActorItemBoomerangState_1:
this->mUnk_A0.mUnk_0C.z = this->mPos.z;
this->mUnk_A0.mUnk_0C.y = this->mPos.y + FLOAT_TO_FX32(-0.1003f);
this->mUnk_A0.mUnk_0C.x = this->mPos.x;
this->mUnk_A0.mUnk_18 = FLOAT_TO_FX32(0.3f);
this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y, this->mPos.z, FLOAT_TO_FX32(0.3f));
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0);
Actor *sp24; /* actor* ? */
@@ -307,15 +298,18 @@ void ActorItemBoomerang::func_ov031_020e5220() {
// non-matching
void ActorItemBoomerang::func_ov031_020e52a0() {
if (this->mUnk_128 == 0x1 || this->mUnk_128 == 0x2) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
// non sense
ptr->mUnk_00->mUnk_28 = this->mPos.x + ptr->mUnk_00->mUnk_24;
ptr->mUnk_00->mUnk_2C = this->mPos.y + ptr->mUnk_00->mUnk_28;
ptr->mUnk_00->mUnk_30 = this->mPos.z + ptr->mUnk_00->mUnk_2C;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != this->mUnk_12C + 0x3; ++ptr) {
UnkSystem7_UnkStruct_00 *data = ptr->mUnk_00;
if (data == NULL) {
continue;
}
data->mUnk_28 = this->mPos.x + data->mUnk_20->mUnk_00->mUnk_04.x;
data->mUnk_2C = this->mPos.y + data->mUnk_20->mUnk_00->mUnk_04.y;
data->mUnk_30 = this->mPos.z + data->mUnk_20->mUnk_00->mUnk_04.z;
}
return;
}
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != this->mUnk_12C + 0x3; ++ptr) {
ptr->func_ov000_020a0334();
}
}
+325
View File
@@ -0,0 +1,325 @@
#include "Actor/ActorItemTornado.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e0958.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d38.hpp"
#include "Unknown/UnkStruct_ov000_020b4ec4.hpp"
struct UnkStruct_ov031_020e5d18_00 {
Actor *mUnk_00;
u8 mUnk_04[0x14];
};
extern "C" char *data_ov031_02110a88;
extern "C" Cylinder data_ov031_02112fdc;
extern "C" void func_01ff916c(void *, unk32, unk32);
extern "C" void func_01ff93c0(VecFx32 *, unk32);
extern "C" void func_01ff993c(VecFx32 *, VecFx32 *, unk32);
extern "C" fx32 func_01ffb66c(unk32, u16);
extern "C" void func_01ffe6c4(UnkStruct_ov031_020e5d18_00 *, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *,
UnkStruct_ov031_Items_00 *);
extern "C" void func_0200ea38(G3d_Model *, unk32, unk32);
extern "C" void func_0200ef9c(G3d_Model *);
extern "C" bool func_ov000_02080998(VecFx32 *);
DECL_PROFILE(ActorProfileItemTornado);
Actor *ActorProfileItemTornado::Create() {
return new(HeapIndex_2) ActorItemTornado();
}
ActorProfileItemTornado::ActorProfileItemTornado() :
ActorProfile(ActorId_ITTD) {
this->mUnk_04.Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.25f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.20f));
}
// non-matching
ActorItemTornado::ActorItemTornado() :
mUnk_94(data_027e0ce0->func_ov000_0208ed30(0x0, 0x1, data_ov031_02110a88)),
mUnk_F4(&this->mUnk_114, this->mUnk_94.mpModel),
mUnk_134(&this->mUnk_154, this->mUnk_94.mpModel),
mUnk_17C(NULL),
mUnk_1CC(0x0),
mUnk_1D1(this->mUnk_94.func_ov000_02057ee0()->numMat),
mUnk_1D2(0x4),
mUnk_1D4(0x2),
mUnk_1D6(0x4),
mUnk_1D8(0x0),
mUnk_1DC(0x0) {
this->mUnk_94.func_ov000_02057c98(&this->mUnk_F4);
this->mUnk_94.func_ov000_02057c98(&this->mUnk_134);
this->mUnk_52 = 0xFFFF;
this->mState = ActorItemTornadoState_0;
this->mUnk_50 = 0x0;
}
bool ActorItemTornado::vfunc_18(unk32 param1) {
u16 tmp = (u16) this->mAngle;
this->mUnk_44 = 0x1F;
this->mUnk_34 = &data_ov031_02112fdc;
this->mUnk_194.mUnk_04 = this->mRef;
this->mUnk_194.mUnk_0C.Init(this->mPos.x, this->mPos.y + FLOAT_TO_FX32(0.85f), this->mPos.z, FLOAT_TO_FX32(0.8f));
this->mVel.x = MUL_FX32(SIN(tmp), 0x385);
this->mVel.z = MUL_FX32(COS(tmp), 0x385);
this->mVel.y = FLOAT_TO_FX32(0.0f);
return true;
}
void ActorItemTornado::SetState(ActorState state) {
switch (state) {
case ActorItemTornadoState_1:
this->mUnk_1DC = 0x1000;
data_027e0cec->func_ov000_020a00d4(this->mUnk_1E0, 0x8FD, 0x8FB, 0x8FC, &this->mPos, 0x2);
break;
case ActorItemTornadoState_2:
data_027e09a8->func_ov000_02071b30(0x8D6D, &this->mPos, 0x0);
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_1E0; ptr != this->mUnk_1E0 + 0x3; ++ptr) {
ptr->func_ov000_020a0334();
}
data_027e0cec->func_ov000_0209feac(0x8F9, &this->mPos, 0x2, 0x0, 0x0);
data_027e0cec->func_ov000_0209feac(0x8FA, &this->mPos, 0x2, 0x0, 0x0);
break;
default:
break;
}
this->mState = state;
this->mUnk_52 = 0xFFFF;
this->mUnk_50 = 0x0;
}
// non-matching
void ActorItemTornado::func_ov031_020e5d18(unk32 param1) {
VecFx32_Copy(&this->mPos, &this->mPrevPos);
VecFx32_Add(&this->mPos, &this->mVel, &this->mPos);
if (this->mUnk_1D2 != 0x0) {
--this->mUnk_1D2;
}
if (this->mUnk_1D4 != 0x0) {
--this->mUnk_1D4;
}
if (param1 == 0x0) {
++this->mUnk_1D8;
}
this->IsTimerOut();
switch (this->mState) {
case ActorItemTornadoState_0:
data_027e09a8->func_ov000_02071d34(&this->mRef, 0x8D6C, &this->mPos, 0x0);
if (this->mUnk_50 < (s16) 0xA) {
this->mUnk_1DC += 0x199;
break;
}
this->SetState(ActorItemTornadoState_1);
break;
case ActorItemTornadoState_1:
data_027e09a8->func_ov000_02071d34(&this->mRef, 0x8D6C, &this->mPos, 0x0);
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_1E0; ptr != this->mUnk_1E0 + 0x3; ++ptr) {
UnkSystem7_UnkStruct_00 *data = ptr->mUnk_00;
if (data == NULL) {
continue;
}
data->mUnk_28 = this->mPos.x + data->mUnk_20->mUnk_00->mUnk_04.x;
data->mUnk_2C = this->mPos.y + data->mUnk_20->mUnk_00->mUnk_04.y;
data->mUnk_30 = this->mPos.z + data->mUnk_20->mUnk_00->mUnk_04.z;
}
;
if (!data_027e0d38->func_ov031_020d9bec() &&
(((u16) this->mUnk_1CC == 0x0 && (u32) this->mUnk_1D8 >= 0x28U) || !this->func_ov017_020beeec(0))) {
this->func_ov031_020e6314(0x4);
break;
}
if (func_ov000_02080998(&this->mPos)) {
this->func_ov031_020e6314(0x4);
break;
}
if (this->mUnk_1CC != 0) {
if (this->mUnk_1CE != 0) {
func_01ff993c(&this->mPos, &this->mUnk_1C0, 0x266);
func_01ff916c(&this->mUnk_1DC, 0x1000, 0x19A);
}
--this->mUnk_1CC;
if (this->mUnk_1CC == 0) {
this->func_ov031_020e6314(this->mUnk_1D6);
}
}
break;
case ActorItemTornadoState_2:
if ((u32) this->mUnk_50 >= (u32) this->mUnk_1D6) {
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
} else if (this->mUnk_1D6 != 0) {
if (this->mUnk_1CE != 0) {
func_01ff993c(&this->mPos, &this->mUnk_1C0, 0x266);
}
this->mUnk_1DC -= func_01ffb66c(0x1000, this->mUnk_1D6);
if (this->mUnk_1DC <= 0) {
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
}
}
break;
default:
break;
}
this->mUnk_F4.func_01ffc3b4();
this->mUnk_134.func_01ffc3b4();
if (this->mState != ActorItemTornadoState_0 && this->mState != ActorItemTornadoState_1) {
return;
}
if (this->mUnk_1CC != 0x0) {
return;
}
if ((this->mUnk_1CF == 0) && (this->mUnk_1D2 == 0)) {
unk32 var_r3 = 2;
if (this->mUnk_1D0 & 1) {
var_r3 |= 1;
}
if (this->func_ov000_02098ab4(0x0, 0xA, var_r3, &this->mVel) == 0x0) {
VecFx32_Init(this->mPos.x, this->mPos.y + 0xD9A, this->mPos.z, &this->mUnk_194.mUnk_0C.pos);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0x4, 0x0, &this->mUnk_194);
}
}
unk32 var_r0;
if (this->mUnk_1D4 != 0) {
var_r0 = 0x0;
} else {
UnkStruct_ov031_020e5d18_00 var_sp0C;
var_sp0C.mUnk_00 = NULL;
func_01ffe6c4(&var_sp0C, this->mRef, &this->mPos, &this->mPrevPos, (s32) (s16) this->mUnk_44, &this->mPos,
&this->mUnk_174);
Actor *actor = var_sp0C.mUnk_00;
unk32 temp_r5 = actor->func_ov000_0207df88(this->mUnk_30, 4);
var_r0 = temp_r5 | actor->func_ov000_0207e294(this->mUnk_30);
this->mUnk_46 = var_r0;
}
if (var_r0 == 0x0) {
return;
}
if (this->mUnk_1CC == 0x0) {
this->mVel.x = FLOAT_TO_FX32(0.0f);
this->mVel.y = FLOAT_TO_FX32(0.0f);
this->mVel.z = FLOAT_TO_FX32(0.0f);
this->mUnk_1CC = 0x1;
}
}
void ActorItemTornado::vfunc_20() {
this->func_ov031_020e5d18(0x0);
}
void ActorItemTornado::vfunc_24() {
if (!this->mUnk_1CE && this->mState != ActorItemTornadoState_2 &&
(this->mVel.x != FLOAT_TO_FX32(0.0f) || this->mVel.y != FLOAT_TO_FX32(0.0f) || this->mVel.z != FLOAT_TO_FX32(0.0f))) {
return;
}
this->func_ov031_020e5d18(0x1);
}
// non-matching
void ActorItemTornado::vfunc_2C(unk32 param1) {
if (this->mUnk_1DC <= 0x0) {
return;
}
if (this->mState != ActorItemTornadoState_0 && !this->func_01fff5d0(param1, 0x0)) {
return;
}
unk32 var_r0 = this->mUnk_1DC;
unk32 var_r1;
if (var_r0 == FLOAT_TO_FX32(1.0f)) {
var_r1 = 0x1F;
} else {
var_r0 = var_r0 * 0x1F + FLOAT_TO_FX32(0.5f);
var_r1 = var_r0 >> 0xC;
if (var_r1 > 0x1F) {
var_r1 = 0x1F;
} else if (var_r1 < 0) {
var_r1 = 0;
}
}
if (var_r1 <= 0) {
return;
}
G3d_Model *model = this->mUnk_94.mpModel;
func_0200ef9c(model);
if (this->mUnk_1D1 >= 0x0) {
for (unk32 index = 0x0; index < (u32) this->mUnk_1D1; ++index) {
func_0200ea38(model, index, data_ov000_020b4ec4.func_01ffc768(0x4));
}
}
VecFx32 vec = this->mPos;
if (this->mState == ActorItemTornadoState_0) {
vec.y += (((FLOAT_TO_FX32(1.0f) - this->mUnk_1DC) << 0xC) + FLOAT_TO_FX32(0.5f)) >> 0xC;
}
data_027e0958->func_ov000_02058fc4(&this->mUnk_17C, &vec);
}
bool ActorItemTornado::func_ov031_020e62c0() {
if (this->mState != ActorItemTornadoState_2 && !this->mUnk_1CF) {
this->mUnk_1CF = true;
if (VecFx32_TryNormalize(&this->mVel)) {
func_01ff93c0(&this->mVel, 0x400);
}
return true;
}
return false;
}
bool ActorItemTornado::func_ov031_020e6314(u16 param1) {
if (this->mState == ActorItemTornadoState_2) {
return false;
}
this->mUnk_1D6 = param1;
this->SetState(ActorItemTornadoState_2);
return true;
}
// non-matching
bool ActorItemTornado::func_ov031_020e6340(VecFx32 *param1, unk16 param2, unk16 param3) {
if (this->mState == ActorItemTornadoState_2) {
return false;
}
VecFx32_Init(param1->x, param1->y, param1->z, &this->mUnk_1C0);
this->mUnk_1CC = param2;
this->mUnk_1D6 = param3;
this->mUnk_1CE = true;
VecFx32_Init(FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), FLOAT_TO_FX32(0.0f), &this->mVel);
return true;
}
bool ActorItemTornado::func_ov031_020e6398() {
if (this->mState == ActorItemTornadoState_1) {
if (VecFx32_TryNormalize(&this->mVel)) {
func_01ff93c0(&this->mVel, -0x266);
}
if (this->mUnk_1D0 < 0xFF) {
++this->mUnk_1D0;
}
this->mUnk_1D8 = 0x0;
data_027e09a8->func_ov000_02071b30(0x8D6F, &this->mPos, 0x0);
return true;
}
return false;
}
+12 -11
View File
@@ -298,7 +298,7 @@ void ActorRollingStone::func_ov031_020f8bc4() {
}
this->func_ov000_02098ab4(0x2, 0x5, 0x1, &this->mVel);
this->vfunc_10(&this->mUnk_D4.mUnk_0C);
this->vfunc_10(&this->mUnk_D4.mUnk_0C.pos);
VecFx32 sp14;
VecFx32_Copy(&this->mPos, &sp14);
@@ -352,7 +352,7 @@ void ActorRollingStone::func_ov031_020f8de8() {
}
void ActorRollingStone::func_ov031_020f8ed4() {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != this->mUnk_130 + 0x2; ++ptr) {
ptr->func_ov000_020a0334();
}
this->func_ov031_020f8880();
@@ -483,7 +483,7 @@ void ActorRollingStone::func_ov031_020f9250() {
this->vfunc_40();
this->mUnk_2C = 0x0;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) {
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != this->mUnk_130 + 0x2; ++ptr) {
ptr->func_ov000_020a0334();
}
@@ -635,7 +635,7 @@ void ActorRollingStone::func_ov031_020f9554() {
}
this->func_ov000_02098ab4(0x2, 0x5, 0x1, 0x0);
this->vfunc_10(&this->mUnk_D4.mUnk_0C);
this->vfunc_10(&this->mUnk_D4.mUnk_0C.pos);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0xB, 0x4, &this->mUnk_D4);
@@ -739,14 +739,15 @@ void ActorRollingStone::func_ov031_020f9af4() {}
void ActorRollingStone::func_ov031_020f9af8() {
const fx32 y = this->mPos.y + FLOAT_TO_FX32(0.4f);
const fx32 x = this->mPos.x;
const fx32 z = this->mVel.z;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != (void *) &this->mUnk_138; ++ptr) {
UnkSystem7_UnkStruct_00 *temp = ptr->mUnk_00;
if (temp != NULL) {
temp->mUnk_28 = x + ptr->mUnk_00->mUnk_20->mUnk_04.x;
temp->mUnk_2C = y + ptr->mUnk_00->mUnk_20->mUnk_04.y;
temp->mUnk_30 = z + ptr->mUnk_00->mUnk_20->mUnk_04.z;
const fx32 z = this->mPos.z;
for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_130; ptr != this->mUnk_130 + 0x2; ++ptr) {
UnkSystem7_UnkStruct_00 *data = ptr->mUnk_00;
if (data == NULL) {
continue;
}
data->mUnk_28 = x + data->mUnk_20->mUnk_00->mUnk_04.x;
data->mUnk_2C = y + data->mUnk_20->mUnk_00->mUnk_04.y;
data->mUnk_30 = z + data->mUnk_20->mUnk_00->mUnk_04.z;
}
data_027e09a8->func_ov000_02071d34(&this->mRef, 0x989F, &this->mPos, 0x0);
}
+9 -10
View File
@@ -95,11 +95,10 @@ extern "C" void func_01ffa9e8(Mat4x3p *, Mat4x3p *);
extern "C" void func_01ffad5c(Mat4x3p *, Mat4x3p *, Mat4x3p *);
extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, VecFx32 *);
extern "C" fx16 func_01ffbbe0(fx32, fx32);
extern "C" bool func_01ffccf4(VecFx32 *, VecFx32 *, VecFx32 *, unk32 *);
extern "C" bool func_01ffccf4(Cylinder *, VecFx32 *, VecFx32 *, unk32 *);
extern "C" void func_01ffe6c4(Actor **, ActorRef, VecFx32 *, VecFx32 *, s32, VecFx32 *, unk32);
extern "C" void func_0200eab0(G3d_Model *, unk16, u8);
extern "C" UnkResourceStruct2 *func_0200f05c(G3d_NameList *, char *);
extern "C" void func_ov000_02057c98(ModelRender *param1, UnkSystem5 *param2);
extern "C" bool func_ov000_0205aeac();
extern "C" void func_ov000_0207b6c0();
extern "C" unk32 func_ov000_0207df88(unk32 *, Cylinder *, unk32);
@@ -192,9 +191,9 @@ bool ActorShotArrow::vfunc_18(unk32 param1) {
this->SetState(ActorShotArrowState_0);
this->mUnk_194.mUnk_04 = this->mRef.Get32();
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C);
this->mUnk_194.mUnk_18 = FLOAT_TO_FX32(0.20f);
this->mUnk_44 = 0x1F;
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C.pos);
this->mUnk_194.mUnk_0C.size = FLOAT_TO_FX32(0.20f);
this->mUnk_44 = 0x1F;
return true;
}
@@ -642,7 +641,7 @@ void ActorShotArrow::func_ov031_020f2794(unk16 param1) {
case 0x2:
this->mUnk_94.vfunc_08(GetModelFromProfile3(func_ov031_020f1404(), data_ov031_02110b4c));
this->mUnk_25A = true;
func_ov000_02057c98(&this->mUnk_A0, &this->mUnk_100);
this->mUnk_A0.func_ov000_02057c98(&this->mUnk_100);
break;
default:
break;
@@ -862,8 +861,8 @@ void ActorShotArrow::func_ov031_020f2f5c(VecFx32 *param1) {
}
bool ActorShotArrow::func_ov031_020f2f9c() {
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C);
this->mUnk_194.mUnk_18 = FLOAT_TO_FX32(0.2f);
VecFx32_Copy(&this->mPos, &this->mUnk_194.mUnk_0C.pos);
this->mUnk_194.mUnk_0C.size = FLOAT_TO_FX32(0.2f);
data_027e09c0->func_ov000_0207e58c(this->mRef, 0x3, data_ov031_02110b01[this->mUnk_5C.mParams[1]], &this->mUnk_194);
return true;
}
@@ -1001,7 +1000,7 @@ void ActorShotArrow_194::func_ov031_020f374c(Actor *actor) {
stack.mUnk_28 = this->mUnk_2C->mVel;
func_01ff93c0(&stack.mUnk_28, this->mUnk_30);
stack.mUnk_1C = this->mUnk_0C;
stack.mUnk_1C = this->mUnk_0C.pos;
VecFx32_Add(&stack.mUnk_1C, &stack.mUnk_28, &stack.mUnk_1C);
func_01ffb714(&stack.mUnk_1C, &actor->mVel, &stack.mUnk_1C);
@@ -1015,7 +1014,7 @@ void ActorShotArrow_194::func_ov031_020f374c(Actor *actor) {
//! @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);
u16 value = (u32) (s16) func_01ffbbe0(stack.mUnk_00.x, stack.mUnk_00.z);
u16 value = (u32) (s16) (s32) func_01ffbbe0(stack.mUnk_00.x, stack.mUnk_00.z);
fx16 sin = SIN(value);
fx16 cos = COS(value);
-31
View File
@@ -1,31 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkITTD.hpp"
#include "System/SysNew.hpp"
DECL_PROFILE(ActorProfileUnkITTD);
Actor *ActorProfileUnkITTD::Create() {
return new(HeapIndex_2) ActorUnkITTD();
}
ActorProfileUnkITTD::ActorProfileUnkITTD() :
ActorProfile(ActorId_ITTD) {}
ActorUnkITTD::ActorUnkITTD() {}
void ActorUnkITTD::func_ov031_020e5b20(void) {}
void ActorUnkITTD::func_ov031_020e5b34(void) {}
void ActorUnkITTD::func_ov031_020e5c00(void) {}
void ActorUnkITTD::func_ov031_020e5d18(void) {}
void ActorUnkITTD::func_ov031_020e6148(void) {}
void ActorUnkITTD::func_ov031_020e6158(void) {}
void ActorUnkITTD::func_ov031_020e619c(void) {}
void ActorUnkITTD::func_ov031_020e62c0(void) {}
void ActorUnkITTD::func_ov031_020e6314(void) {}
void ActorUnkITTD::func_ov031_020e6340(void) {}
void ActorUnkITTD::func_ov031_020e6398(void) {}
void ActorUnkITTD::func_ov031_020e6474(void) {}
ActorUnkITTD::~ActorUnkITTD() {}
ActorProfileUnkITTD::~ActorProfileUnkITTD() {}
+2 -3
View File
@@ -23,6 +23,7 @@
#include "Unknown/UnkStruct_ov000_020b51c0.hpp"
#include "versions.h"
#include "Unknown/UnkStruct_027e0958.hpp"
#include "math.hpp"
struct UnkStruct_02186240 {
@@ -38,8 +39,6 @@ extern "C" void func_ov000_0205ca74(unk32);
extern "C" void func_01ffb6e4(unk32, const void *, void *);
extern "C" void func_01ffc5a0(ModelRender *, unk32, u16, void *, unk32);
extern "C" void func_ov000_0208f820();
extern "C" void func_ov000_02058fc4(unk32 *, UnkStruct_PlayerGet_74 *, VecFx32 *);
extern unk32 *data_027e0958;
extern "C" void func_ov000_0208ba10(void *, void *, unk32);
extern "C" void func_02015ea8(unk32, void *);
extern "C" void func_02015628(char *, char *, unk32, void *, size_t);
@@ -1002,7 +1001,7 @@ void PlayerGet::vfunc_18(unk32 param1, unk32 param2, unk32 param3) {
case 0x3B:
if (param3 != 0 && this->mUnk_54.mItemId != ItemId_Nothing && this->mUnk_8C.mpModel != NULL) {
VecFx32_Add(this->mUnk_34, (VecFx32 *) &data_ov110_021861ec.mUnk_00, &auStack_18);
func_ov000_02058fc4(data_027e0958, &this->mUnk_74, &auStack_18);
data_027e0958->func_ov000_02058fc4(&this->mUnk_74, &auStack_18);
}
break;
default:
+1 -1
View File
@@ -479,7 +479,7 @@ config.libs = [
Object("031_Land/Actor/ActorUnkFLEN.cpp"),
Object("031_Land/Actor/ActorHeart.cpp"),
Object("031_Land/Actor/ActorItemBoomerang.cpp"),
Object("031_Land/Actor/ActorUnkITTD.cpp"),
Object("031_Land/Actor/ActorItemTornado.cpp"),
Object("031_Land/Actor/ActorUnkMLCK.cpp"),
Object("031_Land/Actor/ActorUnkNFSP.cpp"),
Object("031_Land/Actor/ActorUnkNITF.cpp"),