diff --git a/src/common/kernel/battle.c b/src/common/kernel/battle.c index 85d41bdc9..13e940623 100644 --- a/src/common/kernel/battle.c +++ b/src/common/kernel/battle.c @@ -2725,12 +2725,13 @@ print_header(battle * b) bfaction * bf; for (bf=b->factions;bf;bf=bf->next) { + message * m; faction * f = bf->faction; const char * lastf = NULL; boolean first = false; side * s; - strcpy(buf, "Der Kampf wurde ausgelöst von "); + buf[0] = 0; for (s=b->sides; s; s=s->next) { fighter *df; for (df=s->fighters;df;df=df->next) { @@ -2743,15 +2744,22 @@ print_header(battle * b) if (seematrix(f, s) == true) lastf = sidename(s, false); else - lastf = "einer unbekannten Partei"; + lastf = LOC(f->locale, "unknown_faction_dative"); break; } } } - if (first) strcat(buf, " und "); + if (first) { + strcat(buf, " "); + strcat(buf, LOC(f->locale, "and")); + strcat(buf, " "); + } if (lastf) strcat(buf, lastf); strcat(buf, "."); - fbattlerecord(b, f, buf); + + m = msg_message("battle::header", "factions", buf); + message_faction(b, f, m); + msg_release(m); } } diff --git a/src/common/kernel/reports.c b/src/common/kernel/reports.c index e7e6ac47d..52a1d24dd 100644 --- a/src/common/kernel/reports.c +++ b/src/common/kernel/reports.c @@ -438,7 +438,7 @@ bufunit(const faction * f, const unit * u, int indent, int mode) } } if (getguard(u)) { - rsize = strlcpy(bufp, ", bewacht die Region", size); + rsize = strlcpy(bufp, LOC(f->locale, "unit_guards"), size); if (rsize>size) rsize = size-1; size -= rsize; bufp += rsize; diff --git a/src/common/spells/combatspells.c b/src/common/spells/combatspells.c index 7ee7ab0eb..d9fd4e2df 100644 --- a/src/common/spells/combatspells.c +++ b/src/common/spells/combatspells.c @@ -138,12 +138,9 @@ sp_kampfzauber(fighter * fi, int level, double power, spell * sp) force = lovar(get_force(power,10)); } - sprintf(buf, "%s zaubert %s", unitname(fi->unit), - spell_name(sp, default_locale)); - enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE); if (enemies==0) { - m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); message_all(b, m); msg_release(m); return 0; @@ -174,18 +171,18 @@ sp_versteinern(fighter * fi, int level, double power, spell * sp) int force, enemies; int stoned = 0; - sprintf(buf, "%s zaubert %s", unitname(fi->unit), - spell_name(sp, default_locale)); - force = lovar(get_force(power, 0)); enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } - scat(":"); + sprintf(buf, "%s zaubert %s:", unitname(fi->unit), + spell_name(sp, default_locale)); + battlerecord(b, buf); while (force && stoned < enemies) { @@ -225,9 +222,6 @@ sp_stun(fighter * fi, int level, double power, spell * sp) if (power <= 0) return 0; - sprintf(buf, "%s zaubert %s", unitname(fi->unit), - spell_name(sp, default_locale)); - switch(sp->id) { case SPL_SHOCKWAVE: force = lovar(get_force(power,1)); @@ -238,11 +232,14 @@ sp_stun(fighter * fi, int level, double power, spell * sp) enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } - scat(":"); + sprintf(buf, "%s zaubert %s:", unitname(fi->unit), + spell_name(sp, default_locale)); + battlerecord(b, buf); stunned = 0; @@ -370,17 +367,17 @@ sp_sleep(fighter * fi, int level, double power, spell * sp) int k = 0; /* Immer aus der ersten Reihe nehmen */ - sprintf(buf, "%s zaubert %s", unitname(mage), - spell_name(sp, default_locale)); force = lovar(power * 25); enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } - scat(":"); + sprintf(buf, "%s zaubert %s:", unitname(mage), + spell_name(sp, default_locale)); battlerecord(b, buf); while (force && enemies) { @@ -514,17 +511,17 @@ sp_mindblast(fighter * fi, int level, double power, spell * sp) int force, enemies; int k = 0; - sprintf(buf, "%s zaubert %s", unitname(mage), - spell_name(sp, default_locale)); force = lovar(power * 25); enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } - scat(":"); + sprintf(buf, "%s zaubert %s:", unitname(mage), + spell_name(sp, default_locale)); battlerecord(b, buf); while (force && enemies) { @@ -578,8 +575,6 @@ sp_dragonodem(fighter * fi, int level, double power, spell * sp) int killed = 0; const char *damage; - sprintf(buf, "%s zaubert %s", unitname(fi->unit), - spell_name(sp, default_locale)); /* 11-26 HP */ damage = spell_damage(4); /* Jungdrache 3->54, Drache 6->216, Wyrm 12->864 Treffer */ @@ -588,28 +583,27 @@ sp_dragonodem(fighter * fi, int level, double power, spell * sp) enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + struct message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; + } else { + struct message * m; + + at.fighter = fi; + at.index = 0; + + while (force && killed < enemies) { + dt = select_enemy(fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE); + assert(dt.fighter); + --force; + killed += terminate(dt, at, AT_COMBATSPELL, damage, false); + } + + m = msg_message("battle::combatspell", "mage spell dead", fi->unit, sp, killed); + message_all(b, m); + msg_release(m); } - scat(":"); - battlerecord(b, buf); - - at.fighter = fi; - at.index = 0; - - while (force && killed < enemies) { - dt = select_enemy(fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE); - assert(dt.fighter); - --force; - killed += terminate(dt, at, AT_COMBATSPELL, damage, false); - } - - sprintf(buf, "%d Personen %s getötet", - killed, killed == 1 ? "wurde" : "wurden"); - - scat("."); - battlerecord(b, buf); return level; } @@ -626,19 +620,19 @@ sp_immolation(fighter * fi, int level, double power, spell * sp) cvector *fgs; void **fig; - sprintf(buf, "%s zaubert %s", unitname(fi->unit), - spell_name(sp, default_locale)); /* 2d4 HP */ damage = spell_damage(5); /* Betrifft alle Gegner */ force = 99999; if (!count_enemies(b, fi, FIGHT_ROW, AVOID_ROW, SELECT_ADVANCE|SELECT_FIND)) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } - scat(":"); + sprintf(buf, "%s zaubert %s:", unitname(fi->unit), + spell_name(sp, default_locale)); battlerecord(b, buf); at.fighter = fi; @@ -680,8 +674,6 @@ sp_drainodem(fighter * fi, int level, double power, spell * sp) int killed = 0; const char *damage; - sprintf(buf, "%s zaubert %s", unitname(fi->unit), - spell_name(sp, default_locale)); /* 11-26 HP */ damage = spell_damage(4); /* Jungdrache 3->54, Drache 6->216, Wyrm 12->864 Treffer */ @@ -690,11 +682,13 @@ sp_drainodem(fighter * fi, int level, double power, spell * sp) enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } - scat(":"); + sprintf(buf, "%s zaubert %s:", unitname(fi->unit), + spell_name(sp, default_locale)); battlerecord(b, buf); at.fighter = fi; @@ -863,25 +857,25 @@ sp_chaosrow(fighter * fi, int level, double power, spell * sp) void **fig; int k = 0; + if (!count_enemies(b, fi, FIGHT_ROW, NUMROWS, SELECT_ADVANCE|SELECT_FIND)) { + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); + return 0; + } + switch (sp->id) { case SPL_CHAOSROW: - sprintf(buf, "%s murmelt eine düster klingende Formel", unitname(mage)); + sprintf(buf, "%s murmelt eine düster klingende Formel. ", unitname(mage)); power *= 40; break; case SPL_SONG_OF_CONFUSION: - sprintf(buf, "%s stimmt einen seltsamen Gesang an", unitname(mage)); + sprintf(buf, "%s stimmt einen seltsamen Gesang an. ", unitname(mage)); power = get_force(power, 5); break; } - if (!count_enemies(b, fi, FIGHT_ROW, NUMROWS, SELECT_ADVANCE|SELECT_FIND)) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); - return 0; - } - scat(". "); - fgs = fighters(b, fi->side, FIGHT_ROW, NUMROWS, FS_ENEMY); v_scramble(fgs->begin, fgs->end); @@ -1140,15 +1134,15 @@ sp_frighten(fighter * fi, int level, double power, spell * sp) df_malus = 2; force = (int)get_force(power, 2); - sprintf(buf, "%s zaubert %s", unitname(mage), - spell_name(sp, default_locale)); enemies = count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW-1, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } - scat(":"); + sprintf(buf, "%s zaubert %s:", unitname(mage), + spell_name(sp, default_locale)); battlerecord(b, buf); while (force && enemies) { @@ -1189,11 +1183,10 @@ sp_tiredsoldiers(fighter * fi, int level, double power, spell * sp) int n = 0; int force = (int)(power * power * 4); - sprintf(buf, "%s zaubert %s", unitname(mage), - spell_name(sp, default_locale)); if (!count_enemies(b, fi, FIGHT_ROW, BEHIND_ROW, SELECT_ADVANCE|SELECT_FIND)) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } @@ -1215,7 +1208,8 @@ sp_tiredsoldiers(fighter * fi, int level, double power, spell * sp) --force; } - scat(": "); + sprintf(buf, "%s zaubert %s:", unitname(mage), + spell_name(sp, default_locale)); if (n == 0) { scat("Der Zauber konnte keinen Krieger ermüden."); } else if (n == 1) { @@ -1236,8 +1230,6 @@ sp_windshield(fighter * fi, int level, double power, spell * sp) int force, at_malus; int enemies; - sprintf(buf, "%s zaubert %s", unitname(mage), - spell_name(sp, default_locale)); switch(sp->id) { case SPL_WINDSHIELD: force = (int)get_force(power,4); @@ -1250,8 +1242,9 @@ sp_windshield(fighter * fi, int level, double power, spell * sp) } enemies = count_enemies(b, fi, BEHIND_ROW, BEHIND_ROW, SELECT_ADVANCE); if (!enemies) { - scat(", aber niemand war in Reichweite."); - battlerecord(b, buf); + message * m = msg_message("battle::out_of_range", "mage spell", fi->unit, sp); + message_all(b, m); + msg_release(m); return 0; } @@ -1271,7 +1264,8 @@ sp_windshield(fighter * fi, int level, double power, spell * sp) } } - scat(": "); + sprintf(buf, "%s zaubert %s:", unitname(mage), + spell_name(sp, default_locale)); scat("Ein Sturm kommt auf und die Schützen können kaum noch zielen."); battlerecord(b, buf); return level; diff --git a/src/res/de/strings.xml b/src/res/de/strings.xml index 4de380443..11103c599 100644 --- a/src/res/de/strings.xml +++ b/src/res/de/strings.xml @@ -6517,6 +6517,14 @@ Unbekannte Partei unknown faction + + einer unbekannten Partei + an unknown faction + + + und + and + Das Schiff des Elfen hat ein rotes Segel @@ -6810,4 +6818,8 @@ stones + + bewacht die Region + guards the region + diff --git a/src/res/messages.xml b/src/res/messages.xml index 59f1dc32a..36e07b53e 100644 --- a/src/res/messages.xml +++ b/src/res/messages.xml @@ -1999,8 +1999,8 @@ "$unit($unit) $if($eq($mode,1),"reitet", "wandert") von $region($start) nach $region($end).$if($strlen($regions)," Dabei wurde $regions durchquert.","")" - "$unit($unit) $if($eq($mode,1),"chevauche", "marche") de $region($start) vers $region($end).$regions" - "$unit($unit) $if($eq($mode,1),"rides", "walks") from $region($start) to $region($end).$regions" + "$unit($unit) $if($eq($mode,1),"chevauche", "marche") de $region($start) vers $region($end) trans $regions" + "$unit($unit) $if($eq($mode,1),"rides", "walks") from $region($start) to $region($end)$if($strlen($regions)," by way of $regions","")." @@ -6297,6 +6297,13 @@ "The wormhole in $region($region) disappears." "The wormhole in $region($region) disappears." + + + + + "Der Kampf wurde ausgelöst von $factions." + "The battle was initiated by $factions." +