From b6160f32acdee8e0b61f4bceacbcbebbb2140a1d Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Tue, 25 Oct 2005 13:06:59 +0000 Subject: [PATCH] ships mentioning terrain-types that don't exist. --- src/common/kernel/xmlreader.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/common/kernel/xmlreader.c b/src/common/kernel/xmlreader.c index 5d187c450..46795867f 100644 --- a/src/common/kernel/xmlreader.c +++ b/src/common/kernel/xmlreader.c @@ -500,7 +500,7 @@ parse_ships(xmlDocPtr doc) /* reading eressea/ships/ship/coast */ xpath->node = node; result = xmlXPathEvalExpression(BAD_CAST "coast", xpath); - for (k=0;k!=result->nodesetval->nodeNr;++k) { + for (k=0;k!=result->nodesetval->nodeNr;) { xmlNodePtr node = result->nodesetval->nodeTab[k]; if (k==0) { @@ -512,7 +512,10 @@ parse_ships(xmlDocPtr doc) property = xmlGetProp(node, BAD_CAST "terrain"); assert(property!=NULL); st->coasts[k] = get_terrain((const char*)property); - assert(st->coasts[k]!=NULL); + if (st->coasts[k]!=NULL) ++k; + else { + log_warning(("ship %s mentions a non-existing terrain %s.\n", st->name[0], property)); + } xmlFree(property); } xmlXPathFreeObject(result);