mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-08-13 12:38:55 -04:00
Shuffle Zelda's Letter (#6938)
Removes RSK_SKIP_CHILD_ZELDA & RSK_KAK_GATE, these are managed by RSK_SHUFFLE_ZELDAS_LETTER & RSK_STARTING_ZELDAS_LETTER & RSK_SHUFFLE_WEIRD_EGG
This commit is contained in:
@@ -2410,6 +2410,7 @@ u8 Item_Give(PlayState* play, u8 item) {
|
||||
if (item >= ITEM_POCKET_EGG) {
|
||||
Flags_SetRandomizerInf(item - ITEM_POCKET_EGG + RAND_INF_ADULT_TRADES_HAS_POCKET_EGG);
|
||||
} else if (item == ITEM_LETTER_ZELDA) {
|
||||
Flags_SetRandomizerInf(RAND_INF_ZELDAS_LETTER);
|
||||
// don't care about zelda's letter if it's already been shown to the guard
|
||||
if (!Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)) {
|
||||
Flags_SetRandomizerInf(RAND_INF_CHILD_TRADES_HAS_LETTER_ZELDA);
|
||||
|
||||
@@ -46,8 +46,7 @@ void BgGateShutter_Init(Actor* thisx, PlayState* play) {
|
||||
this->somePos.y = thisx->world.pos.y;
|
||||
this->somePos.z = thisx->world.pos.z;
|
||||
if (((Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)) ||
|
||||
(!IS_RANDO && (Flags_GetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL))) ||
|
||||
(IS_RANDO && (Randomizer_GetSettingValue(RSK_KAK_GATE) == RO_KAK_GATE_OPEN))) &&
|
||||
(!IS_RANDO && (Flags_GetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL)))) &&
|
||||
(play->sceneNum == SCENE_KAKARIKO_VILLAGE)) {
|
||||
thisx->world.pos.x = -89.0f;
|
||||
thisx->world.pos.z = -1375.0f;
|
||||
|
||||
@@ -606,10 +606,7 @@ void EnOssan_Init(Actor* thisx, PlayState* play) {
|
||||
}
|
||||
|
||||
// If you haven't given Zelda's Letter to the Kakariko Guard
|
||||
// or are rando'd and haven't gotten gotten the letter from zelda yet
|
||||
if (this->actor.params == OSSAN_TYPE_MASK &&
|
||||
(!Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD) ||
|
||||
(IS_RANDO && !Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER)))) {
|
||||
if (this->actor.params == OSSAN_TYPE_MASK && !Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ bool CanMaskSelect() {
|
||||
void KaleidoScope_HandleItemCycles(PlayState* play) {
|
||||
// handle the mask select
|
||||
KaleidoScope_HandleItemCycleExtras(
|
||||
play, SLOT_TRADE_CHILD, CanMaskSelect(),
|
||||
play, SLOT_TRADE_CHILD, IS_RANDO || CanMaskSelect(),
|
||||
IS_RANDO ? Randomizer_GetPrevChildTradeItem()
|
||||
: (INV_CONTENT(ITEM_TRADE_CHILD) <= ITEM_MASK_KEATON || INV_CONTENT(ITEM_TRADE_CHILD) > ITEM_MASK_TRUTH
|
||||
? ITEM_MASK_TRUTH
|
||||
@@ -385,7 +385,7 @@ void KaleidoScope_HandleItemCycles(PlayState* play) {
|
||||
void KaleidoScope_DrawItemCycles(PlayState* play) {
|
||||
// draw the mask select
|
||||
KaleidoScope_DrawItemCycleExtras(
|
||||
play, SLOT_TRADE_CHILD, CanMaskSelect(),
|
||||
play, SLOT_TRADE_CHILD, IS_RANDO || CanMaskSelect(),
|
||||
IS_RANDO ? Randomizer_GetPrevChildTradeItem()
|
||||
: (INV_CONTENT(ITEM_TRADE_CHILD) <= ITEM_MASK_KEATON || INV_CONTENT(ITEM_TRADE_CHILD) > ITEM_MASK_TRUTH
|
||||
? ITEM_MASK_TRUTH
|
||||
|
||||
Reference in New Issue
Block a user