MM Bunny Hood effect separated from ability to equip as adult (#3253)

* adult separator

* use cross instead of checkmark

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>

* suggested load fix

---------

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
This commit is contained in:
inspectredc 2023-10-16 00:10:24 +01:00 committed by GitHub
parent 3ed976e6af
commit fe90ad0268
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 2 deletions

View File

@ -74,6 +74,7 @@ const std::vector<const char*> enhancementsCvars = {
"gNoForcedNavi", "gNoForcedNavi",
"gSkulltulaFreeze", "gSkulltulaFreeze",
"gMMBunnyHood", "gMMBunnyHood",
"gAdultBunnyHood",
"gFastChests", "gFastChests",
"gChestSizeAndTextureMatchesContents", "gChestSizeAndTextureMatchesContents",
"gFastDrops", "gFastDrops",
@ -545,6 +546,8 @@ const std::vector<PresetEntry> enhancedPresetEntries = {
PRESET_ENTRY_S32("gSkulltulaFreeze", 1), PRESET_ENTRY_S32("gSkulltulaFreeze", 1),
// MM Bunny Hood // MM Bunny Hood
PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST_AND_JUMP), PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST_AND_JUMP),
// Adult Bunny Hood
PRESET_ENTRY_S32("gAdultBunnyHood", 1),
// Fast Chests // Fast Chests
PRESET_ENTRY_S32("gFastChests", 1), PRESET_ENTRY_S32("gFastChests", 1),
// Fast Drops // Fast Drops
@ -665,6 +668,8 @@ const std::vector<PresetEntry> randomizerPresetEntries = {
PRESET_ENTRY_S32("gSkulltulaFreeze", 1), PRESET_ENTRY_S32("gSkulltulaFreeze", 1),
// MM Bunny Hood // MM Bunny Hood
PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST_AND_JUMP), PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST_AND_JUMP),
// Adult Bunny Hood
PRESET_ENTRY_S32("gAdultBunnyHood", 1),
// Fast Chests // Fast Chests
PRESET_ENTRY_S32("gFastChests", 1), PRESET_ENTRY_S32("gFastChests", 1),
// Fast Drops // Fast Drops
@ -763,6 +768,7 @@ const std::vector<PresetEntry> spockRacePresetEntries = {
PRESET_ENTRY_S32("gInstantPutaway", 1), PRESET_ENTRY_S32("gInstantPutaway", 1),
PRESET_ENTRY_S32("gFastBoomerang", 1), PRESET_ENTRY_S32("gFastBoomerang", 1),
PRESET_ENTRY_S32("gDpadNoDropOcarinaInput", 1), PRESET_ENTRY_S32("gDpadNoDropOcarinaInput", 1),
PRESET_ENTRY_S32("gAdultBunnyHood", 1),
PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST), PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST),
PRESET_ENTRY_S32("gSeparateArrows", 1), PRESET_ENTRY_S32("gSeparateArrows", 1),
PRESET_ENTRY_S32("gAssignableTunicsAndBoots", 1), PRESET_ENTRY_S32("gAssignableTunicsAndBoots", 1),
@ -835,6 +841,7 @@ const std::vector<PresetEntry> spockRacePresetEntries = {
}; };
const std::vector<PresetEntry> spockRaceNoLogicPresetEntries = { const std::vector<PresetEntry> spockRaceNoLogicPresetEntries = {
PRESET_ENTRY_S32("gAdultBunnyHood", 1),
PRESET_ENTRY_S32("gAdultMinimumWeightFish", 6), PRESET_ENTRY_S32("gAdultMinimumWeightFish", 6),
PRESET_ENTRY_S32("gAssignableTunicsAndBoots", 1), PRESET_ENTRY_S32("gAssignableTunicsAndBoots", 1),
PRESET_ENTRY_S32("gCheatEasyPauseBufferEnabled", 1), PRESET_ENTRY_S32("gCheatEasyPauseBufferEnabled", 1),
@ -945,6 +952,7 @@ const std::vector<PresetEntry> s6PresetEntries = {
PRESET_ENTRY_S32("gChestSizeAndTextureMatchesContents", CSMC_BOTH), PRESET_ENTRY_S32("gChestSizeAndTextureMatchesContents", CSMC_BOTH),
PRESET_ENTRY_S32("gFastChests", 1), PRESET_ENTRY_S32("gFastChests", 1),
PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST), PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST),
PRESET_ENTRY_S32("gAdultBunnyHood", 1),
PRESET_ENTRY_S32("gRandomizeBigPoeTargetCount", 1), PRESET_ENTRY_S32("gRandomizeBigPoeTargetCount", 1),
PRESET_ENTRY_S32("gRandomizeCuccosToReturn", 4), PRESET_ENTRY_S32("gRandomizeCuccosToReturn", 4),
PRESET_ENTRY_S32("gRandomizeDoorOfTime", RO_DOOROFTIME_OPEN), PRESET_ENTRY_S32("gRandomizeDoorOfTime", RO_DOOROFTIME_OPEN),
@ -978,6 +986,7 @@ const std::vector<PresetEntry> hellModePresetEntries = {
PRESET_ENTRY_S32("gChestSizeAndTextureMatchesContents", CSMC_BOTH), PRESET_ENTRY_S32("gChestSizeAndTextureMatchesContents", CSMC_BOTH),
PRESET_ENTRY_S32("gFastChests", 1), PRESET_ENTRY_S32("gFastChests", 1),
PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST), PRESET_ENTRY_S32("gMMBunnyHood", BUNNY_HOOD_FAST),
PRESET_ENTRY_S32("gAdultBunnyHood", 1),
PRESET_ENTRY_S32("gRandomizeBigPoeTargetCount", 1), PRESET_ENTRY_S32("gRandomizeBigPoeTargetCount", 1),
PRESET_ENTRY_S32("gRandomizeBlueFireArrows", 1), PRESET_ENTRY_S32("gRandomizeBlueFireArrows", 1),
PRESET_ENTRY_S32("gRandomizeBossKeysanity", RO_DUNGEON_ITEM_LOC_ANYWHERE), PRESET_ENTRY_S32("gRandomizeBossKeysanity", RO_DUNGEON_ITEM_LOC_ANYWHERE),

View File

@ -586,6 +586,8 @@ void DrawEnhancementsMenu() {
"Wearing the Bunny Hood grants a speed increase like in Majora's Mask. The longer jump option is not accounted for in randomizer logic.\n\n" "Wearing the Bunny Hood grants a speed increase like in Majora's Mask. The longer jump option is not accounted for in randomizer logic.\n\n"
"Also disables NPC's reactions to wearing the Bunny Hood." "Also disables NPC's reactions to wearing the Bunny Hood."
); );
UIWidgets::PaddedEnhancementCheckbox("Bunny Hood Equippable as Adult", "gAdultBunnyHood", true, false, (CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) == BUNNY_HOOD_VANILLA), "Only available with increased bunny hood speed", UIWidgets::CheckboxGraphics::Cross, false);
UIWidgets::Tooltip("Allows the bunny hood to be equipped normally from the pause menu as adult.");
UIWidgets::PaddedEnhancementCheckbox("Mask Select in Inventory", "gMaskSelect", true, false); UIWidgets::PaddedEnhancementCheckbox("Mask Select in Inventory", "gMaskSelect", true, false);
UIWidgets::Tooltip("After completing the mask trading sub-quest, press A and any direction on the mask slot to change masks"); UIWidgets::Tooltip("After completing the mask trading sub-quest, press A and any direction on the mask slot to change masks");
UIWidgets::PaddedEnhancementCheckbox("Nuts explode bombs", "gNutsExplodeBombs", true, false); UIWidgets::PaddedEnhancementCheckbox("Nuts explode bombs", "gNutsExplodeBombs", true, false);

View File

@ -653,7 +653,7 @@ void Play_Init(GameState* thisx) {
Fault_AddClient(&D_801614B8, ZeldaArena_Display, NULL, NULL); Fault_AddClient(&D_801614B8, ZeldaArena_Display, NULL, NULL);
// In order to keep bunny hood equipped on first load, we need to pre-set the age reqs for the item and slot // In order to keep bunny hood equipped on first load, we need to pre-set the age reqs for the item and slot
if (CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA || CVarGetInteger("gTimelessEquipment", 0)) { if ((CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA && CVarGetInteger("gAdultBunnyHood", 0)) || CVarGetInteger("gTimelessEquipment", 0)) {
gItemAgeReqs[ITEM_MASK_BUNNY] = 9; gItemAgeReqs[ITEM_MASK_BUNNY] = 9;
if(INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY) if(INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY)
gSlotAgeReqs[SLOT_TRADE_CHILD] = 9; gSlotAgeReqs[SLOT_TRADE_CHILD] = 9;

View File

@ -538,7 +538,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
gSelectingMask = cursorSlot == SLOT_TRADE_CHILD; gSelectingMask = cursorSlot == SLOT_TRADE_CHILD;
gSlotAgeReqs[SLOT_TRADE_CHILD] = gItemAgeReqs[ITEM_MASK_BUNNY] = gSlotAgeReqs[SLOT_TRADE_CHILD] = gItemAgeReqs[ITEM_MASK_BUNNY] =
((CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA || CVarGetInteger("gTimelessEquipment", 0)) && ((((CVarGetInteger("gMMBunnyHood", BUNNY_HOOD_VANILLA) != BUNNY_HOOD_VANILLA) && CVarGetInteger("gAdultBunnyHood", 0)) || CVarGetInteger("gTimelessEquipment", 0)) &&
INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY) INV_CONTENT(ITEM_TRADE_CHILD) == ITEM_MASK_BUNNY)
? 9 ? 9
: 1; : 1;