Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions source/include/settings.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,7 @@ namespace Settings {
extern Menu gameSettings;

extern Option RepeatableItemsOnTokens;
extern std::vector<Menu *> shuffleItemsMenu;

}

Expand Down
10 changes: 5 additions & 5 deletions source/item_pool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1017,11 +1017,11 @@ void GenerateItemPool() {
else {
PlaceVanillaSongs();
}

if (StartingSongOfHealing.Value<u8>() == u8(1)){//if starting with song of healing fill deku mask and notebook spots as they are unobtainable
PlaceItemInLocation(HMS_DEKU_MASK, GREEN_RUPEE);
PlaceItemInLocation(HMS_BOMBERS_NOTEBOOK, GREEN_RUPEE);
}
//No Longer Needed since Song of Healing is now randomized and the check is always obtainable even when starting with SoH
// if (StartingSongOfHealing.Value<u8>() == u8(1)){//if starting with song of healing fill deku mask and notebook spots as they are unobtainable
// PlaceItemInLocation(HMS_DEKU_MASK, GREEN_RUPEE);
// PlaceItemInLocation(HMS_BOMBERS_NOTEBOOK, GREEN_RUPEE);
// }

//GREAT FAIRY SHUFFLE
if(ShuffleGFRewards.Is((u8)GreatFairyRewardShuffleSetting::GFREWARDSHUFFLE_VANILLA)){
Expand Down
2 changes: 1 addition & 1 deletion source/location_access.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ void AreaTable_Init() {
{
//Exits
Entrance(S_CLOCK_TOWN, {[]{return true;}}),
Entrance(THE_MOON_TREE_ROOM, {[]{return CanGoToMoon;}}),
Entrance(THE_MOON_TREE_ROOM, {[]{return CanGoToMoon && CanPlay(SongOfTime);}}),
});

areaTable[LAUNDRY_POOL] = Area("Laundry Pool", "Laundry Pool", LAUNDRY_POOL, {
Expand Down
132 changes: 80 additions & 52 deletions source/settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ namespace Settings {
//Option LogicGrottosWithoutAgony = LogicTrick(" Grotto Access\n w/o Shard of Agony", LogicGrottosWithoutAgonyDesc);
std::vector<Option *> trickOptions = {
&ToggleAllTricks

//&LogicGrottosWithoutAgony,
};
/*To-Do Glitches*/
Expand Down Expand Up @@ -199,7 +200,7 @@ namespace Settings {
&StartingNutCapacity,
};
std::vector<Option*> startingInventoryInventory = {
&StartingOcarina,
//&StartingOcarina,
&StartingNotebook,
&StartingBombBag,
&StartingBombchus,
Expand Down Expand Up @@ -264,8 +265,8 @@ namespace Settings {
};

std::vector<Option*> startingInventoryUpgrades = {
&StartingKokiriSword,
&StartingShield,
//&StartingKokiriSword,
//&StartingShield,
&StartingWallet,
&StartingHealth,
&StartingMagicMeter,
Expand Down Expand Up @@ -310,29 +311,58 @@ namespace Settings {
Option ShuffleBombersNotebook = Option::Bool("Shuffle Notebook", {"Off", "On"}, {shuffleBombersNotebookDesc});
Option ShuffleMoonItems = Option::Bool("Shuffle Moon Items", {"Off", "On"}, {shuffleMoonItemsDesc});
Option ShuffleFierceDeity = Option::Bool("Shuffle Fierce Deity", {"Off", "On"}, {shuffleFierceDeityDesc});
std::vector<Option*> shuffleItemOptions = {
&ShuffleMainInventory,
//&ShuffleKokiriSword, --redundant
//&ShuffleStartingShield, --redundant
&ShuffleMasks,
&ShuffleTransformation,
&ShufflePiecesOfHeart,
&ShuffleSongs,
&ShuffleSoaring,
&ShuffleSongOfTime,
//&Shopsanity,
&Tokensanity,
&ShuffleMerchants,
&ShuffleTradeItems,
&ShuffleGFRewards,
//&ShuffleCows,
//&ShuffleOcarinas,
&ShuffleTingleMaps,
//&ShuffleMagicBeans,
&ShuffleBombersNotebook,
&ShuffleMoonItems,
&ShuffleFierceDeity,
// std::vector<Option*> shuffleItemOptions = {
// &ShuffleMainInventory,
// //&ShuffleKokiriSword, --redundant
// //&ShuffleStartingShield, --redundant
// &ShuffleMasks,
// &ShuffleTransformation,
// &ShufflePiecesOfHeart,
// &ShuffleSongs,
// &ShuffleSoaring,
// &ShuffleSongOfTime,
// //&Shopsanity,
// &Tokensanity,
// &ShuffleMerchants,
// &ShuffleTradeItems,
// &ShuffleGFRewards,
// //&ShuffleCows,
// //&ShuffleOcarinas,
// &ShuffleTingleMaps,
// //&ShuffleMagicBeans,
// &ShuffleBombersNotebook,
// &ShuffleMoonItems,
// &ShuffleFierceDeity,
// };

//New Menus - Splitting options for smaller menus
std::vector<Option*> shuffleMajorItems = {
&ShuffleMainInventory,
&ShuffleMasks,
&ShuffleTransformation,
&StartingKokiriSword,
&StartingShield,
&StartingOcarina,
&ShufflePiecesOfHeart,
&ShuffleSongs,
&ShuffleSoaring,
&ShuffleSongOfTime,
&Tokensanity,
//&Shopsanity,
&ShuffleGFRewards,
};

std::vector<Option*> shuffleSideQuestItems = {
&ShuffleMerchants,
&ShuffleTradeItems,
&ShuffleTingleMaps,
&ShuffleBombersNotebook,
//&ShuffleCows,
//&ShuffleMagicBeans,
&ShuffleMoonItems,
&ShuffleFierceDeity,
};

//Shuffle Dungeon Items
Option RandomizeDungeon = Option::U8("Randomize Settings", { "No","Yes"}, { dungeonRandomize}, OptionCategory::Toggle);
Option MapsAndCompasses = Option::U8("Maps/Compasses", { "Vanilla", "Start With", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere" }, { mapCompassVanilla, mapCompassStartWith, mapCompassOwnDungeon, mapCompassAnyDungeon, mapCompassOverworld, mapCompassAnywhere }, OptionCategory::Setting, (u8)MapsAndCompassesSetting::MAPSANDCOMPASSES_VANILLA);
Expand Down Expand Up @@ -604,27 +634,39 @@ namespace Settings {
&startingInventoryRemainsMenu,
&startingInventoryTokensMenu,
};
Menu shuffleMajorItemsMenu = Menu::SubMenu("Major Items", &shuffleMajorItems);
Menu shuffleSideQuestMenu = Menu::SubMenu("Side Quest Items", &shuffleSideQuestItems);
std::vector<Menu*> shuffleItemsMenu = {
&shuffleMajorItemsMenu,
&shuffleSideQuestMenu,
&shuffleDungeon,
&itemPool,
&startingInventory,

};

//Menu mainSettings = Menu::SubMenu("Main Settings", &mainSettingsOptions);
Menu comfort = Menu::SubMenu("Comfort Settings", &comfortOptions);
Menu restorationSettings = Menu::SubMenu("Restoration Settings", &restorationOptions);
Menu cutsceneSettings = Menu::SubMenu("Cutscene Settings", &cutsceneOptions);
Menu settingsPresets = Menu::SubMenu("Settings Presets", &settingsPresetItems);
Menu cosmetics = Menu::SubMenu("Cosmetic Settings", &cosmeticOptions);
Menu generateRandomizer = Menu::Action ("Generate Randomizer", GENERATE_MODE);
Menu shuffleItems = Menu::SubMenu("Item Shuffle Settings", &shuffleItemOptions);
Menu shuffleItems = Menu::SubMenu("Item Shuffle Settings", &shuffleItemsMenu, false);
Menu shuffleDungeon = Menu::SubMenu("Dungeon Settings", &dungeonSettingsOptions);
Menu itemPool = Menu::SubMenu("Item Pool Settings", &itemPoolSettingsOptions);
Menu detailLogic = Menu::SubMenu("Detailed Logic Settings", &detailLogicSettings);
Menu customInputs = Menu::SubMenu("Custom Button Mapping", &customButtons);


//adding a menu with no options crashes, might fix later
std::vector<Menu *> mainMenu = {
&logicSettings,
&gameSettings,
&shuffleItems,
&shuffleDungeon,
&itemPool,
&startingInventory,
//&shuffleDungeon,
//&itemPool,
//&startingInventory,
&detailLogic,
&comfort,
&restorationSettings,
Expand Down Expand Up @@ -1095,7 +1137,10 @@ namespace Settings {
for (auto op : glitchOptions) {
op->SetToDefault();
}
for (auto op : shuffleItemOptions) {
for (auto op : shuffleMajorItems) {
op->SetToDefault();
}
for (auto op : shuffleSideQuestItems) {
op->SetToDefault();
}
for (auto op : otherSettingsOptions) {
Expand Down Expand Up @@ -1591,28 +1636,11 @@ namespace Settings {
LanguageSelect.SetSelectedIndex(LANGUAGE_NONE);
}

//Show or Hide Shuffle Song of Soaring / Song of Time if Song Shuffle is on / off
if (ShuffleSongs.Value<u8>() == u8(0)) {
ShuffleSoaring.Hide();
ShuffleSongOfTime.Hide();
}
else {
ShuffleSoaring.Unhide();
ShuffleSoaring.Unlock();
ShuffleSongOfTime.Unhide();
ShuffleSongOfTime.Unlock();
}
//if starting with Song of Soaring or Song of Time set settings to Vanilla and hide and lock
if (StartingSongOfSoaring.Value<u8>() == u8(1)) {
ShuffleSoaring.SetSelectedIndex(0);
ShuffleSoaring.Hide();
ShuffleSoaring.Lock();
}
if (StartingSongOfTime.Value<u8>() == u8(1)) {
ShuffleSongOfTime.SetSelectedIndex(0);
ShuffleSongOfTime.Hide();
ShuffleSongOfTime.Lock();
}
//There was code here to force set Song of Soaring and Song of Time to off if the overarching SongSanity setting was set to off.
//I chose not to include it because it allows for the choice to randomize only those two songs outside of the other songs grouped
//into Songsanity since they are already coded in item_pool.cpp to be added to the pool separately based on these settings anyways
//so locking them out just removes that choice which is less fun than allowing it.


ResolveExcludedLocationConflicts();
}
Expand Down
5 changes: 5 additions & 0 deletions source/spoiler_log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,11 @@ static void WriteIngameSpoilerLog() {
if (Location(key)->IsCategory(Category::cZoraEgg)) {
continue;
}
//Don't show the Stone Tower Upright Death Armos Room Chest as it is only created for no logic playthroughs incase the player does a Goron Missile to obtain the chest earlier than intended.
//It contains the same item as the normal Stone Tower Temple Death Armos Room Chest so it does not need to be shown in the spoiler log.
if (key == STONE_TOWER_TEMPLE_UPRIGHT_DEATH_ARMOS_ROOM_CHEST) {
continue;
}



Expand Down