1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 06:24:30 +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:
Lauri Koskela 2022-10-15 13:28:05 +03:00 committed by GitHub
parent 9675051377
commit b806ac0191
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 642 additions and 500 deletions

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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

View file

@ -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;
}

View file

@ -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) {

View file

@ -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) {

View file

@ -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;
}

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

@ -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;

View file

@ -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) {

View file

@ -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)) {

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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);

View file

@ -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;

View file

@ -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;
}