letzte updates aus der beta-version in die neue

This commit is contained in:
Enno Rehling 2001-05-17 16:37:54 +00:00
parent b737838e60
commit 55eb4270e0
3 changed files with 15 additions and 7 deletions

View File

@ -1948,9 +1948,13 @@ add_spellparameter(region *target_r, unit *u, const char *syntax,
par->length++;
token = strtok(NULL, " ");
}
/* length sollte nun nur noch die Anzahl der für den Zauber relevanten
* Elemente enthalten */
par->length -= skip; /* Anzahl der Elemente ('temp 123' sind zwei!) */
if (par->length < 2) {
/* mindestens ein Ziel (Ziellose Zauber werden nicht
* geparst) */
if (par->length < 1) {
/* Fehler: Ziel vergessen */
cmistake(u, strdup(s), 203, MSG_MAGIC);
/* Aufräumen */
@ -1966,13 +1970,15 @@ add_spellparameter(region *target_r, unit *u, const char *syntax,
strcpy(tbuf, s);
token = strtok (tbuf, " ");
while(token && syntax[c] != 0) {
if (i > skip) {
if (i >= skip) {
if (syntax[c] == '+') {
/* das vorhergehende Element kommt ein oder mehrmals vor */
/* das vorhergehende Element kommt ein oder mehrmals vor, wir
* springen zum key zurück */
c--;
}
if (syntax[c] == '?') {
/* optionales Element vom Typ des nachfolgenden Zeichen */
/* optionales Element vom Typ des nachfolgenden Zeichen, wir
* gehen ein Element weiter */
c++;
}
spobj = calloc(1, sizeof(spllprm));
@ -2885,8 +2891,9 @@ magic(void)
}
/* Weitere Argumente zusammenbasten */
if (sp->parameter) {
++skiptokens;
args = add_spellparameter(target_r, mage, sp->parameter,
so->s, skiptokens++);
so->s, skiptokens);
if (!args) {
/* Syntax war falsch */
continue;

View File

@ -104,6 +104,7 @@ addtoken(tnode * root, const char* str, void * id)
int
findtoken(const tnode * tk, const char * str, void **result)
{
if (!str) return E_TOK_NOMATCH;
if (*str == 0) return E_TOK_NOMATCH;
while (*str) {

View File

@ -400,8 +400,8 @@ herbfound;production:2;de;{unit} in {region} findet {amount} {herb}.
msg_economy;economy:0;de;{string}
give;economy:0;de;{unit} übergibt {amount} {resource} an {target}.
income;economy:0;de;{unit} verdient in {region} {amount} {$of wanted}.
income_tax;economy:4;de;{unit} treibt in {region} {amount} Steuern ein.
income_tax_reduced;economy:2;de;{unit} treibt in {region} {amount} statt {wanted} Steuern ein.
income_tax;economy:4;de;{unit} treibt in {region} {amount} Silber an Steuern ein.
income_tax_reduced;economy:2;de;{unit} treibt in {region} {amount} statt {wanted} Silber an Steuern ein.
income_steal;economy:3;de;{unit} klaut in {region} {amount} Silber.
income_steal_reduced;economy:1;de;{unit} klaut in {region} {amount} statt {wanted} Silber.
income_magic;economy:3;de;{unit} verdient in {region} {amount} Silber durch Zauberei.