Refactor/main menu (#416)

* Add basic common_ui background gfx functions

* Move game main menu to separate file

* clang format

* tmp commit basic docs

* clang format

* scope vars and cleanup

* Quick consistency update. Finalize.

This branch is based on: https://github.com/GBALATRO/balatro-gba/pull/363
Co-authored-by: emiyl <me@emiyl.com>

* Simplify global struct

* clang-format

* Add clang-format to subdirs

* Move timer definitions into their own file

* clang-format

* Fix action yml

* docs

* Update for PR

* Move game start to a state

* Remove lag switch

* Remove GameVariables pointer for callbacks

* Make game_vars a global

* move declaration of game vars in header

* Fix multiple game_vars

* fix for pr

* remove change_background in update again

* clang format

* Make bgCallbacks table static const

---------

Co-authored-by: emiyl <me@emiyl.com>
This commit is contained in:
Rickey
2026-04-27 20:04:18 -07:00
committed by GitHub
co-authored by emiyl
parent adca0961f5
commit da988ba7f5
9 changed files with 292 additions and 206 deletions
+13 -3
View File
@@ -1,22 +1,32 @@
#include "game/common_ui.h"
#include "game.h"
#include "game/main_menu.h"
typedef void (*BackgroundRenderCallback)(void);
static enum BackgroundId background = BG_NONE;
// Map to fill in for refactor
BackgroundRenderCallback bgCallbacks[] =
{
static const BackgroundRenderCallback bgCallbacks[] = {
[BG_NONE] = NULL,
[BG_CARD_SELECTING] = NULL,
[BG_CARD_PLAYING] = NULL,
[BG_ROUND_END] = NULL,
[BG_SHOP] = NULL,
[BG_BLIND_SELECT] = NULL,
[BG_MAIN_MENU] = NULL,
[BG_MAIN_MENU] = game_main_menu_change_background,
};
void change_background(enum BackgroundId id)
{
if (id == BG_MAIN_MENU)
{
if (id != background)
{
bgCallbacks[id]();
}
}
change_background_legacy(id);
background = id;
}