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++; par->length++;
token = strtok(NULL, " "); 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!) */ 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 */ /* Fehler: Ziel vergessen */
cmistake(u, strdup(s), 203, MSG_MAGIC); cmistake(u, strdup(s), 203, MSG_MAGIC);
/* Aufräumen */ /* Aufräumen */
@ -1966,13 +1970,15 @@ add_spellparameter(region *target_r, unit *u, const char *syntax,
strcpy(tbuf, s); strcpy(tbuf, s);
token = strtok (tbuf, " "); token = strtok (tbuf, " ");
while(token && syntax[c] != 0) { while(token && syntax[c] != 0) {
if (i > skip) { if (i >= skip) {
if (syntax[c] == '+') { 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--; c--;
} }
if (syntax[c] == '?') { if (syntax[c] == '?') {
/* optionales Element vom Typ des nachfolgenden Zeichen */ /* optionales Element vom Typ des nachfolgenden Zeichen, wir
* gehen ein Element weiter */
c++; c++;
} }
spobj = calloc(1, sizeof(spllprm)); spobj = calloc(1, sizeof(spllprm));
@ -2885,8 +2891,9 @@ magic(void)
} }
/* Weitere Argumente zusammenbasten */ /* Weitere Argumente zusammenbasten */
if (sp->parameter) { if (sp->parameter) {
++skiptokens;
args = add_spellparameter(target_r, mage, sp->parameter, args = add_spellparameter(target_r, mage, sp->parameter,
so->s, skiptokens++); so->s, skiptokens);
if (!args) { if (!args) {
/* Syntax war falsch */ /* Syntax war falsch */
continue; continue;

View File

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

View File

@ -400,8 +400,8 @@ herbfound;production:2;de;{unit} in {region} findet {amount} {herb}.
msg_economy;economy:0;de;{string} msg_economy;economy:0;de;{string}
give;economy:0;de;{unit} übergibt {amount} {resource} an {target}. give;economy:0;de;{unit} übergibt {amount} {resource} an {target}.
income;economy:0;de;{unit} verdient in {region} {amount} {$of wanted}. 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;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} 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;economy:3;de;{unit} klaut in {region} {amount} Silber.
income_steal_reduced;economy:1;de;{unit} klaut in {region} {amount} statt {wanted} 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. income_magic;economy:3;de;{unit} verdient in {region} {amount} Silber durch Zauberei.