diff --git a/soh/soh/Enhancements/randomizer/3drando/starting_inventory.cpp b/soh/soh/Enhancements/randomizer/3drando/starting_inventory.cpp index c72b5f285..56e369a90 100644 --- a/soh/soh/Enhancements/randomizer/3drando/starting_inventory.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/starting_inventory.cpp @@ -65,6 +65,10 @@ void GenerateStartingInventory() { AddItemToInventory(RG_GERUDO_MEMBERSHIP_CARD); } + if (ctx->GetOption(RSK_SKIP_CHILD_ZELDA)) { + AddItemToInventory(RG_ZELDAS_LETTER); + } + //Starting Inventory Menu //Values are associated so that the count of items matches the index of //the option selected. If None is selected, the value will be zero and diff --git a/soh/soh/Enhancements/randomizer/hook_handlers.cpp b/soh/soh/Enhancements/randomizer/hook_handlers.cpp index d33987f02..5363c3357 100644 --- a/soh/soh/Enhancements/randomizer/hook_handlers.cpp +++ b/soh/soh/Enhancements/randomizer/hook_handlers.cpp @@ -1650,6 +1650,11 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l } break; } + case VB_GIVE_ITEM_ZELDAS_LETTER: { + Flags_SetRandomizerInf(RAND_INF_ZELDAS_LETTER); + *should = false; + break; + } case VB_FREEZE_ON_SKULL_TOKEN: case VB_TRADE_TIMER_ODD_MUSHROOM: case VB_TRADE_TIMER_FROG: @@ -1666,7 +1671,6 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l case VB_GIVE_ITEM_WEIRD_EGG: case VB_GIVE_ITEM_LIGHT_ARROW: case VB_GIVE_ITEM_STRENGTH_1: - case VB_GIVE_ITEM_ZELDAS_LETTER: case VB_GIVE_ITEM_OCARINA_OF_TIME: case VB_GIVE_ITEM_LIGHT_MEDALLION: case VB_GIVE_ITEM_FOREST_MEDALLION: diff --git a/soh/soh/Enhancements/randomizer/savefile.cpp b/soh/soh/Enhancements/randomizer/savefile.cpp index 7e91026b0..f519de727 100644 --- a/soh/soh/Enhancements/randomizer/savefile.cpp +++ b/soh/soh/Enhancements/randomizer/savefile.cpp @@ -325,6 +325,7 @@ extern "C" void Randomizer_InitSaveFile() { // set this at the end to ensure we always start with the letter // this is for the off chance we got the weird egg from impa (which should never happen) INV_CONTENT(ITEM_LETTER_ZELDA) = ITEM_LETTER_ZELDA; + Flags_SetRandomizerInf(RAND_INF_ZELDAS_LETTER); } if (Randomizer_GetSettingValue(RSK_SHUFFLE_MASTER_SWORD) && startingAge == RO_AGE_ADULT) {