From 313e3a74885aaca654da72f5b2b2411a0fefb0be Mon Sep 17 00:00:00 2001 From: Allanis Date: Thu, 12 Dec 2013 23:14:10 +0000 Subject: [PATCH] [Fix] Fixed diffs getting wiped when loading and some cleanup on planet landing. --- src/land.c | 23 +++++++++++++++++++++++ src/land.h | 1 + src/player.c | 4 ++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/land.c b/src/land.c index 6073f0b..32b66d9 100644 --- a/src/land.c +++ b/src/land.c @@ -1284,6 +1284,7 @@ void takeoff(void) { /* Cleanup. */ save_all(); /* Must be before cleaning up planet. Duh! */ + land_cleanup(); /* Cleanup stuff. */ land_planet = NULL; window_destroy(land_wid); if(gfx_exterior != NULL) { @@ -1303,3 +1304,25 @@ void takeoff(void) { mission_ncomputer = 0; } +/** + * @fn + */ +void land_cleanup(void) { + /* Clean up default stuff. */ + land_planet = NULL; + landed = 0; + land_visited = 0; + + /* Clean up window. */ + if(land_wid != 0) { + window_destroy(land_wid); + land_wid = 0; + } + + /* Clean up possible stray graphic. */ + if(gfx_exterior != NULL) { + gl_freeTexture(gfx_exterior); + gfx_exterior = NULL; + } +} + diff --git a/src/land.h b/src/land.h index 9824385..7ff7845 100644 --- a/src/land.h +++ b/src/land.h @@ -6,4 +6,5 @@ extern Planet* land_planet; void land(Planet* p); void takeoff(void); +void land_cleanup(void); diff --git a/src/player.c b/src/player.c index e3047c8..ba4e41b 100644 --- a/src/player.c +++ b/src/player.c @@ -238,10 +238,11 @@ void player_new(void) { /* Cleanup player stuff if we'll be re-creating. */ player_cleanup(); - var_cleanup(); missions_cleanup(); space_clearKnown(); + land_cleanup(); + diff_clear(); player_name = dialogue_input("Player Name", 3, 20, "Please tell me your name:"); @@ -548,7 +549,6 @@ void player_cleanup(void) { int i; player_clear(); - diff_clear(); /* Clean up name. */ if(player_name != NULL) free(player_name);