From b252b00163dd23a59c37ca877a9209b8b4cee694 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 21 Aug 2005 09:24:14 +0000 Subject: [PATCH] Der server mag es nicht, wenn Rassen ein space im internal name haben, weil trigger den rassennamen ohne "" schreiben. also operiere ich die mal raus, spaces soll man da auch nicht haben. --- src/common/kernel/race.c | 28 +++++++++++++++------------ src/common/kernel/save.c | 41 ++++++++++++++++++++++++---------------- src/res/de/strings.xml | 40 +++++++++++++++++++-------------------- src/res/races.xml | 10 +++++----- 4 files changed, 66 insertions(+), 53 deletions(-) diff --git a/src/common/kernel/race.c b/src/common/kernel/race.c index e6b5693e1..689821c2e 100644 --- a/src/common/kernel/race.c +++ b/src/common/kernel/race.c @@ -83,18 +83,22 @@ racelist_insert(struct race_list **rl, const struct race *r) race * rc_new(const char * zName) { - char zBuffer[80]; - race * rc = calloc(sizeof(race), 1); - strcpy(zBuffer, zName); - rc->_name[0] = strdup(zBuffer); - sprintf(zBuffer, "%s_p", zName); - rc->_name[1] = strdup(zBuffer); - sprintf(zBuffer, "%s_d", zName); - rc->_name[2] = strdup(zBuffer); - sprintf(zBuffer, "%s_x", zName); - rc->_name[3] = strdup(zBuffer); - rc->precombatspell = SPL_NOSPELL; - return rc; + char zBuffer[80]; + race * rc = calloc(sizeof(race), 1); + if (strchr(zName, ' ')!=NULL) { + log_error(("race '%s' has an invalid name. remove spaces\n", zName)); + assert(strchr(zName, ' ')==NULL); + } + strcpy(zBuffer, zName); + rc->_name[0] = strdup(zBuffer); + sprintf(zBuffer, "%s_p", zName); + rc->_name[1] = strdup(zBuffer); + sprintf(zBuffer, "%s_d", zName); + rc->_name[2] = strdup(zBuffer); + sprintf(zBuffer, "%s_x", zName); + rc->_name[3] = strdup(zBuffer); + rc->precombatspell = SPL_NOSPELL; + return rc; } race * diff --git a/src/common/kernel/save.c b/src/common/kernel/save.c index b7be7f77b..19c2545cb 100644 --- a/src/common/kernel/save.c +++ b/src/common/kernel/save.c @@ -1055,22 +1055,31 @@ readunit(FILE * F) if (strlen(u->name)>=NAMESIZE) u->name[NAMESIZE] = 0; if (u->display && strlen(u->display)>=DISPLAYSIZE) u->display[DISPLAYSIZE] = 0; #endif - number = ri(F); - if (global.data_versionage = (short)ri(F); - if (global.data_versionrace = new_race[(race_t)ri(F)]; - u->irace = new_race[(race_t)ri(F)]; - } else { - rs(F, buf); - if (strcmp(buf, "giant turtle")==0) strcpy(buf, "giantturtle"); - u->race = rc_find(buf); - assert(u->race); - rs(F, buf); - if (strlen(buf)) u->irace = rc_find(buf); - else u->irace = u->race; - } + number = ri(F); + if (global.data_versionage = (short)ri(F); + if (global.data_versionrace = new_race[(race_t)ri(F)]; + u->irace = new_race[(race_t)ri(F)]; + } else { + char * space; + + rs(F, buf); + space = strchr(buf, ' '); + while (space!=NULL) { + strcpy(space, space+1); + space=strchr(space, ' '); + } +/* if (strcmp(buf, "giant turtle")==0) strcpy(buf, "giantturtle"); + if (strcmp(buf, "young dragon")==0) strcpy(buf, "youngdragon"); + if (strcmp(buf, "young dragon")==0) strcpy(buf, "youngdragon"); */ + u->race = rc_find(buf); + assert(u->race); + rs(F, buf); + if (strlen(buf)) u->irace = rc_find(buf); + else u->irace = u->race; + } if (u->faction == NULL) { log_error(("unit %s has faction == NULL\n", unitname(u))); #if 0 diff --git a/src/res/de/strings.xml b/src/res/de/strings.xml index cf04b3a89..9547a350a 100644 --- a/src/res/de/strings.xml +++ b/src/res/de/strings.xml @@ -2521,19 +2521,19 @@ zombie - + Skelettherr skeleton lord - + Skelettherren skeleton lords - + Skelettherren skeleton lords - + Skelettherren skeleton lord @@ -2572,36 +2572,36 @@ centaur - + Schattenritter shadow knight - + Schattenritter shadow knight - + Schattenrittern shadow knights - + Schattenritter shadow knight - + Seeschlange sea serpent - + Seeschlangen sea serpents - + Seeschlangen sea serpents - + Seeschlangen sea serpent @@ -3048,19 +3048,19 @@ shadowdemon - + Steingolem stone golem - + Steingolems stone golems - + Steingolems stone golems - + Steingolem stone golem @@ -3269,19 +3269,19 @@ dragon - + Jungdrache young dragon - + Jungdrachen young dragons - + Jungdrachen young dragons - + Jungdrachen young dragon diff --git a/src/res/races.xml b/src/res/races.xml index f542fbe80..c6b291b91 100644 --- a/src/res/races.xml +++ b/src/res/races.xml @@ -628,7 +628,7 @@ - + @@ -695,7 +695,7 @@ - + @@ -1060,7 +1060,7 @@ - + @@ -1118,11 +1118,11 @@ - + - +