mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-22 17:32:19 -05:00
Merge pull request #2890 from Archez/support-thieves-hideout-keyring
Expose Thieves' Hideout selection for keyrings in randomizer settings
This commit is contained in:
commit
f25c200526
@ -276,6 +276,7 @@ const std::vector<const char*> randomizerCvars = {
|
|||||||
"gRandomizeShuffleKeyRingsFireTemple",
|
"gRandomizeShuffleKeyRingsFireTemple",
|
||||||
"gRandomizeShuffleKeyRingsForestTemple",
|
"gRandomizeShuffleKeyRingsForestTemple",
|
||||||
"gRandomizeShuffleKeyRingsGanonsCastle",
|
"gRandomizeShuffleKeyRingsGanonsCastle",
|
||||||
|
"gRandomizeShuffleKeyRingsGerudoFortress",
|
||||||
"gRandomizeShuffleKeyRingsGTG",
|
"gRandomizeShuffleKeyRingsGTG",
|
||||||
"gRandomizeShuffleKeyRingsRandomCount",
|
"gRandomizeShuffleKeyRingsRandomCount",
|
||||||
"gRandomizeShuffleKeyRingsShadowTemple",
|
"gRandomizeShuffleKeyRingsShadowTemple",
|
||||||
|
@ -236,7 +236,7 @@ namespace Settings {
|
|||||||
Option LACSDungeonCount = Option::U8 ("Dungeon Count", {NumOpts(0, 8)}, {lacsDungeonCountDesc}, OptionCategory::Setting, 1, true);
|
Option LACSDungeonCount = Option::U8 ("Dungeon Count", {NumOpts(0, 8)}, {lacsDungeonCountDesc}, OptionCategory::Setting, 1, true);
|
||||||
Option LACSTokenCount = Option::U8 ("Token Count", {NumOpts(0, 100)}, {lacsTokenCountDesc}, OptionCategory::Setting, 1, true);
|
Option LACSTokenCount = Option::U8 ("Token Count", {NumOpts(0, 100)}, {lacsTokenCountDesc}, OptionCategory::Setting, 1, true);
|
||||||
Option KeyRings = Option::U8 ("Key Rings", {"Off", "Random", "Count", "Selection"}, {keyRingDesc});
|
Option KeyRings = Option::U8 ("Key Rings", {"Off", "Random", "Count", "Selection"}, {keyRingDesc});
|
||||||
Option KeyRingsRandomCount = Option::U8 ("Keyring Dungeon Count", {NumOpts(0, 8)}, {keyRingDesc}, OptionCategory::Setting, 1);
|
Option KeyRingsRandomCount = Option::U8 ("Keyring Dungeon Count", {NumOpts(0, 9)}, {keyRingDesc}, OptionCategory::Setting, 1);
|
||||||
Option RingFortress = Option::Bool("Gerudo Fortress", {"Off", "On"}, {keyRingDesc}, OptionCategory::Setting);
|
Option RingFortress = Option::Bool("Gerudo Fortress", {"Off", "On"}, {keyRingDesc}, OptionCategory::Setting);
|
||||||
Option RingForest = Option::Bool("Forest Temple", {"Off", "On"}, {keyRingDesc}, OptionCategory::Setting);
|
Option RingForest = Option::Bool("Forest Temple", {"Off", "On"}, {keyRingDesc}, OptionCategory::Setting);
|
||||||
Option RingFire = Option::Bool("Fire Temple", {"Off", "On"}, {keyRingDesc}, OptionCategory::Setting);
|
Option RingFire = Option::Bool("Fire Temple", {"Off", "On"}, {keyRingDesc}, OptionCategory::Setting);
|
||||||
@ -272,7 +272,6 @@ namespace Settings {
|
|||||||
&RingCastle,
|
&RingCastle,
|
||||||
};
|
};
|
||||||
std::vector<Option *> keyRingOptions = {
|
std::vector<Option *> keyRingOptions = {
|
||||||
&RingFortress,
|
|
||||||
&RingForest,
|
&RingForest,
|
||||||
&RingFire,
|
&RingFire,
|
||||||
&RingWater,
|
&RingWater,
|
||||||
@ -2155,7 +2154,8 @@ namespace Settings {
|
|||||||
LACSTokenCount.Hide();
|
LACSTokenCount.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (KeyRings.IsNot(KEYRINGS_OFF)) {
|
// Only show dungeons when keyring selection is enabled
|
||||||
|
if (KeyRings.Is(KEYRINGS_SELECTION)) {
|
||||||
for (Option *option : keyRingOptions) {
|
for (Option *option : keyRingOptions) {
|
||||||
option->Unhide();
|
option->Unhide();
|
||||||
}
|
}
|
||||||
@ -2829,6 +2829,7 @@ namespace Settings {
|
|||||||
|
|
||||||
KeyRings.SetSelectedIndex(cvarSettings[RSK_KEYRINGS]);
|
KeyRings.SetSelectedIndex(cvarSettings[RSK_KEYRINGS]);
|
||||||
KeyRingsRandomCount.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_RANDOM_COUNT]);
|
KeyRingsRandomCount.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_RANDOM_COUNT]);
|
||||||
|
RingFortress.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_GERUDO_FORTRESS]);
|
||||||
RingForest.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_FOREST_TEMPLE]);
|
RingForest.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_FOREST_TEMPLE]);
|
||||||
RingFire.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_FIRE_TEMPLE]);
|
RingFire.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_FIRE_TEMPLE]);
|
||||||
RingWater.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_WATER_TEMPLE]);
|
RingWater.SetSelectedIndex(cvarSettings[RSK_KEYRINGS_WATER_TEMPLE]);
|
||||||
@ -2923,22 +2924,23 @@ namespace Settings {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<uint8_t> randKeyRingDungeons = {};
|
|
||||||
//Set key ring for each dungeon
|
//Set key ring for each dungeon
|
||||||
for (size_t i = 0; i < dungeons.size(); i++) {
|
for (size_t i = 0; i < dungeons.size(); i++) {
|
||||||
dungeons[i]->ClearKeyRing();
|
dungeons[i]->ClearKeyRing();
|
||||||
if (dungeons[i]->GetSmallKeyCount() > 0) {
|
|
||||||
randKeyRingDungeons.push_back(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (KeyRings) {
|
||||||
|
// Random Key Rings
|
||||||
if (KeyRings.Is(KEYRINGS_RANDOM) || KeyRings.Is(KEYRINGS_RANDOM_COUNT)) {
|
if (KeyRings.Is(KEYRINGS_RANDOM) || KeyRings.Is(KEYRINGS_RANDOM_COUNT)) {
|
||||||
int keyRingCount = KeyRings.Is(KEYRINGS_RANDOM_COUNT) ? KeyRingsRandomCount.Value<uint8_t>() : Random(0, randKeyRingDungeons.size());
|
auto keyRings = keyRingOptions;
|
||||||
Shuffle(randKeyRingDungeons);
|
if (GerudoFortress.Is(GERUDOFORTRESS_NORMAL) && GerudoKeys.IsNot(GERUDOKEYS_VANILLA)) {
|
||||||
|
keyRings.push_back(&RingFortress);
|
||||||
for (uint8_t i = 0; i < keyRingCount; i++) {
|
}
|
||||||
dungeons[randKeyRingDungeons[i]]->SetKeyRing();
|
int keyRingCount = KeyRings.Is(KEYRINGS_RANDOM_COUNT) ? KeyRingsRandomCount.Value<uint8_t>() : Random(0, keyRings.size());
|
||||||
|
Shuffle(keyRings);
|
||||||
|
for (size_t i = 0; i < keyRingCount; i++) {
|
||||||
|
keyRings[i]->SetSelectedIndex(ON);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (KeyRings.Is(KEYRINGS_SELECTION)) {
|
|
||||||
if (RingWell) {
|
if (RingWell) {
|
||||||
BottomOfTheWell.SetKeyRing();
|
BottomOfTheWell.SetKeyRing();
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ extern "C" void Randomizer_DrawSmallKey(PlayState* play, GetItemEntry* getItemEn
|
|||||||
{ 126, 16, 177 }, // Shadow Temple
|
{ 126, 16, 177 }, // Shadow Temple
|
||||||
{ 227, 110, 255 }, // Bottom of the Well
|
{ 227, 110, 255 }, // Bottom of the Well
|
||||||
{ 221, 212, 60 }, // Gerudo Training Grounds
|
{ 221, 212, 60 }, // Gerudo Training Grounds
|
||||||
{ 255, 255, 255 }, // Theive's Hideout (unused)
|
{ 255, 255, 255 }, // Thieves' Hideout
|
||||||
{ 80, 80, 80 } // Ganon's Castle
|
{ 80, 80, 80 } // Ganon's Castle
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ extern "C" void Randomizer_DrawKeyRing(PlayState* play, GetItemEntry* getItemEnt
|
|||||||
{ 126, 16, 177 }, // Shadow Temple
|
{ 126, 16, 177 }, // Shadow Temple
|
||||||
{ 227, 110, 255 }, // Bottom of the Well
|
{ 227, 110, 255 }, // Bottom of the Well
|
||||||
{ 221, 212, 60 }, // Gerudo Training Grounds
|
{ 221, 212, 60 }, // Gerudo Training Grounds
|
||||||
{ 255, 255, 255 }, // Theive's Hideout (unused)
|
{ 255, 255, 255 }, // Thieves' Hideout
|
||||||
{ 80, 80, 80 } // Ganon's Castle
|
{ 80, 80, 80 } // Ganon's Castle
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -270,6 +270,7 @@ std::unordered_map<std::string, RandomizerSettingKey> SpoilerfileSettingNameToEn
|
|||||||
{ "Shuffle Dungeon Items:Token Count", RSK_LACS_TOKEN_COUNT },
|
{ "Shuffle Dungeon Items:Token Count", RSK_LACS_TOKEN_COUNT },
|
||||||
{ "Shuffle Dungeon Items:Key Rings", RSK_KEYRINGS },
|
{ "Shuffle Dungeon Items:Key Rings", RSK_KEYRINGS },
|
||||||
{ "Shuffle Dungeon Items:Keyring Dungeon Count", RSK_KEYRINGS_RANDOM_COUNT },
|
{ "Shuffle Dungeon Items:Keyring Dungeon Count", RSK_KEYRINGS_RANDOM_COUNT },
|
||||||
|
{ "Shuffle Dungeon Items:Gerudo Fortress", RSK_KEYRINGS_GERUDO_FORTRESS },
|
||||||
{ "Shuffle Dungeon Items:Forest Temple", RSK_KEYRINGS_FOREST_TEMPLE },
|
{ "Shuffle Dungeon Items:Forest Temple", RSK_KEYRINGS_FOREST_TEMPLE },
|
||||||
{ "Shuffle Dungeon Items:Fire Temple", RSK_KEYRINGS_FIRE_TEMPLE },
|
{ "Shuffle Dungeon Items:Fire Temple", RSK_KEYRINGS_FIRE_TEMPLE },
|
||||||
{ "Shuffle Dungeon Items:Water Temple", RSK_KEYRINGS_WATER_TEMPLE },
|
{ "Shuffle Dungeon Items:Water Temple", RSK_KEYRINGS_WATER_TEMPLE },
|
||||||
@ -803,6 +804,7 @@ void Randomizer::ParseRandomizerSettingsFile(const char* spoilerFileName) {
|
|||||||
case RSK_KAK_50_SKULLS_HINT:
|
case RSK_KAK_50_SKULLS_HINT:
|
||||||
case RSK_WARP_SONG_HINTS:
|
case RSK_WARP_SONG_HINTS:
|
||||||
case RSK_SCRUB_TEXT_HINT:
|
case RSK_SCRUB_TEXT_HINT:
|
||||||
|
case RSK_KEYRINGS_GERUDO_FORTRESS:
|
||||||
case RSK_KEYRINGS_FOREST_TEMPLE:
|
case RSK_KEYRINGS_FOREST_TEMPLE:
|
||||||
case RSK_KEYRINGS_FIRE_TEMPLE:
|
case RSK_KEYRINGS_FIRE_TEMPLE:
|
||||||
case RSK_KEYRINGS_WATER_TEMPLE:
|
case RSK_KEYRINGS_WATER_TEMPLE:
|
||||||
@ -2923,7 +2925,17 @@ void GenerateRandomizerImgui(std::string seed = "") {
|
|||||||
cvarSettings[RSK_KEYSANITY] = CVarGetInteger("gRandomizeKeysanity", RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
cvarSettings[RSK_KEYSANITY] = CVarGetInteger("gRandomizeKeysanity", RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
||||||
cvarSettings[RSK_GERUDO_KEYS] = CVarGetInteger("gRandomizeGerudoKeys", RO_GERUDO_KEYS_VANILLA);
|
cvarSettings[RSK_GERUDO_KEYS] = CVarGetInteger("gRandomizeGerudoKeys", RO_GERUDO_KEYS_VANILLA);
|
||||||
cvarSettings[RSK_KEYRINGS] = CVarGetInteger("gRandomizeShuffleKeyRings", RO_KEYRINGS_OFF);
|
cvarSettings[RSK_KEYRINGS] = CVarGetInteger("gRandomizeShuffleKeyRings", RO_KEYRINGS_OFF);
|
||||||
cvarSettings[RSK_KEYRINGS_RANDOM_COUNT] = CVarGetInteger("gRandomizeShuffleKeyRingsRandomCount", 8);
|
int maxKeyringCount = (CVarGetInteger("gRandomizeGerudoFortress", RO_GF_NORMAL) == RO_GF_NORMAL &&
|
||||||
|
CVarGetInteger("gRandomizeGerudoKeys", RO_GERUDO_KEYS_VANILLA) != RO_GERUDO_KEYS_VANILLA)
|
||||||
|
? 9
|
||||||
|
: 8;
|
||||||
|
cvarSettings[RSK_KEYRINGS_RANDOM_COUNT] = std::min(CVarGetInteger("gRandomizeShuffleKeyRingsRandomCount", maxKeyringCount), maxKeyringCount);
|
||||||
|
// Don't allow this to be on if Gerudo Fortress Carpenters is anything other than Normal
|
||||||
|
cvarSettings[RSK_KEYRINGS_GERUDO_FORTRESS] =
|
||||||
|
(CVarGetInteger("gRandomizeGerudoFortress", RO_GF_NORMAL) == RO_GF_NORMAL &&
|
||||||
|
CVarGetInteger("gRandomizeGerudoKeys", RO_GERUDO_KEYS_VANILLA) != RO_GERUDO_KEYS_VANILLA)
|
||||||
|
? CVarGetInteger("gRandomizeShuffleKeyRingsGerudoFortress", RO_GENERIC_OFF)
|
||||||
|
: RO_GENERIC_OFF;
|
||||||
cvarSettings[RSK_KEYRINGS_FOREST_TEMPLE] = CVarGetInteger("gRandomizeShuffleKeyRingsForestTemple", 0);
|
cvarSettings[RSK_KEYRINGS_FOREST_TEMPLE] = CVarGetInteger("gRandomizeShuffleKeyRingsForestTemple", 0);
|
||||||
cvarSettings[RSK_KEYRINGS_FIRE_TEMPLE] = CVarGetInteger("gRandomizeShuffleKeyRingsFireTemple", 0);
|
cvarSettings[RSK_KEYRINGS_FIRE_TEMPLE] = CVarGetInteger("gRandomizeShuffleKeyRingsFireTemple", 0);
|
||||||
cvarSettings[RSK_KEYRINGS_WATER_TEMPLE] = CVarGetInteger("gRandomizeShuffleKeyRingsWaterTemple", 0);
|
cvarSettings[RSK_KEYRINGS_WATER_TEMPLE] = CVarGetInteger("gRandomizeShuffleKeyRingsWaterTemple", 0);
|
||||||
@ -3115,6 +3127,9 @@ void DrawRandoEditor(bool& open) {
|
|||||||
static const char* randoItemPool[4] = { "Plentiful", "Balanced", "Scarce", "Minimal" };
|
static const char* randoItemPool[4] = { "Plentiful", "Balanced", "Scarce", "Minimal" };
|
||||||
static const char* randoIceTraps[5] = { "Off", "Normal", "Extra", "Mayhem", "Onslaught" };
|
static const char* randoIceTraps[5] = { "Off", "Normal", "Extra", "Mayhem", "Onslaught" };
|
||||||
|
|
||||||
|
static int maxKeyringCount;
|
||||||
|
static bool disableGFKeyring = false;
|
||||||
|
|
||||||
ImGui::SetNextWindowSize(ImVec2(920, 600), ImGuiCond_FirstUseEver);
|
ImGui::SetNextWindowSize(ImVec2(920, 600), ImGuiCond_FirstUseEver);
|
||||||
if (!ImGui::Begin("Randomizer Editor", &open, ImGuiWindowFlags_NoFocusOnAppearing)) {
|
if (!ImGui::Begin("Randomizer Editor", &open, ImGuiWindowFlags_NoFocusOnAppearing)) {
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
@ -3282,7 +3297,9 @@ void DrawRandoEditor(bool& open) {
|
|||||||
"\n"
|
"\n"
|
||||||
"Fast - Only the bottom left carpenter requires rescuing.\n"
|
"Fast - Only the bottom left carpenter requires rescuing.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Open - The bridge is repaired from the start."
|
"Open - The bridge is repaired from the start.\n"
|
||||||
|
"\n"
|
||||||
|
"Only \"Normal\" is compatible with Gerudo Fortress Key Rings."
|
||||||
);
|
);
|
||||||
UIWidgets::EnhancementCombobox("gRandomizeGerudoFortress", randoGerudoFortress, RO_GF_NORMAL);
|
UIWidgets::EnhancementCombobox("gRandomizeGerudoFortress", randoGerudoFortress, RO_GF_NORMAL);
|
||||||
|
|
||||||
@ -3879,20 +3896,38 @@ void DrawRandoEditor(bool& open) {
|
|||||||
"\n"
|
"\n"
|
||||||
"Off - No dungeons will have their keys replaced with keyrings.\n"
|
"Off - No dungeons will have their keys replaced with keyrings.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Random - A random amount of dungeons(0-8) will have their keys replaced with keyrings.\n"
|
"Random - A random amount of dungeons(0-8 or 9) will have their keys replaced with keyrings.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Count - A specified amount of randomly selected dungeons will have their keys replaced with keyrings.\n"
|
"Count - A specified amount of randomly selected dungeons will have their keys replaced with keyrings.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Selection - Hand select which dungeons will have their keys replaced with keyrings."
|
"Selection - Hand select which dungeons will have their keys replaced with keyrings.\n"
|
||||||
|
"\n"
|
||||||
|
"Selecting key ring for dungeons will have no effect if Small Keys are set to Start With or Vanilla.\n"
|
||||||
|
"\n"
|
||||||
|
"If Gerudo Fortress Carpenters is set to Normal, and Gerudo Fortress Keys is set to anything "
|
||||||
|
"other than Vanilla, then the maximum amount of Key Rings that can be selected by Random or "
|
||||||
|
"Count will be 9. Otherwise, the maximum amount of Key Rings will be 8."
|
||||||
);
|
);
|
||||||
UIWidgets::EnhancementCombobox("gRandomizeShuffleKeyRings", randoShuffleKeyRings, RO_KEYRINGS_OFF);
|
UIWidgets::EnhancementCombobox("gRandomizeShuffleKeyRings", randoShuffleKeyRings, RO_KEYRINGS_OFF);
|
||||||
ImGui::PopItemWidth();
|
ImGui::PopItemWidth();
|
||||||
switch (CVarGetInteger("gRandomizeShuffleKeyRings", RO_KEYRINGS_OFF)) {
|
switch (CVarGetInteger("gRandomizeShuffleKeyRings", RO_KEYRINGS_OFF)) {
|
||||||
case RO_KEYRINGS_COUNT:
|
case RO_KEYRINGS_COUNT:
|
||||||
UIWidgets::PaddedEnhancementSliderInt("Key Ring Count: %d", "##RandomizeShuffleKeyRingsRandomCount",
|
maxKeyringCount =
|
||||||
"gRandomizeShuffleKeyRingsRandomCount", 1, 8, "", 8, true, true, false);
|
(CVarGetInteger("gRandomizeGerudoFortress", RO_GF_NORMAL) == RO_GF_NORMAL &&
|
||||||
|
CVarGetInteger("gRandomizeGerudoKeys", RO_GERUDO_KEYS_VANILLA) != RO_GERUDO_KEYS_VANILLA)
|
||||||
|
? 9
|
||||||
|
: 8;
|
||||||
|
UIWidgets::PaddedEnhancementSliderInt("Key Ring Count: %d",
|
||||||
|
"##RandomizeShuffleKeyRingsRandomCount",
|
||||||
|
"gRandomizeShuffleKeyRingsRandomCount", 1,
|
||||||
|
maxKeyringCount, "", maxKeyringCount, true, true, false);
|
||||||
break;
|
break;
|
||||||
case RO_KEYRINGS_SELECTION:
|
case RO_KEYRINGS_SELECTION:
|
||||||
|
disableGFKeyring =
|
||||||
|
CVarGetInteger("gRandomizeGerudoFortress", RO_GF_NORMAL) != RO_GF_NORMAL || CVarGetInteger("gRandomizeGerudoKeys", RO_GERUDO_KEYS_VANILLA) == RO_GERUDO_KEYS_VANILLA;
|
||||||
|
UIWidgets::EnhancementCheckbox(
|
||||||
|
"Gerudo Fortress##RandomizeShuffleKeyRings", "gRandomizeShuffleKeyRingsGerudoFortress",
|
||||||
|
disableGFKeyring, "Disabled because the currently selected Gerudo Fortress Carpenters\n setting and/or Gerudo Fortress Keys setting is incompatible with \nhaving a Gerudo Fortress keyring.");
|
||||||
UIWidgets::EnhancementCheckbox("Forest Temple##RandomizeShuffleKeyRings", "gRandomizeShuffleKeyRingsForestTemple");
|
UIWidgets::EnhancementCheckbox("Forest Temple##RandomizeShuffleKeyRings", "gRandomizeShuffleKeyRingsForestTemple");
|
||||||
UIWidgets::EnhancementCheckbox("Fire Temple##RandomizeShuffleKeyRings", "gRandomizeShuffleKeyRingsFireTemple");
|
UIWidgets::EnhancementCheckbox("Fire Temple##RandomizeShuffleKeyRings", "gRandomizeShuffleKeyRingsFireTemple");
|
||||||
UIWidgets::EnhancementCheckbox("Water Temple##RandomizeShuffleKeyRings", "gRandomizeShuffleKeyRingsWaterTemple");
|
UIWidgets::EnhancementCheckbox("Water Temple##RandomizeShuffleKeyRings", "gRandomizeShuffleKeyRingsWaterTemple");
|
||||||
|
@ -1072,6 +1072,7 @@ typedef enum {
|
|||||||
RSK_LACS_TOKEN_COUNT,
|
RSK_LACS_TOKEN_COUNT,
|
||||||
RSK_KEYRINGS,
|
RSK_KEYRINGS,
|
||||||
RSK_KEYRINGS_RANDOM_COUNT,
|
RSK_KEYRINGS_RANDOM_COUNT,
|
||||||
|
RSK_KEYRINGS_GERUDO_FORTRESS,
|
||||||
RSK_KEYRINGS_FOREST_TEMPLE,
|
RSK_KEYRINGS_FOREST_TEMPLE,
|
||||||
RSK_KEYRINGS_FIRE_TEMPLE,
|
RSK_KEYRINGS_FIRE_TEMPLE,
|
||||||
RSK_KEYRINGS_WATER_TEMPLE,
|
RSK_KEYRINGS_WATER_TEMPLE,
|
||||||
|
Loading…
Reference in New Issue
Block a user