forked from github/server
Zauber mit REGION als letztem Parameter beschwerten sich ueber fehlende Parameter.
This commit is contained in:
parent
03b2543d30
commit
c580b96da8
|
@ -1862,7 +1862,13 @@ add_spellparameter(region *target_r, unit *u, const char *syntax, char ** param,
|
||||||
int minlen = 0;
|
int minlen = 0;
|
||||||
|
|
||||||
for (c=syntax;*c!=0;++c) {
|
for (c=syntax;*c!=0;++c) {
|
||||||
if (*c!='+' && *c!='k') ++minlen;
|
/* this makes sure that:
|
||||||
|
* minlen("kc?") = 0
|
||||||
|
* minlen("kc+") = 1
|
||||||
|
* minlen("cccc+c?") = 4
|
||||||
|
*/
|
||||||
|
if (*c=='?') --minlen;
|
||||||
|
else if (*c!='+' && *c!='k') ++minlen;
|
||||||
}
|
}
|
||||||
c = syntax;
|
c = syntax;
|
||||||
|
|
||||||
|
@ -1883,78 +1889,84 @@ add_spellparameter(region *target_r, unit *u, const char *syntax, char ** param,
|
||||||
param_t pword;
|
param_t pword;
|
||||||
int j = -1;
|
int j = -1;
|
||||||
switch (*c) {
|
switch (*c) {
|
||||||
case '+':
|
case '?':
|
||||||
/* das vorhergehende Element kommt ein oder mehrmals vor, wir
|
/* tja. das sollte moeglichst nur am Ende passieren,
|
||||||
* springen zum key zurück */
|
* weil sonst die kacke dampft. */
|
||||||
j = 0;
|
++c;
|
||||||
--c;
|
assert(*c==0);
|
||||||
break;
|
break;
|
||||||
case 'u':
|
case '+':
|
||||||
/* Parameter ist eine Einheit, evtl. TEMP */
|
/* das vorhergehende Element kommt ein oder mehrmals vor, wir
|
||||||
j = addparam_unit(param+i, &spobj, u, ord);
|
* springen zum key zurück */
|
||||||
++c;
|
j = 0;
|
||||||
break;
|
--c;
|
||||||
case 'r':
|
break;
|
||||||
/* Parameter sind zwei Regionskoordinaten */
|
case 'u':
|
||||||
j = addparam_region(param+i, &spobj, u, ord);
|
/* Parameter ist eine Einheit, evtl. TEMP */
|
||||||
++c;
|
j = addparam_unit(param+i, &spobj, u, ord);
|
||||||
break;
|
++c;
|
||||||
case 'b':
|
break;
|
||||||
/* Parameter ist eine Burgnummer */
|
case 'r':
|
||||||
j = addparam_building(param+i, &spobj);
|
/* Parameter sind zwei Regionskoordinaten */
|
||||||
++c;
|
j = addparam_region(param+i, &spobj, u, ord);
|
||||||
break;
|
++c;
|
||||||
case 's':
|
break;
|
||||||
j = addparam_ship(param+i, &spobj);
|
case 'b':
|
||||||
++c;
|
/* Parameter ist eine Burgnummer */
|
||||||
break;
|
j = addparam_building(param+i, &spobj);
|
||||||
case 'c':
|
++c;
|
||||||
/* Text, wird im Spruch ausgewertet */
|
break;
|
||||||
j = addparam_string(param+i, &spobj);
|
case 's':
|
||||||
++c;
|
j = addparam_ship(param+i, &spobj);
|
||||||
break;
|
++c;
|
||||||
case 'i': /* Zahl */
|
break;
|
||||||
j = addparam_int(param+i, &spobj);
|
case 'c':
|
||||||
++c;
|
/* Text, wird im Spruch ausgewertet */
|
||||||
break;
|
j = addparam_string(param+i, &spobj);
|
||||||
case 'k':
|
++c;
|
||||||
++c;
|
break;
|
||||||
pword = findparam(param[i++], u->faction->locale);
|
case 'i': /* Zahl */
|
||||||
switch (pword) {
|
j = addparam_int(param+i, &spobj);
|
||||||
case P_REGION:
|
++c;
|
||||||
spobj = malloc(sizeof(spllprm));
|
break;
|
||||||
spobj->flag = 0;
|
case 'k':
|
||||||
spobj->typ = SPP_REGION;
|
++c;
|
||||||
spobj->data.r = u->region;
|
pword = findparam(param[i++], u->faction->locale);
|
||||||
j = 0;
|
switch (pword) {
|
||||||
++c;
|
case P_REGION:
|
||||||
break;
|
spobj = malloc(sizeof(spllprm));
|
||||||
case P_UNIT:
|
spobj->flag = 0;
|
||||||
if (i<size) {
|
spobj->typ = SPP_REGION;
|
||||||
j = addparam_unit(param+i, &spobj, u, ord);
|
spobj->data.r = u->region;
|
||||||
++c;
|
j = 0;
|
||||||
}
|
++c;
|
||||||
break;
|
break;
|
||||||
case P_BUILDING:
|
case P_UNIT:
|
||||||
case P_GEBAEUDE:
|
if (i<size) {
|
||||||
if (i<size) {
|
j = addparam_unit(param+i, &spobj, u, ord);
|
||||||
j = addparam_building(param+i, &spobj);
|
++c;
|
||||||
++c;
|
}
|
||||||
}
|
break;
|
||||||
break;
|
case P_BUILDING:
|
||||||
case P_SHIP:
|
case P_GEBAEUDE:
|
||||||
if (i<size) {
|
if (i<size) {
|
||||||
j = addparam_ship(param+i, &spobj);
|
j = addparam_building(param+i, &spobj);
|
||||||
++c;
|
++c;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
case P_SHIP:
|
||||||
j = -1;
|
if (i<size) {
|
||||||
break;
|
j = addparam_ship(param+i, &spobj);
|
||||||
}
|
++c;
|
||||||
break;
|
}
|
||||||
default:
|
break;
|
||||||
j = -1;
|
default:
|
||||||
|
j = -1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
j = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (j<0) fail = true;
|
if (j<0) fail = true;
|
||||||
|
|
|
@ -8041,7 +8041,7 @@ static spell spelldaten[] =
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Geister bannen\' EINHEIT <Einheit-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Geister bannen\' EINHEIT <Einheit-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Geister bannen\' GEBÄUDE <Gebäude-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Geister bannen\' GEBÄUDE <Gebäude-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Geister bannen\' SCHIFF <Schiff-Nr>",
|
"ZAUBERE [REGION x y] [STUFE n] \'Geister bannen\' SCHIFF <Schiff-Nr>",
|
||||||
"kc",
|
"kc?",
|
||||||
M_DRUIDE,
|
M_DRUIDE,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
||||||
2, 8,
|
2, 8,
|
||||||
|
@ -8522,7 +8522,7 @@ static spell spelldaten[] =
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Pentagramm\' EINHEIT <Einheit-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Pentagramm\' EINHEIT <Einheit-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Pentagramm\' GEBÄUDE <Gebäude-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Pentagramm\' GEBÄUDE <Gebäude-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Pentagramm\' SCHIFF <Schiff-Nr>",
|
"ZAUBERE [REGION x y] [STUFE n] \'Pentagramm\' SCHIFF <Schiff-Nr>",
|
||||||
"kc",
|
"kc?",
|
||||||
M_CHAOS,
|
M_CHAOS,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
||||||
2, 10,
|
2, 10,
|
||||||
|
@ -8877,7 +8877,7 @@ static spell spelldaten[] =
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Traumbilder entwirren\' EINHEIT <Einheit-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Traumbilder entwirren\' EINHEIT <Einheit-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Traumbilder entwirren\' GEBÄUDE <Gebäude-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Traumbilder entwirren\' GEBÄUDE <Gebäude-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Traumbilder entwirren\' SCHIFF <Schiff-Nr>",
|
"ZAUBERE [REGION x y] [STUFE n] \'Traumbilder entwirren\' SCHIFF <Schiff-Nr>",
|
||||||
"kc",
|
"kc?",
|
||||||
M_TRAUM,
|
M_TRAUM,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
||||||
2, 8,
|
2, 8,
|
||||||
|
@ -9354,7 +9354,7 @@ static spell spelldaten[] =
|
||||||
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' REGION\n"
|
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' REGION\n"
|
||||||
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' GEBÄUDE <Gebäude-nr>\n"
|
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' GEBÄUDE <Gebäude-nr>\n"
|
||||||
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' SCHIFF <Schiff-nr>",
|
"ZAUBERE [STUFE n] \'Lied des Ortes analysieren\' SCHIFF <Schiff-nr>",
|
||||||
"kc",
|
"kc?",
|
||||||
M_BARDE, (SPELLLEVEL|ONSHIPCAST), 5, 8,
|
M_BARDE, (SPELLLEVEL|ONSHIPCAST), 5, 8,
|
||||||
{
|
{
|
||||||
{ R_AURA, 3, SPC_LEVEL },
|
{ R_AURA, 3, SPC_LEVEL },
|
||||||
|
@ -9374,7 +9374,7 @@ static spell spelldaten[] =
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Lebenslied festigen\' EINHEIT <Einheit-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Lebenslied festigen\' EINHEIT <Einheit-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Lebenslied festigen\' GEBÄUDE <Gebäude-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Lebenslied festigen\' GEBÄUDE <Gebäude-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Lebenslied festigen\' SCHIFF <Schiff-Nr>",
|
"ZAUBERE [REGION x y] [STUFE n] \'Lebenslied festigen\' SCHIFF <Schiff-Nr>",
|
||||||
"kc",
|
"kc?",
|
||||||
M_BARDE,
|
M_BARDE,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
||||||
2, 8,
|
2, 8,
|
||||||
|
@ -9612,7 +9612,7 @@ static spell spelldaten[] =
|
||||||
"ZAUBERE [STUFE n] \'Magie analysieren\' EINHEIT <Einheit-Nr>\n"
|
"ZAUBERE [STUFE n] \'Magie analysieren\' EINHEIT <Einheit-Nr>\n"
|
||||||
"ZAUBERE [STUFE n] \'Magie analysieren\' GEBÄUDE <Gebäude-Nr>\n"
|
"ZAUBERE [STUFE n] \'Magie analysieren\' GEBÄUDE <Gebäude-Nr>\n"
|
||||||
"ZAUBERE [STUFE n] \'Magie analysieren\' SCHIFF <Schiff-Nr>",
|
"ZAUBERE [STUFE n] \'Magie analysieren\' SCHIFF <Schiff-Nr>",
|
||||||
"kc",
|
"kc?",
|
||||||
M_ASTRAL, (SPELLLEVEL | UNITSPELL | ONSHIPCAST | TESTCANSEE), 5, 1,
|
M_ASTRAL, (SPELLLEVEL | UNITSPELL | ONSHIPCAST | TESTCANSEE), 5, 1,
|
||||||
{
|
{
|
||||||
{ R_AURA, 1, SPC_LEVEL },
|
{ R_AURA, 1, SPC_LEVEL },
|
||||||
|
@ -9830,7 +9830,7 @@ static spell spelldaten[] =
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Magiefresser\' EINHEIT <Einheit-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Magiefresser\' EINHEIT <Einheit-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Magiefresser\' GEBÄUDE <Gebäude-Nr>\n"
|
"ZAUBERE [REGION x y] [STUFE n] \'Magiefresser\' GEBÄUDE <Gebäude-Nr>\n"
|
||||||
"ZAUBERE [REGION x y] [STUFE n] \'Magiefresser\' SCHIFF <Schiff-Nr>",
|
"ZAUBERE [REGION x y] [STUFE n] \'Magiefresser\' SCHIFF <Schiff-Nr>",
|
||||||
"kc",
|
"kc?",
|
||||||
M_ASTRAL,
|
M_ASTRAL,
|
||||||
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
(FARCASTING | SPELLLEVEL | ONSHIPCAST | ONETARGET | TESTCANSEE),
|
||||||
2, 5,
|
2, 5,
|
||||||
|
|
Loading…
Reference in New Issue