More actor cleanup Part 3 (#118)

* Add custom types for actor specific functions (like actions)

* Add a forward struct declaration for all other actors
This commit is contained in:
Roman971 2020-05-06 00:53:15 +02:00 committed by GitHub
parent f114df8929
commit 1425678d8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
477 changed files with 1817 additions and 792 deletions

View File

@ -16,9 +16,13 @@ typedef enum {
/* 0x0B */ A_OBJ_KNOB
} AObjType;
typedef struct {
struct EnAObj;
typedef void (*EnAObjActionFunc)(struct EnAObj*, GlobalContext*);
typedef struct EnAObj {
/* 0x000 */ DynaPolyActor dyna;
/* 0x164 */ ActorFunc actionFunc;
/* 0x164 */ EnAObjActionFunc actionFunc;
/* 0x168 */ s32 unk_168;
/* 0x16C */ s16 textId;
/* 0x16E */ s16 unk_16E;
@ -66,7 +70,7 @@ extern ColliderCylinderInit D_80115440;
extern u32 D_8011546C[];
extern u32 D_80115484[];
void EnAObj_SetupAction(EnAObj* this, ActorFunc actionFunc) {
void EnAObj_SetupAction(EnAObj* this, EnAObjActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@ -192,7 +196,7 @@ void func_8001D204(EnAObj* this, GlobalContext* globalCtx) {
}
void func_8001D234(EnAObj* this, s16 params) {
EnAObj_SetupAction(this, (ActorFunc)func_8001D25C);
EnAObj_SetupAction(this, func_8001D25C);
}
void func_8001D25C(EnAObj* this, GlobalContext* globalCtx) {
@ -202,7 +206,7 @@ void func_8001D25C(EnAObj* this, GlobalContext* globalCtx) {
var = this->dyna.actor.rotTowardsLinkY - this->dyna.actor.shape.rot.y;
if ((ABS(var) < 0x2800) || ((this->dyna.actor.params == 0xA) && (ABS(var) > 0x5800))) {
if (func_8002F194(&this->dyna.actor, globalCtx)) {
EnAObj_SetupAction(this, (ActorFunc)func_8001D204);
EnAObj_SetupAction(this, func_8001D204);
} else {
func_8002F2F4(&this->dyna.actor, globalCtx);
}
@ -215,7 +219,7 @@ void func_8001D310(EnAObj* this, s16 params) {
this->unk_168 = 10;
this->dyna.actor.posRot.rot.y = 0;
this->dyna.actor.shape.rot = this->dyna.actor.posRot.rot;
EnAObj_SetupAction(this, (ActorFunc)func_8001D360);
EnAObj_SetupAction(this, func_8001D360);
}
void func_8001D360(EnAObj* this, GlobalContext* globalCtx) {
@ -258,7 +262,7 @@ void func_8001D360(EnAObj* this, GlobalContext* globalCtx) {
}
void func_8001D480(EnAObj* this, s16 params) {
EnAObj_SetupAction(this, (ActorFunc)func_8001D4A8);
EnAObj_SetupAction(this, func_8001D4A8);
}
void func_8001D4A8(EnAObj* this, GlobalContext* globalCtx) {
@ -288,7 +292,7 @@ void func_8001D4A8(EnAObj* this, GlobalContext* globalCtx) {
void func_8001D5C8(EnAObj* this, s16 params) {
this->dyna.actor.unk_FC = 1200.0f;
this->dyna.actor.unk_F8 = 720.0f;
EnAObj_SetupAction(this, (ActorFunc)func_8001D608);
EnAObj_SetupAction(this, func_8001D608);
}
void func_8001D608(EnAObj* this, GlobalContext* globalCtx) {

View File

@ -30,9 +30,13 @@ typedef enum {
/* 0x19 */ ITEM00_BOMBS_SPECIAL
} Item00Type;
typedef struct {
struct EnItem00;
typedef void (*EnItem00ActionFunc)(struct EnItem00*, GlobalContext*);
typedef struct EnItem00 {
/* 0x000 */ Actor actor;
/* 0x14C */ ActorFunc actionFunc;
/* 0x14C */ EnItem00ActionFunc actionFunc;
/* 0x150 */ s16 collectibleFlag;
/* 0x152 */ s16 unk_152;
/* 0x154 */ s16 unk_154;
@ -83,7 +87,7 @@ extern u8 D_80115664[];
// Internal Actor Functions
void EnItem00_SetupAction(EnItem00* this, ActorFunc actionFunc) {
void EnItem00_SetupAction(EnItem00* this, EnItem00ActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@ -228,7 +232,7 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) {
this->unk_152 = 0;
if (!spawnParam8000) {
EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8);
EnItem00_SetupAction(this, func_8001DFC8);
this->unk_15A = -1;
return;
}
@ -310,7 +314,7 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) {
func_8002F554(&this->actor, globalCtx, getItemId);
}
EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8);
EnItem00_SetupAction(this, func_8001E5C8);
this->actionFunc(this, globalCtx);
}
@ -362,7 +366,7 @@ void func_8001DFC8(EnItem00* this, GlobalContext* globalCtx) {
}
if ((this->actor.gravity != 0.0f) && !(this->actor.bgCheckFlags & 0x0001)) {
EnItem00_SetupAction(this, (ActorFunc)func_8001E1C8);
EnItem00_SetupAction(this, func_8001E1C8);
}
}
@ -384,7 +388,7 @@ void func_8001E1C8(EnItem00* this, GlobalContext* globalCtx) {
if (this->actor.bgCheckFlags & 0x0003) {
originalVelocity = this->actor.velocity.y;
if (originalVelocity > -2.0f) {
EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8);
EnItem00_SetupAction(this, func_8001DFC8);
this->actor.velocity.y = 0.0f;
} else {
this->actor.velocity.y = originalVelocity * -0.8f;
@ -440,7 +444,7 @@ void func_8001E304(EnItem00* this, GlobalContext* globalCtx) {
}
if (this->actor.bgCheckFlags & 0x0003) {
EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8);
EnItem00_SetupAction(this, func_8001DFC8);
this->actor.shape.rot.z = 0;
this->actor.velocity.y = 0.0f;
this->actor.speedXZ = 0.0f;
@ -694,7 +698,7 @@ void EnItem00_Update(Actor* thisx, GlobalContext* globalCtx) {
Actor_SetScale(&this->actor, this->unk_15C);
this->unk_152 = 0;
EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8);
EnItem00_SetupAction(this, func_8001E5C8);
}
// Draw Function prototypes (used in EnItem00_Draw)
@ -939,7 +943,7 @@ Actor* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, s16 param
spawnedActor->actor.gravity = -0.9f;
spawnedActor->actor.posRot.rot.y = Math_Rand_CenteredFloat(65536.0f);
Actor_SetScale(&spawnedActor->actor, 0.0f);
EnItem00_SetupAction(spawnedActor, (ActorFunc)func_8001E304);
EnItem00_SetupAction(spawnedActor, func_8001E304);
spawnedActor->unk_15A = 220;
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
@ -1090,7 +1094,7 @@ void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3
spawnedActor->actor.gravity = -0.9f;
spawnedActor->actor.posRot.rot.y = Math_Rand_ZeroOne() * 40000.0f;
Actor_SetScale(&spawnedActor->actor, 0.0f);
EnItem00_SetupAction(spawnedActor, (ActorFunc)func_8001E304);
EnItem00_SetupAction(spawnedActor, func_8001E304);
spawnedActor->actor.flags |= 0x0010;
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&

View File

@ -9,7 +9,6 @@ void ArmsHook_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ArmsHook_Update(Actor* thisx, GlobalContext* globalCtx);
void ArmsHook_Draw(Actor* thisx, GlobalContext* globalCtx);
void ArmsHook_SetupAction(ArmsHook* this, ActorFunc actionFunc);
void func_80864FC4(ArmsHook* this, GlobalContext* globalCtx);
/*

View File

@ -4,10 +4,14 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct ArmsHook;
typedef void (*ArmsHookActionFunc)(struct ArmsHook*, GlobalContext*);
typedef struct ArmsHook {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xC8];
/* 0x0214 */ ActorFunc actionFunc;
/* 0x0214 */ ArmsHookActionFunc actionFunc;
} ArmsHook; // size = 0x0218
extern const ActorInit Arms_Hook_InitVars;

View File

@ -39,7 +39,7 @@ static InitChainEntry initChain[] = {
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
};
void ArrowFire_SetupAction(ArrowFire* this, ActorFunc* actionFunc) {
void ArrowFire_SetupAction(ArrowFire* this, ArrowFireActionFunc actionFunc) {
this->actionFunc = actionFunc;
}

View File

@ -4,12 +4,16 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct ArrowFire;
typedef void (*ArrowFireActionFunc)(struct ArrowFire*, GlobalContext*);
typedef struct ArrowFire {
/* 0x0000 */ Actor actor;
/* 0x014C */ Vec3f unkPos;
/* 0x0158 */ f32 unk_158;
/* 0x015C */ f32 unk_15C;
/* 0x0160 */ ActorFunc actionFunc;
/* 0x0160 */ ArrowFireActionFunc actionFunc;
/* 0x0164 */ s16 radius;
/* 0x0166 */ u16 timer;
/* 0x0168 */ u8 alpha;

View File

@ -39,7 +39,7 @@ static InitChainEntry initChain[] = {
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
};
void ArrowIce_SetupAction(ArrowIce* this, ActorFunc* actionFunc) {
void ArrowIce_SetupAction(ArrowIce* this, ArrowIceActionFunc actionFunc) {
this->actionFunc = actionFunc;
}

View File

@ -4,7 +4,11 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct ArrowIce;
typedef void (*ArrowIceActionFunc)(struct ArrowIce*, GlobalContext*);
typedef struct ArrowIce {
/* 0x0000 */ Actor actor;
/* 0x014C */ s16 radius;
/* 0x014E */ u16 timer;
@ -12,7 +16,7 @@ typedef struct {
/* 0x0154 */ Vec3f unkPos;
/* 0x0160 */ f32 unk_160;
/* 0x0164 */ f32 unk_164;
/* 0x0168 */ ActorFunc actionFunc;
/* 0x0168 */ ArrowIceActionFunc actionFunc;
} ArrowIce; // size = 0x016C
extern const ActorInit Arrow_Ice_InitVars;

View File

@ -39,7 +39,7 @@ static InitChainEntry initChain[] = {
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
};
void ArrowLight_SetupAction(ArrowLight* this, ActorFunc* actionFunc) {
void ArrowLight_SetupAction(ArrowLight* this, ArrowLightActionFunc actionFunc) {
this->actionFunc = actionFunc;
}

View File

@ -4,7 +4,11 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct ArrowLight;
typedef void (*ArrowLightActionFunc)(struct ArrowLight*, GlobalContext*);
typedef struct ArrowLight {
/* 0x0000 */ Actor actor;
/* 0x014C */ s16 radius;
/* 0x014E */ u16 timer;
@ -12,7 +16,7 @@ typedef struct {
/* 0x0154 */ Vec3f unkPos;
/* 0x0160 */ f32 unk_160;
/* 0x0164 */ f32 unk_164;
/* 0x0168 */ ActorFunc actionFunc;
/* 0x0168 */ ArrowLightActionFunc actionFunc;
} ArrowLight; // size = 0x016C
extern const ActorInit Arrow_Light_InitVars;

View File

@ -108,7 +108,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
if (thisx->params == 2) {
thisx->flags |= 0x30;
globalCtx->colCtx.stat.colHeader->waterBoxes[7].unk_02 = thisx->posRot.pos.y;
this->actionFunc = (ActorFunc)func_8086C9A8;
this->actionFunc = func_8086C9A8;
return;
}
if (thisx->params == 0) {
@ -118,7 +118,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
thisx->posRot.pos.y = (f32)(thisx->posRot.pos.y + -79.0f);
if (Flags_GetClear(globalCtx, thisx->room)) {
Flags_SetSwitch(globalCtx, this->unk_168);
this->actionFunc = (ActorFunc)func_8086C6EC;
this->actionFunc = func_8086C6EC;
} else {
if (BgBdanObjects_GetContactRu1(this, 4)) {
if (Actor_SpawnAttached(&globalCtx->actorCtx, this, globalCtx, ACTOR_EN_BIGOKUTA,
@ -127,12 +127,12 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
thisx->attachedB->posRot.pos.z = thisx->attachedB->initPosRot.pos.z + 263.0f;
}
thisx->posRot.rot.y = 0;
this->actionFunc = (ActorFunc)func_8086C618;
this->actionFunc = func_8086C618;
thisx->posRot.pos.y = thisx->initPosRot.pos.y + -70.0f;
} else {
Flags_SetSwitch(globalCtx, this->unk_168);
this->unk_16A = 0;
this->actionFunc = (ActorFunc)func_8086C054;
this->actionFunc = func_8086C054;
}
}
} else {
@ -140,14 +140,14 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
DynaPolyInfo_Alloc(&D_06005048, &localC);
this->unk_16A = 0x200;
this->unk_168 = 0;
this->actionFunc = (ActorFunc)func_8086C874;
this->actionFunc = func_8086C874;
} else {
DynaPolyInfo_Alloc(&D_06005580, &localC);
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
this->actionFunc = (ActorFunc)func_8086C868;
this->actionFunc = func_8086C868;
thisx->posRot.pos.y = thisx->initPosRot.pos.y - 400.0f;
} else {
this->actionFunc = (ActorFunc)func_8086CB10;
this->actionFunc = func_8086CB10;
}
}
}
@ -182,7 +182,7 @@ void func_8086C054(BgBdanObjects* this, GlobalContext* globalCtx) {
this->unk_16A -= 1;
}
if (this->unk_16A == 0) {
this->actionFunc = (ActorFunc)func_8086C1A0;
this->actionFunc = func_8086C1A0;
}
}
}
@ -198,7 +198,7 @@ void func_8086C1A0(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Math_SmoothScaleMaxMinF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 500.0f, 0.5f, 7.5f,
1.0f) < 0.1f) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
this->actionFunc = (ActorFunc)func_8086C29C;
this->actionFunc = func_8086C29C;
this->unk_16A = 0x1E;
BgBdanObjects_SetContactRu1(this, 2);
func_800AA000(0.0f, 0xFF, 0x14, 0x96);
@ -233,7 +233,7 @@ void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx) {
this->dyna.actor.posRot.pos.z, 0, this->dyna.actor.shape.rot.y + 0x8000, 0, 0);
BgBdanObjects_SetContactRu1(this, 4);
this->unk_16A = 0xA;
this->actionFunc = (ActorFunc)func_8086C55C;
this->actionFunc = func_8086C55C;
func_8005B1A4(globalCtx->cameraPtrs[globalCtx->activeCamera]);
}
}
@ -248,7 +248,7 @@ void func_8086C3D8(BgBdanObjects* this, GlobalContext* globalCtx) {
this->unk_16A = 0x3C;
Audio_PlayActorSound2(&this->dyna.actor, 0x289F);
this->dyna.actor.attachedB->posRot.pos.y = this->dyna.actor.posRot.pos.y + 140.0f;
this->actionFunc = (ActorFunc)func_8086C5BC;
this->actionFunc = func_8086C5BC;
func_800800F8(globalCtx, 0xC08, -0x63, this->dyna.actor.attachedB, 0);
player->actor.posRot.pos.x = -1130.0f;
player->actor.posRot.pos.y = -1025.0f;
@ -278,7 +278,7 @@ void func_8086C55C(BgBdanObjects* this, GlobalContext* globalCtx) {
Flags_UnsetSwitch(globalCtx, this->unk_168);
} else if (this->unk_16A == -0x28) {
this->unk_16A = 0;
this->actionFunc = (ActorFunc)func_8086C3D8;
this->actionFunc = func_8086C3D8;
}
}
@ -289,7 +289,7 @@ void func_8086C5BC(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->unk_16A == 0) {
if (this->dyna.actor.attachedB != NULL) {
if (this->dyna.actor.attachedB->params == 2) {
this->actionFunc = (ActorFunc)func_8086C618;
this->actionFunc = func_8086C618;
} else if (this->dyna.actor.attachedB->params == 0) {
this->dyna.actor.attachedB->params = 1;
}
@ -303,7 +303,7 @@ void func_8086C618(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Flags_GetClear(globalCtx, this->dyna.actor.room)) {
Flags_SetSwitch(globalCtx, this->unk_168);
this->dyna.actor.initPosRot.rot.y = (s16)(this->dyna.actor.shape.rot.y + 0x2000) & 0xC000;
this->actionFunc = (ActorFunc)func_8086C6EC;
this->actionFunc = func_8086C6EC;
} else {
this->dyna.actor.shape.rot.y += this->dyna.actor.posRot.rot.y;
func_800F436C(&this->dyna.actor.unk_E4, 0x2063, ABS(this->dyna.actor.posRot.rot.y) / 512.0f);
@ -314,7 +314,7 @@ void func_8086C6EC(BgBdanObjects* this, GlobalContext* globalCtx) {
s32 cond = Math_ApproxUpdateScaledS(&this->dyna.actor.shape.rot.y, this->dyna.actor.initPosRot.rot.y, 0x200);
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + -125.0f, 3.0f)) {
if (cond) {
this->actionFunc = (ActorFunc)func_8086C76C;
this->actionFunc = func_8086C76C;
}
}
}
@ -322,7 +322,7 @@ void func_8086C6EC(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C76C(BgBdanObjects* this, GlobalContext* globalCtx) {
if (func_8004356C(&this->dyna.actor)) {
if (this->dyna.actor.xzDistanceFromLink < 120.0f) {
this->actionFunc = (ActorFunc)func_8086C7D0;
this->actionFunc = func_8086C7D0;
func_800800F8(globalCtx, 0xC12, -0x63, &this->dyna.actor, 0);
}
}
@ -332,7 +332,7 @@ void func_8086C7D0(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Math_SmoothScaleMaxMinF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 965.0f, 0.5f, 15.0f,
0.2f) < 0.01f) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
this->actionFunc = (ActorFunc)func_8086C868;
this->actionFunc = func_8086C868;
} else {
func_8002F974(&this->dyna.actor, 0x208F);
}
@ -376,7 +376,7 @@ void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
this->unk_16A = 0x64;
this->actionFunc = (ActorFunc)func_8086C9F0;
this->actionFunc = func_8086C9F0;
}
}
@ -384,12 +384,12 @@ void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->unk_16A == 0) {
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y, 0.5f)) {
Flags_UnsetSwitch(globalCtx, this->unk_168);
this->actionFunc = (ActorFunc)func_8086C9A8;
this->actionFunc = func_8086C9A8;
}
func_8002F948(this, 0x205E);
} else {
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 75.0f, 0.5f)) {
this->actionFunc = (ActorFunc)func_8086CABC;
this->actionFunc = func_8086CABC;
}
func_8002F948(this, 0x205E);
}
@ -402,7 +402,7 @@ void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx) {
}
func_8002F994(&this->dyna.actor, this->unk_16A);
if (this->unk_16A == 0) {
this->actionFunc = (ActorFunc)func_8086C9F0;
this->actionFunc = func_8086C9F0;
}
}
@ -410,7 +410,7 @@ void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx) {
if (func_8004356C(&this->dyna.actor)) {
Flags_SetSwitch(globalCtx, this->unk_168);
this->unk_16A = 0x32;
this->actionFunc = (ActorFunc)func_8086CB8C;
this->actionFunc = func_8086CB8C;
this->dyna.actor.initPosRot.pos.y -= 200.0f;
func_800800F8(globalCtx, 0xC1C, 0x33, &this->dyna.actor, 0);
}
@ -423,7 +423,7 @@ void func_8086CB8C(BgBdanObjects* this, GlobalContext* globalCtx) {
this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y - (cosf(this->unk_16A * (M_PI / 50.0f)) * 200.0f);
if (this->unk_16A == 0) {
Audio_PlayActorSound2(this, NA_SE_EV_BUYOSTAND_STOP_U);
this->actionFunc = (ActorFunc)func_8086C868;
this->actionFunc = func_8086C868;
func_800C078C(globalCtx, 0, -1);
} else {
func_8002F974(&this->dyna.actor, 0x2090);
@ -441,7 +441,7 @@ void BgBdanObjects_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgBdanObjects* this = THIS;
if (thisx->params == 0) {
if (this->actionFunc == (ActorFunc)func_8086C054) {
if (this->actionFunc == func_8086C054) {
if (((thisx->initPosRot.pos.y + -79.0f) - 5.0f) < thisx->posRot.pos.y) {
Matrix_Translate(0.0f, -50.0f, 0.0f, MTXMODE_APPLY);
}

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgBdanObjects;
typedef void (*BgBdanObjectsActionFunc)(struct BgBdanObjects*, GlobalContext*);
typedef struct BgBdanObjects {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgBdanObjectsActionFunc actionFunc;
/* 0x0168 */ u8 unk_168;
/* 0x016A */ s16 unk_16A;
/* 0x016C */ ColliderCylinder collider;

View File

@ -229,7 +229,7 @@ void func_8086D548(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086D5C4(BgBdanSwitch* this) {
this->actionFunc = &func_8086D5E0;
this->actionFunc = func_8086D5E0;
this->unk_1C8 = 1.0f;
}
@ -250,7 +250,7 @@ void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086D67C(BgBdanSwitch* this) {
this->actionFunc = &func_8086D694;
this->actionFunc = func_8086D694;
this->unk_1DA = 0x64;
}
@ -267,7 +267,7 @@ void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D730(BgBdanSwitch* this) {
this->unk_1C8 = 0.1f;
this->actionFunc = &func_8086D754;
this->actionFunc = func_8086D754;
this->unk_1D8 = 6;
}
@ -291,7 +291,7 @@ void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086D7FC(BgBdanSwitch* this) {
this->actionFunc = &func_8086D80C;
this->actionFunc = func_8086D80C;
}
void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
@ -303,7 +303,7 @@ void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086D86C(BgBdanSwitch* this) {
this->actionFunc = &func_8086D888;
this->actionFunc = func_8086D888;
this->unk_1C8 = 1.0f;
}
@ -314,7 +314,7 @@ void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086D8BC(BgBdanSwitch* this) {
this->actionFunc = &func_8086D8CC;
this->actionFunc = func_8086D8CC;
}
void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
@ -327,7 +327,7 @@ void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086D944(BgBdanSwitch* this) {
this->actionFunc = &func_8086D95C;
this->actionFunc = func_8086D95C;
this->unk_1DA = 0x64;
}
@ -344,7 +344,7 @@ void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D9F8(BgBdanSwitch* this) {
this->unk_1C8 = 0.6f;
this->actionFunc = &func_8086DA1C;
this->actionFunc = func_8086DA1C;
this->unk_1D8 = 6;
}
@ -368,7 +368,7 @@ void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086DAB4(BgBdanSwitch* this) {
this->actionFunc = &func_8086DAC4;
this->actionFunc = func_8086DAC4;
}
void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
@ -381,14 +381,14 @@ void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DB24(BgBdanSwitch* this) {
this->unk_1C8 = 0.1f;
this->actionFunc = &func_8086DB40;
this->actionFunc = func_8086DB40;
}
void func_8086DB40(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086DB4C(BgBdanSwitch* this) {
this->actionFunc = &func_8086DB68;
this->actionFunc = func_8086DB68;
this->unk_1C8 = 2.0f;
}
@ -413,7 +413,7 @@ void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086DC30(BgBdanSwitch* this) {
this->actionFunc = &func_8086DC48;
this->actionFunc = func_8086DC48;
this->unk_1DA = 0x64;
}
@ -428,7 +428,7 @@ void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086DCCC(BgBdanSwitch* this) {
this->actionFunc = &func_8086DCE8;
this->actionFunc = func_8086DCE8;
this->unk_1C8 = 1.0f;
}
@ -449,7 +449,7 @@ void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
void func_8086DDA8(BgBdanSwitch* this) {
this->actionFunc = &func_8086DDC0;
this->actionFunc = func_8086DDC0;
this->unk_1DA = 0x64;
}

View File

@ -13,7 +13,11 @@ typedef enum {
/* 0x04 */ YELLOW_TALL_2
} BgBdanSwitchType;
typedef struct {
struct BgBdanSwitch;
typedef void (*BgBdanSwitchActionFunc)(struct BgBdanSwitch*, GlobalContext*);
typedef struct BgBdanSwitch {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ f32 unk_150;
@ -21,7 +25,7 @@ typedef struct {
/* 0x0158 */ u32 unk_158;
/* 0x015C */ u32 unk_15C;
/* 0x0160 */ u8 unk_160;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgBdanSwitchActionFunc actionFunc;
/* 0x0168 */ ColliderJntSph collider;
/* 0x0188 */ ColliderJntSphItem colliderItems[1];
/* 0x01C8 */ f32 unk_1C8;

View File

@ -34,7 +34,7 @@ const ActorInit Bg_Bom_Guard_InitVars = {
extern u32 D_06001C40;
void BgBomGuard_SetupAction(BgBomGuard* this, ActorFunc actionFunc) {
void BgBomGuard_SetupAction(BgBomGuard* this, BgBomGuardActionFunc actionFunc) {
this->actionFunc = actionFunc;
}

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgBomGuard;
typedef void (*BgBomGuardActionFunc)(struct BgBomGuard*, GlobalContext*);
typedef struct BgBomGuard {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgBomGuardActionFunc actionFunc;
/* 0x0168 */ u8 unk_168;
/* 0x016C */ Vec3f unk_16C;
} BgBomGuard; // size = 0x0178

View File

@ -4,10 +4,14 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgBombwall;
typedef void (*BgBombwallActionFunc)(struct BgBombwall*, GlobalContext*);
typedef struct BgBombwall {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0x134];
/* 0x0298 */ ActorFunc actionFunc;
/* 0x0298 */ BgBombwallActionFunc actionFunc;
/* 0x029C */ char unk_29C[0x8];
} BgBombwall; // size = 0x02A4

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgBowlWall;
typedef void (*BgBowlWallActionFunc)(struct BgBowlWall*, GlobalContext*);
typedef struct BgBowlWall {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgBowlWallActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x20];
} BgBowlWall; // size = 0x0188

View File

@ -14,7 +14,6 @@ void BgBreakwall_Init(Actor* thisx, GlobalContext* globalCtx);
void BgBreakwall_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgBreakwall_Update(Actor* thisx, GlobalContext* globalCtx);
void BgBreakwall_SetupAction(BgBreakwall* this, ActorFunc actionFunc);
void func_80870290(BgBreakwall* this, GlobalContext* globalCtx);
void func_80870394(BgBreakwall* this, GlobalContext* globalCtx);
void func_80870564(BgBreakwall* this, GlobalContext* globalCtx);

View File

@ -4,10 +4,14 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgBreakwall;
typedef void (*BgBreakwallActionFunc)(struct BgBreakwall*, GlobalContext*);
typedef struct BgBreakwall {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0x88];
/* 0x01EC */ ActorFunc actionFunc;
/* 0x01EC */ BgBreakwallActionFunc actionFunc;
} BgBreakwall; // size = 0x01F0
extern const ActorInit Bg_Breakwall_InitVars;

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgDdanJd;
typedef void (*BgDdanJdActionFunc)(struct BgDdanJd*, GlobalContext*);
typedef struct BgDdanJd {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgDdanJdActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x8];
} BgDdanJd; // size = 0x0170

View File

@ -51,7 +51,7 @@ static f32 D_80871908[] = { 0.0f, -0.45f, 0.0f, 0.0f, 0.0f, 0.0f };
extern UNK_TYPE D_06004F30;
extern UNK_TYPE D_060048A8;
void BgDdanKd_SetupAction(BgDdanKd* this, ActorFunc actionFunc) {
void BgDdanKd_SetupAction(BgDdanKd* this, BgDdanKdActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@ -71,10 +71,10 @@ void BgDdanKd_Init(Actor* thisx, GlobalContext* globalCtx) {
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp24);
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params) == 0) {
BgDdanKd_SetupAction(this, &BgDdanKd_CheckForExplosions);
BgDdanKd_SetupAction(this, BgDdanKd_CheckForExplosions);
} else {
this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y - 200.0f - 20.0f;
BgDdanKd_SetupAction(this, &func_80871838);
BgDdanKd_SetupAction(this, func_80871838);
}
}
@ -96,7 +96,7 @@ void BgDdanKd_CheckForExplosions(BgDdanKd* this, GlobalContext* globalCtx) {
if ((currentCollidingExplosion != NULL) && (this->previousCollidingExplosion != NULL) &&
(currentCollidingExplosion != this->previousCollidingExplosion) &&
(Math_Vec3f_DistXZ(&this->previousCollidingExplosionPos, &currentCollidingExplosion->posRot.pos) > 80.0f)) {
BgDdanKd_SetupAction(this, &BgDdanKd_LowerStairs);
BgDdanKd_SetupAction(this, BgDdanKd_LowerStairs);
func_800800F8(globalCtx, 0xBEA, 0x3E7, this, 0);
} else {
if (this->timer != 0) {
@ -124,7 +124,7 @@ void BgDdanKd_LowerStairs(BgDdanKd* this, GlobalContext* globalCtx) {
if (Math_SmoothScaleMaxMinF(&this->dyna.actor.posRot.pos.y, (this->dyna.actor.initPosRot.pos.y - 200.0f) - 20.0f,
0.075f, this->dyna.actor.speedXZ, 0.0075f) == 0.0f) {
Flags_SetSwitch(globalCtx, this->dyna.actor.params);
BgDdanKd_SetupAction(this, &func_80871838);
BgDdanKd_SetupAction(this, func_80871838);
} else {
sp4C = (this->dyna.actor.pos4.y - this->dyna.actor.posRot.pos.y) + (this->dyna.actor.speedXZ * 0.25f);

View File

@ -4,13 +4,17 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgDdanKd;
typedef void (*BgDdanKdActionFunc)(struct BgDdanKd*, GlobalContext*);
typedef struct BgDdanKd {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ Actor* previousCollidingExplosion;
/* 0x0168 */ s16 timer;
/* 0x016C */ Vec3f previousCollidingExplosionPos;
/* 0x0178 */ ColliderCylinder collider;
/* 0x01C4 */ ActorFunc actionFunc;
/* 0x01C4 */ BgDdanKdActionFunc actionFunc;
} BgDdanKd; // size = 0x01C8
extern const ActorInit Bg_Ddan_Kd_InitVars;

View File

@ -15,7 +15,6 @@ void BgDodoago_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgDodoago_Update(Actor* thisx, GlobalContext* globalCtx);
void BgDodoago_Draw(Actor* thisx, GlobalContext* globalCtx);
void BgDodoago_SetupAction(BgDodoago* this, ActorFunc actionFunc);
// void func_80871A08(Vec3f* vec, GlobalContext* globalCtx); // Not 100% sure
void func_80871CF4(BgDodoago* this, GlobalContext* globalCtx);
void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx);

View File

@ -4,10 +4,14 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgDodoago;
typedef void (*BgDodoagoActionFunc)(struct BgDodoago*, GlobalContext*);
typedef struct BgDodoago {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0xE8];
/* 0x024C */ ActorFunc actionFunc;
/* 0x024C */ BgDodoagoActionFunc actionFunc;
} BgDodoago; // size = 0x0250
extern const ActorInit Bg_Dodoago_InitVars;

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgDyYoseizo;
typedef void (*BgDyYoseizoActionFunc)(struct BgDyYoseizo*, GlobalContext*);
typedef struct BgDyYoseizo {
/* 0x0000 */ Actor actor;
/* 0x014C */ ActorFunc actionFunc;
/* 0x014C */ BgDyYoseizoActionFunc actionFunc;
/* 0x0150 */ SkelAnime skelAnime;
/* 0x0194 */ char unk_194[0x3720];
} BgDyYoseizo; // size = 0x38B4

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGanonOtyuka;
typedef void (*BgGanonOtyukaActionFunc)(struct BgGanonOtyuka*, GlobalContext*);
typedef struct BgGanonOtyuka {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgGanonOtyukaActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x24];
} BgGanonOtyuka; // size = 0x018C

View File

@ -59,7 +59,7 @@ void BgGateShutter_Init(Actor* thisx, GlobalContext* globalCtx) {
thisx->scale.z = 1.0f;
osSyncPrintf("\n\n");
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 柵でたなぁ ☆☆☆☆☆ \n" VT_RST);
this->actionFunc = (ActorFunc)func_8087828C;
this->actionFunc = func_8087828C;
}
void BgGateShutter_Destroy(Actor* thisx, GlobalContext* globalCtx) {
@ -71,13 +71,13 @@ void BgGateShutter_Destroy(Actor* thisx, GlobalContext* globalCtx) {
void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx) {
if (this->unk_168 == 1 && !(gSaveContext.infTable[7] & 0x40)) {
this->unk_178 = 2;
this->actionFunc = (ActorFunc)func_80878300;
this->actionFunc = func_80878300;
} else if (this->unk_168 == 2) {
this->unk_178 = 2;
this->actionFunc = (ActorFunc)func_80878300;
this->actionFunc = func_80878300;
} else if (this->unk_168 < 0) {
this->unk_178 = 2;
this->actionFunc = (ActorFunc)func_808783D4;
this->actionFunc = func_808783D4;
}
}
@ -91,7 +91,7 @@ void func_80878300(BgGateShutter* this, GlobalContext* globalCtx) {
if (thisx->posRot.pos.x < -89.0f) {
Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP);
this->unk_178 = 0x1E;
this->actionFunc = (ActorFunc)func_808783AC;
this->actionFunc = func_808783AC;
}
}
}
@ -99,7 +99,7 @@ void func_80878300(BgGateShutter* this, GlobalContext* globalCtx) {
void func_808783AC(BgGateShutter* this, GlobalContext* globalCtx) {
if (this->unk_178 == 0) {
this->unk_168 = 0;
this->actionFunc = (ActorFunc)func_8087828C;
this->actionFunc = func_8087828C;
}
}
@ -114,7 +114,7 @@ void func_808783D4(BgGateShutter* this, GlobalContext* globalCtx) {
thisx->posRot.pos.x = 91.0f;
Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP);
this->unk_178 = 30;
this->actionFunc = (ActorFunc)func_808783AC;
this->actionFunc = func_808783AC;
}
}
}

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGateShutter;
typedef void (*BgGateShutterActionFunc)(struct BgGateShutter*, GlobalContext*);
typedef struct BgGateShutter {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgGateShutterActionFunc actionFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016C */ f32 somePosX;
/* 0x0170 */ f32 somePosY;

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGjyoBridge;
typedef void (*BgGjyoBridgeActionFunc)(struct BgGjyoBridge*, GlobalContext*);
typedef struct BgGjyoBridge {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgGjyoBridgeActionFunc actionFunc;
} BgGjyoBridge; // size = 0x0168
extern const ActorInit Bg_Gjyo_Bridge_InitVars;

View File

@ -4,10 +4,14 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGndDarkmeiro;
typedef void (*BgGndDarkmeiroActionFunc)(struct BgGndDarkmeiro*, GlobalContext*);
typedef struct BgGndDarkmeiro {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0x8];
/* 0x016C */ ActorFunc actionFunc;
/* 0x016C */ BgGndDarkmeiroActionFunc actionFunc;
} BgGndDarkmeiro; // size = 0x0170
extern const ActorInit Bg_Gnd_Darkmeiro_InitVars;

View File

@ -4,11 +4,15 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGndFiremeiro;
typedef void (*BgGndFiremeiroActionFunc)(struct BgGndFiremeiro*, GlobalContext*);
typedef struct BgGndFiremeiro {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ Vec3f unk_164;
/* 0x0170 */ char unk_170[0x4];
/* 0x0174 */ ActorFunc actionFunc;
/* 0x0174 */ BgGndFiremeiroActionFunc actionFunc;
} BgGndFiremeiro; // size = 0x0178
extern const ActorInit Bg_Gnd_Firemeiro_InitVars;

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGndIceblock;
typedef void (*BgGndIceblockActionFunc)(struct BgGndIceblock*, GlobalContext*);
typedef struct BgGndIceblock {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgGndIceblockActionFunc actionFunc;
/* 0x0168 */ Vec3f unk_168;
} BgGndIceblock; // size = 0x0174

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGndNisekabe;
typedef struct BgGndNisekabe {
/* 0x0000 */ Actor actor;
} BgGndNisekabe; // size = 0x014C

View File

@ -4,10 +4,14 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgGndSoulmeiro;
typedef void (*BgGndSoulmeiroActionFunc)(struct BgGndSoulmeiro*, GlobalContext*);
typedef struct BgGndSoulmeiro {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x50];
/* 0x019C */ ActorFunc actionFunc;
/* 0x019C */ BgGndSoulmeiroActionFunc actionFunc;
} BgGndSoulmeiro; // size = 0x01A0
extern const ActorInit Bg_Gnd_Soulmeiro_InitVars;

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHaka;
typedef void (*BgHakaActionFunc)(struct BgHaka*, GlobalContext*);
typedef struct BgHaka {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaActionFunc actionFunc;
} BgHaka; // size = 0x0168
extern const ActorInit Bg_Haka_InitVars;

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaGate;
typedef void (*BgHakaGateActionFunc)(struct BgHakaGate*, GlobalContext*);
typedef struct BgHakaGate {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaGateActionFunc actionFunc;
/* 0x0168 */ char unk_168[0xC];
} BgHakaGate; // size = 0x0174

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaHuta;
typedef void (*BgHakaHutaActionFunc)(struct BgHakaHuta*, GlobalContext*);
typedef struct BgHakaHuta {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaHutaActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x4];
} BgHakaHuta; // size = 0x016C

View File

@ -62,7 +62,7 @@ void BgHakaMegane_Init(Actor* thisx, GlobalContext* globalCtx) {
if (this->objBankIndex < 0) {
Actor_Kill(thisx);
} else {
this->actionFunc = (ActorFunc)func_8087DB24;
this->actionFunc = func_8087DB24;
}
}
@ -81,7 +81,7 @@ void func_8087DB24(BgHakaMegane* this, GlobalContext* globalCtx) {
this->dyna.actor.draw = BgHakaMegane_Draw;
Actor_SetObjectDependency(globalCtx, &this->dyna.actor);
if (globalCtx->roomCtx.curRoom.showInvisActors) {
this->actionFunc = (ActorFunc)func_8087DBF0;
this->actionFunc = func_8087DBF0;
collision = collisions[this->dyna.actor.params];
if (collision != 0) {
DynaPolyInfo_Alloc(collision, &localC);
@ -89,7 +89,7 @@ void func_8087DB24(BgHakaMegane* this, GlobalContext* globalCtx) {
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localC);
}
} else {
this->actionFunc = (ActorFunc)func_8087DC64;
this->actionFunc = func_8087DC64;
}
}
}

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaMegane;
typedef void (*BgHakaMeganeActionFunc)(struct BgHakaMegane*, GlobalContext*);
typedef struct BgHakaMegane {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaMeganeActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x1];
/* 0x0169 */ s8 objBankIndex;
/* 0x016A */ char unk_16A[0x2];

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaMeganeBG;
typedef void (*BgHakaMeganeBGActionFunc)(struct BgHakaMeganeBG*, GlobalContext*);
typedef struct BgHakaMeganeBG {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaMeganeBGActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x1];
/* 0x0169 */ s8 unk_169; // objBankIndex ?
/* 0x016A */ char unk_16A[0x2];

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaSgami;
typedef void (*BgHakaSgamiActionFunc)(struct BgHakaSgami*, GlobalContext*);
typedef struct BgHakaSgami {
/* 0x0000 */ Actor actor;
/* 0x014C */ ActorFunc actionFunc;
/* 0x014C */ BgHakaSgamiActionFunc actionFunc;
/* 0x0150 */ char unk_150[0x1E8];
} BgHakaSgami; // size = 0x0338

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaShip;
typedef void (*BgHakaShipActionFunc)(struct BgHakaShip*, GlobalContext*);
typedef struct BgHakaShip {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaShipActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x2];
/* 0x016A */ char unk_16A[0x2];
/* 0x016C */ Vec3f unk_16C;

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaTrap;
typedef void (*BgHakaTrapActionFunc)(struct BgHakaTrap*, GlobalContext*);
typedef struct BgHakaTrap {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaTrapActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x134];
} BgHakaTrap; // size = 0x029C

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaTubo;
typedef void (*BgHakaTuboActionFunc)(struct BgHakaTubo*, GlobalContext*);
typedef struct BgHakaTubo {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHakaTuboActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x9C];
} BgHakaTubo; // size = 0x0204

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaWater;
typedef void (*BgHakaWaterActionFunc)(struct BgHakaWater*, GlobalContext*);
typedef struct BgHakaWater {
/* 0x0000 */ Actor actor;
/* 0x014C */ ActorFunc actionFunc;
/* 0x014C */ BgHakaWaterActionFunc actionFunc;
/* 0x0150 */ char unk_150[0x4];
} BgHakaWater; // size = 0x0154

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHakaZou;
typedef struct BgHakaZou {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x6C];
} BgHakaZou; // size = 0x01B8

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHeavyBlock;
typedef struct BgHeavyBlock {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x2C];
} BgHeavyBlock; // size = 0x0178

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanCurtain;
typedef struct BgHidanCurtain {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x58];
} BgHidanCurtain; // size = 0x01A4

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanDalm;
typedef struct BgHidanDalm {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1B0];
} BgHidanDalm; // size = 0x02FC

View File

@ -69,7 +69,7 @@ void BgHidanFirewall_Init(Actor* thisx, GlobalContext* globalCtx) {
func_80061ED4(&this->actor.colChkInfo, NULL, &colChkInfoInit);
this->actionFunc = (ActorFunc)BgHidanFirewall_Wait;
this->actionFunc = BgHidanFirewall_Wait;
}
void BgHidanFirewall_Destroy(Actor* thisx, GlobalContext* globalCtx) {
@ -95,7 +95,7 @@ void BgHidanFirewall_Wait(BgHidanFirewall* this, GlobalContext* globalCtx) {
if (BgHidanFirewall_CheckProximity(this, globalCtx) != 0) {
this->actor.draw = BgHidanFirewall_Draw;
this->actor.params = 5;
this->actionFunc = (ActorFunc)BgHidanFirewall_Countdown;
this->actionFunc = BgHidanFirewall_Countdown;
}
}
@ -105,7 +105,7 @@ void BgHidanFirewall_Countdown(BgHidanFirewall* this, GlobalContext* globalCtx)
this->actor.params--;
}
if (this->actor.params == 0) {
this->actionFunc = (ActorFunc)BgHidanFirewall_Erupt;
this->actionFunc = BgHidanFirewall_Erupt;
}
}
@ -115,7 +115,7 @@ void BgHidanFirewall_Erupt(BgHidanFirewall* this, GlobalContext* globalCtx) {
} else {
if (Math_ApproxF(&this->actor.scale.y, 0.01f, 0.01f) != 0) {
this->actor.draw = NULL;
this->actionFunc = (ActorFunc)BgHidanFirewall_Wait;
this->actionFunc = BgHidanFirewall_Wait;
} else {
this->actor.params = 0;
}
@ -182,7 +182,7 @@ void BgHidanFirewall_Update(Actor* thisx, GlobalContext* globalCtx) {
}
this->actionFunc(this, globalCtx);
if (this->actionFunc == (ActorFunc)BgHidanFirewall_Erupt) {
if (this->actionFunc == BgHidanFirewall_Erupt) {
BgHidanFirewall_ColliderFollowPlayer(this, globalCtx);
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider);

View File

@ -4,11 +4,15 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ ActorFunc actionFunc;
/* 0x0150 */ s16 unk_150;
/* 0x0154 */ ColliderCylinder collider;
struct BgHidanFirewall;
typedef void (*BgHidanFirewallActionFunc)(struct BgHidanFirewall*, GlobalContext*);
typedef struct BgHidanFirewall {
/* 0x0000 */ Actor actor;
/* 0x014C */ BgHidanFirewallActionFunc actionFunc;
/* 0x0150 */ s16 unk_150;
/* 0x0154 */ ColliderCylinder collider;
} BgHidanFirewall; // size = 0x01A0
#endif

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanFslift;
typedef void (*BgHidanFsliftActionFunc)(struct BgHidanFslift*, GlobalContext*);
typedef struct BgHidanFslift {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHidanFsliftActionFunc actionFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ s16 unk_16A;
} BgHidanFslift; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanFwbig;
typedef struct BgHidanFwbig {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x54];
} BgHidanFwbig; // size = 0x01A0

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanHamstep;
typedef struct BgHidanHamstep {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xFC];
} BgHidanHamstep; // size = 0x0248

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanHrock;
typedef struct BgHidanHrock {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xF8];
} BgHidanHrock; // size = 0x0244

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanKousi;
typedef struct BgHidanKousi {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
} BgHidanKousi; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanKowarerukabe;
typedef struct BgHidanKowarerukabe {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x78];
} BgHidanKowarerukabe; // size = 0x01C4

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanRock;
typedef struct BgHidanRock {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x7C];
} BgHidanRock; // size = 0x01C8

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanRsekizou;
typedef struct BgHidanRsekizou {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1BC];
} BgHidanRsekizou; // size = 0x0308

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanSekizou;
typedef struct BgHidanSekizou {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1C8];
} BgHidanSekizou; // size = 0x0314

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanSima;
typedef struct BgHidanSima {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xC0];
} BgHidanSima; // size = 0x020C

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgHidanSyoku;
typedef void (*BgHidanSyokuActionFunc)(struct BgHidanSyoku*, GlobalContext*);
typedef struct BgHidanSyoku {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgHidanSyokuActionFunc actionFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ s16 unk_16A;
} BgHidanSyoku; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgIceObjects;
typedef struct BgIceObjects {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x28];
} BgIceObjects; // size = 0x0174

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgIceShelter;
typedef struct BgIceShelter {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xB8];
} BgIceShelter; // size = 0x0204

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgIceShutter;
typedef void (*BgIceShutterActionFunc)(struct BgIceShutter*, GlobalContext*);
typedef struct BgIceShutter {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgIceShutterActionFunc actionFunc;
} BgIceShutter; // size = 0x0168
extern const ActorInit Bg_Ice_Shutter_InitVars;

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgIceTurara;
typedef struct BgIceTurara {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x6C];
} BgIceTurara; // size = 0x01B8

View File

@ -15,7 +15,6 @@ void BgIngate_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgIngate_Update(Actor* thisx, GlobalContext* globalCtx);
void BgIngate_Draw(Actor* thisx, GlobalContext* globalCtx);
void BgIngate_SetupAction(BgIngate* this, ActorFunc actionFunc);
void func_80892890(BgIngate* this, GlobalContext* globalCtx);
void func_80892990(BgIngate* this, GlobalContext* globalCtx);

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgIngate;
typedef void (*BgIngateActionFunc)(struct BgIngate*, GlobalContext*);
typedef struct BgIngate {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgIngateActionFunc actionFunc;
} BgIngate; // size = 0x0168
extern const ActorInit Bg_Ingate_InitVars;

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJya1flift;
typedef struct BgJya1flift {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x70];
} BgJya1flift; // size = 0x01BC

View File

@ -4,11 +4,15 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaAmishutter;
typedef void (*BgJyaAmishutterActionFunc)(struct BgJyaAmishutter*);
typedef struct BgJyaAmishutter {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ char unk_150[0x14];
/* 0x0164 */ void (*actionFunc)(Actor*);
/* 0x0164 */ BgJyaAmishutterActionFunc actionFunc;
} BgJyaAmishutter; // size = 0x0168
extern const ActorInit Bg_Jya_Amishutter_InitVars;

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaBigmirror;
typedef struct BgJyaBigmirror {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x28];
} BgJyaBigmirror; // size = 0x0174

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaBlock;
typedef struct BgJyaBlock {
/* 0x0000 */ DynaPolyActor dyna;
} BgJyaBlock; // size = 0x0164

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaBombchuiwa;
typedef struct BgJyaBombchuiwa {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x6C];
} BgJyaBombchuiwa; // size = 0x01B8

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaBombiwa;
typedef struct BgJyaBombiwa {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x7C];
} BgJyaBombiwa; // size = 0x01C8

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaCobra;
typedef struct BgJyaCobra {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1058];
} BgJyaCobra; // size = 0x11A4

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaGoroiwa;
typedef struct BgJyaGoroiwa {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x70];
} BgJyaGoroiwa; // size = 0x01BC

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaHaheniron;
typedef struct BgJyaHaheniron {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x68];
} BgJyaHaheniron; // size = 0x01B4

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaIronobj;
typedef struct BgJyaIronobj {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x68];
} BgJyaIronobj; // size = 0x01B4

View File

@ -4,11 +4,15 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaKanaami;
typedef void (*BgJyaKanaamiActionFunc)(struct BgJyaKanaami*, GlobalContext*);
typedef struct BgJyaKanaami {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x014C */ char unk_150[0x14];
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgJyaKanaamiActionFunc actionFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ s16 unk_16A;
} BgJyaKanaami; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaLift;
typedef struct BgJyaLift {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
} BgJyaLift; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaMegami;
typedef struct BgJyaMegami {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1F0];
} BgJyaMegami; // size = 0x033C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgJyaZurerukabe;
typedef struct BgJyaZurerukabe {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x24];
} BgJyaZurerukabe; // size = 0x0170

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMenkuriEye;
typedef struct BgMenkuriEye {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x4];
/* 0x0150 */ Collider collider;

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMenkuriKaiten;
typedef struct BgMenkuriKaiten {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ char unk_150[0x14];

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMenkuriNisekabe;
typedef struct BgMenkuriNisekabe {
/* 0x0000 */ Actor actor;
} BgMenkuriNisekabe; // size = 0x014C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMizuBwall;
typedef struct BgMizuBwall {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x170];
} BgMizuBwall; // size = 0x02BC

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMizuMovebg;
typedef struct BgMizuMovebg {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x3C];
} BgMizuMovebg; // size = 0x0188

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMizuShutter;
typedef struct BgMizuShutter {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x44];
} BgMizuShutter; // size = 0x0190

View File

@ -4,9 +4,13 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMizuUzu;
typedef void (*BgMizuUzuActionFunc)(struct BgMizuUzu*, GlobalContext*);
typedef struct BgMizuUzu {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0164 */ BgMizuUzuActionFunc actionFunc;
} BgMizuUzu; // size = 0x0168
extern const ActorInit Bg_Mizu_Uzu_InitVars;

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMizuWater;
typedef struct BgMizuWater {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x14];
} BgMizuWater; // size = 0x0160

View File

@ -15,7 +15,6 @@ void BgMjin_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgMjin_Update(Actor* thisx, GlobalContext* globalCtx);
void BgMjin_Draw(Actor* thisx, GlobalContext* globalCtx);
void BgMjin_SetupAction(BgMjin* this, ActorFunc actionFunc);
void func_808A0850(BgMjin* this, GlobalContext* globalCtx);
void func_808A0920(BgMjin* this, GlobalContext* globalCtx);
@ -46,7 +45,7 @@ static InitChainEntry initChain[] = {
static s16 objectTbl[] = { OBJECT_MJIN_FLASH, OBJECT_MJIN_DARK, OBJECT_MJIN_FLAME,
OBJECT_MJIN_ICE, OBJECT_MJIN_SOUL, OBJECT_MJIN_WIND };
void BgMjin_SetupAction(BgMjin* this, ActorFunc actionFunc) {
void BgMjin_SetupAction(BgMjin* this, BgMjinActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
@ -60,7 +59,7 @@ void BgMjin_Init(Actor* thisx, GlobalContext* globalCtx) {
if (objBankIndex < 0) {
Actor_Kill(thisx);
} else {
BgMjin_SetupAction(this, &func_808A0850);
BgMjin_SetupAction(this, func_808A0850);
}
}
@ -84,7 +83,7 @@ void func_808A0850(BgMjin* this, GlobalContext* globalCtx) {
DynaPolyInfo_Alloc(collision, &local_c);
this->dyna.dynaPolyId =
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, local_c);
BgMjin_SetupAction(this, &func_808A0920);
BgMjin_SetupAction(this, func_808A0920);
this->dyna.actor.draw = BgMjin_Draw;
}
}

View File

@ -4,10 +4,14 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMjin;
typedef void (*BgMjinActionFunc)(struct BgMjin*, GlobalContext*);
typedef struct BgMjin {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ s8 objBankIndex;
/* 0x0168 */ ActorFunc actionFunc;
/* 0x0168 */ BgMjinActionFunc actionFunc;
} BgMjin; // size = 0x016C
extern const ActorInit Bg_Mjin_InitVars;

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMoriBigst;
typedef struct BgMoriBigst {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
} BgMoriBigst; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMoriElevator;
typedef struct BgMoriElevator {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x28];
} BgMoriElevator; // size = 0x0174

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMoriHashigo;
typedef struct BgMoriHashigo {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x84];
} BgMoriHashigo; // size = 0x01D0

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMoriHashira4;
typedef struct BgMoriHashira4 {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
} BgMoriHashira4; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMoriHineri;
typedef struct BgMoriHineri {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
} BgMoriHineri; // size = 0x016C

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMoriIdomizu;
typedef struct BgMoriIdomizu {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x14];
} BgMoriIdomizu; // size = 0x0160

View File

@ -4,7 +4,9 @@
#include <ultra64.h>
#include <global.h>
typedef struct {
struct BgMoriKaitenkabe;
typedef struct BgMoriKaitenkabe {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x3C];
} BgMoriKaitenkabe; // size = 0x0188

Some files were not shown because too many files have changed in this diff Show More