summaryrefslogtreecommitdiff
path: root/soh/src/code
diff options
context:
space:
mode:
Diffstat (limited to 'soh/src/code')
-rw-r--r--soh/src/code/z_parameter.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c
index 3bc7c9c6a..46a87d649 100644
--- a/soh/src/code/z_parameter.c
+++ b/soh/src/code/z_parameter.c
@@ -1521,6 +1521,13 @@ void Inventory_SwapAgeEquipment(void) {
}
}
+ // In Rando, when switching to adult for the second+ time, if a sword was not previously
+ // equiped in MS shuffle, then we need to set the swordless flag again
+ if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_MASTER_SWORD) &&
+ gSaveContext.equips.buttonItems[0] == ITEM_NONE) {
+ Flags_SetInfTable(INFTABLE_SWORDLESS);
+ }
+
gSaveContext.equips.equipment = gSaveContext.adultEquips.equipment;
}
} else {
@@ -1589,6 +1596,13 @@ void Inventory_SwapAgeEquipment(void) {
}
}
+ // In Rando, when switching to child from a swordless adult, and child Link previously had a
+ // sword equiped, then we need to unset the swordless flag to match
+ if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_MASTER_SWORD) &&
+ gSaveContext.equips.buttonItems[0] != ITEM_NONE) {
+ Flags_UnsetInfTable(INFTABLE_SWORDLESS);
+ }
+
gSaveContext.equips.equipment = gSaveContext.childEquips.equipment;
gSaveContext.equips.equipment &= (u16) ~(0xF << (EQUIP_TYPE_SWORD * 4));
gSaveContext.equips.equipment |= EQUIP_VALUE_SWORD_KOKIRI << (EQUIP_TYPE_SWORD * 4);