mirror of
https://github.com/zeldaret/ph
synced 2026-07-08 21:55:05 -04:00
Add ActorSwitchObject
This commit is contained in:
@@ -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) {}
|
||||
|
||||
+68
-109
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
Reference in New Issue
Block a user