Commit Graph
189 Commits
Author SHA1 Message Date
GeraltandMathisMartin31 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
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
RickeyandMeirGavish 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
GeraltandMathisMartin31 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
GeraltandMathisMartin31 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
RickeyandMeirGavish 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
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
GeraltandMathisMartin31 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
Rickeyandrfehr-idexx 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
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
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
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
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
Rickey Fehr 3c2dd0edba Rename blind enums to represent their type
This commit prefixes the enums `BlindType` and `BlindState` with their
types for clarity
2025-10-13 23:36:27 -07:00
Rickey Fehr 7ee07bb34c Refactor blind into a map 2025-10-13 23:36:27 -07:00