* Handle virtually all warnings in `soh/Enhancements/randomizer`.
Handle order of operations warning in FasterHeavyBlockLift.
* Missed a few.
* Add float-specific versions of some M_PI and M_SQRT defines, and swap them in for the static casts in draw.cpp.
* Swap a static cast for M_PIf in check tracker code.
* Calculate accessible checks and show them in the check tracker.
* Added added DoorUnlocked checks to the Fire Temple doors.
This is needed when calculating Accessible checks while playing and using small keys. Otherwise checks will appear unaccessible because Keys have been used.
* Changed RecalculateAccessibleChecks to use the logic ReachabilitySearch.
* Reverted DoorUnlocked changes.
* Added recalculate_accessible_checks debug console command.
* Skip CanBuy check when calculating accessible checks, it spoils that some items can't be bought with the current wallet.
* Set RAND_INF_ZELDAS_LETTER.
* Don't add locations to the pool when calculating accessible checks.
* Save and Load randomizer trick options.
* Get the number of used small keys.
* Added check if bean was planted.
* Show number of Accessible checks in each Area.
* Accounted for missing RG_POCKET_CUCCO in logic HasItem and ApplyItemEffect.
* Show accessible checks via an icon.
* Check shop price against current wallet.
* Recalculate Accessible Checks in CheckTrackerLoadGame instead of LoadFile.
* RecalculateAccessibleChecks on save.
* Don't unset Zelda's Letter.
* Added Only Show Available Checks checkbox.
* Rename Accessible Checks to Available Checks.
* Added option to Enable Available Checks.
* Remove debug console to recalculate available checks, this can now be done by toggling Enable Available Checks in the settings.
* Remove extra requiredTrial.
* Default "Hide unshuffled shop item checks" unchecked.
* Updated GetSmallKeyCount to return int8_t.
* Default AmmoDrop to true until the setting is implemented.
* Fixed Sleeping Waterfall timesaver.
* Updated Only Show Available Checks to let Show Hidden Items reveal hidden available checks.
* Revert "Don't unset Zelda's Letter."
This reverts commit 4b5903940f.
* Set RAND_INF_ZELDAS_LETTER.
* Revert "Fixed Sleeping Waterfall timesaver."
This reverts commit 9b62fd5297.
* Added isMagicAcquired to Logic::HasItem.
* GetDungeonSmallKeyDoors return static emptyVector.
* Comment out AmmoCanDrop in ResetLogic.
* Added location_access CanBuy todo.
* Reverted Get and Set SmallKeyCount to use uint8_t and handled -1 keys.
* Added todo for MQ Water GetUsedSmallKeyCount.
* logic: allow finding big poe in bottle for reward logic
only applies when big poe count is set to 1
* Allow multiple big poe bottles for when big poe requirement > 1
* initial implementation of new models
* fix typo
* Add smaller skeleton key model and try to fix windows build
* stupid windows, you made me look bad!
* make DrawBombchuBag function work
* small cleanups
* OOGGA BOOGA BOO
* fix post merge leftovers
* post merge fix
* Added Big Key Lighting override to show vanilla lighting when unchanged
* rename CustomdLists into customIconDLs
* post merge fixes
* fix some tooltip issues
* post merge cleanup and some small menu changes
* post merge fix
* post merge fix
* add new boss soul model, colours broken
* update boss soul model for env support
* Add dungeon customise buttons to cosmetic editor
* fix mac build?
* keys don't support alpha
* fix submodules
* ring now draws
* fix keyring colours
* Add bombchu Bag RG, fix boss soul skull colour
* address reviews
* 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
* Fix logic thinking naked adult can clear wolfos grotto
Use CanKillEnemy more
* GERUDO_WARRIOR. Can defeat with a lot more than swords
* one more flare dancer
* Put defeating Gerudo Warrior with slingshot/bombchu behind trick
* 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>
* 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>
* Separate option values into context and menu indexes.
* Fix option index reference in `CleanCheckConditionString`.
* Update soh/soh/Enhancements/randomizer/3drando/location_access.cpp
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Restore `const` classification to functions returning `string&`.
* Restore `const` classification to getter functions.
* Restore a couple more `const`s; cleanup header.
* Final consts; rename `SetCVar` to `SaveCVar`.