Commit Graph

241 Commits

Author SHA1 Message Date
MeirGavish
43d837571e Truncate Scores (#269)
* Fixed score truncation erasure, and centering for chips, mult, score and "temp score

* Added centering for money

* Added tests for truncate_uint_to_suffixed_str()

* Fixed u32 bug with get_digits

* Fixed score flames for large numbers

* Small change to update documentation

* Added 1 pixel on to score rect on the left to make room for full character tile + reset_top_left_panel_bottom_row() refactor

* Replaced directional defines with enums

* Updated ante_lut comment

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-02 08:28:36 +02:00
Tygyh
8bba449196 Convert BG_ID_* defines to enum BackgroundId (#265)
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2025-11-30 08:53:51 +02:00
Geralt
0953a430c4 Implement Seltzer and Joker Expiration effect (#252)
* Add Seltzer art

* Implement Joker expiration

* Add exception to copying Jokers + Seltzer message fix

* Move all scoring logic to joker_object_score away from check_and_score_joker_for_event

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-11-30 08:52:42 +02:00
Geralt
435a9a0a1d Refactor JokerEffect scoring (#245)
* Remove usage of memcmp for JokerEffect null check

* Added suggestions from @ricfehr3

* Add suggestions from @MeirGavish


---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
2025-11-28 19:03:47 +02:00
Rickey
1cacabdff6 Clang format pool (#255)
* Update comment prefix + add github action

* Clang Format pool

* fix clang format version

* Fix pool clang format
2025-11-27 10:41:13 -08:00
Rickey
184ee719b3 Clang format card.c/h (#256) 2025-11-26 00:52:04 +02:00
Rickey
09dd996181 Clang Format Blinds (#253)
* Quick cleanup on bitset docs

* Clang format blind.h/c

* Replace `_` with `s_` for functions

* Fix newline size for macros.

* Fix format for ci

* Add macro for "unused" attribute
2025-11-25 13:47:44 -08:00
Rickey
2c32ff69e3 Clang format hand analysis (#261)
* Clang format hand analysis

* Update source/hand_analysis.c

Co-authored-by: MeirGavish <meir.gavish@gmail.com>

---------

Co-authored-by: MeirGavish <meir.gavish@gmail.com>
2025-11-25 13:45:07 -08:00
Rickey
e910aee184 Clang format list (#254)
* Finish clang-format on lists
2025-11-25 11:32:50 +02:00
Rickey
6db35b0f95 Clang format sprite (#262) 2025-11-24 23:26:47 +02:00
Rickey Fehr
fcb2337fa2 Clang format splash screen 2025-11-23 18:43:45 -08:00
Geralt
408c264e85 Modify blueprint and brainstorm implementation to fix retrigger bug (#244)
---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-11-21 20:09:07 +02:00
Geralt
2fb41e533c Make Chips, Mult and Score unsigned and protect against overflow (#212)
---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-11-20 12:39:15 +02:00
Rickey
47b1bac31f Add list_swap() and list_insert() functions (#232)
* Add list_swap() and list_insert() functions

* Update docs for list_swap

* Add test case and fix list insert bug

* Fix silly bug with list length on insertion

* Initial changes for pr

* Add reverse iterator and update test for it

* Cleanup iterator next function

* update tests to cover list_get_at_idx
2025-11-18 18:19:00 -08:00
Rickey
a4caa44580 Add clang format and used it for bitset (#240)
* Add clang format file .clang-format

* Use clang format on bitset


---------

Co-authored-by: MeirGavish <meir.gavish@gmail.com>
2025-11-18 08:56:32 +02:00
Geralt
1ac55692e9 Break up the played cards scoring loop into several functions (#224)
* rename PLAY_PLAYING state into PLAY_STARTING

* make discarded_card and sound_played global variables

* Broken up cards_score state update

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
2025-11-16 17:33:01 +02:00
MeirGavish
28043bd7ca Integrated Photograph joker art by @MathisMartin31 2025-11-12 14:11:16 +02:00
Geralt
4183f563ab Implement cards held in hand effects (#205)
* Adapt existing Jokers to the Held Card mechanic + effect display location

* Add suggestions from @ricfehr3

* Add suggestions from @MeirGavish

---------

Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
2025-11-12 13:18:53 +02:00
Rickey
e0cffab768 Update list implementation to work with memory pools (#168)
* Introduce indexed list implementation

* Fix CI tests for pool

* Take bitset out of pool

* Replace joker bitset interactions with wrappers

* Add bitset tests

* Add test to gitignore

---------

Co-authored-by: rfehr-idexx <ric-fehr@idexx.com>
2025-11-11 17:56:21 +02:00
theturtlemafia
03273de829 Adds Shortcut and Four Fingers (#95)
* adds shortcut joker

* adds Four Fingers joker, and combination support for Four Fingers + Shortcut

---------

Co-authored-by: MeirGavish <meir.gavish@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-01 16:28:40 +02:00
Geralt
eb815b7820 Refactor of scoring flow, Joker Callbacks and Card Retriggers (#160)
* Remove Baseball Card for now, will have to wait a future PR

* Removed cards held in hand joker scoring stage - should be in another PR

---------

Co-authored-by: MonteCrysto <mathis.martin31@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
2025-11-01 15:50:52 +02:00
MeirGavish
dfe6edad88 Refactor - Replaced magic number copies with main_bg_se_copy_rect() (#192) 2025-11-01 08:12:20 +02:00
MeirGavish
b472ce2bad Changed the order of suits to match the original Balatro (#189) 2025-10-30 11:18:36 +02:00
JustinL-12
c510e78704 Implement Interest (#144)
* Implemented Interest

* Very carefully applied changes from PR #144 to implement interest and fixed magic numbers

---------

Co-authored-by: JustinL-12 <jlong30@uic.edu>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-29 20:43:26 +02:00
JustinL-12
b38433d191 Weight jokers by rarity in the shop (#152)
* Added weight for the rarity of jokers in the shop

* Includes manual conflict resolution

---------

Co-authored-by: JustinL-12 <jlong30@uic.edu>
Co-authored-by: MeirGavish <meir.gavish@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-27 19:18:48 +02:00
MeirGavish
a083d3de74 Moved pool file out of external definition and replaced it with a flag (#176)
* Moved pool file out of external definition and replaced it with a flag
2025-10-22 22:43:02 +03:00
MeirGavish
9b568e8e1a Moved undefined game state to enum end (more xmacro idiomatic) 2025-10-21 12:50:18 +03:00
MeirGavish
0b848cd72e Merge branch 'main' into start_music_after_splashscreen 2025-10-21 12:25:07 +03:00
Rickey Fehr
af3d69bcfb Rename def files 2025-10-18 17:28:35 -07:00
Rickey Fehr
138792df48 Add memory pool test, fix bugs 2025-10-17 18:05:36 -07:00
Rickey Fehr
16059ab632 Update for PR
Readd sprite tracker to not reuse indices
check for capacity when returning pool entries
Update script for printing memory map
2025-10-17 16:55:09 -07:00
Rickey Fehr
d499abe2c4 Cleanup for PR 2025-10-17 16:55:09 -07:00
Rickey Fehr
d78e04c6b5 Fix style, tiny error, and typo 2025-10-17 16:55:09 -07:00
Rickey Fehr
5e2bd9a59a Update memory map script and cleanup 2025-10-17 16:55:09 -07:00
Rickey Fehr
a1e73be3fc Update github actions to print the memory map 2025-10-17 16:55:09 -07:00
Rickey Fehr
06cd13a17f Centralize location of memory pools
This commit centralizes the location of memory pools and adds an
associated script (scripts/get_memory_map.sh) to read the memory map.
2025-10-17 16:55:09 -07:00
Rickey Fehr
72c0a6c4a9 Optimize bit operations, style fix, cleanup 2025-10-17 16:55:07 -07:00
Rickey Fehr
e00c51502b Replace Malloc With Pools
This commit introduces an object pool and replaces instances of malloc with pools where sensible.
2025-10-17 16:54:09 -07:00
MeirGavish
53d2e53d78 Changed music to start after Splash Screen 2025-10-17 13:43:21 +03:00
Drew
f77a715845 Some PR feedback 2025-10-14 23:08:42 -05:00
Drew
3a6e004fc6 Rebase and some PR feedback 2025-10-14 10:44:21 -05:00
Drew
0f154741ed Renaming a function, fixing a call to memcpy16. Replacing magic numbers with enum values 2025-10-14 10:26:09 -05:00
Drew
dbef1dacdc Added the ability to restart the game after a game over.
The function that handles this is the on_exit of the game lost state. This function is not meant to
be permanent, but is just a placeholder while we decide what we actually want to do when game over is
reached.
2025-10-14 10:26:05 -05:00
Drew
fb35397238 Cleanup 2025-10-14 10:20:43 -05:00
Drew
04ffb0d4dd A little bit of scope creep here.
Renamed some of the state functions to include the word 'on'. Also
replaced the switch statement in set_hand() with a lookup table
access. This lookup table contains the chips, mult and display name
for a given hand. Some may not like these changes, so we can easily
roll back if need be.
2025-10-14 10:20:43 -05:00
Drew
121bbc01d5 Refactored state machine.
Added a state info map which keeps track of a particular state's on_init, on_update and on_exit functions.
A few of the on_update functions have sub-states, which create extremely long switch statements.
Not sure if perhaps the best route would be to keep the switch statements but break the cases into individual
functions or if we should keep track of substates. The latter sounds like it could get complicated and really
messy quick. Problem for another day.
2025-10-14 10:20:40 -05:00
MeirGavish
6dce57e197 Merge pull request #145 from pansythoughts/main
kind of fixed how game_speed behaves
2025-10-14 13:57:40 +03:00
Rickey Fehr
ef048791c1 Separate out graphics and add ability change boss 2025-10-13 23:36:27 -07:00
Rickey Fehr
f885fa9164 Fix Iterating over every blind instead of 3 max 2025-10-13 23:36:27 -07:00
Rickey Fehr
54d955d1e7 Update for PR 2025-10-13 23:36:27 -07:00