From 92de4d4c25fb56caebb0c5708c296c7a896e97cc Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 23 Apr 2005 22:52:49 +0000 Subject: [PATCH] http://eressea.upb.de/mantis/view.php?id=500 Auraregeneration in Burgen war kapputt. Noch ein paar display==NULL Fixes --- src/common/gamecode/creport.c | 7 +++---- src/common/kernel/xmlreader.c | 8 ++++---- src/common/util/goodies.c | 12 ++++++++++-- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/common/gamecode/creport.c b/src/common/gamecode/creport.c index 1a93056d2..0d33eec38 100644 --- a/src/common/gamecode/creport.c +++ b/src/common/gamecode/creport.c @@ -541,7 +541,7 @@ cr_output_buildings(FILE * F, building * b, unit * u, int fno, faction *f) } fprintf(F, "\"%s\";Typ\n", add_translation(bname, LOC(f->locale, bname))); fprintf(F, "\"%s\";Name\n", b->name); - if (strlen(b->display)) + if (b->display && strlen(b->display)) fprintf(F, "\"%s\";Beschr\n", b->display); if (b->size) fprintf(F, "%d;Groesse\n", b->size); @@ -564,12 +564,11 @@ cr_output_buildings(FILE * F, building * b, unit * u, int fno, faction *f) static void cr_output_ship(FILE * F, const ship * sh, const unit * u, int fcaptain, const faction * f, const region * r) { - unit *u2; int w = 0; assert(sh); fprintf(F, "SCHIFF %d\n", sh->no); fprintf(F, "\"%s\";Name\n", sh->name); - if (strlen(sh->display)) + if (sh->display && strlen(sh->display)) fprintf(F, "\"%s\";Beschr\n", sh->display); fprintf(F, "\"%s\";Typ\n", add_translation(sh->type->name[0], locale_string(f->locale, sh->type->name[0]))); fprintf(F, "%d;Groesse\n", sh->size); @@ -625,7 +624,7 @@ cr_output_unit(FILE * F, const region * r, fprintf(F, "EINHEIT %d\n", u->no); fprintf(F, "\"%s\";Name\n", u->name); - if (strlen(u->display)) + if (u->display && strlen(u->display)) fprintf(F, "\"%s\";Beschr\n", u->display); { diff --git a/src/common/kernel/xmlreader.c b/src/common/kernel/xmlreader.c index 90987dd70..56504f4f0 100644 --- a/src/common/kernel/xmlreader.c +++ b/src/common/kernel/xmlreader.c @@ -224,7 +224,7 @@ parse_buildings(xmlDocPtr doc) bt->magres = xml_ivalue(node, "magres", 0); bt->magresbonus = xml_ivalue(node, "magresbonus", 0); bt->fumblebonus = xml_ivalue(node, "fumblebonus", 0); - bt->auraregen = xml_fvalue(node, "auraregen", 0.0); + bt->auraregen = xml_fvalue(node, "auraregen", 1.0); if (xml_bvalue(node, "nodestroy", false)) bt->flags |= BTF_INDESTRUCTIBLE; if (xml_bvalue(node, "nobuild", false)) bt->flags |= BTF_NOBUILD; @@ -331,12 +331,12 @@ parse_ships(xmlDocPtr doc) st->cargo = xml_ivalue(node, "cargo", 0); st->combat = xml_ivalue(node, "combat", 0); st->cptskill = xml_ivalue(node, "cptskill", 0); - st->damage = xml_fvalue(node, "damage", 0); + st->damage = xml_fvalue(node, "damage", 0.0); if (xml_bvalue(node, "fly", false)) st->flags |= SFL_FLY; if (xml_bvalue(node, "opensea", false)) st->flags |= SFL_OPENSEA; st->minskill = xml_ivalue(node, "minskill", 0); st->range = xml_ivalue(node, "range", 0); - st->storm = xml_fvalue(node, "storm", 0.0); + st->storm = xml_fvalue(node, "storm", 1.0); st->sumskill = xml_ivalue(node, "sumskill", 0); /* reading eressea/ships/ship/construction */ @@ -787,7 +787,7 @@ parse_races(xmlDocPtr doc) rc->magres = xml_fvalue(node, "magres", 0.0); rc->maxaura = xml_fvalue(node, "maxaura", 0.0); - rc->regaura = xml_fvalue(node, "regaura", 0.0); + rc->regaura = xml_fvalue(node, "regaura", 1.0); rc->recruitcost = xml_ivalue(node, "recruitcost", 0); rc->maintenance = xml_ivalue(node, "maintenance", 0); rc->weight = xml_ivalue(node, "weight", 0); diff --git a/src/common/util/goodies.c b/src/common/util/goodies.c index ac5e73260..2a784ae96 100644 --- a/src/common/util/goodies.c +++ b/src/common/util/goodies.c @@ -111,8 +111,16 @@ escape_string(const char * str, char * buffer, unsigned int len) char * set_string (char **s, const char *neu) { - *s = realloc(*s, strlen(neu) + 1); - return strcpy(*s, neu); + if (neu==NULL) { + free(*s); + *s = NULL; + } else if (*s == NULL) { + *s = malloc(strlen(neu)+1); + } else { + *s = realloc(*s, strlen(neu) + 1); + strcpy(*s, neu); + } + return *s; } boolean