diff --git a/src/common/gamecode/economy.c b/src/common/gamecode/economy.c
index cc502ed89..835936e0c 100644
--- a/src/common/gamecode/economy.c
+++ b/src/common/gamecode/economy.c
@@ -1025,32 +1025,32 @@ gebaeude_stuerzt_ein(region * r, building * b)
void
maintain_buildings(region * r, boolean crash)
{
- building **bp = &r->buildings;
- while (*bp) {
- building * b = *bp;
+ building **bp = &r->buildings;
+ while (*bp) {
+ building * b = *bp;
boolean maintained = maintain(b, !crash);
/* the second time, send a message */
if (crash) {
if (!maintained && (rng_int() % 100 < EINSTURZCHANCE)) {
- gebaeude_stuerzt_ein(r, b);
- continue;
+ gebaeude_stuerzt_ein(r, b);
+ continue;
} else if (!fval(b, BLD_WORKING)) {
unit * u = buildingowner(r, b);
const char * msgtype = maintained?"maintenance_nowork":"maintenance_none";
- struct message * msg = msg_message(msgtype, "building", b);
+ struct message * msg = msg_message(msgtype, "building", b);
if (u) {
- add_message(&u->faction->msgs, msg);
- r_addmessage(r, u->faction, msg);
+ add_message(&u->faction->msgs, msg);
+ r_addmessage(r, u->faction, msg);
} else {
add_message(&r->msgs, msg);
}
msg_release(msg);
}
}
- bp=&b->next;
- }
+ bp=&b->next;
+ }
}
@@ -1665,6 +1665,7 @@ make_cmd(unit * u, struct order * ord)
}
build_road(r, u, m, d);
} else {
+ /* Die Richtung wurde nicht erkannt */
cmistake(u, ord, 71, MSG_PRODUCE);
}
}
diff --git a/src/common/gamecode/laws.c b/src/common/gamecode/laws.c
index acc9eb38c..794139f5d 100644
--- a/src/common/gamecode/laws.c
+++ b/src/common/gamecode/laws.c
@@ -1843,8 +1843,7 @@ mail_cmd(unit * u, struct order * ord)
cmistake(u, ord, 30, MSG_MESSAGE);
break;
} else {
- sprintf(buf, "von %s: '%s'", unitname(u), s);
- addmessage(r, 0, buf, MSG_MESSAGE, ML_IMPORTANT);
+ ADDMSG(&r->msgs, msg_message("mail_result", "unit message", u, s));
break;
}
break;
@@ -2665,29 +2664,25 @@ renumber_factions(void)
if (!a) continue;
want = a->data.i;
if (fval(f, FFL_NEWID)) {
- sprintf(buf, "NUMMER PARTEI %s: Die Partei kann nicht mehr als einmal ihre Nummer wecheln", itoa36(want));
- addmessage(0, f, buf, MSG_MESSAGE, ML_IMPORTANT);
+ ADDMSG(&f->msgs, msg_message("renumber_twice", "id", want));
+ continue;
}
old = findfaction(want);
if (old) {
a_remove(&f->attribs, a);
- sprintf(buf, "Die Nummer %s wird von einer anderen Partei benutzt.", itoa36(want));
- addmessage(0, f, buf, MSG_MESSAGE, ML_IMPORTANT);
+ ADDMSG(&f->msgs, msg_message("renumber_inuse", "id", want));
continue;
}
if (!faction_id_is_unused(want)) {
a_remove(&f->attribs, a);
- sprintf(buf, "Die Nummer %s wurde schon einmal von einer anderen Partei benutzt.", itoa36(want));
- addmessage(0, f, buf, MSG_MESSAGE, ML_IMPORTANT);
+ ADDMSG(&f->msgs, msg_message("renumber_inuse", "id", want));
continue;
}
for (rn=&renum; *rn; rn=&(*rn)->next) {
if ((*rn)->want>=want) break;
}
if (*rn && (*rn)->want==want) {
- a_remove(&f->attribs, a);
- sprintf(buf, "Die Nummer %s wurde bereits einer anderen Partei zugeteilt.", itoa36(want));
- addmessage(0, f, buf, MSG_MESSAGE, ML_IMPORTANT);
+ ADDMSG(&f->msgs, msg_message("renumber_inuse", "id", want));
} else {
struct renum * r = calloc(sizeof(struct renum), 1);
r->next = *rn;
diff --git a/src/common/kernel/build.c b/src/common/kernel/build.c
index 3a97fa510..37c1eecc8 100644
--- a/src/common/kernel/build.c
+++ b/src/common/kernel/build.c
@@ -316,6 +316,7 @@ destroy_road(unit *u, int nmax, struct order * ord)
}
if (d==NODIRECTION) {
+ /* Die Richtung wurde nicht erkannt */
cmistake(u, ord, 71, MSG_PRODUCE);
} else {
short road = rroad(r, d);
diff --git a/src/common/kernel/message.c b/src/common/kernel/message.c
index c9ef96e9d..7bd8aec71 100644
--- a/src/common/kernel/message.c
+++ b/src/common/kernel/message.c
@@ -187,46 +187,46 @@ caddmessage(region * r, faction * f, const char *s, msg_t mtype, int level)
log_warning(("message for locale \"%s\": %s\n", locale_name(f->locale), s));
}
#endif
- unused(level);
- switch (mtype) {
- case MSG_INCOME:
- assert(f);
- m = add_message(&f->msgs, msg_message("msg_economy", "string", s));
- break;
- case MSG_BATTLE:
- assert(0 || !"battle-meldungen nicht über addmessage machen");
- break;
- case MSG_MOVE:
- assert(f);
- m = add_message(&f->msgs, msg_message("msg_movement", "string", s));
- break;
- case MSG_COMMERCE:
- assert(f);
- m = add_message(&f->msgs, msg_message("msg_economy", "string", s));
- break;
- case MSG_PRODUCE:
- assert(f);
- m = add_message(&f->msgs, msg_message("msg_production", "string", s));
- break;
- case MSG_MAGIC:
- case MSG_COMMENT:
- case MSG_MESSAGE:
- case MSG_ORCVERMEHRUNG:
- case MSG_EVENT:
- /* Botschaften an REGION oder einzelne PARTEI */
- m = msg_message("msg_event", "string", s);
- if (!r) {
- assert(f);
- m = add_message(&f->msgs, m);
- } else {
- if (f==NULL) add_message(&r->msgs, m);
- else r_addmessage(r, f, m);
- }
- break;
- default:
- assert(!"Ungültige Msg-Klasse!");
- }
- if (m) msg_release(m);
+ unused(level);
+ switch (mtype) {
+ case MSG_INCOME:
+ assert(f);
+ m = add_message(&f->msgs, msg_message("msg_economy", "string", s));
+ break;
+ case MSG_BATTLE:
+ assert(0 || !"battle-meldungen nicht über addmessage machen");
+ break;
+ case MSG_MOVE:
+ assert(f);
+ m = add_message(&f->msgs, msg_message("msg_movement", "string", s));
+ break;
+ case MSG_COMMERCE:
+ assert(f);
+ m = add_message(&f->msgs, msg_message("msg_economy", "string", s));
+ break;
+ case MSG_PRODUCE:
+ assert(f);
+ m = add_message(&f->msgs, msg_message("msg_production", "string", s));
+ break;
+ case MSG_MAGIC:
+ case MSG_COMMENT:
+ case MSG_MESSAGE:
+ case MSG_ORCVERMEHRUNG:
+ case MSG_EVENT:
+ /* Botschaften an REGION oder einzelne PARTEI */
+ m = msg_message("msg_event", "string", s);
+ if (!r) {
+ assert(f);
+ m = add_message(&f->msgs, m);
+ } else {
+ if (f==NULL) add_message(&r->msgs, m);
+ else r_addmessage(r, f, m);
+ }
+ break;
+ default:
+ assert(!"Ungültige Msg-Klasse!");
+ }
+ if (m) msg_release(m);
}
void
diff --git a/src/common/spells/spells.c b/src/common/spells/spells.c
index 069e25d42..d98ce11bf 100644
--- a/src/common/spells/spells.c
+++ b/src/common/spells/spells.c
@@ -1451,9 +1451,10 @@ sp_sparkle(castorder *co)
ADDMSG(&mage->faction->msgs, msg_message(
"sparkle_effect", "mage target", mage, u));
- if (u->faction!=mage->faction)
+ if (u->faction!=mage->faction) {
ADDMSG(&u->faction->msgs, msg_message(
"sparkle_effect", "mage target", mage, u));
+ }
return cast_level;
}
@@ -2172,6 +2173,7 @@ sp_fog_of_confusion(castorder *co)
for (rl2 = rl; rl2; rl2 = rl2->next) {
curse * c;
variant effect;
+ message * m = NULL;
if (!fval(rl2->data->terrain, SEA_REGION)
&& !r_isforest(rl2->data)) continue;
@@ -2192,16 +2194,15 @@ sp_fog_of_confusion(castorder *co)
for (u = rl2->data->units; u; u = u->next ) {
if (!fval(u->faction, FL_DH) ) {
fset(u->faction, FL_DH);
- sprintf(buf, "%s beschwört einen Schleier der Verwirrung.",
- cansee(u->faction, r, mage, 0) ? unitname(mage) : "Jemand");
- addmessage(rl2->data, u->faction, buf, MSG_EVENT, ML_INFO);
+ if (!m) m = msg_message("confusion_result", "mage", mage);
+ add_message(&u->faction->msgs, m);
}
}
if (!fval(mage->faction, FL_DH)) {
- sprintf(buf, "%s beschwört einen Schleier der Verwirrung.",
- unitname(mage));
- addmessage(0, mage->faction, buf, MSG_MAGIC, ML_INFO);
+ if (!m) m = msg_message("confusion_result", "mage", mage);
+ add_message(&mage->faction->msgs, m);
}
+ if (m) msg_release(m);
}
free_regionlist(rl);
return cast_level;
@@ -5478,6 +5479,8 @@ sp_dream_of_confusion(castorder *co)
region * r2 = rl2->data;
variant effect;
curse * c;
+ message * m = NULL;
+
/* Magieresistenz jeder Region prüfen */
if (target_resists_magic(mage, r2, TYP_REGION, 0)) {
report_failure(mage, co->order);
@@ -5494,16 +5497,15 @@ sp_dream_of_confusion(castorder *co)
for (u = r2->units; u; u = u->next ) {
if (!fval(u->faction, FL_DH) ) {
fset(u->faction, FL_DH);
- sprintf(buf, "%s beschwört einen Schleier der Verwirrung.",
- cansee(u->faction, r, mage, 0) ? unitname(mage) : "Jemand");
- addmessage(r2, u->faction, buf, MSG_EVENT, ML_INFO);
+ if (!m) m = msg_message("confusion_result", "mage", mage);
+ add_message(&u->faction->msgs, m);
}
}
if (!fval(mage->faction, FL_DH)) {
- sprintf(buf, "%s beschwört einen Schleier der Verwirrung.",
- unitname(mage));
- addmessage(0, mage->faction, buf, MSG_MAGIC, ML_INFO);
+ if (!m) m = msg_message("confusion_result", "mage", mage);
+ add_message(&u->faction->msgs, m);
}
+ if (m) msg_release(m);
}
free_regionlist(rl);
return cast_level;
@@ -5698,10 +5700,7 @@ sp_enterastral(castorder *co)
ro = r;
break;
default:
- sprintf(buf, "%s in %s: 'ZAUBER %s': Dieser Zauber funktioniert "
- "nur in der materiellen Welt.", unitname(mage),
- regionname(mage->region, mage->faction), spell_name(sp, mage->faction->locale));
- addmessage(r, mage->faction, buf, MSG_MAGIC, ML_MISTAKE);
+ cmistake(mage, co->order, 190, MSG_MAGIC);
return 0;
}
@@ -5945,8 +5944,7 @@ sp_leaveastral(castorder *co)
free_regionlist(rl);
break;
default:
- sprintf(buf, "Der Zauber funktioniert nur in der astralen Welt.");
- addmessage(r, mage->faction, buf, MSG_MAGIC, ML_MISTAKE);
+ ADDMSG(&mage->faction->msgs, msg_feedback(mage, co->order, "spell_astral_only", ""));
return 0;
}
@@ -6244,7 +6242,7 @@ sp_viewreality(castorder *co)
if (getplaneid(r) != 1) {
/* sprintf(buf, "Dieser Zauber kann nur im Astralraum gezaubert werden."); */
- cmistake(mage, co->order, 217, MSG_MAGIC);
+ ADDMSG(&mage->faction->msgs, msg_feedback(mage, co->order, "spell_astral_only", ""));
return 0;
}
@@ -6511,11 +6509,8 @@ sp_movecastle(castorder *co)
dir = finddirection(pa->param[1]->data.s, mage->faction->locale);
if (dir == NODIRECTION) {
- sprintf(buf, "%s in %s: 'ZAUBER %s': Ungültige Richtung %s.",
- unitname(mage), regionname(mage->region, mage->faction),
- spell_name(sp, mage->faction->locale),
- pa->param[1]->data.s);
- addmessage(0, mage->faction, buf, MSG_MAGIC, ML_MISTAKE);
+ /* Die Richtung wurde nicht erkannt */
+ cmistake(mage, co->order, 71, MSG_PRODUCE);
return 0;
}
@@ -6597,6 +6592,7 @@ sp_flying_ship(castorder *co)
int cast_level = co->level;
double power = co->force;
spellparameter *pa = co->par;
+ message * m = NULL;
/* wenn kein Ziel gefunden, Zauber abbrechen */
if (pa->param[0]->flag == TARGET_NOTFOUND) return 0;
@@ -6629,13 +6625,11 @@ sp_flying_ship(castorder *co)
/* das sehen natürlich auch die Leute an Land */
if (!fval(u->faction, FL_DH) ) {
fset(u->faction, FL_DH);
- sprintf(buf, "%s beschwört einen Luftgeist, der die %s in "
- "die Wolken hebt.",
- cansee(u->faction, r, mage, 0) ? unitname(mage) : "Jemand",
- shipname(sh));
- addmessage(r, u->faction, buf, MSG_EVENT, ML_INFO);
+ if (!m) m = msg_message("flying_ship_result", "mage ship", mage, sh);
+ add_message(&u->faction->msgs, m);
}
}
+ if (m) msg_release(m);
return cast_level;
}
diff --git a/src/common/triggers/unitmessage.c b/src/common/triggers/unitmessage.c
index 1722fa55b..a32f6507c 100644
--- a/src/common/triggers/unitmessage.c
+++ b/src/common/triggers/unitmessage.c
@@ -59,16 +59,16 @@ unitmessage_free(trigger * t)
static int
unitmessage_handle(trigger * t, void * data)
{
- /* call an event handler on unitmessage.
- * data.v -> ( variant event, int timer )
- */
- unitmessage_data * td = (unitmessage_data*)t->data.v;
- if (td->target!=NULL) {
- addmessage(td->target->region, td->target->faction, td->string, td->type, td->level);
- } else
- log_error(("could not perform unitmessage::handle()\n"));
- unused(data);
- return 0;
+ /* call an event handler on unitmessage.
+ * data.v -> ( variant event, int timer )
+ */
+ unitmessage_data * td = (unitmessage_data*)t->data.v;
+ if (td->target!=NULL) {
+ addmessage(td->target->region, td->target->faction, td->string, td->type, td->level);
+ } else
+ log_error(("could not perform unitmessage::handle()\n"));
+ unused(data);
+ return 0;
}
static void
diff --git a/src/eressea/lua/gamecode.cpp b/src/eressea/lua/gamecode.cpp
index fe304c8e3..a6f64aeab 100644
--- a/src/eressea/lua/gamecode.cpp
+++ b/src/eressea/lua/gamecode.cpp
@@ -162,8 +162,7 @@ message_faction(unit& sender, faction& target, const char * str)
static void
message_region(unit& sender, const char * str)
{
- sprintf(buf, "von %s: '%s'", unitname(&sender), str);
- addmessage(sender.region, 0, buf, MSG_MESSAGE, ML_IMPORTANT);
+ ADDMSG(&sender.region->msgs, msg_message("mail_result", "unit message", &sender, str));
}
static void
diff --git a/src/res/messages.xml b/src/res/messages.xml
index 230962da3..c7fb761c4 100644
--- a/src/res/messages.xml
+++ b/src/res/messages.xml
@@ -24,6 +24,21 @@
"The power of $unit($mage) flows into the region and the trees which survived the spell appear stronger now."
"The power of $unit($mage) flows into the region and the trees which survived the spell appear stronger now."
+
+
+
+
+
+ "$unit($mage) beschwört einen Luftgeist, der die $ship($ship) in die Wolken hebt."
+ "$unit($mage) summons a wind spirit that lifts the $ship($ship) into the clouds."
+
+
+
+
+
+ "$unit($mage) beschwört einen Schleier der Verwirrung."
+ "$unit($mage) summons a fog of confusion."
+
@@ -3817,7 +3832,7 @@
"$unit($unit) in $region($region): '$order($command)' - Die materielle Welt ist hier nicht sichtbar."
"$unit($unit) in $region($region): '$order($command)' - The material world is not visible from here."
-
+
@@ -6814,4 +6829,29 @@
"$unit($unit) tried but failed to send $unit($target) to another world."
+
+
+
+
+ "NUMMER PARTEI $int36($id): Die Partei kann nicht mehr als einmal ihre Nummer wecheln."
+ "NUMBER FACTION $int36($id): Your faction can only change its number once."
+
+
+
+
+
+
+ "NUMMER PARTEI $int36($id): Diese Nummer wird von einer anderen Partei benutzt."
+ "NUMBER FACTION $int36($id): This number is being used by another faction."
+
+
+
+
+
+
+
+ "Eine Botschaft von $unit($unit): '$message'"
+ "A message from $unit($unit): '$message'"
+
+