forked from github/server
i18n of spell-syntax (removing fixed syntax text and replacing with a localizable function)
This commit is contained in:
parent
fa375ed8b4
commit
7de422f976
11 changed files with 259 additions and 184 deletions
|
@ -221,6 +221,7 @@ report_spell(FILE * F, spell *sp, const struct locale * lang)
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
char * bufp = buf;
|
char * bufp = buf;
|
||||||
size_t size = sizeof(buf) - 1;
|
size_t size = sizeof(buf) - 1;
|
||||||
|
const char * params = sp->parameter;
|
||||||
|
|
||||||
rnl(F);
|
rnl(F);
|
||||||
centre(F, spell_name(sp, lang), true);
|
centre(F, spell_name(sp, lang), true);
|
||||||
|
@ -324,85 +325,137 @@ report_spell(FILE * F, spell *sp, const struct locale * lang)
|
||||||
rparagraph(F, buf, 0, 0, 0);
|
rparagraph(F, buf, 0, 0, 0);
|
||||||
|
|
||||||
rparagraph(F, LOC(lang, "nr_spell_syntax"), 0, 0, 0);
|
rparagraph(F, LOC(lang, "nr_spell_syntax"), 0, 0, 0);
|
||||||
if (!sp->syntax) {
|
|
||||||
static int targets[] = { P_REGION, P_UNIT, P_SHIP, P_BUILDING, MAXPARAMS };
|
|
||||||
int * targetp = NULL;
|
|
||||||
bufp = buf;
|
|
||||||
size = sizeof(buf) - 1;
|
|
||||||
|
|
||||||
if ((sp->sptyp & ANYTARGET) == ANYTARGET) targetp = targets;
|
|
||||||
|
|
||||||
do {
|
bufp = buf;
|
||||||
if (sp->sptyp & ISCOMBATSPELL) {
|
size = sizeof(buf) - 1;
|
||||||
bytes = (int)strlcpy(bufp, LOC(lang, keywords[K_COMBAT]), size);
|
|
||||||
} else {
|
if (sp->sptyp & ISCOMBATSPELL) {
|
||||||
bytes = (int)strlcpy(bufp, LOC(lang, keywords[K_CAST]), size);
|
bytes = (int)strlcpy(bufp, LOC(lang, keywords[K_COMBAT]), size);
|
||||||
}
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
|
|
||||||
/* Reihenfolge beachten: Erst REGION, dann STUFE! */
|
|
||||||
if (sp->sptyp & FARCASTING) {
|
|
||||||
bytes = snprintf(bufp, size, " [%s x y]", LOC(lang, parameters[P_REGION]));
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
}
|
|
||||||
if (sp->sptyp & SPELLLEVEL) {
|
|
||||||
bytes = snprintf(bufp, size, " [%s n]", LOC(lang, parameters[P_LEVEL]));
|
|
||||||
}
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
|
|
||||||
bytes = (int)strlcpy(bufp, " \"", size);
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
|
|
||||||
bytes = (int)strlcpy(bufp, spell_name(sp, lang), size);
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
|
|
||||||
bytes = (int)strlcpy(bufp, "\" ", size);
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
|
|
||||||
if (sp->sptyp & ONETARGET || targetp) {
|
|
||||||
if (targetp) {
|
|
||||||
bytes = (int)snprintf(bufp, size, "%s ", parameters[*targetp]);
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
}
|
|
||||||
if (sp->sptyp & UNITSPELL) {
|
|
||||||
bytes = (int)strlcpy(bufp, "<Einheit-Nr>", size);
|
|
||||||
} else if (sp->sptyp & SHIPSPELL) {
|
|
||||||
bytes = (int)strlcpy(bufp, "<Schiff-Nr>", size);
|
|
||||||
} else if (sp->sptyp & BUILDINGSPELL) {
|
|
||||||
bytes = (int)strlcpy(bufp, "<Gebaeude-Nr>", size);
|
|
||||||
} else {
|
|
||||||
bytes = 0;
|
|
||||||
}
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
} else {
|
|
||||||
assert(!targetp);
|
|
||||||
if (sp->sptyp & UNITSPELL) {
|
|
||||||
bytes = (int)strlcpy(bufp, "<Einheit-Nr> [<Einheit-Nr> ...]", size);
|
|
||||||
} else if (sp->sptyp & SHIPSPELL) {
|
|
||||||
bytes = (int)strlcpy(bufp, "<Schiff-Nr> [<Schiff-Nr> ...]", size);
|
|
||||||
} else if (sp->sptyp & BUILDINGSPELL) {
|
|
||||||
bytes = (int)strlcpy(bufp, "<Gebaeude-Nr> [<Gebaeude-Nr> ...]", size);
|
|
||||||
} else {
|
|
||||||
bytes = 0;
|
|
||||||
}
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
}
|
|
||||||
if (targetp) {
|
|
||||||
++targetp;
|
|
||||||
if (*targetp!=MAXPARAMS) {
|
|
||||||
bytes = (int)strlcpy(bufp, "\n", size);
|
|
||||||
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
|
||||||
} else {
|
|
||||||
targetp = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} while (targetp);
|
|
||||||
|
|
||||||
*bufp = 0;
|
|
||||||
rparagraph(F, buf, 2, 0, 0);
|
|
||||||
} else {
|
} else {
|
||||||
rparagraph(F, sp->syntax, 2, 0, 0);
|
bytes = (int)strlcpy(bufp, LOC(lang, keywords[K_CAST]), size);
|
||||||
}
|
}
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
|
||||||
|
/* Reihenfolge beachten: Erst REGION, dann STUFE! */
|
||||||
|
if (sp->sptyp & FARCASTING) {
|
||||||
|
bytes = snprintf(bufp, size, " [%s x y]", LOC(lang, parameters[P_REGION]));
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
}
|
||||||
|
if (sp->sptyp & SPELLLEVEL) {
|
||||||
|
bytes = snprintf(bufp, size, " [%s n]", LOC(lang, parameters[P_LEVEL]));
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes = (int)snprintf(bufp, size, " \"%s\"", spell_name(sp, lang));
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
|
||||||
|
while (params && *params) {
|
||||||
|
typedef struct starget {
|
||||||
|
param_t param;
|
||||||
|
int flag;
|
||||||
|
const char * vars;
|
||||||
|
} starget;
|
||||||
|
starget targets[] = {
|
||||||
|
{ P_REGION, REGIONSPELL, NULL },
|
||||||
|
{ P_UNIT, UNITSPELL, "par_unit" },
|
||||||
|
{ P_SHIP, SHIPSPELL, "par_ship" },
|
||||||
|
{ P_BUILDING, BUILDINGSPELL, "par_building" },
|
||||||
|
{ 0, 0, NULL }
|
||||||
|
};
|
||||||
|
starget * targetp;
|
||||||
|
char cp = *params++;
|
||||||
|
int i, maxparam = 0;
|
||||||
|
const char * locp;
|
||||||
|
const char * syntaxp = sp->syntax;
|
||||||
|
|
||||||
|
if (cp=='u') {
|
||||||
|
targetp = targets+1;
|
||||||
|
locp = LOC(lang, targetp->vars);
|
||||||
|
bytes = (int)snprintf(bufp, size, " <%s>", locp);
|
||||||
|
if (*params=='+') {
|
||||||
|
++params;
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
bytes = (int)snprintf(bufp, size, " [<%s> ...]", locp);
|
||||||
|
}
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
} else if (cp=='s') {
|
||||||
|
targetp = targets+2;
|
||||||
|
locp = LOC(lang, targetp->vars);
|
||||||
|
bytes = (int)snprintf(bufp, size, " <%s>", locp);
|
||||||
|
if (*params=='+') {
|
||||||
|
++params;
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
bytes = (int)snprintf(bufp, size, " [<%s> ...]", locp);
|
||||||
|
}
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
} else if (cp=='r') {
|
||||||
|
bytes = (int)strlcpy(bufp, " <x> <y>", size);
|
||||||
|
if (*params=='+') {
|
||||||
|
++params;
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
bytes = (int)strlcpy(bufp, " [<x> <y> ...]", size);
|
||||||
|
}
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
} else if (cp=='b') {
|
||||||
|
targetp = targets+3;
|
||||||
|
locp = LOC(lang, targetp->vars);
|
||||||
|
bytes = (int)snprintf(bufp, size, " <%s>", locp);
|
||||||
|
if (*params=='+') {
|
||||||
|
++params;
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
bytes = (int)snprintf(bufp, size, " [<%s> ...]", locp);
|
||||||
|
}
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
} else if (cp=='k') {
|
||||||
|
for (targetp=targets;targetp->flag;++targetp) {
|
||||||
|
if (sp->sptyp&targetp->flag) ++maxparam;
|
||||||
|
}
|
||||||
|
if (maxparam>1) {
|
||||||
|
bytes = (int)strlcpy(bufp, " (", size);
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
}
|
||||||
|
i = 0;
|
||||||
|
for (targetp=targets;targetp->flag;++targetp) {
|
||||||
|
if (sp->sptyp&targetp->flag) {
|
||||||
|
if (i++!=0) {
|
||||||
|
bytes = (int)strlcpy(bufp, " |", size);
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
}
|
||||||
|
if (targetp->param) {
|
||||||
|
locp = LOC(lang, targetp->vars);
|
||||||
|
bytes = (int)snprintf(bufp, size, " %s <%s>", parameters[targetp->param], locp);
|
||||||
|
if (*params=='+') {
|
||||||
|
++params;
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
bytes = (int)snprintf(bufp, size, " [<%s> ...]", locp);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
bytes = (int)snprintf(bufp, size, " %s", parameters[targetp->param]);
|
||||||
|
}
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (maxparam>1) {
|
||||||
|
bytes = (int)strlcpy(bufp, " )", size);
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const char * cstr = strchr(syntaxp, ':');
|
||||||
|
if (!cstr) {
|
||||||
|
locp = LOC(lang, mkname("spellpar", syntaxp));
|
||||||
|
} else {
|
||||||
|
char substr[32];
|
||||||
|
strncpy(substr, syntaxp, cstr-syntaxp);
|
||||||
|
substr[cstr-syntaxp] = 0;
|
||||||
|
locp = LOC(lang, mkname("spellpar", substr));
|
||||||
|
syntaxp = substr + 1;
|
||||||
|
}
|
||||||
|
bytes = (int)snprintf(bufp, size, " <%s>", locp);
|
||||||
|
if (wrptr(&bufp, &size, bytes)!=0) WARN_STATIC_BUFFER();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*bufp = 0;
|
||||||
|
rparagraph(F, buf, 2, 0, 0);
|
||||||
rnl(F);
|
rnl(F);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
* der Einheit und auch keine Zauber.
|
* der Einheit und auch keine Zauber.
|
||||||
*
|
*
|
||||||
* Flag:
|
* Flag:
|
||||||
* (UNITSPELL | ONETARGET | TESTCANSEE)
|
* (UNITSPELL | TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
sp_babbler(castorder *co)
|
sp_babbler(castorder *co)
|
||||||
|
@ -86,7 +86,7 @@ sp_babbler(castorder *co)
|
||||||
* Magieresistenz hier prüfen, wegen Fehlermeldung
|
* Magieresistenz hier prüfen, wegen Fehlermeldung
|
||||||
*
|
*
|
||||||
* Flag:
|
* Flag:
|
||||||
* (UNITSPELL | ONETARGET)
|
* (UNITSPELL)
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
sp_readmind(castorder *co)
|
sp_readmind(castorder *co)
|
||||||
|
|
|
@ -346,7 +346,7 @@ border_type bt_fogwall = {
|
||||||
static const char *
|
static const char *
|
||||||
b_nameillusionwall(const border * b, const region * r, const struct faction * f, int gflags)
|
b_nameillusionwall(const border * b, const region * r, const struct faction * f, int gflags)
|
||||||
{
|
{
|
||||||
/* TODO: f->locale bestimmt die Sprache */
|
/* TODO: UNICODE: f->locale bestimmt die Sprache */
|
||||||
int fno = b->data.i;
|
int fno = b->data.i;
|
||||||
unused(b);
|
unused(b);
|
||||||
unused(r);
|
unused(r);
|
||||||
|
@ -380,7 +380,7 @@ boolean b_blockquestportal(const border * b, const unit * u, const region * r) {
|
||||||
static const char *
|
static const char *
|
||||||
b_namequestportal(const border * b, const region * r, const struct faction * f, int gflags)
|
b_namequestportal(const border * b, const region * r, const struct faction * f, int gflags)
|
||||||
{
|
{
|
||||||
/* TODO: f->locale bestimmt die Sprache */
|
/* TODO: UNICODE: f->locale bestimmt die Sprache */
|
||||||
int lock = b->data.i;
|
int lock = b->data.i;
|
||||||
unused(b);
|
unused(b);
|
||||||
unused(r);
|
unused(r);
|
||||||
|
|
|
@ -443,7 +443,6 @@ new_building(const struct building_type * btype, region * r, const struct locale
|
||||||
if (b->type->name==NULL) {
|
if (b->type->name==NULL) {
|
||||||
bname = LOC(lang, btype->_name);
|
bname = LOC(lang, btype->_name);
|
||||||
} else {
|
} else {
|
||||||
/* TODO: optimization potential: make b->name NULL and use this as default */
|
|
||||||
bname = LOC(lang, buildingtype(btype, b, 0));
|
bname = LOC(lang, buildingtype(btype, b, 0));
|
||||||
}
|
}
|
||||||
b->name = strdup(bname);
|
b->name = strdup(bname);
|
||||||
|
|
|
@ -188,7 +188,6 @@ extern spell_list ** spelllist_find(spell_list ** lspells, const struct spell *
|
||||||
#define SHIPSPELL (1<<3) /* ZAUBER .. <Schiff-Nr> [<Schiff-Nr> ..] */
|
#define SHIPSPELL (1<<3) /* ZAUBER .. <Schiff-Nr> [<Schiff-Nr> ..] */
|
||||||
#define BUILDINGSPELL (1<<4) /* ZAUBER .. <Gebaeude-Nr> [<Gebaeude-Nr> ..] */
|
#define BUILDINGSPELL (1<<4) /* ZAUBER .. <Gebaeude-Nr> [<Gebaeude-Nr> ..] */
|
||||||
#define REGIONSPELL (1<<5) /* wirkt auf struct region */
|
#define REGIONSPELL (1<<5) /* wirkt auf struct region */
|
||||||
#define ONETARGET (1<<6) /* ZAUBER .. <Ziel-Nr> */
|
|
||||||
|
|
||||||
#define PRECOMBATSPELL (1<<7) /* PRÄKAMPFZAUBER .. */
|
#define PRECOMBATSPELL (1<<7) /* PRÄKAMPFZAUBER .. */
|
||||||
#define COMBATSPELL (1<<8) /* KAMPFZAUBER .. */
|
#define COMBATSPELL (1<<8) /* KAMPFZAUBER .. */
|
||||||
|
@ -206,7 +205,7 @@ extern spell_list ** spelllist_find(spell_list ** lspells, const struct spell *
|
||||||
#define SEARCHGLOBAL (1<<14) /* Ziel global anstatt nur in target_region
|
#define SEARCHGLOBAL (1<<14) /* Ziel global anstatt nur in target_region
|
||||||
suchen */
|
suchen */
|
||||||
#define TESTCANSEE (1<<15) /* alle Zielunits auf cansee prüfen */
|
#define TESTCANSEE (1<<15) /* alle Zielunits auf cansee prüfen */
|
||||||
#define ANYTARGET (1<<16) /* wirkt auf alle objekttypen (unit, ship, building, region) */
|
#define ANYTARGET (UNITSPELL|REGIONSPELL|BUILDINGSPELL|SHIPSPELL) /* wirkt auf alle objekttypen (unit, ship, building, region) */
|
||||||
|
|
||||||
/* Flag Spruchkostenberechnung: */
|
/* Flag Spruchkostenberechnung: */
|
||||||
enum{
|
enum{
|
||||||
|
|
|
@ -935,20 +935,22 @@ readunit(FILE * F, int encoding)
|
||||||
p = n = 0;
|
p = n = 0;
|
||||||
orderp = &u->orders;
|
orderp = &u->orders;
|
||||||
while (obuf[0]) {
|
while (obuf[0]) {
|
||||||
order * ord = parse_order(obuf, u->faction->locale);
|
if (!lomem) {
|
||||||
if (ord!=NULL) {
|
order * ord = parse_order(obuf, u->faction->locale);
|
||||||
if (++n<MAXORDERS) {
|
if (ord!=NULL) {
|
||||||
if (!is_persistent(ord) || ++p<MAXPERSISTENT) {
|
if (++n<MAXORDERS) {
|
||||||
*orderp = ord;
|
if (!is_persistent(ord) || ++p<MAXPERSISTENT) {
|
||||||
orderp = &ord->next;
|
*orderp = ord;
|
||||||
ord = NULL;
|
orderp = &ord->next;
|
||||||
} else if (p==MAXPERSISTENT) {
|
ord = NULL;
|
||||||
log_warning(("%s had %d or more persistent orders\n", unitname(u), MAXPERSISTENT));
|
} else if (p==MAXPERSISTENT) {
|
||||||
|
log_warning(("%s had %d or more persistent orders\n", unitname(u), MAXPERSISTENT));
|
||||||
|
}
|
||||||
|
} else if (n==MAXORDERS) {
|
||||||
|
log_warning(("%s had %d or more orders\n", unitname(u), MAXORDERS));
|
||||||
}
|
}
|
||||||
} else if (n==MAXORDERS) {
|
if (ord!=NULL) free_order(ord);
|
||||||
log_warning(("%s had %d or more orders\n", unitname(u), MAXORDERS));
|
|
||||||
}
|
}
|
||||||
if (ord!=NULL) free_order(ord);
|
|
||||||
}
|
}
|
||||||
freadstr(F, encoding, obuf, sizeof(obuf));
|
freadstr(F, encoding, obuf, sizeof(obuf));
|
||||||
}
|
}
|
||||||
|
@ -1897,8 +1899,8 @@ writegame(const char *filename, int quiet)
|
||||||
wnl(F);
|
wnl(F);
|
||||||
for (b = r->buildings; b; b = b->next) {
|
for (b = r->buildings; b; b = b->next) {
|
||||||
wi36(F, b->no);
|
wi36(F, b->no);
|
||||||
ws(F, (const char *)b->name);
|
ws(F, b->name);
|
||||||
ws(F, b->display?(const char *)b->display:"");
|
ws(F, b->display?b->display:"");
|
||||||
wi(F, b->size);
|
wi(F, b->size);
|
||||||
ws(F, b->type->_name);
|
ws(F, b->type->_name);
|
||||||
wnl(F);
|
wnl(F);
|
||||||
|
|
|
@ -108,7 +108,6 @@ extern "C" {
|
||||||
* UNITSPELL : ZAUBER <spruchname> <Einheit-Nr> [<Einheit-Nr> ..]
|
* UNITSPELL : ZAUBER <spruchname> <Einheit-Nr> [<Einheit-Nr> ..]
|
||||||
* SHIPSPELL : ZAUBER <spruchname> <Schiff-Nr> [<Schiff-Nr> ..]
|
* SHIPSPELL : ZAUBER <spruchname> <Schiff-Nr> [<Schiff-Nr> ..]
|
||||||
* BUILDINGSPELL: ZAUBER <spruchname> <Gebaeude-Nr> [<Gebaeude-Nr> ..]
|
* BUILDINGSPELL: ZAUBER <spruchname> <Gebaeude-Nr> [<Gebaeude-Nr> ..]
|
||||||
* ONETARGET : ZAUBER <spruchname> <target-nr>
|
|
||||||
* PRECOMBATSPELL : KAMPFZAUBER [STUFE n] <spruchname>
|
* PRECOMBATSPELL : KAMPFZAUBER [STUFE n] <spruchname>
|
||||||
* COMBATSPELL : KAMPFZAUBER [STUFE n] <spruchname>
|
* COMBATSPELL : KAMPFZAUBER [STUFE n] <spruchname>
|
||||||
* POSTCOMBATSPELL: KAMPFZAUBER [STUFE n] <spruchname>
|
* POSTCOMBATSPELL: KAMPFZAUBER [STUFE n] <spruchname>
|
||||||
|
|
|
@ -1326,6 +1326,13 @@ parse_spells(xmlDocPtr doc)
|
||||||
sp->parameter=strdup((const char *)propValue);
|
sp->parameter=strdup((const char *)propValue);
|
||||||
xmlFree(propValue);
|
xmlFree(propValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
propValue = xmlGetProp(node, BAD_CAST "syntax");
|
||||||
|
if (propValue) {
|
||||||
|
sp->syntax=strdup((const char *)propValue);
|
||||||
|
xmlFree(propValue);
|
||||||
|
}
|
||||||
|
|
||||||
/* magic type */
|
/* magic type */
|
||||||
propValue = xmlGetProp(node, BAD_CAST "type");
|
propValue = xmlGetProp(node, BAD_CAST "type");
|
||||||
assert(propValue!=NULL);
|
assert(propValue!=NULL);
|
||||||
|
|
|
@ -36,7 +36,7 @@ struct castorder;
|
||||||
* TODO: Der Alp-Curse sollte sich durch besondere Antimagie (Tybied)
|
* TODO: Der Alp-Curse sollte sich durch besondere Antimagie (Tybied)
|
||||||
* entfernen lassen.
|
* entfernen lassen.
|
||||||
*
|
*
|
||||||
* (UNITSPELL | ONETARGET | SEARCHGLOBAL | TESTRESISTANCE)
|
* (UNITSPELL | SEARCHGLOBAL | TESTRESISTANCE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern int sp_summon_alp(struct castorder *co);
|
extern int sp_summon_alp(struct castorder *co);
|
||||||
|
|
|
@ -717,7 +717,7 @@ sp_destroy_magic(castorder *co)
|
||||||
* "ZAUBERE <spruchname> <Einheit-Nr> <investierte Aura>"
|
* "ZAUBERE <spruchname> <Einheit-Nr> <investierte Aura>"
|
||||||
* "ui"
|
* "ui"
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL|ONSHIPCAST|ONETARGET)
|
* (UNITSPELL|ONSHIPCAST)
|
||||||
* */
|
* */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -785,7 +785,7 @@ sp_transferaura(castorder *co)
|
||||||
* verdoppelt), und "Luftschiff".
|
* verdoppelt), und "Luftschiff".
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (SHIPSPELL|ONSHIPCAST|SPELLLEVEL|ONETARGET|TESTRESISTANCE)
|
* (SHIPSPELL|ONSHIPCAST|SPELLLEVEL|TESTRESISTANCE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -934,7 +934,7 @@ sp_summonent(castorder *co)
|
||||||
* fertigen Steinkreis mittels des Zaubers erschaffen.
|
* fertigen Steinkreis mittels des Zaubers erschaffen.
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (BUILDINGSPELL | ONETARGET)
|
* (BUILDINGSPELL)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
|
@ -1412,7 +1412,7 @@ sp_kaelteschutz(castorder *co)
|
||||||
* Beschreibung auftaucht, aber nur visuellen Effekt hat.
|
* Beschreibung auftaucht, aber nur visuellen Effekt hat.
|
||||||
*
|
*
|
||||||
* Flag:
|
* Flag:
|
||||||
* (UNITSPELL | TESTCANSEE | SPELLLEVEL | ONETARGET)
|
* (UNITSPELL | TESTCANSEE | SPELLLEVEL)
|
||||||
*/
|
*/
|
||||||
/* Syntax: ZAUBER "Funkenregen" eh1 */
|
/* Syntax: ZAUBER "Funkenregen" eh1 */
|
||||||
|
|
||||||
|
@ -2531,7 +2531,7 @@ sp_forest_fire(castorder *co)
|
||||||
* Magier wird selbst betroffen
|
* Magier wird selbst betroffen
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL | SPELLLEVEL | ONETARGET | TESTCANSEE | TESTRESISTANCE)
|
* (UNITSPELL | SPELLLEVEL | TESTCANSEE | TESTRESISTANCE)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
|
@ -3747,7 +3747,7 @@ sp_analysesong_obj(castorder *co)
|
||||||
* c->vigour)*10 + 100 %).
|
* c->vigour)*10 + 100 %).
|
||||||
*
|
*
|
||||||
* Flag:
|
* Flag:
|
||||||
* (UNITSPELL|ONSHIPCAST|ONETARGET|TESTCANSEE)
|
* (UNITSPELL|ONSHIPCAST|TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
sp_analysesong_unit(castorder *co)
|
sp_analysesong_unit(castorder *co)
|
||||||
|
@ -3795,7 +3795,7 @@ sp_analysesong_unit(castorder *co)
|
||||||
*
|
*
|
||||||
* Attackiere verbieten
|
* Attackiere verbieten
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL | ONETARGET | TESTCANSEE)
|
* (UNITSPELL | TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
sp_charmingsong(castorder *co)
|
sp_charmingsong(castorder *co)
|
||||||
|
@ -4053,7 +4053,7 @@ sp_raisepeasantmob(castorder *co)
|
||||||
* angeworbene Einheit muss kontaktieren. Keine teuren Talente
|
* angeworbene Einheit muss kontaktieren. Keine teuren Talente
|
||||||
*
|
*
|
||||||
* Flag:
|
* Flag:
|
||||||
* (UNITSPELL | SPELLLEVEL | ONETARGET | TESTCANSEE)
|
* (UNITSPELL | SPELLLEVEL | TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
sp_migranten(castorder *co)
|
sp_migranten(castorder *co)
|
||||||
|
@ -4317,7 +4317,7 @@ sp_bigrecruit(castorder *co)
|
||||||
* niemand ihrer Partei, so weiß sie nichts zu berichten. Auch kann
|
* niemand ihrer Partei, so weiß sie nichts zu berichten. Auch kann
|
||||||
* sie nur das erzählen, was sie selber sehen könnte.
|
* sie nur das erzählen, was sie selber sehen könnte.
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL | ONETARGET | TESTCANSEE)
|
* (UNITSPELL | TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* restistenz der einheit prüfen */
|
/* restistenz der einheit prüfen */
|
||||||
|
@ -4379,7 +4379,7 @@ sp_pump(castorder *co)
|
||||||
* kommt Itemzahl%2 mit 50% chance
|
* kommt Itemzahl%2 mit 50% chance
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL | ONETARGET | TESTRESISTANCE | TESTCANSEE)
|
* (UNITSPELL | TESTRESISTANCE | TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
sp_seduce(castorder *co)
|
sp_seduce(castorder *co)
|
||||||
|
@ -4449,7 +4449,7 @@ sp_seduce(castorder *co)
|
||||||
* anderen Magier nochmal gezaubert, schlägt der Zauber fehl.
|
* anderen Magier nochmal gezaubert, schlägt der Zauber fehl.
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL | ONSHIPCAST | ONETARGET | TESTRESISTANCE | TESTCANSEE)
|
* (UNITSPELL | ONSHIPCAST | TESTRESISTANCE | TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -4500,7 +4500,7 @@ sp_calm_monster(castorder *co)
|
||||||
* Wirkt auf bis zu 10 Personen in der Einheit
|
* Wirkt auf bis zu 10 Personen in der Einheit
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL | ONETARGET | TESTRESISTANCE | TESTCANSEE)
|
* (UNITSPELL | TESTRESISTANCE | TESTCANSEE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -4840,7 +4840,7 @@ sp_icastle(castorder *co)
|
||||||
* (wie bei dämonischer Rassetarnung).
|
* (wie bei dämonischer Rassetarnung).
|
||||||
* Syntax: ZAUBERE "Gestaltwandlung" <einheit> <rasse>
|
* Syntax: ZAUBERE "Gestaltwandlung" <einheit> <rasse>
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL | SPELLLEVEL | ONETARGET)
|
* (UNITSPELL | SPELLLEVEL)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -6140,7 +6140,7 @@ sp_eternizewall(castorder *co)
|
||||||
* übertragen, auf einen Magier eines anderen Gebietes ein Drittel.
|
* übertragen, auf einen Magier eines anderen Gebietes ein Drittel.
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (UNITSPELL|ONETARGET)
|
* (UNITSPELL)
|
||||||
*
|
*
|
||||||
* Syntax:
|
* Syntax:
|
||||||
* ZAUBERE \"Opfere Kraft\" <Einheit-Nr> <Aura>
|
* ZAUBERE \"Opfere Kraft\" <Einheit-Nr> <Aura>
|
||||||
|
@ -6297,7 +6297,7 @@ shipcurse_flyingship(ship* sh, unit * mage, double power, int duration)
|
||||||
* Kombinierbar mit "Günstige Winde", aber nicht mit "Sturmwind".
|
* Kombinierbar mit "Günstige Winde", aber nicht mit "Sturmwind".
|
||||||
*
|
*
|
||||||
* Flag:
|
* Flag:
|
||||||
* (ONSHIPCAST | SHIPSPELL | ONETARGET | TESTRESISTANCE)
|
* (ONSHIPCAST | SHIPSPELL | TESTRESISTANCE)
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
sp_flying_ship(castorder *co)
|
sp_flying_ship(castorder *co)
|
||||||
|
@ -6359,7 +6359,7 @@ sp_flying_ship(castorder *co)
|
||||||
* zuführen.
|
* zuführen.
|
||||||
*
|
*
|
||||||
* Flags:
|
* Flags:
|
||||||
* (FARCASTING | SPELLLEVEL | UNITSPELL | ONETARGET | TESTRESISTANCE |
|
* (FARCASTING | SPELLLEVEL | UNITSPELL | TESTRESISTANCE |
|
||||||
* TESTCANSEE)
|
* TESTCANSEE)
|
||||||
* */
|
* */
|
||||||
int
|
int
|
||||||
|
@ -7042,7 +7042,7 @@ static spelldata spelldaten[] =
|
||||||
{ SPL_GOODWINDS, "goodwinds", NULL, NULL,
|
{ SPL_GOODWINDS, "goodwinds", NULL, NULL,
|
||||||
"s",
|
"s",
|
||||||
M_DRUIDE,
|
M_DRUIDE,
|
||||||
(SHIPSPELL|ONSHIPCAST|SPELLLEVEL|ONETARGET|TESTRESISTANCE),
|
(SHIPSPELL|ONSHIPCAST|SPELLLEVEL|TESTRESISTANCE),
|
||||||
5, 4,
|
5, 4,
|
||||||
{
|
{
|
||||||
{ "aura", 1, SPC_LEVEL },
|
{ "aura", 1, SPC_LEVEL },
|
||||||
|
@ -7091,9 +7091,9 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_TRANSFERAURA_DRUIDE, "transferauradruide", NULL,
|
SPL_TRANSFERAURA_DRUIDE, "transferauradruide", NULL,
|
||||||
"ZAUBERE \'Meditation\' <Einheit-Nr> <investierte Aura>",
|
"aura",
|
||||||
"ui",
|
"ui",
|
||||||
M_DRUIDE, (UNITSPELL|ONSHIPCAST|ONETARGET), 1, 6,
|
M_DRUIDE, (UNITSPELL|ONSHIPCAST), 1, 6,
|
||||||
{
|
{
|
||||||
{ "aura", 2, SPC_FIX },
|
{ "aura", 2, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -7182,7 +7182,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_GWYRRD_DESTROY_MAGIC, "gwyrrddestroymagic", NULL, NULL,
|
SPL_GWYRRD_DESTROY_MAGIC, "gwyrrddestroymagic", NULL, NULL,
|
||||||
"kc?",
|
"kc?",
|
||||||
M_DRUIDE,
|
M_DRUIDE,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE | ANYTARGET),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | TESTCANSEE | ANYTARGET),
|
||||||
2, 8,
|
2, 8,
|
||||||
{
|
{
|
||||||
{ "aura", 6, SPC_LEVEL },
|
{ "aura", 6, SPC_LEVEL },
|
||||||
|
@ -7207,8 +7207,7 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_treewalkenter, NULL
|
(spell_f)sp_treewalkenter, NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_TREEWALKEXIT, "treewalkexit", NULL,
|
SPL_TREEWALKEXIT, "treewalkexit", NULL, NULL,
|
||||||
"ZAUBERE \'Sog des Lebens\' <Ziel-X> <Ziel-Y> <Einheit> [<Einheit> ..]",
|
|
||||||
"ru+",
|
"ru+",
|
||||||
M_DRUIDE, (UNITSPELL | SPELLLEVEL | TESTCANSEE), 7, 9,
|
M_DRUIDE, (UNITSPELL | SPELLLEVEL | TESTCANSEE), 7, 9,
|
||||||
{
|
{
|
||||||
|
@ -7259,7 +7258,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_BLESSSTONECIRCLE, "blessstonecircle", NULL, NULL,
|
SPL_BLESSSTONECIRCLE, "blessstonecircle", NULL, NULL,
|
||||||
"b",
|
"b",
|
||||||
M_DRUIDE, (BUILDINGSPELL | ONETARGET), 5, 11,
|
M_DRUIDE, (BUILDINGSPELL), 5, 11,
|
||||||
{
|
{
|
||||||
{ "aura", 350, SPC_FIX },
|
{ "aura", 350, SPC_FIX },
|
||||||
{ "permaura", 5, SPC_FIX },
|
{ "permaura", 5, SPC_FIX },
|
||||||
|
@ -7353,7 +7352,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_SPARKLE_CHAOS, "sparklechaos", NULL, NULL,
|
SPL_SPARKLE_CHAOS, "sparklechaos", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_CHAOS, (UNITSPELL | TESTCANSEE | SPELLLEVEL | ONETARGET), 5, 1,
|
M_CHAOS, (UNITSPELL | TESTCANSEE | SPELLLEVEL), 5, 1,
|
||||||
{
|
{
|
||||||
{ "aura", 1, SPC_LEVEL },
|
{ "aura", 1, SPC_LEVEL },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -7415,7 +7414,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_FUMBLECURSE, "fumblecurse", NULL, NULL,
|
SPL_FUMBLECURSE, "fumblecurse", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_CHAOS,
|
M_CHAOS,
|
||||||
(UNITSPELL | SPELLLEVEL | ONETARGET | TESTCANSEE | TESTRESISTANCE),
|
(UNITSPELL | SPELLLEVEL | TESTCANSEE | TESTRESISTANCE),
|
||||||
4, 5,
|
4, 5,
|
||||||
{
|
{
|
||||||
{ "aura", 4, SPC_LEVEL },
|
{ "aura", 4, SPC_LEVEL },
|
||||||
|
@ -7453,9 +7452,9 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_TRANSFERAURA_CHAOS, "transferaurachaos", NULL,
|
SPL_TRANSFERAURA_CHAOS, "transferaurachaos", NULL,
|
||||||
"ZAUBERE \'Machtuebertragung\' <Einheit-Nr> <investierte Aura>",
|
"aura",
|
||||||
"ui",
|
"ui",
|
||||||
M_CHAOS, (UNITSPELL|ONSHIPCAST|ONETARGET), 1, 7,
|
M_CHAOS, (UNITSPELL|ONSHIPCAST), 1, 7,
|
||||||
{
|
{
|
||||||
{ "aura", 2, SPC_FIX },
|
{ "aura", 2, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -7467,7 +7466,7 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_FIREWALL, "firewall", NULL,
|
SPL_FIREWALL, "firewall", NULL,
|
||||||
"ZAUBERE \'Feuerwand\' <Richtung>",
|
"direction",
|
||||||
"c",
|
"c",
|
||||||
M_CHAOS, (SPELLLEVEL | REGIONSPELL | TESTRESISTANCE), 4, 7,
|
M_CHAOS, (SPELLLEVEL | REGIONSPELL | TESTRESISTANCE), 4, 7,
|
||||||
{
|
{
|
||||||
|
@ -7569,7 +7568,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_DRAIG_DESTROY_MAGIC, "draigdestroymagic", NULL, NULL,
|
SPL_DRAIG_DESTROY_MAGIC, "draigdestroymagic", NULL, NULL,
|
||||||
"kc?",
|
"kc?",
|
||||||
M_CHAOS,
|
M_CHAOS,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE | ANYTARGET),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | TESTCANSEE | ANYTARGET),
|
||||||
2, 10,
|
2, 10,
|
||||||
{
|
{
|
||||||
{ "aura", 10, SPC_LEVEL },
|
{ "aura", 10, SPC_LEVEL },
|
||||||
|
@ -7658,7 +7657,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_SPARKLE_DREAM, "sparkledream", NULL, NULL,
|
SPL_SPARKLE_DREAM, "sparkledream", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_TRAUM,
|
M_TRAUM,
|
||||||
(UNITSPELL | TESTCANSEE | SPELLLEVEL | ONETARGET | ONSHIPCAST),
|
(UNITSPELL | TESTCANSEE | SPELLLEVEL | ONSHIPCAST),
|
||||||
5, 1,
|
5, 1,
|
||||||
{
|
{
|
||||||
{ "aura", 1, SPC_LEVEL },
|
{ "aura", 1, SPC_LEVEL },
|
||||||
|
@ -7707,7 +7706,7 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_ICASTLE, "icastle", NULL,
|
SPL_ICASTLE, "icastle", NULL,
|
||||||
"ZAUBERE \"Traumschloesschen\" <Gebaeude-Typ>",
|
"buildingtype",
|
||||||
"c",
|
"c",
|
||||||
M_TRAUM, (0), 5, 3,
|
M_TRAUM, (0), 5, 3,
|
||||||
{
|
{
|
||||||
|
@ -7721,9 +7720,9 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_TRANSFERAURA_TRAUM, "transferauratraum", NULL,
|
SPL_TRANSFERAURA_TRAUM, "transferauratraum", NULL,
|
||||||
"ZAUBERE \'Traum der Magie\' <Einheit-Nr> <investierte Aura>",
|
"aura",
|
||||||
"ui",
|
"ui",
|
||||||
M_TRAUM, (UNITSPELL|ONSHIPCAST|ONETARGET), 1, 3,
|
M_TRAUM, (UNITSPELL|ONSHIPCAST), 1, 3,
|
||||||
{
|
{
|
||||||
{ "aura", 2, SPC_FIX },
|
{ "aura", 2, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -7735,9 +7734,9 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_ILL_SHAPESHIFT, "shapeshift", NULL,
|
SPL_ILL_SHAPESHIFT, "shapeshift", NULL,
|
||||||
"ZAUBERE [STUFE n] \'Gestaltwandlung\' <Einheit-nr> <Rasse>",
|
"race",
|
||||||
"uc",
|
"uc",
|
||||||
M_TRAUM, (UNITSPELL|SPELLLEVEL|ONETARGET), 5, 3,
|
M_TRAUM, (UNITSPELL|SPELLLEVEL), 5, 3,
|
||||||
{
|
{
|
||||||
{ "aura", 1, SPC_LEVEL },
|
{ "aura", 1, SPC_LEVEL },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -7750,7 +7749,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_DREAMREADING, "dreamreading", NULL, NULL,
|
SPL_DREAMREADING, "dreamreading", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_TRAUM, (FARCASTING | UNITSPELL | ONETARGET | TESTRESISTANCE), 5, 4,
|
M_TRAUM, (FARCASTING | UNITSPELL | TESTRESISTANCE), 5, 4,
|
||||||
{
|
{
|
||||||
{ "aura", 8, SPC_FIX },
|
{ "aura", 8, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -7787,7 +7786,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_ANALYSEDREAM, "analysedream", NULL, NULL,
|
SPL_ANALYSEDREAM, "analysedream", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_TRAUM, (UNITSPELL | ONSHIPCAST | ONETARGET | TESTCANSEE), 5, 5,
|
M_TRAUM, (UNITSPELL | ONSHIPCAST | TESTCANSEE), 5, 5,
|
||||||
{
|
{
|
||||||
{ "aura", 5, SPC_LEVEL },
|
{ "aura", 5, SPC_LEVEL },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -7823,7 +7822,7 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_WISPS, "wisps", NULL,
|
SPL_WISPS, "wisps", NULL,
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Irrlichter\' <Richtung>",
|
"direction",
|
||||||
"c",
|
"c",
|
||||||
M_TRAUM, (SPELLLEVEL | FARCASTING), 5, 7,
|
M_TRAUM, (SPELLLEVEL | FARCASTING), 5, 7,
|
||||||
{
|
{
|
||||||
|
@ -7853,7 +7852,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_ILLAUN_DESTROY_MAGIC, "illaundestroymagic", NULL, NULL,
|
SPL_ILLAUN_DESTROY_MAGIC, "illaundestroymagic", NULL, NULL,
|
||||||
"kc?",
|
"kc?",
|
||||||
M_TRAUM,
|
M_TRAUM,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE | ANYTARGET),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | TESTCANSEE | ANYTARGET),
|
||||||
2, 8,
|
2, 8,
|
||||||
{
|
{
|
||||||
{ "aura", 6, SPC_LEVEL },
|
{ "aura", 6, SPC_LEVEL },
|
||||||
|
@ -7930,7 +7929,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_SUMMON_ALP, "summon_alp", NULL, NULL, "u",
|
SPL_SUMMON_ALP, "summon_alp", NULL, NULL, "u",
|
||||||
M_TRAUM,
|
M_TRAUM,
|
||||||
(UNITSPELL | ONETARGET | SEARCHGLOBAL | TESTRESISTANCE),
|
(UNITSPELL | SEARCHGLOBAL | TESTRESISTANCE),
|
||||||
5, 15,
|
5, 15,
|
||||||
{
|
{
|
||||||
{ "aura", 350, SPC_FIX },
|
{ "aura", 350, SPC_FIX },
|
||||||
|
@ -8059,7 +8058,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_TRANSFERAURA_BARDE, "transfer_aura_song", NULL, NULL,
|
SPL_TRANSFERAURA_BARDE, "transfer_aura_song", NULL, NULL,
|
||||||
"ui",
|
"ui",
|
||||||
M_BARDE, (UNITSPELL|ONSHIPCAST|ONETARGET), 1, 5,
|
M_BARDE, (UNITSPELL|ONSHIPCAST), 1, 5,
|
||||||
{
|
{
|
||||||
{ "aura", 2, SPC_FIX },
|
{ "aura", 2, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8073,7 +8072,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_UNIT_ANALYSESONG, "analysesong_unit", NULL, NULL,
|
SPL_UNIT_ANALYSESONG, "analysesong_unit", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_BARDE,
|
M_BARDE,
|
||||||
(UNITSPELL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
(UNITSPELL | ONSHIPCAST | TESTCANSEE),
|
||||||
5, 5,
|
5, 5,
|
||||||
{
|
{
|
||||||
{ "aura", 10, SPC_FIX },
|
{ "aura", 10, SPC_FIX },
|
||||||
|
@ -8099,7 +8098,7 @@ static spelldata spelldaten[] =
|
||||||
{ SPL_CALM_MONSTER, "calm_monster", NULL, NULL,
|
{ SPL_CALM_MONSTER, "calm_monster", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_BARDE,
|
M_BARDE,
|
||||||
(UNITSPELL | ONSHIPCAST | ONETARGET | TESTRESISTANCE | TESTCANSEE),
|
(UNITSPELL | ONSHIPCAST | TESTRESISTANCE | TESTCANSEE),
|
||||||
5, 6,
|
5, 6,
|
||||||
{
|
{
|
||||||
{ "aura", 15, SPC_FIX },
|
{ "aura", 15, SPC_FIX },
|
||||||
|
@ -8113,7 +8112,7 @@ static spelldata spelldaten[] =
|
||||||
{ SPL_SEDUCE, "seduction", NULL, NULL,
|
{ SPL_SEDUCE, "seduction", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_BARDE,
|
M_BARDE,
|
||||||
(UNITSPELL | ONETARGET | TESTRESISTANCE | TESTCANSEE),
|
(UNITSPELL | TESTRESISTANCE | TESTCANSEE),
|
||||||
5, 6,
|
5, 6,
|
||||||
{
|
{
|
||||||
{ "aura", 12, SPC_FIX },
|
{ "aura", 12, SPC_FIX },
|
||||||
|
@ -8128,7 +8127,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_HEADACHE, "headache", NULL, NULL,
|
SPL_HEADACHE, "headache", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_BARDE,
|
M_BARDE,
|
||||||
(UNITSPELL | ONETARGET | TESTRESISTANCE | TESTCANSEE),
|
(UNITSPELL | TESTRESISTANCE | TESTCANSEE),
|
||||||
5, 7,
|
5, 7,
|
||||||
{
|
{
|
||||||
{ "aura", 4, SPC_LINEAR },
|
{ "aura", 4, SPC_LINEAR },
|
||||||
|
@ -8140,9 +8139,9 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_headache, NULL
|
(spell_f)sp_headache, NULL
|
||||||
},
|
},
|
||||||
{ SPL_PUMP, "sound_out", NULL,
|
{ SPL_PUMP, "sound_out", NULL,
|
||||||
"ZAUBERE \'Aushorchen\' <Einheit-Nr> <Zielregion-X> <Zielregion-Y>",
|
NULL,
|
||||||
"ur",
|
"ur",
|
||||||
M_BARDE, (UNITSPELL | ONETARGET | TESTCANSEE), 5, 7,
|
M_BARDE, (UNITSPELL | TESTCANSEE), 5, 7,
|
||||||
{
|
{
|
||||||
{ "aura", 4, SPC_FIX },
|
{ "aura", 4, SPC_FIX },
|
||||||
{ "money", 100, SPC_FIX },
|
{ "money", 100, SPC_FIX },
|
||||||
|
@ -8177,12 +8176,9 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_frighten, NULL
|
(spell_f)sp_frighten, NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_OBJ_ANALYSESONG, "analyse_object", NULL,
|
SPL_OBJ_ANALYSESONG, "analyse_object", NULL, NULL,
|
||||||
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' REGION\n"
|
|
||||||
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' GEBAEUDE <Gebaeude-Nr>\n"
|
|
||||||
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' SCHIFF <Schiff-nr>",
|
|
||||||
"kc?",
|
"kc?",
|
||||||
M_BARDE, (SPELLLEVEL|ONSHIPCAST), 5, 8,
|
M_BARDE, (SPELLLEVEL | ONSHIPCAST | REGIONSPELL | BUILDINGSPELL | SHIPSPELL), 5, 8,
|
||||||
{
|
{
|
||||||
{ "aura", 3, SPC_LEVEL },
|
{ "aura", 3, SPC_LEVEL },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8196,7 +8192,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_CERDDOR_DESTROY_MAGIC, "cerddor_destroymagic", NULL, NULL,
|
SPL_CERDDOR_DESTROY_MAGIC, "cerddor_destroymagic", NULL, NULL,
|
||||||
"kc?",
|
"kc?",
|
||||||
M_BARDE,
|
M_BARDE,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE | ANYTARGET),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | TESTCANSEE | ANYTARGET),
|
||||||
2, 8,
|
2, 8,
|
||||||
{
|
{
|
||||||
{ "aura", 5, SPC_LEVEL },
|
{ "aura", 5, SPC_LEVEL },
|
||||||
|
@ -8210,7 +8206,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_MIGRANT, "migration", NULL, NULL,
|
SPL_MIGRANT, "migration", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_BARDE, (UNITSPELL | SPELLLEVEL | ONETARGET | TESTCANSEE), 5, 9,
|
M_BARDE, (UNITSPELL | SPELLLEVEL | TESTCANSEE), 5, 9,
|
||||||
{
|
{
|
||||||
{ "aura", 3, SPC_LEVEL },
|
{ "aura", 3, SPC_LEVEL },
|
||||||
{ "permaura", 1, SPC_LEVEL },
|
{ "permaura", 1, SPC_LEVEL },
|
||||||
|
@ -8300,7 +8296,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_SONG_OF_ENSLAVE, "song_of_slavery", NULL, NULL,
|
SPL_SONG_OF_ENSLAVE, "song_of_slavery", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_BARDE, (UNITSPELL | ONETARGET | TESTCANSEE), 5, 13,
|
M_BARDE, (UNITSPELL | TESTCANSEE), 5, 13,
|
||||||
{
|
{
|
||||||
{ "aura", 40, SPC_FIX },
|
{ "aura", 40, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8351,7 +8347,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_ANALYSEMAGIC, "analyze_magic", NULL, NULL,
|
SPL_ANALYSEMAGIC, "analyze_magic", NULL, NULL,
|
||||||
"kc?",
|
"kc?",
|
||||||
M_ASTRAL, (SPELLLEVEL | UNITSPELL | ONSHIPCAST | ONETARGET | TESTCANSEE | ANYTARGET), 5, 1,
|
M_ASTRAL, (SPELLLEVEL | UNITSPELL | ONSHIPCAST | TESTCANSEE | ANYTARGET), 5, 1,
|
||||||
{
|
{
|
||||||
{ "aura", 1, SPC_LEVEL },
|
{ "aura", 1, SPC_LEVEL },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8364,7 +8360,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_ITEMCLOAK, "concealing_aura", NULL, NULL,
|
SPL_ITEMCLOAK, "concealing_aura", NULL, NULL,
|
||||||
"u",
|
"u",
|
||||||
M_ASTRAL, (SPELLLEVEL | UNITSPELL | ONSHIPCAST | ONETARGET), 5, 1,
|
M_ASTRAL, (SPELLLEVEL | UNITSPELL | ONSHIPCAST), 5, 1,
|
||||||
{
|
{
|
||||||
{ "aura", 1, SPC_LEVEL },
|
{ "aura", 1, SPC_LEVEL },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8440,9 +8436,7 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_enterastral, NULL
|
(spell_f)sp_enterastral, NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_LEAVEASTRAL, "leaveastral", NULL,
|
SPL_LEAVEASTRAL, "leaveastral", NULL, NULL,
|
||||||
"ZAUBER [STUFE n] \'Astraler Ausgang\' <Ziel-X> <Ziel-Y> <Einheit-Nr> "
|
|
||||||
"[<Einheit-Nr> ...]",
|
|
||||||
"ru+",
|
"ru+",
|
||||||
M_ASTRAL, (UNITSPELL |SPELLLEVEL), 7, 4,
|
M_ASTRAL, (UNITSPELL |SPELLLEVEL), 7, 4,
|
||||||
{
|
{
|
||||||
|
@ -8456,9 +8450,9 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_TRANSFERAURA_ASTRAL, "auratransfer", NULL,
|
SPL_TRANSFERAURA_ASTRAL, "auratransfer", NULL,
|
||||||
"ZAUBERE \'Auratransfer\' <Einheit-Nr> <investierte Aura>",
|
"aura",
|
||||||
"ui",
|
"ui",
|
||||||
M_ASTRAL, (UNITSPELL|ONSHIPCAST|ONETARGET), 1, 5,
|
M_ASTRAL, (UNITSPELL|ONSHIPCAST), 1, 5,
|
||||||
{
|
{
|
||||||
{ "aura", 1, SPC_FIX },
|
{ "aura", 1, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8497,7 +8491,7 @@ static spelldata spelldaten[] =
|
||||||
SPL_TYBIED_DESTROY_MAGIC, "destroy_magic", NULL, NULL,
|
SPL_TYBIED_DESTROY_MAGIC, "destroy_magic", NULL, NULL,
|
||||||
"kc?",
|
"kc?",
|
||||||
M_ASTRAL,
|
M_ASTRAL,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE | ANYTARGET),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | TESTCANSEE | ANYTARGET),
|
||||||
2, 5,
|
2, 5,
|
||||||
{
|
{
|
||||||
{ "aura", 4, SPC_LEVEL },
|
{ "aura", 4, SPC_LEVEL },
|
||||||
|
@ -8509,9 +8503,7 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_destroy_magic, NULL
|
(spell_f)sp_destroy_magic, NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_PULLASTRAL, "pull_astral", NULL,
|
SPL_PULLASTRAL, "pull_astral", NULL, NULL,
|
||||||
"ZAUBER [STUFE n] \'Astraler Ruf\' <Ziel-X> <Ziel-Y> <Einheit-Nr> "
|
|
||||||
"[<Einheit-Nr> ...]",
|
|
||||||
"ru+",
|
"ru+",
|
||||||
M_ASTRAL, (UNITSPELL | SEARCHGLOBAL | SPELLLEVEL), 7, 6,
|
M_ASTRAL, (UNITSPELL | SEARCHGLOBAL | SPELLLEVEL), 7, 6,
|
||||||
{
|
{
|
||||||
|
@ -8539,7 +8531,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_STEALAURA, "steal_aura", NULL, NULL, "u",
|
SPL_STEALAURA, "steal_aura", NULL, NULL, "u",
|
||||||
M_ASTRAL,
|
M_ASTRAL,
|
||||||
(FARCASTING | SPELLLEVEL | UNITSPELL | ONETARGET | TESTRESISTANCE | TESTCANSEE),
|
(FARCASTING | SPELLLEVEL | UNITSPELL | TESTRESISTANCE | TESTCANSEE),
|
||||||
3, 6,
|
3, 6,
|
||||||
{
|
{
|
||||||
{ "aura", 2, SPC_LEVEL },
|
{ "aura", 2, SPC_LEVEL },
|
||||||
|
@ -8552,7 +8544,7 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_FLYING_SHIP, "airship", NULL, NULL, "s",
|
SPL_FLYING_SHIP, "airship", NULL, NULL, "s",
|
||||||
M_ASTRAL, (ONSHIPCAST | SHIPSPELL | ONETARGET | TESTRESISTANCE), 5, 6,
|
M_ASTRAL, (ONSHIPCAST | SHIPSPELL | TESTRESISTANCE), 5, 6,
|
||||||
{
|
{
|
||||||
{ "aura", 10, SPC_FIX },
|
{ "aura", 10, SPC_FIX },
|
||||||
{ "h12", 1, SPC_FIX },
|
{ "h12", 1, SPC_FIX },
|
||||||
|
@ -8565,7 +8557,7 @@ static spelldata spelldaten[] =
|
||||||
{
|
{
|
||||||
SPL_DESTROY_MAGIC, "break_curse", NULL, NULL,
|
SPL_DESTROY_MAGIC, "break_curse", NULL, NULL,
|
||||||
"kcc",
|
"kcc",
|
||||||
M_ASTRAL, (FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE | ANYTARGET), 3, 7,
|
M_ASTRAL, (FARCASTING | SPELLLEVEL | ONSHIPCAST | TESTCANSEE | ANYTARGET), 3, 7,
|
||||||
{
|
{
|
||||||
{ "aura", 3, SPC_LEVEL },
|
{ "aura", 3, SPC_LEVEL },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8576,11 +8568,9 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_break_curse, NULL
|
(spell_f)sp_break_curse, NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_ETERNIZEWALL, "eternal_walls", NULL,
|
SPL_ETERNIZEWALL, "eternal_walls", NULL, NULL, "b",
|
||||||
"ZAUBERE \'Mauern der Ewigkeit\' <Gebaeude-Nr>",
|
|
||||||
"b",
|
|
||||||
M_ASTRAL,
|
M_ASTRAL,
|
||||||
(SPELLLEVEL | BUILDINGSPELL | ONETARGET | TESTRESISTANCE | ONSHIPCAST),
|
(SPELLLEVEL | BUILDINGSPELL | TESTRESISTANCE | ONSHIPCAST),
|
||||||
5, 7,
|
5, 7,
|
||||||
{
|
{
|
||||||
{ "aura", 50, SPC_FIX },
|
{ "aura", 50, SPC_FIX },
|
||||||
|
@ -8592,11 +8582,8 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_eternizewall, NULL
|
(spell_f)sp_eternizewall, NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_SCHILDRUNEN, "protective_runes", NULL,
|
SPL_SCHILDRUNEN, "protective_runes", NULL, NULL, "kc",
|
||||||
"ZAUBERE \'Runen des Schutzes\' GEBAEUDE <Gebaeude-Nr> | "
|
M_ASTRAL, (ONSHIPCAST | TESTRESISTANCE | BUILDINGSPELL | SHIPSPELL), 2, 8,
|
||||||
"SCHIFF <Schiff-Nr>]",
|
|
||||||
"kc",
|
|
||||||
M_ASTRAL, (ONSHIPCAST | TESTRESISTANCE), 2, 8,
|
|
||||||
{
|
{
|
||||||
{ "aura", 20, SPC_FIX },
|
{ "aura", 20, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
@ -8686,12 +8673,10 @@ static spelldata spelldaten[] =
|
||||||
(spell_f)sp_summon_familiar, NULL
|
(spell_f)sp_summon_familiar, NULL
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_MOVECASTLE, "living_rock",
|
SPL_MOVECASTLE, "living_rock", NULL, "direction",
|
||||||
NULL,
|
|
||||||
"ZAUBER [STUFE n] \'Belebtes Gestein\' <Burg-Nr> <Richtung>",
|
|
||||||
"bc",
|
"bc",
|
||||||
M_ASTRAL,
|
M_ASTRAL,
|
||||||
(SPELLLEVEL | BUILDINGSPELL | ONETARGET | TESTRESISTANCE),
|
(SPELLLEVEL | BUILDINGSPELL | TESTRESISTANCE),
|
||||||
5, 13,
|
5, 13,
|
||||||
{
|
{
|
||||||
{ "aura", 10, SPC_LEVEL },
|
{ "aura", 10, SPC_LEVEL },
|
||||||
|
@ -8717,9 +8702,8 @@ static spelldata spelldaten[] =
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
SPL_PERMTRANSFER, "sacrifice_strength", NULL,
|
SPL_PERMTRANSFER, "sacrifice_strength", NULL,
|
||||||
"ZAUBERE \'Opfere Kraft\' <Einheit-Nr> <Aura>",
|
"aura", "ui",
|
||||||
"ui",
|
M_ASTRAL, (UNITSPELL), 1, 15,
|
||||||
M_ASTRAL, (UNITSPELL|ONETARGET), 1, 15,
|
|
||||||
{
|
{
|
||||||
{ "aura", 100, SPC_FIX },
|
{ "aura", 100, SPC_FIX },
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
|
|
|
@ -7472,4 +7472,36 @@
|
||||||
<text locale="en">an incomplete road</text>
|
<text locale="en">an incomplete road</text>
|
||||||
</string>
|
</string>
|
||||||
|
|
||||||
|
<string name="par_unit">
|
||||||
|
<text locale="de">Einheit-Nr</text>
|
||||||
|
<text locale="en">unitid</text>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<string name="par_ship">
|
||||||
|
<text locale="de">Schiff-Nr</text>
|
||||||
|
<text locale="en">shipid</text>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<string name="par_building">
|
||||||
|
<text locale="de">Gebäude-Nr</text>
|
||||||
|
<text locale="en">buildingid</text>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<namespace name="spellpar">
|
||||||
|
<string name="aura">
|
||||||
|
<text locale="de">Aura</text>
|
||||||
|
<text locale="en">aura</text>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<string name="direction">
|
||||||
|
<text locale="de">Richtung</text>
|
||||||
|
<text locale="en">direction</text>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<string name="buildingtype">
|
||||||
|
<text locale="de">Gebäudetyp</text>
|
||||||
|
<text locale="en">buildingtype</text>
|
||||||
|
</string>
|
||||||
|
</namespace>
|
||||||
|
|
||||||
</strings>
|
</strings>
|
||||||
|
|
Loading…
Reference in a new issue