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 @@ - + - +