1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-07 23:10:22 +00:00

Decompiled ovl_Bg_Treemouth (#168)

* Almost done

* header

* Decompiled ovl_Bg_Treemouth

* fixing undefined sims

* PR suggestions

* PR suggestions
This commit is contained in:
Ethan Roseman 2020-05-29 17:08:40 -04:00 committed by GitHub
parent 5937aea1d5
commit 038ab888f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 325 additions and 770 deletions

View file

@ -1,3 +1,9 @@
/*
* File: z_bg_treemouth.c
* Overlay: ovl_Bg_Treemouth
* Description: Great Deku Tree's Mouth
*/
#include "z_bg_treemouth.h"
#define FLAGS 0x00000030
@ -9,7 +15,17 @@ void BgTreemouth_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgTreemouth_Update(Actor* thisx, GlobalContext* globalCtx);
void BgTreemouth_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void func_808BC65C(BgTreemouth* this, GlobalContext* globalCtx);
void func_808BC6F8(BgTreemouth* this, GlobalContext* globalCtx);
void func_808BC80C(BgTreemouth* this, GlobalContext* globalCtx);
void func_808BC864(BgTreemouth* this, GlobalContext* globalCtx);
void BgTreemouth_DoNothing(BgTreemouth* this, GlobalContext* globalCtx);
void func_808BC8B8(BgTreemouth* this, GlobalContext* globalCtx);
void func_808BC9EC(BgTreemouth* this, GlobalContext* globalCtx);
void func_808BCAF0(BgTreemouth* this, GlobalContext* globalCtx);
#include "z_bg_treemouth_cutscene_data.c"
const ActorInit Bg_Treemouth_InitVars = {
ACTOR_BG_TREEMOUTH,
ACTORTYPE_BG,
@ -21,29 +37,214 @@ const ActorInit Bg_Treemouth_InitVars = {
(ActorFunc)BgTreemouth_Update,
(ActorFunc)BgTreemouth_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BC500.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/BgTreemouth_Init.s")
static InitChainEntry sInitChain[] = {
ICHAIN_U8(unk_1F, 5, ICHAIN_CONTINUE), ICHAIN_VEC3F(scale, 1, ICHAIN_CONTINUE),
ICHAIN_F32(unk_F4, 8000, ICHAIN_CONTINUE), ICHAIN_F32(unk_F8, 300, ICHAIN_CONTINUE),
ICHAIN_F32(unk_FC, 300, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/BgTreemouth_Destroy.s")
// unused
f32 D_808BD9C4[] = {
-2746.0f, 545.0f, 4694.0f, -2654.0f, 146.0f, 4534.0f,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BC65C.s")
extern Gfx D_060009D0[];
extern UNK_TYPE D_06000E94;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BC6F8.s")
void BgTreemouth_SetupAction(BgTreemouth* this, BgTreemouthActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BC80C.s")
void BgTreemouth_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgTreemouth* this = THIS;
u32 localC = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BC864.s")
Actor_ProcessInitChain(thisx, sInitChain);
DynaPolyInfo_SetActorMove(&this->dyna, 0);
DynaPolyInfo_Alloc(&D_06000E94, &localC);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, localC);
ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f);
Actor_SetHeight(thisx, 50.0f);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BC8B8.s")
if ((gSaveContext.sceneSetupIndex < 4) && LINK_IS_CHILD) {
BgTreemouth_SetupAction(this, func_808BC8B8);
} else if (LINK_IS_ADULT || (gSaveContext.sceneSetupIndex == 7)) {
this->unk_168 = 0.0f;
BgTreemouth_SetupAction(this, BgTreemouth_DoNothing);
} else {
this->unk_168 = 1.0f;
BgTreemouth_SetupAction(this, func_808BC6F8);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BC9EC.s")
thisx->textId = 0x905;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BCAF0.s")
void BgTreemouth_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgTreemouth* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/func_808BCB8C.s")
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/BgTreemouth_Update.s")
void func_808BC65C(BgTreemouth* this, GlobalContext* globalCtx) {
CsCmdActorAction* npcAction;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Treemouth/BgTreemouth_Draw.s")
if ((globalCtx->csCtx.state != 0)) {
npcAction = globalCtx->csCtx.npcActions[0];
if (npcAction != NULL) {
if (npcAction->action == 2) {
BgTreemouth_SetupAction(this, func_808BC80C);
} else if (npcAction->action == 3) {
Audio_PlaySoundGeneral(NA_SE_EV_WOODDOOR_OPEN, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
BgTreemouth_SetupAction(this, func_808BC6F8);
}
}
}
}
void func_808BC6F8(BgTreemouth* this, GlobalContext* globalCtx) {
Vec3f sp34;
if (this->unk_168 < 1.0f) {
this->unk_168 += 0.01f;
} else {
this->unk_168 = 1.0f;
}
if ((gSaveContext.sceneSetupIndex == 6) && (globalCtx->csCtx.frames >= 0x2BD) &&
(globalCtx->state.frames % 8 == 0)) {
sp34.x = (Math_Rand_ZeroOne() * 1158.0f) + 3407.0f;
sp34.y = 970.0f;
sp34.z = (Math_Rand_ZeroOne() * 2026.0f) + -2163.0f;
func_800297A4(globalCtx, &sp34, 0.8f, 0, 50, 30, 1, -1, 10, 0);
}
}
void func_808BC80C(BgTreemouth* this, GlobalContext* globalCtx) {
this->unk_168 += 0.05f;
if (this->unk_168 >= 0.8f) {
BgTreemouth_SetupAction(this, func_808BC864);
}
}
void func_808BC864(BgTreemouth* this, GlobalContext* globalCtx) {
this->unk_168 -= 0.03f;
if (this->unk_168 <= 0.0f) {
BgTreemouth_SetupAction(this, func_808BC65C);
}
}
void func_808BC8B8(BgTreemouth* this, GlobalContext* globalCtx) {
if ((!(Flags_GetEventChkInf(5))) || LINK_IS_ADULT) {
if (LINK_IS_CHILD) {
if (Flags_GetEventChkInf(0xC)) {
if (func_8002E12C(&this->dyna.actor, 1658.0f, 0x7530)) {
this->dyna.actor.flags |= 1;
if (this->dyna.actor.unk_10C != 0) {
this->dyna.actor.flags &= ~1;
globalCtx->csCtx.segment = D_808BD2A0;
gSaveContext.cutsceneTrigger = 1;
BgTreemouth_SetupAction(this, func_808BC9EC);
}
}
} else if (func_8002E12C(&this->dyna.actor, 1658.0f, 0x4E20)) {
Flags_SetEventChkInf(0xC);
globalCtx->csCtx.segment = D_808BCE20;
gSaveContext.cutsceneTrigger = 1;
BgTreemouth_SetupAction(this, func_808BC9EC);
}
}
} else {
this->unk_168 = 1.0f;
}
}
void func_808BC9EC(BgTreemouth* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (globalCtx->csCtx.state == 3) {
if (func_8002E12C(&this->dyna.actor, 350.0f, 0x7530)) {
player->actor.posRot.pos.x = 3827.0f;
player->actor.posRot.pos.y = -161.0f;
player->actor.posRot.pos.z = -1142.0f;
}
globalCtx->csCtx.frames = 0;
globalCtx->csCtx.unk_18 = 0xFFFF;
D_8015FCC0 = 0xFFFF;
D_8015FCC2 = 0xFFFF;
D_8015FCC4 = 0xFFFF;
globalCtx->csCtx.unk_1A = 0;
globalCtx->csCtx.unk_1B = 0;
globalCtx->csCtx.state = 2;
if (globalCtx->msgCtx.choiceIndex == 0) {
globalCtx->csCtx.segment = D_808BD520;
Flags_SetEventChkInf(5);
BgTreemouth_SetupAction(this, func_808BCAF0);
} else {
globalCtx->csCtx.segment = D_808BD790;
globalCtx->csCtx.frames = 0;
BgTreemouth_SetupAction(this, func_808BC8B8);
}
}
}
void func_808BCAF0(BgTreemouth* this, GlobalContext* globalCtx) {
CsCmdActorAction* npcAction;
if (globalCtx->csCtx.state != 0) {
npcAction = globalCtx->csCtx.npcActions[0];
if (npcAction != NULL) {
if (npcAction->action == 2) {
BgTreemouth_SetupAction(this, func_808BC80C);
} else if (npcAction->action == 3) {
Audio_PlaySoundGeneral(NA_SE_EV_WOODDOOR_OPEN, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
BgTreemouth_SetupAction(this, func_808BC6F8);
}
}
}
}
void BgTreemouth_DoNothing(BgTreemouth* this, GlobalContext* globalCtx) {
}
void BgTreemouth_Update(Actor* thisx, GlobalContext* globalCtx) {
BgTreemouth* this = THIS;
f32 unk_168;
this->actionFunc(this, globalCtx);
unk_168 = this->unk_168;
thisx->posRot.pos.x = (unk_168 * -160.0f) + 4029.0f;
thisx->posRot.pos.y = (unk_168 * -399.0f) + 136.0f;
thisx->posRot.pos.z = (unk_168 * 92.0f) + -1255.0f;
}
void BgTreemouth_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
u16 alpha = 0x1F4;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_treemouth.c", 893);
func_80093D18(globalCtx->state.gfxCtx);
if ((gSaveContext.sceneSetupIndex < 4) || LINK_IS_ADULT) {
if (gSaveContext.eventChkInf[0] & 0x80) {
alpha = 0x866;
}
} else { // neeeded to match
}
if (gSaveContext.sceneSetupIndex == 6) {
alpha = (globalCtx->unk_11D30[0] + 0x1F4);
}
gDPSetEnvColor(gfxCtx->polyOpa.p++, 0x80, 0x80, 0x80, alpha * 0.1f);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_treemouth.c", 932),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyOpa.p++, &D_060009D0);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_treemouth.c", 937);
}

View file

@ -6,9 +6,13 @@
struct BgTreemouth;
typedef void (*BgTreemouthActionFunc)(struct BgTreemouth*, GlobalContext*);
typedef struct BgTreemouth {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x24];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ char unk_164[0x4];
/* 0x0168 */ f32 unk_168;
/* 0x016C */ BgTreemouthActionFunc actionFunc;
} BgTreemouth; // size = 0x0170
extern const ActorInit Bg_Treemouth_InitVars;

View file

@ -0,0 +1,93 @@
#include "z_bg_treemouth.h"
CutsceneData D_808BCE20[] = {
0x0000000C, 0x00000BB8, 0x00000015, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F,
0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000, 0x0000000A, 0x00000002,
0x00020000, 0x002154B2, 0x00000000, 0x00000A36, 0x00000000, 0xFFFFFE3D, 0x00000AF8, 0x00000000, 0xFFFFFDD1,
0x40BC1F08, 0x00000000, 0xC0BC1F08, 0x00040021, 0x002A5945, 0x00000000, 0x00000AF8, 0x00000000, 0xFFFFFDD1,
0x00000B29, 0x00000000, 0xFFFFFDAE, 0x40AE38E4, 0x00000000, 0xC0AE38E4, 0x00000001, 0x00010000, 0x04430000,
0x00000000, 0x423CCCC1, 0x0AC1002E, 0xFE9E59A8, 0x00000000, 0x423CCCC1, 0x0AC1002E, 0xFE9E20B8, 0x00000000,
0x423CCCC1, 0x0AC1002E, 0xFE9E0000, 0x00000000, 0x423CCCC1, 0x0AC1002E, 0xFE9E6430, 0xFF000000, 0x423CCCC1,
0x0AC1002E, 0xFE9E0000, 0x00000001, 0x0001003C, 0x04F70000, 0x00000000, 0x423CCCC1, 0x0AC1002E, 0xFE9E20BA,
0x00000000, 0x423CCCC1, 0x0AC1002E, 0xFE9E44B8, 0x00000000, 0x423CCCC1, 0x0AC1002E, 0xFE9E8080, 0x00000000,
0x423CCCC1, 0x0A910043, 0xFED22D9A, 0x00000000, 0x423CCCC1, 0x0A24007F, 0xFF3D005E, 0x00000000, 0x423CCCC1,
0x0A24007F, 0xFF3DFFFF, 0x00000000, 0x423CCCC1, 0x0A24007F, 0xFF3D0000, 0x00000000, 0x423CCCC1, 0x0A24007F,
0xFF3D5B80, 0xFF000000, 0x423CCCC1, 0x0A24007F, 0xFF3D7805, 0x00000002, 0x00010000, 0x04600000, 0x0000001E,
0x423CCCC1, 0x0AE40017, 0xFE3B20BA, 0x0000001E, 0x423CCCC1, 0x0AE30017, 0xFE3B44B8, 0x000003E8, 0x423CCCC1,
0x0AE30017, 0xFE3B8080, 0x0000001E, 0x423CCCC1, 0x0AE30017, 0xFE3B2D9A, 0xFF00001E, 0x423CCCC1, 0x0AE30017,
0xFE3B005E, 0x00000002, 0x0001003C, 0x05140000, 0x0000001E, 0x423CCCC1, 0x0AE40017, 0xFE3B20BA, 0x0000001E,
0x423CCCC1, 0x0AE30017, 0xFE3B44B8, 0x0000001E, 0x423CCCC1, 0x0AE30017, 0xFE3B8080, 0x0000001E, 0x423CCCC1,
0x0AD90048, 0xFE862D9A, 0x0000001E, 0x423CCCC1, 0x0A71007F, 0xFEF5005E, 0x0000001E, 0x423CCCC1, 0x0A71007F,
0xFEF5FFFF, 0x000003E8, 0x423CCCC1, 0x0A71007F, 0xFEF50000, 0x0000001E, 0x423CCCC1, 0x0A71007F, 0xFEF55B80,
0xFF00001E, 0x423CCCC1, 0x0A71007F, 0xFEF57805, 0x00000013, 0x00000004, 0xFFFF0000, 0x0028FFFF, 0xFFFFFFFF,
0x107D0028, 0x003C0000, 0xFFFFFFFF, 0xFFFF003C, 0x00A0FFFF, 0xFFFFFFFF, 0x101500A0, 0x00AA0000, 0xFFFFFFFF,
0x00000003, 0x00000001, 0x000C00B4, 0x00C80000, 0x00000000, 0x00000000, 0xFFFFFFF7, 0xFFFFFFDB, 0x00000000,
0xFFFFFFF7, 0xFFFFFFDB, 0x00000000, 0x00000000, 0x00000000, 0x0000002E, 0x00000001, 0x00010000, 0x0BB80000,
0x00000000, 0x00000000, 0xFFFFFFD7, 0xFFFFFFE4, 0x00000000, 0xFFFFFFD7, 0xFFFFFFE4, 0x00000000, 0x00000000,
0x00000000, 0x0000003E, 0x00000004, 0x00010000, 0x00010000, 0x00000000, 0x00000A6C, 0x0000002E, 0xFFFFFE16,
0x00000A6C, 0x0000002E, 0xFFFFFE16, 0x00000000, 0x00000000, 0x00000000, 0x00040001, 0x00325479, 0x00000000,
0x00000A6C, 0x0000002E, 0xFFFFFE16, 0x00000B4A, 0x0000002B, 0xFFFFFD9C, 0x4090FAC7, 0xBD7AC688, 0xC090FAC7,
0x00040032, 0x0064505C, 0x00000000, 0x00000B4A, 0x0000002B, 0xFFFFFD9C, 0x00000C25, 0x00000079, 0xFFFFFD3F,
0x408C28F6, 0x3FC7AE14, 0xC08C28F6, 0x00010064, 0x08240000, 0x00000000, 0x00000C25, 0x00000079, 0xFFFFFD3F,
0x00000C25, 0x00000079, 0xFFFFFD3F, 0x00000000, 0x00000000, 0x00000000, 0x00000056, 0x00000001, 0x004C008C,
0x008D0000, 0x00000000, 0x00000000, 0xFFFFFFBA, 0x00000094, 0x00000000, 0xFFFFFFBA, 0x00000094, 0x00000000,
0x00000000, 0x00000000, 0x0000007C, 0x00000001, 0x00040000, 0x00140000, 0x00000000, 0xFFFFFFA2, 0x00000000,
0x00000027, 0xFFFFFFA2, 0x00000000, 0x00000027, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000,
};
CutsceneData D_808BD2A0[] = {
0x00000009, 0x00000BB8, 0x00000015, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F,
0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
0x000C005A, 0x00AC0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0x00000012, 0x00000000, 0xFFFFFFE3, 0x00000012,
0x00000000, 0x00000000, 0x00000000, 0x0000002E, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000,
0xFFFFFFE5, 0x0000001A, 0x00000000, 0xFFFFFFE5, 0x0000001A, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00010000, 0x04430000, 0x00000000, 0x42700000, 0x0E9CFF73, 0xFDEE7065, 0x00000000, 0x4223FFED, 0x0E9CFF73,
0xFDEE6167, 0x00000000, 0x4223FFED, 0x0E9CFF73, 0xFDEE6D5D, 0x00000000, 0x4223FFED, 0x0E9CFF73, 0xFDEEF348,
0xFF000000, 0x4223FFED, 0x0E9CFF73, 0xFDEE9D94, 0x00000005, 0x0001003C, 0x047F0000, 0x00000000, 0x42700000,
0xFFFC0005, 0x00317065, 0x00000000, 0x42700000, 0xFFFC0005, 0x00316167, 0x00000000, 0x42700000, 0xFFFC0005,
0x00316D5D, 0x00000000, 0x42700000, 0xFFFC0005, 0x0031F348, 0xFF000000, 0x42700000, 0xFFFC0005, 0x00319D94,
0x00000002, 0x00010000, 0x04600000, 0x0000001E, 0x4223FFED, 0x0EC1FFA7, 0xFDA37065, 0x0000001E, 0x4223FFED,
0x0EC1FFA7, 0xFDA36167, 0x000003E8, 0x4223FFED, 0x0EC0FFA7, 0xFDA36D5D, 0x0000001E, 0x4223FFED, 0x0EC0FFA7,
0xFDA3F348, 0xFF00001E, 0x4223FFED, 0x0EC0FFA7, 0xFDA49D94, 0x00000006, 0x0001003C, 0x049C0000, 0x0000001E,
0x42700000, 0x00010023, 0xFFDC7065, 0x0000001E, 0x42700000, 0x00010023, 0xFFDC6167, 0x000003E8, 0x42700000,
0x00010023, 0xFFDC6D5D, 0x0000001E, 0x42700000, 0x00010023, 0xFFDCF348, 0xFF00001E, 0x42700000, 0x00010023,
0xFFDC9D94, 0x00000013, 0x00000002, 0xFFFF0000, 0x0014FFFF, 0xFFFFFFFF, 0x10160014, 0x00500000, 0xFFFFFFFF,
0x00000056, 0x00000001, 0x004C0000, 0x00010000, 0x00000000, 0x00000000, 0xFFFFFFAC, 0x0000007E, 0x00000000,
0xFFFFFFAC, 0x0000007E, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000,
};
CutsceneData D_808BD520[] = {
0x00000008, 0x00000BB8, 0x00000015, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F,
0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000, 0x0000002E, 0x00000002,
0x00010000, 0x00140000, 0x00000000, 0x0000002A, 0x00000000, 0x0000004D, 0x0000002A, 0x00000000, 0x0000004D,
0x00000000, 0x00000000, 0x00000000, 0x00030014, 0x01650000, 0x00000000, 0x0000002A, 0x00000000, 0x0000004D,
0x0000002A, 0x00000000, 0x0000004D, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00010000, 0x047F0000,
0x00000000, 0x42700000, 0x0E9CFF73, 0xFDEE00EA, 0x00000000, 0x4223FFED, 0x0E9CFF73, 0xFDEE00FB, 0x00000000,
0x4223FFED, 0x0E9CFF73, 0xFDEE010C, 0x00000000, 0x4223FFED, 0x0E9CFF73, 0xFDEE0198, 0x00000000, 0x4223FFED,
0x0E9CFF73, 0xFDEE019A, 0x00000000, 0x4223FFED, 0x0E9CFF73, 0xFDEE01AB, 0xFF000000, 0x4223FFED, 0x0E9BFF73,
0xFDEE01BC, 0x00000002, 0x00010000, 0x049C0000, 0x0000001E, 0x4223FFED, 0x0EC1FFA7, 0xFDA300EA, 0x0000001E,
0x4223FFED, 0x0EC1FFA7, 0xFDA300FB, 0x0000001E, 0x4223FFED, 0x0EC1FFA7, 0xFDA3010C, 0x0000001E, 0x4223FFED,
0x0EB3FF82, 0xFD930198, 0x000003E8, 0x4223FFED, 0x0EB3FF82, 0xFD93019A, 0x0000001E, 0x4223FFED, 0x0EB3FF82,
0xFD9301AB, 0xFF00001E, 0x4223FFED, 0x0EB5FF8A, 0xFD9701BC, 0x00000013, 0x00000002, 0xFFFF0000, 0x0014FFFF,
0xFFFFFFFF, 0x10170014, 0x003C0000, 0xFFFFFFFF, 0x00000003, 0x00000001, 0x000C0064, 0x00960000, 0x00000000,
0x00000000, 0xFFFFFFF5, 0x00000010, 0x00000000, 0xFFFFFFF5, 0x00000010, 0x00000000, 0x00000000, 0x00000000,
0x00000057, 0x00000001, 0x004C005A, 0x005B0000, 0x00000000, 0xFFFFFFAC, 0x00000000, 0x00000034, 0xFFFFFFAC,
0x00000000, 0x00000034, 0x00000000, 0x00000000, 0x00000000, 0x00000056, 0x00000001, 0x003D0063, 0x00640000,
0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000041, 0xFFFFFFD0, 0x00000000, 0x00000041, 0x00000000, 0x00000000,
0x00000000, 0xFFFFFFFF, 0x00000000,
};
CutsceneData D_808BD790[] = {
0x00000008, 0x00000BB8, 0x00000015, 0x00000001, 0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F,
0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000, 0x0000002E, 0x00000001,
0x00010000, 0x00770000, 0x00000000, 0x0000002A, 0x00000000, 0x0000004D, 0x0000002A, 0x00000000, 0x0000004D,
0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00010000, 0x04430000, 0x00000000, 0x4297331E, 0x0E840316,
0xFB6D54EC, 0x00000000, 0x4297331E, 0x0E840316, 0xFB6D555C, 0x00000000, 0x4297331E, 0x0E840316, 0xFB6D55CC,
0x00000000, 0x4297331E, 0x0E840316, 0xFB6D563C, 0xFF000000, 0x4297331E, 0x0E840316, 0xFB6D56AC, 0x00000002,
0x00010000, 0x04600000, 0x0000001E, 0x4297331E, 0x0EB902CE, 0xFB5E54EC, 0x0000001E, 0x4297331E, 0x0EB902CE,
0xFB5E555C, 0x000003E8, 0x4297331E, 0x0EB902CE, 0xFB5E55CC, 0x0000001E, 0x4297331E, 0x0EB902CE, 0xFB5E563C,
0xFF00001E, 0x4297331E, 0x0EB902CE, 0xFB5E56AC, 0x00000013, 0x00000002, 0xFFFF0000, 0x0014FFFF, 0xFFFFFFFF,
0x10180014, 0x003C0000, 0xFFFFFFFF, 0x00000003, 0x00000001, 0x000C0050, 0x006E0000, 0x00000000, 0x00000000,
0xFFFFFFEA, 0x00000006, 0x00000000, 0xFFFFFFEA, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000057,
0x00000001, 0x004C0046, 0x00470000, 0x00000000, 0xFFFFFFB7, 0x00000000, 0x00000044, 0xFFFFFFB7, 0x00000000,
0x00000044, 0x00000000, 0x00000000, 0x00000000, 0x00000056, 0x00000001, 0x003D004F, 0x00500000, 0x00000000,
0xFFFFFFE8, 0x00000000, 0x0000003A, 0xFFFFFFE8, 0x00000000, 0x0000003A, 0x00000000, 0x00000000, 0x00000000,
0xFFFFFFFF, 0x00000000,
};

View file

@ -107,7 +107,7 @@ void func_80ABBBA8(EnNutsball* this, GlobalContext* globalCtx) {
sp40.y = this->actor.posRot.pos.y + 4;
sp40.z = this->actor.posRot.pos.z;
func_800297A4(globalCtx, &sp40, 0x40C00000, 0, 7, 3, 15, -1, 10, 0);
func_800297A4(globalCtx, &sp40, 6.0f, 0, 7, 3, 15, -1, 10, 0);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 20, NA_SE_EN_OCTAROCK_ROCK);
Actor_Kill(&this->actor);
} else {