Enforce mask select properly on completed (#6326)
This commit is contained in:
@@ -843,6 +843,12 @@ void SohMenu::AddMenuEnhancements() {
|
||||
.Options(CheckboxOptions().Tooltip("Turns Bunny Hood Invisible while still maintaining its effects."));
|
||||
AddWidget(path, "Mask Select in Inventory", WIDGET_CVAR_CHECKBOX)
|
||||
.CVar(CVAR_ENHANCEMENT("MaskSelect"))
|
||||
.PreFunc([](WidgetInfo& info) {
|
||||
info.options->disabled =
|
||||
OTRGlobals::Instance->gRandoContext->GetOption(RSK_MASK_QUEST).IsNot(RO_MASK_QUEST_VANILLA);
|
||||
info.options->disabledTooltip =
|
||||
"This setting is forcefully enabled when Mask Quest is Completed from the start or Shuffled";
|
||||
})
|
||||
.Options(CheckboxOptions().Tooltip(
|
||||
"After completing the mask trading sub-quest, press A and any direction on the mask "
|
||||
"slot to change masks."));
|
||||
|
||||
@@ -322,7 +322,9 @@ void KaleidoScope_HandleItemCycleExtras(PlayState* play, u8 slot, bool canCycle,
|
||||
|
||||
bool CanMaskSelect() {
|
||||
if (IS_RANDO) {
|
||||
return (CVarGetInteger(CVAR_ENHANCEMENT("MaskSelect"), 0) && Flags_GetRandomizerInf(RAND_INF_ZELDAS_LETTER) &&
|
||||
return ((CVarGetInteger(CVAR_ENHANCEMENT("MaskSelect"), 0) ||
|
||||
Randomizer_GetSettingValue(RSK_MASK_QUEST) != RO_MASK_QUEST_VANILLA) &&
|
||||
Flags_GetRandomizerInf(RAND_INF_ZELDAS_LETTER) &&
|
||||
Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)) ||
|
||||
Randomizer_GetSettingValue(RSK_MASK_QUEST) == RO_MASK_QUEST_SHUFFLE;
|
||||
}
|
||||
@@ -332,7 +334,8 @@ bool CanMaskSelect() {
|
||||
// * zelda's letter check: Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER)
|
||||
// * kak gate check: Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)
|
||||
// and the mask quest is complete: Flags_GetEventChkInf(EVENTCHKINF_PAID_BACK_BUNNY_HOOD_FEE)
|
||||
return CVarGetInteger(CVAR_ENHANCEMENT("MaskSelect"), 0) &&
|
||||
return (CVarGetInteger(CVAR_ENHANCEMENT("MaskSelect"), 0) ||
|
||||
Randomizer_GetSettingValue(RSK_MASK_QUEST) != RO_MASK_QUEST_VANILLA) &&
|
||||
Flags_GetEventChkInf(EVENTCHKINF_PAID_BACK_BUNNY_HOOD_FEE) &&
|
||||
Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER) &&
|
||||
Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD);
|
||||
|
||||
Reference in New Issue
Block a user