diff --git a/src/faction.c b/src/faction.c index 165259d..a9de2e7 100644 --- a/src/faction.c +++ b/src/faction.c @@ -461,6 +461,7 @@ int pfaction_save(xmlTextWriterPtr writer) { int pfaction_load(xmlNodePtr parent) { xmlNodePtr node, cur; char* str; + int faction; node = parent->xmlChildrenNode; @@ -470,7 +471,9 @@ int pfaction_load(xmlNodePtr parent) { do { if(xml_isNode(cur, "factions")) { xmlr_attr(cur, "name", str); - faction_stack[faction_get(str)].player = xml_getInt(cur); + faction = faction_get(str); + if(faction != -1) /* Faction is valid. */ + faction_stack[faction].player = xml_getInt(cur); free(str); } } while(xml_nextNode(cur));