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."));
|
.Options(CheckboxOptions().Tooltip("Turns Bunny Hood Invisible while still maintaining its effects."));
|
||||||
AddWidget(path, "Mask Select in Inventory", WIDGET_CVAR_CHECKBOX)
|
AddWidget(path, "Mask Select in Inventory", WIDGET_CVAR_CHECKBOX)
|
||||||
.CVar(CVAR_ENHANCEMENT("MaskSelect"))
|
.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(
|
.Options(CheckboxOptions().Tooltip(
|
||||||
"After completing the mask trading sub-quest, press A and any direction on the mask "
|
"After completing the mask trading sub-quest, press A and any direction on the mask "
|
||||||
"slot to change masks."));
|
"slot to change masks."));
|
||||||
|
|||||||
@@ -322,7 +322,9 @@ void KaleidoScope_HandleItemCycleExtras(PlayState* play, u8 slot, bool canCycle,
|
|||||||
|
|
||||||
bool CanMaskSelect() {
|
bool CanMaskSelect() {
|
||||||
if (IS_RANDO) {
|
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)) ||
|
Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)) ||
|
||||||
Randomizer_GetSettingValue(RSK_MASK_QUEST) == RO_MASK_QUEST_SHUFFLE;
|
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)
|
// * zelda's letter check: Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER)
|
||||||
// * kak gate check: Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)
|
// * 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)
|
// 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_PAID_BACK_BUNNY_HOOD_FEE) &&
|
||||||
Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER) &&
|
Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER) &&
|
||||||
Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD);
|
Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD);
|
||||||
|
|||||||
Reference in New Issue
Block a user