* When rupees are given as starting items, they still modify `gSaveContext.rupeeAccumulator`, which means that if you make a new file, start it, and reload without saving, or exit SoH before starting the new file, those rupees were lost. This adds a check for `gPlayState` being NULL, and if it is, adds those initial rupees to the rupee count directly.
* Update soh/src/code/z_parameter.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Modified Affordable logic to select randomly from 10, 105, 205, and 505 depending on the selected wallet tier. Updated the tooltip to reflect.
* Clarified logic in comments and variable names.
* Streamlined affordable check for starter wallet.
One more function comment.
* More streamlining of affordable price generation, comment clarification.
I use PyEnv and rebuilding after recent commits was giving me a cmake error about not being able to find the Python3 executable. Advising other users who might run into this problem on how to fix it.
* 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>
* make greg bridge more greg
* use green rupee color from cosmetics editor
* use hooks to not patch/unpatch every frame
* use gi hook
---------
Co-authored-by: briaguya <briaguya@alice>
* Adds price range select box for shopsanity when shopsanity is 1 or more items.
Default option is the original functionality, now under "Random" select option.
Other options include Affordable, which makes each item 10 rupees, and one option for each level of wallet available with shopsanity, where each wallet's max capacity is the upper limit on the price randomization. These still go in 5 rupee increments, like Random.
Also keeps track of and saves/loads settings appropriately on game start.
* Changed "Random" default shopsanity price selection to "Balanced" to be more properly descriptive.
Refactored GetRandomShopPrice to try to keep Balanced as the default, with a sane fallback price of 150 should the weighted randomizer somehow fail.
* Missed one change from Random to Balanced.
* Changed wallet range to minimum of 5, and removed the multiple of 5 requirement (full rando within range).
* Modified the system to add a checkbox for affordability which then adds a price cap that is just above the max value of the previous wallet tier. Effectively this keeps the wallet lock in place, but prevents anything from getting more expensive than 5 past the previous tier.
* Fixed hover help text and tooltip formatting.
* Changed wallet ranges to generate multiples of 5. May need weighted generation after playtesting.
* update writealllocations to always write trickname and start seeing where things break
* handle simple vs complex items
* always grab a trick name
---------
Co-authored-by: briaguya <briaguya@alice>