* Extract rng manipulation to its own file
* clang format
* Get CPU cycles since game start to use for RNG
* change a few things
* clang format
* Implement suggestions from @ricfehr3
* clang format
* Fix rebase issue
* clang format
* Create RngInfo struct to hold seed and step
* clang format
* Make a note about rng_restore system not having been tested properly yet
* Apply suggestions from @ricfehr3
Co-authored-by: Rickey <ric@rf3.xyz>
* clang format
---------
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: Rickey <ric@rf3.xyz>
* optimizations
* fix prototype
* clang-format
* changes
* fix bug
* fix bug that came back after rebase
* make is_sprite_object_static more readable
* make it not broken
* actually make it compile...
* clang-format
* remove first extra check
* remove second extra check
* remove third extra check
* helper function 1
* second helper function
* how did i do this that wrong
* seperate epsilon
* combine if statements
* clarify comment
* remove redundant checks
* Remove braces around return
Co-authored-by: Rickey <ric@rf3.xyz>
* Move comment to above
Co-authored-by: Rickey <ric@rf3.xyz>
* clang-format
* simplify using abs()
Co-authored-by: Rickey <ric@rf3.xyz>
* fix syntax error from suggestion
* drop second epsilon + use abs()
* update comment
* extract sprite_oject_needs_position_sync from is_sprite_object_static
* figured out the root cause :)
* make it compile
---------
Co-authored-by: Rickey <ric@rf3.xyz>
* initial commit, DOES NOT COMPILE
* Rename joker interactions file to `joker_row`
* IT'S WORKIIING (now to make it pretty lol)
* fixed rebase issues
* fix rebase + undo state machine changes
* Document shop state functions
* clang format
* fix reroll cost not appearing on shop init
* Move generic SpriteObject text/price printing functions to sprite.c + some minor fixes
* Resolve weird defines/include order issue
* clang format
* Implement suggestions from @ricfehr3
* clang format
* clang format
* fix rebase
* Implement sugegstions from @ricfehr3
* Refactored shop to use the Button struct
* missed some memsets
---------
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
* background
* Implement Options button
* Update main menu artwork
* add options menu tiles
* prepare options menu handling
* incorporate main menu refactor
* toto
* add all menu interactions
* do not reset selection_x in main_menu
* options struct
* fix rebase from ricfehr3's repo
* Implement high contrast cards
* Save/Load options values to SRAM
* load options on game_init and validate data within the load_options function
* Get changes from ricfehr3's PR
* recover fix for glitched ace
* clang format
* clang format
* clang format
* Save 500B of image data by using only minimal set of tiles instead of keeping final window in source file
* clang format
* clang format
* Implement Options button
* Update main menu artwork
* progress, leaving it alone for now until discussion
* make game_vars an extern
* Move options vars into their own struct
* rollback previous commit
* Implement save validation. Version check to come
* implement data validity + version check for game saves
* clang format
* Save position in rng sequence for consistent run after load
* fix rebase issues
* fix rebase issue
* remove unused/duplicate define
* Oops, made a mistake when testing PR #424
* encode high contrast palette into an image, and load it at game_start
* document save.c/h and correct typos
* correct alignment
* game speed and high contrast buttons working
* small cleanup
* sliders also work again now
* clang format
* Moved balatro_version extern declaration to version.h file
* removed unsused variable
* make showing ROM version a toggle
* move ante, round and money to the GameVariables struct
* Rename SaveCheckInfo struct to SaveHeader for clarity
* Add SaveHeader struct explanation
* clang format
* Revert unnecessary tileset optimization
* SFX now follows the sound volume slider
* clang format
* Music now follows volume slider
* Changed volume slider increment from 5 to 20 to avoid having the music sound too rough under 20% volume
* refactor main_menu.c to use SelectionGrid and Button structs
* clang format
* make a "new" save button so we don't save during the state transition
* clang format
* Reduced state transition flicker by only changing affine background to a different one
* Fix loading game too late in game init sequence
* First batch of suggestions from @MeirGavish
* Remove unnecessary intermediary buffers for high contrast palette swapping
* comment row warp hack for button input
* Add some of Copilot's suggestions
* rename balatro_version into gbalatro_version for rebranding reasons + version display erase screen fix
* remove unnecessary NULL check on `on_selection_changed` method
* implement small game speed arrow buttons animation
* factorize some code
* remove unnecessary data validation in load_game(), since we already checked the header
* Implement @MeirGavish 's suggestion regarding splitting the huge `on_update` function
* clang format
* implement @ricfehr3 's suggestion about keeping last selected button instead of using an obscure `on_boot` boolean
* Apply @ricfehr3's suggestions
* fix clang-format flags
---------
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
* Optimize Damping Coefficient
* Added Rounding + Moved Constants
* Added Comments and Made Rounding not use a magic number
* adjust epsilon
* Adjusted Documentation