mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-03 22:44:30 +00:00
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:
parent
f114df8929
commit
1425678d8a
477 changed files with 1817 additions and 792 deletions
|
@ -16,9 +16,13 @@ typedef enum {
|
||||||
/* 0x0B */ A_OBJ_KNOB
|
/* 0x0B */ A_OBJ_KNOB
|
||||||
} AObjType;
|
} AObjType;
|
||||||
|
|
||||||
typedef struct {
|
struct EnAObj;
|
||||||
|
|
||||||
|
typedef void (*EnAObjActionFunc)(struct EnAObj*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct EnAObj {
|
||||||
/* 0x000 */ DynaPolyActor dyna;
|
/* 0x000 */ DynaPolyActor dyna;
|
||||||
/* 0x164 */ ActorFunc actionFunc;
|
/* 0x164 */ EnAObjActionFunc actionFunc;
|
||||||
/* 0x168 */ s32 unk_168;
|
/* 0x168 */ s32 unk_168;
|
||||||
/* 0x16C */ s16 textId;
|
/* 0x16C */ s16 textId;
|
||||||
/* 0x16E */ s16 unk_16E;
|
/* 0x16E */ s16 unk_16E;
|
||||||
|
@ -66,7 +70,7 @@ extern ColliderCylinderInit D_80115440;
|
||||||
extern u32 D_8011546C[];
|
extern u32 D_8011546C[];
|
||||||
extern u32 D_80115484[];
|
extern u32 D_80115484[];
|
||||||
|
|
||||||
void EnAObj_SetupAction(EnAObj* this, ActorFunc actionFunc) {
|
void EnAObj_SetupAction(EnAObj* this, EnAObjActionFunc actionFunc) {
|
||||||
this->actionFunc = actionFunc;
|
this->actionFunc = actionFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +196,7 @@ void func_8001D204(EnAObj* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8001D234(EnAObj* this, s16 params) {
|
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) {
|
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;
|
var = this->dyna.actor.rotTowardsLinkY - this->dyna.actor.shape.rot.y;
|
||||||
if ((ABS(var) < 0x2800) || ((this->dyna.actor.params == 0xA) && (ABS(var) > 0x5800))) {
|
if ((ABS(var) < 0x2800) || ((this->dyna.actor.params == 0xA) && (ABS(var) > 0x5800))) {
|
||||||
if (func_8002F194(&this->dyna.actor, globalCtx)) {
|
if (func_8002F194(&this->dyna.actor, globalCtx)) {
|
||||||
EnAObj_SetupAction(this, (ActorFunc)func_8001D204);
|
EnAObj_SetupAction(this, func_8001D204);
|
||||||
} else {
|
} else {
|
||||||
func_8002F2F4(&this->dyna.actor, globalCtx);
|
func_8002F2F4(&this->dyna.actor, globalCtx);
|
||||||
}
|
}
|
||||||
|
@ -215,7 +219,7 @@ void func_8001D310(EnAObj* this, s16 params) {
|
||||||
this->unk_168 = 10;
|
this->unk_168 = 10;
|
||||||
this->dyna.actor.posRot.rot.y = 0;
|
this->dyna.actor.posRot.rot.y = 0;
|
||||||
this->dyna.actor.shape.rot = this->dyna.actor.posRot.rot;
|
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) {
|
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) {
|
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) {
|
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) {
|
void func_8001D5C8(EnAObj* this, s16 params) {
|
||||||
this->dyna.actor.unk_FC = 1200.0f;
|
this->dyna.actor.unk_FC = 1200.0f;
|
||||||
this->dyna.actor.unk_F8 = 720.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) {
|
void func_8001D608(EnAObj* this, GlobalContext* globalCtx) {
|
||||||
|
|
|
@ -30,9 +30,13 @@ typedef enum {
|
||||||
/* 0x19 */ ITEM00_BOMBS_SPECIAL
|
/* 0x19 */ ITEM00_BOMBS_SPECIAL
|
||||||
} Item00Type;
|
} Item00Type;
|
||||||
|
|
||||||
typedef struct {
|
struct EnItem00;
|
||||||
|
|
||||||
|
typedef void (*EnItem00ActionFunc)(struct EnItem00*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct EnItem00 {
|
||||||
/* 0x000 */ Actor actor;
|
/* 0x000 */ Actor actor;
|
||||||
/* 0x14C */ ActorFunc actionFunc;
|
/* 0x14C */ EnItem00ActionFunc actionFunc;
|
||||||
/* 0x150 */ s16 collectibleFlag;
|
/* 0x150 */ s16 collectibleFlag;
|
||||||
/* 0x152 */ s16 unk_152;
|
/* 0x152 */ s16 unk_152;
|
||||||
/* 0x154 */ s16 unk_154;
|
/* 0x154 */ s16 unk_154;
|
||||||
|
@ -83,7 +87,7 @@ extern u8 D_80115664[];
|
||||||
|
|
||||||
// Internal Actor Functions
|
// Internal Actor Functions
|
||||||
|
|
||||||
void EnItem00_SetupAction(EnItem00* this, ActorFunc actionFunc) {
|
void EnItem00_SetupAction(EnItem00* this, EnItem00ActionFunc actionFunc) {
|
||||||
this->actionFunc = actionFunc;
|
this->actionFunc = actionFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,7 +232,7 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
this->unk_152 = 0;
|
this->unk_152 = 0;
|
||||||
|
|
||||||
if (!spawnParam8000) {
|
if (!spawnParam8000) {
|
||||||
EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8);
|
EnItem00_SetupAction(this, func_8001DFC8);
|
||||||
this->unk_15A = -1;
|
this->unk_15A = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -310,7 +314,7 @@ void EnItem00_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
func_8002F554(&this->actor, globalCtx, getItemId);
|
func_8002F554(&this->actor, globalCtx, getItemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8);
|
EnItem00_SetupAction(this, func_8001E5C8);
|
||||||
this->actionFunc(this, globalCtx);
|
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)) {
|
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) {
|
if (this->actor.bgCheckFlags & 0x0003) {
|
||||||
originalVelocity = this->actor.velocity.y;
|
originalVelocity = this->actor.velocity.y;
|
||||||
if (originalVelocity > -2.0f) {
|
if (originalVelocity > -2.0f) {
|
||||||
EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8);
|
EnItem00_SetupAction(this, func_8001DFC8);
|
||||||
this->actor.velocity.y = 0.0f;
|
this->actor.velocity.y = 0.0f;
|
||||||
} else {
|
} else {
|
||||||
this->actor.velocity.y = originalVelocity * -0.8f;
|
this->actor.velocity.y = originalVelocity * -0.8f;
|
||||||
|
@ -440,7 +444,7 @@ void func_8001E304(EnItem00* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->actor.bgCheckFlags & 0x0003) {
|
if (this->actor.bgCheckFlags & 0x0003) {
|
||||||
EnItem00_SetupAction(this, (ActorFunc)func_8001DFC8);
|
EnItem00_SetupAction(this, func_8001DFC8);
|
||||||
this->actor.shape.rot.z = 0;
|
this->actor.shape.rot.z = 0;
|
||||||
this->actor.velocity.y = 0.0f;
|
this->actor.velocity.y = 0.0f;
|
||||||
this->actor.speedXZ = 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);
|
Actor_SetScale(&this->actor, this->unk_15C);
|
||||||
|
|
||||||
this->unk_152 = 0;
|
this->unk_152 = 0;
|
||||||
EnItem00_SetupAction(this, (ActorFunc)func_8001E5C8);
|
EnItem00_SetupAction(this, func_8001E5C8);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw Function prototypes (used in EnItem00_Draw)
|
// 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.gravity = -0.9f;
|
||||||
spawnedActor->actor.posRot.rot.y = Math_Rand_CenteredFloat(65536.0f);
|
spawnedActor->actor.posRot.rot.y = Math_Rand_CenteredFloat(65536.0f);
|
||||||
Actor_SetScale(&spawnedActor->actor, 0.0f);
|
Actor_SetScale(&spawnedActor->actor, 0.0f);
|
||||||
EnItem00_SetupAction(spawnedActor, (ActorFunc)func_8001E304);
|
EnItem00_SetupAction(spawnedActor, func_8001E304);
|
||||||
spawnedActor->unk_15A = 220;
|
spawnedActor->unk_15A = 220;
|
||||||
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
|
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
|
||||||
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
|
(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.gravity = -0.9f;
|
||||||
spawnedActor->actor.posRot.rot.y = Math_Rand_ZeroOne() * 40000.0f;
|
spawnedActor->actor.posRot.rot.y = Math_Rand_ZeroOne() * 40000.0f;
|
||||||
Actor_SetScale(&spawnedActor->actor, 0.0f);
|
Actor_SetScale(&spawnedActor->actor, 0.0f);
|
||||||
EnItem00_SetupAction(spawnedActor, (ActorFunc)func_8001E304);
|
EnItem00_SetupAction(spawnedActor, func_8001E304);
|
||||||
spawnedActor->actor.flags |= 0x0010;
|
spawnedActor->actor.flags |= 0x0010;
|
||||||
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
|
if ((spawnedActor->actor.params != ITEM00_SMALL_KEY) &&
|
||||||
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
|
(spawnedActor->actor.params != ITEM00_HEART_PIECE) &&
|
||||||
|
|
|
@ -9,7 +9,6 @@ void ArmsHook_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void ArmsHook_Update(Actor* thisx, GlobalContext* globalCtx);
|
void ArmsHook_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void ArmsHook_Draw(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);
|
void func_80864FC4(ArmsHook* this, GlobalContext* globalCtx);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct ArmsHook;
|
||||||
|
|
||||||
|
typedef void (*ArmsHookActionFunc)(struct ArmsHook*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct ArmsHook {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0xC8];
|
/* 0x014C */ char unk_14C[0xC8];
|
||||||
/* 0x0214 */ ActorFunc actionFunc;
|
/* 0x0214 */ ArmsHookActionFunc actionFunc;
|
||||||
} ArmsHook; // size = 0x0218
|
} ArmsHook; // size = 0x0218
|
||||||
|
|
||||||
extern const ActorInit Arms_Hook_InitVars;
|
extern const ActorInit Arms_Hook_InitVars;
|
||||||
|
|
|
@ -39,7 +39,7 @@ static InitChainEntry initChain[] = {
|
||||||
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
|
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
|
||||||
};
|
};
|
||||||
|
|
||||||
void ArrowFire_SetupAction(ArrowFire* this, ActorFunc* actionFunc) {
|
void ArrowFire_SetupAction(ArrowFire* this, ArrowFireActionFunc actionFunc) {
|
||||||
this->actionFunc = actionFunc;
|
this->actionFunc = actionFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,12 +4,16 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct ArrowFire;
|
||||||
|
|
||||||
|
typedef void (*ArrowFireActionFunc)(struct ArrowFire*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct ArrowFire {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ Vec3f unkPos;
|
/* 0x014C */ Vec3f unkPos;
|
||||||
/* 0x0158 */ f32 unk_158;
|
/* 0x0158 */ f32 unk_158;
|
||||||
/* 0x015C */ f32 unk_15C;
|
/* 0x015C */ f32 unk_15C;
|
||||||
/* 0x0160 */ ActorFunc actionFunc;
|
/* 0x0160 */ ArrowFireActionFunc actionFunc;
|
||||||
/* 0x0164 */ s16 radius;
|
/* 0x0164 */ s16 radius;
|
||||||
/* 0x0166 */ u16 timer;
|
/* 0x0166 */ u16 timer;
|
||||||
/* 0x0168 */ u8 alpha;
|
/* 0x0168 */ u8 alpha;
|
||||||
|
|
|
@ -39,7 +39,7 @@ static InitChainEntry initChain[] = {
|
||||||
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
|
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
|
||||||
};
|
};
|
||||||
|
|
||||||
void ArrowIce_SetupAction(ArrowIce* this, ActorFunc* actionFunc) {
|
void ArrowIce_SetupAction(ArrowIce* this, ArrowIceActionFunc actionFunc) {
|
||||||
this->actionFunc = actionFunc;
|
this->actionFunc = actionFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,11 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct ArrowIce;
|
||||||
|
|
||||||
|
typedef void (*ArrowIceActionFunc)(struct ArrowIce*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct ArrowIce {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ s16 radius;
|
/* 0x014C */ s16 radius;
|
||||||
/* 0x014E */ u16 timer;
|
/* 0x014E */ u16 timer;
|
||||||
|
@ -12,7 +16,7 @@ typedef struct {
|
||||||
/* 0x0154 */ Vec3f unkPos;
|
/* 0x0154 */ Vec3f unkPos;
|
||||||
/* 0x0160 */ f32 unk_160;
|
/* 0x0160 */ f32 unk_160;
|
||||||
/* 0x0164 */ f32 unk_164;
|
/* 0x0164 */ f32 unk_164;
|
||||||
/* 0x0168 */ ActorFunc actionFunc;
|
/* 0x0168 */ ArrowIceActionFunc actionFunc;
|
||||||
} ArrowIce; // size = 0x016C
|
} ArrowIce; // size = 0x016C
|
||||||
|
|
||||||
extern const ActorInit Arrow_Ice_InitVars;
|
extern const ActorInit Arrow_Ice_InitVars;
|
||||||
|
|
|
@ -39,7 +39,7 @@ static InitChainEntry initChain[] = {
|
||||||
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
|
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
|
||||||
};
|
};
|
||||||
|
|
||||||
void ArrowLight_SetupAction(ArrowLight* this, ActorFunc* actionFunc) {
|
void ArrowLight_SetupAction(ArrowLight* this, ArrowLightActionFunc actionFunc) {
|
||||||
this->actionFunc = actionFunc;
|
this->actionFunc = actionFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,11 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct ArrowLight;
|
||||||
|
|
||||||
|
typedef void (*ArrowLightActionFunc)(struct ArrowLight*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct ArrowLight {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ s16 radius;
|
/* 0x014C */ s16 radius;
|
||||||
/* 0x014E */ u16 timer;
|
/* 0x014E */ u16 timer;
|
||||||
|
@ -12,7 +16,7 @@ typedef struct {
|
||||||
/* 0x0154 */ Vec3f unkPos;
|
/* 0x0154 */ Vec3f unkPos;
|
||||||
/* 0x0160 */ f32 unk_160;
|
/* 0x0160 */ f32 unk_160;
|
||||||
/* 0x0164 */ f32 unk_164;
|
/* 0x0164 */ f32 unk_164;
|
||||||
/* 0x0168 */ ActorFunc actionFunc;
|
/* 0x0168 */ ArrowLightActionFunc actionFunc;
|
||||||
} ArrowLight; // size = 0x016C
|
} ArrowLight; // size = 0x016C
|
||||||
|
|
||||||
extern const ActorInit Arrow_Light_InitVars;
|
extern const ActorInit Arrow_Light_InitVars;
|
||||||
|
|
|
@ -108,7 +108,7 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
if (thisx->params == 2) {
|
if (thisx->params == 2) {
|
||||||
thisx->flags |= 0x30;
|
thisx->flags |= 0x30;
|
||||||
globalCtx->colCtx.stat.colHeader->waterBoxes[7].unk_02 = thisx->posRot.pos.y;
|
globalCtx->colCtx.stat.colHeader->waterBoxes[7].unk_02 = thisx->posRot.pos.y;
|
||||||
this->actionFunc = (ActorFunc)func_8086C9A8;
|
this->actionFunc = func_8086C9A8;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (thisx->params == 0) {
|
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);
|
thisx->posRot.pos.y = (f32)(thisx->posRot.pos.y + -79.0f);
|
||||||
if (Flags_GetClear(globalCtx, thisx->room)) {
|
if (Flags_GetClear(globalCtx, thisx->room)) {
|
||||||
Flags_SetSwitch(globalCtx, this->unk_168);
|
Flags_SetSwitch(globalCtx, this->unk_168);
|
||||||
this->actionFunc = (ActorFunc)func_8086C6EC;
|
this->actionFunc = func_8086C6EC;
|
||||||
} else {
|
} else {
|
||||||
if (BgBdanObjects_GetContactRu1(this, 4)) {
|
if (BgBdanObjects_GetContactRu1(this, 4)) {
|
||||||
if (Actor_SpawnAttached(&globalCtx->actorCtx, this, globalCtx, ACTOR_EN_BIGOKUTA,
|
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->attachedB->posRot.pos.z = thisx->attachedB->initPosRot.pos.z + 263.0f;
|
||||||
}
|
}
|
||||||
thisx->posRot.rot.y = 0;
|
thisx->posRot.rot.y = 0;
|
||||||
this->actionFunc = (ActorFunc)func_8086C618;
|
this->actionFunc = func_8086C618;
|
||||||
thisx->posRot.pos.y = thisx->initPosRot.pos.y + -70.0f;
|
thisx->posRot.pos.y = thisx->initPosRot.pos.y + -70.0f;
|
||||||
} else {
|
} else {
|
||||||
Flags_SetSwitch(globalCtx, this->unk_168);
|
Flags_SetSwitch(globalCtx, this->unk_168);
|
||||||
this->unk_16A = 0;
|
this->unk_16A = 0;
|
||||||
this->actionFunc = (ActorFunc)func_8086C054;
|
this->actionFunc = func_8086C054;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -140,14 +140,14 @@ void BgBdanObjects_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
DynaPolyInfo_Alloc(&D_06005048, &localC);
|
DynaPolyInfo_Alloc(&D_06005048, &localC);
|
||||||
this->unk_16A = 0x200;
|
this->unk_16A = 0x200;
|
||||||
this->unk_168 = 0;
|
this->unk_168 = 0;
|
||||||
this->actionFunc = (ActorFunc)func_8086C874;
|
this->actionFunc = func_8086C874;
|
||||||
} else {
|
} else {
|
||||||
DynaPolyInfo_Alloc(&D_06005580, &localC);
|
DynaPolyInfo_Alloc(&D_06005580, &localC);
|
||||||
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
|
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;
|
thisx->posRot.pos.y = thisx->initPosRot.pos.y - 400.0f;
|
||||||
} else {
|
} 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;
|
this->unk_16A -= 1;
|
||||||
}
|
}
|
||||||
if (this->unk_16A == 0) {
|
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,
|
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) {
|
1.0f) < 0.1f) {
|
||||||
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
|
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
|
||||||
this->actionFunc = (ActorFunc)func_8086C29C;
|
this->actionFunc = func_8086C29C;
|
||||||
this->unk_16A = 0x1E;
|
this->unk_16A = 0x1E;
|
||||||
BgBdanObjects_SetContactRu1(this, 2);
|
BgBdanObjects_SetContactRu1(this, 2);
|
||||||
func_800AA000(0.0f, 0xFF, 0x14, 0x96);
|
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);
|
this->dyna.actor.posRot.pos.z, 0, this->dyna.actor.shape.rot.y + 0x8000, 0, 0);
|
||||||
BgBdanObjects_SetContactRu1(this, 4);
|
BgBdanObjects_SetContactRu1(this, 4);
|
||||||
this->unk_16A = 0xA;
|
this->unk_16A = 0xA;
|
||||||
this->actionFunc = (ActorFunc)func_8086C55C;
|
this->actionFunc = func_8086C55C;
|
||||||
func_8005B1A4(globalCtx->cameraPtrs[globalCtx->activeCamera]);
|
func_8005B1A4(globalCtx->cameraPtrs[globalCtx->activeCamera]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -248,7 +248,7 @@ void func_8086C3D8(BgBdanObjects* this, GlobalContext* globalCtx) {
|
||||||
this->unk_16A = 0x3C;
|
this->unk_16A = 0x3C;
|
||||||
Audio_PlayActorSound2(&this->dyna.actor, 0x289F);
|
Audio_PlayActorSound2(&this->dyna.actor, 0x289F);
|
||||||
this->dyna.actor.attachedB->posRot.pos.y = this->dyna.actor.posRot.pos.y + 140.0f;
|
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);
|
func_800800F8(globalCtx, 0xC08, -0x63, this->dyna.actor.attachedB, 0);
|
||||||
player->actor.posRot.pos.x = -1130.0f;
|
player->actor.posRot.pos.x = -1130.0f;
|
||||||
player->actor.posRot.pos.y = -1025.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);
|
Flags_UnsetSwitch(globalCtx, this->unk_168);
|
||||||
} else if (this->unk_16A == -0x28) {
|
} else if (this->unk_16A == -0x28) {
|
||||||
this->unk_16A = 0;
|
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->unk_16A == 0) {
|
||||||
if (this->dyna.actor.attachedB != NULL) {
|
if (this->dyna.actor.attachedB != NULL) {
|
||||||
if (this->dyna.actor.attachedB->params == 2) {
|
if (this->dyna.actor.attachedB->params == 2) {
|
||||||
this->actionFunc = (ActorFunc)func_8086C618;
|
this->actionFunc = func_8086C618;
|
||||||
} else if (this->dyna.actor.attachedB->params == 0) {
|
} else if (this->dyna.actor.attachedB->params == 0) {
|
||||||
this->dyna.actor.attachedB->params = 1;
|
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)) {
|
if (Flags_GetClear(globalCtx, this->dyna.actor.room)) {
|
||||||
Flags_SetSwitch(globalCtx, this->unk_168);
|
Flags_SetSwitch(globalCtx, this->unk_168);
|
||||||
this->dyna.actor.initPosRot.rot.y = (s16)(this->dyna.actor.shape.rot.y + 0x2000) & 0xC000;
|
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 {
|
} else {
|
||||||
this->dyna.actor.shape.rot.y += this->dyna.actor.posRot.rot.y;
|
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);
|
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);
|
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 (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + -125.0f, 3.0f)) {
|
||||||
if (cond) {
|
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) {
|
void func_8086C76C(BgBdanObjects* this, GlobalContext* globalCtx) {
|
||||||
if (func_8004356C(&this->dyna.actor)) {
|
if (func_8004356C(&this->dyna.actor)) {
|
||||||
if (this->dyna.actor.xzDistanceFromLink < 120.0f) {
|
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);
|
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,
|
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) {
|
0.2f) < 0.01f) {
|
||||||
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
|
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
|
||||||
this->actionFunc = (ActorFunc)func_8086C868;
|
this->actionFunc = func_8086C868;
|
||||||
} else {
|
} else {
|
||||||
func_8002F974(&this->dyna.actor, 0x208F);
|
func_8002F974(&this->dyna.actor, 0x208F);
|
||||||
}
|
}
|
||||||
|
@ -376,7 +376,7 @@ void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) {
|
||||||
void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) {
|
void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) {
|
||||||
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
|
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
|
||||||
this->unk_16A = 0x64;
|
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 (this->unk_16A == 0) {
|
||||||
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y, 0.5f)) {
|
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y, 0.5f)) {
|
||||||
Flags_UnsetSwitch(globalCtx, this->unk_168);
|
Flags_UnsetSwitch(globalCtx, this->unk_168);
|
||||||
this->actionFunc = (ActorFunc)func_8086C9A8;
|
this->actionFunc = func_8086C9A8;
|
||||||
}
|
}
|
||||||
func_8002F948(this, 0x205E);
|
func_8002F948(this, 0x205E);
|
||||||
} else {
|
} else {
|
||||||
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 75.0f, 0.5f)) {
|
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);
|
func_8002F948(this, 0x205E);
|
||||||
}
|
}
|
||||||
|
@ -402,7 +402,7 @@ void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
func_8002F994(&this->dyna.actor, this->unk_16A);
|
func_8002F994(&this->dyna.actor, this->unk_16A);
|
||||||
if (this->unk_16A == 0) {
|
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)) {
|
if (func_8004356C(&this->dyna.actor)) {
|
||||||
Flags_SetSwitch(globalCtx, this->unk_168);
|
Flags_SetSwitch(globalCtx, this->unk_168);
|
||||||
this->unk_16A = 0x32;
|
this->unk_16A = 0x32;
|
||||||
this->actionFunc = (ActorFunc)func_8086CB8C;
|
this->actionFunc = func_8086CB8C;
|
||||||
this->dyna.actor.initPosRot.pos.y -= 200.0f;
|
this->dyna.actor.initPosRot.pos.y -= 200.0f;
|
||||||
func_800800F8(globalCtx, 0xC1C, 0x33, &this->dyna.actor, 0);
|
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);
|
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) {
|
if (this->unk_16A == 0) {
|
||||||
Audio_PlayActorSound2(this, NA_SE_EV_BUYOSTAND_STOP_U);
|
Audio_PlayActorSound2(this, NA_SE_EV_BUYOSTAND_STOP_U);
|
||||||
this->actionFunc = (ActorFunc)func_8086C868;
|
this->actionFunc = func_8086C868;
|
||||||
func_800C078C(globalCtx, 0, -1);
|
func_800C078C(globalCtx, 0, -1);
|
||||||
} else {
|
} else {
|
||||||
func_8002F974(&this->dyna.actor, 0x2090);
|
func_8002F974(&this->dyna.actor, 0x2090);
|
||||||
|
@ -441,7 +441,7 @@ void BgBdanObjects_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
BgBdanObjects* this = THIS;
|
BgBdanObjects* this = THIS;
|
||||||
|
|
||||||
if (thisx->params == 0) {
|
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) {
|
if (((thisx->initPosRot.pos.y + -79.0f) - 5.0f) < thisx->posRot.pos.y) {
|
||||||
Matrix_Translate(0.0f, -50.0f, 0.0f, MTXMODE_APPLY);
|
Matrix_Translate(0.0f, -50.0f, 0.0f, MTXMODE_APPLY);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgBdanObjects;
|
||||||
|
|
||||||
|
typedef void (*BgBdanObjectsActionFunc)(struct BgBdanObjects*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgBdanObjects {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgBdanObjectsActionFunc actionFunc;
|
||||||
/* 0x0168 */ u8 unk_168;
|
/* 0x0168 */ u8 unk_168;
|
||||||
/* 0x016A */ s16 unk_16A;
|
/* 0x016A */ s16 unk_16A;
|
||||||
/* 0x016C */ ColliderCylinder collider;
|
/* 0x016C */ ColliderCylinder collider;
|
||||||
|
|
|
@ -229,7 +229,7 @@ void func_8086D548(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D5C4(BgBdanSwitch* this) {
|
void func_8086D5C4(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086D5E0;
|
this->actionFunc = func_8086D5E0;
|
||||||
this->unk_1C8 = 1.0f;
|
this->unk_1C8 = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,7 +250,7 @@ void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D67C(BgBdanSwitch* this) {
|
void func_8086D67C(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086D694;
|
this->actionFunc = func_8086D694;
|
||||||
this->unk_1DA = 0x64;
|
this->unk_1DA = 0x64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,7 +267,7 @@ void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
|
|
||||||
void func_8086D730(BgBdanSwitch* this) {
|
void func_8086D730(BgBdanSwitch* this) {
|
||||||
this->unk_1C8 = 0.1f;
|
this->unk_1C8 = 0.1f;
|
||||||
this->actionFunc = &func_8086D754;
|
this->actionFunc = func_8086D754;
|
||||||
this->unk_1D8 = 6;
|
this->unk_1D8 = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,7 +291,7 @@ void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D7FC(BgBdanSwitch* this) {
|
void func_8086D7FC(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086D80C;
|
this->actionFunc = func_8086D80C;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
|
@ -303,7 +303,7 @@ void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D86C(BgBdanSwitch* this) {
|
void func_8086D86C(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086D888;
|
this->actionFunc = func_8086D888;
|
||||||
this->unk_1C8 = 1.0f;
|
this->unk_1C8 = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D8BC(BgBdanSwitch* this) {
|
void func_8086D8BC(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086D8CC;
|
this->actionFunc = func_8086D8CC;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
|
@ -327,7 +327,7 @@ void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086D944(BgBdanSwitch* this) {
|
void func_8086D944(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086D95C;
|
this->actionFunc = func_8086D95C;
|
||||||
this->unk_1DA = 0x64;
|
this->unk_1DA = 0x64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,7 +344,7 @@ void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
|
|
||||||
void func_8086D9F8(BgBdanSwitch* this) {
|
void func_8086D9F8(BgBdanSwitch* this) {
|
||||||
this->unk_1C8 = 0.6f;
|
this->unk_1C8 = 0.6f;
|
||||||
this->actionFunc = &func_8086DA1C;
|
this->actionFunc = func_8086DA1C;
|
||||||
this->unk_1D8 = 6;
|
this->unk_1D8 = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,7 +368,7 @@ void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086DAB4(BgBdanSwitch* this) {
|
void func_8086DAB4(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086DAC4;
|
this->actionFunc = func_8086DAC4;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
|
@ -381,14 +381,14 @@ void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
|
|
||||||
void func_8086DB24(BgBdanSwitch* this) {
|
void func_8086DB24(BgBdanSwitch* this) {
|
||||||
this->unk_1C8 = 0.1f;
|
this->unk_1C8 = 0.1f;
|
||||||
this->actionFunc = &func_8086DB40;
|
this->actionFunc = func_8086DB40;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086DB40(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
void func_8086DB40(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086DB4C(BgBdanSwitch* this) {
|
void func_8086DB4C(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086DB68;
|
this->actionFunc = func_8086DB68;
|
||||||
this->unk_1C8 = 2.0f;
|
this->unk_1C8 = 2.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -413,7 +413,7 @@ void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086DC30(BgBdanSwitch* this) {
|
void func_8086DC30(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086DC48;
|
this->actionFunc = func_8086DC48;
|
||||||
this->unk_1DA = 0x64;
|
this->unk_1DA = 0x64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,7 +428,7 @@ void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086DCCC(BgBdanSwitch* this) {
|
void func_8086DCCC(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086DCE8;
|
this->actionFunc = func_8086DCE8;
|
||||||
this->unk_1C8 = 1.0f;
|
this->unk_1C8 = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -449,7 +449,7 @@ void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_8086DDA8(BgBdanSwitch* this) {
|
void func_8086DDA8(BgBdanSwitch* this) {
|
||||||
this->actionFunc = &func_8086DDC0;
|
this->actionFunc = func_8086DDC0;
|
||||||
this->unk_1DA = 0x64;
|
this->unk_1DA = 0x64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,11 @@ typedef enum {
|
||||||
/* 0x04 */ YELLOW_TALL_2
|
/* 0x04 */ YELLOW_TALL_2
|
||||||
} BgBdanSwitchType;
|
} BgBdanSwitchType;
|
||||||
|
|
||||||
typedef struct {
|
struct BgBdanSwitch;
|
||||||
|
|
||||||
|
typedef void (*BgBdanSwitchActionFunc)(struct BgBdanSwitch*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgBdanSwitch {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ u32 dynaPolyId;
|
/* 0x014C */ u32 dynaPolyId;
|
||||||
/* 0x0150 */ f32 unk_150;
|
/* 0x0150 */ f32 unk_150;
|
||||||
|
@ -21,7 +25,7 @@ typedef struct {
|
||||||
/* 0x0158 */ u32 unk_158;
|
/* 0x0158 */ u32 unk_158;
|
||||||
/* 0x015C */ u32 unk_15C;
|
/* 0x015C */ u32 unk_15C;
|
||||||
/* 0x0160 */ u8 unk_160;
|
/* 0x0160 */ u8 unk_160;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgBdanSwitchActionFunc actionFunc;
|
||||||
/* 0x0168 */ ColliderJntSph collider;
|
/* 0x0168 */ ColliderJntSph collider;
|
||||||
/* 0x0188 */ ColliderJntSphItem colliderItems[1];
|
/* 0x0188 */ ColliderJntSphItem colliderItems[1];
|
||||||
/* 0x01C8 */ f32 unk_1C8;
|
/* 0x01C8 */ f32 unk_1C8;
|
||||||
|
|
|
@ -34,7 +34,7 @@ const ActorInit Bg_Bom_Guard_InitVars = {
|
||||||
|
|
||||||
extern u32 D_06001C40;
|
extern u32 D_06001C40;
|
||||||
|
|
||||||
void BgBomGuard_SetupAction(BgBomGuard* this, ActorFunc actionFunc) {
|
void BgBomGuard_SetupAction(BgBomGuard* this, BgBomGuardActionFunc actionFunc) {
|
||||||
this->actionFunc = actionFunc;
|
this->actionFunc = actionFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgBomGuard;
|
||||||
|
|
||||||
|
typedef void (*BgBomGuardActionFunc)(struct BgBomGuard*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgBomGuard {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgBomGuardActionFunc actionFunc;
|
||||||
/* 0x0168 */ u8 unk_168;
|
/* 0x0168 */ u8 unk_168;
|
||||||
/* 0x016C */ Vec3f unk_16C;
|
/* 0x016C */ Vec3f unk_16C;
|
||||||
} BgBomGuard; // size = 0x0178
|
} BgBomGuard; // size = 0x0178
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgBombwall;
|
||||||
|
|
||||||
|
typedef void (*BgBombwallActionFunc)(struct BgBombwall*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgBombwall {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ char unk_164[0x134];
|
/* 0x0164 */ char unk_164[0x134];
|
||||||
/* 0x0298 */ ActorFunc actionFunc;
|
/* 0x0298 */ BgBombwallActionFunc actionFunc;
|
||||||
/* 0x029C */ char unk_29C[0x8];
|
/* 0x029C */ char unk_29C[0x8];
|
||||||
} BgBombwall; // size = 0x02A4
|
} BgBombwall; // size = 0x02A4
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgBowlWall;
|
||||||
|
|
||||||
|
typedef void (*BgBowlWallActionFunc)(struct BgBowlWall*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgBowlWall {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgBowlWallActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x20];
|
/* 0x0168 */ char unk_168[0x20];
|
||||||
} BgBowlWall; // size = 0x0188
|
} BgBowlWall; // size = 0x0188
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ void BgBreakwall_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgBreakwall_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
void BgBreakwall_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgBreakwall_Update(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_80870290(BgBreakwall* this, GlobalContext* globalCtx);
|
||||||
void func_80870394(BgBreakwall* this, GlobalContext* globalCtx);
|
void func_80870394(BgBreakwall* this, GlobalContext* globalCtx);
|
||||||
void func_80870564(BgBreakwall* this, GlobalContext* globalCtx);
|
void func_80870564(BgBreakwall* this, GlobalContext* globalCtx);
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgBreakwall;
|
||||||
|
|
||||||
|
typedef void (*BgBreakwallActionFunc)(struct BgBreakwall*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgBreakwall {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ char unk_164[0x88];
|
/* 0x0164 */ char unk_164[0x88];
|
||||||
/* 0x01EC */ ActorFunc actionFunc;
|
/* 0x01EC */ BgBreakwallActionFunc actionFunc;
|
||||||
} BgBreakwall; // size = 0x01F0
|
} BgBreakwall; // size = 0x01F0
|
||||||
|
|
||||||
extern const ActorInit Bg_Breakwall_InitVars;
|
extern const ActorInit Bg_Breakwall_InitVars;
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgDdanJd;
|
||||||
|
|
||||||
|
typedef void (*BgDdanJdActionFunc)(struct BgDdanJd*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgDdanJd {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgDdanJdActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x8];
|
/* 0x0168 */ char unk_168[0x8];
|
||||||
} BgDdanJd; // size = 0x0170
|
} BgDdanJd; // size = 0x0170
|
||||||
|
|
||||||
|
|
|
@ -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_06004F30;
|
||||||
extern UNK_TYPE D_060048A8;
|
extern UNK_TYPE D_060048A8;
|
||||||
|
|
||||||
void BgDdanKd_SetupAction(BgDdanKd* this, ActorFunc actionFunc) {
|
void BgDdanKd_SetupAction(BgDdanKd* this, BgDdanKdActionFunc actionFunc) {
|
||||||
this->actionFunc = 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);
|
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp24);
|
||||||
|
|
||||||
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params) == 0) {
|
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params) == 0) {
|
||||||
BgDdanKd_SetupAction(this, &BgDdanKd_CheckForExplosions);
|
BgDdanKd_SetupAction(this, BgDdanKd_CheckForExplosions);
|
||||||
} else {
|
} else {
|
||||||
this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y - 200.0f - 20.0f;
|
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) &&
|
if ((currentCollidingExplosion != NULL) && (this->previousCollidingExplosion != NULL) &&
|
||||||
(currentCollidingExplosion != this->previousCollidingExplosion) &&
|
(currentCollidingExplosion != this->previousCollidingExplosion) &&
|
||||||
(Math_Vec3f_DistXZ(&this->previousCollidingExplosionPos, ¤tCollidingExplosion->posRot.pos) > 80.0f)) {
|
(Math_Vec3f_DistXZ(&this->previousCollidingExplosionPos, ¤tCollidingExplosion->posRot.pos) > 80.0f)) {
|
||||||
BgDdanKd_SetupAction(this, &BgDdanKd_LowerStairs);
|
BgDdanKd_SetupAction(this, BgDdanKd_LowerStairs);
|
||||||
func_800800F8(globalCtx, 0xBEA, 0x3E7, this, 0);
|
func_800800F8(globalCtx, 0xBEA, 0x3E7, this, 0);
|
||||||
} else {
|
} else {
|
||||||
if (this->timer != 0) {
|
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,
|
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) {
|
0.075f, this->dyna.actor.speedXZ, 0.0075f) == 0.0f) {
|
||||||
Flags_SetSwitch(globalCtx, this->dyna.actor.params);
|
Flags_SetSwitch(globalCtx, this->dyna.actor.params);
|
||||||
BgDdanKd_SetupAction(this, &func_80871838);
|
BgDdanKd_SetupAction(this, func_80871838);
|
||||||
} else {
|
} else {
|
||||||
sp4C = (this->dyna.actor.pos4.y - this->dyna.actor.posRot.pos.y) + (this->dyna.actor.speedXZ * 0.25f);
|
sp4C = (this->dyna.actor.pos4.y - this->dyna.actor.posRot.pos.y) + (this->dyna.actor.speedXZ * 0.25f);
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,17 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgDdanKd;
|
||||||
|
|
||||||
|
typedef void (*BgDdanKdActionFunc)(struct BgDdanKd*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgDdanKd {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ Actor* previousCollidingExplosion;
|
/* 0x0164 */ Actor* previousCollidingExplosion;
|
||||||
/* 0x0168 */ s16 timer;
|
/* 0x0168 */ s16 timer;
|
||||||
/* 0x016C */ Vec3f previousCollidingExplosionPos;
|
/* 0x016C */ Vec3f previousCollidingExplosionPos;
|
||||||
/* 0x0178 */ ColliderCylinder collider;
|
/* 0x0178 */ ColliderCylinder collider;
|
||||||
/* 0x01C4 */ ActorFunc actionFunc;
|
/* 0x01C4 */ BgDdanKdActionFunc actionFunc;
|
||||||
} BgDdanKd; // size = 0x01C8
|
} BgDdanKd; // size = 0x01C8
|
||||||
|
|
||||||
extern const ActorInit Bg_Ddan_Kd_InitVars;
|
extern const ActorInit Bg_Ddan_Kd_InitVars;
|
||||||
|
|
|
@ -15,7 +15,6 @@ void BgDodoago_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgDodoago_Update(Actor* thisx, GlobalContext* globalCtx);
|
void BgDodoago_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgDodoago_Draw(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_80871A08(Vec3f* vec, GlobalContext* globalCtx); // Not 100% sure
|
||||||
void func_80871CF4(BgDodoago* this, GlobalContext* globalCtx);
|
void func_80871CF4(BgDodoago* this, GlobalContext* globalCtx);
|
||||||
void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx);
|
void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx);
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgDodoago;
|
||||||
|
|
||||||
|
typedef void (*BgDodoagoActionFunc)(struct BgDodoago*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgDodoago {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ char unk_164[0xE8];
|
/* 0x0164 */ char unk_164[0xE8];
|
||||||
/* 0x024C */ ActorFunc actionFunc;
|
/* 0x024C */ BgDodoagoActionFunc actionFunc;
|
||||||
} BgDodoago; // size = 0x0250
|
} BgDodoago; // size = 0x0250
|
||||||
|
|
||||||
extern const ActorInit Bg_Dodoago_InitVars;
|
extern const ActorInit Bg_Dodoago_InitVars;
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgDyYoseizo;
|
||||||
|
|
||||||
|
typedef void (*BgDyYoseizoActionFunc)(struct BgDyYoseizo*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgDyYoseizo {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ ActorFunc actionFunc;
|
/* 0x014C */ BgDyYoseizoActionFunc actionFunc;
|
||||||
/* 0x0150 */ SkelAnime skelAnime;
|
/* 0x0150 */ SkelAnime skelAnime;
|
||||||
/* 0x0194 */ char unk_194[0x3720];
|
/* 0x0194 */ char unk_194[0x3720];
|
||||||
} BgDyYoseizo; // size = 0x38B4
|
} BgDyYoseizo; // size = 0x38B4
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGanonOtyuka;
|
||||||
|
|
||||||
|
typedef void (*BgGanonOtyukaActionFunc)(struct BgGanonOtyuka*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgGanonOtyuka {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgGanonOtyukaActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x24];
|
/* 0x0168 */ char unk_168[0x24];
|
||||||
} BgGanonOtyuka; // size = 0x018C
|
} BgGanonOtyuka; // size = 0x018C
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ void BgGateShutter_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
thisx->scale.z = 1.0f;
|
thisx->scale.z = 1.0f;
|
||||||
osSyncPrintf("\n\n");
|
osSyncPrintf("\n\n");
|
||||||
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 柵でたなぁ ☆☆☆☆☆ \n" VT_RST);
|
osSyncPrintf(VT_FGCOL(GREEN) " ☆☆☆☆☆ 柵でたなぁ ☆☆☆☆☆ \n" VT_RST);
|
||||||
this->actionFunc = (ActorFunc)func_8087828C;
|
this->actionFunc = func_8087828C;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BgGateShutter_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
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) {
|
void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx) {
|
||||||
if (this->unk_168 == 1 && !(gSaveContext.infTable[7] & 0x40)) {
|
if (this->unk_168 == 1 && !(gSaveContext.infTable[7] & 0x40)) {
|
||||||
this->unk_178 = 2;
|
this->unk_178 = 2;
|
||||||
this->actionFunc = (ActorFunc)func_80878300;
|
this->actionFunc = func_80878300;
|
||||||
} else if (this->unk_168 == 2) {
|
} else if (this->unk_168 == 2) {
|
||||||
this->unk_178 = 2;
|
this->unk_178 = 2;
|
||||||
this->actionFunc = (ActorFunc)func_80878300;
|
this->actionFunc = func_80878300;
|
||||||
} else if (this->unk_168 < 0) {
|
} else if (this->unk_168 < 0) {
|
||||||
this->unk_178 = 2;
|
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) {
|
if (thisx->posRot.pos.x < -89.0f) {
|
||||||
Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP);
|
Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP);
|
||||||
this->unk_178 = 0x1E;
|
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) {
|
void func_808783AC(BgGateShutter* this, GlobalContext* globalCtx) {
|
||||||
if (this->unk_178 == 0) {
|
if (this->unk_178 == 0) {
|
||||||
this->unk_168 = 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;
|
thisx->posRot.pos.x = 91.0f;
|
||||||
Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP);
|
Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP);
|
||||||
this->unk_178 = 30;
|
this->unk_178 = 30;
|
||||||
this->actionFunc = (ActorFunc)func_808783AC;
|
this->actionFunc = func_808783AC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGateShutter;
|
||||||
|
|
||||||
|
typedef void (*BgGateShutterActionFunc)(struct BgGateShutter*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgGateShutter {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgGateShutterActionFunc actionFunc;
|
||||||
/* 0x0168 */ s16 unk_168;
|
/* 0x0168 */ s16 unk_168;
|
||||||
/* 0x016C */ f32 somePosX;
|
/* 0x016C */ f32 somePosX;
|
||||||
/* 0x0170 */ f32 somePosY;
|
/* 0x0170 */ f32 somePosY;
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGjyoBridge;
|
||||||
|
|
||||||
|
typedef void (*BgGjyoBridgeActionFunc)(struct BgGjyoBridge*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgGjyoBridge {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgGjyoBridgeActionFunc actionFunc;
|
||||||
} BgGjyoBridge; // size = 0x0168
|
} BgGjyoBridge; // size = 0x0168
|
||||||
|
|
||||||
extern const ActorInit Bg_Gjyo_Bridge_InitVars;
|
extern const ActorInit Bg_Gjyo_Bridge_InitVars;
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGndDarkmeiro;
|
||||||
|
|
||||||
|
typedef void (*BgGndDarkmeiroActionFunc)(struct BgGndDarkmeiro*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgGndDarkmeiro {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ char unk_164[0x8];
|
/* 0x0164 */ char unk_164[0x8];
|
||||||
/* 0x016C */ ActorFunc actionFunc;
|
/* 0x016C */ BgGndDarkmeiroActionFunc actionFunc;
|
||||||
} BgGndDarkmeiro; // size = 0x0170
|
} BgGndDarkmeiro; // size = 0x0170
|
||||||
|
|
||||||
extern const ActorInit Bg_Gnd_Darkmeiro_InitVars;
|
extern const ActorInit Bg_Gnd_Darkmeiro_InitVars;
|
||||||
|
|
|
@ -4,11 +4,15 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGndFiremeiro;
|
||||||
|
|
||||||
|
typedef void (*BgGndFiremeiroActionFunc)(struct BgGndFiremeiro*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgGndFiremeiro {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ Vec3f unk_164;
|
/* 0x0164 */ Vec3f unk_164;
|
||||||
/* 0x0170 */ char unk_170[0x4];
|
/* 0x0170 */ char unk_170[0x4];
|
||||||
/* 0x0174 */ ActorFunc actionFunc;
|
/* 0x0174 */ BgGndFiremeiroActionFunc actionFunc;
|
||||||
} BgGndFiremeiro; // size = 0x0178
|
} BgGndFiremeiro; // size = 0x0178
|
||||||
|
|
||||||
extern const ActorInit Bg_Gnd_Firemeiro_InitVars;
|
extern const ActorInit Bg_Gnd_Firemeiro_InitVars;
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGndIceblock;
|
||||||
|
|
||||||
|
typedef void (*BgGndIceblockActionFunc)(struct BgGndIceblock*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgGndIceblock {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgGndIceblockActionFunc actionFunc;
|
||||||
/* 0x0168 */ Vec3f unk_168;
|
/* 0x0168 */ Vec3f unk_168;
|
||||||
} BgGndIceblock; // size = 0x0174
|
} BgGndIceblock; // size = 0x0174
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGndNisekabe;
|
||||||
|
|
||||||
|
typedef struct BgGndNisekabe {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
} BgGndNisekabe; // size = 0x014C
|
} BgGndNisekabe; // size = 0x014C
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgGndSoulmeiro;
|
||||||
|
|
||||||
|
typedef void (*BgGndSoulmeiroActionFunc)(struct BgGndSoulmeiro*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgGndSoulmeiro {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x50];
|
/* 0x014C */ char unk_14C[0x50];
|
||||||
/* 0x019C */ ActorFunc actionFunc;
|
/* 0x019C */ BgGndSoulmeiroActionFunc actionFunc;
|
||||||
} BgGndSoulmeiro; // size = 0x01A0
|
} BgGndSoulmeiro; // size = 0x01A0
|
||||||
|
|
||||||
extern const ActorInit Bg_Gnd_Soulmeiro_InitVars;
|
extern const ActorInit Bg_Gnd_Soulmeiro_InitVars;
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHaka;
|
||||||
|
|
||||||
|
typedef void (*BgHakaActionFunc)(struct BgHaka*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHaka {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaActionFunc actionFunc;
|
||||||
} BgHaka; // size = 0x0168
|
} BgHaka; // size = 0x0168
|
||||||
|
|
||||||
extern const ActorInit Bg_Haka_InitVars;
|
extern const ActorInit Bg_Haka_InitVars;
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaGate;
|
||||||
|
|
||||||
|
typedef void (*BgHakaGateActionFunc)(struct BgHakaGate*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaGate {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaGateActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0xC];
|
/* 0x0168 */ char unk_168[0xC];
|
||||||
} BgHakaGate; // size = 0x0174
|
} BgHakaGate; // size = 0x0174
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaHuta;
|
||||||
|
|
||||||
|
typedef void (*BgHakaHutaActionFunc)(struct BgHakaHuta*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaHuta {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaHutaActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x4];
|
/* 0x0168 */ char unk_168[0x4];
|
||||||
} BgHakaHuta; // size = 0x016C
|
} BgHakaHuta; // size = 0x016C
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ void BgHakaMegane_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
if (this->objBankIndex < 0) {
|
if (this->objBankIndex < 0) {
|
||||||
Actor_Kill(thisx);
|
Actor_Kill(thisx);
|
||||||
} else {
|
} 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;
|
this->dyna.actor.draw = BgHakaMegane_Draw;
|
||||||
Actor_SetObjectDependency(globalCtx, &this->dyna.actor);
|
Actor_SetObjectDependency(globalCtx, &this->dyna.actor);
|
||||||
if (globalCtx->roomCtx.curRoom.showInvisActors) {
|
if (globalCtx->roomCtx.curRoom.showInvisActors) {
|
||||||
this->actionFunc = (ActorFunc)func_8087DBF0;
|
this->actionFunc = func_8087DBF0;
|
||||||
collision = collisions[this->dyna.actor.params];
|
collision = collisions[this->dyna.actor.params];
|
||||||
if (collision != 0) {
|
if (collision != 0) {
|
||||||
DynaPolyInfo_Alloc(collision, &localC);
|
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);
|
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localC);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this->actionFunc = (ActorFunc)func_8087DC64;
|
this->actionFunc = func_8087DC64;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaMegane;
|
||||||
|
|
||||||
|
typedef void (*BgHakaMeganeActionFunc)(struct BgHakaMegane*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaMegane {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaMeganeActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x1];
|
/* 0x0168 */ char unk_168[0x1];
|
||||||
/* 0x0169 */ s8 objBankIndex;
|
/* 0x0169 */ s8 objBankIndex;
|
||||||
/* 0x016A */ char unk_16A[0x2];
|
/* 0x016A */ char unk_16A[0x2];
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaMeganeBG;
|
||||||
|
|
||||||
|
typedef void (*BgHakaMeganeBGActionFunc)(struct BgHakaMeganeBG*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaMeganeBG {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaMeganeBGActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x1];
|
/* 0x0168 */ char unk_168[0x1];
|
||||||
/* 0x0169 */ s8 unk_169; // objBankIndex ?
|
/* 0x0169 */ s8 unk_169; // objBankIndex ?
|
||||||
/* 0x016A */ char unk_16A[0x2];
|
/* 0x016A */ char unk_16A[0x2];
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaSgami;
|
||||||
|
|
||||||
|
typedef void (*BgHakaSgamiActionFunc)(struct BgHakaSgami*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaSgami {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ ActorFunc actionFunc;
|
/* 0x014C */ BgHakaSgamiActionFunc actionFunc;
|
||||||
/* 0x0150 */ char unk_150[0x1E8];
|
/* 0x0150 */ char unk_150[0x1E8];
|
||||||
} BgHakaSgami; // size = 0x0338
|
} BgHakaSgami; // size = 0x0338
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaShip;
|
||||||
|
|
||||||
|
typedef void (*BgHakaShipActionFunc)(struct BgHakaShip*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaShip {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaShipActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x2];
|
/* 0x0168 */ char unk_168[0x2];
|
||||||
/* 0x016A */ char unk_16A[0x2];
|
/* 0x016A */ char unk_16A[0x2];
|
||||||
/* 0x016C */ Vec3f unk_16C;
|
/* 0x016C */ Vec3f unk_16C;
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaTrap;
|
||||||
|
|
||||||
|
typedef void (*BgHakaTrapActionFunc)(struct BgHakaTrap*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaTrap {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaTrapActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x134];
|
/* 0x0168 */ char unk_168[0x134];
|
||||||
} BgHakaTrap; // size = 0x029C
|
} BgHakaTrap; // size = 0x029C
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaTubo;
|
||||||
|
|
||||||
|
typedef void (*BgHakaTuboActionFunc)(struct BgHakaTubo*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaTubo {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHakaTuboActionFunc actionFunc;
|
||||||
/* 0x0168 */ char unk_168[0x9C];
|
/* 0x0168 */ char unk_168[0x9C];
|
||||||
} BgHakaTubo; // size = 0x0204
|
} BgHakaTubo; // size = 0x0204
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaWater;
|
||||||
|
|
||||||
|
typedef void (*BgHakaWaterActionFunc)(struct BgHakaWater*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHakaWater {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ ActorFunc actionFunc;
|
/* 0x014C */ BgHakaWaterActionFunc actionFunc;
|
||||||
/* 0x0150 */ char unk_150[0x4];
|
/* 0x0150 */ char unk_150[0x4];
|
||||||
} BgHakaWater; // size = 0x0154
|
} BgHakaWater; // size = 0x0154
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHakaZou;
|
||||||
|
|
||||||
|
typedef struct BgHakaZou {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x6C];
|
/* 0x014C */ char unk_14C[0x6C];
|
||||||
} BgHakaZou; // size = 0x01B8
|
} BgHakaZou; // size = 0x01B8
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHeavyBlock;
|
||||||
|
|
||||||
|
typedef struct BgHeavyBlock {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x2C];
|
/* 0x014C */ char unk_14C[0x2C];
|
||||||
} BgHeavyBlock; // size = 0x0178
|
} BgHeavyBlock; // size = 0x0178
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanCurtain;
|
||||||
|
|
||||||
|
typedef struct BgHidanCurtain {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x58];
|
/* 0x014C */ char unk_14C[0x58];
|
||||||
} BgHidanCurtain; // size = 0x01A4
|
} BgHidanCurtain; // size = 0x01A4
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanDalm;
|
||||||
|
|
||||||
|
typedef struct BgHidanDalm {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x1B0];
|
/* 0x014C */ char unk_14C[0x1B0];
|
||||||
} BgHidanDalm; // size = 0x02FC
|
} BgHidanDalm; // size = 0x02FC
|
||||||
|
|
|
@ -69,7 +69,7 @@ void BgHidanFirewall_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
|
||||||
func_80061ED4(&this->actor.colChkInfo, NULL, &colChkInfoInit);
|
func_80061ED4(&this->actor.colChkInfo, NULL, &colChkInfoInit);
|
||||||
|
|
||||||
this->actionFunc = (ActorFunc)BgHidanFirewall_Wait;
|
this->actionFunc = BgHidanFirewall_Wait;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BgHidanFirewall_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
void BgHidanFirewall_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
@ -95,7 +95,7 @@ void BgHidanFirewall_Wait(BgHidanFirewall* this, GlobalContext* globalCtx) {
|
||||||
if (BgHidanFirewall_CheckProximity(this, globalCtx) != 0) {
|
if (BgHidanFirewall_CheckProximity(this, globalCtx) != 0) {
|
||||||
this->actor.draw = BgHidanFirewall_Draw;
|
this->actor.draw = BgHidanFirewall_Draw;
|
||||||
this->actor.params = 5;
|
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--;
|
this->actor.params--;
|
||||||
}
|
}
|
||||||
if (this->actor.params == 0) {
|
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 {
|
} else {
|
||||||
if (Math_ApproxF(&this->actor.scale.y, 0.01f, 0.01f) != 0) {
|
if (Math_ApproxF(&this->actor.scale.y, 0.01f, 0.01f) != 0) {
|
||||||
this->actor.draw = NULL;
|
this->actor.draw = NULL;
|
||||||
this->actionFunc = (ActorFunc)BgHidanFirewall_Wait;
|
this->actionFunc = BgHidanFirewall_Wait;
|
||||||
} else {
|
} else {
|
||||||
this->actor.params = 0;
|
this->actor.params = 0;
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ void BgHidanFirewall_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
this->actionFunc(this, globalCtx);
|
this->actionFunc(this, globalCtx);
|
||||||
if (this->actionFunc == (ActorFunc)BgHidanFirewall_Erupt) {
|
if (this->actionFunc == BgHidanFirewall_Erupt) {
|
||||||
BgHidanFirewall_ColliderFollowPlayer(this, globalCtx);
|
BgHidanFirewall_ColliderFollowPlayer(this, globalCtx);
|
||||||
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider);
|
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider);
|
||||||
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider);
|
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider);
|
||||||
|
|
|
@ -4,11 +4,15 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanFirewall;
|
||||||
/* 0x0000 */ Actor actor;
|
|
||||||
/* 0x014C */ ActorFunc actionFunc;
|
typedef void (*BgHidanFirewallActionFunc)(struct BgHidanFirewall*, GlobalContext*);
|
||||||
/* 0x0150 */ s16 unk_150;
|
|
||||||
/* 0x0154 */ ColliderCylinder collider;
|
typedef struct BgHidanFirewall {
|
||||||
|
/* 0x0000 */ Actor actor;
|
||||||
|
/* 0x014C */ BgHidanFirewallActionFunc actionFunc;
|
||||||
|
/* 0x0150 */ s16 unk_150;
|
||||||
|
/* 0x0154 */ ColliderCylinder collider;
|
||||||
} BgHidanFirewall; // size = 0x01A0
|
} BgHidanFirewall; // size = 0x01A0
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanFslift;
|
||||||
|
|
||||||
|
typedef void (*BgHidanFsliftActionFunc)(struct BgHidanFslift*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHidanFslift {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHidanFsliftActionFunc actionFunc;
|
||||||
/* 0x0168 */ s16 unk_168;
|
/* 0x0168 */ s16 unk_168;
|
||||||
/* 0x016A */ s16 unk_16A;
|
/* 0x016A */ s16 unk_16A;
|
||||||
} BgHidanFslift; // size = 0x016C
|
} BgHidanFslift; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanFwbig;
|
||||||
|
|
||||||
|
typedef struct BgHidanFwbig {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x54];
|
/* 0x014C */ char unk_14C[0x54];
|
||||||
} BgHidanFwbig; // size = 0x01A0
|
} BgHidanFwbig; // size = 0x01A0
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanHamstep;
|
||||||
|
|
||||||
|
typedef struct BgHidanHamstep {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0xFC];
|
/* 0x014C */ char unk_14C[0xFC];
|
||||||
} BgHidanHamstep; // size = 0x0248
|
} BgHidanHamstep; // size = 0x0248
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanHrock;
|
||||||
|
|
||||||
|
typedef struct BgHidanHrock {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0xF8];
|
/* 0x014C */ char unk_14C[0xF8];
|
||||||
} BgHidanHrock; // size = 0x0244
|
} BgHidanHrock; // size = 0x0244
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanKousi;
|
||||||
|
|
||||||
|
typedef struct BgHidanKousi {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x20];
|
/* 0x014C */ char unk_14C[0x20];
|
||||||
} BgHidanKousi; // size = 0x016C
|
} BgHidanKousi; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanKowarerukabe;
|
||||||
|
|
||||||
|
typedef struct BgHidanKowarerukabe {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x78];
|
/* 0x014C */ char unk_14C[0x78];
|
||||||
} BgHidanKowarerukabe; // size = 0x01C4
|
} BgHidanKowarerukabe; // size = 0x01C4
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanRock;
|
||||||
|
|
||||||
|
typedef struct BgHidanRock {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x7C];
|
/* 0x014C */ char unk_14C[0x7C];
|
||||||
} BgHidanRock; // size = 0x01C8
|
} BgHidanRock; // size = 0x01C8
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanRsekizou;
|
||||||
|
|
||||||
|
typedef struct BgHidanRsekizou {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x1BC];
|
/* 0x014C */ char unk_14C[0x1BC];
|
||||||
} BgHidanRsekizou; // size = 0x0308
|
} BgHidanRsekizou; // size = 0x0308
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanSekizou;
|
||||||
|
|
||||||
|
typedef struct BgHidanSekizou {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x1C8];
|
/* 0x014C */ char unk_14C[0x1C8];
|
||||||
} BgHidanSekizou; // size = 0x0314
|
} BgHidanSekizou; // size = 0x0314
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanSima;
|
||||||
|
|
||||||
|
typedef struct BgHidanSima {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0xC0];
|
/* 0x014C */ char unk_14C[0xC0];
|
||||||
} BgHidanSima; // size = 0x020C
|
} BgHidanSima; // size = 0x020C
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgHidanSyoku;
|
||||||
|
|
||||||
|
typedef void (*BgHidanSyokuActionFunc)(struct BgHidanSyoku*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgHidanSyoku {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgHidanSyokuActionFunc actionFunc;
|
||||||
/* 0x0168 */ s16 unk_168;
|
/* 0x0168 */ s16 unk_168;
|
||||||
/* 0x016A */ s16 unk_16A;
|
/* 0x016A */ s16 unk_16A;
|
||||||
} BgHidanSyoku; // size = 0x016C
|
} BgHidanSyoku; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgIceObjects;
|
||||||
|
|
||||||
|
typedef struct BgIceObjects {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x28];
|
/* 0x014C */ char unk_14C[0x28];
|
||||||
} BgIceObjects; // size = 0x0174
|
} BgIceObjects; // size = 0x0174
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgIceShelter;
|
||||||
|
|
||||||
|
typedef struct BgIceShelter {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0xB8];
|
/* 0x014C */ char unk_14C[0xB8];
|
||||||
} BgIceShelter; // size = 0x0204
|
} BgIceShelter; // size = 0x0204
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgIceShutter;
|
||||||
|
|
||||||
|
typedef void (*BgIceShutterActionFunc)(struct BgIceShutter*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgIceShutter {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgIceShutterActionFunc actionFunc;
|
||||||
} BgIceShutter; // size = 0x0168
|
} BgIceShutter; // size = 0x0168
|
||||||
|
|
||||||
extern const ActorInit Bg_Ice_Shutter_InitVars;
|
extern const ActorInit Bg_Ice_Shutter_InitVars;
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgIceTurara;
|
||||||
|
|
||||||
|
typedef struct BgIceTurara {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x6C];
|
/* 0x014C */ char unk_14C[0x6C];
|
||||||
} BgIceTurara; // size = 0x01B8
|
} BgIceTurara; // size = 0x01B8
|
||||||
|
|
|
@ -15,7 +15,6 @@ void BgIngate_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgIngate_Update(Actor* thisx, GlobalContext* globalCtx);
|
void BgIngate_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgIngate_Draw(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_80892890(BgIngate* this, GlobalContext* globalCtx);
|
||||||
void func_80892990(BgIngate* this, GlobalContext* globalCtx);
|
void func_80892990(BgIngate* this, GlobalContext* globalCtx);
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgIngate;
|
||||||
|
|
||||||
|
typedef void (*BgIngateActionFunc)(struct BgIngate*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgIngate {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgIngateActionFunc actionFunc;
|
||||||
} BgIngate; // size = 0x0168
|
} BgIngate; // size = 0x0168
|
||||||
|
|
||||||
extern const ActorInit Bg_Ingate_InitVars;
|
extern const ActorInit Bg_Ingate_InitVars;
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJya1flift;
|
||||||
|
|
||||||
|
typedef struct BgJya1flift {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x70];
|
/* 0x014C */ char unk_14C[0x70];
|
||||||
} BgJya1flift; // size = 0x01BC
|
} BgJya1flift; // size = 0x01BC
|
||||||
|
|
|
@ -4,11 +4,15 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaAmishutter;
|
||||||
|
|
||||||
|
typedef void (*BgJyaAmishutterActionFunc)(struct BgJyaAmishutter*);
|
||||||
|
|
||||||
|
typedef struct BgJyaAmishutter {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ u32 dynaPolyId;
|
/* 0x014C */ u32 dynaPolyId;
|
||||||
/* 0x0150 */ char unk_150[0x14];
|
/* 0x0150 */ char unk_150[0x14];
|
||||||
/* 0x0164 */ void (*actionFunc)(Actor*);
|
/* 0x0164 */ BgJyaAmishutterActionFunc actionFunc;
|
||||||
} BgJyaAmishutter; // size = 0x0168
|
} BgJyaAmishutter; // size = 0x0168
|
||||||
|
|
||||||
extern const ActorInit Bg_Jya_Amishutter_InitVars;
|
extern const ActorInit Bg_Jya_Amishutter_InitVars;
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaBigmirror;
|
||||||
|
|
||||||
|
typedef struct BgJyaBigmirror {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x28];
|
/* 0x014C */ char unk_14C[0x28];
|
||||||
} BgJyaBigmirror; // size = 0x0174
|
} BgJyaBigmirror; // size = 0x0174
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaBlock;
|
||||||
|
|
||||||
|
typedef struct BgJyaBlock {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
} BgJyaBlock; // size = 0x0164
|
} BgJyaBlock; // size = 0x0164
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaBombchuiwa;
|
||||||
|
|
||||||
|
typedef struct BgJyaBombchuiwa {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x6C];
|
/* 0x014C */ char unk_14C[0x6C];
|
||||||
} BgJyaBombchuiwa; // size = 0x01B8
|
} BgJyaBombchuiwa; // size = 0x01B8
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaBombiwa;
|
||||||
|
|
||||||
|
typedef struct BgJyaBombiwa {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x7C];
|
/* 0x014C */ char unk_14C[0x7C];
|
||||||
} BgJyaBombiwa; // size = 0x01C8
|
} BgJyaBombiwa; // size = 0x01C8
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaCobra;
|
||||||
|
|
||||||
|
typedef struct BgJyaCobra {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x1058];
|
/* 0x014C */ char unk_14C[0x1058];
|
||||||
} BgJyaCobra; // size = 0x11A4
|
} BgJyaCobra; // size = 0x11A4
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaGoroiwa;
|
||||||
|
|
||||||
|
typedef struct BgJyaGoroiwa {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x70];
|
/* 0x014C */ char unk_14C[0x70];
|
||||||
} BgJyaGoroiwa; // size = 0x01BC
|
} BgJyaGoroiwa; // size = 0x01BC
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaHaheniron;
|
||||||
|
|
||||||
|
typedef struct BgJyaHaheniron {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x68];
|
/* 0x014C */ char unk_14C[0x68];
|
||||||
} BgJyaHaheniron; // size = 0x01B4
|
} BgJyaHaheniron; // size = 0x01B4
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaIronobj;
|
||||||
|
|
||||||
|
typedef struct BgJyaIronobj {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x68];
|
/* 0x014C */ char unk_14C[0x68];
|
||||||
} BgJyaIronobj; // size = 0x01B4
|
} BgJyaIronobj; // size = 0x01B4
|
||||||
|
|
|
@ -4,11 +4,15 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaKanaami;
|
||||||
|
|
||||||
|
typedef void (*BgJyaKanaamiActionFunc)(struct BgJyaKanaami*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgJyaKanaami {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ u32 dynaPolyId;
|
/* 0x014C */ u32 dynaPolyId;
|
||||||
/* 0x014C */ char unk_150[0x14];
|
/* 0x014C */ char unk_150[0x14];
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgJyaKanaamiActionFunc actionFunc;
|
||||||
/* 0x0168 */ s16 unk_168;
|
/* 0x0168 */ s16 unk_168;
|
||||||
/* 0x016A */ s16 unk_16A;
|
/* 0x016A */ s16 unk_16A;
|
||||||
} BgJyaKanaami; // size = 0x016C
|
} BgJyaKanaami; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaLift;
|
||||||
|
|
||||||
|
typedef struct BgJyaLift {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x20];
|
/* 0x014C */ char unk_14C[0x20];
|
||||||
} BgJyaLift; // size = 0x016C
|
} BgJyaLift; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaMegami;
|
||||||
|
|
||||||
|
typedef struct BgJyaMegami {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x1F0];
|
/* 0x014C */ char unk_14C[0x1F0];
|
||||||
} BgJyaMegami; // size = 0x033C
|
} BgJyaMegami; // size = 0x033C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgJyaZurerukabe;
|
||||||
|
|
||||||
|
typedef struct BgJyaZurerukabe {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x24];
|
/* 0x014C */ char unk_14C[0x24];
|
||||||
} BgJyaZurerukabe; // size = 0x0170
|
} BgJyaZurerukabe; // size = 0x0170
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMenkuriEye;
|
||||||
|
|
||||||
|
typedef struct BgMenkuriEye {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x4];
|
/* 0x014C */ char unk_14C[0x4];
|
||||||
/* 0x0150 */ Collider collider;
|
/* 0x0150 */ Collider collider;
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMenkuriKaiten;
|
||||||
|
|
||||||
|
typedef struct BgMenkuriKaiten {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ u32 dynaPolyId;
|
/* 0x014C */ u32 dynaPolyId;
|
||||||
/* 0x0150 */ char unk_150[0x14];
|
/* 0x0150 */ char unk_150[0x14];
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMenkuriNisekabe;
|
||||||
|
|
||||||
|
typedef struct BgMenkuriNisekabe {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
} BgMenkuriNisekabe; // size = 0x014C
|
} BgMenkuriNisekabe; // size = 0x014C
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMizuBwall;
|
||||||
|
|
||||||
|
typedef struct BgMizuBwall {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x170];
|
/* 0x014C */ char unk_14C[0x170];
|
||||||
} BgMizuBwall; // size = 0x02BC
|
} BgMizuBwall; // size = 0x02BC
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMizuMovebg;
|
||||||
|
|
||||||
|
typedef struct BgMizuMovebg {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x3C];
|
/* 0x014C */ char unk_14C[0x3C];
|
||||||
} BgMizuMovebg; // size = 0x0188
|
} BgMizuMovebg; // size = 0x0188
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMizuShutter;
|
||||||
|
|
||||||
|
typedef struct BgMizuShutter {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x44];
|
/* 0x014C */ char unk_14C[0x44];
|
||||||
} BgMizuShutter; // size = 0x0190
|
} BgMizuShutter; // size = 0x0190
|
||||||
|
|
|
@ -4,9 +4,13 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMizuUzu;
|
||||||
|
|
||||||
|
typedef void (*BgMizuUzuActionFunc)(struct BgMizuUzu*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgMizuUzu {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ ActorFunc actionFunc;
|
/* 0x0164 */ BgMizuUzuActionFunc actionFunc;
|
||||||
} BgMizuUzu; // size = 0x0168
|
} BgMizuUzu; // size = 0x0168
|
||||||
|
|
||||||
extern const ActorInit Bg_Mizu_Uzu_InitVars;
|
extern const ActorInit Bg_Mizu_Uzu_InitVars;
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMizuWater;
|
||||||
|
|
||||||
|
typedef struct BgMizuWater {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x14];
|
/* 0x014C */ char unk_14C[0x14];
|
||||||
} BgMizuWater; // size = 0x0160
|
} BgMizuWater; // size = 0x0160
|
||||||
|
|
|
@ -15,7 +15,6 @@ void BgMjin_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgMjin_Update(Actor* thisx, GlobalContext* globalCtx);
|
void BgMjin_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void BgMjin_Draw(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_808A0850(BgMjin* this, GlobalContext* globalCtx);
|
||||||
void func_808A0920(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,
|
static s16 objectTbl[] = { OBJECT_MJIN_FLASH, OBJECT_MJIN_DARK, OBJECT_MJIN_FLAME,
|
||||||
OBJECT_MJIN_ICE, OBJECT_MJIN_SOUL, OBJECT_MJIN_WIND };
|
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;
|
this->actionFunc = actionFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +59,7 @@ void BgMjin_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
if (objBankIndex < 0) {
|
if (objBankIndex < 0) {
|
||||||
Actor_Kill(thisx);
|
Actor_Kill(thisx);
|
||||||
} else {
|
} 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);
|
DynaPolyInfo_Alloc(collision, &local_c);
|
||||||
this->dyna.dynaPolyId =
|
this->dyna.dynaPolyId =
|
||||||
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, local_c);
|
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;
|
this->dyna.actor.draw = BgMjin_Draw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMjin;
|
||||||
|
|
||||||
|
typedef void (*BgMjinActionFunc)(struct BgMjin*, GlobalContext*);
|
||||||
|
|
||||||
|
typedef struct BgMjin {
|
||||||
/* 0x0000 */ DynaPolyActor dyna;
|
/* 0x0000 */ DynaPolyActor dyna;
|
||||||
/* 0x0164 */ s8 objBankIndex;
|
/* 0x0164 */ s8 objBankIndex;
|
||||||
/* 0x0168 */ ActorFunc actionFunc;
|
/* 0x0168 */ BgMjinActionFunc actionFunc;
|
||||||
} BgMjin; // size = 0x016C
|
} BgMjin; // size = 0x016C
|
||||||
|
|
||||||
extern const ActorInit Bg_Mjin_InitVars;
|
extern const ActorInit Bg_Mjin_InitVars;
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMoriBigst;
|
||||||
|
|
||||||
|
typedef struct BgMoriBigst {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x20];
|
/* 0x014C */ char unk_14C[0x20];
|
||||||
} BgMoriBigst; // size = 0x016C
|
} BgMoriBigst; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMoriElevator;
|
||||||
|
|
||||||
|
typedef struct BgMoriElevator {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x28];
|
/* 0x014C */ char unk_14C[0x28];
|
||||||
} BgMoriElevator; // size = 0x0174
|
} BgMoriElevator; // size = 0x0174
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMoriHashigo;
|
||||||
|
|
||||||
|
typedef struct BgMoriHashigo {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x84];
|
/* 0x014C */ char unk_14C[0x84];
|
||||||
} BgMoriHashigo; // size = 0x01D0
|
} BgMoriHashigo; // size = 0x01D0
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMoriHashira4;
|
||||||
|
|
||||||
|
typedef struct BgMoriHashira4 {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x20];
|
/* 0x014C */ char unk_14C[0x20];
|
||||||
} BgMoriHashira4; // size = 0x016C
|
} BgMoriHashira4; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMoriHineri;
|
||||||
|
|
||||||
|
typedef struct BgMoriHineri {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x20];
|
/* 0x014C */ char unk_14C[0x20];
|
||||||
} BgMoriHineri; // size = 0x016C
|
} BgMoriHineri; // size = 0x016C
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMoriIdomizu;
|
||||||
|
|
||||||
|
typedef struct BgMoriIdomizu {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x14];
|
/* 0x014C */ char unk_14C[0x14];
|
||||||
} BgMoriIdomizu; // size = 0x0160
|
} BgMoriIdomizu; // size = 0x0160
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#include <ultra64.h>
|
#include <ultra64.h>
|
||||||
#include <global.h>
|
#include <global.h>
|
||||||
|
|
||||||
typedef struct {
|
struct BgMoriKaitenkabe;
|
||||||
|
|
||||||
|
typedef struct BgMoriKaitenkabe {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x3C];
|
/* 0x014C */ char unk_14C[0x3C];
|
||||||
} BgMoriKaitenkabe; // size = 0x0188
|
} BgMoriKaitenkabe; // size = 0x0188
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue