Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document a bunch of info tables (based on comments mainly) #2290

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
104 changes: 52 additions & 52 deletions include/z64save.h
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ typedef enum LinkAge {
#define EVENTCHKINF_20 0x20
#define EVENTCHKINF_21 0x21
#define EVENTCHKINF_22 0x22
#define EVENTCHKINF_23 0x23
#define EVENTCHKINF_DC_BOULDER_DESTROYED 0x23 // as child
#define EVENTCHKINF_25 0x25
#define EVENTCHKINF_2A 0x2A
#define EVENTCHKINF_2B 0x2B
Expand All @@ -502,39 +502,39 @@ typedef enum LinkAge {
#define EVENTCHKINF_33 0x33
#define EVENTCHKINF_37 0x37
#define EVENTCHKINF_38 0x38
#define EVENTCHKINF_39 0x39
#define EVENTCHKINF_3A 0x3A
#define EVENTCHKINF_OPENED_ZORAS_DOMAIN 0x39
#define EVENTCHKINF_JABUJABU_FISH_GIVEN 0x3A
#define EVENTCHKINF_3B 0x3B
#define EVENTCHKINF_3C 0x3C

// 0x40
#define EVENTCHKINF_40_INDEX 4
#define EVENTCHKINF_40_SHIFT 0
#define EVENTCHKINF_40_MASK (1 << EVENTCHKINF_40_SHIFT)
#define EVENTCHKINF_40 ((EVENTCHKINF_40_INDEX << 4) | EVENTCHKINF_40_SHIFT)
#define EVENTCHKINF_GOT_ZELDAS_LETTER_INDEX 4
#define EVENTCHKINF_GOT_ZELDAS_LETTER_SHIFT 0
#define EVENTCHKINF_GOT_ZELDAS_LETTER_MASK (1 << EVENTCHKINF_GOT_ZELDAS_LETTER_SHIFT)
#define EVENTCHKINF_GOT_ZELDAS_LETTER ((EVENTCHKINF_GOT_ZELDAS_LETTER_INDEX << 4) | EVENTCHKINF_GOT_ZELDAS_LETTER_SHIFT)

#define EVENTCHKINF_41 0x41
#define EVENTCHKINF_42 0x42
#define EVENTCHKINF_43 0x43
#define EVENTCHKINF_GOT_OCARINA_OF_TIME 0x43
#define EVENTCHKINF_45 0x45
#define EVENTCHKINF_48 0x48
#define EVENTCHKINF_49 0x49
#define EVENTCHKINF_4A 0x4A
#define EVENTCHKINF_CLEARED_FOREST_TEMPLE 0x48
#define EVENTCHKINF_CLEARED_FIRE_TEMPLE 0x49
#define EVENTCHKINF_CLEARED_WATER_TEMPLE 0x4A
#define EVENTCHKINF_4B 0x4B
#define EVENTCHKINF_4C 0x4C
#define EVENTCHKINF_4D 0x4D
#define EVENTCHKINF_4E 0x4E
#define EVENTCHKINF_WATCHED_SHEIK_AFTER_MASTER_SWORD_CS 0x4F // Cutscene in Temple of Time as adult after pulling the Master Sword for the first time
#define EVENTCHKINF_50 0x50
#define EVENTCHKINF_51 0x51
#define EVENTCHKINF_52 0x52
#define EVENTCHKINF_54 0x54
#define EVENTCHKINF_55 0x55
#define EVENTCHKINF_59 0x59
#define EVENTCHKINF_5A 0x5A
#define EVENTCHKINF_5B 0x5B
#define EVENTCHKINF_LEARNED_SONG_MINUET 0x50
#define EVENTCHKINF_LEARNED_SONG_BOLERO 0x51
#define EVENTCHKINF_LEARNED_SONG_SERENADE 0x52
#define EVENTCHKINF_LEARNED_SONG_NOCTURNE 0x54
#define EVENTCHKINF_LEARNED_SONG_PRELUDE 0x55
#define EVENTCHKINF_LEARNED_SONG_LULLABY 0x59
#define EVENTCHKINF_LEARNED_SONG_SUN 0x5A
#define EVENTCHKINF_PLAYED_SONG_STORMS_AT_WINDMILL 0x5B
#define EVENTCHKINF_5C 0x5C
#define EVENTCHKINF_65 0x65
#define EVENTCHKINF_LEARNED_SONG_STORMS 0x65
#define EVENTCHKINF_67 0x67
#define EVENTCHKINF_68 0x68
#define EVENTCHKINF_69 0x69
Expand All @@ -559,10 +559,10 @@ typedef enum LinkAge {
#define EVENTCHKINF_78 0x78
#define EVENTCHKINF_80 0x80
#define EVENTCHKINF_82 0x82
#define EVENTCHKINF_8C 0x8C
#define EVENTCHKINF_8D 0x8D
#define EVENTCHKINF_8E 0x8E
#define EVENTCHKINF_8F 0x8F
#define EVENTCHKINF_PAID_BACK_KEATON_MASK 0x8C
#define EVENTCHKINF_PAID_BACK_SKULL_MASK 0x8D
#define EVENTCHKINF_PAID_BACK_SPOOKY_MASK 0x8E
#define EVENTCHKINF_PAID_BACK_BUNNY_HOOD 0x8F

// 0x90-0x93
// carpenters freed from the gerudo
Expand Down Expand Up @@ -696,25 +696,25 @@ typedef enum LinkAge {
#define ITEMGETINF_19 ((ITEMGETINF_18_19_1A_INDEX << 4) | ITEMGETINF_19_SHIFT)
#define ITEMGETINF_1A ((ITEMGETINF_18_19_1A_INDEX << 4) | ITEMGETINF_1A_SHIFT)

#define ITEMGETINF_1B 0x1B
#define ITEMGETINF_1C 0x1C
#define ITEMGETINF_FOUND_PURPLE_RUPEE 0x1B
#define ITEMGETINF_UPGRADED_PURPLE_RUPEE 0x1C
#define ITEMGETINF_1D 0x1D
#define ITEMGETINF_1E 0x1E
#define ITEMGETINF_1F 0x1F
#define ITEMGETINF_23 0x23
#define ITEMGETINF_24 0x24
#define ITEMGETINF_25 0x25
#define ITEMGETINF_26 0x26
#define ITEMGETINF_2A 0x2A
#define ITEMGETINF_BORROWED_KEATON_MASK 0x23
#define ITEMGETINF_BORROWED_SKULL_MASK 0x24
#define ITEMGETINF_BORROWED_SPOOKY_MASK 0x25
#define ITEMGETINF_BORROWED_BUNNY_HOOD 0x26
#define ITEMGETINF_BORROWED_TRUTH_MASK 0x2A
#define ITEMGETINF_2C 0x2C
#define ITEMGETINF_2E 0x2E
#define ITEMGETINF_30 0x30
#define ITEMGETINF_31 0x31
#define ITEMGETINF_38 0x38
#define ITEMGETINF_39 0x39
#define ITEMGETINF_3A 0x3A
#define ITEMGETINF_3B 0x3B
#define ITEMGETINF_3F 0x3F
#define ITEMGETINF_SOLD_KEATON_MASK 0x38
#define ITEMGETINF_SOLD_SKULL_MASK 0x39
#define ITEMGETINF_SOLD_SPOOKY_MASK 0x3A
#define ITEMGETINF_SOLD_BUNNY_HOOD 0x3B
#define ITEMGETINF_OBTAINED_MASK_OF_TRUTH 0x3F


#define GET_ITEMGETINF(flag) (gSaveContext.save.info.itemGetInf[(flag) >> 4] & (1 << ((flag) & 0xF)))
Expand Down Expand Up @@ -770,7 +770,7 @@ typedef enum LinkAge {
#define INFTABLE_AB 0xAB
#define INFTABLE_B0 0xB0
#define INFTABLE_B1 0xB1
#define INFTABLE_B4 0xB4
#define INFTABLE_TALKED_TO_GORON_MSG_3054 0xB4
Feacur marked this conversation as resolved.
Show resolved Hide resolved
#define INFTABLE_B6 0xB6
#define INFTABLE_B7 0xB7
#define INFTABLE_B8 0xB8
Expand All @@ -797,24 +797,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_GORON_MSG_3008 0xE0 // DMT Goron at DC entrance (Before DC is opened as child)
#define INFTABLE_TALKED_TO_GORON_MSG_300E 0xE3 // GC Goron in bottom level stairwell
#define INFTABLE_TALKED_TO_GORON_MSG_3024 0xE6 // GC Goron at LW entrance (Before LW shortcut is opened)
#define INFTABLE_TALKED_TO_GORON_MSG_300B 0xEB // DMT Goron at Bomb Flower with goron bracelet
#define INFTABLE_TALKED_TO_GORON_MSG_3014 0xF0 // GC Entrance (Before goron ruby is obtained)
#define INFTABLE_TALKED_TO_GORON_MSG_3016 0xF4 // GC Island (Before goron ruby is obtained)
#define INFTABLE_TALKED_TO_GORON_MSG_3018 0xF8 // outside Darunias door (after opening door, before getting goron bracelet)
#define INFTABLE_FC 0xFC
#define INFTABLE_109 0x109
#define INFTABLE_10A 0x10A
#define INFTABLE_10B 0x10B
#define INFTABLE_10C 0x10C
#define INFTABLE_10D 0x10D
#define INFTABLE_10E 0x10E
#define INFTABLE_10F 0x10F
#define INFTABLE_GOT_GORON_TUNIC 0x109 // from Goron Link
#define INFTABLE_TALKED_TO_GORON_MSG_3032 0x10A
#define INFTABLE_TALKED_TO_GORON_MSG_3035 0x10B // About Volvagia
#define INFTABLE_STOPPED_GORON_LINK 0x10C
#define INFTABLE_TALKED_TO_GORON_MSG_3036 0x10D
#define INFTABLE_TALKED_TO_GORON_MSG_3037 0x10E // Spoke to Goron Link
#define INFTABLE_TALKED_TO_GORON_MSG_3041 0x10F
#define INFTABLE_113 0x113
#define INFTABLE_11A 0x11A
#define INFTABLE_11E 0x11E
#define INFTABLE_UPGRADED_BOMB_BAG 0x11E // from rolling Goron
#define INFTABLE_124 0x124
#define INFTABLE_129 0x129
#define INFTABLE_12A 0x12A
Expand Down
28 changes: 14 additions & 14 deletions src/code/z_actor.c
Original file line number Diff line number Diff line change
Expand Up @@ -5079,7 +5079,7 @@ u32 func_80035BFC(PlayState* play, s16 arg1) {
} else {
retTextId = 0x2010;
}
} else if (Flags_GetEventChkInf(EVENTCHKINF_40)) {
} else if (Flags_GetEventChkInf(EVENTCHKINF_GOT_ZELDAS_LETTER)) {
retTextId = 0x200F;
} else {
retTextId = 0x200E;
Expand Down Expand Up @@ -5199,9 +5199,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_DC_BOULDER_DESTROYED)) {
retTextId = 0x3021;
} else if (Flags_GetInfTable(INFTABLE_E0)) {
} else if (Flags_GetInfTable(INFTABLE_TALKED_TO_GORON_MSG_3008)) {
retTextId = 0x302A;
} else {
retTextId = 0x3008;
Expand All @@ -5218,7 +5218,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_DC_BOULDER_DESTROYED)) {
retTextId = 0x3026;
} else {
retTextId = 0x3009;
Expand All @@ -5235,9 +5235,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_DC_BOULDER_DESTROYED)) {
retTextId = 0x3026;
} else if (Flags_GetInfTable(INFTABLE_EB)) {
} else if (Flags_GetInfTable(INFTABLE_TALKED_TO_GORON_MSG_300B)) {
retTextId = 0x302B;
} else {
retTextId = 0x300A;
Expand All @@ -5254,7 +5254,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_GORON_MSG_3014)) {
retTextId = 0x3015;
} else {
retTextId = 0x3014;
Expand All @@ -5271,7 +5271,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_GORON_MSG_3016)) {
retTextId = 0x3017;
} else {
retTextId = 0x3016;
Expand All @@ -5288,7 +5288,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_GORON_MSG_3018)) {
retTextId = 0x3019;
} else {
retTextId = 0x3018;
Expand Down Expand Up @@ -5646,28 +5646,28 @@ void func_80036E50(u16 textId, s16 arg1) {
return;
case 38:
if (textId == 0x3008) {
Flags_SetInfTable(INFTABLE_E0);
Flags_SetInfTable(INFTABLE_TALKED_TO_GORON_MSG_3008);
}
return;
case 40:
if (textId == 0x300B) {
Flags_SetInfTable(INFTABLE_EB);
Flags_SetInfTable(INFTABLE_TALKED_TO_GORON_MSG_300B);
}
return;
case 41:
if (textId == 0x3014) {
Flags_SetInfTable(INFTABLE_F0);
Flags_SetInfTable(INFTABLE_TALKED_TO_GORON_MSG_3014);
}
return;
case 42:
if (textId == 0x3016) {
Flags_SetInfTable(INFTABLE_F4);
Flags_SetInfTable(INFTABLE_TALKED_TO_GORON_MSG_3016);
}
return;
case 43:
if (textId == 0x3018) {
Flags_SetEventChkInf(EVENTCHKINF_20);
Flags_SetInfTable(INFTABLE_F8);
Flags_SetInfTable(INFTABLE_TALKED_TO_GORON_MSG_3018);
}
return;
case 48:
Expand Down
16 changes: 9 additions & 7 deletions src/code/z_demo.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ EntranceCutscene sEntranceCutsceneTable[] = {
{ ENTR_DESERT_COLOSSUS_0, 2, EVENTCHKINF_B8, gDesertColossusIntroCs },
{ ENTR_DEATH_MOUNTAIN_CRATER_0, 2, EVENTCHKINF_B9, gDeathMountainCraterIntroCs },
{ ENTR_HYRULE_CASTLE_0, 0, EVENTCHKINF_BA, gGanonsCastleIntroCs },
{ ENTR_ROYAL_FAMILYS_TOMB_1, 2, EVENTCHKINF_5A, gSunSongGraveSunSongTeachPart2Cs },
{ ENTR_ROYAL_FAMILYS_TOMB_1, 2, EVENTCHKINF_LEARNED_SONG_SUN, gSunSongGraveSunSongTeachPart2Cs },
{ ENTR_INSIDE_GANONS_CASTLE_2, 2, EVENTCHKINF_BB, gForestBarrierCs },
{ ENTR_INSIDE_GANONS_CASTLE_3, 2, EVENTCHKINF_BC, gWaterBarrierCs },
{ ENTR_INSIDE_GANONS_CASTLE_4, 2, EVENTCHKINF_BD, gShadowBarrierCs },
Expand Down Expand Up @@ -397,7 +397,7 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
break;

case CS_MISC_SET_FLAG_FAST_WINDMILL:
SET_EVENTCHKINF(EVENTCHKINF_65);
SET_EVENTCHKINF(EVENTCHKINF_LEARNED_SONG_STORMS);
break;

case CS_MISC_SET_FLAG_WELL_DRAINED:
Expand Down Expand Up @@ -912,7 +912,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti

case CS_DEST_KAKARIKO_VILLAGE_NOCTURNE_PART_2:
Item_Give(play, ITEM_SONG_NOCTURNE);
SET_EVENTCHKINF(EVENTCHKINF_54);
SET_EVENTCHKINF(EVENTCHKINF_LEARNED_SONG_NOCTURNE);
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF1;
Expand Down Expand Up @@ -1181,8 +1181,9 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
// all 3 are restored. This cutscene destination sends the player to the correct blue warp destination,
// unless all 3 dungeons have been cleared. In that case, the destination is the Temple of Time which
// plays a cutscene where the door opens.
if (GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
GET_EVENTCHKINF(EVENTCHKINF_4A)) {
if (GET_EVENTCHKINF(EVENTCHKINF_CLEARED_FOREST_TEMPLE) &&
GET_EVENTCHKINF(EVENTCHKINF_CLEARED_FIRE_TEMPLE) &&
GET_EVENTCHKINF(EVENTCHKINF_CLEARED_WATER_TEMPLE)) {
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.save.cutsceneIndex = 0xFFF3;
Expand Down Expand Up @@ -2399,8 +2400,9 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
gSaveContext.save.entranceIndex = ENTR_DESERT_COLOSSUS_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
} else if ((gSaveContext.save.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && LINK_IS_ADULT &&
GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
GET_EVENTCHKINF(EVENTCHKINF_4A) && !Flags_GetEventChkInf(EVENTCHKINF_AA)) {
GET_EVENTCHKINF(EVENTCHKINF_CLEARED_FOREST_TEMPLE) &&
GET_EVENTCHKINF(EVENTCHKINF_CLEARED_FIRE_TEMPLE) &&
GET_EVENTCHKINF(EVENTCHKINF_CLEARED_WATER_TEMPLE) && !Flags_GetEventChkInf(EVENTCHKINF_AA)) {
Flags_SetEventChkInf(EVENTCHKINF_AA);
gSaveContext.save.cutsceneIndex = 0xFFF0;
} else if ((gSaveContext.save.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
Expand Down
2 changes: 1 addition & 1 deletion src/code/z_elf_message.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ QuestHintCmd sChildSariaQuestHints[] = {

QUEST_HINT_FLAG(CHECK, EVENTCHKINF_25, false, 0x62),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_37, false, 0x63),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_43, false, 0x65),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_GOT_OCARINA_OF_TIME, false, 0x65),
QUEST_HINT_MEDALLION(CHECK, ITEM_MEDALLION_FOREST, false, 0x66),
QUEST_HINT_MEDALLION(CHECK, ITEM_MEDALLION_FIRE, false, 0x66),
QUEST_HINT_MEDALLION(CHECK, ITEM_MEDALLION_WATER, false, 0x66),
Expand Down
2 changes: 1 addition & 1 deletion src/code/z_play.c
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ void Play_Init(GameState* thisx) {
}
} else if ((gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_KOKIRI_FOREST) &&
LINK_IS_ADULT && !IS_CUTSCENE_LAYER) {
gSaveContext.sceneLayer = GET_EVENTCHKINF(EVENTCHKINF_48) ? 3 : 2;
gSaveContext.sceneLayer = GET_EVENTCHKINF(EVENTCHKINF_CLEARED_FOREST_TEMPLE) ? 3 : 2;
}

Play_SpawnScene(
Expand Down
7 changes: 4 additions & 3 deletions src/code/z_sram.c
Original file line number Diff line number Diff line change
Expand Up @@ -497,9 +497,10 @@ void Sram_OpenSave(SramContext* sramCtx) {
}

// if zelda cutscene has been watched but lullaby was not obtained, restore cutscene and take away letter
if (GET_EVENTCHKINF(EVENTCHKINF_40) && !CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) {
i = gSaveContext.save.info.eventChkInf[EVENTCHKINF_40_INDEX] & ~EVENTCHKINF_40_MASK;
gSaveContext.save.info.eventChkInf[EVENTCHKINF_40_INDEX] = i;
if (GET_EVENTCHKINF(EVENTCHKINF_GOT_ZELDAS_LETTER) && !CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) {
i = gSaveContext.save.info.eventChkInf[EVENTCHKINF_GOT_ZELDAS_LETTER_INDEX] &
~EVENTCHKINF_GOT_ZELDAS_LETTER_MASK;
gSaveContext.save.info.eventChkInf[EVENTCHKINF_GOT_ZELDAS_LETTER_INDEX] = i;

INV_CONTENT(ITEM_ZELDAS_LETTER) = ITEM_CHICKEN;

Expand Down
4 changes: 2 additions & 2 deletions src/elf_message/elf_message_field.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ QuestHintCmd gOverworldNaviQuestHints[] = {
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_09, false, 0x41),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_RECEIVED_WEIRD_EGG, false, 0x42),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_TALON_RETURNED_FROM_CASTLE, false, 0x43),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_40, false, 0x44),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_GOT_ZELDAS_LETTER, false, 0x44),
QUEST_HINT_SONG(CHECK, ITEM_SONG_SARIA, false, 0x45),
QUEST_HINT_STRENGTH_UPG(CHECK, 0, true, 0x46),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_25, false, 0x47),
QUEST_HINT_MAGIC(CHECK, false, 0x48),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_33, false, 0x49),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_37, false, 0x4A),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_80, false, 0x4B),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_43, false, 0x4C),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_GOT_OCARINA_OF_TIME, false, 0x4C),
QUEST_HINT_FLAG(CHECK, EVENTCHKINF_45, false, 0x4D),
QUEST_HINT_ITEM(CHECK, ITEM_HOOKSHOT, ITEM_NONE, true, 0x4E),
QUEST_HINT_MEDALLION(CHECK, ITEM_MEDALLION_FOREST, false, 0x50),
Expand Down
Loading