Big actor cleanup (fixed) (#69)

* Started doing cleanup

* did more work

* did more migration

* migrated more rodata and worked on some structs

* did more work

* Removal of ROOM field from initvars, some rodata migration, some string decompilation

* General update

* Decompiled vt strings

* Tool work

* Tool improvements

* 270 overlay rodata files remaining

* better float handling

* floats

* Many more floats

* migrated boss_mo

* assorted fixes

* Migrated 10

* tool improvements

* migrated 10

* 10 more

* 1 more

* did a few more

* fixes

* 10 more

* more floats

* Did some more, updated migrate-rodata.py to 'modify' the C file after processing in order to make to compiler process it as if it was changed.

* removed changes made to script by accident

* migrated largest rodata - ovl_fishing

* Did some more

* 114 remaining

* 99 left !

* almost done migrating rodata

* did some more, done for tonight

* almost done, tried add support to the script for z_player

* All possible rodata migrated in actor overlays

* update

* removed static from all overlays, ran format.sh

* Removed unknown actor structs

* converted a few floats

* Added new lines to header files that were missing them. Removed unused asm files

* Removed unused asm files

* Formatting newlines

Further formatting

spacing

.float spacing

More space formatting

More spacing formatting

Removing .balign 4 after floats

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
This commit is contained in:
Lucas Shaw
2020-04-14 11:16:34 -07:00
committed by GitHub
parent 5aef81071e
commit 045a92d7c3
10327 changed files with 33390 additions and 45661 deletions
-1
View File
@@ -18,7 +18,6 @@ void PlayerCall_Draw(Player* player, GlobalContext* globalCtx);
const ActorInit Player_InitVars = {
ACTOR_PLAYER,
ACTORTYPE_PLAYER,
0,
0x6000035,
OBJECT_GAMEPLAY_KEEP,
sizeof(Player),
@@ -1,18 +1,18 @@
#include "z_arms_hook.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void ArmsHook_Init(ArmsHook* this, GlobalContext* globalCtx);
void ArmsHook_Destroy(ArmsHook* this, GlobalContext* globalCtx);
void ArmsHook_Update(ArmsHook* this, GlobalContext* globalCtx);
void ArmsHook_Draw(ArmsHook* this, GlobalContext* globalCtx);
void ArmsHook_SetupAction(ArmsHook* this, ActorFunc actionFunc);
void func_80864FC4(ArmsHook* this, GlobalContext* globalCtx);
/*
const ActorInit Arms_Hook_InitVars = {
ACTOR_ARMS_HOOK,
ACTORTYPE_ITEMACTION,
ROOM,
FLAGS,
OBJECT_LINK_BOY,
sizeof(ArmsHook),
@@ -22,7 +22,7 @@ const ActorInit Arms_Hook_InitVars = {
(ActorFunc)ArmsHook_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Arms_Hook/func_80864F00.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Arms_Hook/ArmsHook_SetupAction.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Arms_Hook/ArmsHook_Init.s")
@@ -6,7 +6,8 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xCC];
/* 0x014C */ char unk_14C[0xC8];
/* 0x0214 */ ActorFunc actionFunc;
} ArmsHook; // size = 0x0218
extern const ActorInit Arms_Hook_InitVars;
@@ -7,7 +7,6 @@
#include "z_arrow_fire.h"
#include "../ovl_En_Arrow/z_en_arrow.h"
#define ROOM 0x00
#define FLAGS 0x02000010
void ArrowFire_Init(ArrowFire* this, GlobalContext* globalCtx);
@@ -24,7 +23,6 @@ void ArrowFire_Hit(ArrowFire* this, GlobalContext* globalCtx);
const ActorInit Arrow_Fire_InitVars = {
ACTOR_ARROW_FIRE,
ACTORTYPE_ITEMACTION,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(ArrowFire),
@@ -7,7 +7,6 @@
#include "z_arrow_ice.h"
#include "../ovl_En_Arrow/z_en_arrow.h"
#define ROOM 0x00
#define FLAGS 0x02000010
void ArrowIce_Init(ArrowIce* this, GlobalContext* globalCtx);
@@ -24,7 +23,6 @@ void ArrowIce_Hit(ArrowIce* this, GlobalContext* globalCtx);
const ActorInit Arrow_Ice_InitVars = {
ACTOR_ARROW_ICE,
ACTORTYPE_ITEMACTION,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(ArrowIce),
@@ -7,7 +7,6 @@
#include "z_arrow_light.h"
#include "../ovl_En_Arrow/z_en_arrow.h"
#define ROOM 0x00
#define FLAGS 0x02000010
void ArrowLight_Init(ArrowLight* this, GlobalContext* globalCtx);
@@ -24,7 +23,6 @@ void ArrowLight_Hit(ArrowLight* this, GlobalContext* globalCtx);
const ActorInit Arrow_Light_InitVars = {
ACTOR_ARROW_LIGHT,
ACTORTYPE_ITEMACTION,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(ArrowLight),
@@ -1,40 +1,38 @@
/*
* File: z_bg_bdan_objects.c
* Overlay: ovl_Bg_Bdan_Objects
* Description:
* Description: Lord Jabu-Jabu Objects
*/
#include "z_bg_bdan_objects.h"
#define ROOM 0x00
#define FLAGS 0x00000010
static void BgBdanObjects_Init(BgBdanObjects* this, GlobalContext* globalCtx);
static void BgBdanObjects_Destroy(BgBdanObjects* this, GlobalContext* globalCtx);
static void BgBdanObjects_Update(BgBdanObjects* this, GlobalContext* globalCtx);
static void BgBdanObjects_Draw(BgBdanObjects* this, GlobalContext* globalCtx);
void BgBdanObjects_Init(BgBdanObjects* this, GlobalContext* globalCtx);
void BgBdanObjects_Destroy(BgBdanObjects* this, GlobalContext* globalCtx);
void BgBdanObjects_Update(BgBdanObjects* this, GlobalContext* globalCtx);
void BgBdanObjects_Draw(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C054(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C1A0(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C55C(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C5BC(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C618(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C6EC(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C76C(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C7D0(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C868(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx);
static void func_8086CB8C(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C054(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C1A0(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C55C(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C5BC(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C618(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C6EC(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C76C(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C7D0(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C868(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx);
void func_8086CB8C(BgBdanObjects* this, GlobalContext* globalCtx);
const ActorInit Bg_Bdan_Objects_InitVars = {
ACTOR_BG_BDAN_OBJECTS,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_BDAN_OBJECTS,
sizeof(BgBdanObjects),
@@ -80,7 +78,7 @@ s32 BgBdanObjects_GetContactRu1(BgBdanObjects* this, s32 arg1) {
}
}
static void BgBdanObjects_SetContactRu1(BgBdanObjects* this, s32 arg1) {
void BgBdanObjects_SetContactRu1(BgBdanObjects* this, s32 arg1) {
switch (arg1) {
case 1:
this->unk_1B8 = 2;
@@ -96,7 +94,7 @@ static void BgBdanObjects_SetContactRu1(BgBdanObjects* this, s32 arg1) {
}
}
static void BgBdanObjects_Init(BgBdanObjects* this, GlobalContext* globalCtx) {
void BgBdanObjects_Init(BgBdanObjects* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
s16 pad;
s32 localC = 0;
@@ -154,7 +152,7 @@ static void BgBdanObjects_Init(BgBdanObjects* this, GlobalContext* globalCtx) {
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, this, localC);
}
static void BgBdanObjects_Destroy(BgBdanObjects* this, GlobalContext* globalCtx) {
void BgBdanObjects_Destroy(BgBdanObjects* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
@@ -163,7 +161,7 @@ static void BgBdanObjects_Destroy(BgBdanObjects* this, GlobalContext* globalCtx)
}
}
static void func_8086C054(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C054(BgBdanObjects* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (BgBdanObjects_GetContactRu1(this, 0)) {
@@ -194,7 +192,7 @@ static void func_8086C054(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C1A0(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C1A0(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Math_SmoothScaleMaxMinF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 500.0f, 0.5f, 7.5f,
1.0f) < 0.1f) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
@@ -214,7 +212,7 @@ static void func_8086C1A0(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx) {
s32 temp;
if (this->unk_16A != 0) {
@@ -238,7 +236,7 @@ static void func_8086C29C(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C3D8(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C3D8(BgBdanObjects* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
this->dyna.actor.velocity.y += 0.5f;
@@ -271,7 +269,7 @@ static void func_8086C3D8(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C55C(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C55C(BgBdanObjects* this, GlobalContext* globalCtx) {
this->unk_16A -= 1;
if (this->unk_16A == 0) {
@@ -282,7 +280,7 @@ static void func_8086C55C(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C5BC(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C5BC(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A -= 1;
}
@@ -297,7 +295,7 @@ static void func_8086C5BC(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C618(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C618(BgBdanObjects* this, GlobalContext* globalCtx) {
ActorCollider_Cylinder_Update(&this->dyna.actor, &this->collider);
Actor_CollisionCheck_SetAT(globalCtx, &globalCtx->sub_11E60, &this->collider);
if (Flags_GetClear(globalCtx, this->dyna.actor.room)) {
@@ -310,7 +308,7 @@ static void func_8086C618(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C6EC(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C6EC(BgBdanObjects* this, GlobalContext* globalCtx) {
s32 cond = Math_ApproxUpdateScaledS(&this->dyna.actor.shape.rot.y, this->dyna.actor.initPosRot.rot.y, 0x200);
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + -125.0f, 3.0f)) {
if (cond) {
@@ -319,7 +317,7 @@ static void func_8086C6EC(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C76C(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C76C(BgBdanObjects* this, GlobalContext* globalCtx) {
if (func_8004356C(&this->dyna.actor)) {
if (this->dyna.actor.xzDistanceFromLink < 120.0f) {
this->actionFunc = (ActorFunc)func_8086C7D0;
@@ -328,7 +326,7 @@ static void func_8086C76C(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C7D0(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C7D0(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Math_SmoothScaleMaxMinF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 965.0f, 0.5f, 15.0f,
0.2f) < 0.01f) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BUYOSTAND_STOP_A);
@@ -338,10 +336,10 @@ static void func_8086C7D0(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C868(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C868(BgBdanObjects* this, GlobalContext* globalCtx) {
}
static void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A -= 1;
}
@@ -373,14 +371,14 @@ static void func_8086C874(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C9A8(BgBdanObjects* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->unk_168)) {
this->unk_16A = 0x64;
this->actionFunc = (ActorFunc)func_8086C9F0;
}
}
static void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->unk_16A == 0) {
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y, 0.5f)) {
Flags_UnsetSwitch(globalCtx, this->unk_168);
@@ -396,7 +394,7 @@ static void func_8086C9F0(BgBdanObjects* this, GlobalContext* globalCtx) {
globalCtx->colCtx.stat.colHeader->waterBoxes[7].unk_02 = this->dyna.actor.posRot.pos.y;
}
static void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A -= 1;
}
@@ -406,7 +404,7 @@ static void func_8086CABC(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx) {
if (func_8004356C(&this->dyna.actor)) {
Flags_SetSwitch(globalCtx, this->unk_168);
this->unk_16A = 0x32;
@@ -416,7 +414,7 @@ static void func_8086CB10(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void func_8086CB8C(BgBdanObjects* this, GlobalContext* globalCtx) {
void func_8086CB8C(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A -= 1;
}
@@ -430,12 +428,12 @@ static void func_8086CB8C(BgBdanObjects* this, GlobalContext* globalCtx) {
}
}
static void BgBdanObjects_Update(BgBdanObjects* this, GlobalContext* globalCtx) {
void BgBdanObjects_Update(BgBdanObjects* this, GlobalContext* globalCtx) {
Actor_SetHeight(&this->dyna.actor, 50.0f);
this->actionFunc(this, globalCtx);
}
static void BgBdanObjects_Draw(BgBdanObjects* this, GlobalContext* globalCtx) {
void BgBdanObjects_Draw(BgBdanObjects* this, GlobalContext* globalCtx) {
if (this->dyna.actor.params == 0) {
if (this->actionFunc == (ActorFunc)func_8086C054) {
if (((this->dyna.actor.initPosRot.pos.y + -79.0f) - 5.0f) < this->dyna.actor.posRot.pos.y) {
@@ -4,98 +4,46 @@
* Description: Switches (Inside Lord Jabu-Jabu)
*/
#include <ultra64.h>
#include <global.h>
#include "z_bg_bdan_switch.h"
// BgBdanSwitch.actor.params & 0xFF
typedef enum {
/* 0x00 */ BLUE,
/* 0x01 */ YELLOW_HEAVY,
/* 0x02 */ YELLOW,
/* 0x03 */ YELLOW_TALL_1,
/* 0x04 */ YELLOW_TALL_2
} BgBdanSwitchType;
typedef struct {
/* 0x00 */ char unk_00[0x2E];
/* 0x2E */ s16 unk_2E;
} ColliderCustomHelper;
typedef struct {
/* 0x00 */ Collider base;
/* 0x18 */ char unk_18[0x4];
/* 0x1C */ ColliderCustomHelper* unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ char unk_24[0x1C];
// after this is a guess based on ColliderCylinderMain
/* 0x40 */ s16 radius;
/* 0x42 */ s16 height;
/* 0x44 */ s16 yShift;
/* 0x46 */ Vec3s position;
} ColliderCustomMain; // size = 0x4C
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ f32 unk_150;
/* 0x0154 */ f32 unk_154;
/* 0x0158 */ u32 unk_158;
/* 0x015C */ u32 unk_15C;
/* 0x0160 */ u8 unk_160;
/* 0x0164 */ ActorFunc updateFunc;
/* 0x0168 */ ColliderCustomMain collider;
/* 0x01B4 */ char unk_1B4[0x14];
/* 0x01C8 */ f32 unk_1C8;
/* 0x01CC */ s16 unk_1CC;
/* 0x01CE */ char unk_1CE[0x2];
/* 0x01D0 */ f32 unk_1D0;
/* 0x01D4 */ f32 unk_1D4;
/* 0x01D8 */ s16 unk_1D8;
/* 0x01DA */ s16 unk_1DA;
/* 0x01DC */ u8 unk_1DC;
/* 0x01DD */ char unk_1DD[0x3];
} BgBdanSwitch; // size = 0x01E0
#define ROOM 0x00
#define FLAGS 0x00000010
static void BgBdanSwitch_Init(BgBdanSwitch* this, GlobalContext* globalCtx);
static void BgBdanSwitch_Destroy(BgBdanSwitch* this, GlobalContext* globalCtx);
static void BgBdanSwitch_Update(BgBdanSwitch* this, GlobalContext* globalCtx);
static void BgBdanSwitch_Draw(BgBdanSwitch* this, GlobalContext* globalCtx);
void BgBdanSwitch_Init(BgBdanSwitch* this, GlobalContext* globalCtx);
void BgBdanSwitch_Destroy(BgBdanSwitch* this, GlobalContext* globalCtx);
void BgBdanSwitch_Update(BgBdanSwitch* this, GlobalContext* globalCtx);
void BgBdanSwitch_Draw(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D5C4(BgBdanSwitch* this);
static void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D67C(BgBdanSwitch* this);
static void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D730(BgBdanSwitch* this);
static void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D7FC(BgBdanSwitch* this);
static void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D86C(BgBdanSwitch* this);
static void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D8BC(BgBdanSwitch* this);
static void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086D9F8(BgBdanSwitch* this);
static void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086DAB4(BgBdanSwitch* this);
static void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086DB24(BgBdanSwitch* this);
static void func_8086DB40(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086DB4C(BgBdanSwitch* this);
static void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086DC30(BgBdanSwitch* this);
static void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086DCCC(BgBdanSwitch* this);
static void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx);
static void func_8086DDA8(BgBdanSwitch* this);
static void func_8086DDC0(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D5C4(BgBdanSwitch* this);
void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D67C(BgBdanSwitch* this);
void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D730(BgBdanSwitch* this);
void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D7FC(BgBdanSwitch* this);
void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D86C(BgBdanSwitch* this);
void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D8BC(BgBdanSwitch* this);
void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086D9F8(BgBdanSwitch* this);
void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086DAB4(BgBdanSwitch* this);
void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086DB24(BgBdanSwitch* this);
void func_8086DB40(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086DB4C(BgBdanSwitch* this);
void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086DC30(BgBdanSwitch* this);
void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086DCCC(BgBdanSwitch* this);
void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx);
void func_8086DDA8(BgBdanSwitch* this);
void func_8086DDC0(BgBdanSwitch* this, GlobalContext* globalCtx);
const ActorInit Bg_Bdan_Switch_InitVars = {
ACTOR_BG_BDAN_SWITCH,
ACTORTYPE_SWITCH,
ROOM,
FLAGS,
OBJECT_BDAN_OBJECTS,
sizeof(BgBdanSwitch),
@@ -122,7 +70,7 @@ static InitChainEntry initChain[] = {
static u32 D_8086E0E0[] = { 0x00000000, 0x430C0000, 0x00000000, 0x00000000 };
static void func_8086D010(BgBdanSwitch* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) {
void func_8086D010(BgBdanSwitch* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) {
s16 pad1;
u32 local_c = 0;
s16 pad2;
@@ -136,13 +84,13 @@ static void func_8086D010(BgBdanSwitch* this, GlobalContext* globalCtx, u32 coll
}
}
static void func_8086D098(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D098(BgBdanSwitch* this, GlobalContext* globalCtx) {
Actor* actor = &this->actor;
func_8005BBF8(globalCtx, &this->collider, actor);
func_8005C050(globalCtx, &this->collider, actor, &D_8086E0C4, &this->collider.unk_20);
}
static void func_8086D0EC(BgBdanSwitch* this) {
void func_8086D0EC(BgBdanSwitch* this) {
if (this->unk_1CC > 0) {
this->unk_1CC += 0x5DC;
} else {
@@ -166,7 +114,7 @@ static void func_8086D0EC(BgBdanSwitch* this) {
this->actor.shape.unk_08 = 1.2f / this->unk_1D0;
}
static void BgBdanSwitch_Init(BgBdanSwitch* this, GlobalContext* globalCtx) {
void BgBdanSwitch_Init(BgBdanSwitch* this, GlobalContext* globalCtx) {
s32 pad[2];
s16 type;
s32 flag;
@@ -230,7 +178,7 @@ static void BgBdanSwitch_Init(BgBdanSwitch* this, GlobalContext* globalCtx) {
osSyncPrintf("(巨大魚ダンジョン 専用スイッチ)(arg_data 0x%04x)\n", this->actor.params);
}
static void BgBdanSwitch_Destroy(BgBdanSwitch* this, GlobalContext* globalCtx) {
void BgBdanSwitch_Destroy(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) {
case BLUE:
case YELLOW_HEAVY:
@@ -243,7 +191,7 @@ static void BgBdanSwitch_Destroy(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D4B4(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D4B4(BgBdanSwitch* this, GlobalContext* globalCtx) {
s32 pad;
s32 type;
if (!Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) {
@@ -257,7 +205,7 @@ static void func_8086D4B4(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D548(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D548(BgBdanSwitch* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) {
Flags_UnsetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F);
if ((this->actor.params & 0xFF) == YELLOW_TALL_2) {
@@ -266,12 +214,12 @@ static void func_8086D548(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D5C4(BgBdanSwitch* this) {
void func_8086D5C4(BgBdanSwitch* this) {
this->updateFunc = &func_8086D5E0;
this->unk_1C8 = 1.0f;
}
static void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) {
case BLUE:
if (func_800435B4(&this->actor)) {
@@ -287,12 +235,12 @@ static void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D67C(BgBdanSwitch* this) {
void func_8086D67C(BgBdanSwitch* this) {
this->updateFunc = &func_8086D694;
this->unk_1DA = 0x64;
}
static void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((func_8005B198() == this->actor.type) || (this->unk_1DA <= 0)) {
this->unk_1C8 -= 0.2f;
if (this->unk_1C8 <= 0.1f) {
@@ -303,13 +251,13 @@ static void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D730(BgBdanSwitch* this) {
void func_8086D730(BgBdanSwitch* this) {
this->unk_1C8 = 0.1f;
this->updateFunc = &func_8086D754;
this->unk_1D8 = 6;
}
static void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) {
case BLUE:
if (!func_800435B4(&this->actor)) {
@@ -328,11 +276,11 @@ static void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D7FC(BgBdanSwitch* this) {
void func_8086D7FC(BgBdanSwitch* this) {
this->updateFunc = &func_8086D80C;
}
static void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
this->unk_1C8 += 0.2f;
if (this->unk_1C8 >= 1.0f) {
func_8086D5C4(this);
@@ -340,22 +288,22 @@ static void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D86C(BgBdanSwitch* this) {
void func_8086D86C(BgBdanSwitch* this) {
this->updateFunc = &func_8086D888;
this->unk_1C8 = 1.0f;
}
static void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx) {
if (func_8004356C(&this->actor)) {
func_8086D8BC(this);
}
}
static void func_8086D8BC(BgBdanSwitch* this) {
void func_8086D8BC(BgBdanSwitch* this) {
this->updateFunc = &func_8086D8CC;
}
static void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
this->unk_1C8 -= 0.2f;
if (this->unk_1C8 <= 0.6f) {
func_8086D9F8(this);
@@ -364,12 +312,12 @@ static void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D944(BgBdanSwitch* this) {
void func_8086D944(BgBdanSwitch* this) {
this->updateFunc = &func_8086D95C;
this->unk_1DA = 0x64;
}
static void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((func_8005B198() == this->actor.type) || (this->unk_1DA <= 0)) {
this->unk_1C8 -= 0.2f;
if (this->unk_1C8 <= 0.1f) {
@@ -380,13 +328,13 @@ static void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086D9F8(BgBdanSwitch* this) {
void func_8086D9F8(BgBdanSwitch* this) {
this->unk_1C8 = 0.6f;
this->updateFunc = &func_8086DA1C;
this->unk_1D8 = 6;
}
static void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx) {
Actor* heldActor = PLAYER->heldActor;
if (func_8004356C(&this->actor)) {
@@ -405,11 +353,11 @@ static void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086DAB4(BgBdanSwitch* this) {
void func_8086DAB4(BgBdanSwitch* this) {
this->updateFunc = &func_8086DAC4;
}
static void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
this->unk_1C8 += 0.2f;
if (this->unk_1C8 >= 1.0f) {
func_8086D86C(this);
@@ -417,20 +365,20 @@ static void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086DB24(BgBdanSwitch* this) {
void func_8086DB24(BgBdanSwitch* this) {
this->unk_1C8 = 0.1f;
this->updateFunc = &func_8086DB40;
}
static void func_8086DB40(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DB40(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
static void func_8086DB4C(BgBdanSwitch* this) {
void func_8086DB4C(BgBdanSwitch* this) {
this->updateFunc = &func_8086DB68;
this->unk_1C8 = 2.0f;
}
static void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) {
default:
return;
@@ -450,12 +398,12 @@ static void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086DC30(BgBdanSwitch* this) {
void func_8086DC30(BgBdanSwitch* this) {
this->updateFunc = &func_8086DC48;
this->unk_1DA = 0x64;
}
static void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((func_8005B198() == this->actor.type) || (this->unk_1DA <= 0)) {
this->unk_1C8 -= 0.3f;
if (this->unk_1C8 <= 1.0f) {
@@ -465,12 +413,12 @@ static void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086DCCC(BgBdanSwitch* this) {
void func_8086DCCC(BgBdanSwitch* this) {
this->updateFunc = &func_8086DCE8;
this->unk_1C8 = 1.0f;
}
static void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) {
case YELLOW_TALL_1:
if (!Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) {
@@ -486,12 +434,12 @@ static void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void func_8086DDA8(BgBdanSwitch* this) {
void func_8086DDA8(BgBdanSwitch* this) {
this->updateFunc = &func_8086DDC0;
this->unk_1DA = 0x64;
}
static void func_8086DDC0(BgBdanSwitch* this, GlobalContext* globalCtx) {
void func_8086DDC0(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((((this->actor.params & 0xFF) != YELLOW_TALL_2) || (func_8005B198() == this->actor.type)) ||
(this->unk_1DA <= 0)) {
this->unk_1C8 += 0.3f;
@@ -502,7 +450,7 @@ static void func_8086DDC0(BgBdanSwitch* this, GlobalContext* globalCtx) {
}
}
static void BgBdanSwitch_Update(BgBdanSwitch* this, GlobalContext* globalCtx) {
void BgBdanSwitch_Update(BgBdanSwitch* this, GlobalContext* globalCtx) {
s32 pad;
s32 type;
s32 pad2;
@@ -528,14 +476,14 @@ static void BgBdanSwitch_Update(BgBdanSwitch* this, GlobalContext* globalCtx) {
Actor_CollisionCheck_SetOT(globalCtx, &globalCtx->sub_11E60, &this->collider);
}
static void func_8086DF58(BgBdanSwitch* this, GlobalContext* globalCtx, UNK_TYPE arg2) {
void func_8086DF58(BgBdanSwitch* this, GlobalContext* globalCtx, UNK_TYPE arg2) {
func_800D1694(this->actor.posRot.pos.x, this->actor.posRot.pos.y + (this->actor.shape.unk_08 * this->unk_1D0),
this->actor.posRot.pos.z, &this->actor.shape.rot);
Matrix_Scale(this->unk_1D4, this->unk_1D0, this->unk_1D4, MTXMODE_APPLY);
Gfx_DrawDListOpa(globalCtx, arg2);
}
static void BgBdanSwitch_Draw(BgBdanSwitch* this, GlobalContext* globalCtx) {
void BgBdanSwitch_Draw(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) {
case YELLOW_HEAVY:
case YELLOW:
@@ -0,0 +1,58 @@
#ifndef _Z_BG_BDAN_SWITCH_H_
#define _Z_BG_BDAN_SWITCH_H_
#include <ultra64.h>
#include <global.h>
// BgBdanSwitch.actor.params & 0xFF
typedef enum {
/* 0x00 */ BLUE,
/* 0x01 */ YELLOW_HEAVY,
/* 0x02 */ YELLOW,
/* 0x03 */ YELLOW_TALL_1,
/* 0x04 */ YELLOW_TALL_2
} BgBdanSwitchType;
typedef struct {
/* 0x00 */ char unk_00[0x2E];
/* 0x2E */ s16 unk_2E;
} ColliderCustomHelper;
typedef struct {
/* 0x00 */ Collider base;
/* 0x18 */ char unk_18[0x4];
/* 0x1C */ ColliderCustomHelper* unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ char unk_24[0x1C];
// after this is a guess based on ColliderCylinderMain
/* 0x40 */ s16 radius;
/* 0x42 */ s16 height;
/* 0x44 */ s16 yShift;
/* 0x46 */ Vec3s position;
} ColliderCustomMain; // size = 0x4C
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ f32 unk_150;
/* 0x0154 */ f32 unk_154;
/* 0x0158 */ u32 unk_158;
/* 0x015C */ u32 unk_15C;
/* 0x0160 */ u8 unk_160;
/* 0x0164 */ ActorFunc updateFunc;
/* 0x0168 */ ColliderCustomMain collider;
/* 0x01B4 */ char unk_1B4[0x14];
/* 0x01C8 */ f32 unk_1C8;
/* 0x01CC */ s16 unk_1CC;
/* 0x01CE */ char unk_1CE[0x2];
/* 0x01D0 */ f32 unk_1D0;
/* 0x01D4 */ f32 unk_1D4;
/* 0x01D8 */ s16 unk_1D8;
/* 0x01DA */ s16 unk_1DA;
/* 0x01DC */ u8 unk_1DC;
/* 0x01DD */ char unk_1DD[0x3];
} BgBdanSwitch; // size = 0x01E0
extern const ActorInit Bg_Bdan_Switch_InitVars;
#endif
@@ -1,26 +1,24 @@
/*
* File: z_bg_bom_guard.c
* Overlay: Bg_Bom_Guard
* Description:
* Description: Bombchu Bowling Alley Game
*/
#include "z_bg_bom_guard.h"
#include <vt.h>
#define ROOM 0x00
#define FLAGS 0x00000010
static void BgBomGuard_Init(BgBomGuard* this, GlobalContext* globalCtx);
static void BgBomGuard_Destroy(BgBomGuard* this, GlobalContext* globalCtx);
static void BgBomGuard_Update(BgBomGuard* this, GlobalContext* globalCtx);
void BgBomGuard_Init(BgBomGuard* this, GlobalContext* globalCtx);
void BgBomGuard_Destroy(BgBomGuard* this, GlobalContext* globalCtx);
void BgBomGuard_Update(BgBomGuard* this, GlobalContext* globalCtx);
static void func_8086E638(BgBomGuard* this, GlobalContext* globalCtx);
void func_8086E638(BgBomGuard* this, GlobalContext* globalCtx);
const ActorInit Bg_Bom_Guard_InitVars = {
ACTOR_BG_BOM_GUARD,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_BOWL,
sizeof(BgBomGuard),
@@ -32,11 +30,11 @@ const ActorInit Bg_Bom_Guard_InitVars = {
extern u32 D_06001C40;
static void BgBomGuard_SetupAction(BgBomGuard* this, ActorFunc actionFunc) {
void BgBomGuard_SetupAction(BgBomGuard* this, ActorFunc actionFunc) {
this->actionFunc = actionFunc;
}
static void BgBomGuard_Init(BgBomGuard* this, GlobalContext* globalCtx) {
void BgBomGuard_Init(BgBomGuard* this, GlobalContext* globalCtx) {
s32 pad[2];
Actor* thisx = &this->dyna.actor;
s32 local_c = 0;
@@ -55,11 +53,11 @@ static void BgBomGuard_Init(BgBomGuard* this, GlobalContext* globalCtx) {
BgBomGuard_SetupAction(this, func_8086E638);
}
static void BgBomGuard_Destroy(BgBomGuard* this, GlobalContext* globalCtx) {
void BgBomGuard_Destroy(BgBomGuard* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
static void func_8086E638(BgBomGuard* this, GlobalContext* globalCtx) {
void func_8086E638(BgBomGuard* this, GlobalContext* globalCtx) {
Actor* it = globalCtx->actorCtx.actorList[ACTORTYPE_NPC].first;
Actor* thisx = &this->dyna.actor;
@@ -83,6 +81,6 @@ static void func_8086E638(BgBomGuard* this, GlobalContext* globalCtx) {
}
}
static void BgBomGuard_Update(BgBomGuard* this, GlobalContext* globalCtx) {
void BgBomGuard_Update(BgBomGuard* this, GlobalContext* globalCtx) {
this->actionFunc(this, globalCtx);
}
@@ -1,18 +1,30 @@
/*
* File: z_bg_bombwall.c
* Overlay: ovl_Bg_Bombwall
* Description: 2D Bombable Wall
*/
#include "z_bg_bombwall.h"
#define ROOM 0x00
#define FLAGS 0x00400000
void BgBombwall_Init(BgBombwall* this, GlobalContext* globalCtx);
void BgBombwall_Destroy(BgBombwall* this, GlobalContext* globalCtx);
void BgBombwall_Update(BgBombwall* this, GlobalContext* globalCtx);
void BgBombwall_Draw(BgBombwall* this, GlobalContext* globalCtx);
void func_8086E7D0(BgBombwall* this, GlobalContext* globalCtx);
void func_8086EAC0(BgBombwall* this, GlobalContext* globalCtx);
void func_8086EB5C(BgBombwall* this, GlobalContext* globalCtx);
void func_8086ED50(BgBombwall* this, GlobalContext* globalCtx);
void func_8086ED70(BgBombwall* this, GlobalContext* globalCtx);
void func_8086EDFC(BgBombwall* this, GlobalContext* globalCtx);
void func_8086EE40(BgBombwall* this, GlobalContext* globalCtx);
void func_8086EE94(BgBombwall* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Bombwall_InitVars = {
ACTOR_BG_BOMBWALL,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_FIELD_KEEP,
sizeof(BgBombwall),
@@ -5,8 +5,10 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x158];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0x134];
/* 0x0298 */ ActorFunc actionFunc;
/* 0x029C */ char unk_29C[0x8];
} BgBombwall; // size = 0x02A4
extern const ActorInit Bg_Bombwall_InitVars;
@@ -1,18 +1,27 @@
/*
* File: z_bg_bowl_wall.c
* Overlay: Bg_Bowl_Wall
* Description: Bombchu Bowling Alley Wall
*/
#include "z_bg_bowl_wall.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgBowlWall_Init(BgBowlWall* this, GlobalContext* globalCtx);
void BgBowlWall_Destroy(BgBowlWall* this, GlobalContext* globalCtx);
void BgBowlWall_Update(BgBowlWall* this, GlobalContext* globalCtx);
void BgBowlWall_Draw(BgBowlWall* this, GlobalContext* globalCtx);
void func_8086F260(BgBowlWall* this, GlobalContext* globalCtx);
void func_8086F440(BgBowlWall* this, GlobalContext* globalCtx);
void func_8086F464(BgBowlWall* this, GlobalContext* globalCtx);
void func_8086F718(BgBowlWall* this, GlobalContext* globalCtx);
void func_8086F7F8(BgBowlWall* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Bowl_Wall_InitVars = {
ACTOR_BG_BOWL_WALL,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_BOWL,
sizeof(BgBowlWall),
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x3C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x20];
} BgBowlWall; // size = 0x0188
extern const ActorInit Bg_Bowl_Wall_InitVars;
@@ -1,17 +1,26 @@
/*
* File: z_bg_breakwall.c
* Overlay: Bg_Breakwall
* Description: Bombable Wall
*/
#include "z_bg_breakwall.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgBreakwall_Init(BgBreakwall* this, GlobalContext* globalCtx);
void BgBreakwall_Destroy(BgBreakwall* this, GlobalContext* globalCtx);
void BgBreakwall_Update(BgBreakwall* this, GlobalContext* globalCtx);
void BgBreakwall_SetupAction(BgBreakwall* this, ActorFunc actionFunc);
void func_80870290(BgBreakwall* this, GlobalContext* globalCtx);
void func_80870394(BgBreakwall* this, GlobalContext* globalCtx);
void func_80870564(BgBreakwall* this, GlobalContext* globalCtx);
void func_808705D8(BgBreakwall* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Breakwall_InitVars = {
ACTOR_BG_BREAKWALL,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(BgBreakwall),
@@ -21,7 +30,7 @@ const ActorInit Bg_Breakwall_InitVars = {
NULL,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Breakwall/func_8086FBE0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Breakwall/BgBreakwall_SetupAction.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Breakwall/BgBreakwall_Init.s")
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xA4];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0x88];
/* 0x01EC */ ActorFunc actionFunc;
} BgBreakwall; // size = 0x01F0
extern const ActorInit Bg_Breakwall_InitVars;
@@ -1,18 +1,25 @@
/*
* File: z_bg_ddan_jd.c
* Overlay: ovl_Bg_Ddan_Jd
* Description: Rising stone platform (Dodongo's Cavern)
*/
#include "z_bg_ddan_jd.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgDdanJd_Init(BgDdanJd* this, GlobalContext* globalCtx);
void BgDdanJd_Destroy(BgDdanJd* this, GlobalContext* globalCtx);
void BgDdanJd_Update(BgDdanJd* this, GlobalContext* globalCtx);
void BgDdanJd_Draw(BgDdanJd* this, GlobalContext* globalCtx);
void func_80870B88(BgDdanJd* this, GlobalContext* globalCtx);
void func_80870D2C(BgDdanJd* this, GlobalContext* globalCtx);
void func_80870F00(BgDdanJd* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Ddan_Jd_InitVars = {
ACTOR_BG_DDAN_JD,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_DDAN_OBJECTS,
sizeof(BgDdanJd),
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x24];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x8];
} BgDdanJd; // size = 0x0170
extern const ActorInit Bg_Ddan_Jd_InitVars;
@@ -1,18 +1,26 @@
/*
* File: z_bg_ddan_kd.c
* Overlay: ovl_Bg_Ddan_Kd
* Description: Stone stairs in Dodongo's Cavern
*/
#include "z_bg_ddan_kd.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgDdanKd_Init(BgDdanKd* this, GlobalContext* globalCtx);
void BgDdanKd_Destroy(BgDdanKd* this, GlobalContext* globalCtx);
void BgDdanKd_Update(BgDdanKd* this, GlobalContext* globalCtx);
void BgDdanKd_Draw(BgDdanKd* this, GlobalContext* globalCtx);
void BgDdanKd_SetupAction(BgDdanKd* this, ActorFunc actionFunc);
void func_80871234(BgDdanKd* this, GlobalContext* globalCtx);
void func_80873164(BgDdanKd* this, GlobalContext* globalCtx);
void func_80871838(BgDdanKd* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Ddan_Kd_InitVars = {
ACTOR_BG_DDAN_KD,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_DDAN_OBJECTS,
sizeof(BgDdanKd),
@@ -22,7 +30,7 @@ const ActorInit Bg_Ddan_Kd_InitVars = {
(ActorFunc)BgDdanKd_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ddan_Kd/func_808710F0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ddan_Kd/BgDdanKd_SetupAction.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ddan_Kd/BgDdanKd_Init.s")
@@ -5,8 +5,10 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x7C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ Actor* unk_164; // pointer to bombflower actor
/* 0x0168 */ char unk_168[0x5C];
/* 0x01C4 */ ActorFunc actionFunc;
} BgDdanKd; // size = 0x01C8
extern const ActorInit Bg_Ddan_Kd_InitVars;
@@ -1,18 +1,28 @@
/*
* File: z_bg_dodoago.c
* Overlay: ovl_Bg_Dodoago
* Description: Dodongo Head Statue in Dodongo's Cavern
*/
#include "z_bg_dodoago.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgDodoago_Init(BgDodoago* this, GlobalContext* globalCtx);
void BgDodoago_Destroy(BgDodoago* this, GlobalContext* globalCtx);
void BgDodoago_Update(BgDodoago* this, GlobalContext* globalCtx);
void BgDodoago_Draw(BgDodoago* this, GlobalContext* globalCtx);
void BgDodoago_SetupAction(BgDodoago* this, ActorFunc actionFunc);
// void func_80871A08(Vec3f* vec, GlobalContext* globalCtx); // Not 100% sure
void func_80871CF4(BgDodoago* this, GlobalContext* globalCtx);
void func_80871FB8(BgDodoago* this, GlobalContext* globalCtx);
void func_8087227C(BgDodoago* this, GlobalContext* globalCtx);
void func_80872288(BgDodoago* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Dodoago_InitVars = {
ACTOR_BG_DODOAGO,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_DDAN_OBJECTS,
sizeof(BgDodoago),
@@ -22,7 +32,7 @@ const ActorInit Bg_Dodoago_InitVars = {
(ActorFunc)BgDodoago_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Dodoago/func_80871A00.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Dodoago/BgDodoago_SetupAction.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Dodoago/func_80871A08.s")
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x104];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0xE8];
/* 0x024C */ ActorFunc actionFunc;
} BgDodoago; // size = 0x0250
extern const ActorInit Bg_Dodoago_InitVars;
@@ -1,17 +1,43 @@
/*
* File: z_bg_dy_yoseizo.c
* Overlay: ovl_Bg_Dy_Yoseizo
* Description: Great Fairy
*/
#include "z_bg_dy_yoseizo.h"
#define ROOM 0x00
#define FLAGS 0x02000030
void BgDyYoseizo_Init(BgDyYoseizo* this, GlobalContext* globalCtx);
void BgDyYoseizo_Destroy(BgDyYoseizo* this, GlobalContext* globalCtx);
void BgDyYoseizo_Update(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80872960(BgDyYoseizo* this, GlobalContext* globalCtx, s16 arg2);
void func_80872C58(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80872D20(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80872DE4(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_8087328C(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873380(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_808734DC(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_8087358C(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_808736A4(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873780(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873868(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873B3C(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873C14(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873D14(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873E04(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873EA4(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80873FD8(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_80874304(BgDyYoseizo* this, GlobalContext* globalCtx);
s32 func_80874B7C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, BgDyYoseizo* this);
void func_80874BE0(BgDyYoseizo* this, GlobalContext* globalCtx);
// func_80874D9C
void func_80874EAC(BgDyYoseizo* this, GlobalContext* globalCtx);
void func_808751A0(BgDyYoseizo* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Dy_Yoseizo_InitVars = {
ACTOR_BG_DY_YOSEIZO,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_DY_OBJ,
sizeof(BgDyYoseizo),
@@ -6,7 +6,9 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x3768];
/* 0x014C */ ActorFunc actionFunc;
/* 0x0150 */ SkelAnime skelAnime;
/* 0x0194 */ char unk_194[0x3720];
} BgDyYoseizo; // size = 0x38B4
extern const ActorInit Bg_Dy_Yoseizo_InitVars;
@@ -1,18 +1,25 @@
/*
* File: z_bg_ganon_otyka.c
* Overlay: ovl_Bg_Ganon_Otyka
* Description: Falling Platform (Ganondorf Fight)
*/
#include "z_bg_ganon_otyuka.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgGanonOtyuka_Init(BgGanonOtyuka* this, GlobalContext* globalCtx);
void BgGanonOtyuka_Destroy(BgGanonOtyuka* this, GlobalContext* globalCtx);
void BgGanonOtyuka_Update(BgGanonOtyuka* this, GlobalContext* globalCtx);
void BgGanonOtyuka_Draw(BgGanonOtyuka* this, GlobalContext* globalCtx);
void func_80875A0C(BgGanonOtyuka* this, GlobalContext* globalCtx);
void func_80875C88(BgGanonOtyuka* this, GlobalContext* globalCtx);
void func_808760DC(BgGanonOtyuka* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Ganon_Otyuka_InitVars = {
ACTOR_BG_GANON_OTYUKA,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GANON,
sizeof(BgGanonOtyuka),
@@ -22,6 +29,7 @@ const ActorInit Bg_Ganon_Otyuka_InitVars = {
(ActorFunc)BgGanonOtyuka_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/BgGanonOtyuka_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/BgGanonOtyuka_Destroy.s")
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x40];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x24];
} BgGanonOtyuka; // size = 0x018C
extern const ActorInit Bg_Ganon_Otyuka_InitVars;
@@ -8,23 +8,21 @@
#include <vt.h>
#define ROOM 0x00
#define FLAGS 0x00000000
static void BgGateShutter_Init(BgGateShutter* this, GlobalContext* globalCtx);
static void BgGateShutter_Destroy(BgGateShutter* this, GlobalContext* globalCtx);
static void BgGateShutter_Update(BgGateShutter* this, GlobalContext* globalCtx);
static void BgGateShutter_Draw(BgGateShutter* this, GlobalContext* globalCtx);
void BgGateShutter_Init(BgGateShutter* this, GlobalContext* globalCtx);
void BgGateShutter_Destroy(BgGateShutter* this, GlobalContext* globalCtx);
void BgGateShutter_Update(BgGateShutter* this, GlobalContext* globalCtx);
void BgGateShutter_Draw(BgGateShutter* this, GlobalContext* globalCtx);
static void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx);
static void func_80878300(BgGateShutter* this, GlobalContext* globalCtx);
static void func_808783AC(BgGateShutter* this, GlobalContext* globalCtx);
static void func_808783D4(BgGateShutter* this, GlobalContext* globalCtx);
void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx);
void func_80878300(BgGateShutter* this, GlobalContext* globalCtx);
void func_808783AC(BgGateShutter* this, GlobalContext* globalCtx);
void func_808783D4(BgGateShutter* this, GlobalContext* globalCtx);
const ActorInit Bg_Gate_Shutter_InitVars = {
ACTOR_BG_GATE_SHUTTER,
ACTORTYPE_ITEMACTION,
ROOM,
FLAGS,
OBJECT_SPOT01_MATOYAB,
sizeof(BgGateShutter),
@@ -37,7 +35,7 @@ const ActorInit Bg_Gate_Shutter_InitVars = {
extern UNK_TYPE D_06001CD0;
extern UNK_TYPE D_06001DA8;
static void BgGateShutter_Init(BgGateShutter* this, GlobalContext* globalCtx) {
void BgGateShutter_Init(BgGateShutter* this, GlobalContext* globalCtx) {
s32 pad[2];
Actor* thisx = &this->dyna.actor;
s32 local_c = 0;
@@ -62,11 +60,11 @@ static void BgGateShutter_Init(BgGateShutter* this, GlobalContext* globalCtx) {
this->actionFunc = (ActorFunc)func_8087828C;
}
static void BgGateShutter_Destroy(BgGateShutter* this, GlobalContext* globalCtx) {
void BgGateShutter_Destroy(BgGateShutter* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
static void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx) {
void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx) {
if (this->unk_168 == 1 && !(gSaveContext.inf_table[7] & 0x40)) {
this->unk_178 = 2;
this->actionFunc = (ActorFunc)func_80878300;
@@ -79,7 +77,7 @@ static void func_8087828C(BgGateShutter* this, GlobalContext* globalCtx) {
}
}
static void func_80878300(BgGateShutter* this, GlobalContext* globalCtx) {
void func_80878300(BgGateShutter* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
if (this->unk_178 == 0) {
@@ -94,14 +92,14 @@ static void func_80878300(BgGateShutter* this, GlobalContext* globalCtx) {
}
}
static void func_808783AC(BgGateShutter* this, GlobalContext* globalCtx) {
void func_808783AC(BgGateShutter* this, GlobalContext* globalCtx) {
if (this->unk_178 == 0) {
this->unk_168 = 0;
this->actionFunc = (ActorFunc)func_8087828C;
}
}
static void func_808783D4(BgGateShutter* this, GlobalContext* globalCtx) {
void func_808783D4(BgGateShutter* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
if (this->unk_178 == 0) {
@@ -117,14 +115,14 @@ static void func_808783D4(BgGateShutter* this, GlobalContext* globalCtx) {
}
}
static void BgGateShutter_Update(BgGateShutter* this, GlobalContext* globalCtx) {
void BgGateShutter_Update(BgGateShutter* this, GlobalContext* globalCtx) {
if (this->unk_178 != 0) {
this->unk_178 -= 1;
}
this->actionFunc(this, globalCtx);
}
static void BgGateShutter_Draw(BgGateShutter* this, GlobalContext* globalCtx) {
void BgGateShutter_Draw(BgGateShutter* this, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
@@ -6,21 +6,19 @@
#include "z_bg_gjyo_bridge.h"
#define ROOM 0x00
#define FLAGS 0x00000000
static void BgGjyoBridge_Init(BgGjyoBridge* this, GlobalContext* globalCtx);
static void BgGjyoBridge_Destroy(BgGjyoBridge* this, GlobalContext* globalCtx);
static void BgGjyoBridge_Update(BgGjyoBridge* this, GlobalContext* globalCtx);
static void BgGjyoBridge_Draw(BgGjyoBridge* this, GlobalContext* globalCtx);
static void func_808787A4(BgGjyoBridge* this, GlobalContext* globalCtx);
static void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, GlobalContext* globalCtx);
static void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, GlobalContext* globalCtx);
void BgGjyoBridge_Init(BgGjyoBridge* this, GlobalContext* globalCtx);
void BgGjyoBridge_Destroy(BgGjyoBridge* this, GlobalContext* globalCtx);
void BgGjyoBridge_Update(BgGjyoBridge* this, GlobalContext* globalCtx);
void BgGjyoBridge_Draw(BgGjyoBridge* this, GlobalContext* globalCtx);
void func_808787A4(BgGjyoBridge* this, GlobalContext* globalCtx);
void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, GlobalContext* globalCtx);
void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, GlobalContext* globalCtx);
const ActorInit Bg_Gjyo_Bridge_InitVars = {
ACTOR_BG_GJYO_BRIDGE,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GJYO_OBJECTS,
sizeof(BgGjyoBridge),
@@ -30,7 +28,7 @@ const ActorInit Bg_Gjyo_Bridge_InitVars = {
(ActorFunc)BgGjyoBridge_Draw,
};
InitChainEntry initChain[] = {
static InitChainEntry initChain[] = {
ICHAIN_F32(unk_F8, 800, ICHAIN_CONTINUE),
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
@@ -1,17 +1,29 @@
/*
* File: z_bg_gnd_darkmeiro.c
* Overlay: ovl_Bg_Gnd_Darkmeiro
* Description: Clear block
*/
#include "z_bg_gnd_darkmeiro.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void func_80878C30(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void BgGndDarkmeiro_Init(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void BgGndDarkmeiro_Destroy(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void BgGndDarkmeiro_Update(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void func_80878F28(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void func_80878F34(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void func_80879128(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void func_80879134(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void func_808791BC(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void func_808791E8(BgGndDarkmeiro* this, GlobalContext* globalCtx);
void func_80879334(BgGndDarkmeiro* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Gnd_Darkmeiro_InitVars = {
ACTOR_BG_GND_DARKMEIRO,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_DEMO_KEKKAI,
sizeof(BgGndDarkmeiro),
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x24];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0x8];
/* 0x016C */ ActorFunc actionFunc;
} BgGndDarkmeiro; // size = 0x0170
extern const ActorInit Bg_Gnd_Darkmeiro_InitVars;
@@ -1,18 +1,25 @@
/*
* File: z_bg_gnd_firemeiro.c
* Overlay: ovl_Bg_Gnd_Firemeiro
* Description: Sinking lava platform (Ganon's Castle)
*/
#include "z_bg_gnd_firemeiro.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgGndFiremeiro_Init(BgGndFiremeiro* this, GlobalContext* globalCtx);
void BgGndFiremeiro_Destroy(BgGndFiremeiro* this, GlobalContext* globalCtx);
void BgGndFiremeiro_Update(BgGndFiremeiro* this, GlobalContext* globalCtx);
void BgGndFiremeiro_Draw(BgGndFiremeiro* this, GlobalContext* globalCtx);
void func_808795AC(BgGndFiremeiro* this, GlobalContext* globalCtx);
void func_80879668(BgGndFiremeiro* this, GlobalContext* globalCtx);
void func_80879808(BgGndFiremeiro* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Gnd_Firemeiro_InitVars = {
ACTOR_BG_GND_FIREMEIRO,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_DEMO_KEKKAI,
sizeof(BgGndFiremeiro),
@@ -5,8 +5,10 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x2C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ Vec3f unk_164;
/* 0x0170 */ char unk_170[0x4];
/* 0x0174 */ ActorFunc actionFunc;
} BgGndFiremeiro; // size = 0x0178
extern const ActorInit Bg_Gnd_Firemeiro_InitVars;
@@ -1,18 +1,26 @@
/*
* File: z_bg_gnd_iceblock.c
* Overlay: ovl_Bg_Gnd_Iceblock
* Description: Pushable large square ice block (Inside Ganon's Castle)
*/
#include "z_bg_gnd_iceblock.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgGndIceblock_Init(BgGndIceblock* this, GlobalContext* globalCtx);
void BgGndIceblock_Destroy(BgGndIceblock* this, GlobalContext* globalCtx);
void BgGndIceblock_Update(BgGndIceblock* this, GlobalContext* globalCtx);
void BgGndIceblock_Draw(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A0C8(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A184(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A248(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A300(BgGndIceblock* this, GlobalContext* globalCtx);
void func_8087A39C(BgGndIceblock* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Gnd_Iceblock_InitVars = {
ACTOR_BG_GND_ICEBLOCK,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_DEMO_KEKKAI,
sizeof(BgGndIceblock),
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x28];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ Vec3f unk_168;
} BgGndIceblock; // size = 0x0174
extern const ActorInit Bg_Gnd_Iceblock_InitVars;
@@ -4,46 +4,38 @@
* Description: 2D Stone Wall
*/
#include <ultra64.h>
#include <global.h>
#include <z64.h>
#include "z_bg_gnd_nisekabe.h"
typedef struct {
/* 0x0000 */ Actor actor;
} ActorGndNisekabe; // size = 0x014C
#define ROOM 0x00
#define FLAGS 0x00000010
static void Init(ActorGndNisekabe* this, GlobalContext* globalCtx);
static void Destroy(ActorGndNisekabe* this, GlobalContext* globalCtx);
static void Update(ActorGndNisekabe* this, GlobalContext* globalCtx);
static void Draw(ActorGndNisekabe* this, GlobalContext* globalCtx);
void BgGndNisekabe_Init(BgGndNisekabe* this, GlobalContext* globalCtx);
void BgGndNisekabe_Destroy(BgGndNisekabe* this, GlobalContext* globalCtx);
void BgGndNisekabe_Update(BgGndNisekabe* this, GlobalContext* globalCtx);
void BgGndNisekabe_Draw(BgGndNisekabe* this, GlobalContext* globalCtx);
const ActorInit Bg_Gnd_Nisekabe_InitVars = {
ACTOR_BG_GND_NISEKABE,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_DEMO_KEKKAI,
sizeof(ActorGndNisekabe),
(ActorFunc)Init,
(ActorFunc)Destroy,
(ActorFunc)Update,
(ActorFunc)Draw,
sizeof(BgGndNisekabe),
(ActorFunc)BgGndNisekabe_Init,
(ActorFunc)BgGndNisekabe_Destroy,
(ActorFunc)BgGndNisekabe_Update,
(ActorFunc)BgGndNisekabe_Draw,
};
static u32 segmentAddr[] = { 0x06009230, 0x0600A390, 0x0600B4A0 };
static void Init(ActorGndNisekabe* this, GlobalContext* globalCtx) {
void BgGndNisekabe_Init(BgGndNisekabe* this, GlobalContext* globalCtx) {
Actor_SetScale(&this->actor, 0.1);
this->actor.unk_F4 = 3000.0;
}
static void Destroy(ActorGndNisekabe* this, GlobalContext* globalCtx) {
void BgGndNisekabe_Destroy(BgGndNisekabe* this, GlobalContext* globalCtx) {
}
static void Update(ActorGndNisekabe* this, GlobalContext* globalCtx) {
void BgGndNisekabe_Update(BgGndNisekabe* this, GlobalContext* globalCtx) {
if (globalCtx->actorCtx.unk_03 != 0) {
this->actor.flags |= 0x80;
} else {
@@ -51,7 +43,7 @@ static void Update(ActorGndNisekabe* this, GlobalContext* globalCtx) {
}
}
static void Draw(ActorGndNisekabe* this, GlobalContext* globalCtx) {
void BgGndNisekabe_Draw(BgGndNisekabe* this, GlobalContext* globalCtx) {
u32 index = this->actor.params & 0xFF;
if ((this->actor.flags & 0x80) == 0x80) {
@@ -0,0 +1,13 @@
#ifndef _Z_BG_GND_NISEKABE_H_
#define _Z_BG_GND_NISEKABE_H_
#include <ultra64.h>
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
} BgGndNisekabe; // size = 0x014C
extern const ActorInit Bg_Gnd_Nisekabe_InitVars;
#endif
@@ -1,18 +1,25 @@
/*
* File: z_bg_gnd_soulmeiro.c
* Overlay: ovl_Bg_Gnd_Soulmeiro
* Description: Web-Blocked Ceiling Hole (Inside Ganon's Castle)
*/
#include "z_bg_gnd_soulmeiro.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgGndSoulmeiro_Init(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void BgGndSoulmeiro_Destroy(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void BgGndSoulmeiro_Update(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void BgGndSoulmeiro_Draw(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void func_8087AF38(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void func_8087B284(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void func_8087B350(BgGndSoulmeiro* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Gnd_Soulmeiro_InitVars = {
ACTOR_BG_GND_SOULMEIRO,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_DEMO_KEKKAI,
sizeof(BgGndSoulmeiro),
@@ -6,7 +6,8 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x54];
/* 0x014C */ char unk_14C[0x50];
/* 0x019C */ ActorFunc actionFunc;
} BgGndSoulmeiro; // size = 0x01A0
extern const ActorInit Bg_Gnd_Soulmeiro_InitVars;
+11 -3
View File
@@ -1,18 +1,26 @@
/*
* File: z_bg_haka.c
* Overlay: ovl_Bg_Haka
* Description: Gravestone
*/
#include "z_bg_haka.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHaka_Init(BgHaka* this, GlobalContext* globalCtx);
void BgHaka_Destroy(BgHaka* this, GlobalContext* globalCtx);
void BgHaka_Update(BgHaka* this, GlobalContext* globalCtx);
void BgHaka_Draw(BgHaka* this, GlobalContext* globalCtx);
void func_8087B758(BgHaka* this, Player* player);
void func_8087B7E8(BgHaka* this, GlobalContext* globalCtx);
void func_8087B938(BgHaka* this, GlobalContext* globalCtx);
void func_8087BAAC(BgHaka* this, GlobalContext* globalCtx);
void func_8087BAE4(BgHaka* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_InitVars = {
ACTOR_BG_HAKA,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HAKA,
sizeof(BgHaka),
+2 -2
View File
@@ -5,8 +5,8 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
} BgHaka; // size = 0x0168
extern const ActorInit Bg_Haka_InitVars;
@@ -1,18 +1,33 @@
/*
* File: z_bg_haka_gate.c
* Overlay: ovl_Bg_Haka_Gate
* Description: Truth Spinner Puzzle (Shadow Temple)
*/
#include "z_bg_haka_gate.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHakaGate_Init(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_Destroy(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_Update(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_Draw(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C114(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C120(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C158(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C270(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C454(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C5D0(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C65C(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C6AC(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C73C(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C794(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C85C(BgHakaGate* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_Gate_InitVars = {
ACTOR_BG_HAKA_GATE,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_HAKA_OBJECTS,
sizeof(BgHakaGate),
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x28];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0xC];
} BgHakaGate; // size = 0x0174
extern const ActorInit Bg_Haka_Gate_InitVars;
@@ -1,18 +1,22 @@
#include "z_bg_haka_huta.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgHakaHuta_Init(BgHakaHuta* this, GlobalContext* globalCtx);
void BgHakaHuta_Destroy(BgHakaHuta* this, GlobalContext* globalCtx);
void BgHakaHuta_Update(BgHakaHuta* this, GlobalContext* globalCtx);
void BgHakaHuta_Draw(BgHakaHuta* this, GlobalContext* globalCtx);
void func_8087D0AC(BgHakaHuta* this, GlobalContext* globalCtx);
// void func_8087D268(BgHakaHuta* this, GlobalContext* globalCtx, u16 arg2); not sure about this one
// void func_8087D5B8(BgHakaHuta* this, GlobalContext* globalCtx); not sure about this one
void func_8087D66C(BgHakaHuta* this, GlobalContext* globalCtx);
void func_8087D720(BgHakaHuta* this, GlobalContext* globalCtx);
void func_8087D8C0(BgHakaHuta* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_Huta_InitVars = {
ACTOR_BG_HAKA_HUTA,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HAKACH_OBJECTS,
sizeof(BgHakaHuta),
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x4];
} BgHakaHuta; // size = 0x016C
extern const ActorInit Bg_Haka_Huta_InitVars;
@@ -1,27 +1,25 @@
/*
* File: z_bg_haka_megane.c
* Overlay: ovl_Bg_Haka_Megane
* Description:
* Description: Shadow Temple Fake Walls
*/
#include "z_bg_haka_megane.h"
#define ROOM 0x00
#define FLAGS 0x000000B0
static void BgHakaMegane_Init(BgHakaMegane* this, GlobalContext* globalCtx);
static void BgHakaMegane_Destroy(BgHakaMegane* this, GlobalContext* globalCtx);
static void BgHakaMegane_Update(BgHakaMegane* this, GlobalContext* globalCtx);
void BgHakaMegane_Init(BgHakaMegane* this, GlobalContext* globalCtx);
void BgHakaMegane_Destroy(BgHakaMegane* this, GlobalContext* globalCtx);
void BgHakaMegane_Update(BgHakaMegane* this, GlobalContext* globalCtx);
static void func_8087DB24(BgHakaMegane* this, GlobalContext* globalCtx);
static void func_8087DBF0(BgHakaMegane* this, GlobalContext* globalCtx);
static void func_8087DC64(BgHakaMegane* this, GlobalContext* globalCtx);
static void func_8087DC94(BgHakaMegane* this, GlobalContext* globalCtx);
void func_8087DB24(BgHakaMegane* this, GlobalContext* globalCtx);
void func_8087DBF0(BgHakaMegane* this, GlobalContext* globalCtx);
void func_8087DC64(BgHakaMegane* this, GlobalContext* globalCtx);
void func_8087DC94(BgHakaMegane* this, GlobalContext* globalCtx);
const ActorInit Bg_Haka_Megane_InitVars = {
ACTOR_BG_HAKA_MEGANE,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(BgHakaMegane),
@@ -47,7 +45,7 @@ static UNK_TYPE dlists[] = {
extern UNK_TYPE D_06001250;
static void BgHakaMegane_Init(BgHakaMegane* this, GlobalContext* globalCtx) {
void BgHakaMegane_Init(BgHakaMegane* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
Actor_ProcessInitChain(thisx, initChain);
@@ -66,11 +64,11 @@ static void BgHakaMegane_Init(BgHakaMegane* this, GlobalContext* globalCtx) {
}
}
static void BgHakaMegane_Destroy(BgHakaMegane* this, GlobalContext* globalCtx) {
void BgHakaMegane_Destroy(BgHakaMegane* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
static void func_8087DB24(BgHakaMegane* this, GlobalContext* globalCtx) {
void func_8087DB24(BgHakaMegane* this, GlobalContext* globalCtx) {
s32 localC;
UNK_TYPE collision;
@@ -92,7 +90,7 @@ static void func_8087DB24(BgHakaMegane* this, GlobalContext* globalCtx) {
}
}
static void func_8087DBF0(BgHakaMegane* this, GlobalContext* globalCtx) {
void func_8087DBF0(BgHakaMegane* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
if (globalCtx->actorCtx.unk_03 != 0) {
thisx->flags |= 0x80;
@@ -103,14 +101,14 @@ static void func_8087DBF0(BgHakaMegane* this, GlobalContext* globalCtx) {
}
}
static void func_8087DC64(BgHakaMegane* this, GlobalContext* globalCtx) {
void func_8087DC64(BgHakaMegane* this, GlobalContext* globalCtx) {
}
static void BgHakaMegane_Update(BgHakaMegane* this, GlobalContext* globalCtx) {
void BgHakaMegane_Update(BgHakaMegane* this, GlobalContext* globalCtx) {
this->actionFunc(this, globalCtx);
}
static void func_8087DC94(BgHakaMegane* this, GlobalContext* globalCtx) {
void func_8087DC94(BgHakaMegane* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
if ((thisx->flags & 0x80) == 0x80) {
@@ -1,18 +1,20 @@
#include "z_bg_haka_meganebg.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHakaMeganeBG_Init(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void BgHakaMeganeBG_Destroy(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void BgHakaMeganeBG_Update(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void BgHakaMeganeBG_Draw(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E258(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E288(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E2D8(BgHakaMeganeBG* this, GlobalContext* globalCtx);
void func_8087E34C(BgHakaMeganeBG* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_MeganeBG_InitVars = {
ACTOR_BG_HAKA_MEGANEBG,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HAKA_OBJECTS,
sizeof(BgHakaMeganeBG),
@@ -5,8 +5,11 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x20];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x1];
/* 0x0169 */ s8 unk_169; // objBankIndex ?
/* 0x016A */ char unk_16A[0x2];
} BgHakaMeganeBG; // size = 0x016C
extern const ActorInit Bg_Haka_Meganebg_InitVars;
@@ -1,17 +1,24 @@
/*
* File: z_bg_haka_sgami.c
* Overlay: ovl_Bg_Haka_Sgami
* Description: Shadow Temple Spinning Scythe Trap
*/
#include "z_bg_haka_sgami.h"
#define ROOM 0x00
#define FLAGS 0x00000011
void BgHakaSgami_Init(BgHakaSgami* this, GlobalContext* globalCtx);
void BgHakaSgami_Destroy(BgHakaSgami* this, GlobalContext* globalCtx);
void BgHakaSgami_Update(BgHakaSgami* this, GlobalContext* globalCtx);
void func_8087E7E4(BgHakaSgami* this, GlobalContext* globalCtx);
void func_8087E858(BgHakaSgami* this, GlobalContext* globalCtx);
void func_8087EDC0(BgHakaSgami* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_Sgami_InitVars = {
ACTOR_BG_HAKA_SGAMI,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(BgHakaSgami),
@@ -6,7 +6,8 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1EC];
/* 0x014C */ ActorFunc actionFunc;
/* 0x0150 */ char unk_150[0x1E8];
} BgHakaSgami; // size = 0x0338
extern const ActorInit Bg_Haka_Sgami_InitVars;
@@ -1,18 +1,29 @@
/*
* File: z_bg_haka_ship.c
* Overlay: ovl_Bg_Haka_Ship
* Description: Shadow Temple Ship
*/
#include "z_bg_haka_ship.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgHakaShip_Init(BgHakaShip* this, GlobalContext* globalCtx);
void BgHakaShip_Destroy(BgHakaShip* this, GlobalContext* globalCtx);
void BgHakaShip_Update(BgHakaShip* this, GlobalContext* globalCtx);
void BgHakaShip_Draw(BgHakaShip* this, GlobalContext* globalCtx);
void func_8087F27C(BgHakaShip* this, GlobalContext* globalCtx);
void func_8087F2D8(BgHakaShip* this, GlobalContext* globalCtx);
void func_8087F364(BgHakaShip* this, GlobalContext* globalCtx);
void func_8087F400(BgHakaShip* this, GlobalContext* globalCtx);
void func_8087F5C8(BgHakaShip* this, GlobalContext* globalCtx);
void func_8087F624(BgHakaShip* this, GlobalContext* globalCtx);
void func_8087F6B4(BgHakaShip* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_Ship_InitVars = {
ACTOR_BG_HAKA_SHIP,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HAKA_OBJECTS,
sizeof(BgHakaShip),
@@ -5,8 +5,11 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x2C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x2];
/* 0x016A */ char unk_16A[0x2];
/* 0x016C */ Vec3f unk_16C;
} BgHakaShip; // size = 0x0178
extern const ActorInit Bg_Haka_Ship_InitVars;
@@ -1,18 +1,34 @@
/*
* File: z_bg_haka_trap.c
* Overlay: ovl_Bg_Haka_Trap
* Description: Shadow Temple Objects
*/
#include "z_bg_haka_trap.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHakaTrap_Init(BgHakaTrap* this, GlobalContext* globalCtx);
void BgHakaTrap_Destroy(BgHakaTrap* this, GlobalContext* globalCtx);
void BgHakaTrap_Update(BgHakaTrap* this, GlobalContext* globalCtx);
void BgHakaTrap_Draw(BgHakaTrap* this, GlobalContext* globalCtx);
void func_8087FFC0(BgHakaTrap* this, GlobalContext* globalCtx);
void func_808801B8(BgHakaTrap* this, GlobalContext* globalCtx);
void func_808802D8(BgHakaTrap* this, GlobalContext* globalCtx);
void func_80880484(BgHakaTrap* this, GlobalContext* globalCtx);
void func_808805C0(BgHakaTrap* this, GlobalContext* globalCtx);
void func_808806BC(BgHakaTrap* this, GlobalContext* globalCtx);
void func_808808F4(BgHakaTrap* this, GlobalContext* globalCtx);
void func_808809B0(BgHakaTrap* this, GlobalContext* globalCtx);
// void func_808809E4(BgHakaTrap* this, GlobalContext* globalCtx, s16 arg2); most likely correct, but not 100% sure
void func_80880AE8(BgHakaTrap* this, GlobalContext* globalCtx);
void func_80880C0C(BgHakaTrap* this, GlobalContext* globalCtx);
// func_80880D68
/*
const ActorInit Bg_Haka_Trap_InitVars = {
ACTOR_BG_HAKA_TRAP,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HAKA_OBJECTS,
sizeof(BgHakaTrap),
@@ -22,6 +38,7 @@ const ActorInit Bg_Haka_Trap_InitVars = {
(ActorFunc)BgHakaTrap_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Trap/BgHakaTrap_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Trap/BgHakaTrap_Destroy.s")
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x150];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x134];
} BgHakaTrap; // size = 0x029C
extern const ActorInit Bg_Haka_Trap_InitVars;
@@ -1,18 +1,25 @@
/*
* File: z_bg_haka_tubo.c
* Overlay: ovl_Bg_Haka_Tubo
* Description: Shadow Temple Giant Skull Jar
*/
#include "z_bg_haka_tubo.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgHakaTubo_Init(BgHakaTubo* this, GlobalContext* globalCtx);
void BgHakaTubo_Destroy(BgHakaTubo* this, GlobalContext* globalCtx);
void BgHakaTubo_Update(BgHakaTubo* this, GlobalContext* globalCtx);
void BgHakaTubo_Draw(BgHakaTubo* this, GlobalContext* globalCtx);
void func_808813A0(BgHakaTubo* this, GlobalContext* globalCtx);
void func_80881608(BgHakaTubo* this, GlobalContext* globalCtx);
void func_80881904(BgHakaTubo* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_Tubo_InitVars = {
ACTOR_BG_HAKA_TUBO,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HAKA_OBJECTS,
sizeof(BgHakaTubo),
@@ -22,6 +29,7 @@ const ActorInit Bg_Haka_Tubo_InitVars = {
(ActorFunc)BgHakaTubo_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/BgHakaTubo_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Tubo/BgHakaTubo_Destroy.s")
@@ -5,8 +5,9 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xB8];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
/* 0x0168 */ char unk_168[0x9C];
} BgHakaTubo; // size = 0x0204
extern const ActorInit Bg_Haka_Tubo_InitVars;
@@ -1,18 +1,25 @@
/*
* File: z_bg_haka_water.c
* Overlay: ovl_Bg_Haka_Water
* Description: Bottom of the Well water level changer
*/
#include "z_bg_haka_water.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgHakaWater_Init(BgHakaWater* this, GlobalContext* globalCtx);
void BgHakaWater_Destroy(BgHakaWater* this, GlobalContext* globalCtx);
void BgHakaWater_Update(BgHakaWater* this, GlobalContext* globalCtx);
void BgHakaWater_Draw(BgHakaWater* this, GlobalContext* globalCtx);
// ? func_80881D94(BgHakaWater* this, GlobalContext* globalCtx) // not entirely sure on this one
void func_80881EDC(BgHakaWater* this, GlobalContext* globalCtx);
void func_80881F98(BgHakaWater* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Haka_Water_InitVars = {
ACTOR_BG_HAKA_WATER,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_HAKACH_OBJECTS,
sizeof(BgHakaWater),
@@ -22,6 +29,7 @@ const ActorInit Bg_Haka_Water_InitVars = {
(ActorFunc)BgHakaWater_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Water/BgHakaWater_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Water/BgHakaWater_Destroy.s")
@@ -6,7 +6,8 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x8];
/* 0x014C */ ActorFunc actionFunc;
/* 0x0150 */ char unk_150[0x4];
} BgHakaWater; // size = 0x0154
extern const ActorInit Bg_Haka_Water_InitVars;
@@ -1,6 +1,11 @@
/*
* File: z_bg_haka_zou.c
* Overlay: ovl_Bg_Haka_Zou
* Description: Statue and Wall (Shadow Temple)
*/
#include "z_bg_haka_zou.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgHakaZou_Init(BgHakaZou* this, GlobalContext* globalCtx);
@@ -11,7 +16,6 @@ void BgHakaZou_Update(BgHakaZou* this, GlobalContext* globalCtx);
const ActorInit Bg_Haka_Zou_InitVars = {
ACTOR_BG_HAKA_ZOU,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(BgHakaZou),
@@ -1,6 +1,5 @@
#include "z_bg_heavy_block.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHeavyBlock_Init(BgHeavyBlock* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHeavyBlock_Draw(BgHeavyBlock* this, GlobalContext* globalCtx);
const ActorInit Bg_Heavy_Block_InitVars = {
ACTOR_BG_HEAVY_BLOCK,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HEAVY_OBJECT,
sizeof(BgHeavyBlock),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_curtain.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgHidanCurtain_Init(BgHidanCurtain* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanCurtain_Draw(BgHidanCurtain* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Curtain_InitVars = {
ACTOR_BG_HIDAN_CURTAIN,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_KEEP,
sizeof(BgHidanCurtain),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_dalm.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanDalm_Init(BgHidanDalm* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanDalm_Draw(BgHidanDalm* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Dalm_InitVars = {
ACTOR_BG_HIDAN_DALM,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanDalm),
@@ -6,7 +6,6 @@
#include "z_bg_hidan_firewall.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanFirewall_Init(BgHidanFirewall* this, GlobalContext* globalCtx);
@@ -25,7 +24,6 @@ extern Gfx D_0600DA80[];
const ActorInit Bg_Hidan_Firewall_InitVars = {
ACTOR_BG_HIDAN_FIREWALL,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanFirewall),
@@ -6,17 +6,16 @@
#include "z_bg_hidan_fslift.h"
#define ROOM 0x00
#define FLAGS 0x00000010
static void BgHidanFslift_Init(BgHidanFslift* this, GlobalContext* globalCtx);
static void BgHidanFslift_Destroy(BgHidanFslift* this, GlobalContext* globalCtx);
static void BgHidanFslift_Update(BgHidanFslift* this, GlobalContext* globalCtx);
static void BgHidanFslift_Draw(BgHidanFslift* this, GlobalContext* globalCtx);
void BgHidanFslift_Init(BgHidanFslift* this, GlobalContext* globalCtx);
void BgHidanFslift_Destroy(BgHidanFslift* this, GlobalContext* globalCtx);
void BgHidanFslift_Update(BgHidanFslift* this, GlobalContext* globalCtx);
void BgHidanFslift_Draw(BgHidanFslift* this, GlobalContext* globalCtx);
static void func_80886FCC(BgHidanFslift* this, GlobalContext* globalCtx);
static void func_8088706C(BgHidanFslift* this, GlobalContext* globalCtx);
static void func_808870D8(BgHidanFslift* this, GlobalContext* globalCtx);
void func_80886FCC(BgHidanFslift* this, GlobalContext* globalCtx);
void func_8088706C(BgHidanFslift* this, GlobalContext* globalCtx);
void func_808870D8(BgHidanFslift* this, GlobalContext* globalCtx);
extern u32 D_0600B630;
extern u32 D_0600E1E8;
@@ -24,7 +23,6 @@ extern u32 D_0600E1E8;
const ActorInit Bg_Hidan_Fslift_InitVars = {
ACTOR_BG_HIDAN_FSLIFT,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanFslift),
@@ -41,7 +39,7 @@ static InitChainEntry initChain[] = {
ICHAIN_F32(unk_F4, 2000, ICHAIN_STOP),
};
static void BgHidanFslift_Init(BgHidanFslift* this, GlobalContext* globalCtx) {
void BgHidanFslift_Init(BgHidanFslift* this, GlobalContext* globalCtx) {
s32 pad[2];
s32 local_c = 0;
Actor* thisx = &this->dyna.actor;
@@ -58,7 +56,7 @@ static void BgHidanFslift_Init(BgHidanFslift* this, GlobalContext* globalCtx) {
this->actionFunc = func_80886FCC;
}
static void func_80886F24(BgHidanFslift* this) {
void func_80886F24(BgHidanFslift* this) {
Actor* thisx = &this->dyna.actor;
if (thisx->attachedB != NULL && thisx->attachedB->update != NULL) {
thisx->attachedB->posRot.pos.x = thisx->posRot.pos.x;
@@ -69,16 +67,16 @@ static void func_80886F24(BgHidanFslift* this) {
thisx->attachedB = NULL;
}
static void BgHidanFslift_Destroy(BgHidanFslift* this, GlobalContext* globalCtx) {
void BgHidanFslift_Destroy(BgHidanFslift* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
static void func_80886FB4(BgHidanFslift* this) {
void func_80886FB4(BgHidanFslift* this) {
this->unk_168 = 0x28;
this->actionFunc = func_80886FCC;
}
static void func_80886FCC(BgHidanFslift* this, GlobalContext* globalCtx) {
void func_80886FCC(BgHidanFslift* this, GlobalContext* globalCtx) {
UNK_TYPE somebool;
Actor* thisx = &this->dyna.actor;
@@ -101,7 +99,7 @@ static void func_80886FCC(BgHidanFslift* this, GlobalContext* globalCtx) {
}
}
static void func_8088706C(BgHidanFslift* this, GlobalContext* globalCtx) {
void func_8088706C(BgHidanFslift* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
if (Math_ApproxF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y, 4.0f)) {
Audio_PlayActorSound2(thisx, NA_SE_EV_BLOCK_BOUND);
@@ -112,7 +110,7 @@ static void func_8088706C(BgHidanFslift* this, GlobalContext* globalCtx) {
func_80886F24(this);
}
static void func_808870D8(BgHidanFslift* this, GlobalContext* globalCtx) {
void func_808870D8(BgHidanFslift* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
if (func_80043590(thisx)) {
if (Math_ApproxF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y + 790.0f, 4.0f)) {
@@ -127,7 +125,7 @@ static void func_808870D8(BgHidanFslift* this, GlobalContext* globalCtx) {
func_80886F24(this);
}
static void BgHidanFslift_Update(BgHidanFslift* this, GlobalContext* globalCtx) {
void BgHidanFslift_Update(BgHidanFslift* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
this->actionFunc(this, globalCtx);
if (func_8004356C(thisx)) {
@@ -145,6 +143,6 @@ static void BgHidanFslift_Update(BgHidanFslift* this, GlobalContext* globalCtx)
}
}
static void BgHidanFslift_Draw(BgHidanFslift* this, GlobalContext* globalCtx) {
void BgHidanFslift_Draw(BgHidanFslift* this, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, &D_0600B630);
}
@@ -1,6 +1,5 @@
#include "z_bg_hidan_fwbig.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgHidanFwbig_Init(BgHidanFwbig* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanFwbig_Draw(BgHidanFwbig* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Fwbig_InitVars = {
ACTOR_BG_HIDAN_FWBIG,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanFwbig),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_hamstep.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanHamstep_Init(BgHidanHamstep* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanHamstep_Draw(BgHidanHamstep* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Hamstep_InitVars = {
ACTOR_BG_HIDAN_HAMSTEP,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanHamstep),
@@ -1,6 +1,11 @@
/*
* File: z_bg_hidan_hrock.c
* Overlay: ovl_Bg_Hidan_Hrock
* Description: Huge stone spike platform (Fire Temple)
*/
#include "z_bg_hidan_hrock.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanHrock_Init(BgHidanHrock* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgHidanHrock_Draw(BgHidanHrock* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Hrock_InitVars = {
ACTOR_BG_HIDAN_HROCK,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanHrock),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_kousi.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgHidanKousi_Init(BgHidanKousi* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanKousi_Draw(BgHidanKousi* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Kousi_InitVars = {
ACTOR_BG_HIDAN_KOUSI,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanKousi),
@@ -22,7 +20,7 @@ const ActorInit Bg_Hidan_Kousi_InitVars = {
(ActorFunc)BgHidanKousi_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Kousi/func_80889960.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Kousi/BgHidanKousi_SetupAction.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Kousi/BgHidanKousi_Init.s")
@@ -1,6 +1,5 @@
#include "z_bg_hidan_kowarerukabe.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanKowarerukabe_Init(BgHidanKowarerukabe* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanKowarerukabe_Draw(BgHidanKowarerukabe* this, GlobalContext* globalCt
const ActorInit Bg_Hidan_Kowarerukabe_InitVars = {
ACTOR_BG_HIDAN_KOWARERUKABE,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanKowarerukabe),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_rock.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanRock_Init(BgHidanRock* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanRock_Draw(BgHidanRock* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Rock_InitVars = {
ACTOR_BG_HIDAN_ROCK,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanRock),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_rsekizou.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanRsekizou_Init(BgHidanRsekizou* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanRsekizou_Draw(BgHidanRsekizou* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Rsekizou_InitVars = {
ACTOR_BG_HIDAN_RSEKIZOU,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanRsekizou),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_sekizou.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanSekizou_Init(BgHidanSekizou* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanSekizou_Draw(BgHidanSekizou* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Sekizou_InitVars = {
ACTOR_BG_HIDAN_SEKIZOU,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanSekizou),
@@ -1,6 +1,5 @@
#include "z_bg_hidan_sima.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgHidanSima_Init(BgHidanSima* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgHidanSima_Draw(BgHidanSima* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Sima_InitVars = {
ACTOR_BG_HIDAN_SIMA,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(BgHidanSima),
@@ -4,44 +4,28 @@
* Description: Stone Elevator in the Fire Temple
*/
#include <ultra64.h>
#include <global.h>
#include "z_bg_hidan_syoku.h"
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ f32 unk_150;
/* 0x0154 */ f32 unk_154;
/* 0x0158 */ u32 unk_158;
/* 0x015C */ u32 unk_15C;
/* 0x0160 */ u8 unk_160;
/* 0x0164 */ ActorFunc updateFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ s16 unk_16A;
} ActorHidanSyoku; // size = 0x016C
#define ROOM 0x00
#define FLAGS 0x00000010
static void Init(ActorHidanSyoku* this, GlobalContext* globalCtx);
static void Destroy(ActorHidanSyoku* this, GlobalContext* globalCtx);
static void func_8088F4B8(ActorHidanSyoku* this, GlobalContext* globalCtx);
static void func_8088F514(ActorHidanSyoku* this, GlobalContext* globalCtx);
static void func_8088F62C(ActorHidanSyoku* this, GlobalContext* globalCtx);
static void Update(ActorHidanSyoku* this, GlobalContext* globalCtx);
static void Draw(ActorHidanSyoku* this, GlobalContext* globalCtx);
void BgHidanSyoku_Init(BgHidanSyoku* this, GlobalContext* globalCtx);
void BgHidanSyoku_Destroy(BgHidanSyoku* this, GlobalContext* globalCtx);
void func_8088F4B8(BgHidanSyoku* this, GlobalContext* globalCtx);
void func_8088F514(BgHidanSyoku* this, GlobalContext* globalCtx);
void func_8088F62C(BgHidanSyoku* this, GlobalContext* globalCtx);
void BgHidanSyoku_Update(BgHidanSyoku* this, GlobalContext* globalCtx);
void BgHidanSyoku_Draw(BgHidanSyoku* this, GlobalContext* globalCtx);
const ActorInit Bg_Hidan_Syoku_InitVars = {
ACTOR_BG_HIDAN_SYOKU,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_HIDAN_OBJECTS,
sizeof(ActorHidanSyoku),
(ActorFunc)Init,
(ActorFunc)Destroy,
(ActorFunc)Update,
(ActorFunc)Draw,
sizeof(BgHidanSyoku),
(ActorFunc)BgHidanSyoku_Init,
(ActorFunc)BgHidanSyoku_Destroy,
(ActorFunc)BgHidanSyoku_Update,
(ActorFunc)BgHidanSyoku_Draw,
};
static InitChainEntry initChain[] = {
@@ -51,83 +35,83 @@ static InitChainEntry initChain[] = {
extern UNK_PTR D_0600A7E0;
extern UNK_PTR D_0600E568;
static void Init(ActorHidanSyoku* this, GlobalContext* globalCtx) {
void BgHidanSyoku_Init(BgHidanSyoku* this, GlobalContext* globalCtx) {
s32 pad[2];
u32 local_c = 0;
Actor_ProcessInitChain(&this->actor, initChain);
DynaPolyInfo_SetActorMove(&this->actor, 1);
Actor_ProcessInitChain(&this->dyna.actor, initChain);
DynaPolyInfo_SetActorMove(&this->dyna.actor, 1);
DynaPolyInfo_Alloc(&D_0600E568, &local_c);
this->dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->actor, local_c);
this->updateFunc = &func_8088F4B8;
this->actor.initPosRot.pos.y += 540.0f;
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, local_c);
this->updateFunc = func_8088F4B8;
this->dyna.actor.initPosRot.pos.y += 540.0f;
}
static void Destroy(ActorHidanSyoku* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dynaPolyId);
void BgHidanSyoku_Destroy(BgHidanSyoku* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
static void func_8088F47C(ActorHidanSyoku* this) {
this->unk_16A = 0x3c;
Audio_PlayActorSound2(&this->actor, NA_SE_EV_BLOCK_BOUND);
this->updateFunc = &func_8088F62C;
void func_8088F47C(BgHidanSyoku* this) {
this->unk_16A = 0x3C;
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND);
this->updateFunc = func_8088F62C;
}
static void func_8088F4B8(ActorHidanSyoku* this, GlobalContext* globalCtx) {
if (Flags_GetClear(globalCtx, this->actor.room) && func_8004356C(&this->actor)) {
this->unk_16A = 0x8c;
this->updateFunc = &func_8088F514;
void func_8088F4B8(BgHidanSyoku* this, GlobalContext* globalCtx) {
if (Flags_GetClear(globalCtx, this->dyna.actor.room) && func_8004356C(&this->dyna.actor)) {
this->unk_16A = 0x8C;
this->updateFunc = func_8088F514;
}
}
static void func_8088F514(ActorHidanSyoku* this, GlobalContext* globalCtx) {
void func_8088F514(BgHidanSyoku* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A -= 1;
}
this->actor.posRot.pos.y = (cosf(this->unk_16A * (M_PI / 140)) * 540.0f) + this->actor.initPosRot.pos.y;
this->dyna.actor.posRot.pos.y = (cosf(this->unk_16A * (M_PI / 140)) * 540.0f) + this->dyna.actor.initPosRot.pos.y;
if (this->unk_16A == 0) {
func_8088F47C(this);
} else {
func_8002F974(&this->actor, 0x20b9);
func_8002F974(&this->dyna.actor, 0x20b9);
}
}
static void func_8088F5A0(ActorHidanSyoku* this, GlobalContext* globalCtx) {
void func_8088F5A0(BgHidanSyoku* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A -= 1;
}
this->actor.posRot.pos.y = this->actor.initPosRot.pos.y - (cosf(this->unk_16A * (M_PI / 140)) * 540.0f);
this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y - (cosf(this->unk_16A * (M_PI / 140)) * 540.0f);
if (this->unk_16A == 0) {
func_8088F47C(this);
} else {
func_8002F974(&this->actor, 0x20b9);
func_8002F974(&this->dyna.actor, 0x20b9);
}
}
static void func_8088F62C(ActorHidanSyoku* this, GlobalContext* globalCtx) {
void func_8088F62C(BgHidanSyoku* this, GlobalContext* globalCtx) {
if (this->unk_16A != 0) {
this->unk_16A -= 1;
}
if (this->unk_16A == 0) {
this->unk_16A = 0x8c;
if (this->actor.posRot.pos.y < this->actor.initPosRot.pos.y) {
this->updateFunc = &func_8088F514;
if (this->dyna.actor.posRot.pos.y < this->dyna.actor.initPosRot.pos.y) {
this->updateFunc = func_8088F514;
} else {
this->updateFunc = &func_8088F5A0;
this->updateFunc = func_8088F5A0;
}
}
}
static void Update(ActorHidanSyoku* this, GlobalContext* globalCtx) {
void BgHidanSyoku_Update(BgHidanSyoku* this, GlobalContext* globalCtx) {
this->updateFunc(this, globalCtx);
if (func_8004356C(&this->actor)) {
if (func_8004356C(&this->dyna.actor)) {
if (this->unk_168 == 0) {
this->unk_168 = 3;
}
func_8005A77C(globalCtx->cameraCtx.activeCameraPtrs[0], 0x30);
return;
}
if (!func_8004356C(&this->actor)) {
if (!func_8004356C(&this->dyna.actor)) {
if (this->unk_168 != 0) {
func_8005A77C(globalCtx->cameraCtx.activeCameraPtrs[0], 3);
}
@@ -135,6 +119,6 @@ static void Update(ActorHidanSyoku* this, GlobalContext* globalCtx) {
}
}
static void Draw(ActorHidanSyoku* this, GlobalContext* globalCtx) {
void BgHidanSyoku_Draw(BgHidanSyoku* this, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, &D_0600A7E0);
}
@@ -0,0 +1,16 @@
#ifndef _Z_BG_HIDAN_SYOKU_H_
#define _Z_BG_HIDAN_SYOKU_H_
#include <ultra64.h>
#include <global.h>
typedef struct {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc updateFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ s16 unk_16A;
} BgHidanSyoku; // size = 0x016C
extern const ActorInit Bg_Hidan_Syoku_InitVars;
#endif;
@@ -1,6 +1,11 @@
/*
* File: z_bg_ice_objects.c
* Overlay: ovl_Bg_Ice_Objects
* Description: Movable Ice Block.
*/
#include "z_bg_ice_objects.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgIceObjects_Init(BgIceObjects* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgIceObjects_Draw(BgIceObjects* this, GlobalContext* globalCtx);
const ActorInit Bg_Ice_Objects_InitVars = {
ACTOR_BG_ICE_OBJECTS,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_ICE_OBJECTS,
sizeof(BgIceObjects),
@@ -1,6 +1,5 @@
#include "z_bg_ice_shelter.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgIceShelter_Init(BgIceShelter* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgIceShelter_Draw(BgIceShelter* this, GlobalContext* globalCtx);
const ActorInit Bg_Ice_Shelter_InitVars = {
ACTOR_BG_ICE_SHELTER,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_ICE_OBJECTS,
sizeof(BgIceShelter),
@@ -1,6 +1,11 @@
/*
* File: z_bg_ice_shutter.c
* Overlay: ovl_Bg_Ice_Shutter
* Description: 2D Ice Bars
*/
#include "z_bg_ice_shutter.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgIceShutter_Init(BgIceShutter* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgIceShutter_Draw(BgIceShutter* this, GlobalContext* globalCtx);
const ActorInit Bg_Ice_Shutter_InitVars = {
ACTOR_BG_ICE_SHUTTER,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_ICE_OBJECTS,
sizeof(BgIceShutter),
@@ -5,8 +5,8 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
} BgIceShutter; // size = 0x0168
extern const ActorInit Bg_Ice_Shutter_InitVars;
@@ -1,6 +1,11 @@
/*
* File: z_bg_ice_turara.c
* Overlay: ovl_Bg_Ice_Turara
* Description: Icicles
*/
#include "z_bg_ice_turara.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgIceTurara_Init(BgIceTurara* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgIceTurara_Draw(BgIceTurara* this, GlobalContext* globalCtx);
const ActorInit Bg_Ice_Turara_InitVars = {
ACTOR_BG_ICE_TURARA,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_ICE_OBJECTS,
sizeof(BgIceTurara),
@@ -1,18 +1,25 @@
/*
* File: z_bg_ingate.c
* Overlay: ovl_Bg_Ingate
* Description: Ingo's Gates (Lon Lon Ranch)
*/
#include "z_bg_ingate.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgIngate_Init(BgIngate* this, GlobalContext* globalCtx);
void BgIngate_Destroy(BgIngate* this, GlobalContext* globalCtx);
void BgIngate_Update(BgIngate* this, GlobalContext* globalCtx);
void BgIngate_Draw(BgIngate* this, GlobalContext* globalCtx);
void BgIngate_SetupAction(BgIngate* this, ActorFunc actionFunc);
void func_80892890(BgIngate* this, GlobalContext* globalCtx);
void func_80892990(BgIngate* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Ingate_InitVars = {
ACTOR_BG_INGATE,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_INGATE,
sizeof(BgIngate),
@@ -22,7 +29,7 @@ const ActorInit Bg_Ingate_InitVars = {
(ActorFunc)BgIngate_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ingate/func_80892740.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ingate/BgIngate_SetupAction.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ingate/BgIngate_Init.s")
@@ -5,8 +5,8 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ ActorFunc actionFunc;
} BgIngate; // size = 0x0168
extern const ActorInit Bg_Ingate_InitVars;
@@ -1,6 +1,5 @@
#include "z_bg_jya_1flift.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgJya1flift_Init(BgJya1flift* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJya1flift_Draw(BgJya1flift* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_1flift_InitVars = {
ACTOR_BG_JYA_1FLIFT,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJya1flift),
@@ -4,37 +4,27 @@
* Description: Circular Metal Grate (Spirit Temple)
*/
#include <ultra64.h>
#include <global.h>
#include "z_bg_jya_amishutter.h"
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ char unk_150[0x14];
/* 0x0164 */ void (*updateFunc)(Actor*);
} BgJyaAmishutter; // size = 0x0168
#define ROOM 0x00
#define FLAGS 0x00000000
static void BgJyaAmishutter_Init(BgJyaAmishutter* this, GlobalContext* globalCtx);
static void BgJyaAmishutter_Destroy(BgJyaAmishutter* this, GlobalContext* globalCtx);
static void BgJyaAmishutter_Update(BgJyaAmishutter* this, GlobalContext* globalCtx);
static void BgJyaAmishutter_Draw(BgJyaAmishutter* this, GlobalContext* globalCtx);
void BgJyaAmishutter_Init(BgJyaAmishutter* this, GlobalContext* globalCtx);
void BgJyaAmishutter_Destroy(BgJyaAmishutter* this, GlobalContext* globalCtx);
void BgJyaAmishutter_Update(BgJyaAmishutter* this, GlobalContext* globalCtx);
void BgJyaAmishutter_Draw(BgJyaAmishutter* this, GlobalContext* globalCtx);
static void func_808933BC(BgJyaAmishutter* this);
static void func_808933CC(BgJyaAmishutter* this);
static void func_80893428(BgJyaAmishutter* this);
static void func_80893438(BgJyaAmishutter* this);
static void func_808934B0(BgJyaAmishutter* this);
static void func_808934C0(BgJyaAmishutter* this);
static void func_808934FC(BgJyaAmishutter* this);
static void func_8089350C(BgJyaAmishutter* this);
void func_808933BC(BgJyaAmishutter* this);
void func_808933CC(BgJyaAmishutter* this);
void func_80893428(BgJyaAmishutter* this);
void func_80893438(BgJyaAmishutter* this);
void func_808934B0(BgJyaAmishutter* this);
void func_808934C0(BgJyaAmishutter* this);
void func_808934FC(BgJyaAmishutter* this);
void func_8089350C(BgJyaAmishutter* this);
const ActorInit Bg_Jya_Amishutter_InitVars = {
ACTOR_BG_JYA_AMISHUTTER,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaAmishutter),
@@ -54,7 +44,7 @@ static InitChainEntry initChain[] = {
extern UNK_TYPE D_0600C4C8;
extern UNK_TYPE D_0600C0A0;
static void func_808932C0(BgJyaAmishutter* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) {
void func_808932C0(BgJyaAmishutter* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) {
s16 pad1;
u32 local_c = 0;
s16 pad2;
@@ -68,21 +58,21 @@ static void func_808932C0(BgJyaAmishutter* this, GlobalContext* globalCtx, u32 c
}
}
static void BgJyaAmishutter_Init(BgJyaAmishutter* this, GlobalContext* globalCtx) {
void BgJyaAmishutter_Init(BgJyaAmishutter* this, GlobalContext* globalCtx) {
func_808932C0(this, globalCtx, &D_0600C4C8, 0);
Actor_ProcessInitChain(&this->actor, initChain);
func_808933BC(this);
}
static void BgJyaAmishutter_Destroy(BgJyaAmishutter* this, GlobalContext* globalCtx) {
void BgJyaAmishutter_Destroy(BgJyaAmishutter* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dynaPolyId);
}
static void func_808933BC(BgJyaAmishutter* this) {
void func_808933BC(BgJyaAmishutter* this) {
this->updateFunc = func_808933CC;
}
static void func_808933CC(BgJyaAmishutter* this) {
void func_808933CC(BgJyaAmishutter* this) {
if (this->actor.xzDistanceFromLink < 60.0f) {
if (fabsf(this->actor.yDistanceFromLink) < 30.0f) {
func_80893428(this);
@@ -90,11 +80,11 @@ static void func_808933CC(BgJyaAmishutter* this) {
}
}
static void func_80893428(BgJyaAmishutter* this) {
void func_80893428(BgJyaAmishutter* this) {
this->updateFunc = func_80893438;
}
static void func_80893438(BgJyaAmishutter* this) {
void func_80893438(BgJyaAmishutter* this) {
if (Math_ApproxF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y + 100.0f, 3.0f)) {
func_808934B0(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_METALDOOR_STOP);
@@ -103,21 +93,21 @@ static void func_80893438(BgJyaAmishutter* this) {
}
}
static void func_808934B0(BgJyaAmishutter* this) {
void func_808934B0(BgJyaAmishutter* this) {
this->updateFunc = func_808934C0;
}
static void func_808934C0(BgJyaAmishutter* this) {
void func_808934C0(BgJyaAmishutter* this) {
if (this->actor.xzDistanceFromLink > 300.0f) {
func_808934FC(this);
}
}
static void func_808934FC(BgJyaAmishutter* this) {
void func_808934FC(BgJyaAmishutter* this) {
this->updateFunc = func_8089350C;
}
static void func_8089350C(BgJyaAmishutter* this) {
void func_8089350C(BgJyaAmishutter* this) {
if (Math_ApproxF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y, 3.0f)) {
func_808933BC(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_METALDOOR_STOP);
@@ -126,10 +116,10 @@ static void func_8089350C(BgJyaAmishutter* this) {
}
}
static void BgJyaAmishutter_Update(BgJyaAmishutter* this, GlobalContext* globalCtx) {
void BgJyaAmishutter_Update(BgJyaAmishutter* this, GlobalContext* globalCtx) {
this->updateFunc(this);
}
static void BgJyaAmishutter_Draw(BgJyaAmishutter* this, GlobalContext* globalCtx) {
void BgJyaAmishutter_Draw(BgJyaAmishutter* this, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, &D_0600C0A0);
}
@@ -0,0 +1,16 @@
#ifndef _Z_BG_JYA_AMISHUTTER_H_
#define _Z_BG_JYA_AMISHUTTER_H_
#include <ultra64.h>
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ char unk_150[0x14];
/* 0x0164 */ void (*updateFunc)(Actor*);
} BgJyaAmishutter; // size = 0x0168
extern const ActorInit Bg_Jya_Amishutter_InitVars;
#endif
@@ -1,6 +1,5 @@
#include "z_bg_jya_bigmirror.h"
#define ROOM 0x00
#define FLAGS 0x00000030
void BgJyaBigmirror_Init(BgJyaBigmirror* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaBigmirror_Draw(BgJyaBigmirror* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Bigmirror_InitVars = {
ACTOR_BG_JYA_BIGMIRROR,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaBigmirror),
@@ -1,6 +1,11 @@
/*
* File: z_bg_jya_block.c
* Overlay: ovl_Bg_Jya_Block
* Description: Silver Block (Child Link)
*/
#include "z_bg_jya_block.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgJyaBlock_Init(BgJyaBlock* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgJyaBlock_Draw(BgJyaBlock* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Block_InitVars = {
ACTOR_BG_JYA_BLOCK,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GAMEPLAY_DANGEON_KEEP,
sizeof(BgJyaBlock),
@@ -5,8 +5,7 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x18];
/* 0x0000 */ DynaPolyActor dyna;
} BgJyaBlock; // size = 0x0164
extern const ActorInit Bg_Jya_Block_InitVars;
@@ -1,6 +1,5 @@
#include "z_bg_jya_bombchuiwa.h"
#define ROOM 0x00
#define FLAGS 0x00000001
void BgJyaBombchuiwa_Init(BgJyaBombchuiwa* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaBombchuiwa_Draw(BgJyaBombchuiwa* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Bombchuiwa_InitVars = {
ACTOR_BG_JYA_BOMBCHUIWA,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaBombchuiwa),
@@ -1,6 +1,5 @@
#include "z_bg_jya_bombiwa.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgJyaBombiwa_Init(BgJyaBombiwa* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaBombiwa_Draw(BgJyaBombiwa* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Bombiwa_InitVars = {
ACTOR_BG_JYA_BOMBIWA,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaBombiwa),
@@ -1,6 +1,5 @@
#include "z_bg_jya_cobra.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgJyaCobra_Init(BgJyaCobra* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaCobra_Draw(BgJyaCobra* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Cobra_InitVars = {
ACTOR_BG_JYA_COBRA,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaCobra),
@@ -1,6 +1,5 @@
#include "z_bg_jya_goroiwa.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgJyaGoroiwa_Init(BgJyaGoroiwa* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaGoroiwa_Draw(BgJyaGoroiwa* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Goroiwa_InitVars = {
ACTOR_BG_JYA_GOROIWA,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_GOROIWA,
sizeof(BgJyaGoroiwa),
@@ -1,6 +1,11 @@
/*
* File: z_bg_jya_haheniron
* Overlay: ovl_Bg_Jya_Haheniron
* Description: Chunks of Iron Knucle Chair and Pillar
*/
#include "z_bg_jya_haheniron.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgJyaHaheniron_Init(BgJyaHaheniron* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgJyaHaheniron_Draw(BgJyaHaheniron* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Haheniron_InitVars = {
ACTOR_BG_JYA_HAHENIRON,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_JYA_IRON,
sizeof(BgJyaHaheniron),
@@ -1,6 +1,5 @@
#include "z_bg_jya_ironobj.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgJyaIronobj_Init(BgJyaIronobj* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaIronobj_Draw(BgJyaIronobj* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Ironobj_InitVars = {
ACTOR_BG_JYA_IRONOBJ,
ACTORTYPE_PROP,
ROOM,
FLAGS,
OBJECT_JYA_IRON,
sizeof(BgJyaIronobj),
@@ -4,36 +4,24 @@
* Description: Climbable Metal Grating (Fire Temple)
*/
#include <ultra64.h>
#include <global.h>
#include "z_bg_jya_kanaami.h"
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x014C */ char unk_150[0x14];
/* 0x0164 */ ActorFunc updateFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ s16 unk_16A;
} BgJyaKanaami; // size = 0x016C
#define ROOM 0x00
#define FLAGS 0x00000000
static void BgJyaKanaami_Init(BgJyaKanaami* this, GlobalContext* globalCtx);
static void BgJyaKanaami_Destroy(BgJyaKanaami* this, GlobalContext* globalCtx);
static void BgJyaKanaami_Update(BgJyaKanaami* this, GlobalContext* globalCtx);
static void BgJyaKanaami_Draw(BgJyaKanaami* this, GlobalContext* globalCtx);
void BgJyaKanaami_Init(BgJyaKanaami* this, GlobalContext* globalCtx);
void BgJyaKanaami_Destroy(BgJyaKanaami* this, GlobalContext* globalCtx);
void BgJyaKanaami_Update(BgJyaKanaami* this, GlobalContext* globalCtx);
void BgJyaKanaami_Draw(BgJyaKanaami* this, GlobalContext* globalCtx);
static void func_80899880(BgJyaKanaami* this);
static void func_80899894(BgJyaKanaami* this, GlobalContext* globalCtx);
static void func_8089993C(BgJyaKanaami* this);
static void func_80899950(BgJyaKanaami* this, GlobalContext* globalCtx);
static void func_80899A08(BgJyaKanaami* this);
void func_80899880(BgJyaKanaami* this);
void func_80899894(BgJyaKanaami* this, GlobalContext* globalCtx);
void func_8089993C(BgJyaKanaami* this);
void func_80899950(BgJyaKanaami* this, GlobalContext* globalCtx);
void func_80899A08(BgJyaKanaami* this);
const ActorInit Bg_Jya_Kanaami_InitVars = {
ACTOR_BG_JYA_KANAAMI,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaKanaami),
@@ -53,7 +41,7 @@ static InitChainEntry initChain[] = {
extern u32 D_0600F000;
extern u32 D_0600F208;
static void func_80899740(BgJyaKanaami* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) {
void func_80899740(BgJyaKanaami* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) {
s32 pad;
s32 local_c = 0;
s32 pad2;
@@ -67,7 +55,7 @@ static void func_80899740(BgJyaKanaami* this, GlobalContext* globalCtx, u32 coll
}
}
static void BgJyaKanaami_Init(BgJyaKanaami* this, GlobalContext* globalCtx) {
void BgJyaKanaami_Init(BgJyaKanaami* this, GlobalContext* globalCtx) {
func_80899740(this, globalCtx, &D_0600F208, 0);
Actor_ProcessInitChain(&this->actor, initChain);
if (Flags_GetSwitch(globalCtx, this->actor.params & 0x3F)) {
@@ -78,16 +66,16 @@ static void BgJyaKanaami_Init(BgJyaKanaami* this, GlobalContext* globalCtx) {
osSyncPrintf("(jya 金網)(arg_data 0x%04x)\n", this->actor.params);
}
static void BgJyaKanaami_Destroy(BgJyaKanaami* this, GlobalContext* globalCtx) {
void BgJyaKanaami_Destroy(BgJyaKanaami* this, GlobalContext* globalCtx) {
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dynaPolyId);
}
static void func_80899880(BgJyaKanaami* this) {
void func_80899880(BgJyaKanaami* this) {
this->updateFunc = func_80899894;
this->unk_16A = 0;
}
static void func_80899894(BgJyaKanaami* this, GlobalContext* globalCtx) {
void func_80899894(BgJyaKanaami* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->actor.params & 0x3F) || this->unk_16A > 0) {
if (this->actor.posRot.pos.x > -1000.0f && this->unk_16A == 0) {
func_800800F8(globalCtx, 0xD7A, -0x63, &this->actor, 0);
@@ -99,12 +87,12 @@ static void func_80899894(BgJyaKanaami* this, GlobalContext* globalCtx) {
}
}
static void func_8089993C(BgJyaKanaami* this) {
void func_8089993C(BgJyaKanaami* this) {
this->updateFunc = func_80899950;
this->unk_168 = 0;
}
static void func_80899950(BgJyaKanaami* this, GlobalContext* globalCtx) {
void func_80899950(BgJyaKanaami* this, GlobalContext* globalCtx) {
s32 pad[2];
s32 var;
this->unk_168 += 0x20;
@@ -118,18 +106,18 @@ static void func_80899950(BgJyaKanaami* this, GlobalContext* globalCtx) {
}
}
static void func_80899A08(BgJyaKanaami* this) {
void func_80899A08(BgJyaKanaami* this) {
this->updateFunc = 0;
this->actor.posRot.rot.x = 0x4000;
}
static void BgJyaKanaami_Update(BgJyaKanaami* this, GlobalContext* globalCtx) {
void BgJyaKanaami_Update(BgJyaKanaami* this, GlobalContext* globalCtx) {
if (this->updateFunc) {
this->updateFunc(this, globalCtx);
}
this->actor.shape.rot.x = this->actor.posRot.rot.x;
}
static void BgJyaKanaami_Draw(BgJyaKanaami* this, GlobalContext* globalCtx) {
void BgJyaKanaami_Draw(BgJyaKanaami* this, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, &D_0600F000);
}
@@ -0,0 +1,16 @@
#ifndef _Z_BG_JYA_KANAAMI_H_
#define _Z_BG_JYA_KANAAMI_H_
#include <ultra64.h>
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ u32 dynaPolyId;
/* 0x014C */ char unk_150[0x14];
/* 0x0164 */ ActorFunc updateFunc;
/* 0x0168 */ s16 unk_168;
/* 0x016A */ s16 unk_16A;
} BgJyaKanaami; // size = 0x016C
#endif
@@ -1,6 +1,11 @@
/*
* File: z_bg_jya_lift.c
* Overlay: ovl_Bg_Jya_Lift
* Description: Chain Platform (Spirit Temple)
*/
#include "z_bg_jya_lift.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgJyaLift_Init(BgJyaLift* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgJyaLift_Draw(BgJyaLift* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Lift_InitVars = {
ACTOR_BG_JYA_LIFT,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaLift),
@@ -1,6 +1,5 @@
#include "z_bg_jya_megami.h"
#define ROOM 0x00
#define FLAGS 0x00000000
void BgJyaMegami_Init(BgJyaMegami* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaMegami_Draw(BgJyaMegami* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Megami_InitVars = {
ACTOR_BG_JYA_MEGAMI,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaMegami),
@@ -1,6 +1,5 @@
#include "z_bg_jya_zurerukabe.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void BgJyaZurerukabe_Init(BgJyaZurerukabe* this, GlobalContext* globalCtx);
@@ -12,7 +11,6 @@ void BgJyaZurerukabe_Draw(BgJyaZurerukabe* this, GlobalContext* globalCtx);
const ActorInit Bg_Jya_Zurerukabe_InitVars = {
ACTOR_BG_JYA_ZURERUKABE,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_JYA_OBJ,
sizeof(BgJyaZurerukabe),
@@ -1,6 +1,11 @@
/*
* File: z_bg_menkuri_eye.c
* Overlay: ovl_Bg_Menkuri_Eye
* Description: Eye platform eye switches
*/
#include "z_bg_menkuri_eye.h"
#define ROOM 0x00
#define FLAGS 0x00000020
void BgMenkuriEye_Init(BgMenkuriEye* this, GlobalContext* globalCtx);
@@ -12,7 +17,6 @@ void BgMenkuriEye_Draw(BgMenkuriEye* this, GlobalContext* globalCtx);
const ActorInit Bg_Menkuri_Eye_InitVars = {
ACTOR_BG_MENKURI_EYE,
ACTORTYPE_BG,
ROOM,
FLAGS,
OBJECT_MENKURI_OBJECTS,
sizeof(BgMenkuriEye),
@@ -6,7 +6,9 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x64];
/* 0x014C */ char unk_14C[0x4];
/* 0x0150 */ Collider collider;
/* 0x0168 */ char unk_168[0x48];
} BgMenkuriEye; // size = 0x01B0
extern const ActorInit Bg_Menkuri_Eye_InitVars;

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