Stop hiding key counts with skeleton key, and grant all keys (#5932)
This commit is contained in:
@@ -1616,12 +1616,6 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case VB_RENDER_KEY_COUNTER: {
|
|
||||||
if (Flags_GetRandomizerInf(RAND_INF_HAS_SKELETON_KEY)) {
|
|
||||||
*should = false;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case VB_RENDER_RUPEE_COUNTER: {
|
case VB_RENDER_RUPEE_COUNTER: {
|
||||||
if (!Flags_GetRandomizerInf(RAND_INF_HAS_WALLET) || Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_MONEY)) {
|
if (!Flags_GetRandomizerInf(RAND_INF_HAS_WALLET) || Flags_GetRandomizerInf(RAND_INF_HAS_INFINITE_MONEY)) {
|
||||||
*should = false;
|
*should = false;
|
||||||
|
|||||||
@@ -5990,7 +5990,6 @@ std::map<RandomizerGet, RandomizerInf> randomizerGetToRandInf = {
|
|||||||
{ RG_MAGIC_INF, RAND_INF_HAS_INFINITE_MAGIC_METER },
|
{ RG_MAGIC_INF, RAND_INF_HAS_INFINITE_MAGIC_METER },
|
||||||
{ RG_BOMBCHU_INF, RAND_INF_HAS_INFINITE_BOMBCHUS },
|
{ RG_BOMBCHU_INF, RAND_INF_HAS_INFINITE_BOMBCHUS },
|
||||||
{ RG_WALLET_INF, RAND_INF_HAS_INFINITE_MONEY },
|
{ RG_WALLET_INF, RAND_INF_HAS_INFINITE_MONEY },
|
||||||
{ RG_SKELETON_KEY, RAND_INF_HAS_SKELETON_KEY },
|
|
||||||
{ RG_OCARINA_A_BUTTON, RAND_INF_HAS_OCARINA_A },
|
{ RG_OCARINA_A_BUTTON, RAND_INF_HAS_OCARINA_A },
|
||||||
{ RG_OCARINA_C_UP_BUTTON, RAND_INF_HAS_OCARINA_C_UP },
|
{ RG_OCARINA_C_UP_BUTTON, RAND_INF_HAS_OCARINA_C_UP },
|
||||||
{ RG_OCARINA_C_DOWN_BUTTON, RAND_INF_HAS_OCARINA_C_DOWN },
|
{ RG_OCARINA_C_DOWN_BUTTON, RAND_INF_HAS_OCARINA_C_DOWN },
|
||||||
@@ -6190,6 +6189,21 @@ extern "C" u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
gSaveContext.inventory.dungeonItems[mapIndex] |= bitmask;
|
gSaveContext.inventory.dungeonItems[mapIndex] |= bitmask;
|
||||||
|
return Return_Item_Entry(giEntry, RG_NONE);
|
||||||
|
} else if (item == RG_SKELETON_KEY) {
|
||||||
|
Flags_SetRandomizerInf(RAND_INF_HAS_SKELETON_KEY);
|
||||||
|
// This isn't technically necessary, because keys will no longer be consumed,
|
||||||
|
// but for the player's sanity we display that they _have_ keys.
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_FOREST_TEMPLE] = FOREST_TEMPLE_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_FIRE_TEMPLE] = FIRE_TEMPLE_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_WATER_TEMPLE] = WATER_TEMPLE_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_SPIRIT_TEMPLE] = SPIRIT_TEMPLE_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_SHADOW_TEMPLE] = SHADOW_TEMPLE_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_BOTTOM_OF_THE_WELL] = BOTTOM_OF_THE_WELL_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_GERUDO_TRAINING_GROUND] = GERUDO_TRAINING_GROUND_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_THIEVES_HIDEOUT] = GERUDO_FORTRESS_SMALL_KEY_MAX;
|
||||||
|
gSaveContext.inventory.dungeonKeys[SCENE_INSIDE_GANONS_CASTLE] = GANONS_CASTLE_SMALL_KEY_MAX;
|
||||||
|
|
||||||
return Return_Item_Entry(giEntry, RG_NONE);
|
return Return_Item_Entry(giEntry, RG_NONE);
|
||||||
} else if (item >= RG_GUARD_HOUSE_KEY && item <= RG_FISHING_HOLE_KEY) {
|
} else if (item >= RG_GUARD_HOUSE_KEY && item <= RG_FISHING_HOLE_KEY) {
|
||||||
Flags_SetRandomizerInf(
|
Flags_SetRandomizerInf(
|
||||||
|
|||||||
Reference in New Issue
Block a user