mirror of
https://github.com/Polprzewodnikowy/N64FlashcartMenu.git
synced 2024-11-28 13:34:14 +01:00
Improve state file path
This commit is contained in:
parent
8188a240b6
commit
7e2b503ee5
@ -14,6 +14,11 @@
|
|||||||
#include "ed64.h"
|
#include "ed64.h"
|
||||||
#include "ed64_state.h"
|
#include "ed64_state.h"
|
||||||
|
|
||||||
|
#define ED64_STATE_FILE "ed64_state.ini"
|
||||||
|
|
||||||
|
#ifndef ED64_OS_DIRECTORY
|
||||||
|
#define ED64_OS_DIRECTORY "/ED64"
|
||||||
|
#endif
|
||||||
|
|
||||||
static ed64_pseudo_writeback_t current_state;
|
static ed64_pseudo_writeback_t current_state;
|
||||||
|
|
||||||
@ -29,6 +34,9 @@ static flashcart_err_t ed64_init (void) {
|
|||||||
// older everdrives cannot save during gameplay so we need to the reset method.
|
// older everdrives cannot save during gameplay so we need to the reset method.
|
||||||
// works by checking if a file exists.
|
// works by checking if a file exists.
|
||||||
|
|
||||||
|
// FIXME: should put the file in the OS dir, but different if a clone (ED64P).
|
||||||
|
char *state_path = "sd:/menu/"ED64_STATE_FILE;
|
||||||
|
ed64_state_init(state_path);
|
||||||
ed64_state_load(¤t_state);
|
ed64_state_load(¤t_state);
|
||||||
|
|
||||||
if (current_state.is_expecting_save_writeback == true) {
|
if (current_state.is_expecting_save_writeback == true) {
|
||||||
|
@ -4,9 +4,7 @@
|
|||||||
#include "ed64_state.h"
|
#include "ed64_state.h"
|
||||||
#include "utils/fs.h"
|
#include "utils/fs.h"
|
||||||
|
|
||||||
#ifndef ED64_STATE_FILE_PATH
|
static char *ed64_state_path = NULL;
|
||||||
#define ED64_STATE_FILE_PATH "sd:/menu/ed64_state.ini"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static ed64_pseudo_writeback_t init = {
|
static ed64_pseudo_writeback_t init = {
|
||||||
.is_expecting_save_writeback = false,
|
.is_expecting_save_writeback = false,
|
||||||
@ -14,13 +12,19 @@ static ed64_pseudo_writeback_t init = {
|
|||||||
.last_save_path = ""
|
.last_save_path = ""
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void ed64_state_init (char *path) {
|
||||||
|
if (ed64_state_path) {
|
||||||
|
free(ed64_state_path);
|
||||||
|
}
|
||||||
|
ed64_state_path = strdup(path);
|
||||||
|
}
|
||||||
|
|
||||||
void ed64_state_load (ed64_pseudo_writeback_t *state) {
|
void ed64_state_load (ed64_pseudo_writeback_t *state) {
|
||||||
if (!file_exists(ED64_STATE_FILE_PATH)) {
|
if (!file_exists(ed64_state_path)) {
|
||||||
ed64_state_save(&init);
|
ed64_state_save(&init);
|
||||||
}
|
}
|
||||||
|
|
||||||
mini_t *ini = mini_try_load(ED64_STATE_FILE_PATH);
|
mini_t *ini = mini_try_load(ed64_state_path);
|
||||||
|
|
||||||
state->is_expecting_save_writeback = mini_get_bool(ini, "ed64", "is_expecting_save_writeback", init.is_expecting_save_writeback);
|
state->is_expecting_save_writeback = mini_get_bool(ini, "ed64", "is_expecting_save_writeback", init.is_expecting_save_writeback);
|
||||||
state->is_fram_save_type = mini_get_bool(ini, "ed64", "is_fram_save_type", init.is_fram_save_type);
|
state->is_fram_save_type = mini_get_bool(ini, "ed64", "is_fram_save_type", init.is_fram_save_type);
|
||||||
@ -30,7 +34,7 @@ void ed64_state_load (ed64_pseudo_writeback_t *state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ed64_state_save (ed64_pseudo_writeback_t *state) {
|
void ed64_state_save (ed64_pseudo_writeback_t *state) {
|
||||||
mini_t *ini = mini_create(ED64_STATE_FILE_PATH);
|
mini_t *ini = mini_create(ed64_state_path);
|
||||||
|
|
||||||
mini_set_bool(ini, "ed64", "is_expecting_save_writeback", state->is_expecting_save_writeback);
|
mini_set_bool(ini, "ed64", "is_expecting_save_writeback", state->is_expecting_save_writeback);
|
||||||
mini_set_bool(ini, "ed64", "is_fram_save_type", state->is_fram_save_type);
|
mini_set_bool(ini, "ed64", "is_fram_save_type", state->is_fram_save_type);
|
||||||
|
@ -17,6 +17,8 @@ typedef struct {
|
|||||||
char *last_save_path;
|
char *last_save_path;
|
||||||
} ed64_pseudo_writeback_t;
|
} ed64_pseudo_writeback_t;
|
||||||
|
|
||||||
|
/** @brief Init ED64 state path */
|
||||||
|
void ed64_state_init (char *path);
|
||||||
void ed64_state_load (ed64_pseudo_writeback_t *state);
|
void ed64_state_load (ed64_pseudo_writeback_t *state);
|
||||||
void ed64_state_save (ed64_pseudo_writeback_t *state);
|
void ed64_state_save (ed64_pseudo_writeback_t *state);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user