mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-25 15:21:52 -05:00
Implement option to start with a specific number of skulltula tokens (#1967)
This commit is contained in:
parent
adb1365200
commit
283854c854
soh
soh/Enhancements/randomizer
src/code
@ -2595,6 +2595,8 @@ namespace Settings {
|
||||
StartingDekuShield.SetSelectedIndex(cvarSettings[RSK_STARTING_DEKU_SHIELD]);
|
||||
StartingKokiriSword.SetSelectedIndex(cvarSettings[RSK_STARTING_KOKIRI_SWORD]);
|
||||
|
||||
StartingSkulltulaToken.SetSelectedIndex(cvarSettings[RSK_STARTING_SKULLTULA_TOKEN]);
|
||||
|
||||
MapsAndCompasses.SetSelectedIndex(cvarSettings[RSK_STARTING_MAPS_COMPASSES]);
|
||||
|
||||
// RANDOTODO: Implement disabling ammo drops. Currently only "On" (index 0) or "On + Bombchus" (index 1) is implemented.
|
||||
|
@ -440,6 +440,7 @@ static void WriteStartingInventory() {
|
||||
// to see if the name is one of the 3 we're using rn
|
||||
if (setting->GetName() == "Start with Consumables" ||
|
||||
setting->GetName() == "Start with Max Rupees" ||
|
||||
setting->GetName() == "Gold Skulltula Tokens" ||
|
||||
setting->GetName() == "Start with Fairy Ocarina" ||
|
||||
setting->GetName() == "Start with Kokiri Sword" ||
|
||||
setting->GetName() == "Start with Deku Shield") {
|
||||
|
@ -233,6 +233,7 @@ std::unordered_map<std::string, RandomizerSettingKey> SpoilerfileSettingNameToEn
|
||||
{ "Skip Child Zelda", RSK_SKIP_CHILD_ZELDA },
|
||||
{ "Start with Consumables", RSK_STARTING_CONSUMABLES },
|
||||
{ "Start with Max Rupees", RSK_FULL_WALLETS },
|
||||
{ "Gold Skulltula Tokens", RSK_STARTING_SKULLTULA_TOKEN },
|
||||
{ "Timesaver Settings:Cuccos to return", RSK_CUCCO_COUNT },
|
||||
{ "Timesaver Settings:Big Poe Target Count", RSK_BIG_POE_COUNT },
|
||||
{ "Timesaver Settings:Skip Child Stealth", RSK_SKIP_CHILD_STEALTH },
|
||||
@ -670,6 +671,7 @@ void Randomizer::ParseRandomizerSettingsFile(const char* spoilerFileName) {
|
||||
case RSK_TRIAL_COUNT:
|
||||
case RSK_BIG_POE_COUNT:
|
||||
case RSK_CUCCO_COUNT:
|
||||
case RSK_STARTING_SKULLTULA_TOKEN:
|
||||
numericValueString = it.value();
|
||||
gSaveContext.randoSettings[index].value = std::stoi(numericValueString);
|
||||
break;
|
||||
@ -2556,6 +2558,7 @@ void GenerateRandomizerImgui() {
|
||||
cvarSettings[RSK_SHUFFLE_KOKIRI_SWORD] = CVar_GetS32("gRandomizeShuffleKokiriSword", 0) ||
|
||||
CVar_GetS32("gRandomizeStartingKokiriSword", 0);
|
||||
cvarSettings[RSK_STARTING_DEKU_SHIELD] = CVar_GetS32("gRandomizeStartingDekuShield", 0);
|
||||
cvarSettings[RSK_STARTING_SKULLTULA_TOKEN] = CVar_GetS32("gRandomizeStartingSkulltulaToken", 0);
|
||||
cvarSettings[RSK_STARTING_MAPS_COMPASSES] = CVar_GetS32("gRandomizeStartingMapsCompasses", 2);
|
||||
cvarSettings[RSK_SHUFFLE_DUNGEON_REWARDS] = CVar_GetS32("gRandomizeShuffleDungeonReward", 0);
|
||||
cvarSettings[RSK_SHUFFLE_SONGS] = CVar_GetS32("gRandomizeShuffleSongs", 0);
|
||||
@ -3949,6 +3952,8 @@ void DrawRandoEditor(bool& open) {
|
||||
UIWidgets::EnhancementCheckbox(Settings::StartingConsumables.GetName().c_str(),
|
||||
"gRandomizeStartingConsumables");
|
||||
UIWidgets::PaddedSeparator();
|
||||
UIWidgets::EnhancementSliderInt("Gold Skulltula Tokens: %d", "##RandoStartingSkulltulaToken", "gRandomizeStartingSkulltulaToken", 0, 100, "", 0, true);
|
||||
UIWidgets::PaddedSeparator();
|
||||
|
||||
ImGui::EndChild();
|
||||
|
||||
|
@ -1066,6 +1066,7 @@ typedef enum {
|
||||
RSK_MIX_INTERIOR_ENTRANCES,
|
||||
RSK_MIX_GROTTO_ENTRANCES,
|
||||
RSK_DECOUPLED_ENTRANCES,
|
||||
RSK_STARTING_SKULLTULA_TOKEN,
|
||||
RSK_MAX
|
||||
} RandomizerSettingKey;
|
||||
|
||||
|
@ -414,6 +414,11 @@ void Sram_InitSave(FileChooseContext* fileChooseCtx) {
|
||||
if(Randomizer_GetSettingValue(RSK_STARTING_KOKIRI_SWORD)) Item_Give(NULL, ITEM_SWORD_KOKIRI);
|
||||
if(Randomizer_GetSettingValue(RSK_STARTING_DEKU_SHIELD)) Item_Give(NULL, ITEM_SHIELD_DEKU);
|
||||
|
||||
if(Randomizer_GetSettingValue(RSK_STARTING_SKULLTULA_TOKEN)) {
|
||||
gSaveContext.inventory.questItems |= gBitFlags[QUEST_SKULL_TOKEN];
|
||||
gSaveContext.inventory.gsTokens = Randomizer_GetSettingValue(RSK_STARTING_SKULLTULA_TOKEN);
|
||||
}
|
||||
|
||||
if(Randomizer_GetSettingValue(RSK_STARTING_OCARINA)) {
|
||||
INV_CONTENT(ITEM_OCARINA_FAIRY) = ITEM_OCARINA_FAIRY;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user