Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various Fixes #92

Merged
merged 2 commits into from
May 29, 2024
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
2 changes: 2 additions & 0 deletions source/dungeon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,8 @@ std::vector<LocationKey> DungeonInfo::GetEveryLocation() const {
THE_MOON_DEKU_TRIAL_BONUS,
THE_MOON_GORON_TRIAL_BONUS,
THE_MOON_ZORA_TRIAL_BONUS,
THE_MOON_GARO_CHEST,
THE_MOON_IRON_KNUCKLE_CHEST,
THE_MOON_LINK_TRIAL_BONUS,
THE_MOON_MAJORA_CHILD,
},{} );
Expand Down
9 changes: 4 additions & 5 deletions source/fill.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -828,11 +828,13 @@ int Fill() {
RandomizeDungeonRewards();

//Place dungeon items restricted to their Own Dungeon

for (auto dungeon : Dungeon::dungeonList) {
RandomizeOwnDungeon(dungeon);
}

//Then place dungeon items that are assigned to restrictive location pools
RandomizeDungeonItems();

if (ShuffleGFRewards.Is((u8)GreatFairyRewardShuffleSetting::GFREWARDSHUFFLE_ALL_GREAT_FARIES)){
//get GF locations
std::vector<LocationKey> gfLocations = FilterFromPool(allLocations, [](const LocationKey loc) {return Location(loc)->IsCategory(Category::cFairyFountain);});
Expand All @@ -848,11 +850,9 @@ int Fill() {
AssumedFill(mainadvancementItems, allLocations,true);

//Then Place Anju & Kafei Items in spots accessable on Day 1, this should prevent situations where you cant get an item in time for its use
if(ShuffleTradeItems) {
std::vector<LocationKey> day1Locations = FilterFromPool(allLocations, [](const LocationKey loc) {return Location(loc)->IsCategory(Category::cDayOne);});
std::vector<ItemKey> anjukafeiitems = FilterAndEraseFromPool(ItemPool, [](const ItemKey i) {return ItemTable(i).GetItemType() == ITEMTYPE_QUEST;});
AssumedFill(anjukafeiitems, day1Locations,true);
}

//Then Place Deku Merchant Items
/* if(ShuffleMerchants) {
Expand Down Expand Up @@ -880,8 +880,7 @@ int Fill() {



//Then place dungeon items that are assigned to restrictive location pools
RandomizeDungeonItems();


//Then place Link's Pocket Item if it has to be an advancement item
//Links Pocket is useless as there is no unobtainable check due to a certain time travel sword pedistal
Expand Down
2 changes: 2 additions & 0 deletions source/include/keys.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1031,6 +1031,8 @@ typedef enum {
IC_DOCK_GOSSIP,
IC_SAKON_GOSSIP,
IC_SPIRIT_HOUSE_GOSSIP,
ST_LOWER_GOSSIP,
ST_UPPER_GOSSIP,
MOON_DEKU_GOSSIP_1,
MOON_DEKU_GOSSIP_2,
MOON_DEKU_GOSSIP_3,
Expand Down
3 changes: 2 additions & 1 deletion source/include/setting_descriptions.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,5 @@ extern string_view skipBombersMinigameDesc;
extern string_view NARegionDesc;
extern string_view EURegionDesc;
extern string_view VersionDesc;
extern string_view LanguageDesc;
extern string_view LanguageDesc;
extern string_view fastMaskDesc;
16 changes: 16 additions & 0 deletions source/include/settings.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ namespace Settings {
extern Option StartingNutCapacity;
extern Option StartingInventoryToggle;
extern Option StartingOcarina;
extern Option StartingNotebook;
extern Option StartingBombBag;
extern Option StartingBombchus;
extern Option StartingHookshot;
Expand Down Expand Up @@ -349,6 +350,13 @@ namespace Settings {
extern Option StartingRazorSword;
extern Option StartingGildedSword;
extern std::vector<Option*> startingInventoryOptions;
extern std::vector<Option*> startingInventoryInventory;
extern std::vector<Option*> startingInventoryMasks;
extern std::vector<Option*> startingInventorySongs;
extern std::vector<Option*> startingInventoryUpgrades;
extern std::vector<Option*> startingInventoryRemains;
extern std::vector<Option*> startingInventoryTokensFairys;
extern std::vector<Menu*> startingInventoryMenu;

//Starting Masks
extern Option StartingMaskToggle;
Expand Down Expand Up @@ -465,6 +473,7 @@ namespace Settings {
extern Option DpadOcarina;
extern Option DpadArrows;
extern Option TwinmoldRestoraion;
extern Option FastMasks;

//Trial Skips
extern Option OdolwaTrialSkip;
Expand Down Expand Up @@ -508,6 +517,13 @@ namespace Settings {
extern Menu glitchSettings;
//extern Menu itemSettings;
extern Menu otherSettings;
extern Menu startingInventoryOptionals;
extern Menu startingInventoryInventoryMenu;
extern Menu startingInventoryMasksMenu;
extern Menu startingInventorySongsMenu;
extern Menu startingInventoryUpgradesMenu;
extern Menu startingInventoryRemainsMenu;
extern Menu startingInventoryTokensMenu;

//Main Menu
extern std::vector<Menu *> mainSettingsOptions;
Expand Down
6 changes: 5 additions & 1 deletion source/item_location.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ void LocationTable_Init() {
locationTable[PF_CAGE_ROOM_DEEP_CHEST] = ItemLocation::Chest (0x23, 0x06, true, "Pirate's Fortress Sewer Cage Room Deep Chest", PF_CAGE_ROOM_DEEP_CHEST, BLUE_RUPEE, {Category::cPiratesFortressSewer,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
locationTable[PF_MAZE_CHEST] = ItemLocation::Chest (0x23, 0x01, true, "Pirate's Fortress Sewer Maze Chest", PF_MAZE_CHEST, RED_RUPEE, {Category::cPiratesFortressSewer,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
locationTable[PF_SEWER_CAGE] = ItemLocation::Collectable(0x23, 0x00, false, "Pirate's Fortress Sewer Cage", PF_SEWER_CAGE, PIECE_OF_HEART, {Category::cPiratesFortressSewer, Category::cVanillaHeartPiece,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
locationTable[PF_EXTERIOR_LOG_CHEST] = ItemLocation::Chest (0x3B, 0x00, true, "Pirate's Fortress Ext Log Chest", PF_EXTERIOR_LOG_CHEST, RED_RUPEE, {Category::cPiratesFortressExterior,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
locationTable[PF_EXTERIOR_LOG_CHEST] = ItemLocation::Chest (0x3B, 0x00, true, "Pirate's Fortress Ext Ledge Chest", PF_EXTERIOR_LOG_CHEST, RED_RUPEE, {Category::cPiratesFortressExterior,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
locationTable[PF_EXTERIOR_SAND_CHEST] = ItemLocation::Chest (0x3B, 0x01, true, "Pirate's Fortress Ext Sand Chest", PF_EXTERIOR_SAND_CHEST, RED_RUPEE, {Category::cPiratesFortressExterior,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
locationTable[PF_EXTERIOR_CORNER_CHEST] = ItemLocation::Chest (0x3B, 0x02, true, "Pirate's Fortress Ext Corner Chest", PF_EXTERIOR_CORNER_CHEST, RED_RUPEE, {Category::cPiratesFortressExterior,Category::cChest ,Category::cDayOne}, SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
locationTable[PF_INT_INVISIBLE_SOLDIER] = ItemLocation::Base (0x14, 0x8B, false, "Pirate's Fortress Int Invisible Soldier", PF_INT_INVISIBLE_SOLDIER, STONE_MASK, {Category::cPiratesFortressInterior, Category::cVanillaMask,Category::cDayOne}, SpoilerCollectionCheck::ItemGetInf(0), SpoilerCollectionCheckGroup::GROUP_DUNGEON_PIRATE_FORTRESS );
Expand Down Expand Up @@ -616,6 +616,8 @@ locationTable[CUCCO_SHACK_GOSSIP] = ItemLocatio
locationTable[IC_DOCK_GOSSIP] = ItemLocation::HintStone (0x00,0x20b6, true, "IC Dock Gossip Stone", {});
locationTable[IC_SAKON_GOSSIP] = ItemLocation::HintStone (0x00,0x20c5, true, "IC Across from Sakon's Hideout Gossip Stone", {});
locationTable[IC_SPIRIT_HOUSE_GOSSIP] = ItemLocation::HintStone (0x00,0x20b7, true, "IC Above Spirit House Gossip Stone", {});
locationTable[ST_LOWER_GOSSIP] = ItemLocation::HintStone (0x00,0x00, true, "Stone Tower Lower Gossip Stone", {});
locationTable[ST_UPPER_GOSSIP] = ItemLocation::HintStone (0x00,0x00, true, "Stone Tower Upper Gossip Stone", {});
locationTable[MOON_DEKU_GOSSIP_1] = ItemLocation::HintStone (0x00,0x2109, true, "Moon Deku Trial Gossip Stone 1", {});
locationTable[MOON_DEKU_GOSSIP_2] = ItemLocation::HintStone (0x00,0x2108, true, "Moon Deku Trial Gossip Stone 2", {});
locationTable[MOON_DEKU_GOSSIP_3] = ItemLocation::HintStone (0x00,0x210b, true, "Moon Deku Trial Gossip Stone 3", {});
Expand Down Expand Up @@ -751,6 +753,8 @@ std::vector<LocationKey> gossipStoneLocations = {
IC_DOCK_GOSSIP,
IC_SAKON_GOSSIP,
IC_SPIRIT_HOUSE_GOSSIP,
ST_LOWER_GOSSIP,
ST_UPPER_GOSSIP,
MOON_DEKU_GOSSIP_1,
MOON_DEKU_GOSSIP_2,
MOON_DEKU_GOSSIP_3,
Expand Down
6 changes: 4 additions & 2 deletions source/location_access.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1050,9 +1050,9 @@ void AreaTable_Init() {
},
{
//Exits
Entrance(WOODFALL_TEMPLE_ENTRANCE, {[]{return DekuMask && CanPlay(SonataOfAwakening);}}),
Entrance(WOODFALL_TEMPLE_ENTRANCE, {[]{return DekuMask && CanPlay(SonataOfAwakening) && (Fighting || CanUseProjectile);}}),
Entrance(SOUTHERN_SWAMP_TOP, {[]{return true;}}),
Entrance(WOODFALL_FAIRY_FOUNTAIN, {[]{return DekuMask;}}),
Entrance(WOODFALL_FAIRY_FOUNTAIN, {[]{return DekuMask && (Fighting || CanUseProjectile);}}),
Entrance(WOODFALL_TEMPLE_PRINCESS_ROOM, {[]{return WoodfallClear;}}),
});

Expand Down Expand Up @@ -2012,6 +2012,8 @@ void AreaTable_Init() {
},
{
//Locations
LocationAccess(ST_LOWER_GOSSIP, {[] {return CanPlay(ElegyOfEmptiness) && GoronMask && ZoraMask && Hookshot;}}),
LocationAccess(ST_UPPER_GOSSIP, {[] {return CanPlay(ElegyOfEmptiness) && GoronMask && ZoraMask && Hookshot;}}),
},
{
//Exits
Expand Down
1 change: 1 addition & 0 deletions source/setting_descriptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,7 @@ string_view dpadArrowDesc = "Enables using D-Pad up to change your cu
string_view twinmoldRestorationDesc = "Fixes Twinmold boss fight so Red Twinmold does not\n"
"regen health when it burrows."; //
//
string_view fastMaskDesc = "Enables Fast Transformation Animations."; //
/*------------------------------- //
| CUSTOM BUTTON MAPPING | //
-------------------------------*/ //
Expand Down
Loading
Loading