forked from github/server
Unicode WIP, does not compile.
- finishing for today, several more files compile.
This commit is contained in:
parent
39ce1bd0dd
commit
588c136071
|
@ -2368,8 +2368,8 @@ origin_cmd(unit * u, struct order * ord)
|
|||
init_tokens(ord);
|
||||
skip_token();
|
||||
|
||||
px = (short)atoi(getstrtoken());
|
||||
py = (short)atoi(getstrtoken());
|
||||
px = (short)getint();
|
||||
py = (short)getint();
|
||||
|
||||
set_ursprung(u->faction, getplaneid(u->region), px, py);
|
||||
return 0;
|
||||
|
@ -2443,7 +2443,7 @@ status_cmd(unit * u, struct order * ord)
|
|||
}
|
||||
break;
|
||||
default:
|
||||
if (strlen(param)) {
|
||||
if (param[0]) {
|
||||
add_message(&u->faction->msgs,
|
||||
msg_feedback(u, ord, "unknown_status", ""));
|
||||
} else {
|
||||
|
@ -2473,8 +2473,7 @@ combatspell_cmd(unit * u, struct order * ord)
|
|||
/* Optional: STUFE n */
|
||||
if (findparam(s, u->faction->locale) == P_LEVEL) {
|
||||
/* Merken, setzen kommt erst später */
|
||||
s = getstrtoken();
|
||||
level = atoi(s);
|
||||
level = getint();
|
||||
level = max(0, level);
|
||||
s = getstrtoken();
|
||||
}
|
||||
|
@ -2872,7 +2871,7 @@ renumber_cmd(unit * u, order * ord)
|
|||
case P_FACTION:
|
||||
s = getstrtoken();
|
||||
if (s && *s) {
|
||||
int id = atoi36(s);
|
||||
int id = atoi36((const char *)s);
|
||||
attrib * a = a_find(f->attribs, &at_number);
|
||||
if (!a) a = a_add(&f->attribs, a_new(&at_number));
|
||||
a->data.i = id;
|
||||
|
@ -2884,7 +2883,7 @@ renumber_cmd(unit * u, order * ord)
|
|||
if (s == NULL || *s == 0) {
|
||||
i = newunitid();
|
||||
} else {
|
||||
i = atoi36(s);
|
||||
i = atoi36((const char *)s);
|
||||
if (i<=0 || i>MAX_UNIT_NR) {
|
||||
cmistake(u, ord, 114, MSG_EVENT);
|
||||
break;
|
||||
|
@ -2923,10 +2922,10 @@ renumber_cmd(unit * u, order * ord)
|
|||
break;
|
||||
}
|
||||
s = getstrtoken();
|
||||
if(s == NULL || *s == 0) {
|
||||
if (s == NULL || *s == 0) {
|
||||
i = newcontainerid();
|
||||
} else {
|
||||
i = atoi36(s);
|
||||
i = atoi36((const char *)s);
|
||||
if (i<=0 || i>MAX_CONTAINER_NR) {
|
||||
cmistake(u,ord,114,MSG_EVENT);
|
||||
break;
|
||||
|
@ -2954,7 +2953,7 @@ renumber_cmd(unit * u, order * ord)
|
|||
if(*s == 0) {
|
||||
i = newcontainerid();
|
||||
} else {
|
||||
i = atoi36(s);
|
||||
i = atoi36((const char *)s);
|
||||
if (i<=0 || i>MAX_CONTAINER_NR) {
|
||||
cmistake(u,ord,114,MSG_EVENT);
|
||||
break;
|
||||
|
@ -3195,7 +3194,7 @@ new_units (void)
|
|||
skip_token();
|
||||
if (getparam(u->faction->locale) == P_TEMP) {
|
||||
const xmlChar * token;
|
||||
char * name = NULL;
|
||||
xmlChar * name = NULL;
|
||||
int alias;
|
||||
order ** newordersp;
|
||||
|
||||
|
@ -3223,8 +3222,8 @@ new_units (void)
|
|||
alias = getid();
|
||||
|
||||
token = getstrtoken();
|
||||
if (token && strlen(token)>0) {
|
||||
name = strdup(token);
|
||||
if (token && token[0]) {
|
||||
name = xstrdup(token);
|
||||
}
|
||||
u2 = create_unit(r, u->faction, 0, u->faction->race, alias, name, u);
|
||||
if (name!=NULL) free(name);
|
||||
|
@ -3511,11 +3510,11 @@ defaultorders (void)
|
|||
while (*ordp!=NULL) {
|
||||
order * ord = *ordp;
|
||||
if (get_keyword(ord)==K_DEFAULT) {
|
||||
char * cmd;
|
||||
const xmlChar * cmd;
|
||||
order * new_order;
|
||||
init_tokens(ord);
|
||||
skip_token(); /* skip the keyword */
|
||||
cmd = strdup(getstrtoken());
|
||||
cmd = getstrtoken();
|
||||
new_order = parse_order(cmd, u->faction->locale);
|
||||
*ordp = ord->next;
|
||||
ord->next = NULL;
|
||||
|
@ -3532,7 +3531,6 @@ defaultorders (void)
|
|||
}
|
||||
if (new_order) addlist(&u->old_orders, new_order);
|
||||
#endif
|
||||
free(cmd);
|
||||
}
|
||||
else ordp = &ord->next;
|
||||
}
|
||||
|
@ -3588,7 +3586,7 @@ use_cmd(unit * u, struct order * ord)
|
|||
skip_token();
|
||||
|
||||
t = getstrtoken();
|
||||
n = atoi(t);
|
||||
n = atoi((const char *)t);
|
||||
if (n==0) {
|
||||
if (findparam(t, u->faction->locale) == P_ANY) {
|
||||
/* BENUTZE ALLES Yanxspirit */
|
||||
|
@ -3627,7 +3625,7 @@ claim_cmd(unit * u, struct order * ord)
|
|||
skip_token();
|
||||
|
||||
t = getstrtoken();
|
||||
n = atoi(t);
|
||||
n = atoi((const char *)t);
|
||||
if (n==0) {
|
||||
n = 1;
|
||||
} else {
|
||||
|
@ -3866,7 +3864,7 @@ warn_password(void)
|
|||
}
|
||||
if (pwok == false) {
|
||||
free(f->passw);
|
||||
f->passw = strdup(itoa36(rng_int()));
|
||||
f->passw = (xmlChar*)strdup(itoa36(rng_int()));
|
||||
ADDMSG(&f->msgs, msg_message("illegal_password", "newpass", f->passw));
|
||||
}
|
||||
f = f->next;
|
||||
|
|
|
@ -346,7 +346,7 @@ destroy_cmd(unit * u, struct order * ord)
|
|||
region * r = u->region;
|
||||
const construction * con = NULL;
|
||||
int size = 0;
|
||||
const char *s;
|
||||
const xmlChar *s;
|
||||
int n = INT_MAX;
|
||||
|
||||
if (u->number < 1)
|
||||
|
@ -362,7 +362,7 @@ destroy_cmd(unit * u, struct order * ord)
|
|||
}
|
||||
|
||||
if (s && *s) {
|
||||
n = atoi(s);
|
||||
n = atoi((const char *)s);
|
||||
if (n <= 0) {
|
||||
cmistake(u, ord, 288, MSG_PRODUCE);
|
||||
return 0;
|
||||
|
@ -508,9 +508,7 @@ build_road(region * r, unit * u, int size, direction_t d)
|
|||
|
||||
/* hoffentlich ist r->road <= r->terrain->max_road, n also >= 0 */
|
||||
if (left <= 0) {
|
||||
sprintf(buf, "In %s gibt es keine Brücken und Straßen "
|
||||
"mehr zu bauen", regionname(r, u->faction));
|
||||
mistake(u, u->thisorder, buf, MSG_PRODUCE);
|
||||
ADDMSG(&u->faction->msgs, msg_feedback(u, u->thisorder, "error_roads_finished", ""));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -818,7 +816,7 @@ build_building(unit * u, const building_type * btype, int want, order * ord)
|
|||
building * b = NULL;
|
||||
/* einmalige Korrektur */
|
||||
static char buffer[8 + IDSIZE + 1 + NAMESIZE + 1];
|
||||
const char * btname;
|
||||
const xmlChar * btname;
|
||||
order * new_order = NULL;
|
||||
const struct locale * lang = u->faction->locale;
|
||||
|
||||
|
@ -834,7 +832,7 @@ build_building(unit * u, const building_type * btype, int want, order * ord)
|
|||
* baut man an der eigenen burg weiter. */
|
||||
|
||||
/* Wenn die angegebene Nummer falsch ist, KEINE Burg bauen! */
|
||||
id = atoi36(getstrtoken());
|
||||
id = getid();
|
||||
if (id!=0){ /* eine Nummer angegeben, keine neue Burg bauen */
|
||||
b = findbuilding(id);
|
||||
if (!b || b->region != u->region){ /* eine Burg mit dieser Nummer gibt es hier nicht */
|
||||
|
@ -1013,9 +1011,8 @@ create_ship(region * r, unit * u, const struct ship_type * newtype, int want, or
|
|||
|
||||
/* check if skill and material for 1 size is available */
|
||||
if (eff_skill(u, cons->skill, r) < cons->minskill) {
|
||||
sprintf(buf, "Um %s zu bauen, braucht man ein Talent von "
|
||||
"mindestens %d.", newtype->name[1], cons->minskill);
|
||||
mistake(u, ord, buf, MSG_PRODUCE);
|
||||
ADDMSG(&u->faction->msgs, msg_feedback(u, u->thisorder, "error_build_skill_low", "value name",
|
||||
cons->minskill, newtype->name[1]));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1073,9 +1070,8 @@ continue_ship(region * r, unit * u, int want)
|
|||
return;
|
||||
}
|
||||
if (eff_skill(u, cons->skill, r) < cons->minskill) {
|
||||
sprintf(buf, "Um %s zu bauen, braucht man ein Talent von "
|
||||
"mindestens %d.", sh->type->name[1], cons->minskill);
|
||||
mistake(u, u->thisorder, buf, MSG_PRODUCE);
|
||||
ADDMSG(&u->faction->msgs, msg_feedback(u, u->thisorder, "error_build_skill_low", "value name",
|
||||
cons->minskill, sh->type->name[1]));
|
||||
return;
|
||||
}
|
||||
msize = maxbuild(u, cons);
|
||||
|
@ -1132,8 +1128,7 @@ leave_cmd(unit * u, struct order * ord)
|
|||
}
|
||||
}
|
||||
if (!slipthru(r, u, u->building)) {
|
||||
sprintf(buf, "%s wird belagert.", buildingname(u->building));
|
||||
mistake(u, ord, buf, MSG_MOVE);
|
||||
ADDMSG(&u->faction->msgs, msg_feedback(u, u->thisorder, "entrance_besieged", "building", u->building));
|
||||
} else {
|
||||
leave(r, u);
|
||||
}
|
||||
|
|
|
@ -133,11 +133,7 @@ bt_find(const char* name)
|
|||
}
|
||||
}
|
||||
}
|
||||
while (btl && strcasecmp(btl->type->_name, name)) btl = btl->next;
|
||||
if (!btl) {
|
||||
btl = buildingtypes;
|
||||
while (btl && strncasecmp(btl->type->_name, name, strlen(name))) btl = btl->next;
|
||||
}
|
||||
while (btl && strcmp(btl->type->_name, name)) btl = btl->next;
|
||||
return btl?btl->type:NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -170,15 +170,15 @@ checkpasswd(const faction * f, const xmlChar * passwd, boolean shortp)
|
|||
#ifdef SHORTPWDS
|
||||
shortpwd * slist = f->shortpwds;
|
||||
if (shortp) while (slist) {
|
||||
if (strcasecmp(slist->pwd, passwd)==0) {
|
||||
if (xstrcmp(slist->pwd, passwd)==0) {
|
||||
slist->used = true;
|
||||
return true;
|
||||
}
|
||||
slist = slist->next;
|
||||
}
|
||||
#endif
|
||||
if (xmlStrcmp(f->passw, passwd)==0) return true;
|
||||
if (xmlStrcmp(f->override, passwd)==0) return true;
|
||||
if (xstrcmp(f->passw, passwd)==0) return true;
|
||||
if (xstrcmp(f->override, passwd)==0) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ join_group(unit * u, const xmlChar * name)
|
|||
}
|
||||
|
||||
if (a) ((group *)(a->data.v))->members--;
|
||||
if (!name || !strlen(name)) {
|
||||
if (!name || !xstrlen(name)) {
|
||||
if (a) {
|
||||
a_remove(&u->attribs, a);
|
||||
freset(u, UFL_GROUP);
|
||||
|
@ -189,7 +189,7 @@ read_groups(FILE * F, faction * f)
|
|||
fscanf(F, "%d ", &gid);
|
||||
if (!gid) break;
|
||||
rsf(F, buf, sizeof(buf));
|
||||
g = new_group(f, buf, gid);
|
||||
g = new_group(f, (const xmlChar *)buf, gid);
|
||||
pa = &g->allies;
|
||||
for (;;) {
|
||||
ally * a;
|
||||
|
|
|
@ -395,7 +395,7 @@ it_alias(const char * zname)
|
|||
{
|
||||
int i;
|
||||
for (i=0;it_aliases[i][0];++i) {
|
||||
if (strcasecmp(it_aliases[i][0], zname)==0) return it_aliases[i][1];
|
||||
if (strcmp(it_aliases[i][0], zname)==0) return it_aliases[i][1];
|
||||
}
|
||||
return zname;
|
||||
}
|
||||
|
|
|
@ -920,11 +920,10 @@ cycle_route(order * ord, unit *u, int gereist)
|
|||
if (get_keyword(ord) != K_ROUTE) return;
|
||||
tail[0] = '\0';
|
||||
|
||||
xmlStrcpy(neworder, locale_string(u->faction->locale, keywords[K_ROUTE]));
|
||||
|
||||
init_tokens(ord);
|
||||
skip_token();
|
||||
|
||||
neworder[0]=0;
|
||||
for (cm=0;;++cm) {
|
||||
const struct locale * lang = u->faction->locale;
|
||||
pause = false;
|
||||
|
@ -966,7 +965,7 @@ cycle_route(order * ord, unit *u, int gereist)
|
|||
}
|
||||
|
||||
strcat((char *)neworder, (const char *)tail);
|
||||
norder = parse_order(neworder, u->faction->locale);
|
||||
norder = create_order(K_ROUTE, u->faction->locale, "%s", neworder);
|
||||
#ifdef LASTORDER
|
||||
set_order(&u->lastorder, norder);
|
||||
#else
|
||||
|
@ -1485,7 +1484,6 @@ travel_route(unit * u, region_list * route_begin, region_list * route_end, order
|
|||
/* the unit has moved at least one region */
|
||||
int walkmode;
|
||||
region_list **rlist = &route_begin;
|
||||
region * next = r;
|
||||
|
||||
setguard(u, GUARD_NONE);
|
||||
cycle_route(ord, u, steps);
|
||||
|
@ -1502,12 +1500,7 @@ travel_route(unit * u, region_list * route_begin, region_list * route_end, order
|
|||
/* Berichte über Durchreiseregionen */
|
||||
|
||||
while (*rlist!=iroute) {
|
||||
if (next!=u->region && next!=current) {
|
||||
MSG(("travelthru_trail", "region", next),
|
||||
p, sizeof(buf) - (p-buf), u->faction->locale, u->faction);
|
||||
}
|
||||
next = rlist->data;
|
||||
rlist = rlist->next;
|
||||
rlist = &(*rlist)->next;
|
||||
}
|
||||
/* remove excess regions */
|
||||
*rlist = NULL;
|
||||
|
@ -1538,10 +1531,8 @@ ship_ready(const region * r, unit * u)
|
|||
return false;
|
||||
}
|
||||
if (eff_skill(u, SK_SAILING, r) < u->ship->type->cptskill) {
|
||||
sprintf(buf, "Der Kapitän muß mindestens Segeln %d haben, "
|
||||
"um %s zu befehligen ", u->ship->type->cptskill,
|
||||
LOC(u->faction->locale, u->ship->type->name[1]));
|
||||
mistake(u, u->thisorder, buf, MSG_MOVE);
|
||||
ADDMSG(&u->faction->msgs, msg_feedback(u, u->thisorder, "error_captain_skill_low",
|
||||
"value ship", u->ship->type->cptskill, u->ship));
|
||||
return false;
|
||||
}
|
||||
assert(u->ship->type->construction->improvement == NULL); /* sonst ist construction::size nicht ship_type::maxsize */
|
||||
|
@ -1855,7 +1846,6 @@ sail(unit * u, order * ord, boolean move_on_land, region_list **routep)
|
|||
if (sh && hafenmeister != NULL) {
|
||||
item * itm;
|
||||
unit * u2;
|
||||
boolean first = true;
|
||||
item * trans = NULL;
|
||||
|
||||
for (u2 = current_point->units; u2; u2 = u2->next) {
|
||||
|
@ -1881,29 +1871,10 @@ sail(unit * u, order * ord, boolean move_on_land, region_list **routep)
|
|||
}
|
||||
}
|
||||
if (trans) {
|
||||
sprintf(buf, "%s erhielt ", hafenmeister->name);
|
||||
for (itm = trans; itm; itm=itm->next) {
|
||||
if (!first) {
|
||||
if (itm->next!=NULL && itm->next->next == NULL) {
|
||||
scat(" und ");
|
||||
} else {
|
||||
scat(", ");
|
||||
}
|
||||
}
|
||||
first = false;
|
||||
icat(trans->number);
|
||||
scat(" ");
|
||||
if (itm->number == 1) {
|
||||
scat(locale_string(default_locale, resourcename(itm->type->rtype, 0)));
|
||||
} else {
|
||||
scat(locale_string(default_locale, resourcename(itm->type->rtype, NMF_PLURAL)));
|
||||
}
|
||||
}
|
||||
scat(" von der ");
|
||||
scat(shipname(u->ship));
|
||||
scat(".");
|
||||
addmessage(0, u->faction, buf, MSG_COMMERCE, ML_INFO);
|
||||
addmessage(0, hafenmeister->faction, buf, MSG_INCOME, ML_INFO);
|
||||
message * msg = msg_message("harbor_trade", "unit items ship", hafenmeister, trans, u->ship);
|
||||
add_message(&u->faction->msgs, msg);
|
||||
add_message(&hafenmeister->faction->msgs, msg);
|
||||
msg_release(msg);
|
||||
while (trans) i_remove(&trans, trans);
|
||||
}
|
||||
}
|
||||
|
@ -2144,10 +2115,10 @@ piracy_cmd(unit *u, struct order * ord)
|
|||
const faction * target;
|
||||
int value;
|
||||
} aff[MAXDIRECTIONS];
|
||||
int saff = 0;
|
||||
int *il = NULL;
|
||||
const char *s;
|
||||
attrib *a;
|
||||
int saff = 0;
|
||||
int *il = NULL;
|
||||
const xmlChar *s;
|
||||
attrib *a;
|
||||
|
||||
if (!sh) {
|
||||
cmistake(u, ord, 144, MSG_MOVE);
|
||||
|
@ -2169,7 +2140,7 @@ piracy_cmd(unit *u, struct order * ord)
|
|||
if (s!=NULL && *s) {
|
||||
il = intlist_init();
|
||||
while (s && *s) {
|
||||
il = intlist_add(il, atoi36(s));
|
||||
il = intlist_add(il, atoi36((const char *)s));
|
||||
s = getstrtoken();
|
||||
}
|
||||
}
|
||||
|
@ -2291,7 +2262,8 @@ hunt(unit *u, order * ord)
|
|||
{
|
||||
region *rc = u->region;
|
||||
int moves, id, speed;
|
||||
char command[256];
|
||||
xmlChar command[256];
|
||||
size_t size = sizeof(command);
|
||||
direction_t dir;
|
||||
|
||||
if (fval(u, UFL_NOTMOVING)) {
|
||||
|
@ -2329,8 +2301,9 @@ hunt(unit *u, order * ord)
|
|||
return 0;
|
||||
}
|
||||
|
||||
sprintf(command, "%s %s", locale_string(u->faction->locale, keywords[K_MOVE]),
|
||||
sprintf((char *)command, "%s %s", locale_string(u->faction->locale, keywords[K_MOVE]),
|
||||
locale_string(u->faction->locale, directions[dir]));
|
||||
size -= xstrlen(command);
|
||||
moves = 1;
|
||||
|
||||
speed = getuint();
|
||||
|
@ -2343,8 +2316,8 @@ hunt(unit *u, order * ord)
|
|||
rc = rconnect(rc, dir);
|
||||
while (moves < speed && (dir = hunted_dir(rc->attribs, id)) != NODIRECTION)
|
||||
{
|
||||
strcat(command, " ");
|
||||
strcat(command, locale_string(u->faction->locale, directions[dir]));
|
||||
size -= xstrlcat(command, " ", size);
|
||||
size -= xstrlcat(command, LOC(u->faction->locale, directions[dir]), size);
|
||||
moves++;
|
||||
rc = rconnect(rc, dir);
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ getplanebyname(const char * name)
|
|||
plane *p;
|
||||
|
||||
for (p=planes; p; p=p->next)
|
||||
if (!strcasecmp(p->name, name))
|
||||
if (!strcmp(p->name, name))
|
||||
return p;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ const ship_type *
|
|||
st_find(const char* name)
|
||||
{
|
||||
const struct ship_typelist * stl = shiptypes;
|
||||
while (stl && strcasecmp(stl->type->name[0], name)) stl = stl->next;
|
||||
while (stl && strcmp(stl->type->name[0], name)) stl = stl->next;
|
||||
return stl?stl->type:NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,11 +46,6 @@ spell_list * spells = NULL;
|
|||
void
|
||||
register_spell(spell * sp)
|
||||
{
|
||||
#ifndef NDEBUG
|
||||
const char * name = mkname("spell", sp->sname);
|
||||
assert(name!=LOC(default_locale, name));
|
||||
assert(strchr(sp->sname, ' ')==NULL);
|
||||
#endif
|
||||
if (sp->id==0) {
|
||||
sp->id = hashstring(sp->sname);
|
||||
}
|
||||
|
@ -102,7 +97,7 @@ init_spellnames(const struct locale * lang, magic_t mtype)
|
|||
for (slist=spells;slist!=NULL;slist=slist->next) {
|
||||
spell * sp = slist->data;
|
||||
if (sp->magietyp==mtype) {
|
||||
const char * n = spell_name(sp, lang);
|
||||
const xmlChar * n = spell_name(sp, lang);
|
||||
variant token;
|
||||
token.v = sp;
|
||||
addtoken(&sn->names, n, token);
|
||||
|
|
|
@ -257,9 +257,11 @@ extern char * strdup(const char *s);
|
|||
|
||||
#define xstrlen(a) strlen((const char*)(a))
|
||||
#define xstrcmp(a, b) strcmp((const char*)(a), (const char *)(b))
|
||||
#define xstrcat(a, b) (xmlChar *)strcat((char*)(a), (const char *)(b))
|
||||
#define xstrncmp(a, b, s) strncmp((const char*)(a), (const char *)(b), s)
|
||||
#define xstrdup(a) (xmlChar *)strdup((const char*)(a))
|
||||
#define xstrlcpy(a, b, s) strlcpy((char*)(a), (const char*)(b), s)
|
||||
#define xstrlcat(a, b, s) strlcat((char*)(a), (const char *)(b), s)
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -7702,6 +7702,38 @@
|
|||
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - $unit($target) does not understand our kind of magic."</text>
|
||||
</message>
|
||||
|
||||
<message name="error_captain_skill_low" section="errors">
|
||||
<type>
|
||||
<arg name="region" type="region"/>
|
||||
<arg name="unit" type="unit"/>
|
||||
<arg name="command" type="order"/>
|
||||
<arg name="value" type="int"/>
|
||||
<arg name="ship" type="ship"/>
|
||||
</type>
|
||||
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Der Kapitän muß ein Segeltalent von mindestens $int($value) haben, um $ship($ship) zu befehligen."</text>
|
||||
</message>
|
||||
|
||||
<message name="error_roads_finished" section="errors">
|
||||
<type>
|
||||
<arg name="region" type="region"/>
|
||||
<arg name="unit" type="unit"/>
|
||||
<arg name="command" type="order"/>
|
||||
</type>
|
||||
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - In dieser Region gibt es keine Brücken uns Straßen mehr zu bauen."</text>
|
||||
</message>
|
||||
|
||||
<message name="error_build_skill_low" section="errors">
|
||||
<type>
|
||||
<arg name="region" type="region"/>
|
||||
<arg name="unit" type="unit"/>
|
||||
<arg name="command" type="order"/>
|
||||
<arg name="value" type="int"/>
|
||||
<arg name="name" type="string"/>
|
||||
</type>
|
||||
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Um $localize($name) zu bauen, braucht man ein Talent von mindestens $int($value)."</text>
|
||||
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - To build $localize($name) requires a skill of at least $int($value)."</text>
|
||||
</message>
|
||||
|
||||
<message name="slave_active" section="battle">
|
||||
<type>
|
||||
<arg name="region" type="region"/>
|
||||
|
@ -7712,4 +7744,14 @@
|
|||
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - This unit will not fight."</text>
|
||||
</message>
|
||||
|
||||
<message name="harbor_trade" section="events">
|
||||
<type>
|
||||
<arg name="unit" type="unit"/>
|
||||
<arg name="items" type="items"/>
|
||||
<arg name="ship" type="ship"/>
|
||||
</type>
|
||||
<text locale="de">"$unit($unit) erhielt $resources($items) von der $ship($ship)."</text>
|
||||
<text locale="en">"$unit($unit) received $resources($items) from the $ship($ship)."</text>
|
||||
</message>
|
||||
|
||||
</messages>
|
||||
|
|
Loading…
Reference in New Issue