1df8402900
* initial commit * wip * WIP * WIP * clang format * Choose Seed navigation mostly done * seed input navigation done * seed input done * cleanup and clang format * Implement base 10 to 36 conversions * Enable seeded runs * clang format * show default deck sprite, name and description * Rename Deck enum to DeckType * Implement arbitrary 9-patch expand system * Make 9-patch example smaller in the docs * Improve NinePatchRect docs * fix Deck back side sprite palette * clang format * Add last deck description * clang format * Fix 'Z' in seed input keyboard * Fix rebase issue * fix deck sprite not updating * Documents static funcs in run_setup.c * more documentation * clang format * Move Play button to the left in its row * Tests WIP * removing tests for random.h * use the new StateMachine struct * First wave of fixes * Fix the 9-patch again * Changed the base 36 logic so it's in big endian * properly set end of base 36 string to '\0' * typos * fix cursor position after rolling a seed + fix random seed generation * Make keyboard more intuitive to use * static const var * Address more comment from @ricfehr3 * clang format * clang format * clang format * clang format * clang format * clang format * clang format * fix deck palette * create the `DEF_SEED_KEYBOARD_BUTTON_OBJECT` macro * Replace `expand_3x3` by a call to `expand_9-patch` * clang format * clang format * clang format * fix rebase iussue in state_machine.h --------- Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>
66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
/**
|
|
* @file save.h
|
|
*
|
|
* @brief Utils functions to save/load data structures from/to the SRAM.
|
|
*
|
|
* Here is an overwiew of the contents of a valid save file.
|
|
*
|
|
* ```
|
|
* ┌─────────────┐ <-- SaveHeader
|
|
* │ Header │
|
|
* ├─────────────┤ <-- SaveOptions
|
|
* │ Options │
|
|
* ├─────────────┤ <-- SaveGame
|
|
* │ Engine vars │
|
|
* │ Jokers │
|
|
* └─────────────┘
|
|
* ```
|
|
*
|
|
* SaveHeader indicates save validity by its presence.
|
|
* SaveOptions contains options values set in the corresponding menu and apply to the game itself.
|
|
* SaveGame contains values tied to a run with round, ante, money, owned Jokers etc...
|
|
*
|
|
* @sa SaveHeader, SaveOptions, SaveGame
|
|
*
|
|
* I strongly recommend using `xxd -l 512 -e -g 4 <gbalatro.sav>` to view the contents of the save
|
|
*/
|
|
#ifndef SAVE_H
|
|
#define SAVE_H
|
|
|
|
#include "game_variables.h"
|
|
|
|
#include <tonc.h>
|
|
|
|
/**
|
|
* @brief Checks whether the SaveGame section is present and valid.
|
|
*
|
|
* @returns true if it is, false if not.
|
|
*/
|
|
bool is_game_data_valid(void);
|
|
|
|
/**
|
|
* @brief Save current run data to SRAM.
|
|
*/
|
|
void save_game(void);
|
|
|
|
/**
|
|
* @brief Load previous run data from SRAM.
|
|
*
|
|
* @sa save_game
|
|
*/
|
|
void load_game(void);
|
|
|
|
/**
|
|
* @brief Save options values to SRAM.
|
|
*/
|
|
void save_options(void);
|
|
|
|
/**
|
|
* @brief Load options values from SRAM.
|
|
*
|
|
* @sa save_options
|
|
*/
|
|
void load_options(void);
|
|
|
|
#endif // SAVE_H
|