diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index f25bc17d..1d85fb2d 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -941,18 +941,18 @@ func_ov000_0208f9ec kind:function(arm,size=0x4) addr:0x208f9ec func_ov000_0208f9f0 kind:function(arm,size=0x1c) addr:0x208f9f0 func_ov000_0208fa0c kind:function(arm,size=0x5c) addr:0x208fa0c func_ov000_0208fa68 kind:function(arm,size=0x8) addr:0x208fa68 -func_ov000_0208fa70 kind:function(arm,size=0x78) addr:0x208fa70 -func_ov000_0208fae8 kind:function(arm,size=0x24) addr:0x208fae8 -func_ov000_0208fb0c kind:function(arm,size=0x34) addr:0x208fb0c -func_ov000_0208fb40 kind:function(arm,size=0xbc) addr:0x208fb40 -func_ov000_0208fbfc kind:function(arm,size=0x14) addr:0x208fbfc -func_ov000_0208fc10 kind:function(arm,size=0x6c) addr:0x208fc10 -func_ov000_0208fc7c kind:function(arm,size=0x38) addr:0x208fc7c -func_ov000_0208fcb4 kind:function(arm,size=0x244) addr:0x208fcb4 -func_ov000_0208fef8 kind:function(arm,size=0x434) addr:0x208fef8 -func_ov000_0209032c kind:function(arm,size=0x4c) addr:0x209032c -func_ov000_02090378 kind:function(arm,size=0x14) addr:0x2090378 -func_ov000_0209038c kind:function(arm,size=0x1c) addr:0x209038c +_ZN17ActorSwitchObject6CreateEv kind:function(arm,size=0x78) addr:0x208fa70 +_ZN17ActorSwitchObject8vfunc_08Ev kind:function(arm,size=0x24) addr:0x208fae8 +_ZN17ActorSwitchObject8vfunc_0cEv kind:function(arm,size=0x34) addr:0x208fb0c +_ZN17ActorSwitchObject8vfunc_14Ej kind:function(arm,size=0xbc) addr:0x208fb40 +_ZN17ActorSwitchObject8vfunc_18Ej kind:function(arm,size=0x14) addr:0x208fbfc +_ZN17ActorSwitchObject19func_ov000_0208fc10Ei kind:function(arm,size=0x6c) addr:0x208fc10 +_ZN17ActorSwitchObject19func_ov000_0208fc7cEv kind:function(arm,size=0x38) addr:0x208fc7c +_ZN17ActorSwitchObject19func_ov000_0208fcb4Ev kind:function(arm,size=0x244) addr:0x208fcb4 +_ZN17ActorSwitchObject19func_ov000_0208fef8Ev kind:function(arm,size=0x434) addr:0x208fef8 +_ZN17ActorSwitchObject19func_ov000_0209032cEv kind:function(arm,size=0x4c) addr:0x209032c +_ZN17ActorSwitchObjectD1Ev kind:function(arm,size=0x14) addr:0x2090378 +_ZN17ActorSwitchObjectD0Ev kind:function(arm,size=0x1c) addr:0x209038c func_ov000_020903a8 kind:function(arm,size=0x40) addr:0x20903a8 func_ov000_020903e8 kind:function(arm,size=0x1c) addr:0x20903e8 func_ov000_02090404 kind:function(arm,size=0x88) addr:0x2090404 @@ -3938,7 +3938,7 @@ func_ov000_020df4a4 kind:function(arm,size=0x14) addr:0x20df4a4 func_ov000_020df4b8 kind:function(arm,size=0x14) addr:0x20df4b8 func_ov000_020df4cc kind:function(arm,size=0x174) addr:0x20df4cc func_ov000_020df640 kind:function(arm,size=0x38) addr:0x20df640 -func_ov000_020df678 kind:function(arm,size=0x40) addr:0x20df678 +__sinit_ActorSwitchObject.cpp kind:function(arm,size=0x40) addr:0x20df678 func_ov000_020df6b8 kind:function(arm,size=0x40) addr:0x20df6b8 func_ov000_020df6f8 kind:function(arm,size=0x40) addr:0x20df6f8 func_ov000_020df738 kind:function(arm,size=0x38) addr:0x20df738 @@ -4064,7 +4064,7 @@ data_ov000_020e2748 kind:data(any) addr:0x20e2748 data_ov000_020e27dc kind:data(any) addr:0x20e27dc data_ov000_020e2870 kind:data(any) addr:0x20e2870 data_ov000_020e289c kind:data(any) addr:0x20e289c -data_ov000_020e2930 kind:data(any) addr:0x20e2930 +_ZTV17ActorSwitchObject kind:data(any) addr:0x20e2930 data_ov000_020e29ec kind:data(any) addr:0x20e29ec data_ov000_020e2aa8 kind:data(any) addr:0x20e2aa8 data_ov000_020e2b64 kind:data(any) addr:0x20e2b64 @@ -5844,7 +5844,7 @@ data_ov000_020ec9d8 kind:bss addr:0x20ec9d8 data_ov000_020ecd50 kind:bss addr:0x20ecd50 data_ov000_020ecd58 kind:bss addr:0x20ecd58 data_ov000_020ecd64 kind:bss addr:0x20ecd64 -data_ov000_020ecd70 kind:bss addr:0x20ecd70 +_ZN17ActorSwitchObject5gTypeE kind:bss addr:0x20ecd70 data_ov000_020ecd84 kind:bss addr:0x20ecd84 data_ov000_020ecd90 kind:bss addr:0x20ecd90 data_ov000_020ecda4 kind:bss addr:0x20ecda4 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 30c0205c..5355eccb 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -941,18 +941,18 @@ func_ov000_0208f9ec kind:function(arm,size=0x4) addr:0x208f98c func_ov000_0208f9f0 kind:function(arm,size=0x1c) addr:0x208f990 func_ov000_0208fa0c kind:function(arm,size=0x5c) addr:0x208f9ac func_ov000_0208fa68 kind:function(arm,size=0x8) addr:0x208fa08 -func_ov000_0208fa70 kind:function(arm,size=0x78) addr:0x208fa10 -func_ov000_0208fae8 kind:function(arm,size=0x24) addr:0x208fa88 -func_ov000_0208fb0c kind:function(arm,size=0x34) addr:0x208faac -func_ov000_0208fb40 kind:function(arm,size=0xbc) addr:0x208fae0 -func_ov000_0208fbfc kind:function(arm,size=0x14) addr:0x208fb9c -func_ov000_0208fc10 kind:function(arm,size=0x6c) addr:0x208fbb0 -func_ov000_0208fc7c kind:function(arm,size=0x38) addr:0x208fc1c -func_ov000_0208fcb4 kind:function(arm,size=0x244) addr:0x208fc54 -func_ov000_0208fef8 kind:function(arm,size=0x434) addr:0x208fe98 -func_ov000_0209032c kind:function(arm,size=0x4c) addr:0x20902cc -func_ov000_02090378 kind:function(arm,size=0x14) addr:0x2090318 -func_ov000_0209038c kind:function(arm,size=0x1c) addr:0x209032c +_ZN17ActorSwitchObject6CreateEv kind:function(arm,size=0x78) addr:0x208fa10 +_ZN17ActorSwitchObject8vfunc_08Ev kind:function(arm,size=0x24) addr:0x208fa88 +_ZN17ActorSwitchObject8vfunc_0cEv kind:function(arm,size=0x34) addr:0x208faac +_ZN17ActorSwitchObject8vfunc_14Ej kind:function(arm,size=0xbc) addr:0x208fae0 +_ZN17ActorSwitchObject8vfunc_18Ej kind:function(arm,size=0x14) addr:0x208fb9c +_ZN17ActorSwitchObject19func_ov000_0208fc10Ei kind:function(arm,size=0x6c) addr:0x208fbb0 +_ZN17ActorSwitchObject19func_ov000_0208fc7cEv kind:function(arm,size=0x38) addr:0x208fc1c +_ZN17ActorSwitchObject19func_ov000_0208fcb4Ev kind:function(arm,size=0x244) addr:0x208fc54 +_ZN17ActorSwitchObject19func_ov000_0208fef8Ev kind:function(arm,size=0x434) addr:0x208fe98 +_ZN17ActorSwitchObject19func_ov000_0209032cEv kind:function(arm,size=0x4c) addr:0x20902cc +_ZN17ActorSwitchObjectD1Ev kind:function(arm,size=0x14) addr:0x2090318 +_ZN17ActorSwitchObjectD0Ev kind:function(arm,size=0x1c) addr:0x209032c func_ov000_020903a8 kind:function(arm,size=0x40) addr:0x2090348 func_ov000_020903e8 kind:function(arm,size=0x1c) addr:0x2090388 func_ov000_02090404 kind:function(arm,size=0x88) addr:0x20903a4 @@ -3938,7 +3938,7 @@ func_ov000_020df4a4 kind:function(arm,size=0x14) addr:0x20df444 func_ov000_020df4b8 kind:function(arm,size=0x14) addr:0x20df458 func_ov000_020df4cc kind:function(arm,size=0x174) addr:0x20df46c func_ov000_020df640 kind:function(arm,size=0x38) addr:0x20df5e0 -func_ov000_020df678 kind:function(arm,size=0x40) addr:0x20df618 +__sinit_ActorSwitchObject.cpp kind:function(arm,size=0x40) addr:0x20df618 func_ov000_020df6b8 kind:function(arm,size=0x40) addr:0x20df658 func_ov000_020df6f8 kind:function(arm,size=0x40) addr:0x20df698 func_ov000_020df738 kind:function(arm,size=0x38) addr:0x20df6d8 @@ -4064,7 +4064,7 @@ data_ov000_020e2748 kind:data(any) addr:0x20e26e8 data_ov000_020e27dc kind:data(any) addr:0x20e277c data_ov000_020e2870 kind:data(any) addr:0x20e2810 data_ov000_020e289c kind:data(any) addr:0x20e283c -data_ov000_020e2930 kind:data(any) addr:0x20e28d0 +_ZTV17ActorSwitchObject kind:data(any) addr:0x20e28d0 data_ov000_020e29ec kind:data(any) addr:0x20e298c data_ov000_020e2aa8 kind:data(any) addr:0x20e2a48 data_ov000_020e2b64 kind:data(any) addr:0x20e2b04 @@ -5844,7 +5844,7 @@ data_ov000_020ec9d8 kind:bss addr:0x20ec978 data_ov000_020ecd50 kind:bss addr:0x20eccf0 data_ov000_020ecd58 kind:bss addr:0x20eccf8 data_ov000_020ecd64 kind:bss addr:0x20ecd04 -data_ov000_020ecd70 kind:bss addr:0x20ecd10 +_ZN17ActorSwitchObject5gTypeE kind:bss addr:0x20ecd10 data_ov000_020ecd84 kind:bss addr:0x20ecd24 data_ov000_020ecd90 kind:bss addr:0x20ecd30 data_ov000_020ecda4 kind:bss addr:0x20ecd44 diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp index eeace571..5ef03f2c 100644 --- a/include/Actor/ActorRef.hpp +++ b/include/Actor/ActorRef.hpp @@ -8,7 +8,9 @@ struct ActorRef { /* 4 */ s32 index; /* 8 */ - inline ActorRef() {} + inline ActorRef() { + Reset(); + } inline ActorRef(s32 id, s32 index) : id(id), index(index) {} diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp index 4adc3a7a..dda4da70 100644 --- a/include/Actor/ActorType.hpp +++ b/include/Actor/ActorType.hpp @@ -3,127 +3,86 @@ #include "global.h" #include "types.h" -#define __ACTOR_TYPE_A 'A' -#define __ACTOR_TYPE_B 'B' -#define __ACTOR_TYPE_C 'C' -#define __ACTOR_TYPE_D 'D' -#define __ACTOR_TYPE_E 'E' -#define __ACTOR_TYPE_F 'F' -#define __ACTOR_TYPE_G 'G' -#define __ACTOR_TYPE_H 'H' -#define __ACTOR_TYPE_I 'I' -#define __ACTOR_TYPE_J 'J' -#define __ACTOR_TYPE_K 'K' -#define __ACTOR_TYPE_L 'L' -#define __ACTOR_TYPE_M 'M' -#define __ACTOR_TYPE_N 'N' -#define __ACTOR_TYPE_O 'O' -#define __ACTOR_TYPE_P 'P' -#define __ACTOR_TYPE_Q 'Q' -#define __ACTOR_TYPE_R 'R' -#define __ACTOR_TYPE_S 'S' -#define __ACTOR_TYPE_T 'T' -#define __ACTOR_TYPE_U 'U' -#define __ACTOR_TYPE_V 'V' -#define __ACTOR_TYPE_W 'W' -#define __ACTOR_TYPE_X 'X' -#define __ACTOR_TYPE_Y 'Y' -#define __ACTOR_TYPE_Z 'Z' -#define __ACTOR_TYPE_0 '0' -#define __ACTOR_TYPE_1 '1' -#define __ACTOR_TYPE_2 '2' -#define __ACTOR_TYPE_3 '3' -#define __ACTOR_TYPE_4 '4' -#define __ACTOR_TYPE_5 '5' -#define __ACTOR_TYPE_6 '6' -#define __ACTOR_TYPE_7 '7' -#define __ACTOR_TYPE_8 '8' -#define __ACTOR_TYPE_9 '9' -#define __CONCAT(a, b) a##b -#define __EVAL(x) x -#define __ACTOR_TYPE_ID(a, b, c, d) \ - ((__EVAL(__CONCAT(__ACTOR_TYPE_, a)) << 24) | (__EVAL(__CONCAT(__ACTOR_TYPE_, b)) << 16) | \ - (__EVAL(__CONCAT(__ACTOR_TYPE_, c)) << 8) | (__EVAL(__CONCAT(__ACTOR_TYPE_, d)))) - typedef u32 ActorTypeId; enum ActorTypeId_ { - ActorTypeId_Null = __ACTOR_TYPE_ID(N, U, L, L), + ActorTypeId_Null = 'NULL', - ActorTypeId_Navi = __ACTOR_TYPE_ID(N, A, V, I), - ActorTypeId_ForceNavi = __ACTOR_TYPE_ID(F, C, N, V), - ActorTypeId_WisdomNavi = __ACTOR_TYPE_ID(W, S, N, V), + ActorTypeId_Navi = 'NAVI', + ActorTypeId_ForceNavi = 'FCNV', + ActorTypeId_WisdomNavi = 'WSNV', - ActorTypeId_TreasureMap = __ACTOR_TYPE_ID(T, M, A, P), - ActorTypeId_DigSpot = __ACTOR_TYPE_ID(D, G, T, G), + ActorTypeId_TreasureMap = 'TMAP', + ActorTypeId_DigSpot = 'DGTG', - ActorTypeId_ShopItemBombchus = __ACTOR_TYPE_ID(I, T, B, T), - ActorTypeId_ShopItemBombs = __ACTOR_TYPE_ID(I, T, B, M), - ActorTypeId_ShopItemTreasure = __ACTOR_TYPE_ID(I, T, T, R), - ActorTypeId_ShopItemHeartContainer = __ACTOR_TYPE_ID(I, T, H, U), - ActorTypeId_ShopItemQuiver = __ACTOR_TYPE_ID(I, T, A, P), - ActorTypeId_ShopItemBombBag = __ACTOR_TYPE_ID(I, T, B, B), - ActorTypeId_ShopItemRedPotion = __ACTOR_TYPE_ID(I, T, P, B), - ActorTypeId_ShopItemCourageGem = __ACTOR_TYPE_ID(I, T, S, R), - ActorTypeId_ShopItemShield = __ACTOR_TYPE_ID(I, T, S, L), - ActorTypeId_ShopItemSoldOut = __ACTOR_TYPE_ID(I, T, S, O), + ActorTypeId_ShopItemBombchus = 'ITBT', + ActorTypeId_ShopItemBombs = 'ITBM', + ActorTypeId_ShopItemTreasure = 'ITTR', + ActorTypeId_ShopItemHeartContainer = 'ITHU', + ActorTypeId_ShopItemQuiver = 'ITAP', + ActorTypeId_ShopItemBombBag = 'ITBB', + ActorTypeId_ShopItemRedPotion = 'ITPB', + ActorTypeId_ShopItemCourageGem = 'ITSR', + ActorTypeId_ShopItemShield = 'ITSL', + ActorTypeId_ShopItemSoldOut = 'ITSO', - ActorTypeId_Heart = __ACTOR_TYPE_ID(H, A, R, T), - ActorTypeId_Rupee = __ACTOR_TYPE_ID(R, U, P, Y), + ActorTypeId_Heart = 'HART', + ActorTypeId_Rupee = 'RUPY', - ActorTypeId_Bomb = __ACTOR_TYPE_ID(B, O, M, B), - ActorTypeId_Arrow = __ACTOR_TYPE_ID(A, R, R, W), + ActorTypeId_Bomb = 'BOMB', + ActorTypeId_Arrow = 'ARRW', - ActorTypeId_PlayerDummy = __ACTOR_TYPE_ID(P, L, D, M), - ActorTypeId_PushBlock = __ACTOR_TYPE_ID(P, S, B, L), - ActorTypeId_WindBlock = __ACTOR_TYPE_ID(W, B, L, K), - ActorTypeId_StorageDrum = __ACTOR_TYPE_ID(D, R, U, M), + ActorTypeId_PlayerDummy = 'PLDM', + ActorTypeId_PushBlock = 'PSBL', + ActorTypeId_WindBlock = 'WBLK', + ActorTypeId_StorageDrum = 'DRUM', - ActorTypeId_SmallKey = __ACTOR_TYPE_ID(N, K, E, Y), + ActorTypeId_SmallKey = 'NKEY', + ActorTypeId_SwitchObject = 'SWOB', - ActorTypeId_Sandworm = __ACTOR_TYPE_ID(M, L, D, W), - ActorTypeId_Tektite = __ACTOR_TYPE_ID(T, E, K, T), - ActorTypeId_PolsVoice = __ACTOR_TYPE_ID(P, L, S, V), - ActorTypeId_Yook = __ACTOR_TYPE_ID(Y, E, T, I), - ActorTypeId_Armos = __ACTOR_TYPE_ID(A, M, O, S), - ActorTypeId_Stalfos = __ACTOR_TYPE_ID(S, T, L, F), - ActorTypeId_StalfosWarrior = __ACTOR_TYPE_ID(S, T, L, W), - ActorTypeId_ChuChu = __ACTOR_TYPE_ID(C, H, U, C), - ActorTypeId_Gel = __ACTOR_TYPE_ID(G, E, L, L), - ActorTypeId_Bee = __ACTOR_TYPE_ID(B, E, E, 0), - ActorTypeId_BeeHive = __ACTOR_TYPE_ID(B, E, E, H), - ActorTypeId_Cucco = __ACTOR_TYPE_ID(K, O, K, O), - ActorTypeId_Rope = __ACTOR_TYPE_ID(S, N, A, K), - ActorTypeId_Octorok = __ACTOR_TYPE_ID(O, C, T, A), - ActorTypeId_Keese = __ACTOR_TYPE_ID(K, E, T, H), - ActorTypeId_Rat = __ACTOR_TYPE_ID(R, A, T, 0), - ActorTypeId_Beamos = __ACTOR_TYPE_ID(B, M, O, S), - ActorTypeId_LikeLike = __ACTOR_TYPE_ID(L, K, L, K), - ActorTypeId_Crow = __ACTOR_TYPE_ID(C, R, O, W), + ActorTypeId_Sandworm = 'MLDW', + ActorTypeId_Tektite = 'TEKT', + ActorTypeId_PolsVoice = 'PLSV', + ActorTypeId_Yook = 'YETI', + ActorTypeId_Armos = 'AMOS', + ActorTypeId_Stalfos = 'STLF', + ActorTypeId_StalfosWarrior = 'STLW', + ActorTypeId_ChuChu = 'CHUC', + ActorTypeId_Gel = 'GELL', + ActorTypeId_Bee = 'BEE0', + ActorTypeId_BeeHive = 'BEEH', + ActorTypeId_Cucco = 'KOKO', + ActorTypeId_Rope = 'SNAK', + ActorTypeId_Octorok = 'OCTA', + ActorTypeId_Keese = 'KETH', + ActorTypeId_Rat = 'RAT0', + ActorTypeId_Beamos = 'BMOS', + ActorTypeId_LikeLike = 'LKLK', + ActorTypeId_Crow = 'CROW', - ActorTypeId_Linebeck = __ACTOR_TYPE_ID(L, N, B, K), - ActorTypeId_Mailbox = __ACTOR_TYPE_ID(P, O, S, T), - ActorTypeId_Postman = __ACTOR_TYPE_ID(P, S, T, M), + ActorTypeId_Linebeck = 'LNBK', + ActorTypeId_Mailbox = 'POST', + ActorTypeId_Postman = 'PSTM', - ActorTypeId_BIGR = __ACTOR_TYPE_ID(B, I, G, R), - ActorTypeId_BKEY = __ACTOR_TYPE_ID(B, K, E, Y), - ActorTypeId_BLST = __ACTOR_TYPE_ID(B, L, S, T), - ActorTypeId_BMRN = __ACTOR_TYPE_ID(B, M, R, N), - ActorTypeId_BMTY = __ACTOR_TYPE_ID(B, M, T, Y), - ActorTypeId_BTRF = __ACTOR_TYPE_ID(B, T, R, F), - ActorTypeId_CBLS = __ACTOR_TYPE_ID(C, B, L, S), - ActorTypeId_FLAL = __ACTOR_TYPE_ID(F, L, A, L), - ActorTypeId_FLBM = __ACTOR_TYPE_ID(F, L, B, M), - ActorTypeId_FLBT = __ACTOR_TYPE_ID(F, L, B, T), - ActorTypeId_FLTB = __ACTOR_TYPE_ID(F, L, T, B), - ActorTypeId_FLTM = __ACTOR_TYPE_ID(F, L, T, M), - ActorTypeId_FORC = __ACTOR_TYPE_ID(F, O, R, C), - ActorTypeId_ROPE = __ACTOR_TYPE_ID(R, O, P, E), - ActorTypeId_SBEM = __ACTOR_TYPE_ID(S, B, E, M), - ActorTypeId_STNE = __ACTOR_TYPE_ID(S, T, N, E), - ActorTypeId_TARU = __ACTOR_TYPE_ID(T, A, R, U), - ActorTypeId_TSBH = __ACTOR_TYPE_ID(T, S, B, H), - ActorTypeId_TSUB = __ACTOR_TYPE_ID(T, S, U, B), - ActorTypeId_VLR0 = __ACTOR_TYPE_ID(V, L, R, 0), + ActorTypeId_BIGR = 'BIGR', + ActorTypeId_BKEY = 'BKEY', + ActorTypeId_BLST = 'BLST', + ActorTypeId_BMRN = 'BMRN', + ActorTypeId_BMTY = 'BMTY', + ActorTypeId_BTRF = 'BTRF', + ActorTypeId_CBLS = 'CBLS', + ActorTypeId_FLAL = 'FLAL', + ActorTypeId_FLBM = 'FLBM', + ActorTypeId_FLBT = 'FLBT', + ActorTypeId_FLTB = 'FLTB', + ActorTypeId_FLTM = 'FLTM', + ActorTypeId_FORC = 'FORC', + ActorTypeId_ROPE = 'ROPE', + ActorTypeId_SBEM = 'SBEM', + ActorTypeId_STNE = 'STNE', + ActorTypeId_TARU = 'TARU', + ActorTypeId_TSBH = 'TSBH', + ActorTypeId_TSUB = 'TSUB', + ActorTypeId_VLR0 = 'VLR0', }; class ActorType_UnkClass { diff --git a/include/Actor/Dungeon/ActorSwitchObject.hpp b/include/Actor/Dungeon/ActorSwitchObject.hpp new file mode 100644 index 00000000..b2fa08d3 --- /dev/null +++ b/include/Actor/Dungeon/ActorSwitchObject.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Actor/Actor.hpp" +#include "Actor/ActorType.hpp" + +class ActorSwitchObject : public Actor { +public: + static ActorType gType; + + /* 000 (base) */ + /* 158 */ unk32 mUnk_158; + /* 15c */ unk32 mUnk_15c; + /* 160 */ unk32 mUnk_160; + /* 164 */ unk32 mUnk_164; + /* 168 */ unk32 mUnk_168; + /* 16c */ u32 mUnk_16c; + /* 170 */ ActorRef mUnk_170[5]; + /* 198 */ + + /* 00 */ virtual ~ActorSwitchObject() override; + /* 08 */ virtual bool vfunc_08() override; + /* 0c */ virtual void vfunc_0c() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 18 */ virtual void vfunc_18(u32 param1) override; + /* b4 */ + + static ActorSwitchObject *Create(); + bool func_ov000_0208fc10(s32 param1); + void func_ov000_0208fc7c(); + bool func_ov000_0208fcb4(); + void func_ov000_0208fef8(); + void func_ov000_0209032c(); +}; diff --git a/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp b/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp new file mode 100644 index 00000000..37c4511c --- /dev/null +++ b/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp @@ -0,0 +1,15 @@ +#include "Actor/Dungeon/ActorSwitchObject.hpp" + +ActorType ActorSwitchObject::gType = ActorType(ActorTypeId_SwitchObject, (ActorCreateFunc) ActorSwitchObject::Create, NULL); + +ActorSwitchObject *ActorSwitchObject::Create() {} +bool ActorSwitchObject::vfunc_08() {} +void ActorSwitchObject::vfunc_0c() {} +void ActorSwitchObject::vfunc_14(u32 param1) {} +void ActorSwitchObject::vfunc_18(u32 param1) {} +bool ActorSwitchObject::func_ov000_0208fc10(s32 param1) {} +void ActorSwitchObject::func_ov000_0208fc7c() {} +bool ActorSwitchObject::func_ov000_0208fcb4() {} +void ActorSwitchObject::func_ov000_0208fef8() {} +void ActorSwitchObject::func_ov000_0209032c() {} +ActorSwitchObject::~ActorSwitchObject() {} diff --git a/tools/mangle.py b/tools/mangle.py index e4cf872c..3ecca3db 100644 --- a/tools/mangle.py +++ b/tools/mangle.py @@ -54,6 +54,7 @@ output = output.decode() # print(output) mangled_funcs: list[str] = re.findall(r'.text +([^\$ ]\S+)', output) +init_funcs: list[str] = re.findall(r'.init +([^\$ ]\S+)', output) mangled_data: list[str] = re.findall(r'(?:.data|.bss) +([^\. ]\S+)', output) if len(mangled_funcs) > 0: @@ -63,6 +64,13 @@ if len(mangled_funcs) > 0: print(func) print() print() +if len(init_funcs) > 0: + print('Static initializers:') + print() + for func in init_funcs: + print(func) + print() + print() if len(mangled_data) > 0: print('Data:') print()