From 974747b4add93bcb38cb6be94a1b0d0473a6b665 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 29 Oct 2006 14:03:56 +0000 Subject: [PATCH] small fixes --- src/common/kernel/item.h | 2 +- src/common/kernel/save.c | 64 +++++++++++++++++++--------------------- src/res/messages.xml | 1 + 3 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/common/kernel/item.h b/src/common/kernel/item.h index 303bae0f4..e13c46f4a 100644 --- a/src/common/kernel/item.h +++ b/src/common/kernel/item.h @@ -26,9 +26,9 @@ struct locale; struct troop; typedef struct item { + struct item * next; const struct item_type * type; int number; - struct item * next; } item; typedef struct resource { diff --git a/src/common/kernel/save.c b/src/common/kernel/save.c index 3fb0c0eaa..66b1c5e17 100644 --- a/src/common/kernel/save.c +++ b/src/common/kernel/save.c @@ -1073,24 +1073,23 @@ readunit(FILE * F) } set_order(&u->thisorder, NULL); - assert(u->number <= UNIT_MAXSIZE); - assert(u->race); - if (global.data_versionrace); + if (global.data_versionnumber) { while ((sk = (skill_t) ri(F)) != NOSKILL) { - int days = ri(F) / u->number; - int lvl = level(days); - int weeks = lvl + 1 - (days - level_days(lvl))/30; - assert(weeks>0 && weeks<=lvl+1); - if (lvl) { - skill * sv = add_skill(u, sk); - sv->level = sv->old = (unsigned char)lvl; - sv->weeks = (unsigned char)weeks; - } + int days = ri(F) / u->number; + int lvl = level(days); + int weeks = lvl + 1 - (days - level_days(lvl))/30; + assert(weeks>0 && weeks<=lvl+1); + if (lvl) { + skill * sv = add_skill(u, sk); + sv->level = sv->old = (unsigned char)lvl; + sv->weeks = (unsigned char)weeks; + } } - } - } else { + } + } else { while ((sk = (skill_t) ri(F)) != NOSKILL) { int level = ri(F); int weeks = ri(F); @@ -1190,26 +1189,25 @@ writeunit(FILE * F, const unit * u) wnl(F); #endif - assert(u->number <= UNIT_MAXSIZE); assert(u->race); - for (i=0;i!=u->skill_size;++i) { - skill * sv = u->skills+i; - assert(sv->weeks<=sv->level*2+1); - if (sv->level>0) { - wi(F, sv->id); - wi(F, sv->level); - wi(F, sv->weeks); - } - } - wi(F, -1); - wnl(F); - write_items(F, u->items); - wnl(F); - if (u->hp == 0) { - log_error(("Einheit %s hat 0 Trefferpunkte\n", itoa36(u->no))); - ((unit*)u)->hp = 1; - } + for (i=0;i!=u->skill_size;++i) { + skill * sv = u->skills+i; + assert(sv->weeks<=sv->level*2+1); + if (sv->level>0) { + wi(F, sv->id); + wi(F, sv->level); + wi(F, sv->weeks); + } + } + wi(F, -1); + wnl(F); + write_items(F, u->items); + wnl(F); + if (u->hp == 0) { + log_error(("Einheit %s hat 0 Trefferpunkte\n", itoa36(u->no))); + ((unit*)u)->hp = 1; + } wi(F, u->hp); wnl(F); a_write(F, u->attribs); diff --git a/src/res/messages.xml b/src/res/messages.xml index ecda7aa9f..4a0ee8a4b 100644 --- a/src/res/messages.xml +++ b/src/res/messages.xml @@ -5524,6 +5524,7 @@ + "$unit($unit) in $region($region): '$order($command)' - Einheiten dürfen nicht mehr als $int($maxsize) Personen enthalten." "$unit($unit) in $region($region): '$order($command)' - Units may not have more than $int($maxsize) members."