* Basic restructure
* Undo most randomizerInf changes for now
* Small fixes
* Fix linux & mac builds?
* Fix remnants of randomizerInf changes
* Post-merge fix
* Post-merge fix
* Move/Rename locacc files
* Format locacc files
* Split hyrule field file into HF, LH & LLR files
* Split castle town file into MK, TOT & HC/OGC files
* Split kakariko file into KAK & GY files
* Split death mountain file into DMT, GC & DMC
* Split lost woods file into KF, LW & SFM files
* Split gerudo valley file into GV, GF, HW & COLO files
* Move most files into the overworld/dungeons folder
Gerudo fortress needs to be split into gerudo fortress & thieves hideout, the former into overworld and the latter into dungeons
* Remove the optional second condition function
We won't need it as we're doing glitches differently from 3ds rando
* Post-merge fixes
* Split zora's domain file into ZR, ZD & ZF files
* Post-merge fixes
* Forgot to save the file
* Remove the optional second condition function from entrances & events
* Update bottom_of_the_well.cpp
* Add clarifying comment in `gerudo_fortress.cpp`
* Post-merge fixes
* Post-merge fixes
* Remove `s` from `RegionTable_Init_GerudoTrainingGrounds`
* Post-merge fixes
* Define VB for fairy group spawning
* Add skeleton of new files for fairy shuffle
* Add option to enable/disable fairy shuffle
* Add field to fairy entities to hold randomizer data
* Expose the current grotto id, or find it if not shuffled
This is necessary since, unlike chest or scrub grottos,
fairy fountains, lacking any elements that would normally
differ between grottos, often have identical respawn data.
This change enables fairy shuffle to correctly identify
which fairy fountain was entered so it could load the right
checks.
* Initialise fairy groups if detected
* Randomize first set of fairies
* Make randomized fairies collectible
* VBify fairy healing customization
* Add remaining grotto fairies
* Add remaining fairy group spawns
* Override bean sprouts spawning fairies
* Define bean sprout fairy checks
* Add HasItem and CanUse entries for magic beans.
* Define logic for bean sprout fairies
* Enabling looking up fairies by z coordinate
* Add Temple of Time Gossip Stones
Logic might look a little weird. While the Gossip Stones
respond to Sun's Song, the scene transition takes priority,
so the fairies aren't actually obtainable. Adult does not have
day and night versions and is fully capable of acquiring the
fairies with Sun's Song.
Song of Time is similar, but rather than being dependant on
age, it's dependant on the timesaver to switch ages anywhere
with Song of Time. In this case, the fairies still spawn,
but the age transition deletes them before giving the chance
to collect them. While I could've chosen to ignore this and
simply require the player to disable the enhancement before
playing if it's their only option, I instead decided to
accomodate the enhancement and require one of the other songs
in order for the check to be in logic.
* Disable quick age change around gossip stones to simplify logic
* Add remaining gossip stone fairies
* Finish gossip stone fairies
* Add Desert Colossus Oasis
* Restrict fairy type
Somehow, it was previously possible for Navi to get detected
as a randomized fairy and rendered as an item. I was not
able to reproduce the behavior, but this should prevent it
from happening again.
* Add overworld special fairy spots
* Add mini-dungeon fairy song spots
* Add remaining dungeons except Shadow
* Add Shadow Temple fairies
* Add fairy check flags to the save editor
* Filter fairy checks from check tracker
* Add hints for fairy checks
* get fairysanity as far as I can for now
* fix a few obvious issues
* now builds
* try to convert FairyOnVanillaBehaviorHandler to vardic args
* convert RegisterFairyCustomization to REGISTER_VB_SHOULD
* fix some generation issues
* remove the list of fairy locations
* fix up logic
* more logic changes for gossip stones
* try silly thing for windows
* more stupid
* more dumb testing
* more testing
* small fixes
* implement inside fence storms fairy
* add inside fence storms fairy to logic
* remove duplicate hints (stupid conflicts)
* oops
* Rewrite game interfacing code of fairy shuffle
* Better function names
---------
Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
Co-authored-by: aMannus <mannusmenting@gmail.com>
* Enable freestanding items other than heart pieces and keys
* Add option to disable freestanding rupee & heart shuffle
* Add items to pool
* Actually add shuffle setting
* Define overworld locations
* Add logic for overworld freestanding checks
* Add freestanding items for child dungeons.
* Add checks for Ice Cavern and Bottom of the Well
* Add checks for Forest Temple and Gerudo Training Grounds
* Add checks for Fire Temple and Water Temple
* Add Shadow Temple checks
This does not include the spinning pots rupees, even though
they're included with freestanding rupees in the N64 randomizer
as they would require dedicated overrides for the code for
the pots in question.
* Define Spirit Temple and Ganon's Castle hearts
* Add remaining checks to dungeon definitions
* Fix missing logic
* Add freestanding checks to Save Flags Editor
* Fix flags for Zora Fountain underwater rupees
* Add option to enable freestanding shuffle for either dungeons or overworld
* Add missing MQ checks and fix mac & windows compile error
* Improve description and add hint text
* Update logic for Bombchu fixes
* Add missing Spirit Temple MQ hearts
* Add missing settings entries
* Actually add Forest Temple trick to the tricks menu.
* Re-add Ice Cavern lobby rupee
* go over MQ logic
* review logic on non-MQ checks
* convert all freestandings to location based
* add option enum and fix jabu exit logic
* fix mislocated freestandings
* fix mislocted freestandings
* Fix some mislocationed checks
---------
Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
* Make new `SpoilAreaFromCheck` function to spoil areas when getting maps or a first check in a dungeon that isn't spoiled by entrance.
* Add scummed check dungeon spoiling on load.
* Potsanity proof of concept
* Hide pot item cutscenes for very frequent items
* Add 1 new pot to the item pool
* V1 custom pot model
* V2 pot model
* Pushing for help. lol
* Format clean up on added hint_list entries.
Removal of WriteIngameSpoilerLog call that was unneeded.
* THREE_ACTOR_PARAMS -> TWO_ACTOR_PARAMS and hints in a loop
* Lost woods pots logic
* Realign Pot Checklist in Location_list.cpp
* Correcting some values and adding Master Quest pots.
* Remove vanilla placements
* Re-order enums + start hints per region
* Fix build
* Break up shuffle pot options to dungeon/overworld/all
* Fixes
* Prepare default pot contents, fix/add dungeons
* Fix dungeon/overworld only settings
* Updates to Parameters and RHT information
* Remove unused hints
* Add proper check tracker entry exclusion
* Tweak items to skip cutscenes for
* Vanilla Drop List
* Update magic to blue rupees
* After merge fixes
* Fix Ganondorf's Lair pots
* Fix check tracker + minor stuff
* Unlock early GBK door
* Minor fixes
* More minor stuff and start of logic entries
* Fix TWO_ACTOR_PARAMS overlap between pots
* De-dupe defines
* Add missing water trial pot
* Update to develop-rando
* VBify pots progress
* Cleanup and fixes
* Overworld logic done
* Cleanup and fix item00 queues
* Implement skipping cutscenes for common items
* Revert "Implement skipping cutscenes for common items"
This reverts commit fe44916588.
* Ganons tower pot not spawning item fix + cleanup
* Fix ganon's tower, barinade, water temple pots
* VBify ganons key door
* Lizalfos Pot addition (example)
* Separate MQ pots in randomizerTypes.h
* Fix build
* Fix linux build (?)
* DC/Jabu/Botw/ start of Forest Pots (NMQ)
* Remaining Dungeon Non MQ Pot Location Logic
* After merge fixes round 1
* Post merge fixes round 2
* Apply MQ pot logic
* Re-align some stuff
* Cleanup, more work on locationlist
* Start of handling dungeon pots in item pool
* Finish dungeon pots in item pool
* GTG MQ Pots
* Review comments round 1 & code cleanup
* Fix ganon's lair pots being behind GBK in logic
* Update soh/include/z64actor.h
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Address review comment
* Fix logic for pots in Fire Temple
* Fix GtG MQ pots, fix water temple pot logic
* Review Comments
* Logic review part 1
* Logic comments part 2
---------
Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Remove unused headers
* Move all "ResourceMgr_" functions to a new file
* Don't transitively include SaveManager
* Move cvar prefixes to a new header
* Add missing includes
* Update OTRGlobals.cpp
* Fix build
* Address review
* Fix some of the errors
* Update gameplaystats.h
* Update z_en_in.c
* Hopefully fix the linux issues
* Fix Linux issues for real this time, I checked
* Update ResourceManagerHelpers.cpp
* Update z_obj_mure2.c
* Post-merge fixes
* Fix build (hopefully)
* Post-merge fixes
* Update z_file_nameset_PAL.c
* cleanup some unnecessary headers (#7)
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* Rename entrance enums for clearer location by name.
Change entrance name strings to be clearer for single-entrance tracking.
* Rename grotto macros to remove "RANDO", and move them to `randomizerTypes.h` for use elsewhere.
* Add entrance enums to rando's entrance.cpp.
Rename a couple RandomizerRegions for consistency.
* Swap entrance ids to enum values in rando's entrance.cpp.
Few more renames for clarity and consistency.
* Adapt entrance tracker to utilize new names and only display original source and substituted destination.
Few more renames for consistency.
* Missed a space in the tracker output.
* Restore pre-digit names of some enums, name great fairies more consistently.
* Improve check tracker performance.
* Fix vanilla saves getting randomizer quest assignment.
Fix trying to load blank data blocks from save file.
Prevent writing randomizer block, even if empty, when save type isn't rando.
* Format shops.cpp
* Add 5, 6 & 7 item shopsanity
* Guarantee a bombchu refill
* Fish first shop item index
* Clean up NonShopItems
* Split count options
* Improve item ordering
Ensure potions, blue fire and fairy on shopsanity 6 and less.
There are no hearts in the first 28 items (the ones from n64 rando).
* Post-merge fixes
* Remove categories
* Remove SpoilerCollectionCheckGroup
* Remove unused Location constructors
* Remove LocationType
* Remove unused SpoilerCollectionCheckTypes
* Remove hints' isVanillaCompletion, it's always false
* Remove SpoilerCollectionCheck::None
Same effect as default constructor
* Fix mistake
* Update location.h
* Deduce RC Area by scene when possible
* Remove useless constructors
* Remove flag in most situations
* Format improvements
* Replace overworldLocations with a function
* Replace shopLocationLists with a function
* Replace gossipStoneLocations with a function
Also add a new RCType for static hints
* Replace scrubLocations with a function
* Replace staticHintLocations with a function
* Replace overworldFishLocations with a function
* Replace pondFishLocations with a function
* Remove RC_TRIFORCE_COMPLETED from GetOverworldLocations
* Update fill.cpp
Re-add filter for dungeonLocations for song shuffle dungeon rewards (and fix erroneous check for song locations there).
Modify songLocations filter for dungeon rewards to check for RCTYPE_BOSS_HEART_OR_OTHER_REWARD and then the two song locations added for it.
* Update fill.cpp
Fix bracketing.
* Apply Pepper0ni's patch
---------
Co-authored-by: Malkierian <malkierian@live.com>
* Move all `SaveContext` operations to `Logic` to prepare for encapsulation.
* Rename `Area` to `Region`, `areaTable` to `regionTable`, and all local variables named variants of area to region that were of the `RandomizerRegion` or `Region` types.
* Fix mistaken renames.
* Rename PT_AREA_RESET to PT_REGION_RESET after rebasing on performance timer commit.
Change include path for the timer to absolute rather than relative.
* Update check status in the check tracker to the new system. Status and Skipped are now stored in ItemLocation, though still saved separately in the trackerData section.
* Fix shop checks not showing prices when identified.
* Patch fix for check status bleed.
Some cleanup of unused code.
* Small tracker optimizations.
* Fix check hiding.
* Bit more cleanup.
* Unhide the filter and make it work again...
* Fix area totals tracking.
Fix skipped status saving.
* Merge conflict cleanup.
* Converted all GuiWindows to the new separate Begin/End format in current LUS except InputViewer, CheckTracker, ItemTracker and Modals.
* Setup Check, Entrance, Item trackers and Input Viewer to override `Draw()` to bypass the ImGui Begin and End, as they're not intended to go in the modern menu.
* Cleanup.
* Initial Bombchu rework implementation
* Finish bombchus in logic overhaul
* address reviews
* Post resolution fixes
* fix git being dumb
* Readd Child Wallet To Bombchu Bowling Logic
* post merge fixes
* fix some oversights in bombchu shopping logic
* doesn't work, linker errors
* cleanup old reviews
* Make it build, likely broken by VB
* attempt to fix carpet man second purchse text
* commit to change branch
* mostly have carpet guy working
* badly fix carpet salesman
* fix better bombchu shopping
* fix bombchu drops
* remember you need bombchus in inventory to get drops
* Address reviews
* post-SCL clean up and redo the bombchu ammo logic to apply better to the spirit edge case
* fix oversight which could have allowed for bombchus to logical exist when they shouldn't
* Remove special bombchu playthrough checks which are causing bugs and no longer needed
* fix Slingshot logic reset
* Convert helpers I touched into CanUse and HasItem
* last cleanups
Stop passing checksByArea to functions in the same namespace.
Only get value of `HideFilteredAreas` once per frame.
Gate area and check evaluations behind checks being visible and search filter size greater than 0.
Proper function capitalization.
* Add rando enhancement "Mysterious Shuffled Items", which obfuscates shuffled freestanding/drawn-in-world items (PoH, tokens, shop items) with a custom question mark model (thanks Hato), and uses the "mysterious item" functionality of `GetMerchantMessage` for everything that supports it, regardless of hint status on generation.
* Reverted back to rando enhancement, but added condition for Mysterious Shuffle not being on for the gem rotation fix to apply.
* First attempt at changing to fake GetItemEntry instead of directly calling the mystery draw function. Needs more work.
* Updated CVar to reflect CVar rework values.
Added `IsCheckShuffled` as preliminary function for checking *only* if a check is shuffled, not necessarily if it is just visible on the tracker. This accounts for the difference between tokensanity and "Always Show GS On Tracker", where you don't want to obfuscate the latter.
* Bit of cleanup.
* Cross-platform building edits. If anyone has a better idea of how to handle this fake GIE, I'm all ears.
* Update to CVar macros.
* Fix freestanding item gives.
Fix mysterious item model colors.
* Fix bombchu bowling mystery.
* Remove bowling bomchus check obfuscation (unused, removed in v3).
* p
* Missed the prefix renames.
* More missed ones.
* Mostly finished cleanup.
Removed a few CVars and some related functionality.
* Bit more (prepping non-existent title card color editing).
* Resolve gCrowdControl.
* Final cleanup.
* Universal constant, not acceleration...
* Preset CVars.