mirror of
https://github.com/zeldaret/st
synced 2026-07-07 14:03:29 -04:00
Decompile MapObject functions (#51)
* decompile MapObject * fix regression * match the remaining 4 functions
This commit is contained in:
@@ -210,9 +210,9 @@ func_01fff520 kind:function(arm,size=0x64) addr:0x01fff520
|
||||
_ZN9MapObject14GetMapObjectIdEv kind:function(arm,size=0xc) addr:0x01fff584
|
||||
func_01fff590 kind:function(arm,size=0x40) addr:0x01fff590
|
||||
_ZN10ActorRupee13func_01fff5d0Eii kind:function(arm,size=0x3c) addr:0x01fff5d0
|
||||
func_01fff60c kind:function(arm,size=0x8c) addr:0x01fff60c
|
||||
_ZN18UnkStruct_027e09b413func_01fff60cEiiihii kind:function(arm,size=0x8c) addr:0x01fff60c
|
||||
func_01fff698 kind:function(arm,size=0x38) addr:0x01fff698
|
||||
func_01fff6d0 kind:function(arm,size=0x74) addr:0x01fff6d0
|
||||
_ZN21UnkStruct_027e0cd8_1013func_01fff6d0EP5Vec3pPiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
|
||||
func_01fff744 kind:function(arm,size=0x20) addr:0x01fff744
|
||||
func_01fff764 kind:function(arm,size=0xec) addr:0x01fff764
|
||||
func_01fff850 kind:function(arm,size=0x158) addr:0x01fff850
|
||||
|
||||
@@ -57,6 +57,10 @@ src/000_Second/Actor/ActorUnkEFIK.cpp:
|
||||
.data start:0x020b342c end:0x020b34b0
|
||||
.bss start:0x020b5ce4 end:0x020b5d30
|
||||
|
||||
src/000_Second/MapObject/MapObject.cpp:
|
||||
.text start:0x0209cfe0 end:0x0209d700
|
||||
.data start:0x020b3588 end:0x020b35c8
|
||||
|
||||
src/000_Second/MapObject/MapObjectSwitchStep.cpp:
|
||||
.text start:0x0209dce0 end:0x0209e3f8
|
||||
.rodata start:0x020af550 end:0x020af574
|
||||
|
||||
@@ -7151,7 +7151,7 @@ from:0x0209cfa4 kind:load to:0x020b3578 module:overlay(0)
|
||||
from:0x0209cfa8 kind:load to:0x020b3580 module:overlay(0)
|
||||
from:0x0209d008 kind:arm_call to:0x0209c7c8 module:overlay(0)
|
||||
from:0x0209d060 kind:arm_call to:0x02028cdc module:main
|
||||
from:0x0209d08c kind:load to:0x020b3590 module:overlay(0)
|
||||
from:0x0209d08c kind:load to:0x020b3588 add:0x8 module:overlay(0)
|
||||
from:0x0209d090 kind:load to:0x020b5d34 module:overlay(0)
|
||||
from:0x0209d0a0 kind:arm_call to:0x02011ff4 module:main
|
||||
from:0x0209d0f4 kind:arm_call to:0x01fff6d0 module:itcm
|
||||
@@ -7197,7 +7197,7 @@ from:0x0209d6f8 kind:arm_call to:0x01ffb6e4 module:itcm
|
||||
from:0x0209d708 kind:arm_call to:0x0209cfe0 module:overlay(0)
|
||||
from:0x0209d730 kind:arm_call to:0x0209da78 module:overlay(0)
|
||||
from:0x0209d740 kind:arm_call to:0x0209da78 module:overlay(0)
|
||||
from:0x0209d74c kind:load to:0x020b35d0 module:overlay(0)
|
||||
from:0x0209d74c kind:load to:0x020b35c8 add:0x8 module:overlay(0)
|
||||
from:0x0209d758 kind:arm_call to:0x0209d0ac module:overlay(0)
|
||||
from:0x0209d760 kind:arm_call to:0x02011ff4 module:main
|
||||
from:0x0209d774 kind:arm_call to:0x0209d0ac module:overlay(0)
|
||||
|
||||
@@ -488,7 +488,7 @@ func_ov000_02061828 kind:function(thumb,size=0x28) addr:0x02061828
|
||||
func_ov000_02061850 kind:function(arm,size=0x18) addr:0x02061850
|
||||
func_ov000_02061868 kind:function(arm,size=0x1e0) addr:0x02061868
|
||||
func_ov000_02061a48 kind:function(arm,size=0x28) addr:0x02061a48
|
||||
func_ov000_02061a70 kind:function(arm,size=0xc) addr:0x02061a70
|
||||
_ZN18UnkStruct_027e099819func_ov000_02061a70Ev kind:function(arm,size=0xc) addr:0x02061a70
|
||||
func_ov000_02061a7c kind:function(arm,size=0x10) addr:0x02061a7c
|
||||
_ZN26GameModeManagerBase_104_0CD1Ev kind:function(arm,size=0x18) addr:0x02061a8c
|
||||
_ZN26GameModeManagerBase_104_0CD0Ev kind:function(arm,size=0x20) addr:0x02061aa4
|
||||
@@ -1416,7 +1416,7 @@ func_ov000_0207bffc kind:function(arm,size=0x4) addr:0x0207bffc
|
||||
func_ov000_0207c000 kind:function(arm,size=0x8) addr:0x0207c000
|
||||
func_ov000_0207c008 kind:function(arm,size=0x8) addr:0x0207c008
|
||||
func_ov000_0207c010 kind:function(arm,size=0x8) addr:0x0207c010
|
||||
_ZN24MapObjectProfile_D4_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207c018
|
||||
_ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207c018
|
||||
func_ov000_0207c048 kind:function(arm,size=0x30) addr:0x0207c048
|
||||
func_ov000_0207c078 kind:function(arm,size=0x38) addr:0x0207c078
|
||||
func_ov000_0207c0b0 kind:function(arm,size=0x54) addr:0x0207c0b0
|
||||
@@ -1557,7 +1557,7 @@ func_ov000_02080098 kind:function(arm,size=0xc8) addr:0x02080098
|
||||
func_ov000_02080160 kind:function(arm,size=0x20) addr:0x02080160
|
||||
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080180EPv kind:function(arm,size=0x10) addr:0x02080180
|
||||
func_ov000_02080190 kind:function(arm,size=0x20) addr:0x02080190
|
||||
func_ov000_020801b0 kind:function(arm,size=0x60) addr:0x020801b0
|
||||
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x020801b0
|
||||
func_ov000_02080210 kind:function(arm,size=0x78) addr:0x02080210
|
||||
func_ov000_02080288 kind:function(arm,size=0x64) addr:0x02080288
|
||||
func_ov000_020802ec kind:function(arm,size=0x78) addr:0x020802ec
|
||||
@@ -1638,8 +1638,8 @@ _ZN18UnkStruct_027e0cd819func_ov000_02081e30Eii kind:function(arm,size=0x8c) add
|
||||
func_ov000_02081ebc kind:function(arm,size=0x10) addr:0x02081ebc
|
||||
_ZN18UnkStruct_027e0cd819func_ov000_02081eccEsi kind:function(arm,size=0x10) addr:0x02081ecc
|
||||
func_ov000_02081edc kind:function(arm,size=0x10) addr:0x02081edc
|
||||
func_ov000_02081eec kind:function(arm,size=0x50) addr:0x02081eec
|
||||
func_ov000_02081f3c kind:function(arm,size=0x4c) addr:0x02081f3c
|
||||
_ZN18UnkStruct_027e0cd819func_ov000_02081eecEsii kind:function(arm,size=0x50) addr:0x02081eec
|
||||
_ZN18UnkStruct_027e0cd819func_ov000_02081f3cEsi kind:function(arm,size=0x4c) addr:0x02081f3c
|
||||
func_ov000_02081f88 kind:function(arm,size=0x90) addr:0x02081f88
|
||||
func_ov000_02082018 kind:function(arm,size=0x10c) addr:0x02082018
|
||||
func_ov000_02082124 kind:function(arm,size=0x40) addr:0x02082124
|
||||
@@ -2511,7 +2511,7 @@ func_ov000_0209c820 kind:function(arm,size=0x8) addr:0x0209c820
|
||||
func_ov000_0209c828 kind:function(arm,size=0x8c) addr:0x0209c828
|
||||
func_ov000_0209c8b4 kind:function(arm,size=0x28) addr:0x0209c8b4
|
||||
func_ov000_0209c8dc kind:function(arm,size=0x8) addr:0x0209c8dc
|
||||
func_ov000_0209c8e4 kind:function(arm,size=0x8) addr:0x0209c8e4
|
||||
_ZN16MapObjectProfile19func_ov000_0209c8e4EP12MapObject_20 kind:function(arm,size=0x8) addr:0x0209c8e4
|
||||
func_ov000_0209c8ec kind:function(arm,size=0x70) addr:0x0209c8ec
|
||||
func_ov000_0209c95c kind:function(arm,size=0x14) addr:0x0209c95c
|
||||
func_ov000_0209c970 kind:function(arm,size=0x2c) addr:0x0209c970
|
||||
@@ -2553,28 +2553,28 @@ _ZN9MapObjectD0Ev kind:function(arm,size=0x14) addr:0x0209d098
|
||||
_ZN9MapObjectD2Ev kind:function(arm,size=0x4) addr:0x0209d0ac
|
||||
_ZN9MapObject8vfunc_00Ev kind:function(arm,size=0x8) addr:0x0209d0b0
|
||||
_ZN9MapObject8vfunc_04Ev kind:function(arm,size=0x4) addr:0x0209d0b8
|
||||
_ZN9MapObject19func_ov000_0209d0bcEv kind:function(arm,size=0x58) addr:0x0209d0bc
|
||||
_ZN9MapObject19func_ov000_0209d0bcEP5Vec2bPS_ kind:function(arm,size=0x58) addr:0x0209d0bc
|
||||
_ZN9MapObject19func_ov000_0209d114Ev kind:function(arm,size=0x18) addr:0x0209d114
|
||||
_ZN9MapObject19func_ov000_0209d12cEv kind:function(arm,size=0x18) addr:0x0209d12c
|
||||
_ZN9MapObject19func_ov000_0209d144Ev kind:function(arm,size=0x88) addr:0x0209d144
|
||||
_ZN9MapObject19func_ov000_0209d144EP5Vec2sii kind:function(arm,size=0x88) addr:0x0209d144
|
||||
_ZN9MapObject8vfunc_1CEv kind:function(arm,size=0x8) addr:0x0209d1cc
|
||||
_ZN9MapObject8vfunc_20Ev kind:function(arm,size=0x4) addr:0x0209d1d4
|
||||
_ZN9MapObject8vfunc_24Ev kind:function(arm,size=0xc) addr:0x0209d1d8
|
||||
_ZN9MapObject8vfunc_28Ev kind:function(arm,size=0x8) addr:0x0209d1e4
|
||||
_ZN9MapObject8vfunc_2CEv kind:function(arm,size=0x40) addr:0x0209d1ec
|
||||
_ZN9MapObject19func_ov000_0209d22cEv kind:function(arm,size=0x48) addr:0x0209d22c
|
||||
_ZN9MapObject19func_ov000_0209d274Ev kind:function(arm,size=0x28) addr:0x0209d274
|
||||
_ZN9MapObject8vfunc_2CEP5Vec3p kind:function(arm,size=0x40) addr:0x0209d1ec
|
||||
_ZN9MapObject19func_ov000_0209d22cEPsPS_i kind:function(arm,size=0x48) addr:0x0209d22c
|
||||
_ZN9MapObject19func_ov000_0209d274Ei kind:function(arm,size=0x28) addr:0x0209d274
|
||||
_ZN9MapObject19func_ov000_0209d29cEi kind:function(arm,size=0x28) addr:0x0209d29c
|
||||
_ZN9MapObject19func_ov000_0209d2c4Eii kind:function(arm,size=0x2c) addr:0x0209d2c4
|
||||
_ZN9MapObject19func_ov000_0209d2f0Ev kind:function(arm,size=0xc4) addr:0x0209d2f0
|
||||
_ZN9MapObject19func_ov000_0209d3b4Ev kind:function(arm,size=0x80) addr:0x0209d3b4
|
||||
_ZN9MapObject19func_ov000_0209d434Ev kind:function(arm,size=0xe4) addr:0x0209d434
|
||||
_ZN9MapObject19func_ov000_0209d518Ev kind:function(arm,size=0x34) addr:0x0209d518
|
||||
_ZN9MapObject19func_ov000_0209d54cEv kind:function(arm,size=0x7c) addr:0x0209d54c
|
||||
_ZN9MapObject19func_ov000_0209d5c8Ev kind:function(arm,size=0x4c) addr:0x0209d5c8
|
||||
_ZN9MapObject19func_ov000_0209d614Ev kind:function(arm,size=0x54) addr:0x0209d614
|
||||
_ZN9MapObject19func_ov000_0209d2f0EiiP5Vec2b kind:function(arm,size=0xc4) addr:0x0209d2f0
|
||||
_ZN9MapObject19func_ov000_0209d3b4Eii kind:function(arm,size=0x80) addr:0x0209d3b4
|
||||
_ZN9MapObject19func_ov000_0209d434EPcP34UnkStruct_ov019_020d24c8_28_258_00i kind:function(arm,size=0xe4) addr:0x0209d434
|
||||
_ZN9MapObject19func_ov000_0209d518Eiiih kind:function(arm,size=0x34) addr:0x0209d518
|
||||
_ZN9MapObject19func_ov000_0209d54cEitP5Vec3pst kind:function(arm,size=0x7c) addr:0x0209d54c
|
||||
_ZN9MapObject19func_ov000_0209d5c8E8ActorRef kind:function(arm,size=0x4c) addr:0x0209d5c8
|
||||
_ZN9MapObject19func_ov000_0209d614Ei kind:function(arm,size=0x54) addr:0x0209d614
|
||||
_ZN9MapObject19func_ov000_0209d668Ev kind:function(arm,size=0x44) addr:0x0209d668
|
||||
_ZN9MapObject19func_ov000_0209d6acEv kind:function(arm,size=0x54) addr:0x0209d6ac
|
||||
_ZN9MapObject19func_ov000_0209d6acEP5Vec3p kind:function(arm,size=0x54) addr:0x0209d6ac
|
||||
func_ov000_0209d700 kind:function(arm,size=0x50) addr:0x0209d700
|
||||
_ZN19func_ov000_0209d750D0Ev kind:function(arm,size=0x1c) addr:0x0209d750
|
||||
_ZN19func_ov000_0209d76cD2Ev kind:function(arm,size=0x14) addr:0x0209d76c
|
||||
@@ -3694,13 +3694,13 @@ data_ov000_020b3568 kind:data(any) addr:0x020b3568
|
||||
data_ov000_020b3570 kind:data(any) addr:0x020b3570
|
||||
data_ov000_020b3578 kind:data(any) addr:0x020b3578
|
||||
data_ov000_020b3580 kind:data(any) addr:0x020b3580
|
||||
data_ov000_020b3590 kind:data(any) addr:0x020b3590
|
||||
data_ov000_020b35d0 kind:data(any) addr:0x020b35d0
|
||||
_ZTV9MapObject kind:data(any) addr:0x020b3588
|
||||
data_ov000_020b35d0 kind:data(any) addr:0x020b35c8
|
||||
data_ov000_020b3630 kind:data(any) addr:0x020b3630
|
||||
data_ov000_020b363c kind:data(any) addr:0x020b363c
|
||||
_ZTV26MapObjectProfileSwitchStep kind:data(any) addr:0x020b3678
|
||||
_ZTV31MapObjectProfileSwitchStep_Base kind:data(any) addr:0x020b3694
|
||||
_ZTV19MapObjectProfile_D4 kind:data(any) addr:0x020b36b0
|
||||
_ZTV12MapObject_10 kind:data(any) addr:0x020b36b0
|
||||
_ZTV22MapObjectSwitchStep_40 kind:data(any) addr:0x020b36d8
|
||||
_ZTV19MapObjectSwitchStep kind:data(any) addr:0x020b3704
|
||||
_ZTV26MapObjectProfileMiniBlocks kind:data(any) addr:0x020b3744
|
||||
|
||||
@@ -210,9 +210,9 @@ func_01fff520 kind:function(arm,size=0x64) addr:0x01fff520
|
||||
_ZN9MapObject14GetMapObjectIdEv kind:function(arm,size=0xc) addr:0x01fff584
|
||||
func_01fff590 kind:function(arm,size=0x40) addr:0x01fff590
|
||||
_ZN10ActorRupee13func_01fff5d0Eii kind:function(arm,size=0x3c) addr:0x01fff5d0
|
||||
func_01fff60c kind:function(arm,size=0x8c) addr:0x01fff60c
|
||||
_ZN18UnkStruct_027e09b413func_01fff60cEiiihii kind:function(arm,size=0x8c) addr:0x01fff60c
|
||||
func_01fff698 kind:function(arm,size=0x38) addr:0x01fff698
|
||||
func_01fff6d0 kind:function(arm,size=0x74) addr:0x01fff6d0
|
||||
_ZN21UnkStruct_027e0cd8_1013func_01fff6d0EP5Vec3pPiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
|
||||
func_01fff744 kind:function(arm,size=0x20) addr:0x01fff744
|
||||
func_01fff764 kind:function(arm,size=0xec) addr:0x01fff764
|
||||
func_01fff850 kind:function(arm,size=0x158) addr:0x01fff850
|
||||
|
||||
@@ -56,6 +56,10 @@ src/000_Second/Actor/ActorUnkEFIK.cpp:
|
||||
.data start:0x020b4c2c end:0x020b4cb0
|
||||
.bss start:0x020b74f4 end:0x020b7540
|
||||
|
||||
src/000_Second/MapObject/MapObject.cpp:
|
||||
.text start:0x0209e7a4 end:0x0209eec4
|
||||
.data start:0x020b4d88 end:0x020b4dc8
|
||||
|
||||
src/000_Second/MapObject/MapObjectSwitchStep.cpp:
|
||||
.text start:0x0209f4a4 end:0x0209fbbc
|
||||
.rodata start:0x020af548 end:0x020af56c
|
||||
|
||||
@@ -7152,7 +7152,7 @@ from:0x0209e768 kind:load to:0x020b4d78 module:overlay(0)
|
||||
from:0x0209e76c kind:load to:0x020b4d80 module:overlay(0)
|
||||
from:0x0209e7cc kind:arm_call to:0x0209df94 module:overlay(0)
|
||||
from:0x0209e824 kind:arm_call to:0x0202a20c module:main
|
||||
from:0x0209e850 kind:load to:0x020b4d90 module:overlay(0)
|
||||
from:0x0209e850 kind:load to:0x020b4d88 add:0x8 module:overlay(0)
|
||||
from:0x0209e854 kind:load to:0x020b7544 module:overlay(0)
|
||||
from:0x0209e864 kind:arm_call to:0x02011ff4 module:main
|
||||
from:0x0209e8b8 kind:arm_call to:0x01fff6d0 module:itcm
|
||||
@@ -7198,7 +7198,7 @@ from:0x0209eebc kind:arm_call to:0x01ffb6e4 module:itcm
|
||||
from:0x0209eecc kind:arm_call to:0x0209e7a4 module:overlay(0)
|
||||
from:0x0209eef4 kind:arm_call to:0x0209f23c module:overlay(0)
|
||||
from:0x0209ef04 kind:arm_call to:0x0209f23c module:overlay(0)
|
||||
from:0x0209ef10 kind:load to:0x020b4dd0 module:overlay(0)
|
||||
from:0x0209ef10 kind:load to:0x020b4dc8 add:0x8 module:overlay(0)
|
||||
from:0x0209ef1c kind:arm_call to:0x0209e870 module:overlay(0)
|
||||
from:0x0209ef24 kind:arm_call to:0x02011ff4 module:main
|
||||
from:0x0209ef38 kind:arm_call to:0x0209e870 module:overlay(0)
|
||||
|
||||
@@ -488,7 +488,7 @@ func_ov000_02062db0 kind:function(thumb,size=0x28) addr:0x02062db0
|
||||
func_ov000_02062dd8 kind:function(arm,size=0x18) addr:0x02062dd8
|
||||
func_ov000_02062df0 kind:function(arm,size=0x1e0) addr:0x02062df0
|
||||
func_ov000_02062fd0 kind:function(arm,size=0x28) addr:0x02062fd0
|
||||
func_ov000_02062ff8 kind:function(arm,size=0xc) addr:0x02062ff8
|
||||
_ZN18UnkStruct_027e099819func_ov000_02061a70Ev kind:function(arm,size=0xc) addr:0x02062ff8
|
||||
func_ov000_02063004 kind:function(arm,size=0x10) addr:0x02063004
|
||||
_ZN26GameModeManagerBase_104_0CD1Ev kind:function(arm,size=0x18) addr:0x02063014
|
||||
_ZN26GameModeManagerBase_104_0CD0Ev kind:function(arm,size=0x20) addr:0x0206302c
|
||||
@@ -1414,7 +1414,7 @@ func_ov000_0207d6b4 kind:function(arm,size=0x4) addr:0x0207d6b4
|
||||
func_ov000_0207d6b8 kind:function(arm,size=0x8) addr:0x0207d6b8
|
||||
func_ov000_0207d6c0 kind:function(arm,size=0x8) addr:0x0207d6c0
|
||||
func_ov000_0207d6c8 kind:function(arm,size=0x8) addr:0x0207d6c8
|
||||
_ZN24MapObjectProfile_D4_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207d6d0
|
||||
_ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207d6d0
|
||||
func_ov000_0207d700 kind:function(arm,size=0x30) addr:0x0207d700
|
||||
func_ov000_0207d730 kind:function(arm,size=0x38) addr:0x0207d730
|
||||
func_ov000_0207d768 kind:function(arm,size=0x54) addr:0x0207d768
|
||||
@@ -1555,7 +1555,7 @@ func_ov000_02081750 kind:function(arm,size=0xc8) addr:0x02081750
|
||||
func_ov000_02081818 kind:function(arm,size=0x20) addr:0x02081818
|
||||
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080180EPv kind:function(arm,size=0x10) addr:0x02081838
|
||||
func_ov000_02081848 kind:function(arm,size=0x20) addr:0x02081848
|
||||
func_ov000_02081868 kind:function(arm,size=0x60) addr:0x02081868
|
||||
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x02081868
|
||||
func_ov000_020818c8 kind:function(arm,size=0x78) addr:0x020818c8
|
||||
func_ov000_02081940 kind:function(arm,size=0x64) addr:0x02081940
|
||||
func_ov000_020819a4 kind:function(arm,size=0x78) addr:0x020819a4
|
||||
@@ -1636,8 +1636,8 @@ _ZN18UnkStruct_027e0cd819func_ov000_02081e30Eii kind:function(arm,size=0x8c) add
|
||||
func_ov000_02083574 kind:function(arm,size=0x10) addr:0x02083574
|
||||
_ZN18UnkStruct_027e0cd819func_ov000_02081eccEsi kind:function(arm,size=0x10) addr:0x02083584
|
||||
func_ov000_02083594 kind:function(arm,size=0x10) addr:0x02083594
|
||||
func_ov000_020835a4 kind:function(arm,size=0x50) addr:0x020835a4
|
||||
func_ov000_020835f4 kind:function(arm,size=0x4c) addr:0x020835f4
|
||||
_ZN18UnkStruct_027e0cd819func_ov000_02081eecEsii kind:function(arm,size=0x50) addr:0x020835a4
|
||||
_ZN18UnkStruct_027e0cd819func_ov000_02081f3cEsi kind:function(arm,size=0x4c) addr:0x020835f4
|
||||
func_ov000_02083640 kind:function(arm,size=0x90) addr:0x02083640
|
||||
func_ov000_020836d0 kind:function(arm,size=0x10c) addr:0x020836d0
|
||||
func_ov000_020837dc kind:function(arm,size=0x40) addr:0x020837dc
|
||||
@@ -2549,28 +2549,28 @@ _ZN9MapObjectD0Ev kind:function(arm,size=0x14) addr:0x0209e85c
|
||||
_ZN9MapObjectD2Ev kind:function(arm,size=0x4) addr:0x0209e870
|
||||
_ZN9MapObject8vfunc_00Ev kind:function(arm,size=0x8) addr:0x0209e874
|
||||
_ZN9MapObject8vfunc_04Ev kind:function(arm,size=0x4) addr:0x0209e87c
|
||||
_ZN9MapObject19func_ov000_0209d0bcEv kind:function(arm,size=0x58) addr:0x0209e880
|
||||
_ZN9MapObject19func_ov000_0209d0bcEP5Vec2bPS_ kind:function(arm,size=0x58) addr:0x0209e880
|
||||
_ZN9MapObject19func_ov000_0209d114Ev kind:function(arm,size=0x18) addr:0x0209e8d8
|
||||
_ZN9MapObject19func_ov000_0209d12cEv kind:function(arm,size=0x18) addr:0x0209e8f0
|
||||
_ZN9MapObject19func_ov000_0209d144Ev kind:function(arm,size=0x88) addr:0x0209e908
|
||||
_ZN9MapObject19func_ov000_0209d144EP5Vec2sii kind:function(arm,size=0x88) addr:0x0209e908
|
||||
_ZN9MapObject8vfunc_1CEv kind:function(arm,size=0x8) addr:0x0209e990
|
||||
_ZN9MapObject8vfunc_20Ev kind:function(arm,size=0x4) addr:0x0209e998
|
||||
_ZN9MapObject8vfunc_24Ev kind:function(arm,size=0xc) addr:0x0209e99c
|
||||
_ZN9MapObject8vfunc_28Ev kind:function(arm,size=0x8) addr:0x0209e9a8
|
||||
_ZN9MapObject8vfunc_2CEv kind:function(arm,size=0x40) addr:0x0209e9b0
|
||||
_ZN9MapObject19func_ov000_0209d22cEv kind:function(arm,size=0x48) addr:0x0209e9f0
|
||||
_ZN9MapObject19func_ov000_0209d274Ev kind:function(arm,size=0x28) addr:0x0209ea38
|
||||
_ZN9MapObject8vfunc_2CEP5Vec3p kind:function(arm,size=0x40) addr:0x0209e9b0
|
||||
_ZN9MapObject19func_ov000_0209d22cEPsPS_i kind:function(arm,size=0x48) addr:0x0209e9f0
|
||||
_ZN9MapObject19func_ov000_0209d274Ei kind:function(arm,size=0x28) addr:0x0209ea38
|
||||
_ZN9MapObject19func_ov000_0209d29cEi kind:function(arm,size=0x28) addr:0x0209ea60
|
||||
_ZN9MapObject19func_ov000_0209d2c4Eii kind:function(arm,size=0x2c) addr:0x0209ea88
|
||||
_ZN9MapObject19func_ov000_0209d2f0Ev kind:function(arm,size=0xc4) addr:0x0209eab4
|
||||
_ZN9MapObject19func_ov000_0209d3b4Ev kind:function(arm,size=0x80) addr:0x0209eb78
|
||||
_ZN9MapObject19func_ov000_0209d434Ev kind:function(arm,size=0xe4) addr:0x0209ebf8
|
||||
_ZN9MapObject19func_ov000_0209d518Ev kind:function(arm,size=0x34) addr:0x0209ecdc
|
||||
_ZN9MapObject19func_ov000_0209d54cEv kind:function(arm,size=0x7c) addr:0x0209ed10
|
||||
_ZN9MapObject19func_ov000_0209d5c8Ev kind:function(arm,size=0x4c) addr:0x0209ed8c
|
||||
_ZN9MapObject19func_ov000_0209d614Ev kind:function(arm,size=0x54) addr:0x0209edd8
|
||||
_ZN9MapObject19func_ov000_0209d2f0EiiP5Vec2b kind:function(arm,size=0xc4) addr:0x0209eab4
|
||||
_ZN9MapObject19func_ov000_0209d3b4Eii kind:function(arm,size=0x80) addr:0x0209eb78
|
||||
_ZN9MapObject19func_ov000_0209d434EPcP34UnkStruct_ov019_020d24c8_28_258_00i kind:function(arm,size=0xe4) addr:0x0209ebf8
|
||||
_ZN9MapObject19func_ov000_0209d518Eiiih kind:function(arm,size=0x34) addr:0x0209ecdc
|
||||
_ZN9MapObject19func_ov000_0209d54cEitP5Vec3pst kind:function(arm,size=0x7c) addr:0x0209ed10
|
||||
_ZN9MapObject19func_ov000_0209d5c8E8ActorRef kind:function(arm,size=0x4c) addr:0x0209ed8c
|
||||
_ZN9MapObject19func_ov000_0209d614Ei kind:function(arm,size=0x54) addr:0x0209edd8
|
||||
_ZN9MapObject19func_ov000_0209d668Ev kind:function(arm,size=0x44) addr:0x0209ee2c
|
||||
_ZN9MapObject19func_ov000_0209d6acEv kind:function(arm,size=0x54) addr:0x0209ee70
|
||||
_ZN9MapObject19func_ov000_0209d6acEP5Vec3p kind:function(arm,size=0x54) addr:0x0209ee70
|
||||
func_ov000_0209eec4 kind:function(arm,size=0x50) addr:0x0209eec4
|
||||
_ZN19func_ov000_0209ef14D0Ev kind:function(arm,size=0x1c) addr:0x0209ef14
|
||||
_ZN19func_ov000_0209ef30D2Ev kind:function(arm,size=0x14) addr:0x0209ef30
|
||||
@@ -3694,13 +3694,13 @@ data_ov000_020b4d68 kind:data(any) addr:0x020b4d68
|
||||
data_ov000_020b4d70 kind:data(any) addr:0x020b4d70
|
||||
data_ov000_020b4d78 kind:data(any) addr:0x020b4d78
|
||||
data_ov000_020b4d80 kind:data(any) addr:0x020b4d80
|
||||
data_ov000_020b4d90 kind:data(any) addr:0x020b4d90
|
||||
data_ov000_020b4dd0 kind:data(any) addr:0x020b4dd0
|
||||
_ZTV9MapObject kind:data(any) addr:0x020b4d88
|
||||
data_ov000_020b4dd0 kind:data(any) addr:0x020b4dc8
|
||||
data_ov000_020b4e30 kind:data(any) addr:0x020b4e30
|
||||
data_ov000_020b4e3c kind:data(any) addr:0x020b4e3c
|
||||
_ZTV26MapObjectProfileSwitchStep kind:data(any) addr:0x020b4e78
|
||||
_ZTV31MapObjectProfileSwitchStep_Base kind:data(any) addr:0x020b4e94
|
||||
_ZTV19MapObjectProfile_D4 kind:data(any) addr:0x020b4eb0
|
||||
_ZTV12MapObject_10 kind:data(any) addr:0x020b4eb0
|
||||
_ZTV22MapObjectSwitchStep_40 kind:data(any) addr:0x020b4ed8
|
||||
_ZTV19MapObjectSwitchStep kind:data(any) addr:0x020b4f04
|
||||
_ZTV26MapObjectProfileMiniBlocks kind:data(any) addr:0x020b4f44
|
||||
|
||||
@@ -41,7 +41,8 @@ public:
|
||||
class Actor_5c_temp : public Actor_5c_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 10 */ STRUCT_PAD(0x10, 0x28);
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x28);
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
|
||||
Actor_5c_temp() {};
|
||||
|
||||
@@ -2,22 +2,26 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#define ACTOR_INDEX_MASK 0x3fff
|
||||
#define ACTOR_INDEX_MASK 0x3FFF
|
||||
|
||||
struct ActorRef {
|
||||
/* 0 */ s16 index;
|
||||
/* 2 */ s16 id;
|
||||
/* 0 */ u16 index;
|
||||
/* 2 */ u16 id;
|
||||
/* 4 */
|
||||
|
||||
inline void Reset() {
|
||||
void Reset() {
|
||||
*(u32 *) this = 0;
|
||||
}
|
||||
|
||||
inline bool operator==(const ActorRef &other) const {
|
||||
bool operator==(const ActorRef &other) const {
|
||||
return this->index == other.index && this->id == other.id;
|
||||
}
|
||||
|
||||
inline bool operator!=(const ActorRef &other) const {
|
||||
bool operator!=(const ActorRef &other) const {
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
u32 Get32() {
|
||||
return *(u32 *) this;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Actor/ActorRef.hpp"
|
||||
#include "Map/MapObjectId.hpp"
|
||||
#include "MapObject/MapObjectProfile.hpp"
|
||||
#include "Physics/Cylinder.hpp"
|
||||
@@ -9,6 +10,8 @@
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
class MapObjectProfile;
|
||||
|
||||
typedef u16 MapObjFlags;
|
||||
enum MapObjFlag_ {
|
||||
MapObjFlag_Alive = FLAG(0, 0),
|
||||
@@ -45,26 +48,79 @@ enum MapObjFlag_ {
|
||||
MapObjFlag_31 = FLAG(0, 31),
|
||||
};
|
||||
|
||||
class MapObject_10_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk8 mUnk_04;
|
||||
/* 05 */ unk8 mUnk_05;
|
||||
/* 06 */ unk8 mUnk_06;
|
||||
/* 07 */ unk8 mUnk_07;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */
|
||||
|
||||
MapObject_10_Base(); // func_ov000_0207c018
|
||||
|
||||
// data_ov000_020b2854
|
||||
/* 00 */ virtual void vfunc_00() = 0;
|
||||
/* 04 */ virtual void vfunc_04() = 0;
|
||||
/* 08 */ virtual void vfunc_08() = 0;
|
||||
/* 0C */ virtual void vfunc_0C() = 0;
|
||||
/* 10 */ virtual void vfunc_10(Cylinder *param1) = 0;
|
||||
/* 14 */ virtual void vfunc_14() = 0;
|
||||
/* 18 */ virtual void vfunc_18(Vec3p *param1) = 0;
|
||||
/* 1C */ virtual void vfunc_1C(Vec3p *param1) = 0;
|
||||
/* 20 */
|
||||
};
|
||||
|
||||
class MapObject_10 : public MapObject_10_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 0C */
|
||||
|
||||
MapObject_10() {}
|
||||
~MapObject_10() {}
|
||||
|
||||
// data_ov031_02113f18
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10(Cylinder *param1);
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18(Vec3p *param1);
|
||||
/* 1C */ virtual void vfunc_1C(Vec3p *param1);
|
||||
/* 20 */
|
||||
};
|
||||
|
||||
class MapObject_20 {
|
||||
public:
|
||||
/* 00 */ u16 mUnk_00;
|
||||
/* 02 */ u16 mUnk_02;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ u8 mUnk_08[2];
|
||||
/* 0A */ u16 mUnk_0A[2];
|
||||
/* 0E */ unk16 mUnk_0E;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ s16 mUnk_14;
|
||||
/* 16 */ unk16 mUnk_16;
|
||||
/* 18 */
|
||||
|
||||
MapObject_20() {}
|
||||
};
|
||||
|
||||
class MapObject : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ Vec3p mPos;
|
||||
/* 10 */ void *mUnk_10;
|
||||
/* 10 */ MapObject_10 *mUnk_10;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
/* 16 */ unk16 mUnk_16;
|
||||
/* 18 */ unk8 mUnk_18; // bool? when set Link walks to the map object when touched
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
/* 18 */ unk8 mUnk_18[2]; // bools? when set Link walks to the map object when touched
|
||||
/* 1A */ unk8 mUnk_1A;
|
||||
/* 1B */ unk8 mUnk_1B;
|
||||
/* 1C */ MapObjFlags mFlags[1];
|
||||
/* 1E */ unk16 mUnk_1E;
|
||||
/* 20 */ u16 mUnk_20;
|
||||
/* 22 */ u16 mUnk_22;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */ unk32 mUnk_30;
|
||||
/* 34 */ unk32 mUnk_34;
|
||||
/* 20 */ MapObject_20 mUnk_20;
|
||||
/* 38 */ unk8 mUnk_38;
|
||||
/* 38 */ unk8 mUnk_39;
|
||||
/* 3A */ Vec2b mUnk_3A;
|
||||
@@ -79,11 +135,11 @@ public:
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 1C */ virtual bool vfunc_1C();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual void vfunc_28();
|
||||
/* 2C */ virtual void vfunc_2C();
|
||||
/* 28 */ virtual bool vfunc_28();
|
||||
/* 2C */ virtual bool vfunc_2C(Vec3p *param1);
|
||||
/* 30 */ virtual ~MapObject();
|
||||
/* 38 */
|
||||
|
||||
@@ -91,23 +147,24 @@ public:
|
||||
|
||||
MapObjectId GetMapObjectId();
|
||||
|
||||
void func_ov000_0209d0bc();
|
||||
void func_ov000_0209d114();
|
||||
void func_ov000_0209d12c();
|
||||
void func_ov000_0209d144();
|
||||
void func_ov000_0209d22c();
|
||||
void func_ov000_0209d274();
|
||||
bool func_ov000_0209d114();
|
||||
bool func_ov000_0209d12c();
|
||||
bool func_ov000_0209d144(Vec2s *param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_0209d274(unk32 param1);
|
||||
unk32 func_ov000_0209d29c(unk32 param1);
|
||||
void func_ov000_0209d2c4(unk32 param1, unk32 param2);
|
||||
void func_ov000_0209d2f0();
|
||||
void func_ov000_0209d3b4();
|
||||
void func_ov000_0209d434();
|
||||
void func_ov000_0209d518();
|
||||
void func_ov000_0209d54c();
|
||||
void func_ov000_0209d5c8();
|
||||
void func_ov000_0209d614();
|
||||
void func_ov000_0209d668();
|
||||
void func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2b *param3);
|
||||
void func_ov000_0209d3b4(unk32 param1, q20 size);
|
||||
void func_ov000_0209d434(s8 *param1, UnkStruct_ov019_020d24c8_28_258_00 *param2, unk32 param3);
|
||||
void func_ov000_0209d518(unk32 param1, unk32 param2, unk32 param3, u8 param4);
|
||||
void func_ov000_0209d54c(unk32 param1, u16 param2, Vec3p *param3, s16 param4, u16 param5);
|
||||
void func_ov000_0209d5c8(ActorRef ref);
|
||||
void func_ov000_0209d614(unk32 param1);
|
||||
bool func_ov000_0209d668();
|
||||
void func_ov000_0209d6ac(Vec3p *param1);
|
||||
|
||||
void func_ov031_02103878();
|
||||
|
||||
static void func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx);
|
||||
static void func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2);
|
||||
};
|
||||
|
||||
@@ -9,48 +9,7 @@
|
||||
#include "types.h"
|
||||
|
||||
class MapObject;
|
||||
|
||||
class MapObjectProfile_D4_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk8 mUnk_04;
|
||||
/* 05 */ unk8 mUnk_05;
|
||||
/* 06 */ unk8 mUnk_06;
|
||||
/* 07 */ unk8 mUnk_07;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */
|
||||
|
||||
MapObjectProfile_D4_Base(); // func_ov000_0207c018
|
||||
|
||||
// data_ov000_020b2854
|
||||
/* 00 */ virtual void vfunc_00(void) = 0;
|
||||
/* 04 */ virtual void vfunc_04(void) = 0;
|
||||
/* 08 */ virtual void vfunc_08(void) = 0;
|
||||
/* 0C */ virtual void vfunc_0C(void) = 0;
|
||||
/* 10 */ virtual void vfunc_10(void) = 0;
|
||||
/* 14 */ virtual void vfunc_14(void) = 0;
|
||||
/* 18 */ virtual void vfunc_18(void) = 0;
|
||||
/* 1C */ virtual void vfunc_1C(void) = 0;
|
||||
/* 20 */
|
||||
};
|
||||
|
||||
class MapObjectProfile_D4 : public MapObjectProfile_D4_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0C */
|
||||
|
||||
MapObjectProfile_D4() {}
|
||||
~MapObjectProfile_D4() {}
|
||||
|
||||
/* 00 */ virtual void vfunc_00(void);
|
||||
/* 04 */ virtual void vfunc_04(void);
|
||||
/* 08 */ virtual void vfunc_08(void);
|
||||
/* 0C */ virtual void vfunc_0C(void);
|
||||
/* 10 */ virtual void vfunc_10(void);
|
||||
/* 14 */ virtual void vfunc_14(void);
|
||||
/* 18 */ virtual void vfunc_18(void);
|
||||
/* 1C */ virtual void vfunc_1C(void);
|
||||
};
|
||||
class MapObject_20;
|
||||
|
||||
class MapObjectProfile : public SysObject {
|
||||
public:
|
||||
@@ -80,6 +39,8 @@ public:
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */
|
||||
|
||||
unk32 func_ov000_0209c8e4(MapObject_20 *param1);
|
||||
};
|
||||
|
||||
class MapObjectProfile_Derived2_20;
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
class MapObjectProfileSwitchStep_Base : public MapObjectProfile_Derived2 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* D4 */ MapObjectProfile_D4 mUnk_D4;
|
||||
/* D4 */ MapObject_10 mUnk_D4;
|
||||
|
||||
MapObjectProfileSwitchStep_Base(MapObjectId mapObjId) :
|
||||
MapObjectProfile_Derived2(mapObjId, mapObjId) {}
|
||||
|
||||
@@ -8,8 +8,12 @@ struct Cylinder {
|
||||
Vec3p pos;
|
||||
q20 size; // height and radius
|
||||
|
||||
inline Cylinder() {}
|
||||
inline Cylinder(q20 size) {
|
||||
Cylinder() {}
|
||||
Cylinder(q20 size) {
|
||||
this->Init(size);
|
||||
}
|
||||
|
||||
void Init(q20 size) {
|
||||
pos.x = 0;
|
||||
pos.y = size;
|
||||
pos.z = 0;
|
||||
@@ -17,7 +21,7 @@ struct Cylinder {
|
||||
this->size = size;
|
||||
}
|
||||
|
||||
inline void MakeEmpty() {
|
||||
void MakeEmpty() {
|
||||
pos = gVec3p_ZERO;
|
||||
size = -1;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ public:
|
||||
|
||||
/* 00 */ virtual bool vfunc_00(Vec3p *pPos, void *param2, void *param3);
|
||||
/* 04 */
|
||||
|
||||
unk32 func_ov000_02061a70();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0998 *data_027e0998;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e09b4 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_027e09b4();
|
||||
~UnkStruct_027e09b4();
|
||||
|
||||
void func_01fff60c(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5, unk32 param6);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09b4 *data_027e09b4;
|
||||
@@ -85,6 +85,14 @@ public:
|
||||
bool func_ov000_02080658(unk32 param1, UnkStruct_SceneChange1 *param2);
|
||||
void func_ov000_020808f4(void *param1, void *param2, unk32 param3);
|
||||
unk32 func_ov000_02080a44();
|
||||
void func_ov000_020801b0(Vec2b *param1, unk32 param2, unk32 param3);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_10 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
void func_01fff6d0(Vec3p *param1, s32 *param2, s32 *param3);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8 {
|
||||
@@ -92,12 +100,16 @@ public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 *mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0c */ UnkStruct_027e0cd8_0c *mUnk_0c;
|
||||
/* 10 */
|
||||
/* 0C */ UnkStruct_027e0cd8_0c *mUnk_0c;
|
||||
/* 10 */ UnkStruct_027e0cd8_10 *mUnk_10;
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x4C);
|
||||
/* 4C */
|
||||
|
||||
unk32 func_ov000_02081e30(unk32 param1, unk32 param2);
|
||||
void func_ov000_02081d7c(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_02081ecc(unk16 param1, unk32 param2);
|
||||
void func_ov000_02081eec(unk16 param1, unk32 param2, unk32 param3);
|
||||
bool func_ov000_02081f3c(unk16 param1, unk32 param2);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cd8 *data_027e0cd8;
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class MapObject_20;
|
||||
|
||||
class UnkStruct_ov000_020b5d34_00 {
|
||||
public:
|
||||
unk32 *mUnk_00;
|
||||
MapObject_20 *mUnk_04;
|
||||
Vec3p *mUnk_08;
|
||||
unk16 mUnk_0C;
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b5d34_0C {
|
||||
public:
|
||||
unk16 mUnk_00;
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b5d34 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_ov000_020b5d34_00 *mUnk_00;
|
||||
/* 04 */ MapObjectProfile *mpProfile;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
UnkStruct_ov000_020b5d34_0C *mUnk_0C;
|
||||
|
||||
UnkStruct_ov000_020b5d34();
|
||||
~UnkStruct_ov000_020b5d34();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b5d34 data_ov000_020b5d34;
|
||||
+1
-1
@@ -25,4 +25,4 @@
|
||||
#define GET_FLAGS_IMPL2(N, ...) GET_FLAGS_##N(__VA_ARGS__)
|
||||
#define GET_FLAGS_IMPL(N, ...) GET_FLAGS_IMPL2(N, __VA_ARGS__)
|
||||
#define GET_FLAGS(...) GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__)
|
||||
#define SET_FLAGS(arr, ...) (*(u32 *) arr = GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__))
|
||||
#define SET_FLAGS(arr, ...) (*(arr) = GET_FLAGS_IMPL(VA_NARGS(__VA_ARGS__), __VA_ARGS__))
|
||||
|
||||
@@ -97,10 +97,10 @@ ARM void ActorUnk_ov000_020a8bb0::func_ov000_020a8df0(ActorRef param1, unk32 par
|
||||
|
||||
if (this->mRef != param1) {
|
||||
this->vfunc_b4();
|
||||
this->mUnk_0bc = param1;
|
||||
this->mUnk_0c0.x = 0;
|
||||
this->mUnk_0c0.y = 0;
|
||||
this->mUnk_0c0.z = 0;
|
||||
*(u32 *) &this->mUnk_0bc = param1.Get32();
|
||||
this->mUnk_0c0.x = 0;
|
||||
this->mUnk_0c0.y = 0;
|
||||
this->mUnk_0c0.z = 0;
|
||||
this->mUnk_0b0 |= 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,314 @@
|
||||
#include "MapObject/MapObject.hpp"
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorManager.hpp"
|
||||
#include "Physics/Cylinder.hpp"
|
||||
#include "Unknown/UnkMemFuncs.h"
|
||||
#include "Unknown/UnkStruct_0204af1c.hpp"
|
||||
#include "Unknown/UnkStruct_027e0998.hpp"
|
||||
#include "Unknown/UnkStruct_027e09b4.hpp"
|
||||
#include "Unknown/UnkStruct_027e0cd8.hpp"
|
||||
#include "Unknown/UnkStruct_027e0ce0.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b5d34.hpp"
|
||||
|
||||
extern "C" void func_ov000_0209c7c8(void *);
|
||||
extern "C" void func_01ffb714(Vec3p *, Vec3p *, void *);
|
||||
extern "C" void func_01ffb9cc(Vec3p *, Vec3p *);
|
||||
extern "C" u16 func_01ffbbe0(q20 x, q20 z);
|
||||
extern "C" void func_01ffecdc(unk32 param1, Cylinder *param2);
|
||||
extern "C" bool func_01ffd768(unk32, void *, void *, unk8);
|
||||
|
||||
extern "C" void func_ov000_020973f4(void *, void *, u32, void *, int); //! TODO: solve oddity
|
||||
|
||||
struct UnkStruct {
|
||||
u32 *mUnk_00;
|
||||
MapObject_20 *mUnk_04;
|
||||
Vec3p *mUnk_08;
|
||||
};
|
||||
|
||||
// https://decomp.me/scratch/4do9S
|
||||
ARM MapObject::MapObject() {
|
||||
this->mUnk_10 = NULL;
|
||||
this->mUnk_16 = -1;
|
||||
this->mFlags[0] = 0;
|
||||
func_ov000_0209c7c8(&this->mUnk_20);
|
||||
*(u32 *) &this->mUnk_38 = 0;
|
||||
|
||||
UnkStruct_ov000_020b5d34 *ptr1 = &data_ov000_020b5d34;
|
||||
this->mpProfile = ptr1->mpProfile;
|
||||
|
||||
UnkStruct *ptr2 = (UnkStruct *) ptr1->mUnk_00;
|
||||
|
||||
*(u32 *) &this->mUnk_38 = *ptr2->mUnk_00;
|
||||
|
||||
Vec3p *ptr = ptr2->mUnk_08;
|
||||
this->mPos.x = ptr->x;
|
||||
this->mPos.y = ptr->y;
|
||||
this->mPos.z = ptr->z;
|
||||
|
||||
this->mUnk_14 = ptr1->mUnk_0C->mUnk_00;
|
||||
_MI_CpuCopy(ptr2->mUnk_04, &this->mUnk_20, sizeof(MapObject_20));
|
||||
|
||||
for (int i = 0; i < ARRAY_LEN(this->mUnk_18); i++) {
|
||||
this->mUnk_18[i] = 0;
|
||||
}
|
||||
|
||||
SET_FLAGS(this->mFlags, MapObjFlag_Alive, MapObjFlag_1, MapObjFlag_2);
|
||||
}
|
||||
|
||||
ARM MapObject::~MapObject() {}
|
||||
|
||||
ARM bool MapObject::vfunc_00() {
|
||||
return true;
|
||||
}
|
||||
|
||||
ARM bool MapObject::vfunc_04() {}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx) {
|
||||
Vec3p pos;
|
||||
Vec2p out;
|
||||
|
||||
UnkStruct_027e0cd8_10 *t = data_027e0cd8->mUnk_10;
|
||||
pos.coords = thisx->mPos.coords;
|
||||
t->func_01fff6d0(&pos, (q20 *) &out.y, (q20 *) &out.x);
|
||||
|
||||
Vec2p temp;
|
||||
temp.y = out.x;
|
||||
temp.x = out.y;
|
||||
param1->x = temp.x;
|
||||
param1->y = temp.y;
|
||||
}
|
||||
|
||||
ARM bool MapObject::func_ov000_0209d114() {
|
||||
bool result[2];
|
||||
MapObject::func_ov000_0209d0bc((Vec2b *) &result, this);
|
||||
return result[0];
|
||||
}
|
||||
|
||||
ARM bool MapObject::func_ov000_0209d12c() {
|
||||
bool result[2];
|
||||
MapObject::func_ov000_0209d0bc((Vec2b *) &result, this);
|
||||
return result[1];
|
||||
}
|
||||
|
||||
ARM bool MapObject::func_ov000_0209d144(Vec2s *param1, unk32 param2, unk32 param3) {
|
||||
if (this->mUnk_10 != NULL) {
|
||||
u32 stack[5];
|
||||
|
||||
stack[3] = 0;
|
||||
stack[0] = 0;
|
||||
stack[1] = 0;
|
||||
stack[2] = 0;
|
||||
|
||||
this->vfunc_2C((Vec3p *) &stack);
|
||||
unk8 value = this->mpProfile->mUnk_04[param2];
|
||||
Vec2s stack2;
|
||||
|
||||
stack2.x = param1->x;
|
||||
stack2.y = param1->y;
|
||||
|
||||
return func_01ffd768(param3, &stack, &stack2, value);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
ARM bool MapObject::vfunc_1C() {
|
||||
return true;
|
||||
}
|
||||
|
||||
ARM void MapObject::vfunc_20() {}
|
||||
|
||||
ARM void MapObject::vfunc_24() {
|
||||
*(u32 *) this = 0; // ????
|
||||
}
|
||||
|
||||
ARM bool MapObject::vfunc_28() {
|
||||
return false;
|
||||
}
|
||||
|
||||
ARM bool MapObject::vfunc_2C(Vec3p *param1) {
|
||||
if (this->mUnk_10 != NULL) {
|
||||
this->mUnk_10->vfunc_18(param1);
|
||||
Vec3p_Add(param1, &this->mPos, param1);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2) {
|
||||
Vec3p local_18;
|
||||
func_01ffb714(data_027e0ce0->func_01fff148(param2), &thisx->mPos, &local_18);
|
||||
*param1 = func_01ffbbe0(local_18.x, local_18.z);
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d274(unk32 param1) {
|
||||
func_01ffb9cc(&this->mPos, data_027e0ce0->func_01fff148(param1));
|
||||
}
|
||||
|
||||
ARM unk32 MapObject::func_ov000_0209d29c(unk32 param1) {
|
||||
data_027e0cd8->func_ov000_02081e30(this->mUnk_20.mUnk_0A[param1], this->mUnk_20.mUnk_08[param1]);
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d2c4(unk32 param1, unk32 param2) {
|
||||
data_027e0cd8->func_ov000_02081d7c(this->mUnk_20.mUnk_0A[param1], this->mUnk_20.mUnk_08[param1], param2);
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2b *param3) {
|
||||
UnkStruct_027e0cd8_0c *temp_r5 = data_027e0cd8->mUnk_0c;
|
||||
Vec2b sp0(0, 0);
|
||||
|
||||
sp0.x = this->mUnk_3A.x;
|
||||
|
||||
s32 tempX = param3->x;
|
||||
tempX += this->mUnk_3A.x;
|
||||
|
||||
if (this->mUnk_3A.x < tempX) {
|
||||
do {
|
||||
sp0.y = this->mUnk_3A.y;
|
||||
|
||||
s32 tempY = param3->y;
|
||||
tempY += this->mUnk_3A.y;
|
||||
|
||||
if (this->mUnk_3A.y < tempY) {
|
||||
do {
|
||||
temp_r5->func_ov000_020801b0(&sp0, param1, param2);
|
||||
} while (++sp0.y < param3->y + this->mUnk_3A.y);
|
||||
}
|
||||
} while (++sp0.x < param3->x + this->mUnk_3A.x);
|
||||
}
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d3b4(unk32 param1, q20 size) {
|
||||
Cylinder spC;
|
||||
|
||||
if (this->mUnk_10 != NULL) {
|
||||
this->mUnk_10->vfunc_10(&spC);
|
||||
} else {
|
||||
spC.Init(FLOAT_TO_Q20(0.5f));
|
||||
}
|
||||
|
||||
Vec3p_Add(&spC.pos, &this->mPos, &spC.pos);
|
||||
spC.size += size;
|
||||
|
||||
func_01ffecdc(param1, &spC);
|
||||
}
|
||||
|
||||
struct stack_struct {
|
||||
/* 00 */ unk16 mUnk_00;
|
||||
/* 02 */ unk16 mUnk_02;
|
||||
/* 04 */ unk8 mUnk_04;
|
||||
/* 05 */ unk8 mUnk_05;
|
||||
/* 06 */ u16 mUnk_06;
|
||||
/* 08 */
|
||||
};
|
||||
|
||||
ARM void MapObject::func_ov000_0209d434(s8 *param1, UnkStruct_ov019_020d24c8_28_258_00 *param2, unk32 param3) {
|
||||
unk32 sp10;
|
||||
stack_struct spC;
|
||||
s32 var_r2;
|
||||
|
||||
if (!GET_FLAG(this->mFlags, MapObjFlag_5)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (param2->mUnk_04 & 1) {
|
||||
var_r2 = 1;
|
||||
} else {
|
||||
var_r2 = 0;
|
||||
}
|
||||
|
||||
if (param1[0] != var_r2 && param1[1] != var_r2) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (data_027e0998->vfunc_00(&this->mPos, &sp10, &this->mUnk_38)) {
|
||||
spC.mUnk_06 = 0x00;
|
||||
MI_CpuFill32(0, &spC, sizeof(spC));
|
||||
spC.mUnk_05 = -1;
|
||||
*(unk32 *) &spC.mUnk_00 = data_027e0998->func_ov000_02061a70();
|
||||
spC.mUnk_06 |= 0x01;
|
||||
data_0204af1c.func_0201aa44(param2, &sp10, param3, &spC);
|
||||
}
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d518(unk32 param1, unk32 param2, unk32 param3, u8 param4) {
|
||||
data_027e09b4->func_01fff60c(param1, param2, param3, param4, 0, 0);
|
||||
}
|
||||
|
||||
struct TempStruct {
|
||||
Vec3p pos;
|
||||
u16 param_r2;
|
||||
s16 extra_s16;
|
||||
u16 extra_u16;
|
||||
STRUCT_PAD(0x16, 0x28);
|
||||
unk32 mUnk_28;
|
||||
void func_ov000_020975f8();
|
||||
};
|
||||
|
||||
// non-matching
|
||||
ARM void MapObject::func_ov000_0209d54c(unk32 param1, u16 param2, Vec3p *param3, s16 param4, u16 param5) {
|
||||
TempStruct local_4c;
|
||||
local_4c.mUnk_28 = 0;
|
||||
local_4c.func_ov000_020975f8();
|
||||
local_4c.pos.x = param3->x;
|
||||
local_4c.pos.y = param3->y;
|
||||
local_4c.pos.z = param3->z;
|
||||
local_4c.param_r2 = param2;
|
||||
local_4c.extra_s16 = param4;
|
||||
local_4c.extra_u16 = param5;
|
||||
func_ov000_020973f4(this, &data_ov000_020b539c, ActorId_EventIcon, &local_4c, 0);
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d5c8(ActorRef ref) {
|
||||
if (ref.index != 0) {
|
||||
Actor *pActor = gpActorManager->func_01fff3b4(ref.Get32());
|
||||
|
||||
if (pActor != NULL) {
|
||||
UNSET_FLAG(pActor->mFlags, ActorFlag_Alive);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d614(unk32 param1) {
|
||||
if (this->mUnk_20.mUnk_14 < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this->mpProfile->mUnk_0E == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
UnkStruct_027e0cd8 *pUVar1 = data_027e0cd8;
|
||||
unk32 uVar2 = this->mpProfile->func_ov000_0209c8e4(&this->mUnk_20);
|
||||
pUVar1->func_ov000_02081eec(this->mUnk_20.mUnk_14, uVar2, param1);
|
||||
}
|
||||
|
||||
ARM bool MapObject::func_ov000_0209d668() {
|
||||
if (this->mpProfile->mUnk_0E == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
UnkStruct_027e0cd8 *pUVar1 = data_027e0cd8;
|
||||
unk32 uVar2 = this->mpProfile->func_ov000_0209c8e4(&this->mUnk_20);
|
||||
return pUVar1->func_ov000_02081f3c(this->mUnk_20.mUnk_14, uVar2);
|
||||
}
|
||||
|
||||
ARM void MapObject::func_ov000_0209d6ac(Vec3p *param1) {
|
||||
if (this->mUnk_10 == NULL) {
|
||||
volatile Vec3p *tempPos = &this->mPos;
|
||||
Vec3p pos;
|
||||
|
||||
pos.x = tempPos->x;
|
||||
pos.y = tempPos->y;
|
||||
pos.z = tempPos->z;
|
||||
|
||||
param1->x = pos.x;
|
||||
param1->y = pos.y;
|
||||
param1->z = pos.z;
|
||||
return;
|
||||
}
|
||||
|
||||
this->mUnk_10->vfunc_1C(param1);
|
||||
Vec3p_Add(param1, &this->mPos, param1);
|
||||
}
|
||||
@@ -37,11 +37,12 @@ ARM MapObjectMiniBlocks::MapObjectMiniBlocks() :
|
||||
}
|
||||
|
||||
ARM bool MapObjectMiniBlocks::vfunc_00(void) {
|
||||
GET_PROFILE(MapObjectProfileMiniBlocks)->func_ov000_0209ccd8(this->mUnk_22, data_ov000_020af574[this->mUnk_22]);
|
||||
GET_PROFILE(MapObjectProfileMiniBlocks)
|
||||
->func_ov000_0209ccd8(this->mUnk_20.mUnk_02, data_ov000_020af574[this->mUnk_20.mUnk_02]);
|
||||
UnkStruct_027e0cd8_0c *pUnkStruct_027e0cd8_0c = data_027e0cd8->mUnk_0c;
|
||||
u8 uVar6;
|
||||
|
||||
if (this->mUnk_22 != MiniBlocksVariant_BLKF) {
|
||||
if (this->mUnk_20.mUnk_02 != MiniBlocksVariant_BLKF) {
|
||||
Vec2b vec(this->mUnk_3A.x, this->mUnk_3A.y);
|
||||
this->mPos.y = pUnkStruct_027e0cd8_0c->func_01ffedf4(&vec);
|
||||
}
|
||||
@@ -49,7 +50,7 @@ ARM bool MapObjectMiniBlocks::vfunc_00(void) {
|
||||
Vec3p vec(FLOAT_TO_Q20(0.0f), FLOAT_TO_Q20(0.0f), FLOAT_TO_Q20(0.0f));
|
||||
uVar6 = 0;
|
||||
|
||||
switch (this->mUnk_20) {
|
||||
switch (this->mUnk_20.mUnk_00) {
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
@@ -63,7 +64,7 @@ ARM bool MapObjectMiniBlocks::vfunc_00(void) {
|
||||
uVar6 = 2;
|
||||
break;
|
||||
default:
|
||||
if (this->mUnk_22 == MiniBlocksVariant_BLKF) {
|
||||
if (this->mUnk_20.mUnk_02 == MiniBlocksVariant_BLKF) {
|
||||
vec.x = FLOAT_TO_Q20(0.0f);
|
||||
vec.y = FLOAT_TO_Q20(0.0f);
|
||||
vec.z = -FLOAT_TO_Q20(0.375f);
|
||||
@@ -75,7 +76,8 @@ ARM bool MapObjectMiniBlocks::vfunc_00(void) {
|
||||
break;
|
||||
}
|
||||
|
||||
MapObjectProfile_Derived2_20_Base_50 *ptr = GET_PROFILE(MapObjectProfileMiniBlocks)->vfunc_1C(this->mUnk_22)->mUnk_50;
|
||||
MapObjectProfile_Derived2_20_Base_50 *ptr =
|
||||
GET_PROFILE(MapObjectProfileMiniBlocks)->vfunc_1C(this->mUnk_20.mUnk_02)->mUnk_50;
|
||||
void *var_r1;
|
||||
if (ptr != NULL) {
|
||||
u16 *temp_r1 = (u16 *) ((u8 *) ptr + 8);
|
||||
@@ -102,7 +104,7 @@ next:
|
||||
|
||||
unk32 var_r0_2;
|
||||
unk32 var_r0;
|
||||
switch (this->mUnk_20) {
|
||||
switch (this->mUnk_20.mUnk_00) {
|
||||
case 1:
|
||||
case 6:
|
||||
case 8:
|
||||
|
||||
@@ -121,7 +121,7 @@ end:
|
||||
}
|
||||
|
||||
ARM MapObjectSwitchStep::~MapObjectSwitchStep() {
|
||||
if (this->mUnk_20 == 2) {
|
||||
if (this->mUnk_20.mUnk_00 == 2) {
|
||||
this->func_ov000_0209e11c(0, 1);
|
||||
this->func_ov000_0209d2c4(0, 0);
|
||||
}
|
||||
@@ -129,10 +129,10 @@ ARM MapObjectSwitchStep::~MapObjectSwitchStep() {
|
||||
|
||||
ARM bool MapObjectSwitchStep::vfunc_00(void) {
|
||||
SET_FLAG(this->mFlags, MapObjFlag_9);
|
||||
this->mUnk_18 = 1;
|
||||
this->mUnk_18[0] = 1;
|
||||
|
||||
SET_FLAG(this->mFlags, MapObjFlag_10);
|
||||
this->mUnk_19 = 1;
|
||||
this->mUnk_18[1] = 1;
|
||||
|
||||
if (this->func_ov000_0209d29c(0)) {
|
||||
this->func_ov000_0209e11c(2, 1);
|
||||
@@ -182,8 +182,8 @@ ARM void MapObjectSwitchStep::func_ov000_0209e11c(unk32 param1, unk32 param2) {
|
||||
this->mUnk_EA = 1;
|
||||
}
|
||||
|
||||
if (this->mUnk_20 == 2) {
|
||||
this->mUnk_E6 = this->mUnk_22;
|
||||
if (this->mUnk_20.mUnk_00 == 2) {
|
||||
this->mUnk_E6 = this->mUnk_20.mUnk_02;
|
||||
this->mUnk_E4 = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -155,6 +155,7 @@ config.libs = [
|
||||
Object("000_Second/Actor/ActorEventIcon.cpp"),
|
||||
Object("000_Second/Actor/ActorUnkSWOB.cpp"),
|
||||
Object("000_Second/Actor/ActorUnkSWTM.cpp"),
|
||||
Object("000_Second/MapObject/MapObject.cpp"),
|
||||
Object("000_Second/MapObject/MapObjectSwitchStep.cpp"),
|
||||
Object("000_Second/MapObject/MapObjectMiniBlocks.cpp"),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user