mirror of https://github.com/zeldaret/mm.git
				
				
				
			
							parent
							
								
									e127ee650a
								
							
						
					
					
						commit
						d60f3fcf2c
					
				
							
								
								
									
										3
									
								
								spec
								
								
								
								
							
							
						
						
									
										3
									
								
								spec
								
								
								
								
							| 
						 | 
					@ -4026,8 +4026,7 @@ beginseg
 | 
				
			||||||
    name "ovl_En_Gg"
 | 
					    name "ovl_En_Gg"
 | 
				
			||||||
    compress
 | 
					    compress
 | 
				
			||||||
    include "build/src/overlays/actors/ovl_En_Gg/z_en_gg.o"
 | 
					    include "build/src/overlays/actors/ovl_En_Gg/z_en_gg.o"
 | 
				
			||||||
    include "build/data/ovl_En_Gg/ovl_En_Gg.data.o"
 | 
					    include "build/src/overlays/actors/ovl_En_Gg/ovl_En_Gg_reloc.o"
 | 
				
			||||||
    include "build/data/ovl_En_Gg/ovl_En_Gg.reloc.o"
 | 
					 | 
				
			||||||
endseg
 | 
					endseg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
beginseg
 | 
					beginseg
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,8 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "z_en_gg.h"
 | 
					#include "z_en_gg.h"
 | 
				
			||||||
 | 
					#include "objects/gameplay_keep/gameplay_keep.h"
 | 
				
			||||||
 | 
					#include "objects/object_gg/object_gg.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_8 | ACTOR_FLAG_80)
 | 
					#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_8 | ACTOR_FLAG_80)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +17,15 @@ void EnGg_Destroy(Actor* thisx, GlobalContext* globalCtx);
 | 
				
			||||||
void EnGg_Update(Actor* thisx, GlobalContext* globalCtx);
 | 
					void EnGg_Update(Actor* thisx, GlobalContext* globalCtx);
 | 
				
			||||||
void EnGg_Draw(Actor* thisx, GlobalContext* globalCtx);
 | 
					void EnGg_Draw(Actor* thisx, GlobalContext* globalCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if 0
 | 
					void func_80B352A4(EnGg* this, GlobalContext* globalCtx);
 | 
				
			||||||
 | 
					void func_80B35450(EnGg* this, GlobalContext* globalCtx);
 | 
				
			||||||
 | 
					void func_80B3556C(EnGg* this, GlobalContext* globalCtx);
 | 
				
			||||||
 | 
					u16 func_80B357F0(EnGg* this);
 | 
				
			||||||
 | 
					void func_80B358D8(EnGg* this, GlobalContext* globalCtx);
 | 
				
			||||||
 | 
					void func_80B359DC(EnGg* this, GlobalContext* globalCtx);
 | 
				
			||||||
 | 
					void func_80B363E8(EnGgStruct* ptr, GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3);
 | 
				
			||||||
 | 
					void func_80B364D4(EnGgStruct* ptr, GlobalContext* globalCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const ActorInit En_Gg_InitVars = {
 | 
					const ActorInit En_Gg_InitVars = {
 | 
				
			||||||
    ACTOR_EN_GG,
 | 
					    ACTOR_EN_GG,
 | 
				
			||||||
    ACTORCAT_NPC,
 | 
					    ACTORCAT_NPC,
 | 
				
			||||||
| 
						 | 
					@ -28,18 +38,29 @@ const ActorInit En_Gg_InitVars = {
 | 
				
			||||||
    (ActorFunc)EnGg_Draw,
 | 
					    (ActorFunc)EnGg_Draw,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// static ColliderCylinderInit sCylinderInit = {
 | 
					static ColliderCylinderInit sCylinderInit = {
 | 
				
			||||||
static ColliderCylinderInit D_80B36C00 = {
 | 
					    {
 | 
				
			||||||
    { COLTYPE_NONE, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, OC2_TYPE_1, COLSHAPE_CYLINDER, },
 | 
					        COLTYPE_NONE,
 | 
				
			||||||
    { ELEMTYPE_UNK0, { 0x00000000, 0x00, 0x00 }, { 0xF7CFFFFF, 0x00, 0x00 }, TOUCH_NONE | TOUCH_SFX_NORMAL, BUMP_ON, OCELEM_ON, },
 | 
					        AT_NONE,
 | 
				
			||||||
 | 
					        AC_NONE,
 | 
				
			||||||
 | 
					        OC1_ON | OC1_TYPE_ALL,
 | 
				
			||||||
 | 
					        OC2_TYPE_1,
 | 
				
			||||||
 | 
					        COLSHAPE_CYLINDER,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ELEMTYPE_UNK0,
 | 
				
			||||||
 | 
					        { 0x00000000, 0x00, 0x00 },
 | 
				
			||||||
 | 
					        { 0xF7CFFFFF, 0x00, 0x00 },
 | 
				
			||||||
 | 
					        TOUCH_NONE | TOUCH_SFX_NORMAL,
 | 
				
			||||||
 | 
					        BUMP_ON,
 | 
				
			||||||
 | 
					        OCELEM_ON,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    { 24, 72, 0, { 0, 0, 0 } },
 | 
					    { 24, 72, 0, { 0, 0, 0 } },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// sColChkInfoInit
 | 
					static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 24, 72, 0, MASS_IMMOVABLE };
 | 
				
			||||||
static CollisionCheckInfoInit2 D_80B36C2C = { 0, 24, 72, 0, MASS_IMMOVABLE };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// static DamageTable sDamageTable = {
 | 
					static DamageTable sDamageTable = {
 | 
				
			||||||
static DamageTable D_80B36C38 = {
 | 
					 | 
				
			||||||
    /* Deku Nut       */ DMG_ENTRY(0, 0x0),
 | 
					    /* Deku Nut       */ DMG_ENTRY(0, 0x0),
 | 
				
			||||||
    /* Deku Stick     */ DMG_ENTRY(0, 0x0),
 | 
					    /* Deku Stick     */ DMG_ENTRY(0, 0x0),
 | 
				
			||||||
    /* Horse trample  */ DMG_ENTRY(0, 0x0),
 | 
					    /* Horse trample  */ DMG_ENTRY(0, 0x0),
 | 
				
			||||||
| 
						 | 
					@ -74,62 +95,719 @@ static DamageTable D_80B36C38 = {
 | 
				
			||||||
    /* Powder Keg     */ DMG_ENTRY(0, 0x0),
 | 
					    /* Powder Keg     */ DMG_ENTRY(0, 0x0),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					static AnimationInfo sAnimations[] = {
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00F578, 1.0f, 0.0f, 0.0f, 0, -10.0f }, { &object_gg_Anim_00D528, 1.0f, 0.0f, 0.0f, 2, -10.0f },
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00D174, 1.0f, 0.0f, 0.0f, 2, -10.0f }, { &object_gg_Anim_00ECC0, 1.0f, 0.0f, 0.0f, 2, -10.0f },
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00BAF0, 1.0f, 0.0f, 0.0f, 0, -10.0f }, { &object_gg_Anim_00AF40, 1.0f, 0.0f, 0.0f, 0, -10.0f },
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00F578, 1.0f, 0.0f, 0.0f, 0, -10.0f }, { &object_gg_Anim_00AF40, 1.0f, 0.0f, 0.0f, 0, -10.0f },
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00F578, 1.0f, 0.0f, 0.0f, 0, -10.0f }, { &object_gg_Anim_0100C8, 1.0f, 0.0f, 0.0f, 0, 0.0f },
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00CDA0, 1.0f, 0.0f, 0.0f, 0, 0.0f },   { &object_gg_Anim_00B560, 1.0f, 0.0f, 0.0f, 0, 0.0f },
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00A4B4, 1.0f, 0.0f, 0.0f, 2, 0.0f },   { &object_gg_Anim_00E86C, 1.0f, 0.0f, 0.0f, 2, 0.0f },
 | 
				
			||||||
 | 
					    { &object_gg_Anim_00D99C, 1.0f, 0.0f, 0.0f, 2, 0.0f },   { &object_gg_Anim_00E2A4, 1.0f, 0.0f, 0.0f, 0, 0.0f },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern ColliderCylinderInit D_80B36C00;
 | 
					void func_80B34F70(EnGg* this) {
 | 
				
			||||||
extern CollisionCheckInfoInit2 D_80B36C2C;
 | 
					    this->actor.focus.pos.x = this->actor.world.pos.x;
 | 
				
			||||||
extern DamageTable D_80B36C38;
 | 
					    this->actor.focus.pos.y = this->actor.world.pos.y + 80.0f;
 | 
				
			||||||
 | 
					    this->actor.focus.pos.z = this->actor.world.pos.z;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern UNK_TYPE D_0600F578;
 | 
					    this->actor.focus.rot.x = this->actor.world.rot.x;
 | 
				
			||||||
 | 
					    this->actor.focus.rot.y = this->actor.world.rot.y;
 | 
				
			||||||
 | 
					    this->actor.focus.rot.z = this->actor.world.rot.z;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B34F70.s")
 | 
					s32 func_80B34FB4(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    Player* player = GET_PLAYER(globalCtx);
 | 
				
			||||||
 | 
					    Vec3f sp40;
 | 
				
			||||||
 | 
					    Vec3f sp34;
 | 
				
			||||||
 | 
					    s16 pitch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B34FB4.s")
 | 
					    sp40 = player->actor.world.pos;
 | 
				
			||||||
 | 
					    sp40.y = player->bodyPartsPos[7].y + 3.0f;
 | 
				
			||||||
 | 
					    sp34 = this->actor.world.pos;
 | 
				
			||||||
 | 
					    sp34.y += 70.0f;
 | 
				
			||||||
 | 
					    pitch = Math_Vec3f_Pitch(&sp34, &sp40);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35108.s")
 | 
					    if ((this->actor.xzDistToPlayer < 250.0f) && (this->actor.xzDistToPlayer > 50.0f) &&
 | 
				
			||||||
 | 
					        (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_80) || (gSaveContext.weekEventReg[19] & 0x80))) {
 | 
				
			||||||
 | 
					        Math_SmoothStepToS(&this->unk_2E8, pitch, 4, 0x2AA8, 1);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        Math_SmoothStepToS(&this->unk_2E8, 0, 4, 0x2AA8, 1);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    this->unk_2E8 = CLAMP(this->unk_2E8, 0, 0x1C70);
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B351A4.s")
 | 
					void func_80B35108(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    this->collider.dim.pos.x = this->actor.world.pos.x;
 | 
				
			||||||
 | 
					    this->collider.dim.pos.y = this->actor.world.pos.y;
 | 
				
			||||||
 | 
					    this->collider.dim.pos.z = this->actor.world.pos.z;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35250.s")
 | 
					    CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
 | 
				
			||||||
 | 
					    Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 0.0f, 30.0f, 30.0f, 7);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B352A4.s")
 | 
					void func_80B351A4(EnGg* this) {
 | 
				
			||||||
 | 
					    if ((this->unk_2E6 == 2) || (this->unk_2E6 == 3)) {
 | 
				
			||||||
 | 
					        this->unk_2E2 = 3;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        s16 temp = this->unk_2E4 - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35450.s")
 | 
					        if (temp >= 3) {
 | 
				
			||||||
 | 
					            this->unk_2E2 = 0;
 | 
				
			||||||
 | 
					            this->unk_2E4 = temp;
 | 
				
			||||||
 | 
					        } else if (temp == 0) {
 | 
				
			||||||
 | 
					            this->unk_2E2 = 2;
 | 
				
			||||||
 | 
					            this->unk_2E4 = (s32)(Rand_ZeroOne() * 60.0f) + 20;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            this->unk_2E2 = 1;
 | 
				
			||||||
 | 
					            this->unk_2E4 = temp;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B3556C.s")
 | 
					void func_80B35250(EnGg* this) {
 | 
				
			||||||
 | 
					    this->unk_2E4 = 20;
 | 
				
			||||||
 | 
					    this->unk_2E2 = 0;
 | 
				
			||||||
 | 
					    this->unk_2E6 = 0;
 | 
				
			||||||
 | 
					    Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 0);
 | 
				
			||||||
 | 
					    this->actionFunc = func_80B35450;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35634.s")
 | 
					void func_80B352A4(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    s16 sp26 = this->skelAnime.curFrame;
 | 
				
			||||||
 | 
					    s16 lastFrame = Animation_GetLastFrame(sAnimations[this->unk_2E6].animation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B357F0.s")
 | 
					    if (sp26 == lastFrame) {
 | 
				
			||||||
 | 
					        switch (this->actor.textId) {
 | 
				
			||||||
 | 
					            case 0xCE5:
 | 
				
			||||||
 | 
					                this->unk_2E6 = 1;
 | 
				
			||||||
 | 
					                Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 1);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B3584C.s")
 | 
					            case 0xCE6:
 | 
				
			||||||
 | 
					            case 0xCEC:
 | 
				
			||||||
 | 
					                this->unk_2E6 = 0;
 | 
				
			||||||
 | 
					                Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 0);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B358D8.s")
 | 
					            case 0xCE8:
 | 
				
			||||||
 | 
					                this->unk_2E6 = 2;
 | 
				
			||||||
 | 
					                Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 2);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35968.s")
 | 
					            case 0xCE9:
 | 
				
			||||||
 | 
					                this->unk_2E6 = 3;
 | 
				
			||||||
 | 
					                Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 3);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B359DC.s")
 | 
					            case 0xCED:
 | 
				
			||||||
 | 
					            case 0xCEE:
 | 
				
			||||||
 | 
					                this->unk_2E6 = 4;
 | 
				
			||||||
 | 
					                Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 4);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35B24.s")
 | 
					            default:
 | 
				
			||||||
 | 
					                this->unk_2E6 = 0;
 | 
				
			||||||
 | 
					                Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 0);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        gSaveContext.weekEventReg[19] |= 0x80;
 | 
				
			||||||
 | 
					        this->actionFunc = func_80B3556C;
 | 
				
			||||||
 | 
					    } else if ((this->unk_2E6 == 0) && ((this->actor.textId == 0xCED) || (this->actor.textId == 0xCEE))) {
 | 
				
			||||||
 | 
					        if (sp26 < (lastFrame - 1)) {
 | 
				
			||||||
 | 
					            this->skelAnime.playSpeed = 2.0f;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            this->unk_2E6 = 4;
 | 
				
			||||||
 | 
					            Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 4);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35B44.s")
 | 
					void func_80B35450(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    if ((gSaveContext.weekEventReg[91] & 0x10) && (globalCtx->csCtx.state == 0)) {
 | 
				
			||||||
 | 
					        func_80B359DC(this, globalCtx);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B35C84.s")
 | 
					    if (Actor_ProcessTalkRequest(&this->actor, &globalCtx->state)) {
 | 
				
			||||||
 | 
					        if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_80) {
 | 
				
			||||||
 | 
					            func_800B90F4(globalCtx);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this->unk_308 = 1;
 | 
				
			||||||
 | 
					        this->actionFunc = func_80B352A4;
 | 
				
			||||||
 | 
					    } else if ((this->actor.xzDistToPlayer < 200.0f) && (this->actor.xzDistToPlayer > 50.0f)) {
 | 
				
			||||||
 | 
					        if (gSaveContext.weekEventReg[19] & 0x80) {
 | 
				
			||||||
 | 
					            func_800B863C(&this->actor, globalCtx);
 | 
				
			||||||
 | 
					            this->actor.textId = 0xCEE;
 | 
				
			||||||
 | 
					        } else if CHECK_FLAG_ALL (this->actor.flags, ACTOR_FLAG_80) {
 | 
				
			||||||
 | 
					            func_800B863C(&this->actor, globalCtx);
 | 
				
			||||||
 | 
					            this->actor.textId = 0xCE5;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B3610C.s")
 | 
					void func_80B3556C(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    if ((Message_GetState(&globalCtx->msgCtx) == 5) && func_80147624(globalCtx)) {
 | 
				
			||||||
 | 
					        if (this->unk_2E6 == 4) {
 | 
				
			||||||
 | 
					            globalCtx->msgCtx.msgMode = 0x43;
 | 
				
			||||||
 | 
					            globalCtx->msgCtx.unk12023 = 4;
 | 
				
			||||||
 | 
					            this->unk_308 = 0;
 | 
				
			||||||
 | 
					            this->actor.flags &= ~ACTOR_FLAG_80;
 | 
				
			||||||
 | 
					            func_80B35250(this);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            this->actor.textId = func_80B357F0(this);
 | 
				
			||||||
 | 
					            func_801518B0(globalCtx, this->actor.textId, &this->actor);
 | 
				
			||||||
 | 
					            this->actionFunc = func_80B352A4;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B363E8.s")
 | 
					void func_80B35634(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    s32 pad;
 | 
				
			||||||
 | 
					    u32 temp_v0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B364D4.s")
 | 
					    if (func_800EE29C(globalCtx, 0x77)) {
 | 
				
			||||||
 | 
					        temp_v0 = func_800EE200(globalCtx, 0x77);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/EnGg_Init.s")
 | 
					        if (this->unk_2DB != globalCtx->csCtx.npcActions[temp_v0]->unk0) {
 | 
				
			||||||
 | 
					            this->unk_2DB = globalCtx->csCtx.npcActions[temp_v0]->unk0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/EnGg_Destroy.s")
 | 
					            switch (globalCtx->csCtx.npcActions[temp_v0]->unk0) {
 | 
				
			||||||
 | 
					                case 1:
 | 
				
			||||||
 | 
					                    this->unk_2DA = 0;
 | 
				
			||||||
 | 
					                    this->unk_2E6 = 0;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/EnGg_Update.s")
 | 
					                case 2:
 | 
				
			||||||
 | 
					                    this->unk_2DA = 9;
 | 
				
			||||||
 | 
					                    this->unk_2E6 = 9;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B368B0.s")
 | 
					                case 3:
 | 
				
			||||||
 | 
					                    this->unk_2DA = 10;
 | 
				
			||||||
 | 
					                    this->unk_2E6 = 10;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/func_80B368F0.s")
 | 
					                case 4:
 | 
				
			||||||
 | 
					                    do {
 | 
				
			||||||
 | 
					                        this->unk_344.unk_30 = this->unk_2DA = 11;
 | 
				
			||||||
 | 
					                    } while (0);
 | 
				
			||||||
 | 
					                    this->unk_2E6 = 11;
 | 
				
			||||||
 | 
					                    func_80B364D4(&this->unk_344, globalCtx);
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Gg/EnGg_Draw.s")
 | 
					                case 5:
 | 
				
			||||||
 | 
					                    do {
 | 
				
			||||||
 | 
					                        this->unk_344.unk_30 = this->unk_2DA = 12;
 | 
				
			||||||
 | 
					                    } while (0);
 | 
				
			||||||
 | 
					                    this->unk_2E6 = 12;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                case 6:
 | 
				
			||||||
 | 
					                    do {
 | 
				
			||||||
 | 
					                        this->unk_344.unk_30 = this->unk_2DA = 13;
 | 
				
			||||||
 | 
					                    } while (0);
 | 
				
			||||||
 | 
					                    this->unk_2E6 = 13;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                case 7:
 | 
				
			||||||
 | 
					                    do {
 | 
				
			||||||
 | 
					                        this->unk_344.unk_30 = this->unk_2DA = 14;
 | 
				
			||||||
 | 
					                    } while (0);
 | 
				
			||||||
 | 
					                    this->unk_2E6 = 14;
 | 
				
			||||||
 | 
					                    func_80B364D4(&this->unk_344, globalCtx);
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                case 8:
 | 
				
			||||||
 | 
					                    Actor_MarkForDeath(&this->actor);
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                default:
 | 
				
			||||||
 | 
					                    this->unk_2DA = 0;
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, this->unk_2DA);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (this->unk_2DA == 14) {
 | 
				
			||||||
 | 
					            func_80B358D8(this, globalCtx);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        func_800EDF24(&this->actor, globalCtx, temp_v0);
 | 
				
			||||||
 | 
					        this->actor.shape.yOffset = 0.0f;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        this->unk_2DB = 99;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					u16 func_80B357F0(EnGg* this) {
 | 
				
			||||||
 | 
					    switch (this->actor.textId) {
 | 
				
			||||||
 | 
					        case 0xCE5:
 | 
				
			||||||
 | 
					            return 0xCE6;
 | 
				
			||||||
 | 
					        case 0xCE6:
 | 
				
			||||||
 | 
					            return 0xCE8;
 | 
				
			||||||
 | 
					        case 0xCE8:
 | 
				
			||||||
 | 
					            return 0xCE9;
 | 
				
			||||||
 | 
					        case 0xCE9:
 | 
				
			||||||
 | 
					            return 0xCEC;
 | 
				
			||||||
 | 
					        case 0xCEC:
 | 
				
			||||||
 | 
					            return 0xCED;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B3584C(EnGg* this) {
 | 
				
			||||||
 | 
					    this->unk_30A += 0x72C;
 | 
				
			||||||
 | 
					    this->actor.shape.yOffset = Math_SinS(this->unk_30A) * 100.0f;
 | 
				
			||||||
 | 
					    this->actor.shape.shadowScale = 30.0f - (Math_SinS(this->unk_30A) * 5.0f);
 | 
				
			||||||
 | 
					    Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, 0x1000, 0x100);
 | 
				
			||||||
 | 
					    this->actor.world.rot.y = this->actor.shape.rot.y;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B358D8(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    s16 sp1E = this->skelAnime.curFrame;
 | 
				
			||||||
 | 
					    s16 lastFrame = Animation_GetLastFrame(sAnimations[this->unk_2DA].animation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((this->unk_2E6 == 14) && (sp1E == lastFrame)) {
 | 
				
			||||||
 | 
					        this->unk_2E6 = 15;
 | 
				
			||||||
 | 
					        Actor_ChangeAnimationByInfo(&this->skelAnime, sAnimations, 15);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B35968(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    if (this->unk_344.unk_34 != NULL) {
 | 
				
			||||||
 | 
					        this->unk_344.unk_34(&this->unk_344, globalCtx);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        if ((this->unk_2DA == 11) || (this->unk_2DA == 14)) {
 | 
				
			||||||
 | 
					            this->unk_344.unk_30 = this->unk_2DA;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        func_80B363E8(&this->unk_344, globalCtx, &this->unk_320, &this->unk_32C, &this->unk_338);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B359DC(EnGg* this, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    Player* player = GET_PLAYER(globalCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (this->actor.xzDistToPlayer < 200.0f) {
 | 
				
			||||||
 | 
					        if (this->unk_306 == 0) {
 | 
				
			||||||
 | 
					            if (player->stateFlags2 & 0x8000000) {
 | 
				
			||||||
 | 
					                this->unk_306 = 1;
 | 
				
			||||||
 | 
					                play_sound(NA_SE_SY_TRE_BOX_APPEAR);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else if (!(player->stateFlags2 & 0x8000000)) {
 | 
				
			||||||
 | 
					            this->unk_306 = 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ((player->transformation == PLAYER_FORM_HUMAN) && (globalCtx->msgCtx.ocarinaMode == 3) &&
 | 
				
			||||||
 | 
					            (globalCtx->msgCtx.unk1202E == 7)) {
 | 
				
			||||||
 | 
					            if (!(gSaveContext.weekEventReg[19] & 0x80)) {
 | 
				
			||||||
 | 
					                gSaveContext.weekEventReg[19] |= 0x80;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            this->unk_307 = true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (ActorCutscene_GetCanPlayNext(this->unk_2DC)) {
 | 
				
			||||||
 | 
					            ActorCutscene_Start(this->unk_2DC, &this->actor);
 | 
				
			||||||
 | 
					            this->unk_307 = false;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            if (ActorCutscene_GetCurrentIndex() == 0x7C) {
 | 
				
			||||||
 | 
					                ActorCutscene_Stop(0x7C);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (this->unk_307) {
 | 
				
			||||||
 | 
					                ActorCutscene_SetIntentToPlay(this->unk_2DC);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        this->unk_307 = false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B35B24(EnGgStruct* ptr, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    ptr->unk_34 = NULL;
 | 
				
			||||||
 | 
					    ptr->unk_38 = NULL;
 | 
				
			||||||
 | 
					    ptr->unk_3C = 0;
 | 
				
			||||||
 | 
					    ptr->unk_40 = 0;
 | 
				
			||||||
 | 
					    ptr->unk_44 = 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B35B44(EnGgStruct* ptr, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    if (ptr->unk_30 == 0xE) {
 | 
				
			||||||
 | 
					        ptr->unk_40++;
 | 
				
			||||||
 | 
					        if (ptr->unk_40 > 0x46) {
 | 
				
			||||||
 | 
					            ptr->unk_48 = 1;
 | 
				
			||||||
 | 
					            ptr->unk_40 = 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (ptr->unk_40 != 0x46) {
 | 
				
			||||||
 | 
					            if (ptr->unk_48 != 0) {
 | 
				
			||||||
 | 
					                ptr->unk_44 = 0x37;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                ptr->unk_44 = ptr->unk_40 - 15;
 | 
				
			||||||
 | 
					                if (ptr->unk_44 < 0) {
 | 
				
			||||||
 | 
					                    ptr->unk_44 = 0;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            ptr->unk_44++;
 | 
				
			||||||
 | 
					            if (ptr->unk_44 > 0x37) {
 | 
				
			||||||
 | 
					                ptr->unk_44 = 0x37;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else if ((ptr->unk_30 == 11) || (ptr->unk_30 == 12)) {
 | 
				
			||||||
 | 
					        ptr->unk_40++;
 | 
				
			||||||
 | 
					        if (ptr->unk_40 > 0x46) {
 | 
				
			||||||
 | 
					            ptr->unk_48 = 1;
 | 
				
			||||||
 | 
					            ptr->unk_40 = 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else if (ptr->unk_30 == 0xD) {
 | 
				
			||||||
 | 
					        ptr->unk_48 = 0;
 | 
				
			||||||
 | 
					        ptr->unk_40++;
 | 
				
			||||||
 | 
					        if (ptr->unk_40 > 0x46) {
 | 
				
			||||||
 | 
					            ptr->unk_40 = 0x46;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (ptr->unk_40 != 0x46) {
 | 
				
			||||||
 | 
					            ptr->unk_44 = ptr->unk_40 - 15;
 | 
				
			||||||
 | 
					            if (ptr->unk_44 < 0) {
 | 
				
			||||||
 | 
					                ptr->unk_44 = 0;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            ptr->unk_44++;
 | 
				
			||||||
 | 
					            if (ptr->unk_44 > 0x37) {
 | 
				
			||||||
 | 
					                func_80B364D4(ptr, globalCtx);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B35C84(EnGgStruct* ptr, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    s32 sp74;
 | 
				
			||||||
 | 
					    s32 phi_s7;
 | 
				
			||||||
 | 
					    f32 temp_f22;
 | 
				
			||||||
 | 
					    f32 temp_f24;
 | 
				
			||||||
 | 
					    f32 temp_f26;
 | 
				
			||||||
 | 
					    f32 temp_f20;
 | 
				
			||||||
 | 
					    s32 i;
 | 
				
			||||||
 | 
					    s32 temp = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ptr->unk_48 != 0) {
 | 
				
			||||||
 | 
					        sp74 = ptr->unk_40 % temp;
 | 
				
			||||||
 | 
					        ptr->unk_40 = sp74;
 | 
				
			||||||
 | 
					        phi_s7 = 0x46;
 | 
				
			||||||
 | 
					    } else if (ptr->unk_30 == 0xD) {
 | 
				
			||||||
 | 
					        sp74 = ptr->unk_40;
 | 
				
			||||||
 | 
					        phi_s7 = 0x46;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        phi_s7 = ptr->unk_40 - ptr->unk_44;
 | 
				
			||||||
 | 
					        sp74 = ptr->unk_40 % temp;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (phi_s7 <= 0) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    OPEN_DISPS(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Matrix_StatePush();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = sp74; i < phi_s7; i += temp) {
 | 
				
			||||||
 | 
					        temp_f20 = i * 0.14f;
 | 
				
			||||||
 | 
					        temp_f22 = ptr->unk_00.x + (ptr->unk_18.x * temp_f20) + (0.5f * ptr->unk_24.x * temp_f20 * temp_f20);
 | 
				
			||||||
 | 
					        temp_f24 = ptr->unk_00.y - Math_SinS((i * 0x27FFB) / 70);
 | 
				
			||||||
 | 
					        temp_f26 = ptr->unk_00.z + (ptr->unk_18.z * temp_f20) + (0.5f * ptr->unk_24.z * temp_f20 * temp_f20);
 | 
				
			||||||
 | 
					        temp_f20 = Rand_ZeroOne() * 0.003f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (1) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Matrix_InsertTranslation(temp_f22, temp_f24, temp_f26, MTXMODE_NEW);
 | 
				
			||||||
 | 
					        Matrix_Scale(temp_f20, temp_f20, temp_f20, MTXMODE_APPLY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255);
 | 
				
			||||||
 | 
					        gDPSetEnvColor(POLY_XLU_DISP++, 255, 150, 0, 255);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        func_8012C2DC(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					        Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
 | 
				
			||||||
 | 
					        gSPDisplayList(POLY_XLU_DISP++, gOwlStatueWhiteFlashDL);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Matrix_StatePop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Matrix_StatePush();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = sp74; i < phi_s7; i += temp) {
 | 
				
			||||||
 | 
					        temp_f20 = i * 0.14f;
 | 
				
			||||||
 | 
					        temp_f22 = ptr->unk_0C.x + ((ptr->unk_18.x * temp_f20) + (0.5f * ptr->unk_24.x * temp_f20 * temp_f20));
 | 
				
			||||||
 | 
					        temp_f24 = ptr->unk_0C.y - Math_SinS((i * 0x27FFB) / 70);
 | 
				
			||||||
 | 
					        temp_f26 = ptr->unk_0C.z + (ptr->unk_18.z * temp_f20) + (0.5f * ptr->unk_24.z * temp_f20 * temp_f20);
 | 
				
			||||||
 | 
					        temp_f20 = Rand_ZeroOne() * 0.003f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Matrix_InsertTranslation(temp_f22, temp_f24, temp_f26, MTXMODE_NEW);
 | 
				
			||||||
 | 
					        Matrix_Scale(temp_f20, temp_f20, temp_f20, MTXMODE_APPLY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255);
 | 
				
			||||||
 | 
					        gDPSetEnvColor(POLY_XLU_DISP++, 255, 150, 0, 255);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        func_8012C2DC(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					        Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
 | 
				
			||||||
 | 
					        gSPDisplayList(POLY_XLU_DISP++, gOwlStatueWhiteFlashDL);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Matrix_StatePop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    gSPMatrix(POLY_XLU_DISP++, &gIdentityMtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CLOSE_DISPS(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B3610C(EnGgStruct* ptr, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    f32 temp_f20;
 | 
				
			||||||
 | 
					    f32 temp_f24;
 | 
				
			||||||
 | 
					    f32 temp_f26;
 | 
				
			||||||
 | 
					    f32 temp_f28;
 | 
				
			||||||
 | 
					    f32 temp_f30;
 | 
				
			||||||
 | 
					    s32 phi_s4;
 | 
				
			||||||
 | 
					    f32 phi_f22;
 | 
				
			||||||
 | 
					    s32 i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ptr->unk_48 != 0) {
 | 
				
			||||||
 | 
					        phi_s4 = 0x46;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        phi_s4 = ptr->unk_40;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (phi_s4 > 0) {
 | 
				
			||||||
 | 
					        OPEN_DISPS(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Matrix_StatePush();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (i = 0; i < phi_s4; i++) {
 | 
				
			||||||
 | 
					            if (ptr->unk_48 != 0) {
 | 
				
			||||||
 | 
					                phi_f22 = phi_s4 / 70.0f;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                phi_f22 = i / 70.0f;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            temp_f24 = ptr->unk_0C.x + (ptr->unk_18.x * i) + (0.5f * ptr->unk_24.x * i * i);
 | 
				
			||||||
 | 
					            temp_f26 = ptr->unk_0C.y + (ptr->unk_18.y * i) + (0.5f * ptr->unk_24.y * i * i);
 | 
				
			||||||
 | 
					            temp_f28 = ptr->unk_0C.z + (ptr->unk_18.z * i) + (0.5f * ptr->unk_24.z * i * i);
 | 
				
			||||||
 | 
					            temp_f20 = Rand_ZeroOne() * 0.003f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Matrix_InsertTranslation((Rand_Centered() * (100.0f * phi_f22)) + temp_f24, temp_f26,
 | 
				
			||||||
 | 
					                                     ((30.0f * phi_f22) * Rand_Centered()) + temp_f28, MTXMODE_NEW);
 | 
				
			||||||
 | 
					            Matrix_Scale(temp_f20, temp_f20, temp_f20, MTXMODE_APPLY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255);
 | 
				
			||||||
 | 
					            gDPSetEnvColor(POLY_XLU_DISP++, 255, 150, 0, 255);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            func_8012C2DC(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					            Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
 | 
				
			||||||
 | 
					                      G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
 | 
				
			||||||
 | 
					            gSPDisplayList(POLY_XLU_DISP++, gOwlStatueWhiteFlashDL);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Matrix_StatePop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gSPMatrix(POLY_XLU_DISP++, &gIdentityMtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        CLOSE_DISPS(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B363E8(EnGgStruct* ptr, GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3) {
 | 
				
			||||||
 | 
					    ptr->unk_34 = func_80B35B44;
 | 
				
			||||||
 | 
					    ptr->unk_00 = *arg1;
 | 
				
			||||||
 | 
					    ptr->unk_0C = *arg1;
 | 
				
			||||||
 | 
					    ptr->unk_18 = *arg2;
 | 
				
			||||||
 | 
					    ptr->unk_24 = *arg3;
 | 
				
			||||||
 | 
					    ptr->unk_48 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ptr->unk_00.x += -4.0f;
 | 
				
			||||||
 | 
					    ptr->unk_0C.x += 4.0f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((ptr->unk_30 == 11) || (ptr->unk_30 == 12) || (ptr->unk_30 == 13)) {
 | 
				
			||||||
 | 
					        ptr->unk_38 = func_80B35C84;
 | 
				
			||||||
 | 
					    } else if (ptr->unk_30 == 14) {
 | 
				
			||||||
 | 
					        ptr->unk_38 = func_80B3610C;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void func_80B364D4(EnGgStruct* ptr, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    ptr->unk_34 = NULL;
 | 
				
			||||||
 | 
					    ptr->unk_38 = NULL;
 | 
				
			||||||
 | 
					    func_80B35B24(ptr, globalCtx);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EnGg_Init(Actor* thisx, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    s32 pad;
 | 
				
			||||||
 | 
					    EnGg* this = THIS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (INV_CONTENT(ITEM_MASK_GORON) == ITEM_MASK_GORON) {
 | 
				
			||||||
 | 
					        Actor_MarkForDeath(&this->actor);
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
 | 
				
			||||||
 | 
					    this->actor.bgCheckFlags |= 0x400;
 | 
				
			||||||
 | 
					    SkelAnime_InitFlex(globalCtx, &this->skelAnime, &object_gg_Skel_00F6C0, &object_gg_Anim_00F578, this->jointTable,
 | 
				
			||||||
 | 
					                       this->morphTable, 20);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Collider_InitCylinder(globalCtx, &this->collider);
 | 
				
			||||||
 | 
					    Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
 | 
				
			||||||
 | 
					    CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    gSaveContext.weekEventReg[20] &= (u8)~4;
 | 
				
			||||||
 | 
					    gSaveContext.weekEventReg[20] &= (u8)~8;
 | 
				
			||||||
 | 
					    gSaveContext.weekEventReg[20] &= (u8)~0x10;
 | 
				
			||||||
 | 
					    this->actor.flags &= ~ACTOR_FLAG_80;
 | 
				
			||||||
 | 
					    this->unk_310 = this->actor.home.pos.y;
 | 
				
			||||||
 | 
					    this->unk_2DC = this->actor.cutscene;
 | 
				
			||||||
 | 
					    this->actor.flags |= ACTOR_FLAG_2000000;
 | 
				
			||||||
 | 
					    this->unk_308 = 0;
 | 
				
			||||||
 | 
					    this->unk_309 = 0;
 | 
				
			||||||
 | 
					    this->unk_304 = 0;
 | 
				
			||||||
 | 
					    this->unk_30A = 0;
 | 
				
			||||||
 | 
					    this->actor.flags |= ACTOR_FLAG_10;
 | 
				
			||||||
 | 
					    func_80B35B24(&this->unk_344, globalCtx);
 | 
				
			||||||
 | 
					    func_80B35250(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EnGg_Destroy(Actor* thisx, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EnGg_Update(Actor* thisx, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    EnGg* this = THIS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (globalCtx->actorCtx.unk4 == 100) {
 | 
				
			||||||
 | 
					        this->actor.flags |= ACTOR_FLAG_80;
 | 
				
			||||||
 | 
					        this->actor.flags |= ACTOR_FLAG_1;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        this->actor.flags &= ~ACTOR_FLAG_80;
 | 
				
			||||||
 | 
					        this->actor.flags &= ~ACTOR_FLAG_1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (gSaveContext.weekEventReg[19] & 0x80) {
 | 
				
			||||||
 | 
					        if (globalCtx->csCtx.state == 0) {
 | 
				
			||||||
 | 
					            this->actor.flags |= ACTOR_FLAG_1;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            this->actor.flags &= ~ACTOR_FLAG_1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((globalCtx->csCtx.state == 0) &&
 | 
				
			||||||
 | 
					        ((this->unk_2DA != 14) && (this->unk_2DA != 11) && (this->unk_2DA != 12) && (this->unk_2DA != 13))) {
 | 
				
			||||||
 | 
					        func_80B364D4(&this->unk_344, globalCtx);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (((this->unk_2DA == 14) || (this->unk_2DA == 11) || (this->unk_2DA == 12) || (this->unk_2DA == 13)) &&
 | 
				
			||||||
 | 
					        (this->unk_309 == 1)) {
 | 
				
			||||||
 | 
					        func_80B35968(this, globalCtx);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!(gSaveContext.weekEventReg[91] & 0x10) &&
 | 
				
			||||||
 | 
					        ((gSaveContext.weekEventReg[19] & 0x80) || CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_80) ||
 | 
				
			||||||
 | 
					         (this->unk_308 == 1))) {
 | 
				
			||||||
 | 
					        gSaveContext.weekEventReg[91] |= 0x10;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    this->actionFunc(this, globalCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    func_80B34F70(this);
 | 
				
			||||||
 | 
					    func_80B35108(this, globalCtx);
 | 
				
			||||||
 | 
					    func_80B34FB4(this, globalCtx);
 | 
				
			||||||
 | 
					    Actor_MoveWithoutGravity(&this->actor);
 | 
				
			||||||
 | 
					    SkelAnime_Update(&this->skelAnime);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (globalCtx->csCtx.state == 0) {
 | 
				
			||||||
 | 
					        func_80B3584C(this);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        this->unk_2E8 = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    func_80B35634(this, globalCtx);
 | 
				
			||||||
 | 
					    func_800E9250(globalCtx, &this->actor, &this->unk_1D8, &this->unk_1DE, this->actor.focus.pos);
 | 
				
			||||||
 | 
					    func_80B351A4(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					s32 EnGg_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx,
 | 
				
			||||||
 | 
					                          Gfx** gfx) {
 | 
				
			||||||
 | 
					    EnGg* this = THIS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (limbIndex == 2) {
 | 
				
			||||||
 | 
					        Matrix_InsertZRotation_s(this->unk_2E8, MTXMODE_APPLY);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EnGg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx, Gfx** gfx) {
 | 
				
			||||||
 | 
					    static Vec3f D_80B36DF0 = { 1800.0f, 300.0f, 200.0f };
 | 
				
			||||||
 | 
					    EnGg* this = THIS;
 | 
				
			||||||
 | 
					    Vec3f sp30 = { 0.0f, 0.0f, 0.0f };
 | 
				
			||||||
 | 
					    Vec3f sp24 = { 0.0f, 0.0f, 0.0f };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (this->unk_2DA == 14) {
 | 
				
			||||||
 | 
					        sp30.y = 3.0f;
 | 
				
			||||||
 | 
					        sp30.z = -1.0f;
 | 
				
			||||||
 | 
					        sp24.y = -0.07f;
 | 
				
			||||||
 | 
					        this->unk_309 = 1;
 | 
				
			||||||
 | 
					    } else if ((this->unk_2DA == 11) || (this->unk_2DA == 12) || (this->unk_2DA == 13)) {
 | 
				
			||||||
 | 
					        sp30.x = 3.0f;
 | 
				
			||||||
 | 
					        sp24.x = 0.5f;
 | 
				
			||||||
 | 
					        this->unk_309 = 1;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        this->unk_309 = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (limbIndex == 4) {
 | 
				
			||||||
 | 
					        Matrix_MultiplyVector3fByState(&D_80B36DF0, &this->unk_320);
 | 
				
			||||||
 | 
					        Matrix_StatePush();
 | 
				
			||||||
 | 
					        Matrix_RotateY(this->actor.shape.rot.y, MTXMODE_NEW);
 | 
				
			||||||
 | 
					        Matrix_MultiplyVector3fByState(&sp30, &this->unk_32C);
 | 
				
			||||||
 | 
					        Matrix_MultiplyVector3fByState(&sp24, &this->unk_338);
 | 
				
			||||||
 | 
					        Matrix_StatePop();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TexturePtr D_80B36DFC[] = {
 | 
				
			||||||
 | 
					    object_gg_Tex_009260,
 | 
				
			||||||
 | 
					    object_gg_Tex_009660,
 | 
				
			||||||
 | 
					    object_gg_Tex_009A60,
 | 
				
			||||||
 | 
					    object_gg_Tex_009E60,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void EnGg_Draw(Actor* thisx, GlobalContext* globalCtx) {
 | 
				
			||||||
 | 
					    s32 pad;
 | 
				
			||||||
 | 
					    EnGg* this = THIS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    OPEN_DISPS(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (this->unk_344.unk_38 != 0) {
 | 
				
			||||||
 | 
					        this->unk_344.unk_38(&this->unk_344, globalCtx);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (gSaveContext.weekEventReg[19] & 0x80) {
 | 
				
			||||||
 | 
					        func_8012C28C(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B36DFC[this->unk_2E2]));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        POLY_OPA_DISP = SkelAnime_DrawFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
 | 
				
			||||||
 | 
					                                           this->skelAnime.dListCount, EnGg_OverrideLimbDraw, EnGg_PostLimbDraw,
 | 
				
			||||||
 | 
					                                           &this->actor, POLY_OPA_DISP);
 | 
				
			||||||
 | 
					    } else if (CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_80) || (this->unk_308 == 1)) {
 | 
				
			||||||
 | 
					        func_8012C2DC(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B36DFC[this->unk_2E2]));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        POLY_XLU_DISP = SkelAnime_DrawFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable,
 | 
				
			||||||
 | 
					                                           this->skelAnime.dListCount, EnGg_OverrideLimbDraw, EnGg_PostLimbDraw,
 | 
				
			||||||
 | 
					                                           &this->actor, POLY_XLU_DISP);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    func_8012C2DC(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CLOSE_DISPS(globalCtx->state.gfxCtx);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,14 +4,57 @@
 | 
				
			||||||
#include "global.h"
 | 
					#include "global.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct EnGg;
 | 
					struct EnGg;
 | 
				
			||||||
 | 
					struct EnGgStruct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef void (*EnGgActionFunc)(struct EnGg*, GlobalContext*);
 | 
					typedef void (*EnGgActionFunc)(struct EnGg*, GlobalContext*);
 | 
				
			||||||
 | 
					typedef void (*EnGgUnkFunc)(struct EnGgStruct*, GlobalContext*);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct EnGgStruct {
 | 
				
			||||||
 | 
					    /* 0x00 */ Vec3f unk_00;
 | 
				
			||||||
 | 
					    /* 0x0C */ Vec3f unk_0C;
 | 
				
			||||||
 | 
					    /* 0x18 */ Vec3f unk_18;
 | 
				
			||||||
 | 
					    /* 0x24 */ Vec3f unk_24;
 | 
				
			||||||
 | 
					    /* 0x30 */ u8 unk_30;
 | 
				
			||||||
 | 
					    /* 0x34 */ EnGgUnkFunc unk_34;
 | 
				
			||||||
 | 
					    /* 0x38 */ EnGgUnkFunc unk_38;
 | 
				
			||||||
 | 
					    /* 0x3C */ s32 unk_3C;
 | 
				
			||||||
 | 
					    /* 0x40 */ s32 unk_40;
 | 
				
			||||||
 | 
					    /* 0x44 */ s32 unk_44;
 | 
				
			||||||
 | 
					    /* 0x48 */ u8 unk_48;
 | 
				
			||||||
 | 
					} EnGgStruct; // size == 0x4C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct EnGg {
 | 
					typedef struct EnGg {
 | 
				
			||||||
    /* 0x0000 */ Actor actor;
 | 
					    /* 0x0000 */ Actor actor;
 | 
				
			||||||
    /* 0x0144 */ char unk_144[0x90];
 | 
					    /* 0x0144 */ ColliderCylinder collider;
 | 
				
			||||||
 | 
					    /* 0x0190 */ SkelAnime skelAnime;
 | 
				
			||||||
    /* 0x01D4 */ EnGgActionFunc actionFunc;
 | 
					    /* 0x01D4 */ EnGgActionFunc actionFunc;
 | 
				
			||||||
    /* 0x01D8 */ char unk_1D8[0x1B8];
 | 
					    /* 0x01D8 */ Vec3s unk_1D8;
 | 
				
			||||||
 | 
					    /* 0x01DE */ Vec3s unk_1DE;
 | 
				
			||||||
 | 
					    /* 0x01E4 */ Vec3s jointTable[20];
 | 
				
			||||||
 | 
					    /* 0x025C */ Vec3s morphTable[20];
 | 
				
			||||||
 | 
					    /* 0x02D4 */ UNK_TYPE1 unk_2D4[0x6];
 | 
				
			||||||
 | 
					    /* 0x02DA */ u8 unk_2DA;
 | 
				
			||||||
 | 
					    /* 0x02DB */ u8 unk_2DB;
 | 
				
			||||||
 | 
					    /* 0x02DC */ s16 unk_2DC;
 | 
				
			||||||
 | 
					    /* 0x02DE */ UNK_TYPE1 unk2DE[4];
 | 
				
			||||||
 | 
					    /* 0x02E2 */ s16 unk_2E2;
 | 
				
			||||||
 | 
					    /* 0x02E4 */ s16 unk_2E4;
 | 
				
			||||||
 | 
					    /* 0x02E6 */ s16 unk_2E6;
 | 
				
			||||||
 | 
					    /* 0x02E8 */ s16 unk_2E8;
 | 
				
			||||||
 | 
					    /* 0x02EA */ UNK_TYPE1 unk2EA[0x1A];
 | 
				
			||||||
 | 
					    /* 0x0304 */ s16 unk_304;
 | 
				
			||||||
 | 
					    /* 0x0306 */ u8 unk_306;
 | 
				
			||||||
 | 
					    /* 0x0307 */ u8 unk_307;
 | 
				
			||||||
 | 
					    /* 0x0308 */ u8 unk_308;
 | 
				
			||||||
 | 
					    /* 0x0309 */ u8 unk_309;
 | 
				
			||||||
 | 
					    /* 0x030A */ s16 unk_30A;
 | 
				
			||||||
 | 
					    /* 0x030C */ UNK_TYPE1 unk30C[4];
 | 
				
			||||||
 | 
					    /* 0x0310 */ f32 unk_310;
 | 
				
			||||||
 | 
					    /* 0x0314 */ UNK_TYPE1 unk314[0xC];
 | 
				
			||||||
 | 
					    /* 0x0320 */ Vec3f unk_320;
 | 
				
			||||||
 | 
					    /* 0x032C */ Vec3f unk_32C;
 | 
				
			||||||
 | 
					    /* 0x0338 */ Vec3f unk_338;
 | 
				
			||||||
 | 
					    /* 0x0344 */ EnGgStruct unk_344;
 | 
				
			||||||
} EnGg; // size = 0x390
 | 
					} EnGg; // size = 0x390
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern const ActorInit En_Gg_InitVars;
 | 
					extern const ActorInit En_Gg_InitVars;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13527,8 +13527,8 @@
 | 
				
			||||||
    0x80B364F8:("EnGg_Init",),
 | 
					    0x80B364F8:("EnGg_Init",),
 | 
				
			||||||
    0x80B36660:("EnGg_Destroy",),
 | 
					    0x80B36660:("EnGg_Destroy",),
 | 
				
			||||||
    0x80B36670:("EnGg_Update",),
 | 
					    0x80B36670:("EnGg_Update",),
 | 
				
			||||||
    0x80B368B0:("func_80B368B0",),
 | 
					    0x80B368B0:("EnGg_OverrideLimbDraw",),
 | 
				
			||||||
    0x80B368F0:("func_80B368F0",),
 | 
					    0x80B368F0:("EnGg_PostLimbDraw",),
 | 
				
			||||||
    0x80B36A34:("EnGg_Draw",),
 | 
					    0x80B36A34:("EnGg_Draw",),
 | 
				
			||||||
    0x80B37080:("EnMaruta_Init",),
 | 
					    0x80B37080:("EnMaruta_Init",),
 | 
				
			||||||
    0x80B37280:("EnMaruta_Destroy",),
 | 
					    0x80B37280:("EnMaruta_Destroy",),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1367,11 +1367,6 @@ D_0600A344 = 0x0600A344;
 | 
				
			||||||
D_06001EFC = 0x06001EFC;
 | 
					D_06001EFC = 0x06001EFC;
 | 
				
			||||||
D_0600A808 = 0x0600A808;
 | 
					D_0600A808 = 0x0600A808;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ovl_En_Gg
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
D_0600F578 = 0x0600F578;
 | 
					 | 
				
			||||||
D_0600F6C0 = 0x0600F6C0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ovl_En_Gg2
 | 
					// ovl_En_Gg2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
D_0600F578 = 0x0600F578;
 | 
					D_0600F578 = 0x0600F578;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue