From 1c7bd75537bf01f2af7393ed4a670e8d2e8d1a86 Mon Sep 17 00:00:00 2001 From: Allanis <allanis@saracraft.net> Date: Wed, 31 Jul 2013 20:24:14 +0100 Subject: [PATCH] [Fix] Let's not segfault if a mission is not found in the stack when saving. :/ --- src/player.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/player.c b/src/player.c index 2f2ac9b..e0c8e27 100644 --- a/src/player.c +++ b/src/player.c @@ -1584,6 +1584,7 @@ int player_missionAlreadyDone(int id) { /* Save the player in a freaking xmlfile. */ int player_save(xmlTextWriterPtr writer) { int i; + MissionData* m; xmlw_startElem(writer, "player"); xmlw_attr(writer, "name", player_name); @@ -1601,10 +1602,14 @@ int player_save(xmlTextWriterPtr writer) { xmlw_endElem(writer); /* Player. */ + /* Mission the player has done. */ xmlw_startElem(writer, "missions_done"); - for(i = 0; i < missions_ndone; i++) - xmlw_elem(writer, "done", mission_get(missions_done[i])->name); + for(i = 0; i < missions_ndone; i++) { + m = mission_get(missions_done[i]); + if(m != NULL) /* In case mission name changes between versions. */ + xmlw_elem(writer, "done", mission_get(missions_done[i])->name); + } xmlw_endElem(writer); /* missions_done. */