mirror of https://github.com/zeldaret/mm.git
ovl_En_Go OK and documented (Decomp was mostly done already) (#1080)
* Match remaining functions in z_en_go: - Changed some already matching functions for uniformity with the tricky match (early continue from loop). In some cases, this eliminated some strange constructs, in others, it didn't leave much difference. - Comments/Notes to start understanding/naming process. * WIP renaming * More WIP renaming. * More renaming, Effects (See oot for continuation) and some flags) * MessageScript documenting. * Util for dumping message data by textId value. * Identify some messages. * Formatting, figuring out event flags. * More WIP naming * WIP renaming. * WIP renaming * WIP naming and organizing * WIP more renaming. * WIP renaming/organizing. * Near-Final Cleanup before review. * Rename Taisou and Hakugin animations and associated functions/variables. * Misc Cleanup. * Undo changes to variables.txt * Removed msgtableparser.py (Split to another branch) * Removal of uncompiled Message Script details. * Fixup spec file * First part of hensldm's suggested changes from review. Awaiting discussion. * Second part of hensldm's suggested changes. * Fixup missed 'Animation' suffix and functions.txt * Update .xml files and related source per tom-overton's comments * Align w/ engineer124's Quake Cleanup #1102 * fixup * Run format.sh after merge. * Add brackets around one-line conditional blocks * Remainder of hensldm's comments from review. * First pass at Elliptic's comments. * Rename functions UpdateToX -> ChangeToX * Header cleanup. * Run Format, remove accidental commit of .orig file. * Fixup ActorInit * Review comments addressed, plus a few unsolicited changes. - Location of function declarations moved above static data, below types: References in the codebase were mixed, but this just made more sense. - Function name changes: It didn't fit into subsystems based on Goron Type, so I quit trying to name functions that way. Loss of a bit of "which function applies to which type", but it looks a bit cleaner, sooo... - Took a stab at making effectTable usage a bit clearer. Just using a EnGoEffect* everywhere and not inherently knowing if it was for one element, or an array really bugged me. - "GraveBro" names changed. They're all "brothers". * Changes from engineer124's review. - "Stretcher" replaced with "Athletic" as a descriptor of goron type. - Misc formatting and naming changes * Restructure switch-case statment for early break, and added missing default cases. Removed #define for 0 for actionFlags bitmask. * Relocate WEEKEVENTREG comments, remove SCENE comments. * Updated WEEKEVENTREG define names * Update WEEKEVENTREG names in Goron Shrine Door. * ELDER -> ELDERS, and revert formatting on z64save.h * Fixed re-applying changes over wrong defines. * Adjust Weekeventreg names and comments. * Update comment as well.
This commit is contained in:
parent
e0ae4e24f7
commit
95c5796e41
|
@ -1,8 +1,9 @@
|
|||
<Root>
|
||||
<!-- Animations for Gorons during the arrival of spring cutscene -->
|
||||
<File Name="object_hakugin_demo" Segment="6">
|
||||
<Animation Name="object_hakugin_demo_Anim_001420" Offset="0x1420" />
|
||||
<Animation Name="object_hakugin_demo_Anim_001A4C" Offset="0x1A4C" />
|
||||
<Animation Name="object_hakugin_demo_Anim_002704" Offset="0x2704" />
|
||||
<Animation Name="object_hakugin_demo_Anim_003378" Offset="0x3378" />
|
||||
<Animation Name="gGoronSpringShowAnim" Offset="0x1420" />
|
||||
<Animation Name="gGoronSpringShowLoopAnim" Offset="0x1A4C" />
|
||||
<Animation Name="gGoronSpringLookAroundAnim" Offset="0x2704" />
|
||||
<Animation Name="gGoronSpringLookAroundLoopAnim" Offset="0x3378" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
<Root>
|
||||
<!-- Animations for Gorons at the Racetrack -->
|
||||
<File Name="object_taisou" Segment="6">
|
||||
<Animation Name="object_taisou_Anim_0016C8" Offset="0x16C8" />
|
||||
<Animation Name="object_taisou_Anim_00283C" Offset="0x283C" />
|
||||
<Animation Name="object_taisou_Anim_002C48" Offset="0x2C48" />
|
||||
<Animation Name="object_taisou_Anim_0031D8" Offset="0x31D8" />
|
||||
<Animation Name="object_taisou_Anim_004DD4" Offset="0x4DD4" />
|
||||
<Animation Name="object_taisou_Anim_005790" Offset="0x5790" />
|
||||
<Animation Name="object_taisou_Anim_005EE0" Offset="0x5EE0" />
|
||||
<Animation Name="object_taisou_Anim_007764" Offset="0x7764" />
|
||||
<Animation Name="gGoronAthleticsSquatSideToSideAnim" Offset="0x16C8" />
|
||||
<Animation Name="gGoronAthleticsShakeLimbsAnim" Offset="0x283C" />
|
||||
<Animation Name="gGoronAthleticsCheerAnim" Offset="0x2C48" />
|
||||
<Animation Name="gGoronAthleticsShoutAnim" Offset="0x31D8" />
|
||||
<Animation Name="gGoronAthleticsDoubleArmSideBendAnim" Offset="0x4DD4" />
|
||||
<Animation Name="gGoronAthleticsHamstringStretchStandingAnim" Offset="0x5790" />
|
||||
<Animation Name="gGoronAthleticsHamstringStretchSittingAnim" Offset="0x5EE0" />
|
||||
<Animation Name="gGoronAthleticsSingleArmSideBendAnim" Offset="0x7764" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -695,7 +695,9 @@ typedef enum {
|
|||
#define WEEKEVENTREG_18_10 PACK_WEEKEVENTREG_FLAG(18, 0x10)
|
||||
#define WEEKEVENTREG_18_20 PACK_WEEKEVENTREG_FLAG(18, 0x20)
|
||||
#define WEEKEVENTREG_18_40 PACK_WEEKEVENTREG_FLAG(18, 0x40)
|
||||
#define WEEKEVENTREG_18_80 PACK_WEEKEVENTREG_FLAG(18, 0x80)
|
||||
|
||||
// Player has Powder Keg purchasing privileges.
|
||||
#define WEEKEVENTREG_HAS_POWDERKEG_PRIVILEGES PACK_WEEKEVENTREG_FLAG(18, 0x80)
|
||||
#define WEEKEVENTREG_19_01 PACK_WEEKEVENTREG_FLAG(19, 0x01)
|
||||
#define WEEKEVENTREG_19_02 PACK_WEEKEVENTREG_FLAG(19, 0x02)
|
||||
#define WEEKEVENTREG_19_04 PACK_WEEKEVENTREG_FLAG(19, 0x04)
|
||||
|
@ -717,8 +719,12 @@ typedef enum {
|
|||
#define WEEKEVENTREG_20_80 PACK_WEEKEVENTREG_FLAG(20, 0x80)
|
||||
#define WEEKEVENTREG_21_01 PACK_WEEKEVENTREG_FLAG(21, 0x01)
|
||||
#define WEEKEVENTREG_21_02 PACK_WEEKEVENTREG_FLAG(21, 0x02)
|
||||
#define WEEKEVENTREG_21_04 PACK_WEEKEVENTREG_FLAG(21, 0x04)
|
||||
#define WEEKEVENTREG_21_08 PACK_WEEKEVENTREG_FLAG(21, 0x08)
|
||||
|
||||
// Player has spoken to Goron Graveyard's gravemaker while in Goron form.
|
||||
#define WEEKEVENTREG_TALKED_GORON_GRAVEMAKER_AS_GORON PACK_WEEKEVENTREG_FLAG(21, 0x04)
|
||||
// Player has spoken to formerly frozen Goron outside Goron Graveyard.
|
||||
#define WEEKEVENTREG_TALKED_THAWED_GRAVEYARD_GORON PACK_WEEKEVENTREG_FLAG(21, 0x08)
|
||||
|
||||
#define WEEKEVENTREG_21_10 PACK_WEEKEVENTREG_FLAG(21, 0x10)
|
||||
#define WEEKEVENTREG_21_20 PACK_WEEKEVENTREG_FLAG(21, 0x20)
|
||||
#define WEEKEVENTREG_21_40 PACK_WEEKEVENTREG_FLAG(21, 0x40)
|
||||
|
@ -729,7 +735,10 @@ typedef enum {
|
|||
#define WEEKEVENTREG_22_01 PACK_WEEKEVENTREG_FLAG(22, 0x01)
|
||||
|
||||
#define WEEKEVENTREG_22_02 PACK_WEEKEVENTREG_FLAG(22, 0x02)
|
||||
#define WEEKEVENTREG_22_04 PACK_WEEKEVENTREG_FLAG(22, 0x04)
|
||||
|
||||
// Goron Elder's son has been calmed from Goron's Lullaby.
|
||||
#define WEEKEVENTREG_CALMED_GORON_ELDERS_SON PACK_WEEKEVENTREG_FLAG(22, 0x04)
|
||||
|
||||
#define WEEKEVENTREG_22_08 PACK_WEEKEVENTREG_FLAG(22, 0x08)
|
||||
#define WEEKEVENTREG_22_10 PACK_WEEKEVENTREG_FLAG(22, 0x10)
|
||||
#define WEEKEVENTREG_22_20 PACK_WEEKEVENTREG_FLAG(22, 0x20)
|
||||
|
@ -1293,11 +1302,17 @@ typedef enum {
|
|||
#define WEEKEVENTREG_88_08 PACK_WEEKEVENTREG_FLAG(88, 0x08)
|
||||
#define WEEKEVENTREG_88_10 PACK_WEEKEVENTREG_FLAG(88, 0x10)
|
||||
#define WEEKEVENTREG_88_20 PACK_WEEKEVENTREG_FLAG(88, 0x20)
|
||||
#define WEEKEVENTREG_88_40 PACK_WEEKEVENTREG_FLAG(88, 0x40)
|
||||
#define WEEKEVENTREG_88_80 PACK_WEEKEVENTREG_FLAG(88, 0x80)
|
||||
#define WEEKEVENTREG_89_01 PACK_WEEKEVENTREG_FLAG(89, 0x01)
|
||||
#define WEEKEVENTREG_89_02 PACK_WEEKEVENTREG_FLAG(89, 0x02)
|
||||
#define WEEKEVENTREG_89_04 PACK_WEEKEVENTREG_FLAG(89, 0x04)
|
||||
|
||||
// Goron shrine Gatekeeper has opened shrine.
|
||||
#define WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE PACK_WEEKEVENTREG_FLAG(88, 0x40)
|
||||
// Goron shrine Gatekeeper has opened shrine for player in Human form.
|
||||
#define WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_HUMAN PACK_WEEKEVENTREG_FLAG(88, 0x80)
|
||||
// Goron shrine Gatekeeper has opened shrine for player in Deku form.
|
||||
#define WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_DEKU PACK_WEEKEVENTREG_FLAG(89, 0x01)
|
||||
// Goron shrine Gatekeeper has opened shrine for player in Zora form.
|
||||
#define WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_ZORA PACK_WEEKEVENTREG_FLAG(89, 0x02)
|
||||
// Goron shrine Gatekeeper has opened shrine for player in Goron form.
|
||||
#define WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_GORON PACK_WEEKEVENTREG_FLAG(89, 0x04)
|
||||
|
||||
// Unconfirmed: "Postman has delivered priority mail"
|
||||
#define WEEKEVENTREG_89_08 PACK_WEEKEVENTREG_FLAG(89, 0x08)
|
||||
|
|
4
spec
4
spec
|
@ -2402,11 +2402,7 @@ beginseg
|
|||
name "ovl_En_Go"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Go/z_en_go.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_En_Go/ovl_En_Go_reloc.o"
|
||||
#else
|
||||
include "build/data/ovl_En_Go/ovl_En_Go.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -38,12 +38,12 @@ void BgTobira01_Action(BgTobira01* this, PlayState* play) {
|
|||
CutsceneManager_Stop(CS_ID_GLOBAL_TALK);
|
||||
} else if (CutsceneManager_IsNext(csId)) {
|
||||
CutsceneManager_StartWithPlayerCs(csId, &this->dyna.actor);
|
||||
SET_WEEKEVENTREG(WEEKEVENTREG_88_40);
|
||||
SET_WEEKEVENTREG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE);
|
||||
this->cutsceneRequested = false;
|
||||
} else {
|
||||
CutsceneManager_Queue(csId);
|
||||
}
|
||||
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_88_40) && (this->posYTick == 0) &&
|
||||
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE) && (this->posYTick == 0) &&
|
||||
(play->actorCtx.playerImpact.timer != 0) &&
|
||||
(play->actorCtx.playerImpact.type == PLAYER_IMPACT_GORON_GROUND_POUND) &&
|
||||
(SurfaceType_GetSceneExitIndex(&play->colCtx, player->actor.floorPoly, player->actor.floorBgId) == 6)) {
|
||||
|
@ -52,7 +52,7 @@ void BgTobira01_Action(BgTobira01* this, PlayState* play) {
|
|||
}
|
||||
|
||||
prevPosYTick = this->posYTick;
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_88_40)) {
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE)) {
|
||||
this->posYTick++;
|
||||
} else {
|
||||
this->posYTick--;
|
||||
|
@ -65,9 +65,9 @@ void BgTobira01_Action(BgTobira01* this, PlayState* play) {
|
|||
this->timer = 180;
|
||||
}
|
||||
|
||||
if (!(player->stateFlags1 & PLAYER_STATE1_40) && CHECK_WEEKEVENTREG(WEEKEVENTREG_88_40) &&
|
||||
if (!(player->stateFlags1 & PLAYER_STATE1_40) && CHECK_WEEKEVENTREG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE) &&
|
||||
(DECR(this->timer) == 0)) {
|
||||
CLEAR_WEEKEVENTREG(WEEKEVENTREG_88_40);
|
||||
CLEAR_WEEKEVENTREG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,7 +76,7 @@ void BgTobira01_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
DynaPolyActor_Init(&this->dyna, DYNA_TRANSFORM_POS);
|
||||
DynaPolyActor_LoadMesh(play, &this->dyna, &gGoronDoorCol);
|
||||
CLEAR_WEEKEVENTREG(WEEKEVENTREG_88_40);
|
||||
CLEAR_WEEKEVENTREG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE);
|
||||
Actor_SetScale(&this->dyna.actor, 1.0f);
|
||||
this->timer = gSaveContext.save.isNight;
|
||||
this->posYTick = 0;
|
||||
|
|
|
@ -135,17 +135,17 @@ static AnimationInfoS sAnimationInfo[] = {
|
|||
{ &gGoronShiverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronShiverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gGoronDropKegAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &object_taisou_Anim_0016C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_004DD4, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_00283C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_007764, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_005EE0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_002C48, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_0031D8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_005790, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsSquatSideToSideAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsDoubleArmSideBendAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsShakeLimbsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsSingleArmSideBendAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsHamstringStretchSittingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsCheerAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsShoutAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsHamstringStretchStandingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronCoverEarsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_hakugin_demo_Anim_002704, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_hakugin_demo_Anim_003378, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gGoronSpringLookAroundAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &gGoronSpringLookAroundLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gGoronShiveringSurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &gGoronStandingIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
};
|
||||
|
|
|
@ -830,7 +830,7 @@ void func_80B51EA4(EnGk* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_80B51FD0(EnGk* this, PlayState* play) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
if (this->unk_1E4 & 2) {
|
||||
func_801A4748(&this->actor.projectedPos, NA_SE_EN_GOLON_KID_CRY - SFX_FLAG);
|
||||
} else {
|
||||
|
@ -897,7 +897,7 @@ void func_80B5227C(EnGk* this, PlayState* play) {
|
|||
func_800B14D4(play, 20.0f, &this->actor.home.pos);
|
||||
this->unk_350 = 60;
|
||||
if (!(this->unk_1E4 & 0x80)) {
|
||||
SET_WEEKEVENTREG(WEEKEVENTREG_22_04);
|
||||
SET_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON);
|
||||
}
|
||||
Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_SIT_IMT);
|
||||
this->unk_350 = 0x4000;
|
||||
|
@ -987,7 +987,7 @@ void func_80B525E0(EnGk* this, PlayState* play) {
|
|||
void func_80B52654(EnGk* this, PlayState* play) {
|
||||
this->unk_350 += 0x400;
|
||||
if ((this->unk_1E4 & 0x80) && (play->csCtx.curFrame == 250)) {
|
||||
SET_WEEKEVENTREG(WEEKEVENTREG_22_04);
|
||||
SET_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON);
|
||||
}
|
||||
|
||||
this->unk_354 = Math_SinS(this->unk_350) * 0.006f * 0.06f;
|
||||
|
@ -1044,7 +1044,7 @@ void EnGk_Init(Actor* thisx, PlayState* play) {
|
|||
Actor_Kill(&this->actor);
|
||||
}
|
||||
} else if (ENGK_GET_F(&this->actor) == ENGK_F_2) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
this->actionFunc = func_80B51FD0;
|
||||
this->actor.draw = NULL;
|
||||
this->actor.flags |= ACTOR_FLAG_10;
|
||||
|
@ -1052,7 +1052,7 @@ void EnGk_Init(Actor* thisx, PlayState* play) {
|
|||
} else {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
} else if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
this->unk_2E4 = 0;
|
||||
this->csId = this->actor.csId;
|
||||
this->actor.flags |= ACTOR_FLAG_10;
|
||||
|
@ -1076,7 +1076,7 @@ void EnGk_Update(Actor* thisx, PlayState* play) {
|
|||
this->actionFunc(this, play);
|
||||
|
||||
if ((ENGK_GET_F(&this->actor) == ENGK_F_1) ||
|
||||
((ENGK_GET_F(&this->actor) == ENGK_F_0) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04))) {
|
||||
((ENGK_GET_F(&this->actor) == ENGK_F_0) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON))) {
|
||||
func_80B507A0(this, play);
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
Actor_TrackPlayer(play, &this->actor, &this->unk_1D8, &this->unk_1DE, this->actor.focus.pos);
|
||||
|
@ -1235,7 +1235,7 @@ void EnGk_Draw(Actor* thisx, PlayState* play) {
|
|||
|
||||
Gfx_SetupDL25_Opa(play->state.gfxCtx);
|
||||
|
||||
if ((ENGK_GET_F(&this->actor) == ENGK_F_0) && CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
if ((ENGK_GET_F(&this->actor) == ENGK_F_0) && CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
Matrix_RotateXS(-0x4000, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,103 +2,141 @@
|
|||
#define Z_EN_GO_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_oF1d_map/object_oF1d_map.h"
|
||||
|
||||
struct EnGo;
|
||||
|
||||
typedef void (*EnGoActionFunc)(struct EnGo*, PlayState*);
|
||||
typedef s32 (*MsgEventFunc)(Actor*, PlayState*);
|
||||
|
||||
#define ENGO_GET_F(thisx) (((thisx)->params & 0xF) & 0xFF)
|
||||
#define ENGO_GET_70(thisx) ((((thisx)->params & 0x70) >> 4) & 0xFF)
|
||||
#define ENGO_GET_7F80(thisx) ((((thisx)->params & 0x7F80) >> 7) & 0xFF)
|
||||
#define ENGO_GET_TYPE(thisx) (((thisx)->params & 0xF) & 0xFF)
|
||||
#define ENGO_GET_SUBTYPE(thisx) ((((thisx)->params & 0x70) >> 4) & 0xFF)
|
||||
|
||||
enum {
|
||||
#define ENGO_GET_PATH(thisx) ((((thisx)->params & 0x7F80) >> 7) & 0xFF)
|
||||
|
||||
#define ENGO_SNOW_EFFECT_COUNT 16
|
||||
#define ENGO_OTHER_EFFECT_COUNT 16
|
||||
#define ENGO_EFFECT_COUNT (ENGO_SNOW_EFFECT_COUNT + ENGO_OTHER_EFFECT_COUNT)
|
||||
|
||||
/**
|
||||
* Struct to track the state of various visual effects.
|
||||
*
|
||||
* A Goron's 'effectTable' is comprised of a number of these effects, which depending on the context in which they are
|
||||
* used, take on the form of snow, dust, or steam. The functions using these objects have an expectation that they are
|
||||
* iterating through the full effectTable, or half of the effectTable. See individual functions containing 'EnGoEffect*'
|
||||
* parameters for more details.
|
||||
*/
|
||||
typedef struct EnGoEffect {
|
||||
/* 0x00 */ u8 type;
|
||||
/* 0x01 */ u8 alphaDenom;
|
||||
/* 0x02 */ u8 alphaNumer;
|
||||
/* 0x04 */ Vec3s rotVelocity;
|
||||
/* 0x0A */ Vec3s rotAngle;
|
||||
/* 0x10 */ Vec3f pos;
|
||||
/* 0x1C */ Vec3f accel;
|
||||
/* 0x28 */ Vec3f velocity;
|
||||
/* 0x34 */ f32 scaleXY;
|
||||
/* 0x38 */ f32 scaleXYDelta;
|
||||
} EnGoEffect; // size = 0x3C;
|
||||
|
||||
/**
|
||||
* Goron Type, identified by bits [3..0] of the actor's params
|
||||
*
|
||||
* - The ENGO_ATHLETIC and ENGO_SPECTATOR types share the same subtype domain (EnGoRacetrackSubtype: [0,7])
|
||||
* - ENGO_GRAVEYARD types have their own subtype domain (EnGoGraveyardSubtype: [0,1])
|
||||
* - Others have no subtypes.
|
||||
*/
|
||||
typedef enum EnGoType {
|
||||
/* 0 */ ENGO_F_0,
|
||||
/* 1 */ ENGO_F_1,
|
||||
/* 2 */ ENGO_F_2,
|
||||
/* 3 */ ENGO_F_3,
|
||||
/* 4 */ ENGO_F_4,
|
||||
/* 5 */ ENGO_F_5,
|
||||
/* 6 */ ENGO_F_6,
|
||||
/* 7 */ ENGO_F_7,
|
||||
/* 8 */ ENGO_F_8,
|
||||
};
|
||||
/* 1 */ ENGO_ATHLETIC, // Racers stretching before the race
|
||||
/* 2 */ ENGO_SPECTATOR, // Spectators to the race
|
||||
/* 3 */ ENGO_GATEKEEPER, // Gatekeeper to the Goron Shrine
|
||||
/* 4 */ ENGO_GRAVEYARD, // Gravemaker and other
|
||||
/* 5 */ ENGO_ASIDE_STORE, // Shrine Goron outside store
|
||||
/* 6 */ ENGO_ASIDE_ELDERSROOM, // Shrine Goron outside Elder's room
|
||||
/* 7 */ ENGO_ASIDE_ELDERSSON, // Shrine Goron aside the Elder's Son
|
||||
/* 8 */ ENGO_MEDIGORON, // Medigoron selling Powder Kegs
|
||||
} EnGoType;
|
||||
|
||||
enum {
|
||||
/* 0 */ ENGO_70_0,
|
||||
/* 1 */ ENGO_70_1,
|
||||
/* 2 */ ENGO_70_2,
|
||||
/* 3 */ ENGO_70_3,
|
||||
/* 4 */ ENGO_70_4,
|
||||
/* 5 */ ENGO_70_5,
|
||||
};
|
||||
/**
|
||||
* Subtype for Gorons at the racetrack (ENGO_ATHLETIC and ENGO_SPECTATOR)
|
||||
*/
|
||||
typedef enum EnGoRacetrackSubtype {
|
||||
/* 0 */ ENGO_ATHLETIC_A,
|
||||
/* 1 */ ENGO_ATHLETIC_B,
|
||||
/* 2 */ ENGO_ATHLETIC_C,
|
||||
/* 3 */ ENGO_ATHLETIC_D,
|
||||
/* 4 */ ENGO_ATHLETIC_HAMSTRINGSIT,
|
||||
/* 5 */ ENGO_ATHLETIC_HAMSTRINGSTAND,
|
||||
/* 6 */ ENGO_SPECTATOR_CHEER,
|
||||
/* 7 */ ENGO_SPECTATOR_SHOUTING,
|
||||
} EnGoRacetrackSubtype;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x01 */ u8 unk_01;
|
||||
/* 0x02 */ u8 unk_02;
|
||||
/* 0x04 */ Vec3s unk_04;
|
||||
/* 0x0A */ Vec3s unk_0A;
|
||||
/* 0x10 */ Vec3f unk_10;
|
||||
/* 0x1C */ Vec3f unk_1C;
|
||||
/* 0x28 */ Vec3f unk_28;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 unk_38;
|
||||
} EnGoStruct; // size = 0x3C;
|
||||
/**
|
||||
* Subtype for Gorons outside the Goron Graveyard (ENGO_GRAVEYARD)
|
||||
*/
|
||||
typedef enum EnGoGraveyardSubtype {
|
||||
/* 0 */ ENGO_GRAVEYARD_GRAVEMAKER,
|
||||
/* 1 */ ENGO_GRAVEYARD_FROZEN,
|
||||
} EnGoGraveyardSubtype;
|
||||
|
||||
typedef struct EnGo {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ EnGoActionFunc actionFunc;
|
||||
/* 0x18C */ EnGoActionFunc unk_18C;
|
||||
/* 0x190 */ EnGoActionFunc unk_190;
|
||||
/* 0x18C */ EnGoActionFunc interruptedActionFunc;
|
||||
/* 0x190 */ EnGoActionFunc graveyardDialogActionFunc;
|
||||
/* 0x194 */ ColliderCylinder colliderCylinder;
|
||||
/* 0x1E0 */ UNK_TYPE1 unk1E0[0x4C];
|
||||
/* 0x1E0 */ ColliderCylinder unusedCylinder;
|
||||
/* 0x22C */ ColliderSphere colliderSphere;
|
||||
/* 0x284 */ Path* unk_284;
|
||||
/* 0x288 */ s8 unk_288;
|
||||
/* 0x289 */ s8 unk_289;
|
||||
/* 0x28C */ s32 unk_28C;
|
||||
/* 0x290 */ Vec3f unk_290;
|
||||
/* 0x29C */ Vec3f unk_29C;
|
||||
/* 0x2A8 */ Vec3s unk_2A8;
|
||||
/* 0x2AE */ Vec3s unk_2AE;
|
||||
/* 0x2B4 */ Vec3s jointTable[18];
|
||||
/* 0x320 */ Vec3s morphTable[18];
|
||||
/* 0x38C */ Actor* unk_38C;
|
||||
/* 0x390 */ u16 unk_390;
|
||||
/* 0x392 */ u16 unk_392;
|
||||
/* 0x394 */ u8 cueId;
|
||||
/* 0x398 */ f32 unk_398;
|
||||
/* 0x39C */ f32 unk_39C;
|
||||
/* 0x3A0 */ f32 unk_3A0;
|
||||
/* 0x3A4 */ f32 unk_3A4;
|
||||
/* 0x3A8 */ f32 unk_3A8;
|
||||
/* 0x284 */ Path* gatekeeperPath;
|
||||
/* 0x288 */ s8 taisouObjIndex;
|
||||
/* 0x289 */ s8 hakuginDemoObjIndex;
|
||||
/* 0x28C */ s32 msgScriptResumePos;
|
||||
/* 0x290 */ Vec3f headPos;
|
||||
/* 0x29C */ Vec3f bodyPos;
|
||||
/* 0x2A8 */ Vec3s headRot;
|
||||
/* 0x2AE */ Vec3s bodyRot;
|
||||
/* 0x2B4 */ Vec3s jointTable[GORON_LIMB_MAX];
|
||||
/* 0x320 */ Vec3s morphTable[GORON_LIMB_MAX];
|
||||
/* 0x38C */ Actor* attentionTarget;
|
||||
/* 0x390 */ u16 actionFlags;
|
||||
/* 0x392 */ u16 lastTextId;
|
||||
/* 0x394 */ u8 springArrivalCueId;
|
||||
/* 0x398 */ f32 curAnimPlaySpeed;
|
||||
/* 0x39C */ f32 iceBlockScale;
|
||||
/* 0x3A0 */ f32 iceBlockAlpha;
|
||||
/* 0x3A4 */ f32 scaleFactor;
|
||||
/* 0x3A8 */ f32 scaleFactorPoundDistortion;
|
||||
/* 0x3AC */ UNK_TYPE1 unk3AC[0x2];
|
||||
/* 0x3AE */ s16 unk_3AE;
|
||||
/* 0x3B0 */ s16 unk_3B0;
|
||||
/* 0x3B2 */ s16 unk_3B2;
|
||||
/* 0x3B4 */ s16 unk_3B4;
|
||||
/* 0x3B6 */ s16 unk_3B6;
|
||||
/* 0x3AE */ union {
|
||||
s16 snorePhase; // Used whilst a Goron is sleeping, +0x400 at a time
|
||||
s16 elapsedHangtime; // Hangtime at the top of a pound.
|
||||
};
|
||||
/* 0x3B0 */ s16 headRotZ;
|
||||
/* 0x3B2 */ s16 headRotY;
|
||||
/* 0x3B4 */ s16 bodyRotZ;
|
||||
/* 0x3B6 */ s16 bodyRotY;
|
||||
/* 0x3B8 */ s16 csId;
|
||||
/* 0x3BA */ s16 unk_3BA;
|
||||
/* 0x3BC */ s16 unk_3BC;
|
||||
/* 0x3BE */ s16 unk_3BE;
|
||||
/* 0x3C0 */ s16 unk_3C0;
|
||||
/* 0x3C2 */ s16 unk_3C2;
|
||||
/* 0x3C4 */ s16 unk_3C4;
|
||||
/* 0x3C6 */ s16 unk_3C6;
|
||||
/* 0x3C8 */ s16 unk_3C8[3];
|
||||
/* 0x3CE */ s16 unk_3CE[3];
|
||||
/* 0x3D4 */ s16 unk_3D4;
|
||||
/* 0x3D8 */ void* unk_3D8;
|
||||
/* 0x3DC */ s32 unk_3DC;
|
||||
/* 0x3BA */ s16 loseAttentionTimer;
|
||||
/* 0x3BC */ s16 blinkTimer;
|
||||
/* 0x3BE */ s16 eyeTexIndex;
|
||||
/* 0x3C0 */ s16 cutsceneState;
|
||||
/* 0x3C2 */ s16 cutsceneDelayTimer;
|
||||
/* 0x3C4 */ s16 gatekeeperAnimState;
|
||||
/* 0x3C6 */ s16 harmlessTimer;
|
||||
/* 0x3C8 */ s16 limbRotTableZ[3];
|
||||
/* 0x3CE */ s16 limbRotTableY[3];
|
||||
/* 0x3D4 */ s16 surprisePhase;
|
||||
/* 0x3D8 */ MsgEventFunc msgEventFunc;
|
||||
/* 0x3DC */ s32 curAnimIndex;
|
||||
/* 0x3E0 */ UNK_TYPE1 unk3E0[0x4];
|
||||
/* 0x3E4 */ s32 unk_3E4;
|
||||
/* 0x3E8 */ s32 unk_3E8;
|
||||
/* 0x3EC */ s32 unk_3EC;
|
||||
/* 0x3F0 */ s32 unk_3F0;
|
||||
/* 0x3F4 */ s32 unk_3F4;
|
||||
/* 0x3F8 */ EnGoStruct unk_3F8[32];
|
||||
/* 0x3E4 */ s32 indexPathPoint;
|
||||
/* 0x3E8 */ s32 indexEffect;
|
||||
/* 0x3EC */ s32 sleepState;
|
||||
/* 0x3F0 */ s32 springArrivalCutsceneActive;
|
||||
/* 0x3F4 */ s32 changedText;
|
||||
/* 0x3F8 */ EnGoEffect effectTable[ENGO_EFFECT_COUNT];
|
||||
} EnGo; // size = 0xB78
|
||||
|
||||
#endif // Z_EN_GO_H
|
||||
|
|
|
@ -171,12 +171,12 @@ static AnimationInfoS sAnimationInfo[] = {
|
|||
{ &gGoronUnrollAnim, -2.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &gGoronShiverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronShiverAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_taisou_Anim_004DD4, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_00283C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_007764, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_005790, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsDoubleArmSideBendAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsShakeLimbsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsSingleArmSideBendAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronAthleticsHamstringStretchStandingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gGoronCoverEarsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_taisou_Anim_002C48, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gGoronAthleticsCheerAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gGoronStandingHandTappingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gGoronSleepyAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &gGoronStandingIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -8 },
|
||||
|
@ -235,7 +235,7 @@ u16 EnSGoro_ShrineGoron_NextTextId(EnSGoro* this, PlayState* play) {
|
|||
|
||||
switch (EN_S_GORO_GET_MAIN_TYPE(&this->actor)) {
|
||||
case EN_S_GORO_TYPE_SHRINE_WINTER_A:
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
if (player->transformation == PLAYER_FORM_GORON) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_36_02)) {
|
||||
switch (this->textId) {
|
||||
|
@ -302,7 +302,7 @@ u16 EnSGoro_ShrineGoron_NextTextId(EnSGoro* this, PlayState* play) {
|
|||
break;
|
||||
|
||||
case EN_S_GORO_TYPE_SHRINE_WINTER_B:
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
if (player->transformation == PLAYER_FORM_GORON) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_36_40)) {
|
||||
switch (this->textId) {
|
||||
|
@ -367,7 +367,7 @@ u16 EnSGoro_ShrineGoron_NextTextId(EnSGoro* this, PlayState* play) {
|
|||
break;
|
||||
|
||||
case EN_S_GORO_TYPE_SHRINE_WINTER_C:
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
if (player->transformation == PLAYER_FORM_GORON) {
|
||||
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_37_02)) {
|
||||
switch (this->textId) {
|
||||
|
@ -771,7 +771,7 @@ void EnSGoro_UpdateSleeping(EnSGoro* this, PlayState* play) {
|
|||
Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_SNORE1);
|
||||
}
|
||||
}
|
||||
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
this->actionFlags &= ~EN_S_GORO_ACTIONFLAG_SUPPRESS_SNORE;
|
||||
}
|
||||
|
||||
|
@ -842,7 +842,7 @@ s32 EnSGoro_CheckGKBehavior(EnSGoro* this, PlayState* play) {
|
|||
return false;
|
||||
}
|
||||
if ((!(this->actionFlags & EN_S_GORO_ACTIONFLAG_GKQUIET_ACKNOWLEDGED)) &&
|
||||
((((EnGk*)this->otherGoron)->unk_1E4 & 0x80) || CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04))) {
|
||||
((((EnGk*)this->otherGoron)->unk_1E4 & 0x80) || CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON))) {
|
||||
|
||||
this->actionFlags |= EN_S_GORO_ACTIONFLAG_GKQUIET_ACKNOWLEDGED;
|
||||
this->animInfoIndex = EN_S_GORO_ANIM_ROLLUP;
|
||||
|
@ -1026,7 +1026,7 @@ void EnSGoro_SetupAction(EnSGoro* this, PlayState* play) {
|
|||
if (Object_IsLoaded(&play->objectCtx, this->loadedObjIndex)) {
|
||||
this->actionFlags = 0;
|
||||
if (EN_S_GORO_OFTYPE_WSHRINE) {
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_22_04)) {
|
||||
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON)) {
|
||||
this->actionFlags |= EN_S_GORO_ACTIONFLAG_GKQUIET_ACKNOWLEDGED;
|
||||
this->actionFlags |= EN_S_GORO_ACTIONFLAG_EYESOPEN;
|
||||
this->animInfoIndex = EN_S_GORO_ANIM_SHIVER_A;
|
||||
|
|
|
@ -9675,76 +9675,76 @@
|
|||
0x80A10368:("EnSob1_ZoraShopkeeper_Draw",),
|
||||
0x80A104E4:("EnSob1_GoronShopkeeper_Draw",),
|
||||
0x80A10608:("EnSob1_BombShopkeeper_Draw",),
|
||||
0x80A10FD0:("func_80A10FD0",),
|
||||
0x80A11144:("func_80A11144",),
|
||||
0x80A1143C:("func_80A1143C",),
|
||||
0x80A115B4:("func_80A115B4",),
|
||||
0x80A118F8:("func_80A118F8",),
|
||||
0x80A11BF8:("func_80A11BF8",),
|
||||
0x80A11EC0:("func_80A11EC0",),
|
||||
0x80A1203C:("func_80A1203C",),
|
||||
0x80A1213C:("func_80A1213C",),
|
||||
0x80A121F4:("func_80A121F4",),
|
||||
0x80A1222C:("func_80A1222C",),
|
||||
0x80A122EC:("func_80A122EC",),
|
||||
0x80A123A0:("func_80A123A0",),
|
||||
0x80A124A0:("func_80A124A0",),
|
||||
0x80A124FC:("func_80A124FC",),
|
||||
0x80A125BC:("func_80A125BC",),
|
||||
0x80A12660:("func_80A12660",),
|
||||
0x80A126BC:("func_80A126BC",),
|
||||
0x80A12774:("func_80A12774",),
|
||||
0x80A12868:("func_80A12868",),
|
||||
0x80A12954:("func_80A12954",),
|
||||
0x80A12A64:("func_80A12A64",),
|
||||
0x80A12B78:("func_80A12B78",),
|
||||
0x80A12C48:("func_80A12C48",),
|
||||
0x80A12D6C:("func_80A12D6C",),
|
||||
0x80A12DF4:("func_80A12DF4",),
|
||||
0x80A12E80:("func_80A12E80",),
|
||||
0x80A12FE8:("func_80A12FE8",),
|
||||
0x80A131F8:("func_80A131F8",),
|
||||
0x80A132C8:("func_80A132C8",),
|
||||
0x80A133A8:("func_80A133A8",),
|
||||
0x80A13400:("func_80A13400",),
|
||||
0x80A134B0:("func_80A134B0",),
|
||||
0x80A134F4:("func_80A134F4",),
|
||||
0x80A13564:("func_80A13564",),
|
||||
0x80A10FD0:("EnGo_InitSteam",),
|
||||
0x80A11144:("EnGo_DrawSteam",),
|
||||
0x80A1143C:("EnGo_InitDust",),
|
||||
0x80A115B4:("EnGo_DrawDust",),
|
||||
0x80A118F8:("EnGo_InitSnow",),
|
||||
0x80A11BF8:("EnGo_UpdateSnow",),
|
||||
0x80A11EC0:("EnGo_DrawSnow",),
|
||||
0x80A1203C:("EnGo_UpdateEffects",),
|
||||
0x80A1213C:("EnGo_DrawEffects",),
|
||||
0x80A121F4:("EnGo_CanSnowballHurtPlayer",),
|
||||
0x80A1222C:("EnGo_IsFallingAsleep",),
|
||||
0x80A122EC:("EnGo_UpdateFocus",),
|
||||
0x80A123A0:("EnGo_UpdateSnowballCollider",),
|
||||
0x80A124A0:("EnGo_UpdateMedigoronCollider",),
|
||||
0x80A124FC:("EnGo_UpdateRolledUpCollider",),
|
||||
0x80A125BC:("EnGo_UpdateFrozenCollider",),
|
||||
0x80A12660:("EnGo_UpdateStandingCollider",),
|
||||
0x80A126BC:("EnGo_UpdateCollider",),
|
||||
0x80A12774:("EnGo_UpdateTalking",),
|
||||
0x80A12868:("EnGo_DetectCollisions",),
|
||||
0x80A12954:("EnGo_UpdateSpringArrivalCutscene",),
|
||||
0x80A12A64:("EnGo_UpdateAnimationToCurrent",),
|
||||
0x80A12B78:("EnGo_UpdateSfx",),
|
||||
0x80A12C48:("EnGo_ChangeAnim",),
|
||||
0x80A12D6C:("EnGo_UpdateEyes",),
|
||||
0x80A12DF4:("EnGo_UpdateShiverSurprisedAnimation",),
|
||||
0x80A12E80:("EnGo_UpdateGraveyardAttentionTargetAndReactions",),
|
||||
0x80A12FE8:("EnGo_UpdateRotationToTarget",),
|
||||
0x80A131F8:("EnGo_UpdateAttentionTargetAndReactions",),
|
||||
0x80A132C8:("EnGo_GravemakerIdle",),
|
||||
0x80A133A8:("EnGo_FrozenIdle",),
|
||||
0x80A13400:("EnGo_FindGravemaker",),
|
||||
0x80A134B0:("EnGo_UpdateMedigoronColliderRadius",),
|
||||
0x80A134F4:("EnGo_ChangeCutscene",),
|
||||
0x80A13564:("EnGo_HandleGatekeeperPoundCutscene",),
|
||||
0x80A136B8:("EnGo_RequestQuake",),
|
||||
0x80A13728:("func_80A13728",),
|
||||
0x80A137C0:("func_80A137C0",),
|
||||
0x80A139E4:("func_80A139E4",),
|
||||
0x80A13B1C:("func_80A13B1C",),
|
||||
0x80A13E80:("func_80A13E80",),
|
||||
0x80A14018:("func_80A14018",),
|
||||
0x80A14104:("func_80A14104",),
|
||||
0x80A141D4:("func_80A141D4",),
|
||||
0x80A1428C:("func_80A1428C",),
|
||||
0x80A14324:("func_80A14324",),
|
||||
0x80A143A8:("func_80A143A8",),
|
||||
0x80A14430:("func_80A14430",),
|
||||
0x80A1449C:("func_80A1449C",),
|
||||
0x80A144F4:("func_80A144F4",),
|
||||
0x80A145AC:("func_80A145AC",),
|
||||
0x80A14668:("func_80A14668",),
|
||||
0x80A146CC:("func_80A146CC",),
|
||||
0x80A14798:("func_80A14798",),
|
||||
0x80A149B0:("func_80A149B0",),
|
||||
0x80A14B30:("func_80A14B30",),
|
||||
0x80A14E14:("func_80A14E14",),
|
||||
0x80A14E74:("func_80A14E74",),
|
||||
0x80A14EB0:("func_80A14EB0",),
|
||||
0x80A14FC8:("func_80A14FC8",),
|
||||
0x80A153FC:("func_80A153FC",),
|
||||
0x80A15684:("func_80A15684",),
|
||||
0x80A157C4:("func_80A157C4",),
|
||||
0x80A13728:("EnGo_CreateGatekeeperPoundEffects",),
|
||||
0x80A137C0:("EnGo_DrawIceBlockWhenFrozen",),
|
||||
0x80A139E4:("EnGo_MakeSteam",),
|
||||
0x80A13B1C:("EnGo_HandleOpenShrineCutscene",),
|
||||
0x80A13E80:("EnGo_HandleGivePowderKegCutscene",),
|
||||
0x80A14018:("EnGo_ChangeToStretchingAnimation",),
|
||||
0x80A14104:("EnGo_ChangeToSpectatingAnimation",),
|
||||
0x80A141D4:("EnGo_ChangeToFrozenAnimation",),
|
||||
0x80A1428C:("EnGo_ChangeToSnowballAnimation",),
|
||||
0x80A14324:("EnGo_ChangeToCoveringEarsAnimation",),
|
||||
0x80A143A8:("EnGo_ChangeToShiveringAnimation",),
|
||||
0x80A14430:("EnGo_SetupAthletic",),
|
||||
0x80A1449C:("EnGo_SetupSpectator",),
|
||||
0x80A144F4:("EnGo_SetupGatekeeper",),
|
||||
0x80A145AC:("EnGo_SetupGraveyardGoron",),
|
||||
0x80A14668:("EnGo_SetupShrineGoron",),
|
||||
0x80A146CC:("EnGo_SetupMedigoron",),
|
||||
0x80A14798:("EnGo_SetupInitialAction",),
|
||||
0x80A149B0:("EnGo_Idle",),
|
||||
0x80A14B30:("EnGo_Sleep",),
|
||||
0x80A14E14:("EnGo_Frozen",),
|
||||
0x80A14E74:("EnGo_AwaitThaw",),
|
||||
0x80A14EB0:("EnGo_Thaw",),
|
||||
0x80A14FC8:("EnGo_HandleSpringArrivalCutscene",),
|
||||
0x80A153FC:("EnGo_Snowball",),
|
||||
0x80A15684:("EnGo_GetMsgEventScript",),
|
||||
0x80A157C4:("EnGo_Talk",),
|
||||
0x80A1590C:("EnGo_Init",),
|
||||
0x80A15960:("EnGo_Destroy",),
|
||||
0x80A159B0:("EnGo_Update",),
|
||||
0x80A15B80:("func_80A15B80",),
|
||||
0x80A15B80:("EnGo_Draw_NoSkeleton",),
|
||||
0x80A15D04:("EnGo_OverrideLimbDraw",),
|
||||
0x80A15E38:("EnGo_TransfromLimbDraw",),
|
||||
0x80A15FEC:("func_80A15FEC",),
|
||||
0x80A15FEC:("EnGo_Draw",),
|
||||
0x80A16D40:("EnRaf_ClearPixelTeeth",),
|
||||
0x80A16D6C:("EnRaf_ClearPixelPetal",),
|
||||
0x80A16D90:("EnRaf_Init",),
|
||||
|
|
|
@ -155,7 +155,7 @@ weekEventReg = {
|
|||
(18 << 8) | 0x10: "WEEKEVENTREG_18_10",
|
||||
(18 << 8) | 0x20: "WEEKEVENTREG_18_20",
|
||||
(18 << 8) | 0x40: "WEEKEVENTREG_18_40",
|
||||
(18 << 8) | 0x80: "WEEKEVENTREG_18_80",
|
||||
(18 << 8) | 0x80: "WEEKEVENTREG_HAS_POWDERKEG_PRIVILEGES",
|
||||
(19 << 8) | 0x01: "WEEKEVENTREG_19_01",
|
||||
(19 << 8) | 0x02: "WEEKEVENTREG_19_02",
|
||||
(19 << 8) | 0x04: "WEEKEVENTREG_19_04",
|
||||
|
@ -174,15 +174,15 @@ weekEventReg = {
|
|||
(20 << 8) | 0x80: "WEEKEVENTREG_20_80",
|
||||
(21 << 8) | 0x01: "WEEKEVENTREG_21_01",
|
||||
(21 << 8) | 0x02: "WEEKEVENTREG_21_02",
|
||||
(21 << 8) | 0x04: "WEEKEVENTREG_21_04",
|
||||
(21 << 8) | 0x08: "WEEKEVENTREG_21_08",
|
||||
(21 << 8) | 0x04: "WEEKEVENTREG_TALKED_GORON_GRAVEMAKER_AS_GORON",
|
||||
(21 << 8) | 0x08: "WEEKEVENTREG_TALKED_THAWED_GRAVEYARD_GORON",
|
||||
(21 << 8) | 0x10: "WEEKEVENTREG_21_10",
|
||||
(21 << 8) | 0x20: "WEEKEVENTREG_21_20",
|
||||
(21 << 8) | 0x40: "WEEKEVENTREG_21_40",
|
||||
(21 << 8) | 0x80: "WEEKEVENTREG_21_80",
|
||||
(22 << 8) | 0x01: "WEEKEVENTREG_22_01",
|
||||
(22 << 8) | 0x02: "WEEKEVENTREG_22_02",
|
||||
(22 << 8) | 0x04: "WEEKEVENTREG_22_04",
|
||||
(22 << 8) | 0x04: "WEEKEVENTREG_CALMED_GORON_ELDERS_SON",
|
||||
(22 << 8) | 0x08: "WEEKEVENTREG_22_08",
|
||||
(22 << 8) | 0x10: "WEEKEVENTREG_22_10",
|
||||
(22 << 8) | 0x20: "WEEKEVENTREG_22_20",
|
||||
|
@ -714,11 +714,11 @@ weekEventReg = {
|
|||
(88 << 8) | 0x08: "WEEKEVENTREG_88_08",
|
||||
(88 << 8) | 0x10: "WEEKEVENTREG_88_10",
|
||||
(88 << 8) | 0x20: "WEEKEVENTREG_88_20",
|
||||
(88 << 8) | 0x40: "WEEKEVENTREG_88_40",
|
||||
(88 << 8) | 0x80: "WEEKEVENTREG_88_80",
|
||||
(89 << 8) | 0x01: "WEEKEVENTREG_89_01",
|
||||
(89 << 8) | 0x02: "WEEKEVENTREG_89_02",
|
||||
(89 << 8) | 0x04: "WEEKEVENTREG_89_04",
|
||||
(88 << 8) | 0x40: "WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE",
|
||||
(88 << 8) | 0x80: "WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_HUMAN",
|
||||
(89 << 8) | 0x01: "WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_DEKU",
|
||||
(89 << 8) | 0x02: "WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_ZORA",
|
||||
(89 << 8) | 0x04: "WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_GORON",
|
||||
(89 << 8) | 0x08: "WEEKEVENTREG_89_08",
|
||||
(89 << 8) | 0x10: "WEEKEVENTREG_89_10",
|
||||
(89 << 8) | 0x20: "WEEKEVENTREG_89_20",
|
||||
|
|
Loading…
Reference in New Issue