From 09afbfc0d93b337f70ba34feb5197f2a7481fd6c Mon Sep 17 00:00:00 2001 From: Steve Date: Sat, 21 Apr 2018 12:13:29 +0100 Subject: [PATCH] Load and use correct save slot. --- src/game/game.c | 4 +++- src/game/title.c | 14 +++++++------- src/game/title.h | 2 +- src/test/worldTest.c | 2 +- src/test/worldTest.h | 2 +- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/game/game.c b/src/game/game.c index d5c1d67..495ce8f 100644 --- a/src/game/game.c +++ b/src/game/game.c @@ -272,7 +272,7 @@ static void loadMetaInfo(void) free(text); } -void loadGame(void) +void loadGame(int slot) { cJSON *root, *node, *statsJSON; char *text, filename[MAX_PATH_LENGTH], *statName; @@ -283,6 +283,8 @@ void loadGame(void) destroyGame(); initGame(); + + game.saveSlot = slot; sprintf(filename, "%s/%d/game.json", app.saveDir, game.saveSlot); diff --git a/src/game/title.c b/src/game/title.c index 8392eb2..030ab40 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -38,7 +38,6 @@ void returnToTitle(void); static Texture *atlasTexture; static Atlas *title; -static int recentSaveSlot; static int saveAction; static Widget *startNewGame; static Widget *load; @@ -91,13 +90,16 @@ void initTitle(void) titleAlpha = 0; - recentSaveSlot = getRecentSave(); + continueGame->value[1] = getRecentSave(); showWidgetGroup("title"); - if (recentSaveSlot != -1) + if (continueGame->value[1] != -1) { setSelectedWidget("continue", "title"); + + load->disabled = 0; + continueGame->disabled = 0; } else { @@ -255,11 +257,9 @@ static void doContinueGame(void) { stopMusic(); - loadGame(); + loadGame(continueGame->value[1]); initHub(); - - game.saveSlot = continueGame->value[1]; } static void doOptions(void) @@ -291,7 +291,7 @@ static void doSaveSlot(void) { stopMusic(); - loadGame(); + loadGame(game.saveSlot); initHub(); } diff --git a/src/game/title.h b/src/game/title.h index c546eb5..934b034 100644 --- a/src/game/title.h +++ b/src/game/title.h @@ -45,7 +45,7 @@ extern Widget *getWidget(char *name, char *group); extern void initCredits(int playMusic); extern void initHub(void); extern void initOptions(void (*callback)(void)); -extern void loadGame(void); +extern void loadGame(int slot); extern void loadMusic(char *filename); extern void newGame(void); extern void playMusic(int loop); diff --git a/src/test/worldTest.c b/src/test/worldTest.c index 1e90402..9bc1b6a 100644 --- a/src/test/worldTest.c +++ b/src/test/worldTest.c @@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. void initWorldTest(char *worldId) { - loadGame(); + loadGame(0); saveGame(); diff --git a/src/test/worldTest.h b/src/test/worldTest.h index 0155ec4..167b3f7 100644 --- a/src/test/worldTest.h +++ b/src/test/worldTest.h @@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. extern void initHub(void); extern void initWorld(void); -extern void loadGame(void); +extern void loadGame(int slot); extern void saveGame(void); extern Game game;