EnBigpo (Big Poh) (#250)

* EnBigpo: start

* EnBigpo: uhh, this struct is weird

* EnBigpo: progress

* EnBigpo: so many of these functions are tiny

* EnBigpo nasty four loop function

* EnBigpo: hate draw functions

* EnBigpo: all functions attempted

* EnBigpo: data migrated, does not OK, 2 bytes off...

* Multi: Attempting to OK, issues

* EnBigpo: more docs

* EnBigpo: more docs2

* EnBigpo: more docs and cleaning

* EnBigpo: removed data to try to find the issues, matched a draw function thanks to Tharo

* EnBigpo: progress? maybe not

* EnBigpo: matched another function

* EnBigpo: overwrite limbdraw matches now

* EnBigpo: one more nonmatching rejected

* EnBigPo: not actual progress, probably

* Match Init, down to single stack pointer on second func

* EnBigPo OK

* EnBigpo: docs and cleaning

* EnBigpo: more docs and cleaning

* EnBigpo: back to OK with no warnings

* EnBigpo: more docs and cleaning

* EnBigpo: docs and cleaning

* EnBigpo: hmm, rename_sym doesn't like renaming system functions but I'm 98% sure I know what these are

* Multiple: changed some function names, maybe changed too much... hmm

* EnBigpo: even more changes to docs

* EnBigpo: formater pass

* EnBigpo: small fixes

* EnBigpo: c file description

* Apply suggestions from code review

Apply camera suggestions from eng124

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: updating all requested changes and reverting one incorrect macro

* Apply suggestions from code review

Some of eng124's recommendations, need to add the last by hand

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: back to OK

* EnBigpo: Minor cleanup changes

* Functions fixed: added function changes to actorfixer and fixed dinofos

* EnBigpo: BINANG_ROT180

* Apply suggestions from code review

First batch of requested changes, the simpler ones that shouldn't require checking

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>

* EnBigpo: fixes to recommended changes, back to OK

* EnBigpo: move idleTimer docs out of struct

* Sprite: removed old commented out pragma, it matches, I still dont get it

* EnBigpo: more changes I had to check first

* EnBigpo: more requested changes, and some macro uses found

* EnBigpo: forgot a requested change

* Update src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigPo: missed a disphead array access

* Apply suggestions from code review

More requested changes

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: more hex to dec

* EnBigpo: more hex to dec 2

* Update src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update include/functions.h

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* EnBigpo: build being weird

* EnBigpo: weird, rename_sym didn't catch this earlier

* Tools: fixed actorfixer to use Play_CameraSetAtEye forgot I blew this change away trying to get build again,

* Update src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.h

Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>

* EnBigpo: cutscene functions changed name to indicate they are stages

* EnBigpo: Rename Particles to Effect

* EnBigpo: changed draw function names, changed function comment format

* EnBigpo: renamed limbdraw functions, formater pass

Co-authored-by: isghj8 <isghj8@gmail.com>
Co-authored-by: engineer124 <engineer124engineer124@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: Anghelo Carvajal <angheloalf95@gmail.com>
Co-authored-by: Kenix3 <kenixwhisperwind@gmail.com>
This commit is contained in:
Isghj 2021-09-01 15:44:42 -07:00 committed by GitHub
parent e1cb76c258
commit f21f393fcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 1594 additions and 303 deletions

View File

@ -871,7 +871,7 @@ Actor* func_800BB498(ActorContext* actorCtx, Actor* actor, GlobalContext* global
// void func_800BB59C(void);
// void func_800BB604(void);
// void func_800BB8EC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
void func_800BBA88(GlobalContext* globalCtx, Actor* actor);
void Enemy_StartFinishingBlow(GlobalContext* globalCtx, Actor* actor);
// void func_800BBAC0(void);
void func_800BBB74(s16* arg1, UNK_TYPE1 arg2, UNK_TYPE1 arg3, UNK_TYPE4 arg4);
// void func_800BBC20(void);
@ -911,7 +911,7 @@ void func_800BDFC0(GlobalContext* globalCtx, Gfx* dl);
void func_800BE03C(GlobalContext* globalCtx, Gfx* dl);
Actor* func_800BE0B8(GlobalContext* globalCtx, Actor* inActor, s16 arg2, u8 arg3, f32 arg4);
// void func_800BE184(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE2 param_6);
u8 func_800BE22C(Actor* actor);
u8 Actor_ApplyDamage(Actor* actor); // returns current health
void func_800BE258(Actor* actor, UNK_PTR arg1);
void func_800BE2B8(Actor* actor, ColliderJntSph* jntSphere);
void func_800BE33C(Vec3f* arg0, Vec3f* arg1, Vec3s* arg2, s32 arg3);
@ -1640,7 +1640,7 @@ void EffFootmark_Draw(GlobalContext* globalCtx);
void func_800F0390(GlobalContext* globalCtx);
void func_800F03C0(GlobalContext* globalCtx);
void func_800F048C(GlobalContext* globalCtx, Vec3f* param_2, u8 param_3, u16 param_4, u8 param_5);
void func_800F0568(GlobalContext* globalCtx, Vec3f* position, s32 param_3, u16 sfxId);
void Audio_PlaySoundAtPosition(GlobalContext* globalCtx, Vec3f* position, s32 param_3, u16 sfxId);
// void func_800F0590(void);
// void func_800F05C0(void);
// void func_800F07C0(void);
@ -3035,7 +3035,7 @@ void func_80169590(GlobalContext* globalCtx, s16 param_2, s16 param_3);
void func_80169600(GlobalContext* globalCtx, s16 param_2);
// void func_80169668(void);
Camera* Play_GetCamera(GlobalContext* globalCtx, s16 index);
s32 func_8016970C(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye);
s32 Play_CameraSetAtEye(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye);
// void func_8016981C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void func_80169940(void);
// void func_80169988(void);

View File

@ -19,6 +19,7 @@
// Currently most often called ctxt in MM, TODO: Refactor names when its used
#define ACTIVE_CAM globalCtx->cameraPtrs[globalCtx->activeCamera]
#define MAIN_CAM 0
#define SUBCAM_FREE 0
#define SET_NEXT_GAMESTATE(curState, newInit, newStruct) \
(curState)->nextGameStateInit = (GameStateFunc)newInit; \
@ -26,6 +27,8 @@
#define PLAYER ((Player*)globalCtx->actorCtx.actorList[ACTORCAT_PLAYER].first)
#define FIRST_ENEMY ((Actor*)globalCtx->actorCtx.actorList[ACTORCAT_ENEMY].first)
// linkAge still exists in MM, but is always set to 0 (always adult)
// There are remnants of these macros from OOT, but they are essentially useless
//#define LINK_IS_CHILD (gSaveContext.linkAge != 0)

View File

@ -236,7 +236,6 @@ typedef struct {
/* 0x15A */ s16 pad15A;
} DynaPolyActor; // size = 0x15C
typedef enum {
/* 0x00 */ ITEM00_RUPEE_GREEN,
/* 0x01 */ ITEM00_RUPEE_BLUE,

3
spec
View File

@ -4252,8 +4252,7 @@ beginseg
name "ovl_En_Bigpo"
compress
include "build/src/overlays/actors/ovl_En_Bigpo/z_en_bigpo.o"
include "build/data/ovl_En_Bigpo/ovl_En_Bigpo.data.o"
include "build/data/ovl_En_Bigpo/ovl_En_Bigpo.reloc.o"
include "build/src/overlays/actors/ovl_En_Bigpo/ovl_En_Bigpo_reloc.o"
endseg
beginseg

View File

@ -6,6 +6,6 @@
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F0390/func_800F048C.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F0390/func_800F0568.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F0390/Audio_PlaySoundAtPosition.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F0390/func_800F0590.s")

View File

@ -766,7 +766,7 @@ void Actor_FreeOverlay(ActorOverlay* entry) {
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_800BB8EC.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_800BBA88.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/Enemy_StartFinishingBlow.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_800BBAC0.s")
@ -866,7 +866,7 @@ Actor* func_800BE0B8(GlobalContext* globalCtx, Actor* inActor, s16 arg2, u8 arg3
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_800BE184.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_800BE22C.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/Actor_ApplyDamage.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/func_800BE258.s")

View File

@ -566,7 +566,6 @@ void EffectSsHahen_Spawn(GlobalContext* globalCtx, Vec3f* pos, Vec3f* velocity,
* - due to how life is implemented it is capped at 200. Any value over 200 is accepted, but the fragment will
* only live for 200 frames
*/
#ifdef NON_MATCHING
void EffectSsHahen_SpawnBurst(GlobalContext* globalCtx, Vec3f* pos, f32 burstScale, s16 unused, s16 scale,
s16 randScaleRange, s16 count, s16 objId, s16 life, Gfx* dList) {
s32 i;
@ -585,9 +584,6 @@ void EffectSsHahen_SpawnBurst(GlobalContext* globalCtx, Vec3f* pos, f32 burstSca
life, dList);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_effect_soft_sprite_old_init/EffectSsHahen_SpawnBurst.s")
#endif
extern Vec3f D_801AE3E0;

View File

@ -871,7 +871,7 @@ EnItem00* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, u32 pa
(EnItem00*)Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, spawnPos->x, spawnPos->y + 40.0f,
spawnPos->z, 0, 0, 0, ((((param7F00 >> 8) & 0x7F) << 9) & 0xFE00) | 0x102);
if (!Actor_GetCollectibleFlag(globalCtx, (param7F00 >> 8) & 0x7F)) {
func_800F0568(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
Audio_PlaySoundAtPosition(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
}
} else {
// TODO: fix cast, this actor is not an EnItem00
@ -880,7 +880,7 @@ EnItem00* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, u32 pa
((((param7F00 >> 8) & 0x7F) & 0x7F) << 9) | 7);
if (param20000 == 0) {
if (!Actor_GetCollectibleFlag(globalCtx, (param7F00 >> 8) & 0x7F)) {
func_800F0568(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
Audio_PlaySoundAtPosition(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
}
}
}
@ -947,7 +947,7 @@ Actor* Item_DropCollectible2(GlobalContext* globalCtx, Vec3f* spawnPos, u32 para
spawnPos->z, 0, 0, 0, ((((param7F00 >> 8) & 0x7F) & 0x7F) << 9) | 7);
}
if (Actor_GetCollectibleFlag(globalCtx, (param7F00 >> 8) & 0x7F) == 0) {
func_800F0568(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
Audio_PlaySoundAtPosition(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
}
} else {
params = func_800A7650(params);
@ -1105,7 +1105,7 @@ void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3
if (gSaveContext.health < 0x11) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, spawnPos->x, spawnPos->y + 40.0f,
spawnPos->z, 0, 0, 0, 2);
func_800F0568(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
Audio_PlaySoundAtPosition(globalCtx, spawnPos, 40, NA_SE_EV_BUTTERFRY_TO_FAIRY);
return;
}

View File

@ -86,7 +86,7 @@
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/Play_GetCamera.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/func_8016970C.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/Play_CameraSetAtEye.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/func_8016981C.s")

View File

@ -107,7 +107,7 @@ void BgIcicle_Break(BgIcicle* this, GlobalContext* globalCtx, f32 arg2) {
s32 j;
s32 i;
func_800F0568(globalCtx, &this->dyna.actor.world.pos, 30, NA_SE_EV_ICE_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.world.pos, 30, NA_SE_EV_ICE_BROKEN);
for (i = 0; i < 2; i++) {
for (j = 0; j < 10; j++) {

File diff suppressed because it is too large Load Diff

View File

@ -5,15 +5,66 @@
struct EnBigpo;
typedef void (*EnBigpoActionFunc)(struct EnBigpo*, GlobalContext*);
typedef void (*EnBigPoActionFunc)(struct EnBigpo*, GlobalContext*);
typedef struct EnBigpoFireEffect {
/* 0x00 */ Vec3f pos;
/* 0x0C */ LightNode* light;
/* 0x10 */ LightInfo info; // size 0xE
} EnBigpoFireEffect; // size = 0x20
#define ENBIGPO_LIMBCOUNT 10
// idleTimer gets reused:
// * after dampe reveals a fire, 8 minutes of frames before it goes away again
// * used by flames and regular bigpo to count frames during the appearance cutscene
// * when idle flying around, frames until next attack
// * when spinning in/out of reality, counts frames from start
// * in burning death, counts frames from death start
// * after scoop spawned, idle timer used to count down to actor disapear
typedef struct EnBigpo {
/* 0x0000 */ Actor actor;
/* 0x0144 */ char unk_144[0xBC];
/* 0x0200 */ EnBigpoActionFunc actionFunc;
/* 0x0204 */ char unk_204[0x194];
/* 0x000 */ Actor actor;
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ Vec3s jointTable[ENBIGPO_LIMBCOUNT];
/* 0x1C4 */ Vec3s morphTable[ENBIGPO_LIMBCOUNT];
/* 0x200 */ EnBigPoActionFunc actionFunc;
/* 0x204 */ u8 unkBool204; // need to know what func_801A2E54 does to know what this is
/* 0x206 */ s16 idleTimer; // frame counter
/* 0x208 */ s16 unk208; // facing rotY?
/* 0x20A */ s16 rotVelocity;
/* 0x20C */ s16 unk20C; // is this counting the number of frames the player is ztargeting them?
/* 0x20E */ s16 cutsceneSubCamId;
/* 0x210 */ s16 switchFlags;
/* 0x212 */ s16 hoverHeightCycleTimer; // sin wave up and down bobbing
/* 0x214 */ f32 fireRadius; // distance from center during conjunction cutscene
/* 0x218 */ f32 savedHeight; // actual height while flying moves as part of bobbing
// both unk21C and unk220 are passed to func_800BE680, probably need that to know what they are
/* 0x21C */ f32 unk21C; // tied to color alpha, decremented to zero
/* 0x220 */ f32 unk220; // created from unk21C
/* 0x224 */ Vec3f limbPos[9];
/* 0x290 */ Color_RGBA8 mainColor;
/* 0x294 */ Color_RGBA8 lanternColor;
/* 0x298 */ UNK_TYPE1 pad298[0x14];
/* 0x2AC */ ColliderCylinder collider;
/* 0x2F8 */ MtxF drawMtxF;
// the three fires that merge to become big po
// also the fires dampe digs up under his house
/* 0x338 */ EnBigpoFireEffect fires[3];
} EnBigpo; // size = 0x398
extern const ActorInit En_Bigpo_InitVars;
// well ver is regular, dampe basement ver is summoned
// on spawn, 3/possible fires are turned into chosenfire
enum EnBigpoType {
/* 0 */ ENBIGPO_REGULAR,
/* 1 */ ENBIGPO_SUMMONED,
/* 2 */ ENBIGPO_POSSIBLEFIRE,
/* 3 */ ENBIGPO_CHOSENFIRE,
/* 4 */ ENBIGPO_REVEALEDFIRE,
/* 5 */ ENBIGPO_UNK5,
};
#define GET_BIGPO_SWITCHFLAGS(thisx) ((u8)(thisx->params >> 0x8))
#endif // Z_EN_BIGPO_H

View File

@ -571,7 +571,7 @@ void EnClearTag_UpdateCamera(EnClearTag* this, GlobalContext* globalCtx) {
}
if (this->camId != 0) {
func_8016970C(globalCtx, this->camId, &this->at, &this->eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->at, &this->eye);
}
}

View File

@ -548,7 +548,7 @@ void func_808BE4D4(EnDekunuts* this, GlobalContext* globalCtx) {
sp40.y = this->actor.world.pos.y + 18.0f;
sp40.z = this->actor.world.pos.z;
EffectSsDeadDb_Spawn(globalCtx, &sp40, &D_801D15B0, &D_801D15B0, &D_808BEF90, &D_808BEF94, 200, 0, 13);
func_800F0568(globalCtx, &this->actor.world.pos, 11, NA_SE_EN_EXTINCT);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 11, NA_SE_EN_EXTINCT);
sp40.y = this->actor.world.pos.y + 10.0f;
EffectSsHahen_SpawnBurst(globalCtx, &sp40, 3.0f, 0, 12, 3, 15, HAHEN_OBJECT_DEFAULT, 10, NULL);
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.world.pos, 0xE0);
@ -582,8 +582,8 @@ void func_808BE73C(EnDekunuts* this, GlobalContext* globalCtx) {
if ((this->unk_18E != 10) || !(this->collider.info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) {
func_808BD3B4(this, globalCtx);
if ((this->actor.colChkInfo.mass == 50) || (this->actor.params != ENDEKUNUTS_GET_FF00_0)) {
if ((this->actor.params != ENDEKUNUTS_GET_FF00_1) && !func_800BE22C(&this->actor)) {
func_800BBA88(globalCtx, &this->actor);
if ((this->actor.params != ENDEKUNUTS_GET_FF00_1) && !Actor_ApplyDamage(&this->actor)) {
Enemy_StartFinishingBlow(globalCtx, &this->actor);
}
if (this->actor.params == ENDEKUNUTS_GET_FF00_1) {
@ -639,7 +639,7 @@ void func_808BE73C(EnDekunuts* this, GlobalContext* globalCtx) {
func_808BDE7C(this);
} else if (this->actor.colChkInfo.health != 0) {
this->actor.colChkInfo.health = 0;
func_800BBA88(globalCtx, &this->actor);
Enemy_StartFinishingBlow(globalCtx, &this->actor);
func_808BE294(this, 0);
}
}

View File

@ -384,7 +384,7 @@ void func_8089ABF4(EnDinofos* this, GlobalContext* globalCtx) {
if (this->camId != 0) {
Camera* camera = Play_GetCamera(globalCtx, this->camId);
func_8016970C(globalCtx, 0, &camera->at, &camera->eye);
Play_CameraSetAtEye(globalCtx, 0, &camera->at, &camera->eye);
this->camId = 0;
ActorCutscene_Stop(this->actor.cutscene);
if (this->actor.colChkInfo.health == 0) {
@ -506,7 +506,7 @@ void func_8089B288(EnDinofos* this, GlobalContext* globalCtx) {
this->unk_290--;
Math_Vec3f_StepTo(&camera->eye, &this->unk_2BC, this->unk_2AC);
Math_Vec3f_StepTo(&camera->at, &this->unk_2C8, this->unk_2A8);
func_8016970C(globalCtx, this->camId, &camera->at, &camera->eye);
Play_CameraSetAtEye(globalCtx, this->camId, &camera->at, &camera->eye);
if (this->unk_290 == 0) {
func_8089B320(this);
}
@ -540,7 +540,7 @@ void func_8089B3D4(EnDinofos* this, GlobalContext* globalCtx) {
sp28.y = camera->at.y;
}
func_8016970C(globalCtx, this->camId, &sp28, &camera->eye);
Play_CameraSetAtEye(globalCtx, this->camId, &sp28, &camera->eye);
if (this->actor.bgCheckFlags & 1) {
func_8089B4A4(this);
}
@ -565,7 +565,7 @@ void func_8089B580(EnDinofos* this, GlobalContext* globalCtx) {
this->unk_290++;
if (this->unk_290 < 8) {
func_8016970C(globalCtx, this->camId, &this->actor.focus.pos, &camera->eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.focus.pos, &camera->eye);
}
if (this->skelAnime.animCurrentFrame > 35.0f) {
@ -574,7 +574,7 @@ void func_8089B580(EnDinofos* this, GlobalContext* globalCtx) {
}
Math_Vec3f_StepTo(&camera->eye, &this->unk_2BC, 10.0f);
func_8016970C(globalCtx, this->camId, &this->actor.focus.pos, &camera->eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.focus.pos, &camera->eye);
if (this->skelAnime.animCurrentFrame <= 55.0f) {
func_800B9010(&this->actor, NA_SE_EN_DODO_J_FIRE - SFX_FLAG);
}
@ -1231,7 +1231,7 @@ void func_8089D318(EnDinofos* this, GlobalContext* globalCtx) {
sp24.x = (Math_SinS(this->actor.shape.rot.y) * 150.0f) + this->actor.focus.pos.x;
sp24.y = this->actor.focus.pos.y;
sp24.z = (Math_CosS(this->actor.shape.rot.y) * 150.0f) + this->actor.focus.pos.z;
func_8016970C(globalCtx, this->camId, &this->actor.focus.pos, &sp24);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.focus.pos, &sp24);
func_8089CFAC(this);
} else {
func_8089B100(this, globalCtx);
@ -1284,8 +1284,8 @@ s32 func_8089D60C(EnDinofos* this, GlobalContext* globalCtx) {
return false;
}
if (!func_800BE22C(&this->actor)) {
func_800BBA88(globalCtx, &this->actor);
if (!Actor_ApplyDamage(&this->actor)) {
Enemy_StartFinishingBlow(globalCtx, &this->actor);
D_8089E350--;
if (D_8089E350 == 0) {
if (D_8089E34C != -1) {

View File

@ -645,7 +645,7 @@ void EnFirefly_UpdateDamage(EnFirefly* this, GlobalContext* globalCtx) {
this->unk_2E8.y = 0.55f;
EnFirefly_SetupStunned(this);
} else {
func_800BBA88(globalCtx, &this->actor);
Enemy_StartFinishingBlow(globalCtx, &this->actor);
this->actor.colChkInfo.health = 0;
this->actor.flags &= ~1;

View File

@ -2307,7 +2307,7 @@ void func_80B479E8(EnInvadepoh* this, GlobalContext* globalCtx) {
}
if (this->actionTimer == 8) {
func_800BBA88(globalCtx, &this->actor);
Enemy_StartFinishingBlow(globalCtx, &this->actor);
}
this->actionTimer--;
@ -2372,7 +2372,7 @@ void func_80B47D30(Actor* thisx, GlobalContext* globalCtx) {
thisx->gravity = 0.0f;
thisx->velocity.y = acAttached->velocity.y * 0.5f;
thisx->velocity.y = CLAMP(thisx->velocity.y, -30.0f, 30.0f);
func_800F0568(globalCtx, &thisx->world.pos, 50, NA_SE_EN_INVADER_DEAD);
Audio_PlaySoundAtPosition(globalCtx, &thisx->world.pos, 50, NA_SE_EN_INVADER_DEAD);
func_80B47830(this);
}

View File

@ -289,7 +289,7 @@ void EnMinifrog_ReturnFrogCutscene(EnMinifrog* this, GlobalContext* globalCtx) {
default:
func_801477B4(globalCtx);
EnMinifrog_SetCamera(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 30, NA_SE_EN_NPC_FADEAWAY);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 30, NA_SE_EN_NPC_FADEAWAY);
if (this->actor.cutscene != -1) {
if (ActorCutscene_GetCurrentIndex() == this->actor.cutscene) {
ActorCutscene_Stop(this->actor.cutscene);

View File

@ -115,9 +115,9 @@ void EnNutsball_Update(Actor* thisx, GlobalContext* globalCtx) {
spawnBurstPos.z = this->actor.world.pos.z;
EffectSsHahen_SpawnBurst(globalCtx, &spawnBurstPos, 6.0f, 0, 7, 3, 15, HAHEN_OBJECT_DEFAULT, 10, NULL);
if (this->actor.params == 1) {
func_800F0568(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_NUTS_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_NUTS_BROKEN);
} else {
func_800F0568(globalCtx, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EN_OCTAROCK_ROCK);
}
Actor_MarkForDeath(&this->actor);
}

View File

@ -354,7 +354,7 @@ void EnPametfrog_ShakeCamera(EnPametfrog* this, GlobalContext* globalCtx, f32 ma
eye.x = (Math_SinS(y) * magShakeXZ) + camera->at.x;
eye.y = camera->at.y + magShakeY;
eye.z = (Math_CosS(y) * magShakeXZ) + camera->at.z;
func_8016970C(globalCtx, this->camId, &camera->at, &eye);
Play_CameraSetAtEye(globalCtx, this->camId, &camera->at, &eye);
}
void EnPametfrog_StopCutscene(EnPametfrog* this, GlobalContext* globalCtx) {
@ -362,7 +362,7 @@ void EnPametfrog_StopCutscene(EnPametfrog* this, GlobalContext* globalCtx) {
if (this->camId != 0) {
camera = Play_GetCamera(globalCtx, this->camId);
func_8016970C(globalCtx, 0, &camera->at, &camera->eye);
Play_CameraSetAtEye(globalCtx, 0, &camera->at, &camera->eye);
this->camId = 0;
ActorCutscene_Stop(this->cutscene);
func_800B724C(globalCtx, &this->actor, 6);
@ -531,7 +531,7 @@ void EnPametfrog_SetupFallOffSnapper(EnPametfrog* this, GlobalContext* globalCtx
eye.x = (Math_SinS(yaw) * 300.0f) + this->actor.focus.pos.x;
eye.y = this->actor.focus.pos.y + 100.0f;
eye.z = (Math_CosS(yaw) * 300.0f) + this->actor.focus.pos.z;
func_8016970C(globalCtx, this->camId, &this->actor.focus.pos, &eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.focus.pos, &eye);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_FROG_DAMAGE);
this->actionFunc = EnPametfrog_FallOffSnapper;
}
@ -861,7 +861,7 @@ void EnPametfrog_SetupFallInAir(EnPametfrog* this, GlobalContext* globalCtx) {
eye.x = this->actor.world.pos.x + (xzDist * this->unk_2DC.x);
eye.y = (this->actor.world.pos.y + this->actor.home.pos.y) * 0.5f;
eye.z = this->actor.world.pos.z + (xzDist * this->unk_2DC.z);
func_8016970C(globalCtx, this->camId, &this->actor.world.pos, &eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.world.pos, &eye);
}
this->actionFunc = EnPametfrog_FallInAir;
@ -879,7 +879,7 @@ void EnPametfrog_FallInAir(EnPametfrog* this, GlobalContext* globalCtx) {
} else {
this->spinYaw += 0xF00;
if (this->camId != 0) {
func_8016970C(globalCtx, this->camId, &this->actor.world.pos, &Play_GetCamera(globalCtx, this->camId)->eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.world.pos, &Play_GetCamera(globalCtx, this->camId)->eye);
}
if (this->actor.bgCheckFlags & 1) {
@ -927,7 +927,7 @@ void EnPametfrog_SetupDefeatGekko(EnPametfrog* this, GlobalContext* globalCtx) {
eye.x = this->actor.child->focus.pos.x + 150.0f * Math_SinS(yaw);
eye.y = this->actor.child->focus.pos.y + 20.0f;
eye.z = this->actor.child->focus.pos.z + 150.0f * Math_CosS(yaw);
func_8016970C(globalCtx, this->camId, &this->actor.child->focus.pos, &eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.child->focus.pos, &eye);
this->actor.params = GEKKO_DEFEAT;
this->timer = 38;
this->actionFunc = EnPametfrog_DefeatGekko;
@ -952,7 +952,7 @@ void EnPametfrog_SetupDefeatSnapper(EnPametfrog* this, GlobalContext* globalCtx)
eye.x = this->actor.world.pos.x + Math_SinS(yaw) * 150.0f;
eye.y = this->actor.world.pos.y + 20.0f;
eye.z = this->actor.world.pos.z + Math_CosS(yaw) * 150.0f;
func_8016970C(globalCtx, this->camId, &this->actor.world.pos, &eye);
Play_CameraSetAtEye(globalCtx, this->camId, &this->actor.world.pos, &eye);
this->timer = 20;
this->actionFunc = EnPametfrog_DefeatSnapper;
}
@ -983,7 +983,7 @@ void EnPametfrog_SetupSpawnFrog(EnPametfrog* this, GlobalContext* globalCtx) {
vec1.z = (Math_CosS(yaw) * 20.0f) + this->actor.world.pos.z;
this->collider.base.ocFlags1 &= ~OC1_ON;
func_800B0DE0(globalCtx, &vec1, &D_801D15B0, &D_801D15B0, &primColor, &envColor, 800, 50);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EN_NPC_APPEAR);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EN_NPC_APPEAR);
Actor_SetRoomClearedTemp(globalCtx, globalCtx->roomCtx.currRoom.num);
for (i = 0; i < 25; i++) {
@ -1211,7 +1211,7 @@ void EnPametfrog_SetupCallSnapper(EnPametfrog* this, GlobalContext* globalCtx) {
eye.y = at.y + 4.0f;
// Zooms in on Gekko
func_8016970C(globalCtx, this->camId, &at, &eye);
Play_CameraSetAtEye(globalCtx, this->camId, &at, &eye);
this->timer = 0;
this->actor.hintId = 0x5F;
this->actionFunc = EnPametfrog_CallSnapper;
@ -1243,7 +1243,7 @@ void EnPametfrog_SetupSnapperSpawn(EnPametfrog* this, GlobalContext* globalCtx)
eye.z = (Math_CosS(yaw) * 500.0f) + at.z;
// Zooms in on Snapper spawn point
func_8016970C(globalCtx, this->camId, &at, &eye);
Play_CameraSetAtEye(globalCtx, this->camId, &at, &eye);
this->quake = Quake_Add(ACTIVE_CAM, 6);
Quake_SetSpeed(this->quake, 18000);
Quake_SetQuakeValues(this->quake, 2, 0, 0, 0);
@ -1288,7 +1288,7 @@ void EnPametfrog_ApplyDamageEffect(EnPametfrog* this, GlobalContext* globalCtx)
if ((this->drawEffect != GEKKO_DRAW_EFFECT_FROZEN) ||
!(this->collider.elements->info.acHitInfo->toucher.dmgFlags & 0xDB0B3)) {
if (this->actor.params == GEKKO_PRE_SNAPPER) {
if (func_800BE22C(&this->actor) == 0) {
if (Actor_ApplyDamage(&this->actor) == 0) {
func_801A2ED8();
}
@ -1321,10 +1321,10 @@ void EnPametfrog_ApplyDamageEffect(EnPametfrog* this, GlobalContext* globalCtx)
}
EnPametfrog_SetupDamage(this);
}
} else if (func_800BE22C(&this->actor) == 0) {
} else if (Actor_ApplyDamage(&this->actor) == 0) {
this->collider.base.acFlags &= ~AC_ON;
EnPametfrog_ApplyMagicArrowEffects(this, globalCtx);
func_800BBA88(globalCtx, &this->actor);
Enemy_StartFinishingBlow(globalCtx, &this->actor);
this->actor.flags &= ~1;
func_801A2ED8();
EnPametfrog_SetupCutscene(this);

View File

@ -332,7 +332,7 @@ void EnSb_UpdateDamage(EnSb* this, GlobalContext* globalCtx) {
if (this->actor.colChkInfo.damageEffect == 0xF) {
hitPlayer = 0;
if (this->vulnerableTimer != 0) {
func_800BE22C(&this->actor);
Actor_ApplyDamage(&this->actor);
func_800BCB70(&this->actor, 0x4000, 0xFF, 0x2000, 80);
hitPlayer = 1;
}
@ -343,8 +343,8 @@ void EnSb_UpdateDamage(EnSb* this, GlobalContext* globalCtx) {
this->isDrawn = true;
}
this->isDead = true;
func_800BBA88(globalCtx, &this->actor);
func_800F0568(globalCtx, &this->actor.world.pos, 0x28, NA_SE_EN_BEE_FLY);
Enemy_StartFinishingBlow(globalCtx, &this->actor);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 0x28, NA_SE_EN_BEE_FLY);
return;
}
hitPoint.x = this->collider.info.bumper.hitPos.x;

View File

@ -154,7 +154,7 @@ void EnSuttari_UpdateCollider(EnSuttari* this, GlobalContext* globalCtx) {
if (this->actor.colChkInfo.damageEffect == 0xF) {
this->flags1 |= 0x100;
this->flags1 &= ~0x40;
func_800BBA88(globalCtx, &this->actor);
Enemy_StartFinishingBlow(globalCtx, &this->actor);
} else if (this->actor.colChkInfo.damageEffect == 0xE) {
this->flags1 |= 0x200;
this->flags1 &= ~0x40;
@ -1196,7 +1196,7 @@ void func_80BAD380(EnSuttari* this, GlobalContext* globalCtx) {
this->actor.speedXZ = 0.0f;
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_CLEAR_TAG, this->actor.world.pos.x,
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, CLEAR_TAG_SMALL_EXPLOSION);
func_800F0568(globalCtx, &this->actor.world.pos, 30, NA_SE_IT_BOMB_EXPLOSION);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 30, NA_SE_IT_BOMB_EXPLOSION);
Actor_MarkForDeath(&this->actor);
return;
}

View File

@ -166,11 +166,9 @@ void EnTuboTrap_HandleImpact(EnTuboTrap* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Player* player2 = PLAYER;
// in oot func_800F0568 is Audio_PlaySoundAtPosition
if ((this->actor.bgCheckFlags & 0x20) && (this->actor.yDistToWater > 15.0f)) {
EnTuboTrap_SpawnEffectsInWater(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_BOMB_DROP_WATER);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_BOMB_DROP_WATER);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_MarkForDeath(&this->actor);
return;
@ -179,8 +177,8 @@ void EnTuboTrap_HandleImpact(EnTuboTrap* this, GlobalContext* globalCtx) {
if (this->collider.base.atFlags & AT_BOUNCED) {
this->collider.base.atFlags &= ~AT_BOUNCED;
EnTuboTrap_SpawnEffectsOnLand(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_IT_SHIELD_REFLECT_SW);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_IT_SHIELD_REFLECT_SW);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_MarkForDeath(&this->actor);
return;
@ -189,8 +187,8 @@ void EnTuboTrap_HandleImpact(EnTuboTrap* this, GlobalContext* globalCtx) {
if (this->collider.base.acFlags & AC_HIT) {
this->collider.base.acFlags &= ~AC_HIT;
EnTuboTrap_SpawnEffectsOnLand(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_EXPLOSION);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_EXPLOSION);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_MarkForDeath(&this->actor);
return;
@ -201,8 +199,8 @@ void EnTuboTrap_HandleImpact(EnTuboTrap* this, GlobalContext* globalCtx) {
if (&player->actor == this->collider.base.at) {
EnTuboTrap_SpawnEffectsOnLand(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
func_800F0568(globalCtx, &player2->actor.world.pos, 40, NA_SE_PL_BODY_HIT);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &player2->actor.world.pos, 40, NA_SE_PL_BODY_HIT);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_MarkForDeath(&this->actor);
return;
@ -211,7 +209,7 @@ void EnTuboTrap_HandleImpact(EnTuboTrap* this, GlobalContext* globalCtx) {
if ((this->actor.bgCheckFlags & 8) || (this->actor.bgCheckFlags & 1)) {
EnTuboTrap_SpawnEffectsOnLand(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_MarkForDeath(&this->actor);
}

View File

@ -273,13 +273,13 @@ void ObjKibako_Idle(ObjKibako* this, GlobalContext* globalCtx) {
} else if ((this->actor.bgCheckFlags & 0x20) && (this->actor.yDistToWater > 19.0f)) {
ObjKibako_WaterBreak(this, globalCtx);
ObjKibako_SpawnCollectible(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_DIVE_INTO_WATER_L);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_DIVE_INTO_WATER_L);
Actor_MarkForDeath(&this->actor);
} else if (this->collider.base.acFlags & AC_HIT) {
ObjKibako_AirBreak(this, globalCtx);
ObjKibako_SpawnCollectible(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
Actor_MarkForDeath(&this->actor);
} else {
Actor_SetVelocityAndMoveYRotationAndGravity(&this->actor);
@ -377,14 +377,14 @@ void ObjKibako_Thrown(ObjKibako* this, GlobalContext* globalCtx) {
if ((this->actor.bgCheckFlags & 0xB) || (atHit) || (this->timer <= 0)) {
ObjKibako_AirBreak(this, globalCtx);
ObjKibako_SpawnCollectible(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
Actor_MarkForDeath(&this->actor);
} else {
if (this->actor.bgCheckFlags & 0x40) {
ObjKibako_WaterBreak(this, globalCtx);
ObjKibako_SpawnCollectible(this, globalCtx);
func_800F0568(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
func_800F0568(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_DIVE_INTO_WATER_L);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.world.pos, 40, NA_SE_EV_DIVE_INTO_WATER_L);
Actor_MarkForDeath(&this->actor);
} else {
if (this->actor.velocity.y < -0.05f) {

View File

@ -212,7 +212,7 @@ s32 ObjKibako2_ShouldBreak(ObjKibako2* this) {
void ObjKibako2_Idle(ObjKibako2* this, GlobalContext* globalCtx) {
if (ObjKibako2_ShouldBreak(this)) {
ObjKibako2_Break(this, globalCtx);
func_800F0568(globalCtx, &this->dyna.actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.world.pos, 20, NA_SE_EV_WOODBOX_BREAK);
this->dyna.actor.flags |= 0x10;
func_800C62BC(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
this->dyna.actor.draw = NULL;

View File

@ -16,6 +16,10 @@ animdict ={
"func_8012404c": "Player_RemoveMask",
"Actor_SpawnWithParentAndCutscene": "Actor_SpawnAsChildAndCutscene",
"Actor_SpawnWithParent": "Actor_SpawnAsChild",
"func_800BE22C": "Actor_ApplyDamage",
"func_800F0568": "Audio_PlaySoundAtPosition",
"func_8016970C": "Play_CameraSetAtEye",
"func_800BBA88": "Enemy_StartFinishingBlow",
}
def replace_anim(file):

View File

@ -843,7 +843,7 @@
0x800BB59C:("func_800BB59C",),
0x800BB604:("func_800BB604",),
0x800BB8EC:("func_800BB8EC",),
0x800BBA88:("func_800BBA88",),
0x800BBA88:("Enemy_StartFinishingBlow",),
0x800BBAC0:("func_800BBAC0",),
0x800BBB74:("func_800BBB74",),
0x800BBC20:("func_800BBC20",),
@ -884,7 +884,7 @@
0x800BE03C:("func_800BE03C",),
0x800BE0B8:("func_800BE0B8",),
0x800BE184:("func_800BE184",),
0x800BE22C:("func_800BE22C",),
0x800BE22C:("Actor_ApplyDamage",),
0x800BE258:("func_800BE258",),
0x800BE2B8:("func_800BE2B8",),
0x800BE33C:("func_800BE33C",),
@ -1613,7 +1613,7 @@
0x800F0390:("func_800F0390",),
0x800F03C0:("func_800F03C0",),
0x800F048C:("func_800F048C",),
0x800F0568:("func_800F0568",),
0x800F0568:("Audio_PlaySoundAtPosition",),
0x800F0590:("func_800F0590",),
0x800F05C0:("func_800F05C0",),
0x800F07C0:("func_800F07C0",),
@ -3012,7 +3012,7 @@
0x80169600:("func_80169600",),
0x80169668:("func_80169668",),
0x801696D4:("Play_GetCamera",),
0x8016970C:("func_8016970C",),
0x8016970C:("Play_CameraSetAtEye",),
0x8016981C:("func_8016981C",),
0x80169940:("func_80169940",),
0x80169988:("func_80169988",),
@ -14168,8 +14168,8 @@
0x80B61914:("func_80B61914",),
0x80B619B4:("func_80B619B4",),
0x80B619FC:("func_80B619FC",),
0x80B61AC8:("func_80B61AC8",),
0x80B61AF8:("func_80B61AF8",),
0x80B61AC8:("EnBigPo_InitWellBigPo",),
0x80B61AF8:("EnBigPo_WellWaitForProximity",),
0x80B61B38:("func_80B61B38",),
0x80B61B70:("func_80B61B70",),
0x80B61C04:("func_80B61C04",),
@ -14180,40 +14180,40 @@
0x80B61F04:("func_80B61F04",),
0x80B62034:("func_80B62034",),
0x80B62084:("func_80B62084",),
0x80B62154:("func_80B62154",),
0x80B621CC:("func_80B621CC",),
0x80B622E4:("func_80B622E4",),
0x80B623BC:("func_80B623BC",),
0x80B624F4:("func_80B624F4",),
0x80B6259C:("func_80B6259C",),
0x80B6275C:("func_80B6275C",),
0x80B627B4:("func_80B627B4",),
0x80B62814:("func_80B62814",),
0x80B62830:("func_80B62830",),
0x80B62900:("func_80B62900",),
0x80B62920:("func_80B62920",),
0x80B629E4:("func_80B629E4",),
0x80B62A68:("func_80B62A68",),
0x80B62AD4:("func_80B62AD4",),
0x80B62B10:("func_80B62B10",),
0x80B62E38:("func_80B62E38",),
0x80B62F10:("func_80B62F10",),
0x80B62FCC:("func_80B62FCC",),
0x80B631F8:("func_80B631F8",),
0x80B63264:("func_80B63264",),
0x80B632BC:("func_80B632BC",),
0x80B6330C:("func_80B6330C",),
0x80B633E8:("func_80B633E8",),
0x80B63410:("func_80B63410",),
0x80B62154:("EnBigPo_SetupWarpOut",),
0x80B621CC:("EnBigPo_WarpingOut",),
0x80B622E4:("EnBigPo_SetupWarpIn",),
0x80B623BC:("EnBigPo_WarpingIn",),
0x80B624F4:("EnBigPo_SetupIdleFlying",),
0x80B6259C:("EnBigPo_IdleFlying",),
0x80B6275C:("EnBigPo_SetupSpinUp",),
0x80B627B4:("EnBigPo_SpinningUp",),
0x80B62814:("EnBigPo_SetupSpinAttack",),
0x80B62830:("EnBigPo_SpinAttack",),
0x80B62900:("EnBigPo_SetupSpinDown",),
0x80B62920:("EnBigPo_SpinningDown",),
0x80B629E4:("EnBigPo_HitStun",),
0x80B62A68:("EnBigPo_CheckHealth",),
0x80B62AD4:("EnBigPo_SetupDeath",),
0x80B62B10:("EnBigPo_BurnAwayDeath",),
0x80B62E38:("EnBigPo_SetupLanternDrop",),
0x80B62F10:("EnBigPo_LanternFalling",),
0x80B62FCC:("EnBigPo_AdjustPoAlpha",),
0x80B631F8:("EnBigPo_SpawnScoopSoul",),
0x80B63264:("EnBigPo_ScoopSoulAppearing",),
0x80B632BC:("EnBigPo_SetupScoopSoulIdle",),
0x80B6330C:("EnBigPo_ScoopSoulIdle",),
0x80B633E8:("EnBigPo_ScoopSoulStartLeaving",),
0x80B63410:("EnBigPo_ScoopSoulFadingAway",),
0x80B63450:("func_80B63450",),
0x80B63474:("func_80B63474",),
0x80B636D0:("func_80B636D0",),
0x80B636E4:("func_80B636E4",),
0x80B63474:("EnBigPo_SelectRandomFireLocations",),
0x80B636D0:("EnBigPo_ChangeToFireCounting",),
0x80B636E4:("EnBigPo_FireCounting",),
0x80B63758:("func_80B63758",),
0x80B6382C:("func_80B6382C",),
0x80B6383C:("func_80B6383C",),
0x80B63854:("func_80B63854",),
0x80B63888:("func_80B63888",),
0x80B6382C:("EnBigpo_DoNothing",),
0x80B6383C:("EnBigPo_InitHiddenFire",),
0x80B63854:("EnBigPo_WaitingForDampe",),
0x80B63888:("EnBigpo_Die",),
0x80B638AC:("func_80B638AC",),
0x80B638D4:("func_80B638D4",),
0x80B63964:("func_80B63964",),
@ -14224,11 +14224,11 @@
0x80B63D0C:("func_80B63D0C",),
0x80B63D88:("func_80B63D88",),
0x80B63ED4:("EnBigpo_Update",),
0x80B64190:("func_80B64190",),
0x80B641E8:("func_80B641E8",),
0x80B64240:("func_80B64240",),
0x80B64190:("EnBigPo_UpdateFire",),
0x80B641E8:("EnBigPo_OverrideLimbDraw2",),
0x80B64240:("EnBigPo_PostLimbDraw2",),
0x80B64470:("func_80B64470",),
0x80B6467C:("func_80B6467C",),
0x80B6467C:("EnBigPo_DrawScoopSoul",),
0x80B64880:("func_80B64880",),
0x80B64B08:("func_80B64B08",),
0x80B64DFC:("func_80B64DFC",),