* Changed OnReceiveItem hook to pass GetItemEntry, which required the following changes:
Reworked the references to it in `z_parameter` to call a single function with the item return and hook call in it for ease of editing.
Modified the pendingSale functionality to set and pass a modIndex value as well, as mod items (like randomizer) in shops still use the vanilla sale path.
* Missed some files for the pendingSale changes.
Also added Randomizer_Item_Give to the OnReceiveItem system.
* Ice traps now trigger OnReceiveItem.
* All ice traps truly do work now.
As a side effect, item autosave doesn't work for shop/scrub/merchant transactions, requires new OnSaleEnded hook that can also call the autosave.
* Removed unnecessary calls to ItemTable_RetrieveEntry where GetItemEntry properties were being used to call it. General code cleanup.
* Added OnSaleEnd hook for when rupees are finished deducting after a sale.
Migrated AutoSave to its own function, registered AutoSave function to OnReceiveItem and OnSaleEnd hooks to help with autsaving after buying items.
Some futureproofing for AutoSave function with parameters for skipping autosave, for when transition end is migrated to AutoSave function (whether through direct call or through a hook).
* Renamed hook paramaters, and registered hook function parameters, to a more descriptive alternative.
* Missed a couple, fixed a typo.
* One more missed paramater name refactor.
Refactored all references to OnReceiveItem to OnItemReceive to mirror upcoming full hook refactor for name ordering conventions.
Up-to-date with develop.
* save build version to savefile
* adjust rando hash icons to use fade in/out
* add dialog message support on the file select screen and display rando version warning
* remove duplicated message functions and use stubbed play state instead for rando warning
* add major/minor/patch version saving to file and compare against
* use strncpy and memset for build version
* don't show rando warning one copy/erase screens
* review feedback
* Add german and french translations for rando warning
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
---------
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
* Restored vanilla pause buffering and input behavior broken by 'easy frame advance' cheat
Currently, holding A and repeatedly pausing and unpausing will cause that A input to be repeated, resulting in Link rolling without additional A inputs. Similarly, holding Z and unpausing in front of a candidate actor will cause Link to switch Z-targeting to that actor.
As a side effect, this also does not allow inputs to be buffered before the Subscreen has finished its closing animation, which is how vanilla also works. This is slightly unfortunate because the "freeze" before the game resumes is considerably shorter in Shipwright, but it'd be better to implement a fake delay there if we want to make it more forgiving.
* Fixed writing past end of the buffer when loading personal item tracker notes longer than 8 characters
* Revert "Fixed writing past end of the buffer when loading personal item tracker notes longer than 8 characters"
This reverts commit 721c18d488.
* ss2
* Remove Comments and Rupees when dead.
* Rupees removal for real
* Updated Inline formatting as well as changed Mode Idenitifier from Super Sonic to Rupee Dash.
* Add OnPlayerUpdate hook
* Move rupee dash to hooks
* Update comment for DashInterval
* ss2
* Remove Comments and Rupees when dead.
* Rupees removal for real
* Updated Inline formatting as well as changed Mode Idenitifier from Super Sonic to Rupee Dash.
* Add OnPlayerUpdate hook
* Move rupee dash to hooks
* Update comment for DashInterval
* Update Health to not crash on less than 16 units.
* lus
* fix build, use `Health_ChangeBy`
---------
Co-authored-by: Caladius <Caladius@users.noreply.github.com>
Co-authored-by: David Chavez <david@dcvz.io>
* add loadgame/exitgame GI hooks
* implement loadgame/exitgame hooks in game code
* move entrance tracker data lifecycle to hooks
* update cosmetic editor to update onloadgame hook
* Restore greg stuff
* Cleanup
* Actually check for Greg when creating Greg hint
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* whoops
* Update soh/soh/Enhancements/randomizer/3drando/hints.cpp
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* fix greg hint crash, clean up hint generation (clear out hints when setting is off)
* update vanillafill too
* fix text id, parse json, expand array to fit hint
* actually parse/use greg hint RSK
* specify "after buying a key" in hover text hint
---------
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: Ralphie Morell <stratomaster64@gmail.com>
* Update z_camera.c
* Update GameControlEditor.cpp
* Update GameControlEditor.cpp
* Update GameControlEditor.cpp
Adding Sliders for first person X and Y axis
* Update z_player.c
Modified variables to allowed separate sensitivity settings for x and y axis
* Update z_camera.c
* Revert "Update z_camera.c"
* Update GameMenuBar.cpp
Added tickbox for NoFPChus
* Update z_player.c
Added check for Disable First Person Bomchus enhancement
* Update z_player.c
Removed comment as statement is clear on its own
* Update GameMenuBar.cpp
* Projectile ammo matches ItemAction instead of age
extracted logic from months-old PR
* Added cvar under "Enhancements -> Gameplay -> Items" for bow/slingshot ammo
* Update GameMenuBar.cpp
* fix entrance init and entrance tracker not working properly when no spoiler log is loaded
* fix rando adult trade spoilable items reverting when no spoiler log loaded
* fix market night escape to work with entrance rando; adjust HF bridge spawn to not have link fall in water at night
* use scene enums for ER logic instead of magic nums
* fix sun song loading are with wrong link position with grotto shuffle on
* Update soh/soh/Enhancements/randomizer/randomizer_entrance.c
* Increases the actual block pushing speed.
Previously this enhancement only decreased the delay between pushes in any noticeable way because the top speed of the blocks was clamped. The enhancement now increases the top speed of the blocks according to the slider's value.
* Applies previous changes to milk crates.
* Applies same fix to fire temple stone blocks
(I believe these are the ones with the faces on them)
* Applies fixes to Poe painting blocks (forest temple)
* Begin GameInteractor
* Basic skeleton of PoC
* WIP
* First 2 CC effects transitioned to GameInteractor
* Prepare GameInteractor classes for CrowdControl
* More effects & replace chaosEffects with GameInteractor
* CC connection fixes & all CC effects (enemy spawns still borked)
* First couple of build error fixes
* Fix build
* Proper enemy spawning
* Clean up old CC code
* Extract link size/invisibility into GameInteractor
* Small fix/cleanup
* Suggestions for PR
* Address PR comment
* Addressed more comments & small adjustments
* Fix crash when spawning enemies
* Remove Remove()
* Move checks into Apply() and move CC and some console commands to it
* Use inheritance to abstract check on application
* Rename prefix Actions with RawAction
* Make Remove return a Result
* Fix issue with compilation
* debugconsole -> GameInteractionEffects progress
* Add State in GI
* Unify some Effects
* Port more debug console items
* Remove state modifyiers from raw actions
* Port over last raw action / state in console
* Adjust some types
* Consolidate link size modifier effect
* Adjust more types
* Define category strings in CC
* Clean up remaining non defined strings
* Fix bug in timed effects
* Rename old pack
* CC fixes
* Translate GI enum function
* Console cleanup/fixes/consistency
Co-authored-by: David Chavez <david@dcvz.io>
* Add enhancement for dog following you everywhere
* Persist dogParams to save file
* Make doggo float in water
* Wrap change in cvar condition and update cvar usage
* Finish translations for Map Select
* First Pass
* TWEAK: Add back Japanese as default to conserve vanilla
* TWEAK: replace some array with structs + some translations
* TWEAK: loading messages [TODO: proper translations]
* TWEAK: forgot to push z64.h for loading messages + translated scene type
* TWEAK: spacing
* TWEAK: comment
* TWEAK: Small german OPT position
* TWEAK: german typo
* TWEAK: translation to cutsceneLabels
* TWEAK: Nabooru's name + Lairs
* TWEAK: Updated Cvar to new way to call them
* ADD: German
* Debug localization
* TWEAK: Age
They are noted as a flag thingy and not a literal age
* Tweak: Frogot the Great Fairy
* TWEAK: adressed comment
Co-authored-by: Amaro Martínez <xoas@airmail.cc>
* full health spawn
Co-authored-by: MoriyaFaith <46070717+MoriyaFaith@users.noreply.github.com>
* add enahancement to gamemenubar, update to use new cvar method names, simplify save loading logic so loading a save with less than 3 hearts spawns with full hearts with enhancement enabled instead of spawing with 3
* formatting
Co-authored-by: MoriyaFaith <46070717+MoriyaFaith@users.noreply.github.com>
when pulling in documentation i missed a couple returns
this was causing mido to never stop blocking the path to the deku tree
after searchign the codebase, i found two instances of this mistake
this pr fixes them
Co-authored-by: briaguya <briaguya@alice>