diff --git a/src/common/gamecode/creport.c b/src/common/gamecode/creport.c index 66978ed4a..866860236 100644 --- a/src/common/gamecode/creport.c +++ b/src/common/gamecode/creport.c @@ -678,21 +678,26 @@ cr_output_unit(FILE * F, const region * r, fprintf(F, "%d;Anzahl\n", u->number); } + pzTmp = get_racename(u->attribs); + if (pzTmp) { + fprintf(F, "\"%s\";Typ\n", pzTmp); + if (u->faction==f && fval(u->race, RCF_SHAPESHIFTANY)) { + const char * zRace = rc_name(u->race, 1); + fprintf(F, "\"%s\";wahrerTyp\n", + add_translation(zRace, locale_string(f->locale, zRace))); + } + } else { + const char * zRace = rc_name(u->irace, 1); + fprintf(F, "\"%s\";Typ\n", + add_translation(zRace, locale_string(f->locale, zRace))); + if (u->faction==f && u->irace!=u->race) { + zRace = rc_name(u->race, 1); + fprintf(F, "\"%s\";wahrerTyp\n", + add_translation(zRace, locale_string(f->locale, zRace))); + } + } - pzTmp = get_racename(u->attribs); - if (pzTmp==NULL) { - const char * zRace = rc_name(u->irace, 1); - fprintf(F, "\"%s\";Typ\n", - add_translation(zRace, locale_string(f->locale, zRace))); - } - else fprintf(F, "\"%s\";Typ\n", pzTmp); - if ((pzTmp || u->irace != u->race) && u->faction==f) { - const char * zRace = rc_name(u->race, 1); - fprintf(F, "\"%s\";wahrerTyp\n", - add_translation(zRace, locale_string(f->locale, zRace))); - } - - if (u->building) + if (u->building) fprintf(F, "%d;Burg\n", u->building->no); if (u->ship) fprintf(F, "%d;Schiff\n", u->ship->no); diff --git a/src/common/kernel/reports.c b/src/common/kernel/reports.c index 5ea1c7a4c..e77354557 100644 --- a/src/common/kernel/reports.c +++ b/src/common/kernel/reports.c @@ -245,18 +245,20 @@ bufunit(const faction * f, const unit * u, int indent, int mode) } pzTmp = get_racename(u->attribs); - if (pzTmp || u->irace != u->race) { - if (pzTmp) - scat(pzTmp); - else - scat(racename(f->locale, u, u->irace)); - if (u->faction == f) { + if (pzTmp) { + scat(pzTmp); + if (u->faction==f && fval(u->race, RCF_SHAPESHIFTANY)) { scat(" ("); scat(racename(f->locale, u, u->race)); scat(")"); } } else { - scat(racename(f->locale, u, u->race)); + scat(racename(f->locale, u, u->irace)); + if (u->faction==f && u->irace!=u->race) { + scat(" ("); + scat(racename(f->locale, u, u->race)); + scat(")"); + } } /* status */ diff --git a/src/common/util/sql.c b/src/common/util/sql.c index c02c0f6fb..12f518bb5 100644 --- a/src/common/util/sql.c +++ b/src/common/util/sql.c @@ -26,6 +26,7 @@ #include #include +#include static FILE * sqlstream = NULL; static char * sqlfilename = NULL;