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. */