Bootstrap actors (#14)

* Bootstrap actors

* Address feedback. Improve header guard. Remove ovl_Player_Actor, it will need to be handled seperately.
This commit is contained in:
Rozelette
2020-09-13 14:21:43 -04:00
committed by GitHub
parent b930732494
commit 189d0d6c30
1728 changed files with 51355 additions and 789 deletions
+15 -15
View File
@@ -2922,7 +2922,7 @@ void func_809200F8(void); // func_809200F8
void ItemEtcetera_Update(void); // func_80920140
void func_80920164(void); // func_80920164
void func_809201BC(void); // func_809201BC
void FireArrow_SetUpdateFunc(ActorArrowFire* this, actor_func update); // func_80920340
void FireArrow_SetUpdateFunc(ActorArrowFire* this, ActorFunc update); // func_80920340
void ArrowFire_Init(ActorArrowFire* this, GlobalContext* ctxt); // func_8092034C
void ArrowFire_Destroy(ActorArrowFire* this, GlobalContext* ctxt); // func_809203F8
void FireArrow_Update1(ActorArrowFire* pzParm1); // func_80920440
@@ -8001,12 +8001,12 @@ void BgOpenSpot_Init(void); // func_80ACB1E0
void BgOpenSpot_Destroy(void); // func_80ACB220
void BgOpenSpot_Update(void); // func_80ACB230
void func_80ACB2B0(void); // func_80ACB2B0
void BgFuKaiten_Init(ActorBgFuKaiten* this, GlobalContext* ctxt); // func_80ACB400
void BgFuKaiten_Destroy(ActorBgFuKaiten* this, GlobalContext* ctxt); // func_80ACB480
void BgFuKaiten_UpdateRotation(ActorBgFuKaiten* this); // func_80ACB4B4
void BgFuKaiten_UpdateHeight(ActorBgFuKaiten* this); // func_80ACB50C
void BgFuKaiten_Update(ActorBgFuKaiten* this, GlobalContext* ctxt); // func_80ACB570
void BgFuKaiten_Draw(ActorBgFuKaiten* this, GlobalContext* ctxt); // func_80ACB5A0
void BgFuKaiten_Init(Actor* this, GlobalContext* ctxt); // func_80ACB400
void BgFuKaiten_Destroy(Actor* this, GlobalContext* ctxt); // func_80ACB480
void BgFuKaiten_UpdateRotation(Actor* this); // func_80ACB4B4
void BgFuKaiten_UpdateHeight(Actor* this); // func_80ACB50C
void BgFuKaiten_Update(Actor* this, GlobalContext* ctxt); // func_80ACB570
void BgFuKaiten_Draw(Actor* this, GlobalContext* ctxt); // func_80ACB5A0
void func_80ACB6A0(void); // func_80ACB6A0
void func_80ACB7F4(void); // func_80ACB7F4
void func_80ACB940(void); // func_80ACB940
@@ -11748,14 +11748,14 @@ void func_80BD5118(void); // func_80BD5118
void func_80BD5134(void); // func_80BD5134
void BgIkanaBombwall_Update(void); // func_80BD51DC
void BgIkanaBombwall_Draw(void); // func_80BD5200
void BgIkanaRay_Init(ActorBgIkanaRay* this, GlobalContext* ctxt); // func_80BD53C0
void BgIkanaRay_Destroy(ActorBgIkanaRay* this, GlobalContext* ctxt); // func_80BD546C
void BgIkanaRay_SetDeactivated(ActorBgIkanaRay* this); // func_80BD5498
void BgIkanaRay_UpdateCheckForActivation(ActorBgIkanaRay* this, GlobalContext* ctxt); // func_80BD54BC
void BgIkanaRay_SetActivated(ActorBgIkanaRay* this); // func_80BD5500
void BgIkanaRay_UpdateActivated(ActorBgIkanaRay* this, GlobalContext* ctxt); // func_80BD5530
void BgIkanaRay_Update(ActorBgIkanaRay* this, GlobalContext* ctxt); // func_80BD556C
void BgIkanaRay_Draw(ActorBgIkanaRay* this, GlobalContext* ctxt); // func_80BD5590
void BgIkanaRay_Init(Actor* this, GlobalContext* ctxt); // func_80BD53C0
void BgIkanaRay_Destroy(Actor* this, GlobalContext* ctxt); // func_80BD546C
void BgIkanaRay_SetDeactivated(Actor* this); // func_80BD5498
void BgIkanaRay_UpdateCheckForActivation(Actor* this, GlobalContext* ctxt); // func_80BD54BC
void BgIkanaRay_SetActivated(Actor* this); // func_80BD5500
void BgIkanaRay_UpdateActivated(Actor* this, GlobalContext* ctxt); // func_80BD5530
void BgIkanaRay_Update(Actor* this, GlobalContext* ctxt); // func_80BD556C
void BgIkanaRay_Draw(Actor* this, GlobalContext* ctxt); // func_80BD5590
void func_80BD5690(void); // func_80BD5690
void BgIkanaShutter_Init(void); // func_80BD5728
void BgIkanaShutter_Destroy(void); // func_80BD57F4
+2 -2
View File
@@ -9526,7 +9526,7 @@ extern UNK_TYPE1 D_80ACB3B0; // D_80ACB3B0
extern OverlayRelocationSection bgOpenSpotOverlayInfo; // D_80ACB3C0
extern u32 bgOpenSpotOverlayRelocations[7]; // D_80ACB3D4
extern u32 bgOpenSpotOverlayInfoOffset; // D_80ACB3FC
extern ActorInit bgFuKaitenInitData; // D_80ACB630
extern ActorInit Bg_Fu_Kaiten_InitVars; // D_80ACB630
extern f32 D_80ACB650; // D_80ACB650
extern OverlayRelocationSection bgFuKaitenOverlayInfo; // D_80ACB660
extern u32 bgFuKaitenOverlayRelocations[8]; // D_80ACB674
@@ -12749,7 +12749,7 @@ extern UNK_TYPE4 D_80BD52FC; // D_80BD52FC
extern OverlayRelocationSection bgIkanaBombwallOverlayInfo; // D_80BD5300
extern u32 bgIkanaBombwallOverlayRelocations[39]; // D_80BD5314
extern u32 bgIkanaBombwallOverlayInfoOffset; // D_80BD53BC
extern ActorInit bgIkanaRayInitData; // D_80BD55D0
extern ActorInit Bg_Ikana_Ray_InitVars; // D_80BD55D0
extern ColCylinderInit bgIkanaRayCylinderInit; // D_80BD55F0
extern InitChainEntry bgIkanaRayCompInit[4]; // D_80BD561C
extern OverlayRelocationSection bgIkanaRayOverlayInfo; // D_80BD5630
+3 -22
View File
@@ -992,8 +992,6 @@ typedef struct {
/* 0x44 */ BgScenePolygonLists scenePolyLists;
} StaticCollisionContext; // size = 0x50
typedef struct ActorBgFuKaiten ActorBgFuKaiten;
typedef struct ActorBgMbarChair ActorBgMbarChair;
typedef struct ActorEnBji01 ActorEnBji01;
@@ -1671,20 +1669,13 @@ typedef struct {
/* 0x244 */ Vec3f unk244;
/* 0x250 */ f32 unk250;
/* 0x254 */ f32 unk254;
/* 0x258 */ actor_func update;
/* 0x258 */ ActorFunc update;
/* 0x25C */ s16 unk25C;
/* 0x25E */ u16 unk25E;
/* 0x260 */ u8 unk260;
/* 0x261 */ UNK_TYPE1 pad261[0x3];
} ActorArrowFire; // size = 0x264
typedef struct {
/* 0x000 */ Actor base;
/* 0x144 */ ColCylinder collision;
/* 0x190 */ AnimatedTexture* animatedTextures;
/* 0x194 */ actor_func update;
} ActorBgIkanaRay; // size = 0x198
struct ActorBgMbarChair {
/* 0x000 */ Actor base;
/* 0x144 */ UNK_TYPE1 pad144[0x18];
@@ -1751,7 +1742,7 @@ typedef struct {
/* 0x14A */ u16 unk14A;
/* 0x14C */ u8 unk14C;
/* 0x14D */ UNK_TYPE1 pad14D[0x3];
/* 0x150 */ actor_func unk150;
/* 0x150 */ ActorFunc unk150;
} ActorEnTest4; // size = 0x154
struct ActorObjBell {
@@ -1765,22 +1756,12 @@ struct ActorObjBell {
/* 0x214 */ s16 unk214;
/* 0x216 */ UNK_TYPE1 pad216[0x12];
}; // size = 0x228
struct ActorBgFuKaiten {
/* 0x000 */ DynaPolyActor bg;
/* 0x15C */ UNK_TYPE1 pad15C[0x4];
/* 0x160 */ f32 elevation;
/* 0x164 */ f32 bouceHeight;
/* 0x168 */ s16 rotationSpeed;
/* 0x16A */ s16 bounceSpeed;
/* 0x16C */ s16 bounce;
/* 0x16E */ UNK_TYPE1 pad16E[0x2];
}; // size = 0x170
struct ActorBgIknvObj {
/* 0x000 */ DynaPolyActor bg;
/* 0x15C */ ColCylinder collision;
/* 0x1A8 */ u32 displayListAddr;
/* 0x1AC */ actor_func updateFunc;
/* 0x1AC */ ActorFunc updateFunc;
}; // size = 0x1B0
typedef struct {
+26 -12
View File
@@ -11,7 +11,7 @@ struct GlobalContext;
struct LightMapper;
struct BgPolygon;
typedef void(*actor_func)(struct Actor* this, struct GlobalContext* ctxt);
typedef void(*ActorFunc)(struct Actor* this, struct GlobalContext* ctxt);
typedef struct {
/* 0x00 */ Vec3f pos;
@@ -61,14 +61,13 @@ typedef struct {
typedef struct {
/* 0x00 */ s16 id;
/* 0x02 */ u8 type;
/* 0x03 */ u8 room;
/* 0x04 */ u32 flags;
/* 0x08 */ s16 objectId;
/* 0x0C */ u32 instanceSize;
/* 0x10 */ actor_func init;
/* 0x14 */ actor_func destroy;
/* 0x18 */ actor_func update;
/* 0x1C */ actor_func draw;
/* 0x10 */ ActorFunc init;
/* 0x14 */ ActorFunc destroy;
/* 0x18 */ ActorFunc update;
/* 0x1C */ ActorFunc draw;
} ActorInit; // size = 0x20
typedef struct {
@@ -152,10 +151,10 @@ typedef struct Actor {
/* 0x124 */ struct Actor* child;
/* 0x128 */ struct Actor* prev;
/* 0x12C */ struct Actor* next;
/* 0x130 */ actor_func init;
/* 0x134 */ actor_func destroy;
/* 0x138 */ actor_func update;
/* 0x13C */ actor_func draw;
/* 0x130 */ ActorFunc init;
/* 0x134 */ ActorFunc destroy;
/* 0x138 */ ActorFunc update;
/* 0x13C */ ActorFunc draw;
/* 0x140 */ ActorOverlay* overlayEntry;
} Actor; // size = 0x144
@@ -212,7 +211,7 @@ typedef struct {
typedef struct {
/* 0x000 */ Actor base;
/* 0x144 */ actor_func update;
/* 0x144 */ ActorFunc update;
/* 0x148 */ s16 collectibleFlagId;
/* 0x14A */ s16 unk14A;
/* 0x14C */ s16 unk14C;
@@ -226,11 +225,26 @@ typedef struct {
typedef struct {
/* 0x000 */ Actor base;
/* 0x144 */ actor_func update;
/* 0x144 */ ActorFunc update;
/* 0x148 */ ColCylinder collision;
/* 0x194 */ UNK_TYPE1 pad194[0x14];
} ActorEnAObj; // size = 0x1A8
typedef enum {
/* 0x00 */ ACTORTYPE_SWITCH,
/* 0x01 */ ACTORTYPE_BG,
/* 0x02 */ ACTORTYPE_PLAYER,
/* 0x03 */ ACTORTYPE_EXPLOSIVES,
/* 0x04 */ ACTORTYPE_NPC,
/* 0x05 */ ACTORTYPE_ENEMY,
/* 0x06 */ ACTORTYPE_PROP,
/* 0x07 */ ACTORTYPE_ITEMACTION,
/* 0x08 */ ACTORTYPE_MISC,
/* 0x09 */ ACTORTYPE_BOSS,
/* 0x0A */ ACTORTYPE_DOOR,
/* 0x0B */ ACTORTYPE_CHEST
} ActorType;
typedef enum {
/* 0x000 */ ACTOR_PLAYER,
/* 0x001 */ ACTOR_EN_TEST,