From 7b509e4e08f251f0e985b249ce656a96ebed5588 Mon Sep 17 00:00:00 2001 From: Allanis Date: Wed, 15 May 2013 22:02:27 +0100 Subject: [PATCH] [Change] Save when taking off or quitting, instead of when landing as we need to save purchased ships etc. --- src/land.c | 3 ++- src/menu.c | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/land.c b/src/land.c index 130c872..50e5f51 100644 --- a/src/land.c +++ b/src/land.c @@ -979,7 +979,6 @@ void land(Planet* p) { // TODO: mission check. visited(VISITED_LAND); } - save_all(); } // Takeoff from the planet. @@ -1017,6 +1016,8 @@ void takeoff(void) { space_init(NULL); + // Cleanup. + save_all(); // Must be before cleaning up planet. Duh! land_planet = NULL; window_destroy(land_wid); landed = 0; diff --git a/src/menu.c b/src/menu.c index e8b3552..d45b3e1 100644 --- a/src/menu.c +++ b/src/menu.c @@ -11,6 +11,8 @@ #include "mission.h" #include "ltime.h" #include "save.h" +#include "land.h" +#include "rng.h" #include "menu.h" #define MAIN_WIDTH 130 @@ -152,6 +154,12 @@ static void edit_options(void) { // Exit the game. static void exit_game(void) { + // If landed we must save anyways. + if(landed) { + // Increment time to match takeoff. + ltime_inc(RNG(2*LTIME_UNIT_LENGTH, 3*LTIME_UNIT_LENGTH)); + save_all(); + } SDL_Event quit; quit.type = SDL_QUIT; SDL_PushEvent(&quit);