diff --git a/src/common/gamecode/report.c b/src/common/gamecode/report.c
index 30c80bb8c..2449cda4e 100644
--- a/src/common/gamecode/report.c
+++ b/src/common/gamecode/report.c
@@ -1256,7 +1256,7 @@ report_template(const char * filename, report_context * ctx)
rps_nowrap(F, "");
rnl(F);
- sprintf(buf, "; ECHECK %s-w4 -r%d -v%s", (f->options & Pow(O_SILBERPOOL)) ? "-l " : "",
+ sprintf(buf, "; ECHECK %s-w4 -r%d -v%s", (f->options & want(O_SILBERPOOL)) ? "-l " : "",
f->race->recruitcost, ECHECK_VERSION);
/* -v3.4: ECheck Version 3.4.x */
rps_nowrap(F, buf);
@@ -1748,7 +1748,7 @@ report_plaintext(const char * filename, report_context * ctx)
attrib *a;
message * m;
unsigned char op;
- int ix = Pow(O_STATISTICS);
+ int ix = want(O_STATISTICS);
int wants_stats = (f->options & ix);
FILE * F = fopen(filename, "wt");
seen_region * sr = NULL;
@@ -1892,7 +1892,7 @@ report_plaintext(const char * filename, report_context * ctx)
sprintf(buf, "%s:", LOC(f->locale, "nr_options"));
for (op = 0; op != MAXOPTIONS; op++) {
- if (f->options & (int) pow(2, op)) {
+ if (f->options & want(op)) {
scat(" ");
scat(LOC(f->locale, options[op]));
#ifdef AT_OPTION
@@ -2843,6 +2843,19 @@ eval_unit(struct opstack ** stack, const void * userdata) /* unit -> string */
opush(stack, var);
}
+static void
+eval_unit_dative(struct opstack ** stack, const void * userdata) /* unit -> string */
+{
+ const struct faction * f = (const struct faction *)userdata;
+ const struct unit * u = (const struct unit *)opop(stack).v;
+ const char * c = u?unitname(u):LOC(f->locale, "unknown_unit_dative");
+ size_t len = strlen(c);
+ variant var;
+
+ var.v = strcpy(balloc(len+1), c);
+ opush(stack, var);
+}
+
static void
eval_spell(struct opstack ** stack, const void * userdata) /* unit -> string */
{
@@ -3111,6 +3124,7 @@ report_init(void)
add_function("faction", &eval_faction);
add_function("ship", &eval_ship);
add_function("unit", &eval_unit);
+ add_function("unit.dative", &eval_unit_dative);
add_function("unit.name", &eval_unitname);
add_function("unit.id", &eval_unitid);
add_function("building", &eval_building);
diff --git a/src/res/de/strings.xml b/src/res/de/strings.xml
index ee195a2f2..1e0dc17c7 100644
--- a/src/res/de/strings.xml
+++ b/src/res/de/strings.xml
@@ -656,21 +656,25 @@
- eine unbekanntes Gebäude
+ ein unbekanntes Gebäude
an unknown building
- eine unbekannter zauber
+ ein unbekannter zauber
an unknown spell
- eine unbekanntes Schiff
+ ein unbekanntes Schiff
an unknown ship
eine unbekannte Einheit
an unknown unit
+
+ einer unbekannten Einheit
+ an unknown unit
+
diff --git a/src/res/messages.xml b/src/res/messages.xml
index 6d4a4dbe0..842408bce 100644
--- a/src/res/messages.xml
+++ b/src/res/messages.xml
@@ -625,7 +625,7 @@
- "Eine Botschaft von $unit($sender) aus $region($region): '$string'"
+ "Eine Botschaft von $unit.dative($sender) aus $region($region): '$string'"
"A message by $unit($sender) from $region($region): '$string'"
@@ -635,7 +635,7 @@
- "In $region($region) erhielt $unit($unit) eine Botschaft von $unit($sender): '$string'"
+ "In $region($region) erhielt $unit($unit) eine Botschaft von $unit.dative($sender): '$string'"
"In $region($region), $unit($unit) received a message by $unit($sender): '$string'"
@@ -1498,7 +1498,7 @@
- "Eine Botschaft von $unit($unit) in $region($region): 'Ups! Quack, Quack!'"
+ "Eine Botschaft von $unit.dative($unit) in $region($region): 'Ups! Quack, Quack!'"
"A message from $unit($unit) in $region($region): 'Oops! Croak, Croak!'"
@@ -1561,7 +1561,7 @@
- "$unit($unit) in $region($region): '$order($command)' - Der Zauber von $unit($unit) war viel zu schwach und löst sich gleich wieder auf."
+ "$unit($unit) in $region($region): '$order($command)' - Der Zauber von $unit.dative($unit) war viel zu schwach und löst sich gleich wieder auf."
@@ -1596,7 +1596,7 @@
- "$unit($mage) erhöht die Körperkraft von $unit($target) beträchtlich."
+ "$unit($mage) erhöht die Körperkraft von $unit.dative($target) beträchtlich."
"$unit($mage) increases the strength of $unit($target) dramatically."
@@ -2050,7 +2050,7 @@
- "$unit($unit) wurde in $region($region) von $unit($guard) aufgehalten."
+ "$unit($unit) wurde in $region($region) von $unit.dative($guard) aufgehalten."
"$unit($unit) was kept in $region($region) by $unit($guard)."
"$unit($unit) was kept in $region($region) by $unit($guard)."
@@ -2183,7 +2183,7 @@
- "Die Partei bekommt von $unit($unit) in $region($region) einen Spitznamen."
+ "Die Partei bekommt von $unit.dative($unit) in $region($region) einen Spitznamen."
"Your faction received a nickname from $unit($unit)."
@@ -2200,7 +2200,7 @@
- "$building($building) in $region($region) bekommt von $unit($renamer) einen Spitznamen."
+ "$building($building) in $region($region) bekommt von $unit.dative($renamer) einen Spitznamen."
"$building($building) in $region($region) received a nickname from $unit($renamer)."
@@ -2217,7 +2217,7 @@
- "Die $ship($ship) in $region($region) bekommt von $unit($renamer) einen Spitznamen."
+ "Die $ship($ship) in $region($region) bekommt von $unit.dative($renamer) einen Spitznamen."
"$ship($ship) in $region($region) received a nickname from $unit($renamer)."
@@ -2234,7 +2234,7 @@
- "$unit($renamed) in $region($region) bekommt von $unit($renamer) einen Spitznamen."
+ "$unit($renamed) in $region($region) bekommt von $unit.dative($renamer) einen Spitznamen."
"$unit($renamed) in $region($region) received a nickname from $unit($renamer)."
@@ -2368,7 +2368,7 @@
- "$unit($mage) legt einen Schleier um die Ausrüstung von $unit($target)."
+ "$unit($mage) legt einen Schleier um die Ausrüstung von $unit.dative($target)."
"$unit($mage) shrouds the equipment of $unit($target) in shadows."
@@ -2549,7 +2549,7 @@
- "$unit($unit) wurde von $unit($target) beim versuchten Diebstahl ertappt."
+ "$unit($unit) wurde von $unit.dative($target) beim versuchten Diebstahl ertappt."
"$unit($unit) was caught by $unit($target) in attempted theft."
"$unit($unit) was caught by $unit($target) in attempted theft."
@@ -6291,7 +6291,7 @@
- "Antimagie von $unit($self) blockiert in $region($region) einen Zauber von $unit($mage)."
+ "Antimagie von $unit.dative($self) blockiert in $region($region) einen Zauber von $unit.dative($mage)."
"In $region($region), anti-magic from $unit($self) blocks the spell of $unit($mage)."
@@ -6301,7 +6301,7 @@
- "$unit($self) schwächt in $region($region) einen Zauber von $unit($mage) durch Antimagie ab."
+ "$unit($self) schwächt in $region($region) einen Zauber von $unit.dative($mage) durch Antimagie ab."
"In $region($region), anti-magic from $unit($self) reduces the effect of $unit($mage)'s spell."