mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-27 07:07:09 +00:00
Document Talon (En_Ta) (#1348)
* Rename flags related to Talon * Document Talon (ovl_En_Ta) * Formatting * ovl_En_Ta review fixes * Add horse eventinf flag usage comments * Rename TALON_STATE_FLAG_3 * Review fixes * More review fixes * Fix super-cucco zero-gravity time comment * Fix formatting * Talon review comment fixes * Review comment fixes * Rename waking up action funcs
This commit is contained in:
parent
9675051377
commit
b806ac0191
26 changed files with 642 additions and 500 deletions
|
@ -293,11 +293,11 @@ typedef enum {
|
|||
#define EVENTCHKINF_10 0x10
|
||||
#define EVENTCHKINF_11 0x11
|
||||
#define EVENTCHKINF_12 0x12
|
||||
#define EVENTCHKINF_13 0x13
|
||||
#define EVENTCHKINF_14 0x14
|
||||
#define EVENTCHKINF_TALON_WOKEN_IN_CASTLE 0x13
|
||||
#define EVENTCHKINF_TALON_RETURNED_FROM_CASTLE 0x14
|
||||
#define EVENTCHKINF_15 0x15
|
||||
#define EVENTCHKINF_16 0x16
|
||||
#define EVENTCHKINF_18 0x18
|
||||
#define EVENTCHKINF_EPONA_OBTAINED 0x18
|
||||
#define EVENTCHKINF_1B 0x1B
|
||||
#define EVENTCHKINF_1C 0x1C
|
||||
#define EVENTCHKINF_1D 0x1D
|
||||
|
@ -354,13 +354,13 @@ typedef enum {
|
|||
#define EVENTCHKINF_67 0x67
|
||||
#define EVENTCHKINF_68 0x68
|
||||
#define EVENTCHKINF_69 0x69
|
||||
#define EVENTCHKINF_6A 0x6A
|
||||
#define EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO 0x6A
|
||||
|
||||
// 0x6B
|
||||
#define EVENTCHKINF_6B_INDEX 6
|
||||
#define EVENTCHKINF_6B_SHIFT 11
|
||||
#define EVENTCHKINF_6B_MASK (1 << EVENTCHKINF_6B_SHIFT)
|
||||
#define EVENTCHKINF_6B ((EVENTCHKINF_6B_INDEX << 4) | EVENTCHKINF_6B_SHIFT)
|
||||
#define EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_INDEX 6
|
||||
#define EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_SHIFT 11
|
||||
#define EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_MASK (1 << EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_SHIFT)
|
||||
#define EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO ((EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_INDEX << 4) | EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_SHIFT)
|
||||
|
||||
#define EVENTCHKINF_6E 0x6E
|
||||
#define EVENTCHKINF_6F 0x6F
|
||||
|
@ -473,7 +473,7 @@ typedef enum {
|
|||
* SaveContext.itemGetInf
|
||||
*/
|
||||
|
||||
#define ITEMGETINF_02 0x02
|
||||
#define ITEMGETINF_TALON_BOTTLE 0x02
|
||||
#define ITEMGETINF_03 0x03
|
||||
#define ITEMGETINF_04 0x04
|
||||
#define ITEMGETINF_05 0x05
|
||||
|
@ -563,7 +563,7 @@ typedef enum {
|
|||
#define INFTABLE_71 0x71
|
||||
#define INFTABLE_76 0x76
|
||||
#define INFTABLE_77 0x77
|
||||
#define INFTABLE_7E 0x7E
|
||||
#define INFTABLE_TALKED_TO_TALON_IN_RANCH_HOUSE 0x7E
|
||||
#define INFTABLE_84 0x84
|
||||
#define INFTABLE_85 0x85
|
||||
#define INFTABLE_8B 0x8B
|
||||
|
@ -709,8 +709,13 @@ typedef enum {
|
|||
#define EVENTINF_HORSES_0F_MASK (1 << EVENTINF_HORSES_0F_SHIFT)
|
||||
#define EVENTINF_HORSES_05 ((EVENTINF_HORSES_INDEX << 4) | EVENTINF_HORSES_05_SHIFT)
|
||||
#define EVENTINF_HORSES_06 ((EVENTINF_HORSES_INDEX << 4) | EVENTINF_HORSES_06_SHIFT)
|
||||
// Used in z_en_ta (Talon) to store Cucco game winning status
|
||||
// and in z_en_ge1 (Gerudo) to store archery in-progress status
|
||||
#define EVENTINF_HORSES_08 ((EVENTINF_HORSES_INDEX << 4) | EVENTINF_HORSES_08_SHIFT)
|
||||
#define EVENTINF_CUCCO_GAME_WON EVENTINF_HORSES_08
|
||||
// Used in z_en_ta (Talon) and z_en_ma3 (Malon) to store minigame finishing status
|
||||
#define EVENTINF_HORSES_0A ((EVENTINF_HORSES_INDEX << 4) | EVENTINF_HORSES_0A_SHIFT)
|
||||
#define EVENTINF_CUCCO_GAME_FINISHED EVENTINF_HORSES_0A
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EVENTINF_HORSES_STATE_0,
|
||||
|
|
|
@ -4602,7 +4602,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
if (Flags_GetEventChkInf(EVENTCHKINF_09) && Flags_GetEventChkInf(EVENTCHKINF_25) &&
|
||||
Flags_GetEventChkInf(EVENTCHKINF_37)) {
|
||||
retTextId = 0x7047;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_14)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
retTextId = 0x701A;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_11)) {
|
||||
if (Flags_GetInfTable(INFTABLE_C6)) {
|
||||
|
@ -4911,9 +4911,10 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
retTextId = 0x2049;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_15)) {
|
||||
retTextId = 0x2048;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_14)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
retTextId = 0x2047;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_12) && !Flags_GetEventChkInf(EVENTCHKINF_14)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_12) &&
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
retTextId = 0x2044;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_10)) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_11)) {
|
||||
|
@ -4927,7 +4928,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
break;
|
||||
case 72:
|
||||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_14)) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
retTextId = 0x2040;
|
||||
} else if (Flags_GetInfTable(INFTABLE_94)) {
|
||||
retTextId = 0x2040;
|
||||
|
@ -4935,7 +4936,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
retTextId = 0x203F;
|
||||
}
|
||||
} else {
|
||||
if (!Flags_GetEventChkInf(EVENTCHKINF_18)) {
|
||||
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
if (!IS_DAY) {
|
||||
retTextId = 0x204E;
|
||||
} else if (Flags_GetInfTable(INFTABLE_9A)) {
|
||||
|
|
|
@ -61,10 +61,10 @@ EntranceCutscene sEntranceCutsceneTable[] = {
|
|||
{ ENTR_SPOT18_0, 2, EVENTCHKINF_A6, gGoronCityIntroCs },
|
||||
{ ENTR_TOKINOMA_0, 2, EVENTCHKINF_A7, gTempleOfTimeIntroCs },
|
||||
{ ENTR_YDAN_0, 2, EVENTCHKINF_A8, gDekuTreeIntroCs },
|
||||
{ ENTR_SPOT00_11, 0, EVENTCHKINF_18, gHyruleFieldSouthEponaJumpCs },
|
||||
{ ENTR_SPOT00_13, 0, EVENTCHKINF_18, gHyruleFieldEastEponaJumpCs },
|
||||
{ ENTR_SPOT00_12, 0, EVENTCHKINF_18, gHyruleFieldWestEponaJumpCs },
|
||||
{ ENTR_SPOT00_15, 0, EVENTCHKINF_18, gHyruleFieldGateEponaJumpCs },
|
||||
{ ENTR_SPOT00_11, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldSouthEponaJumpCs },
|
||||
{ ENTR_SPOT00_13, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldEastEponaJumpCs },
|
||||
{ ENTR_SPOT00_12, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldWestEponaJumpCs },
|
||||
{ ENTR_SPOT00_15, 0, EVENTCHKINF_EPONA_OBTAINED, gHyruleFieldGateEponaJumpCs },
|
||||
{ ENTR_SPOT00_16, 1, EVENTCHKINF_A9, gHyruleFieldGetOoTCs },
|
||||
{ ENTR_SPOT06_0, 2, EVENTCHKINF_B1, gLakeHyliaIntroCs },
|
||||
{ ENTR_SPOT09_0, 2, EVENTCHKINF_B2, gGerudoValleyIntroCs },
|
||||
|
@ -2061,7 +2061,7 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) {
|
|||
}
|
||||
|
||||
if ((gSaveContext.entranceIndex == entranceCutscene->entrance) &&
|
||||
(!Flags_GetEventChkInf(entranceCutscene->flag) || (entranceCutscene->flag == EVENTCHKINF_18)) &&
|
||||
(!Flags_GetEventChkInf(entranceCutscene->flag) || (entranceCutscene->flag == EVENTCHKINF_EPONA_OBTAINED)) &&
|
||||
(gSaveContext.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.linkAge == requiredAge) &&
|
||||
(gSaveContext.respawnFlag <= 0)) {
|
||||
Flags_SetEventChkInf(entranceCutscene->flag);
|
||||
|
|
|
@ -48,7 +48,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
{ SCENE_SPOT20, 928, 0, -2280, 0, 2 },
|
||||
};
|
||||
|
||||
if ((AREG(6) != 0) && (Flags_GetEventChkInf(EVENTCHKINF_18) || (DREG(1) != 0))) {
|
||||
if ((AREG(6) != 0) && (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (DREG(1) != 0))) {
|
||||
player->rideActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, player->actor.world.pos.x,
|
||||
player->actor.world.pos.y, player->actor.world.pos.z, player->actor.shape.rot.x,
|
||||
player->actor.shape.rot.y, player->actor.shape.rot.z, 9);
|
||||
|
@ -67,15 +67,15 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
gSaveContext.minigameState = 0;
|
||||
horseActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 3586.0f, 1413.0f, -402.0f, 0, 0x4000, 0, 1);
|
||||
horseActor->room = -1;
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_SPOT20_7) && GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
} else if ((gSaveContext.entranceIndex == ENTR_SPOT20_7) && GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
Actor* horseActor =
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, -25.0f, 0.0f, -1600.0f, 0, -0x4000, 0, 1);
|
||||
ASSERT(horseActor != NULL, "horse_actor != NULL", "../z_horse.c", 389);
|
||||
} else if ((play->sceneId == gSaveContext.horseData.sceneId) &&
|
||||
(Flags_GetEventChkInf(EVENTCHKINF_18) || DREG(1) != 0)) {
|
||||
(Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || DREG(1) != 0)) {
|
||||
// "Set by existence of horse %d %d %d"
|
||||
osSyncPrintf("馬存在によるセット %d %d %d\n", gSaveContext.horseData.sceneId,
|
||||
Flags_GetEventChkInf(EVENTCHKINF_18), DREG(1));
|
||||
Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED), DREG(1));
|
||||
|
||||
if (func_8006CFC0(gSaveContext.horseData.sceneId)) {
|
||||
Actor* horseActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, gSaveContext.horseData.pos.x,
|
||||
|
@ -92,10 +92,10 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
osSyncPrintf(VT_RST);
|
||||
func_8006D074(play);
|
||||
}
|
||||
} else if ((play->sceneId == SCENE_SPOT20) && !Flags_GetEventChkInf(EVENTCHKINF_18) && (DREG(1) == 0)) {
|
||||
} else if ((play->sceneId == SCENE_SPOT20) && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0)) {
|
||||
Actor* horseActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 0.0f, 0.0f, -500.0f, 0, 0, 0, 1);
|
||||
ASSERT(horseActor != NULL, "horse_actor != NULL", "../z_horse.c", 443);
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_18) || (DREG(1) != 0)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (DREG(1) != 0)) {
|
||||
for (i = 0; i < ARRAY_COUNT(horseSpawns); i++) {
|
||||
HorseSpawn* horseSpawn = &horseSpawns[i];
|
||||
if (horseSpawn->sceneId == play->sceneId) {
|
||||
|
@ -110,7 +110,7 @@ void func_8006D0EC(PlayState* play, Player* player) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
} else if (!Flags_GetEventChkInf(EVENTCHKINF_18)) {
|
||||
} else if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
if ((DREG(1) == 0) && (play->sceneId == SCENE_SOUKO) && !IS_DAY) {
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 0.0f, 0.0f, -60.0f, 0, 0x7360, 0, 1);
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ void func_8006D684(PlayState* play, Player* player) {
|
|||
func_8002DE74(play, player);
|
||||
gSaveContext.horseData.sceneId = play->sceneId;
|
||||
} else if ((play->sceneId == SCENE_SPOT20) && (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6) &&
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_18) && (DREG(1) == 0)) {
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0)) {
|
||||
player->rideActor =
|
||||
Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, 894.0f, 0.0f, -2084.0f, 0, -0x7FFF, 0, 5);
|
||||
ASSERT(player->rideActor != NULL, "player->ride.actor != NULL", "../z_horse.c", 582);
|
||||
|
@ -252,7 +252,7 @@ void func_8006DC68(PlayState* play, Player* player) {
|
|||
gSaveContext.entranceIndex == ENTR_SPOT00_13 || gSaveContext.entranceIndex == ENTR_SPOT00_15) &&
|
||||
(gSaveContext.respawnFlag == 0)) ||
|
||||
((play->sceneId == SCENE_SPOT20) && (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6) &&
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_18) && (DREG(1) == 0))) {
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0))) {
|
||||
func_8006D684(play, player);
|
||||
} else {
|
||||
func_8006D0EC(play, player);
|
||||
|
|
|
@ -5,7 +5,7 @@ ElfMessage gOverworldNaviMsgs[] = {
|
|||
ELF_MSG_FLAG(CHECK, 0x40, false, EVENTCHKINF_05),
|
||||
ELF_MSG_FLAG(CHECK, 0x41, false, EVENTCHKINF_09),
|
||||
ELF_MSG_FLAG(CHECK, 0x42, false, EVENTCHKINF_12),
|
||||
ELF_MSG_FLAG(CHECK, 0x43, false, EVENTCHKINF_14),
|
||||
ELF_MSG_FLAG(CHECK, 0x43, false, EVENTCHKINF_TALON_RETURNED_FROM_CASTLE),
|
||||
ELF_MSG_FLAG(CHECK, 0x44, false, EVENTCHKINF_40),
|
||||
ELF_MSG_SONG(CHECK, 0x45, false, ITEM_SONG_SARIA),
|
||||
ELF_MSG_STRENGTH_UPG(CHECK, 0x46, true, 0),
|
||||
|
|
|
@ -45,7 +45,7 @@ void BgInGate_Init(Actor* thisx, PlayState* play) {
|
|||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
if ((play->sceneId != SCENE_SPOT20 || !LINK_IS_ADULT) ||
|
||||
(GET_EVENTCHKINF(EVENTCHKINF_18) && (gSaveContext.cutsceneIndex != 0xFFF0))) {
|
||||
(GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.cutsceneIndex != 0xFFF0))) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ s32 func_808B3AAC(BgSpot15Rrbox* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (rotY < 0x2000 && rotY > -0x6000) {
|
||||
return GET_EVENTCHKINF(EVENTCHKINF_14);
|
||||
return GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ void BgUmaJump_Init(Actor* thisx, PlayState* play) {
|
|||
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
if (this->dyna.actor.params == 1) {
|
||||
if (!Flags_GetEventChkInf(EVENTCHKINF_18) && (DREG(1) == 0)) {
|
||||
if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && (DREG(1) == 0)) {
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -197,7 +197,7 @@ void EnDoor_SetupType(EnDoor* this, PlayState* play) {
|
|||
}
|
||||
} else if (doorType == DOOR_CHECKABLE) {
|
||||
this->actor.textId = ENDOOR_GET_CHECKABLE_TEXT_ID(&this->actor) + 0x0200;
|
||||
if (this->actor.textId == 0x0229 && !GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if (this->actor.textId == 0x0229 && !GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
// Talon's house door. If Talon has not been woken up at Hyrule Castle
|
||||
// this door should be openable at any time of day.
|
||||
// Note that there is no check for time of day, as the night layers for Lon Lon
|
||||
|
|
|
@ -316,7 +316,7 @@ void EnGirlA_SetupAction(EnGirlA* this, EnGirlAActionFunc func) {
|
|||
s32 EnGirlA_TryChangeShopItem(EnGirlA* this) {
|
||||
switch (this->actor.params) {
|
||||
case SI_MILK_BOTTLE:
|
||||
if (GET_ITEMGETINF(ITEMGETINF_02)) {
|
||||
if (GET_ITEMGETINF(ITEMGETINF_TALON_BOTTLE)) {
|
||||
this->actor.params = SI_RECOVERY_HEART;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -682,8 +682,9 @@ s32 EnHorse_Spawn(EnHorse* this, PlayState* play) {
|
|||
player = GET_PLAYER(play);
|
||||
if (play->sceneId != SCENE_SPOT20 ||
|
||||
//! Same flag checked twice
|
||||
(Flags_GetEventChkInf(EVENTCHKINF_18) &&
|
||||
(GET_EVENTINF_HORSES_STATE() != EVENTINF_HORSES_STATE_6 || Flags_GetEventChkInf(EVENTCHKINF_18))) ||
|
||||
(Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) &&
|
||||
(GET_EVENTINF_HORSES_STATE() != EVENTINF_HORSES_STATE_6 ||
|
||||
Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED))) ||
|
||||
// always load two spawns inside lon lon
|
||||
((sHorseSpawns[i].pos.x == 856 && sHorseSpawns[i].pos.y == 0 && sHorseSpawns[i].pos.z == -918) ||
|
||||
(sHorseSpawns[i].pos.x == -1003 && sHorseSpawns[i].pos.y == 0 && sHorseSpawns[i].pos.z == -755))) {
|
||||
|
@ -794,7 +795,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
|
|||
this->stateFlags = ENHORSE_FLAG_19 | ENHORSE_CANT_JUMP | ENHORSE_UNRIDEABLE;
|
||||
} else if (this->actor.params == 6) {
|
||||
this->stateFlags = ENHORSE_FLAG_19 | ENHORSE_CANT_JUMP;
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_18) || DREG(1) != 0) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || DREG(1) != 0) {
|
||||
this->stateFlags &= ~ENHORSE_CANT_JUMP;
|
||||
this->stateFlags |= ENHORSE_FLAG_26;
|
||||
} else if (GET_EVENTINF(EVENTINF_HORSES_06) && this->type == HORSE_HNI) {
|
||||
|
@ -808,7 +809,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
|
|||
}
|
||||
|
||||
if (play->sceneId == SCENE_SPOT20 && GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6 &&
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_18) && !DREG(1)) {
|
||||
!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && !DREG(1)) {
|
||||
this->stateFlags |= ENHORSE_FLAG_25;
|
||||
}
|
||||
|
||||
|
@ -834,7 +835,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
|
|||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_18)) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
@ -842,12 +843,12 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
|
|||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
} else if (!Flags_GetEventChkInf(EVENTCHKINF_18) && !DREG(1) && !IS_DAY) {
|
||||
} else if (!Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && !DREG(1) && !IS_DAY) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
} else if (play->sceneId == SCENE_MALON_STABLE) {
|
||||
if (IS_DAY || Flags_GetEventChkInf(EVENTCHKINF_18) || DREG(1) != 0 || !LINK_IS_ADULT) {
|
||||
if (IS_DAY || Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || DREG(1) != 0 || !LINK_IS_ADULT) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
@ -882,7 +883,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) {
|
|||
} else if (this->actor.params == 8) {
|
||||
EnHorse_InitHorsebackArchery(this);
|
||||
Interface_InitHorsebackArchery(play);
|
||||
} else if (play->sceneId == SCENE_SPOT20 && !Flags_GetEventChkInf(EVENTCHKINF_18) && !DREG(1)) {
|
||||
} else if (play->sceneId == SCENE_SPOT20 && !Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) && !DREG(1)) {
|
||||
EnHorse_InitFleePlayer(this);
|
||||
} else {
|
||||
if (play->sceneId == SCENE_SOUKO) {
|
||||
|
|
|
@ -444,7 +444,7 @@ void EnHorseGameCheck_Init(Actor* thisx, PlayState* play) {
|
|||
s32 pad;
|
||||
EnHorseGameCheckBase* this = (EnHorseGameCheckBase*)thisx;
|
||||
|
||||
if ((play->sceneId == SCENE_SPOT20) && (Flags_GetEventChkInf(EVENTCHKINF_18) || DREG(1))) {
|
||||
if ((play->sceneId == SCENE_SPOT20) && (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || DREG(1))) {
|
||||
this->actor.params = HORSEGAME_MALON_RACE;
|
||||
}
|
||||
if (sInitFuncs[this->actor.params] != NULL) {
|
||||
|
|
|
@ -165,7 +165,7 @@ void EnHorseLinkChild_Init(Actor* thisx, PlayState* play) {
|
|||
if (IS_CUTSCENE_LAYER) {
|
||||
func_80A69EC0(this);
|
||||
} else if (play->sceneId == SCENE_SPOT20) {
|
||||
if (!Flags_GetEventChkInf(EVENTCHKINF_14)) {
|
||||
if (!Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -207,7 +207,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
|
|||
return;
|
||||
}
|
||||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_14)) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
if (this->actor.world.rot.z != 3) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
|
@ -216,7 +216,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) {
|
|||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_18) || (DREG(1) != 0)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (DREG(1) != 0)) {
|
||||
if (this->actor.world.rot.z != 7) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
|
|
|
@ -429,7 +429,9 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
|
|||
switch (this->actor.params & 0x7F) {
|
||||
case ENHY_TYPE_AOB:
|
||||
if (play->sceneId == SCENE_KAKARIKO) {
|
||||
return (this->unk_330 & EVENTCHKINF_6B_MASK) ? 0x508D : (GET_INFTABLE(INFTABLE_CB) ? 0x508C : 0x508B);
|
||||
return (this->unk_330 & EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_MASK)
|
||||
? 0x508D
|
||||
: (GET_INFTABLE(INFTABLE_CB) ? 0x508C : 0x508B);
|
||||
} else if (play->sceneId == SCENE_MARKET_DAY) {
|
||||
return GET_EVENTINF(EVENTINF_30) ? 0x709B : 0x709C;
|
||||
} else if (gSaveContext.dogIsLost) {
|
||||
|
@ -457,7 +459,7 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
|
|||
return 0x5085;
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_80)) {
|
||||
return GET_INFTABLE(INFTABLE_C3) ? 0x701A : 0x7047;
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 0x701A;
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_10)) {
|
||||
return 0x701B;
|
||||
|
@ -537,7 +539,9 @@ u16 func_80A6F810(PlayState* play, Actor* thisx) {
|
|||
if (!LINK_IS_ADULT) {
|
||||
return GET_EVENTCHKINF(EVENTCHKINF_80) ? 0x505F : (GET_INFTABLE(INFTABLE_163) ? 0x505E : 0x505D);
|
||||
} else {
|
||||
return (this->unk_330 & EVENTCHKINF_6B_MASK) ? 0x5062 : (GET_INFTABLE(INFTABLE_164) ? 0x5061 : 0x5060);
|
||||
return (this->unk_330 & EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_MASK)
|
||||
? 0x5062
|
||||
: (GET_INFTABLE(INFTABLE_164) ? 0x5061 : 0x5060);
|
||||
}
|
||||
case ENHY_TYPE_BJI_19:
|
||||
return 0x7120;
|
||||
|
@ -909,7 +913,7 @@ void EnHy_InitImpl(EnHy* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (play->sceneId == SCENE_KAKARIKO) {
|
||||
this->unk_330 = gSaveContext.eventChkInf[EVENTCHKINF_6B_INDEX];
|
||||
this->unk_330 = gSaveContext.eventChkInf[EVENTCHKINF_TALON_RETURNED_FROM_KAKARIKO_INDEX];
|
||||
}
|
||||
|
||||
EnHy_InitSetProperties(this);
|
||||
|
|
|
@ -110,7 +110,7 @@ static Gfx* sAdultEraDLs[] = {
|
|||
};
|
||||
|
||||
u16 func_80A78FB0(PlayState* play) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
if (GET_INFTABLE(INFTABLE_97)) {
|
||||
return 0x2046;
|
||||
} else {
|
||||
|
@ -131,7 +131,7 @@ u16 func_80A79010(PlayState* play) {
|
|||
if (temp_v0 != 0) {
|
||||
return temp_v0;
|
||||
}
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
if (IS_DAY) {
|
||||
return 0x205F;
|
||||
} else {
|
||||
|
@ -364,34 +364,34 @@ s32 func_80A7975C(EnIn* this, PlayState* play) {
|
|||
|
||||
s32 func_80A79830(EnIn* this, PlayState* play) {
|
||||
if (play->sceneId == SCENE_SPOT20 && LINK_IS_CHILD && IS_DAY && this->actor.shape.rot.z == 1 &&
|
||||
!GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 1;
|
||||
}
|
||||
if (play->sceneId == SCENE_MALON_STABLE && LINK_IS_CHILD && IS_DAY && this->actor.shape.rot.z == 3 &&
|
||||
GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 1;
|
||||
}
|
||||
if (play->sceneId == SCENE_MALON_STABLE && LINK_IS_CHILD && IS_NIGHT) {
|
||||
if ((this->actor.shape.rot.z == 2) && !GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if ((this->actor.shape.rot.z == 2) && !GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 1;
|
||||
}
|
||||
if ((this->actor.shape.rot.z == 4) && GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if ((this->actor.shape.rot.z == 4) && GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (play->sceneId == SCENE_SPOT20 && LINK_IS_ADULT && IS_DAY) {
|
||||
if ((this->actor.shape.rot.z == 5) && !GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if ((this->actor.shape.rot.z == 5) && !GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
return 2;
|
||||
}
|
||||
if ((this->actor.shape.rot.z == 7) && GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if ((this->actor.shape.rot.z == 7) && GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
if (play->sceneId == SCENE_SOUKO && LINK_IS_ADULT && IS_NIGHT) {
|
||||
if (this->actor.shape.rot.z == 6 && !GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (this->actor.shape.rot.z == 6 && !GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
return 3;
|
||||
}
|
||||
if (this->actor.shape.rot.z == 8 && GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (this->actor.shape.rot.z == 8 && GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
@ -530,7 +530,7 @@ void func_80A79FB0(EnIn* this, PlayState* play) {
|
|||
case 3:
|
||||
EnIn_ChangeAnim(this, ENIN_ANIM_7);
|
||||
this->actionFunc = func_80A7A4BC;
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
this->actor.params = 5;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -107,7 +107,7 @@ u16 EnMa1_GetText(PlayState* play, Actor* thisx) {
|
|||
return 0x2048;
|
||||
}
|
||||
}
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 0x2047;
|
||||
}
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_12)) {
|
||||
|
@ -188,10 +188,10 @@ s32 func_80AA08C4(EnMa1* this, PlayState* play) {
|
|||
return 0;
|
||||
}
|
||||
if (((play->sceneId == SCENE_MARKET_NIGHT) || (play->sceneId == SCENE_MARKET_DAY)) &&
|
||||
!GET_EVENTCHKINF(EVENTCHKINF_14) && !GET_INFTABLE(INFTABLE_8B)) {
|
||||
!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) && !GET_INFTABLE(INFTABLE_8B)) {
|
||||
return 1;
|
||||
}
|
||||
if ((play->sceneId == SCENE_SPOT15) && !GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if ((play->sceneId == SCENE_SPOT15) && !GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
if (GET_INFTABLE(INFTABLE_8B)) {
|
||||
return 1;
|
||||
} else {
|
||||
|
@ -199,13 +199,13 @@ s32 func_80AA08C4(EnMa1* this, PlayState* play) {
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
if ((play->sceneId == SCENE_SOUKO) && IS_NIGHT && GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if ((play->sceneId == SCENE_SOUKO) && IS_NIGHT && GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 1;
|
||||
}
|
||||
if (play->sceneId != SCENE_SPOT20) {
|
||||
return 0;
|
||||
}
|
||||
if ((this->actor.shape.rot.z == 3) && IS_DAY && GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if ((this->actor.shape.rot.z == 3) && IS_DAY && GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -282,7 +282,7 @@ void EnMa1_Init(Actor* thisx, PlayState* play) {
|
|||
this->actor.targetMode = 6;
|
||||
this->unk_1E8.unk_00 = 0;
|
||||
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_14) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
|
||||
this->actionFunc = func_80AA0D88;
|
||||
EnMa1_ChangeAnim(this, ENMA1_ANIM_2);
|
||||
} else {
|
||||
|
@ -309,9 +309,9 @@ void func_80AA0D88(EnMa1* this, PlayState* play) {
|
|||
}
|
||||
}
|
||||
|
||||
if ((play->sceneId == SCENE_SPOT15) && GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if ((play->sceneId == SCENE_SPOT15) && GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else if (!GET_EVENTCHKINF(EVENTCHKINF_14) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
|
||||
} else if (!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE) || CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
|
||||
if (this->unk_1E8.unk_00 == 2) {
|
||||
this->actionFunc = func_80AA0EA0;
|
||||
play->msgCtx.stateTimer = 4;
|
||||
|
|
|
@ -74,7 +74,7 @@ u16 func_80AA19A0(PlayState* play, Actor* thisx) {
|
|||
if (faceReaction != 0) {
|
||||
return faceReaction;
|
||||
}
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
return 0x2056;
|
||||
}
|
||||
if (IS_NIGHT) {
|
||||
|
@ -141,15 +141,15 @@ u16 func_80AA1B58(EnMa2* this, PlayState* play) {
|
|||
if (LINK_IS_CHILD) {
|
||||
return 0;
|
||||
}
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_18) && (play->sceneId == SCENE_MALON_STABLE) && IS_DAY &&
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneId == SCENE_MALON_STABLE) && IS_DAY &&
|
||||
(this->actor.shape.rot.z == 5)) {
|
||||
return 1;
|
||||
}
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_18) && (play->sceneId == SCENE_SPOT20) && IS_NIGHT &&
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneId == SCENE_SPOT20) && IS_NIGHT &&
|
||||
(this->actor.shape.rot.z == 6)) {
|
||||
return 2;
|
||||
}
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_18) || (play->sceneId != SCENE_SPOT20)) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) || (play->sceneId != SCENE_SPOT20)) {
|
||||
return 0;
|
||||
}
|
||||
if ((this->actor.shape.rot.z == 7) && IS_DAY) {
|
||||
|
|
|
@ -201,7 +201,7 @@ s32 func_80AA2EC8(EnMa3* this, PlayState* play) {
|
|||
if (LINK_IS_CHILD) {
|
||||
return 2;
|
||||
}
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
return 2;
|
||||
}
|
||||
if (GET_EVENTINF(EVENTINF_HORSES_0A)) {
|
||||
|
|
|
@ -188,22 +188,22 @@ void EnNiw_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_14)) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -342,7 +342,7 @@ void func_80ABA778(EnNiwLady* this, PlayState* play) {
|
|||
this->unk_27A = 2;
|
||||
if (!GET_ITEMGETINF(ITEMGETINF_2E)) {
|
||||
this->unk_27A = 3;
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_6A)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO)) {
|
||||
this->unk_27A = 9;
|
||||
if (this->unk_277 != 0) {
|
||||
this->unk_27A = 10;
|
||||
|
@ -365,7 +365,7 @@ void func_80ABA878(EnNiwLady* this, PlayState* play) {
|
|||
}
|
||||
if (Actor_ProcessTalkRequest(&this->actor, play)) {
|
||||
playerExchangeItemId = func_8002F368(play);
|
||||
if ((playerExchangeItemId == EXCH_ITEM_POCKET_CUCCO) && GET_EVENTCHKINF(EVENTCHKINF_6A)) {
|
||||
if ((playerExchangeItemId == EXCH_ITEM_POCKET_CUCCO) && GET_EVENTCHKINF(EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO)) {
|
||||
func_80078884(NA_SE_SY_TRE_BOX_APPEAR);
|
||||
player->actor.textId = sTradeItemTextIds[5];
|
||||
this->unk_26E = this->unk_27A + 21;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -9,31 +9,60 @@
|
|||
struct EnTa;
|
||||
|
||||
typedef void (*EnTaActionFunc)(struct EnTa*, PlayState*);
|
||||
typedef void (*EnTaUnkFunc)(struct EnTa*);
|
||||
typedef void (*EnTaBlinkFunc)(struct EnTa*);
|
||||
typedef void (*EnTaAnimFunc)(struct EnTa*);
|
||||
|
||||
typedef enum {
|
||||
/* 0xFFFF */ ENTA_CHILD_ERA = -1,
|
||||
/* 0x0001 */ ENTA_IN_KAKARIKO = 1,
|
||||
/* 0x0002 */ ENTA_RETURNED_FROM_KAKARIKO
|
||||
} EnTaType;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ ENTA_LIMB_NONE,
|
||||
/* 0x01 */ ENTA_LIMB_ROOT,
|
||||
/* 0x02 */ ENTA_LIMB_LEFT_THIGH,
|
||||
/* 0x03 */ ENTA_LIMB_LEFT_LEG,
|
||||
/* 0x04 */ ENTA_LIMB_LEFT_FOOT,
|
||||
/* 0x05 */ ENTA_LIMB_RIGHT_THIGH,
|
||||
/* 0x06 */ ENTA_LIMB_RIGHT_LEG,
|
||||
/* 0x07 */ ENTA_LIMB_RIGHT_FOOT,
|
||||
/* 0x08 */ ENTA_LIMB_CHEST,
|
||||
/* 0x09 */ ENTA_LIMB_LEFT_SHOULDER,
|
||||
/* 0x0A */ ENTA_LIMB_LEFT_ARM,
|
||||
/* 0x0B */ ENTA_LIMB_LEFT_HAND,
|
||||
/* 0x0C */ ENTA_LIMB_RIGHT_SHOULDER,
|
||||
/* 0x0D */ ENTA_LIMB_RIGHT_ARM,
|
||||
/* 0x0E */ ENTA_LIMB_RIGHT_HAND,
|
||||
/* 0x0F */ ENTA_LIMB_HEAD,
|
||||
/* 0x10 */ ENTA_LIMB_TORSO,
|
||||
/* 0x11 */ ENTA_LIMB_MAX
|
||||
} EnTaLimb;
|
||||
|
||||
typedef struct EnTa {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ Vec3s jointTable[17];
|
||||
/* 0x01F6 */ Vec3s morphTable[17];
|
||||
/* 0x0190 */ Vec3s jointTable[ENTA_LIMB_MAX];
|
||||
/* 0x01F6 */ Vec3s morphTable[ENTA_LIMB_MAX];
|
||||
/* 0x025C */ EnTaActionFunc actionFunc;
|
||||
/* 0x0260 */ EnTaUnkFunc unk_260;
|
||||
/* 0x0260 */ EnTaAnimFunc animFunc;
|
||||
/* 0x0264 */ ColliderCylinder collider;
|
||||
/* 0x02B0 */ EnTaUnkFunc unk_2B0;
|
||||
/* 0x02B0 */ EnTaBlinkFunc blinkFunc;
|
||||
/* 0x02B4 */ s16 eyeIndex;
|
||||
/* 0x02B6 */ s16 blinkTimer;
|
||||
/* 0x02B8 */ EnNiw* superCuccos[3];
|
||||
/* 0x02C4 */ s16 unk_2C4[3];
|
||||
/* 0x02CA */ u8 unk_2CA;
|
||||
/* 0x02CC */ s16 unk_2CC;
|
||||
/* 0x02CE */ s16 unk_2CE;
|
||||
/* 0x02C4 */ s16 superCuccoTimers[3]; // This is used to time animations and actions for super-cuccos
|
||||
/* 0x02CA */ u8 lastFoundSuperCuccoIdx;
|
||||
/* 0x02CC */ s16 timer;
|
||||
/* 0x02CE */ s16 rapidBlinks;
|
||||
/* 0x02D0 */ s16 subCamId;
|
||||
/* 0x02D2 */ s16 returnToCamId;
|
||||
/* 0x02D4 */ Vec3s unk_2D4;
|
||||
/* 0x02DA */ Vec3s unk_2DA;
|
||||
/* 0x02E0 */ u16 unk_2E0;
|
||||
/* 0x02E2 */ s16 unk_2E2;
|
||||
/* 0x02D4 */ Vec3s headRot;
|
||||
/* 0x02DA */ Vec3s torsoRot;
|
||||
/* 0x02E0 */ u16 stateFlags;
|
||||
/* 0x02E2 */ s16 nodOffTimer;
|
||||
/* 0x02E4 */ AnimationHeader* currentAnimation;
|
||||
} EnTa; // size = 0x02E8
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
@ -66,7 +66,7 @@ void EnWeatherTag_Init(Actor* thisx, PlayState* play) {
|
|||
osSyncPrintf("\n\n");
|
||||
// "☆☆☆☆☆ Cloudy (._.) Ah Melancholy ☆☆☆☆☆"
|
||||
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ くもり (._.) あーあ 憂鬱 ☆☆☆☆☆ \n" VT_RST);
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_18)) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
EnWeatherTag_SetupAction(this, EnWeatherTag_DisabledCloudyLonLonRanch);
|
||||
|
|
|
@ -11840,7 +11840,7 @@ void func_8084D3E4(Player* this, PlayState* play) {
|
|||
this->actor.parent = NULL;
|
||||
AREG(6) = 0;
|
||||
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_18) || (DREG(1) != 0)) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_EPONA_OBTAINED) || (DREG(1) != 0)) {
|
||||
gSaveContext.horseData.pos.x = rideActor->actor.world.pos.x;
|
||||
gSaveContext.horseData.pos.y = rideActor->actor.world.pos.y;
|
||||
gSaveContext.horseData.pos.z = rideActor->actor.world.pos.z;
|
||||
|
|
|
@ -2708,11 +2708,11 @@ void KaleidoScope_Update(PlayState* play) {
|
|||
pauseCtx->worldMapPoints[4] = 1;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_6A)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_TALON_WOKEN_IN_KAKARIKO)) {
|
||||
pauseCtx->worldMapPoints[4] = 2;
|
||||
}
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_18)) {
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED)) {
|
||||
pauseCtx->worldMapPoints[4] = 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue