forked from github/server
Haufenweise Reportänderungen für englische Kampfreporte
This commit is contained in:
parent
d81ce147ca
commit
075172140a
|
@ -86,17 +86,15 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
extern int quiet;
|
||||
extern int *storms;
|
||||
extern int weeks_per_month;
|
||||
extern int months_per_year;
|
||||
|
||||
boolean nocr = false;
|
||||
boolean nonr = false;
|
||||
boolean nomer = false;
|
||||
boolean noreports = false;
|
||||
|
||||
/*
|
||||
* -------------------------------------------------------------
|
||||
*/
|
||||
extern int *storms;
|
||||
|
||||
char **seasonnames;
|
||||
char **weeknames;
|
||||
char **weeknames2;
|
||||
|
@ -104,8 +102,6 @@ char **monthnames;
|
|||
int *month_season;
|
||||
char *agename;
|
||||
int seasons;
|
||||
extern int weeks_per_month;
|
||||
extern int months_per_year;
|
||||
|
||||
int
|
||||
read_datenames(const char *filename)
|
||||
|
@ -278,7 +274,6 @@ gamedate_short(const struct locale * lang)
|
|||
return buf;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
static void
|
||||
rpsnr(FILE * F, const char * s, int offset)
|
||||
{
|
||||
|
@ -579,7 +574,6 @@ report_spell(FILE * F, spellid_t id, const struct locale * lang)
|
|||
|
||||
rnl(F);
|
||||
}
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
void
|
||||
nmr_warnings(void)
|
||||
|
@ -601,8 +595,6 @@ nmr_warnings(void)
|
|||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
void
|
||||
sparagraph(strlist ** SP, const char *s, int indent, char mark)
|
||||
{
|
||||
|
@ -762,8 +754,6 @@ print_curses(FILE *F, const faction *viewer, const void * obj, typ_t typ, int in
|
|||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
char *
|
||||
replace_global_coords(const char *s, const faction * f)
|
||||
{
|
||||
|
@ -932,8 +922,24 @@ rp_messages(FILE * F, message_list * msgs, faction * viewer, int indent, boolean
|
|||
}
|
||||
}
|
||||
}
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
static void
|
||||
rp_battles(FILE * F, faction * f)
|
||||
{
|
||||
if (f->battles!=NULL) {
|
||||
struct bmsg * bm;
|
||||
rnl(F);
|
||||
centre(F, LOC(f->locale, "section_battle"), false);
|
||||
rnl(F);
|
||||
for (bm=f->battles;bm;bm=bm->next) {
|
||||
RENDER(f, buf, 80, ("battle::header", "region", bm->r));
|
||||
rnl(F);
|
||||
centre(F, buf, true);
|
||||
rnl(F);
|
||||
rp_messages(F, bm->msgs, f, 0, true, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char *
|
||||
f_regionid(const region * r, const faction * f)
|
||||
|
@ -2112,26 +2118,7 @@ report(FILE *F, faction * f, const faction_list * addresses,
|
|||
* (enno) was? wer hat das geschrieben?
|
||||
* Momentan ist das wegen der der Mailverschickmimik schwierig. */
|
||||
rp_messages(F, f->msgs, f, 0, true, true);
|
||||
if(f->battles) {
|
||||
struct bmsg * bm;
|
||||
rnl(F);
|
||||
centre(F, LOC(f->locale, "section_battle"), false);
|
||||
rnl(F);
|
||||
for (bm=f->battles;bm;bm=bm->next) {
|
||||
#ifdef HAVE_SNPRINTF
|
||||
snprintf(buf, 80, "In %s findet ein Kampf statt:",
|
||||
translate_regions(regionid(bm->r), f));
|
||||
#else
|
||||
sprintf(buf, "In %s findet ein Kampf statt:",
|
||||
translate_regions(regionid(bm->r), f));
|
||||
buf[80]=0;
|
||||
#endif
|
||||
rnl(F);
|
||||
centre(F, buf, true);
|
||||
rnl(F);
|
||||
rp_messages(F, bm->msgs, f, 0, true, false);
|
||||
}
|
||||
}
|
||||
rp_battles(F, f);
|
||||
a = a_find(f->attribs, &at_reportspell);
|
||||
if (a) {
|
||||
rnl(F);
|
||||
|
@ -2364,7 +2351,6 @@ report(FILE *F, faction * f, const faction_list * addresses,
|
|||
}
|
||||
}
|
||||
}
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
FILE *
|
||||
openbatch(void)
|
||||
|
@ -2418,7 +2404,7 @@ closebatch(FILE * BAT)
|
|||
fclose(BAT);
|
||||
}
|
||||
}
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
|
||||
void
|
||||
base36conversion(void)
|
||||
|
|
|
@ -213,7 +213,7 @@ sidename(side * s, boolean truename)
|
|||
return sidename_buf;
|
||||
}
|
||||
|
||||
static char *
|
||||
static const char *
|
||||
sideabkz(side *s, boolean truename)
|
||||
{
|
||||
static char sideabkz_buf[4];
|
||||
|
@ -659,8 +659,6 @@ select_weapon(const troop t, boolean attacking, boolean ismissile)
|
|||
return preferred_weapon(t, attacking);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
static int
|
||||
weapon_skill(const weapon_type * wtype, const unit * u, boolean attacking)
|
||||
/* the 'pure' skill when using this weapon to attack or defend.
|
||||
|
@ -859,8 +857,6 @@ select_magicarmor(troop t)
|
|||
return ma;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
/* Sind side ds und Magier des meffect verbündet, dann return 1*/
|
||||
boolean
|
||||
meffect_protection(battle * b, meffect * s, side * ds)
|
||||
|
@ -882,7 +878,6 @@ meffect_blocked(battle *b, meffect *s, side *as)
|
|||
return false;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
/* rmfighter wird schon im PRAECOMBAT gebraucht, da gibt es noch keine
|
||||
* troops */
|
||||
void
|
||||
|
@ -942,8 +937,6 @@ remove_troop(troop dt)
|
|||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
/** reduces the target's exp by an equivalent of n points learning
|
||||
* 30 points = 1 week
|
||||
*/
|
||||
|
@ -2498,20 +2491,24 @@ aftermath(battle * b)
|
|||
chaoscounts(r, dead_peasants / 2);
|
||||
rsetpeasants(r, rpeasants(r) - dead_peasants);
|
||||
|
||||
for (bf=b->factions;bf;bf=bf->next) {
|
||||
faction * f = bf->faction;
|
||||
fbattlerecord(b, f, " ");
|
||||
cv_foreach(s, b->sides) {
|
||||
if (seematrix(f, s)) {
|
||||
sprintf(buf, "Heer %2d(%s): %d Tote, %d Geflohene, %d Überlebende",
|
||||
s->index, sideabkz(s,false), s->dead, s->flee, s->alive);
|
||||
} else {
|
||||
sprintf(buf, "Heer %2d(Unb): %d Tote, %d Geflohene, %d Überlebende",
|
||||
s->index, s->dead, s->flee, s->alive);
|
||||
}
|
||||
fbattlerecord(b, f, buf);
|
||||
} cv_next(s);
|
||||
}
|
||||
cv_foreach(s, b->sides) {
|
||||
message * seen = msg_message("battle::army_report",
|
||||
"index abbrev dead flown survived",
|
||||
s->index, gc_add(strdup(sideabkz(s, false))), s->dead, s->flee, s->alive);
|
||||
message * unseen = msg_message("battle::army_report",
|
||||
"index abbrev dead flown survived",
|
||||
s->index, "-?-", s->dead, s->flee, s->alive);
|
||||
|
||||
for (bf=b->factions;bf;bf=bf->next) {
|
||||
faction * f = bf->faction;
|
||||
message * m = seematrix(f, s)?seen:unseen;
|
||||
|
||||
message_faction(b, f, m);
|
||||
}
|
||||
|
||||
msg_release(seen);
|
||||
msg_release(unseen);
|
||||
} cv_next(s);
|
||||
/* Wir benutzen drifted, um uns zu merken, ob ein Schiff
|
||||
* schonmal Schaden genommen hat. (moved und drifted
|
||||
* sollten in flags überführt werden */
|
||||
|
@ -2661,38 +2658,30 @@ print_stats(battle * b)
|
|||
|
||||
for (bf=b->factions;bf;bf=bf->next) {
|
||||
faction * f = bf->faction;
|
||||
const char * loc_army = LOC(f->locale, "battle_army");
|
||||
fbattlerecord(b, f, " ");
|
||||
sprintf(buf, "Heer %d: %s", side->index,
|
||||
sprintf(buf, "%s %d: %s", loc_army, side->index,
|
||||
seematrix(f, side)
|
||||
? sidename(side,false) : LOC(f->locale, "unknown_faction"));
|
||||
fbattlerecord(b, f, buf);
|
||||
strcpy(buf, LOC(f->locale, "battle_opponents"));
|
||||
komma = false;
|
||||
cv_foreach(s2, b->sides) {
|
||||
if (enemy(s2, side))
|
||||
{
|
||||
if (seematrix(f, s2) == true) {
|
||||
sprintf(buf, "%s%s Heer %d(%s)", buf, komma++ ? "," : "",
|
||||
s2->index, sideabkz(s2,false));
|
||||
} else {
|
||||
sprintf(buf, "%s%s Heer %d(Unb)", buf, komma++ ? "," : "",
|
||||
s2->index);
|
||||
}
|
||||
if (enemy(s2, side)) {
|
||||
const char * abbrev = seematrix(f, s2)?sideabkz(s2, false):"-?-";
|
||||
sprintf(buf, "%s%s %s %d(%s)", buf, komma++ ? "," : "", loc_army,
|
||||
s2->index, abbrev);
|
||||
}
|
||||
}
|
||||
cv_next(s2);
|
||||
fbattlerecord(b, f, buf);
|
||||
strcpy(buf, "Attacke gegen:");
|
||||
strcpy(buf, LOC(f->locale, "battle_attack"));
|
||||
komma = false;
|
||||
cv_foreach(s2, b->sides) {
|
||||
if (side->enemy[s2->index] & E_ATTACKING) {
|
||||
if (seematrix(f, s2) == true) {
|
||||
sprintf(buf, "%s%s Heer %d(%s)", buf, komma++ ? "," : "",
|
||||
s2->index, sideabkz(s2,false));
|
||||
} else {
|
||||
sprintf(buf, "%s%s Heer %d(Unb)", buf, komma++ ? "," : "",
|
||||
s2->index);
|
||||
}
|
||||
const char * abbrev = seematrix(f, s2)?sideabkz(s2, false):"-?-";
|
||||
sprintf(buf, "%s%s %s %d(%s)", buf, komma++ ? "," : "", loc_army,
|
||||
s2->index, abbrev);
|
||||
}
|
||||
}
|
||||
cv_next(s2);
|
||||
|
@ -3236,36 +3225,32 @@ battle_report(battle * b)
|
|||
|
||||
for (bf=b->factions;bf;bf=bf->next) {
|
||||
faction * fac = bf->faction;
|
||||
message * m;
|
||||
|
||||
fbattlerecord(b, fac, " ");
|
||||
if (cont == true)
|
||||
sprintf(buf2, "Einheiten vor der %d. Runde:",
|
||||
b->turn);
|
||||
else
|
||||
sprintf(buf2, "Einheiten nach dem Kampf:");
|
||||
fbattlerecord(b, fac, buf2);
|
||||
|
||||
if (cont) m = msg_message("battle::lineup", "turn", b->turn);
|
||||
else m = msg_message("battle::after", "");
|
||||
message_faction(b, fac, m);
|
||||
msg_release(m);
|
||||
|
||||
buf2[0] = 0;
|
||||
komma = false;
|
||||
cv_foreach(s, b->sides) {
|
||||
if (s->alive) {
|
||||
int r, k = 0, * alive = get_alive(b, s, fac, seematrix(fac, s));
|
||||
if (!seematrix(fac, s)) {
|
||||
sprintf(buf, "%sHeer %2d(Unb): ",
|
||||
komma==true?", ":"", s->index);
|
||||
} else {
|
||||
sprintf(buf, "%sHeer %2d(%s): ",
|
||||
komma==true?", ":"", s->index,sideabkz(s,false));
|
||||
}
|
||||
{
|
||||
int l = FIGHT_ROW;
|
||||
for (r=FIGHT_ROW;r!=NUMROWS;++r) {
|
||||
if (alive[r]) {
|
||||
if (l!=FIGHT_ROW) scat("+");
|
||||
while(k--) scat("0+");
|
||||
icat(alive[r]);
|
||||
k = 0;
|
||||
l=r+1;
|
||||
} else ++k;
|
||||
}
|
||||
int l = FIGHT_ROW;
|
||||
const char * abbrev = seematrix(fac, s)?sideabkz(s, false):"-?-";
|
||||
const char * loc_army = LOC(fac->locale, "battle_army");
|
||||
sprintf(buf, "%s%s %2d(%s): ", komma==true?", ":"", loc_army, abbrev);
|
||||
for (r=FIGHT_ROW;r!=NUMROWS;++r) {
|
||||
if (alive[r]) {
|
||||
if (l!=FIGHT_ROW) scat("+");
|
||||
while(k--) scat("0+");
|
||||
icat(alive[r]);
|
||||
k = 0;
|
||||
l=r+1;
|
||||
} else ++k;
|
||||
}
|
||||
|
||||
strcat(buf2, buf);
|
||||
|
@ -3798,8 +3783,6 @@ do_battle(void)
|
|||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------- */
|
||||
|
||||
/* Funktionen, die außerhalb von battle.c verwendet werden. */
|
||||
static int
|
||||
nb_armor(unit *u, int index)
|
||||
|
|
|
@ -165,278 +165,277 @@ report_item(const unit * owner, const item * i, const faction * viewer, const ch
|
|||
int
|
||||
bufunit(const faction * f, const unit * u, int indent, int mode)
|
||||
{
|
||||
int i, dh;
|
||||
skill_t sk;
|
||||
int getarnt = fval(u, UFL_PARTEITARNUNG);
|
||||
faction *fv;
|
||||
attrib *a_otherfaction;
|
||||
const char *pzTmp;
|
||||
spell *sp;
|
||||
building * b;
|
||||
boolean itemcloak = is_cursed(u->attribs, C_ITEMCLOAK, 0);
|
||||
boolean isbattle = (boolean)(mode == see_battle);
|
||||
int telepath_see = fspecial(f, FS_TELEPATHY);
|
||||
attrib *a_fshidden = NULL;
|
||||
item * itm;
|
||||
item * show;
|
||||
int i, dh;
|
||||
skill_t sk;
|
||||
int getarnt = fval(u, UFL_PARTEITARNUNG);
|
||||
const char *pzTmp;
|
||||
spell *sp;
|
||||
building * b;
|
||||
boolean itemcloak = is_cursed(u->attribs, C_ITEMCLOAK, 0);
|
||||
boolean isbattle = (boolean)(mode == see_battle);
|
||||
int telepath_see = fspecial(f, FS_TELEPATHY);
|
||||
attrib *a_fshidden = NULL;
|
||||
item * itm;
|
||||
item * show;
|
||||
faction *fv = visible_faction(f, u);
|
||||
|
||||
if(fspecial(u->faction, FS_HIDDEN))
|
||||
a_fshidden = a_find(u->attribs, &at_fshidden);
|
||||
if (fspecial(u->faction, FS_HIDDEN))
|
||||
a_fshidden = a_find(u->attribs, &at_fshidden);
|
||||
|
||||
strcpy(buf, unitname(u));
|
||||
strcpy(buf, unitname(u));
|
||||
|
||||
fv = visible_faction(f, u);
|
||||
a_otherfaction = a_find(u->attribs, &at_otherfaction);
|
||||
|
||||
if (u->faction == f) {
|
||||
attrib *a = a_find(u->attribs, &at_group);
|
||||
if (a) {
|
||||
group * g = (group*)a->data.v;
|
||||
scat(", ");
|
||||
scat(groupid(g, f));
|
||||
}
|
||||
if (getarnt) {
|
||||
scat(", "); scat(LOC(f->locale, "anonymous"));
|
||||
} else if (a_otherfaction) {
|
||||
faction * otherfaction = get_otherfaction(a_otherfaction);
|
||||
if (otherfaction) {
|
||||
scat(", ");
|
||||
scat(factionname(otherfaction));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (getarnt) {
|
||||
scat(", "); scat(LOC(f->locale, "anonymous"));
|
||||
} else {
|
||||
scat(", ");
|
||||
if(a_otherfaction
|
||||
&& alliedunit(u, f, HELP_FSTEALTH)) {
|
||||
scat(factionname(get_otherfaction(a_otherfaction)));
|
||||
scat(" (");
|
||||
scat(factionname(u->faction));
|
||||
scat(")");
|
||||
} else {
|
||||
scat(factionname(fv));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isbattle) {
|
||||
attrib *a_otherfaction = a_find(u->attribs, &at_otherfaction);
|
||||
if (u->faction == f) {
|
||||
attrib *a = a_find(u->attribs, &at_group);
|
||||
if (a) {
|
||||
group * g = (group*)a->data.v;
|
||||
scat(", ");
|
||||
scat(groupid(g, f));
|
||||
}
|
||||
if (getarnt) {
|
||||
scat(", "); scat(LOC(f->locale, "anonymous"));
|
||||
} else if (a_otherfaction) {
|
||||
faction * otherfaction = get_otherfaction(a_otherfaction);
|
||||
if (otherfaction) {
|
||||
scat(", ");
|
||||
scat(factionname(otherfaction));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (getarnt) {
|
||||
scat(", "); scat(LOC(f->locale, "anonymous"));
|
||||
} else {
|
||||
scat(", ");
|
||||
if(a_otherfaction
|
||||
&& alliedunit(u, f, HELP_FSTEALTH)) {
|
||||
scat(factionname(get_otherfaction(a_otherfaction)));
|
||||
scat(" (");
|
||||
scat(factionname(u->faction));
|
||||
scat(")");
|
||||
} else {
|
||||
scat(factionname(fv));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef USE_UGROUPS
|
||||
if(u->faction == f) {
|
||||
attrib *a = a_find(u->attribs, &at_ugroup);
|
||||
if(a) {
|
||||
ugroup *ug = findugroupid(u->faction, a->data.i);
|
||||
if(is_ugroupleader(u, ug)) {
|
||||
scat("*");
|
||||
}
|
||||
scat(itoa36(ug->id));
|
||||
}
|
||||
scat(", ");
|
||||
}
|
||||
if (u->faction == f) {
|
||||
attrib *a = a_find(u->attribs, &at_ugroup);
|
||||
if(a) {
|
||||
ugroup *ug = findugroupid(u->faction, a->data.i);
|
||||
if(is_ugroupleader(u, ug)) {
|
||||
scat("*");
|
||||
}
|
||||
scat(itoa36(ug->id));
|
||||
}
|
||||
scat(", ");
|
||||
}
|
||||
#endif
|
||||
|
||||
scat(", ");
|
||||
scat(", ");
|
||||
|
||||
if(u->faction != f && a_fshidden
|
||||
&& a_fshidden->data.ca[0] == 1 && effskill(u, SK_STEALTH) >= 6) {
|
||||
scat("? ");
|
||||
} else {
|
||||
icat(u->number);
|
||||
scat(" ");
|
||||
}
|
||||
if (u->faction != f && a_fshidden && a_fshidden->data.ca[0] == 1 && effskill(u, SK_STEALTH) >= 6) {
|
||||
scat("? ");
|
||||
} else {
|
||||
icat(u->number);
|
||||
scat(" ");
|
||||
}
|
||||
|
||||
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) {
|
||||
scat(" (");
|
||||
scat(racename(f->locale, u, u->race));
|
||||
scat(")");
|
||||
}
|
||||
} else {
|
||||
scat(racename(f->locale, u, u->race));
|
||||
}
|
||||
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) {
|
||||
scat(" (");
|
||||
scat(racename(f->locale, u, u->race));
|
||||
scat(")");
|
||||
}
|
||||
} else {
|
||||
scat(racename(f->locale, u, u->race));
|
||||
}
|
||||
|
||||
/* status */
|
||||
/* status */
|
||||
|
||||
if (u->number && (u->faction == f || telepath_see || isbattle)) {
|
||||
const char * c = locale_string(f->locale, hp_status(u));
|
||||
scat(", ");
|
||||
scat(report_kampfstatus(u, f->locale));
|
||||
if (c || fval(u, UFL_HUNGER)) {
|
||||
scat(" (");
|
||||
if(c) scat(c);
|
||||
if(fval(u, UFL_HUNGER)) {
|
||||
if (c) scat(", hungert");
|
||||
else scat("hungert");
|
||||
}
|
||||
scat(")");
|
||||
}
|
||||
}
|
||||
if (getguard(u)) scat(", bewacht die Region");
|
||||
if (u->number && (u->faction == f || telepath_see || isbattle)) {
|
||||
const char * c = locale_string(f->locale, hp_status(u));
|
||||
scat(", ");
|
||||
scat(report_kampfstatus(u, f->locale));
|
||||
if (c || fval(u, UFL_HUNGER)) {
|
||||
scat(" (");
|
||||
if(c) scat(c);
|
||||
if(fval(u, UFL_HUNGER)) {
|
||||
if (c) scat(", hungert");
|
||||
else scat("hungert");
|
||||
}
|
||||
scat(")");
|
||||
}
|
||||
}
|
||||
if (getguard(u)) scat(", bewacht die Region");
|
||||
|
||||
if (u->faction==f || telepath_see) {
|
||||
attrib * a = a_find(u->attribs, &at_follow);
|
||||
if (a) {
|
||||
unit * uf = (unit*)a->data.v;
|
||||
if (uf) {
|
||||
scat(", folgt ");
|
||||
scat(itoa36(uf->no));
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((b = usiege(u))!=NULL) {
|
||||
scat(", belagert ");
|
||||
scat(buildingname(b));
|
||||
}
|
||||
if (u->faction==f || telepath_see) {
|
||||
attrib * a = a_find(u->attribs, &at_follow);
|
||||
if (a) {
|
||||
unit * uf = (unit*)a->data.v;
|
||||
if (uf) {
|
||||
scat(", folgt ");
|
||||
scat(itoa36(uf->no));
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((b = usiege(u))!=NULL) {
|
||||
scat(", belagert ");
|
||||
scat(buildingname(b));
|
||||
}
|
||||
|
||||
dh = 0;
|
||||
if (u->faction == f || telepath_see) {
|
||||
for (sk = 0; sk != MAXSKILLS; sk++) {
|
||||
spskill(f->locale, u, sk, &dh, 1);
|
||||
}
|
||||
}
|
||||
dh = 0;
|
||||
if (u->faction == f || telepath_see) {
|
||||
for (sk = 0; sk != MAXSKILLS; sk++) {
|
||||
spskill(f->locale, u, sk, &dh, 1);
|
||||
}
|
||||
}
|
||||
|
||||
dh = 0;
|
||||
if (f == u->faction || telepath_see || omniscient(f)) {
|
||||
show = u->items;
|
||||
} else if (!itemcloak && mode >= see_unit && !(a_fshidden
|
||||
&& a_fshidden->data.ca[1] == 1 && effskill(u, SK_STEALTH) >= 3)) {
|
||||
show = NULL;
|
||||
for (itm=u->items;itm;itm=itm->next) {
|
||||
item * ishow;
|
||||
const char * ic;
|
||||
int in;
|
||||
report_item(u, itm, f, NULL, &ic, &in, false);
|
||||
if (ic && *ic && in>0) {
|
||||
for (ishow = show; ishow; ishow=ishow->next) {
|
||||
const char * sc;
|
||||
int sn;
|
||||
if (ishow->type==itm->type) sc=ic;
|
||||
else report_item(u, ishow, f, NULL, &sc, &sn, false);
|
||||
if (sc==ic || strcmp(sc, ic)==0) {
|
||||
ishow->number+=itm->number;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ishow==NULL) {
|
||||
ishow = i_add(&show, i_new(itm->type, itm->number));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
show = NULL;
|
||||
}
|
||||
for (itm=show; itm; itm=itm->next) {
|
||||
const char * ic;
|
||||
int in;
|
||||
report_item(u, itm, f, &ic, NULL, &in, false);
|
||||
if (in==0 || ic==NULL) continue;
|
||||
scat(", ");
|
||||
dh = 0;
|
||||
if (f == u->faction || telepath_see || omniscient(f)) {
|
||||
show = u->items;
|
||||
} else if (!itemcloak && mode >= see_unit && !(a_fshidden
|
||||
&& a_fshidden->data.ca[1] == 1 && effskill(u, SK_STEALTH) >= 3))
|
||||
{
|
||||
show = NULL;
|
||||
for (itm=u->items;itm;itm=itm->next) {
|
||||
item * ishow;
|
||||
const char * ic;
|
||||
int in;
|
||||
report_item(u, itm, f, NULL, &ic, &in, false);
|
||||
if (ic && *ic && in>0) {
|
||||
for (ishow = show; ishow; ishow=ishow->next) {
|
||||
const char * sc;
|
||||
int sn;
|
||||
if (ishow->type==itm->type) sc=ic;
|
||||
else report_item(u, ishow, f, NULL, &sc, &sn, false);
|
||||
if (sc==ic || strcmp(sc, ic)==0) {
|
||||
ishow->number+=itm->number;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ishow==NULL) {
|
||||
ishow = i_add(&show, i_new(itm->type, itm->number));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
show = NULL;
|
||||
}
|
||||
for (itm=show; itm; itm=itm->next) {
|
||||
const char * ic;
|
||||
int in;
|
||||
report_item(u, itm, f, &ic, NULL, &in, false);
|
||||
if (in==0 || ic==NULL) continue;
|
||||
scat(", ");
|
||||
|
||||
if (!dh) {
|
||||
sprintf(buf+strlen(buf), "%s: ", LOC(f->locale, "nr_inventory"));
|
||||
dh = 1;
|
||||
}
|
||||
if (in == 1) {
|
||||
scat(ic);
|
||||
} else {
|
||||
icat(in);
|
||||
scat(" ");
|
||||
scat(ic);
|
||||
}
|
||||
}
|
||||
if (show!=u->items) while (show) i_free(i_remove(&show, show));
|
||||
if (!dh) {
|
||||
sprintf(buf+strlen(buf), "%s: ", LOC(f->locale, "nr_inventory"));
|
||||
dh = 1;
|
||||
}
|
||||
if (in == 1) {
|
||||
scat(ic);
|
||||
} else {
|
||||
icat(in);
|
||||
scat(" ");
|
||||
scat(ic);
|
||||
}
|
||||
}
|
||||
if (show!=u->items) while (show) i_free(i_remove(&show, show));
|
||||
|
||||
if (u->faction == f || telepath_see) {
|
||||
dh = 0;
|
||||
if (u->faction == f || telepath_see) {
|
||||
dh = 0;
|
||||
|
||||
if (is_mage(u) == true) {
|
||||
scat(". Aura ");
|
||||
icat(get_spellpoints(u));
|
||||
scat("/");
|
||||
icat(max_spellpoints(u->region,u));
|
||||
{
|
||||
spell_ptr *spt;
|
||||
int t = effskill(u, SK_MAGIC);
|
||||
if (is_mage(u) == true) {
|
||||
scat(". Aura ");
|
||||
icat(get_spellpoints(u));
|
||||
scat("/");
|
||||
icat(max_spellpoints(u->region,u));
|
||||
{
|
||||
spell_ptr *spt;
|
||||
int t = effskill(u, SK_MAGIC);
|
||||
|
||||
for (spt = get_mage(u)->spellptr;spt; spt = spt->next){
|
||||
sp = find_spellbyid(spt->spellid);
|
||||
if (sp->level > t) continue;
|
||||
if (!dh) {
|
||||
sprintf(buf+strlen(buf),", %s: ", LOC(f->locale, "nr_spells"));
|
||||
dh = 1;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(spell_name(sp, f->locale));
|
||||
}
|
||||
}
|
||||
dh = 0;
|
||||
for (i = 0; i < MAXCOMBATSPELLS; i++){
|
||||
sp = get_combatspell(u,i);
|
||||
if (sp) {
|
||||
dh = 1;
|
||||
}
|
||||
}
|
||||
if(dh){
|
||||
dh = 0;
|
||||
sprintf(buf+strlen(buf),", %s: ", LOC(f->locale, "nr_combatspells"));
|
||||
for (i = 0; i < MAXCOMBATSPELLS; i++){
|
||||
if (!dh){
|
||||
dh = 1;
|
||||
}else{
|
||||
scat(", ");
|
||||
}
|
||||
sp = get_combatspell(u,i);
|
||||
if (sp) {
|
||||
int sl;
|
||||
scat(spell_name(sp, u->faction->locale));
|
||||
if((sl = get_combatspelllevel(u,i)) > 0) {
|
||||
scat(" (");
|
||||
icat(sl);
|
||||
scat(")");
|
||||
}
|
||||
}else{
|
||||
scat(LOC(f->locale, "nr_nospells"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isbattle && u->lastorder[0]) {
|
||||
scat(", \"");
|
||||
scat(u->lastorder);
|
||||
scat("\"");
|
||||
}
|
||||
}
|
||||
i = 0;
|
||||
for (spt = get_mage(u)->spellptr;spt; spt = spt->next){
|
||||
sp = find_spellbyid(spt->spellid);
|
||||
if (sp->level > t) continue;
|
||||
if (!dh) {
|
||||
sprintf(buf+strlen(buf),", %s: ", LOC(f->locale, "nr_spells"));
|
||||
dh = 1;
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
scat(spell_name(sp, f->locale));
|
||||
}
|
||||
}
|
||||
dh = 0;
|
||||
for (i = 0; i < MAXCOMBATSPELLS; i++){
|
||||
sp = get_combatspell(u,i);
|
||||
if (sp) {
|
||||
dh = 1;
|
||||
}
|
||||
}
|
||||
if(dh){
|
||||
dh = 0;
|
||||
sprintf(buf+strlen(buf),", %s: ", LOC(f->locale, "nr_combatspells"));
|
||||
for (i = 0; i < MAXCOMBATSPELLS; i++){
|
||||
if (!dh){
|
||||
dh = 1;
|
||||
}else{
|
||||
scat(", ");
|
||||
}
|
||||
sp = get_combatspell(u,i);
|
||||
if (sp) {
|
||||
int sl;
|
||||
scat(spell_name(sp, u->faction->locale));
|
||||
if((sl = get_combatspelllevel(u,i)) > 0) {
|
||||
scat(" (");
|
||||
icat(sl);
|
||||
scat(")");
|
||||
}
|
||||
}else{
|
||||
scat(LOC(f->locale, "nr_nospells"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isbattle && u->lastorder[0]) {
|
||||
scat(", \"");
|
||||
scat(u->lastorder);
|
||||
scat("\"");
|
||||
}
|
||||
}
|
||||
i = 0;
|
||||
|
||||
if (u->display[0]) {
|
||||
scat("; ");
|
||||
scat(u->display);
|
||||
if (u->display[0]) {
|
||||
scat("; ");
|
||||
scat(u->display);
|
||||
|
||||
i = u->display[strlen(u->display) - 1];
|
||||
}
|
||||
if (i != '!' && i != '?' && i != '.')
|
||||
scat(".");
|
||||
i = u->display[strlen(u->display) - 1];
|
||||
}
|
||||
if (i != '!' && i != '?' && i != '.')
|
||||
scat(".");
|
||||
|
||||
pzTmp = uprivate(u);
|
||||
if (u->faction == f && pzTmp) {
|
||||
scat(" (Bem: ");
|
||||
scat(pzTmp);
|
||||
scat(")");
|
||||
}
|
||||
pzTmp = uprivate(u);
|
||||
if (u->faction == f && pzTmp) {
|
||||
scat(" (Bem: ");
|
||||
scat(pzTmp);
|
||||
scat(")");
|
||||
}
|
||||
|
||||
dh=0;
|
||||
if (!getarnt && f) {
|
||||
if (alliedfaction(getplane(u->region), f, fv, HELP_ALL)) {
|
||||
dh = 1;
|
||||
}
|
||||
}
|
||||
return dh;
|
||||
dh=0;
|
||||
if (!getarnt && f) {
|
||||
if (alliedfaction(getplane(u->region), f, fv, HELP_ALL)) {
|
||||
dh = 1;
|
||||
}
|
||||
}
|
||||
return dh;
|
||||
}
|
||||
|
||||
/* TODO: telepath_see wird nicht berücksichtigt: Parteien mit
|
||||
|
@ -669,20 +668,20 @@ void
|
|||
spunit(struct strlist ** SP, const struct faction * f, const unit * u, int indent,
|
||||
int mode)
|
||||
{
|
||||
int dh;
|
||||
int dh;
|
||||
#ifdef USE_UGROUPS
|
||||
ugroup *ug = findugroup(u);
|
||||
ugroup *ug = findugroup(u);
|
||||
|
||||
if(ug) {
|
||||
if(is_ugroupleader(u, ug)) {
|
||||
dh = bufunit_ugroupleader(f, u, indent, mode);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
} else
|
||||
if(ug) {
|
||||
if(is_ugroupleader(u, ug)) {
|
||||
dh = bufunit_ugroupleader(f, u, indent, mode);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
dh = bufunit(f, u, indent, mode);
|
||||
lparagraph(SP, buf, indent, (char) ((u->faction == f) ? '*' : (dh ? '+' : '-')));
|
||||
dh = bufunit(f, u, indent, mode);
|
||||
lparagraph(SP, buf, indent, (char) ((u->faction == f) ? '*' : (dh ? '+' : '-')));
|
||||
}
|
||||
|
||||
/* in spy steht der Unterschied zwischen Wahrnehmung des Opfers und
|
||||
|
|
11604
src/res/de/strings.xml
11604
src/res/de/strings.xml
File diff suppressed because it is too large
Load Diff
|
@ -698,7 +698,7 @@
|
|||
<arg name="runto" type="region"/>
|
||||
</type>
|
||||
<text locale="de">"$unit($unit) verlor $int($fallen) Personen$if($alive,", $int($alive) überlebten","")$if($run," und $int($run) flohen$if($isnull($runto),""," nach $region($runto)")","")."</text>
|
||||
<text locale="en">"$unit($unit) lost $int($fallen) people: $if($alive,", $int($alive) survived","")$if($run," and $int($run) fled$if($isnull($runto),""," to $region($runto)")","")."</text>
|
||||
<text locale="en">"$unit($unit) lost $int($fallen) people$if($alive,", $int($alive) survived","")$if($run," and $int($run) fled$if($isnull($runto),""," to $region($runto)")","")."</text>
|
||||
</message>
|
||||
<message name="killsandhits" section="battle">
|
||||
<type>
|
||||
|
@ -5742,5 +5742,36 @@
|
|||
<text locale="de">"$unit($mage) zaubert $spell($spell), aber niemand war in Reichweite."</text>
|
||||
<text locale="en">"$unit($mage) casts $spell($spell), but nobody was in range."</text>
|
||||
</message>
|
||||
<message name="battle::after" section="battle">
|
||||
<type>
|
||||
</type>
|
||||
<text locale="de">"Einheiten nach dem Kampf:"</text>
|
||||
<text locale="en">"Units after the battle:"</text>
|
||||
</message>
|
||||
<message name="battle::lineup" section="battle">
|
||||
<type>
|
||||
<arg name="turn" type="int"/>
|
||||
</type>
|
||||
<text locale="de">"Einheiten vor der $int($turn). Runde:"</text>
|
||||
<text locale="en">"Units before turn $int($turn):"</text>
|
||||
</message>
|
||||
<message name="battle::header" section="battle">
|
||||
<type>
|
||||
<arg name="region" type="region"/>
|
||||
</type>
|
||||
<text locale="de">"In $region($region) findet ein Kampf statt."</text>
|
||||
<text locale="en">"There is a battle in $region($region)."</text>
|
||||
</message>
|
||||
<message name="battle::army_report" section="battle">
|
||||
<type>
|
||||
<arg name="index" type="int"/>
|
||||
<arg name="abbrev" type="string"/>
|
||||
<arg name="dead" type="int"/>
|
||||
<arg name="flown" type="int"/>
|
||||
<arg name="survived" type="int"/>
|
||||
</type>
|
||||
<text locale="de">"Heer $int($index)($abbrev): $int($dead) Tote, $int($flown) Geflohene, $int($survived) Überlebende."</text>
|
||||
<text locale="en">"Army $int($index)($abbrev): $int($dead) dead, $int($flown) flown, $int($survived) survivors."</text>
|
||||
</message>
|
||||
</messages>
|
||||
|
||||
|
|
Loading…
Reference in New Issue