mirror of
https://github.com/zeldaret/oot.git
synced 2025-05-09 18:43:45 +00:00
Merge ce238ea868
into 39ae99c4cb
This commit is contained in:
commit
cfe9b47a30
6 changed files with 108 additions and 103 deletions
|
@ -509,7 +509,7 @@ typedef enum LinkAge {
|
|||
#define EVENTCHKINF_20 0x20
|
||||
#define EVENTCHKINF_21 0x21
|
||||
#define EVENTCHKINF_22 0x22
|
||||
#define EVENTCHKINF_23 0x23
|
||||
#define EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER 0x23
|
||||
#define EVENTCHKINF_25 0x25
|
||||
#define EVENTCHKINF_2A 0x2A
|
||||
#define EVENTCHKINF_2B 0x2B
|
||||
|
@ -819,24 +819,24 @@ typedef enum LinkAge {
|
|||
#define INFTABLE_D6 0xD6
|
||||
#define INFTABLE_D8 0xD8
|
||||
#define INFTABLE_D9 0xD9
|
||||
#define INFTABLE_E0 0xE0
|
||||
#define INFTABLE_E3 0xE3
|
||||
#define INFTABLE_E6 0xE6
|
||||
#define INFTABLE_EB 0xEB
|
||||
#define INFTABLE_F0 0xF0
|
||||
#define INFTABLE_F4 0xF4
|
||||
#define INFTABLE_F8 0xF8
|
||||
#define INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON 0xE0
|
||||
#define INFTABLE_TALKED_TO_GC_STAIRWELL_GORON 0xE3
|
||||
#define INFTABLE_TALKED_TO_LOST_WOODS_SHORTCUT_GORON 0xE6
|
||||
#define INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON 0xEB
|
||||
#define INFTABLE_TALKED_TO_GC_ENTRANCE_GORON 0xF0
|
||||
#define INFTABLE_TALKED_TO_GC_ISLAND_GORON 0xF4
|
||||
#define INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON 0xF8
|
||||
#define INFTABLE_FC 0xFC
|
||||
#define INFTABLE_109 0x109
|
||||
#define INFTABLE_OPENED_GORON_CITY_DOORS 0x109
|
||||
#define INFTABLE_10A 0x10A
|
||||
#define INFTABLE_10B 0x10B
|
||||
#define INFTABLE_10C 0x10C
|
||||
#define INFTABLE_10D 0x10D
|
||||
#define INFTABLE_10E 0x10E
|
||||
#define INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON 0x10B
|
||||
#define INFTABLE_STOPPED_GORON_LINK 0x10C
|
||||
#define INFTABLE_RECEIVED_GORON_TUNIC 0x10D
|
||||
#define INFTABLE_TALKED_TO_GORON_LINK_ABOUT_GORONS 0x10E
|
||||
#define INFTABLE_10F 0x10F
|
||||
#define INFTABLE_113 0x113
|
||||
#define INFTABLE_11A 0x11A
|
||||
#define INFTABLE_11E 0x11E
|
||||
#define INFTABLE_RECEIVED_BOMB_BAG_UPGRADE_FROM_HOT_RODDER_GORON 0x11E
|
||||
#define INFTABLE_124 0x124
|
||||
#define INFTABLE_129 0x129
|
||||
#define INFTABLE_12A 0x12A
|
||||
|
|
|
@ -5374,9 +5374,9 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_25)) {
|
||||
retTextId = 0x3027;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_23)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER)) {
|
||||
retTextId = 0x3021;
|
||||
} else if (Flags_GetInfTable(INFTABLE_E0)) {
|
||||
} else if (Flags_GetInfTable(INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON)) {
|
||||
retTextId = 0x302A;
|
||||
} else {
|
||||
retTextId = 0x3008;
|
||||
|
@ -5393,7 +5393,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_25)) {
|
||||
retTextId = 0x3027;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_23)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER)) {
|
||||
retTextId = 0x3026;
|
||||
} else {
|
||||
retTextId = 0x3009;
|
||||
|
@ -5410,9 +5410,9 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_25)) {
|
||||
retTextId = 0x3027;
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_23)) {
|
||||
} else if (Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER)) {
|
||||
retTextId = 0x3026;
|
||||
} else if (Flags_GetInfTable(INFTABLE_EB)) {
|
||||
} else if (Flags_GetInfTable(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON)) {
|
||||
retTextId = 0x302B;
|
||||
} else {
|
||||
retTextId = 0x300A;
|
||||
|
@ -5429,7 +5429,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_25)) {
|
||||
retTextId = 0x3027;
|
||||
} else if (Flags_GetInfTable(INFTABLE_F0)) {
|
||||
} else if (Flags_GetInfTable(INFTABLE_TALKED_TO_GC_ENTRANCE_GORON)) {
|
||||
retTextId = 0x3015;
|
||||
} else {
|
||||
retTextId = 0x3014;
|
||||
|
@ -5446,7 +5446,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_25)) {
|
||||
retTextId = 0x3027;
|
||||
} else if (Flags_GetInfTable(INFTABLE_F4)) {
|
||||
} else if (Flags_GetInfTable(INFTABLE_TALKED_TO_GC_ISLAND_GORON)) {
|
||||
retTextId = 0x3017;
|
||||
} else {
|
||||
retTextId = 0x3016;
|
||||
|
@ -5463,7 +5463,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
|
|||
if (!LINK_IS_ADULT) {
|
||||
if (Flags_GetEventChkInf(EVENTCHKINF_25)) {
|
||||
retTextId = 0x3027;
|
||||
} else if (Flags_GetInfTable(INFTABLE_F8)) {
|
||||
} else if (Flags_GetInfTable(INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON)) {
|
||||
retTextId = 0x3019;
|
||||
} else {
|
||||
retTextId = 0x3018;
|
||||
|
@ -5817,28 +5817,28 @@ void func_80036E50(u16 textId, s16 arg1) {
|
|||
return;
|
||||
case 38:
|
||||
if (textId == 0x3008) {
|
||||
Flags_SetInfTable(INFTABLE_E0);
|
||||
Flags_SetInfTable(INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON);
|
||||
}
|
||||
return;
|
||||
case 40:
|
||||
if (textId == 0x300B) {
|
||||
Flags_SetInfTable(INFTABLE_EB);
|
||||
Flags_SetInfTable(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON);
|
||||
}
|
||||
return;
|
||||
case 41:
|
||||
if (textId == 0x3014) {
|
||||
Flags_SetInfTable(INFTABLE_F0);
|
||||
Flags_SetInfTable(INFTABLE_TALKED_TO_GC_ENTRANCE_GORON);
|
||||
}
|
||||
return;
|
||||
case 42:
|
||||
if (textId == 0x3016) {
|
||||
Flags_SetInfTable(INFTABLE_F4);
|
||||
Flags_SetInfTable(INFTABLE_TALKED_TO_GC_ISLAND_GORON);
|
||||
}
|
||||
return;
|
||||
case 43:
|
||||
if (textId == 0x3018) {
|
||||
Flags_SetEventChkInf(EVENTCHKINF_20);
|
||||
Flags_SetInfTable(INFTABLE_F8);
|
||||
Flags_SetInfTable(INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON);
|
||||
}
|
||||
return;
|
||||
case 48:
|
||||
|
|
|
@ -467,7 +467,7 @@ void func_808B5950(BgSpot16Bombstone* this, PlayState* play) {
|
|||
OnePointCutscene_Init(play, 4180, 50, NULL, CAM_ID_MAIN);
|
||||
|
||||
Flags_SetSwitch(play, this->switchFlag);
|
||||
SET_EVENTCHKINF(EVENTCHKINF_23);
|
||||
SET_EVENTCHKINF(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER);
|
||||
|
||||
func_808B5A78(this);
|
||||
} else {
|
||||
|
|
|
@ -55,7 +55,7 @@ void BgSpot18Shutter_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
if (param == 0) {
|
||||
if (LINK_AGE_IN_YEARS == YEARS_ADULT) {
|
||||
if (GET_INFTABLE(INFTABLE_109)) {
|
||||
if (GET_INFTABLE(INFTABLE_OPENED_GORON_CITY_DOORS)) {
|
||||
this->actionFunc = func_808B95AC;
|
||||
this->dyna.actor.world.pos.y += 180.0f;
|
||||
} else {
|
||||
|
@ -70,7 +70,7 @@ void BgSpot18Shutter_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
if (GET_INFTABLE(INFTABLE_109)) {
|
||||
if (GET_INFTABLE(INFTABLE_OPENED_GORON_CITY_DOORS)) {
|
||||
this->dyna.actor.world.pos.x += 125.0f * Math_CosS(this->dyna.actor.world.rot.y);
|
||||
this->dyna.actor.world.pos.z -= 125.0f * Math_SinS(this->dyna.actor.world.rot.y);
|
||||
this->actionFunc = func_808B95AC;
|
||||
|
@ -101,7 +101,7 @@ void func_808B95B8(BgSpot18Shutter* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_808B9618(BgSpot18Shutter* this, PlayState* play) {
|
||||
if (GET_INFTABLE(INFTABLE_109)) {
|
||||
if (GET_INFTABLE(INFTABLE_OPENED_GORON_CITY_DOORS)) {
|
||||
Actor_SetFocus(&this->dyna.actor, 70.0f);
|
||||
if (PARAMS_GET_U(this->dyna.actor.params, 8, 1) == 0) {
|
||||
this->actionFunc = func_808B9698;
|
||||
|
|
|
@ -132,14 +132,15 @@ u16 EnGo_GetTextID(PlayState* play, Actor* thisx) {
|
|||
} else {
|
||||
return 0x3041;
|
||||
}
|
||||
} else if (CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON) || GET_INFTABLE(INFTABLE_10D)) {
|
||||
if (GET_INFTABLE(INFTABLE_10E)) {
|
||||
} else if (CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON) ||
|
||||
GET_INFTABLE(INFTABLE_RECEIVED_GORON_TUNIC)) {
|
||||
if (GET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_GORONS)) {
|
||||
return 0x3038;
|
||||
} else {
|
||||
return 0x3037;
|
||||
}
|
||||
} else {
|
||||
if (GET_INFTABLE(INFTABLE_109)) {
|
||||
if (GET_INFTABLE(INFTABLE_OPENED_GORON_CITY_DOORS)) {
|
||||
if (GET_INFTABLE(INFTABLE_10A)) {
|
||||
return 0x3033;
|
||||
} else {
|
||||
|
@ -158,9 +159,9 @@ u16 EnGo_GetTextID(PlayState* play, Actor* thisx) {
|
|||
case 0x20:
|
||||
if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_23)) {
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER)) {
|
||||
return 0x3021;
|
||||
} else if (GET_INFTABLE(INFTABLE_E0)) {
|
||||
} else if (GET_INFTABLE(INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON)) {
|
||||
return 0x302A;
|
||||
} else {
|
||||
return 0x3008;
|
||||
|
@ -168,7 +169,7 @@ u16 EnGo_GetTextID(PlayState* play, Actor* thisx) {
|
|||
case 0x30:
|
||||
if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_23)) {
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER)) {
|
||||
return 0x3026;
|
||||
} else {
|
||||
return 0x3009;
|
||||
|
@ -176,7 +177,7 @@ u16 EnGo_GetTextID(PlayState* play, Actor* thisx) {
|
|||
case 0x40:
|
||||
if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_23)) {
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER)) {
|
||||
return 0x3026;
|
||||
} else {
|
||||
return 0x300A;
|
||||
|
@ -184,7 +185,7 @@ u16 EnGo_GetTextID(PlayState* play, Actor* thisx) {
|
|||
case 0x50:
|
||||
if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else if (GET_INFTABLE(INFTABLE_F0)) {
|
||||
} else if (GET_INFTABLE(INFTABLE_TALKED_TO_GC_ENTRANCE_GORON)) {
|
||||
return 0x3015;
|
||||
} else {
|
||||
return 0x3014;
|
||||
|
@ -192,7 +193,7 @@ u16 EnGo_GetTextID(PlayState* play, Actor* thisx) {
|
|||
case 0x60:
|
||||
if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else if (GET_INFTABLE(INFTABLE_F4)) {
|
||||
} else if (GET_INFTABLE(INFTABLE_TALKED_TO_GC_ISLAND_GORON)) {
|
||||
return 0x3017;
|
||||
} else {
|
||||
return 0x3016;
|
||||
|
@ -200,7 +201,7 @@ u16 EnGo_GetTextID(PlayState* play, Actor* thisx) {
|
|||
case 0x70:
|
||||
if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else if (GET_INFTABLE(INFTABLE_F8)) {
|
||||
} else if (GET_INFTABLE(INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON)) {
|
||||
return 0x3019;
|
||||
} else {
|
||||
return 0x3018;
|
||||
|
@ -221,32 +222,32 @@ s16 EnGo_UpdateTalkState(PlayState* play, Actor* thisx) {
|
|||
case TEXT_STATE_CLOSING:
|
||||
switch (thisx->textId) {
|
||||
case 0x3008:
|
||||
SET_INFTABLE(INFTABLE_E0);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON);
|
||||
talkState = NPC_TALK_STATE_IDLE;
|
||||
break;
|
||||
case 0x300B:
|
||||
SET_INFTABLE(INFTABLE_EB);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON);
|
||||
talkState = NPC_TALK_STATE_IDLE;
|
||||
break;
|
||||
case 0x3014:
|
||||
SET_INFTABLE(INFTABLE_F0);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GC_ENTRANCE_GORON);
|
||||
talkState = NPC_TALK_STATE_IDLE;
|
||||
break;
|
||||
case 0x3016:
|
||||
SET_INFTABLE(INFTABLE_F4);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GC_ISLAND_GORON);
|
||||
talkState = NPC_TALK_STATE_IDLE;
|
||||
break;
|
||||
case 0x3018:
|
||||
SET_INFTABLE(INFTABLE_F8);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON);
|
||||
talkState = NPC_TALK_STATE_IDLE;
|
||||
break;
|
||||
case 0x3036:
|
||||
Actor_OfferGetItem(thisx, play, GI_TUNIC_GORON, xzRange, yRange);
|
||||
SET_INFTABLE(INFTABLE_10D); // EnGo exclusive flag
|
||||
SET_INFTABLE(INFTABLE_RECEIVED_GORON_TUNIC); // EnGo exclusive flag
|
||||
talkState = NPC_TALK_STATE_ACTION;
|
||||
break;
|
||||
case 0x3037:
|
||||
SET_INFTABLE(INFTABLE_10E);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_GORONS);
|
||||
talkState = NPC_TALK_STATE_IDLE;
|
||||
break;
|
||||
case 0x3041:
|
||||
|
@ -275,7 +276,8 @@ s16 EnGo_UpdateTalkState(PlayState* play, Actor* thisx) {
|
|||
switch (thisx->textId) {
|
||||
case 0x300A:
|
||||
if (play->msgCtx.choiceIndex == 0) {
|
||||
if (CUR_UPG_VALUE(UPG_STRENGTH) != 0 || GET_INFTABLE(INFTABLE_EB)) {
|
||||
if (CUR_UPG_VALUE(UPG_STRENGTH) != 0 ||
|
||||
GET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON)) {
|
||||
thisx->textId = 0x300B;
|
||||
} else {
|
||||
thisx->textId = 0x300C;
|
||||
|
@ -288,12 +290,12 @@ s16 EnGo_UpdateTalkState(PlayState* play, Actor* thisx) {
|
|||
break;
|
||||
case 0x3034:
|
||||
if (play->msgCtx.choiceIndex == 0) {
|
||||
if (GET_INFTABLE(INFTABLE_10B)) {
|
||||
if (GET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON)) {
|
||||
thisx->textId = 0x3033;
|
||||
} else {
|
||||
thisx->textId = 0x3035;
|
||||
}
|
||||
} else if (GET_INFTABLE(INFTABLE_10B)) {
|
||||
} else if (GET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON)) {
|
||||
thisx->textId = 0x3036;
|
||||
} else {
|
||||
thisx->textId = 0x3033;
|
||||
|
@ -319,7 +321,7 @@ s16 EnGo_UpdateTalkState(PlayState* play, Actor* thisx) {
|
|||
if (Message_ShouldAdvance(play)) {
|
||||
switch (thisx->textId) {
|
||||
case 0x3035:
|
||||
SET_INFTABLE(INFTABLE_10B);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON);
|
||||
FALLTHROUGH;
|
||||
case 0x3032:
|
||||
case 0x3033:
|
||||
|
@ -683,7 +685,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) {
|
|||
EnGo_SetupAction(this, EnGo_FireGenericActionFunc);
|
||||
break;
|
||||
case 0x40:
|
||||
if (GET_INFTABLE(INFTABLE_EB)) {
|
||||
if (GET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON)) {
|
||||
EnGo_SetMovedPos(this, play);
|
||||
}
|
||||
Actor_SetScale(&this->actor, 0.015f);
|
||||
|
@ -771,7 +773,7 @@ void EnGo_GoronLinkRolling(EnGo* this, PlayState* play) {
|
|||
(this->unk_218 == 0)) {
|
||||
this->actor.speed = 0.0f;
|
||||
EnGo_SetupAction(this, func_80A4008C);
|
||||
SET_INFTABLE(INFTABLE_109);
|
||||
SET_INFTABLE(INFTABLE_OPENED_GORON_CITY_DOORS);
|
||||
}
|
||||
|
||||
this->actor.shape.rot = this->actor.world.rot;
|
||||
|
@ -868,7 +870,8 @@ void func_80A405CC(EnGo* this, PlayState* play) {
|
|||
this->skelAnime.curFrame = lastFrame;
|
||||
this->skelAnime.playSpeed = 0.0f;
|
||||
this->unk_212 = Rand_S16Offset(30, 30);
|
||||
if ((PARAMS_GET_NOSHIFT(this->actor.params, 4, 4) == 0x40) && !GET_INFTABLE(INFTABLE_EB)) {
|
||||
if ((PARAMS_GET_NOSHIFT(this->actor.params, 4, 4) == 0x40) &&
|
||||
!GET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON)) {
|
||||
EnGo_SetupAction(this, func_80A40B1C);
|
||||
} else {
|
||||
EnGo_SetupAction(this, EnGo_BiggoronActionFunc);
|
||||
|
@ -958,7 +961,7 @@ void func_80A40A54(EnGo* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_80A40B1C(EnGo* this, PlayState* play) {
|
||||
if (GET_INFTABLE(INFTABLE_EB)) {
|
||||
if (GET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON)) {
|
||||
EnGo_ChangeAnim(this, ENGO_ANIM_3);
|
||||
EnGo_SetupAction(this, func_80A40A54);
|
||||
} else {
|
||||
|
|
|
@ -30,28 +30,28 @@
|
|||
/*
|
||||
FLAGS
|
||||
|
||||
EVENTCHKINF_23 - DC entrance boulder blown up as child
|
||||
EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER - DC entrance boulder blown up as child
|
||||
|
||||
InfTable
|
||||
|
||||
INFTABLE_B4
|
||||
INFTABLE_E0 - Talked to DMT Goron at DC entrance (Before DC is opened as child)
|
||||
INFTABLE_E3 - Talked to GC Goron in bottom level stairwell
|
||||
INFTABLE_E6 - Talked to GC Goron at LW entrance (Before LW shortcut is opened)
|
||||
INFTABLE_EB - Talked to DMT Goron at Bomb Flower with goron bracelet
|
||||
INFTABLE_F0 - Talked to Goron at GC Entrance (Before goron ruby is obtained)
|
||||
INFTABLE_F4 - Talked to Goron at GC Island (Before goron ruby is obtained)
|
||||
INFTABLE_F8 - (not on cloud modding) Talked to GC Goron outside Darunias door (after opening door,
|
||||
before getting goron bracelet)
|
||||
INFTABLE_109 - Obtained Fire Tunic from Goron Link
|
||||
INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON - Talked to DMT Goron at DC entrance (Before DC is opened as child)
|
||||
INFTABLE_TALKED_TO_GC_STAIRWELL_GORON - Talked to GC Goron in bottom level stairwell
|
||||
INFTABLE_TALKED_TO_LOST_WOODS_SHORTCUT_GORON - Talked to GC Goron at LW entrance (Before LW shortcut is opened)
|
||||
INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON - Talked to DMT Goron at Bomb Flower with goron bracelet
|
||||
INFTABLE_TALKED_TO_GC_ENTRANCE_GORON - Talked to Goron at GC Entrance (Before goron ruby is obtained)
|
||||
INFTABLE_TALKED_TO_GC_ISLAND_GORON - Talked to Goron at GC Island (Before goron ruby is obtained)
|
||||
INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON - (not on cloud modding) Talked to GC Goron outside Darunias door
|
||||
(after opening door, before getting goron bracelet)
|
||||
INFTABLE_OPENED_GORON_CITY_DOORS - Goron Link opened Goron City doors
|
||||
INFTABLE_10A - (not on cloud modding)
|
||||
INFTABLE_10B - Spoke to Goron Link About Volvagia
|
||||
INFTABLE_10C - Stopped Goron Link's Rolling
|
||||
INFTABLE_10D - EnGo Exclusive
|
||||
INFTABLE_10E - Spoke to Goron Link
|
||||
INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON - Spoke to Goron Link about Volvagia
|
||||
INFTABLE_STOPPED_GORON_LINK - Stopped Goron Link's Rolling
|
||||
INFTABLE_RECEIVED_GORON_TUNIC - EnGo Exclusive
|
||||
INFTABLE_TALKED_TO_GORON_LINK_ABOUT_GORONS - Spoke to Goron Link
|
||||
INFTABLE_10F - (not on cloud modding)
|
||||
|
||||
INFTABLE_11E - Bomb bag upgrade obtained from rolling Goron
|
||||
INFTABLE_RECEIVED_BOMB_BAG_UPGRADE_FROM_HOT_RODDER_GORON - Bomb bag upgrade obtained from rolling Goron
|
||||
|
||||
Gorons only move when this->interactInfo.talkState == NPC_TALK_STATE_IDLE
|
||||
*/
|
||||
|
@ -330,7 +330,7 @@ u16 EnGo2_GoronFireGenericGetTextId(EnGo2* this) {
|
|||
}
|
||||
|
||||
u16 EnGo2_GetTextIdGoronCityRollingBig(PlayState* play, EnGo2* this) {
|
||||
if (GET_INFTABLE(INFTABLE_11E)) {
|
||||
if (GET_INFTABLE(INFTABLE_RECEIVED_BOMB_BAG_UPGRADE_FROM_HOT_RODDER_GORON)) {
|
||||
return 0x3013;
|
||||
} else if (CUR_CAPACITY(UPG_BOMB_BAG) >= 20 && this->waypoint > 7 && this->waypoint < 12) {
|
||||
return 0x3012;
|
||||
|
@ -352,7 +352,7 @@ s16 EnGo2_UpdateTalkStateGoronCityRollingBig(PlayState* play, EnGo2* this) {
|
|||
bombBagUpgrade = CUR_CAPACITY(UPG_BOMB_BAG) == 30 ? GI_BOMB_BAG_40 : GI_BOMB_BAG_30;
|
||||
EnGo2_GetItem(this, play, bombBagUpgrade);
|
||||
Message_CloseTextbox(play);
|
||||
SET_INFTABLE(INFTABLE_11E);
|
||||
SET_INFTABLE(INFTABLE_RECEIVED_BOMB_BAG_UPGRADE_FROM_HOT_RODDER_GORON);
|
||||
return NPC_TALK_STATE_ACTION;
|
||||
} else {
|
||||
return NPC_TALK_STATE_ACTION;
|
||||
|
@ -372,8 +372,8 @@ u16 EnGo2_GetTextIdGoronDmtBombFlower(PlayState* play, EnGo2* this) {
|
|||
s16 EnGo2_UpdateTalkStateGoronDmtBombFlower(PlayState* play, EnGo2* this) {
|
||||
switch (Message_GetState(&play->msgCtx)) {
|
||||
case TEXT_STATE_CLOSING:
|
||||
if ((this->actor.textId == 0x300B) && !GET_INFTABLE(INFTABLE_EB)) {
|
||||
SET_INFTABLE(INFTABLE_EB);
|
||||
if ((this->actor.textId == 0x300B) && !GET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON)) {
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON);
|
||||
return NPC_TALK_STATE_ACTION;
|
||||
} else {
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
|
@ -401,7 +401,7 @@ u16 EnGo2_GetTextIdGoronDmtRollingSmall(PlayState* play, EnGo2* this) {
|
|||
if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else {
|
||||
return GET_EVENTCHKINF(EVENTCHKINF_23) ? 0x3026 : 0x3009;
|
||||
return GET_EVENTCHKINF(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER) ? 0x3026 : 0x3009;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -419,14 +419,16 @@ u16 EnGo2_GetTextIdGoronDmtDcEntrance(PlayState* play, EnGo2* this) {
|
|||
} else if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else {
|
||||
return GET_EVENTCHKINF(EVENTCHKINF_23) ? 0x3021 : GET_INFTABLE(INFTABLE_E0) ? 0x302A : 0x3008;
|
||||
return GET_EVENTCHKINF(EVENTCHKINF_DESTROYED_DODONGOS_CAVERN_BOULDER) ? 0x3021
|
||||
: GET_INFTABLE(INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON) ? 0x302A
|
||||
: 0x3008;
|
||||
}
|
||||
}
|
||||
|
||||
s16 EnGo2_UpdateTalkStateGoronDmtDcEntrance(PlayState* play, EnGo2* this) {
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
|
||||
if (this->actor.textId == 0x3008) {
|
||||
SET_INFTABLE(INFTABLE_E0);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_DODONGOS_CAVERN_ENTRANCE_GORON);
|
||||
}
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
} else {
|
||||
|
@ -440,14 +442,14 @@ u16 EnGo2_GetTextIdGoronCityEntrance(PlayState* play, EnGo2* this) {
|
|||
} else if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else {
|
||||
return GET_INFTABLE(INFTABLE_F0) ? 0x3015 : 0x3014;
|
||||
return GET_INFTABLE(INFTABLE_TALKED_TO_GC_ENTRANCE_GORON) ? 0x3015 : 0x3014;
|
||||
}
|
||||
}
|
||||
|
||||
s16 EnGo2_UpdateTalkStateGoronCityEntrance(PlayState* play, EnGo2* this) {
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
|
||||
if (this->actor.textId == 0x3014) {
|
||||
SET_INFTABLE(INFTABLE_F0);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GC_ENTRANCE_GORON);
|
||||
}
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
} else {
|
||||
|
@ -461,14 +463,14 @@ u16 EnGo2_GetTextIdGoronCityIsland(PlayState* play, EnGo2* this) {
|
|||
} else if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3067;
|
||||
} else {
|
||||
return GET_INFTABLE(INFTABLE_F4) ? 0x3017 : 0x3016;
|
||||
return GET_INFTABLE(INFTABLE_TALKED_TO_GC_ISLAND_GORON) ? 0x3017 : 0x3016;
|
||||
}
|
||||
}
|
||||
|
||||
s16 EnGo2_UpdateTalkStateGoronCityIsland(PlayState* play, EnGo2* this) {
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
|
||||
if (this->actor.textId == 0x3016) {
|
||||
SET_INFTABLE(INFTABLE_F4);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GC_ISLAND_GORON);
|
||||
}
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
} else {
|
||||
|
@ -482,17 +484,17 @@ u16 EnGo2_GetTextIdGoronCityLowestFloor(PlayState* play, EnGo2* this) {
|
|||
} else if (CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) {
|
||||
return 0x3027;
|
||||
} else {
|
||||
return CUR_UPG_VALUE(UPG_STRENGTH) != 0 ? 0x302C
|
||||
: !Flags_GetSwitch(play, 0x1B) ? 0x3017
|
||||
: GET_INFTABLE(INFTABLE_F8) ? 0x3019
|
||||
: 0x3018;
|
||||
return CUR_UPG_VALUE(UPG_STRENGTH) != 0 ? 0x302C
|
||||
: !Flags_GetSwitch(play, 0x1B) ? 0x3017
|
||||
: GET_INFTABLE(INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON) ? 0x3019
|
||||
: 0x3018;
|
||||
}
|
||||
}
|
||||
|
||||
s16 EnGo2_UpdateTalkStateGoronCityLowestFloor(PlayState* play, EnGo2* this) {
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
|
||||
if (this->actor.textId == 0x3018) {
|
||||
SET_INFTABLE(INFTABLE_F8);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_DARUNIA_DOOR_GORON);
|
||||
}
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
} else {
|
||||
|
@ -504,8 +506,8 @@ u16 EnGo2_GetTextIdGoronCityLink(PlayState* play, EnGo2* this) {
|
|||
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE)) {
|
||||
return GET_INFTABLE(INFTABLE_10F) ? 0x3042 : 0x3041;
|
||||
} else if (CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON)) {
|
||||
return GET_INFTABLE(INFTABLE_10E) ? 0x3038 : 0x3037;
|
||||
} else if (GET_INFTABLE(INFTABLE_10C)) {
|
||||
return GET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_GORONS) ? 0x3038 : 0x3037;
|
||||
} else if (GET_INFTABLE(INFTABLE_STOPPED_GORON_LINK)) {
|
||||
this->unk_20C = 0;
|
||||
this->dialogState = TEXT_STATE_NONE;
|
||||
return GET_INFTABLE(INFTABLE_10A) ? 0x3033 : 0x3032;
|
||||
|
@ -523,7 +525,7 @@ s16 EnGo2_UpdateTalkStateGoronCityLink(PlayState* play, EnGo2* this) {
|
|||
this->actionFunc = EnGo2_SetupGetItem;
|
||||
return NPC_TALK_STATE_ACTION;
|
||||
case 0x3037:
|
||||
SET_INFTABLE(INFTABLE_10E);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_GORONS);
|
||||
FALLTHROUGH;
|
||||
default:
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
|
@ -532,12 +534,12 @@ s16 EnGo2_UpdateTalkStateGoronCityLink(PlayState* play, EnGo2* this) {
|
|||
if (Message_ShouldAdvance(play)) {
|
||||
if (this->actor.textId == 0x3034) {
|
||||
if (play->msgCtx.choiceIndex == 0) {
|
||||
this->actor.textId = GET_INFTABLE(INFTABLE_10B) ? 0x3033 : 0x3035;
|
||||
this->actor.textId = GET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON) ? 0x3033 : 0x3035;
|
||||
if (this->actor.textId == 0x3035) {
|
||||
Audio_StopSfxById(NA_SE_EN_GOLON_CRY);
|
||||
}
|
||||
} else {
|
||||
this->actor.textId = GET_INFTABLE(INFTABLE_10B) ? 0x3036 : 0x3033;
|
||||
this->actor.textId = GET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON) ? 0x3036 : 0x3033;
|
||||
if (this->actor.textId == 0x3036) {
|
||||
Audio_StopSfxById(NA_SE_EN_GOLON_CRY);
|
||||
}
|
||||
|
@ -553,7 +555,7 @@ s16 EnGo2_UpdateTalkStateGoronCityLink(PlayState* play, EnGo2* this) {
|
|||
if (Message_ShouldAdvance(play)) {
|
||||
switch (this->actor.textId) {
|
||||
case 0x3035:
|
||||
SET_INFTABLE(INFTABLE_10B);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GORON_LINK_ABOUT_DRAGON);
|
||||
FALLTHROUGH;
|
||||
case 0x3032:
|
||||
case 0x3033:
|
||||
|
@ -682,13 +684,13 @@ s16 EnGo2_UpdateTalkStateGoronFireGeneric(PlayState* play, EnGo2* this) {
|
|||
}
|
||||
|
||||
u16 EnGo2_GetTextIdGoronCityStairwell(PlayState* play, EnGo2* this) {
|
||||
return !LINK_IS_ADULT ? GET_INFTABLE(INFTABLE_E3) ? 0x3022 : 0x300E : 0x3043;
|
||||
return !LINK_IS_ADULT ? GET_INFTABLE(INFTABLE_TALKED_TO_GC_STAIRWELL_GORON) ? 0x3022 : 0x300E : 0x3043;
|
||||
}
|
||||
|
||||
s16 EnGo2_UpdateTalkStateGoronCityStairwell(PlayState* play, EnGo2* this) {
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
|
||||
if (this->actor.textId == 0x300E) {
|
||||
SET_INFTABLE(INFTABLE_E3);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_GC_STAIRWELL_GORON);
|
||||
}
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
} else {
|
||||
|
@ -714,7 +716,7 @@ u16 EnGo2_GetTextIdGoronCityLostWoods(PlayState* play, EnGo2* this) {
|
|||
if (Flags_GetSwitch(play, 0x1C)) {
|
||||
return 0x302F;
|
||||
} else {
|
||||
return GET_INFTABLE(INFTABLE_E6) ? 0x3025 : 0x3024;
|
||||
return GET_INFTABLE(INFTABLE_TALKED_TO_LOST_WOODS_SHORTCUT_GORON) ? 0x3025 : 0x3024;
|
||||
}
|
||||
} else {
|
||||
return 0x3043;
|
||||
|
@ -724,7 +726,7 @@ u16 EnGo2_GetTextIdGoronCityLostWoods(PlayState* play, EnGo2* this) {
|
|||
s16 EnGo2_UpdateTalkStateGoronCityLostWoods(PlayState* play, EnGo2* this) {
|
||||
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
|
||||
if (this->actor.textId == 0x3024) {
|
||||
SET_INFTABLE(INFTABLE_E6);
|
||||
SET_INFTABLE(INFTABLE_TALKED_TO_LOST_WOODS_SHORTCUT_GORON);
|
||||
}
|
||||
return NPC_TALK_STATE_IDLE;
|
||||
} else {
|
||||
|
@ -1365,7 +1367,7 @@ void EnGo2_SetupRolling(EnGo2* this, PlayState* play) {
|
|||
if (PARAMS_GET_S(this->actor.params, 0, 5) == GORON_CITY_ROLLING_BIG ||
|
||||
PARAMS_GET_S(this->actor.params, 0, 5) == GORON_CITY_LINK) {
|
||||
this->collider.elem.acElemFlags = ACELEM_ON;
|
||||
this->actor.speed = GET_INFTABLE(INFTABLE_11E) ? 6.0f : 3.6000001f;
|
||||
this->actor.speed = GET_INFTABLE(INFTABLE_RECEIVED_BOMB_BAG_UPGRADE_FROM_HOT_RODDER_GORON) ? 6.0f : 3.6000001f;
|
||||
} else {
|
||||
this->actor.speed = 6.0f;
|
||||
}
|
||||
|
@ -1591,7 +1593,7 @@ void EnGo2_Init(Actor* thisx, PlayState* play) {
|
|||
EnGo2_GetItemAnimation(this, play);
|
||||
break;
|
||||
case GORON_CITY_LINK:
|
||||
if (GET_INFTABLE(INFTABLE_109)) {
|
||||
if (GET_INFTABLE(INFTABLE_OPENED_GORON_CITY_DOORS)) {
|
||||
Path_CopyLastPoint(this->path, &this->actor.world.pos);
|
||||
this->actor.home.pos = this->actor.world.pos;
|
||||
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) &&
|
||||
|
@ -1602,7 +1604,7 @@ void EnGo2_Init(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
} else {
|
||||
#if OOT_VERSION >= PAL_1_1
|
||||
CLEAR_INFTABLE(INFTABLE_10C);
|
||||
CLEAR_INFTABLE(INFTABLE_STOPPED_GORON_LINK);
|
||||
#endif
|
||||
this->collider.dim.height = (D_80A4816C[PARAMS_GET_S(this->actor.params, 0, 5)].height * 0.6f);
|
||||
EnGo2_SetupRolling(this, play);
|
||||
|
@ -1634,7 +1636,7 @@ void EnGo2_Init(Actor* thisx, PlayState* play) {
|
|||
this->actionFunc = EnGo2_CurledUp;
|
||||
break;
|
||||
case GORON_DMT_BOMB_FLOWER:
|
||||
if (GET_INFTABLE(INFTABLE_EB)) {
|
||||
if (GET_INFTABLE(INFTABLE_TALKED_TO_DMT_BOMB_FLOWER_GORON)) {
|
||||
Path_CopyLastPoint(this->path, &this->actor.world.pos);
|
||||
this->actor.home.pos = this->actor.world.pos;
|
||||
}
|
||||
|
@ -1833,7 +1835,7 @@ void EnGo2_SetGetItem(EnGo2* this, PlayState* play) {
|
|||
EnGo2_GetItemAnimation(this, play);
|
||||
return;
|
||||
case GI_TUNIC_GORON:
|
||||
SET_INFTABLE(INFTABLE_109);
|
||||
SET_INFTABLE(INFTABLE_OPENED_GORON_CITY_DOORS);
|
||||
EnGo2_GetItemAnimation(this, play);
|
||||
return;
|
||||
case GI_SWORD_BIGGORON:
|
||||
|
@ -1917,7 +1919,7 @@ void EnGo2_GoronLinkStopRolling(EnGo2* this, PlayState* play) {
|
|||
if (Message_GetState(&play->msgCtx) != TEXT_STATE_CLOSING) {
|
||||
player->actor.freezeTimer = 10;
|
||||
} else {
|
||||
SET_INFTABLE(INFTABLE_10C);
|
||||
SET_INFTABLE(INFTABLE_STOPPED_GORON_LINK);
|
||||
this->trackingMode = NPC_TRACKING_NONE;
|
||||
this->unk_211 = false;
|
||||
this->isAwake = false;
|
||||
|
|
Loading…
Add table
Reference in a new issue