- strtok() Benutzung aus add_spellparameter raus, weil Parameter jetzt aus mehr als einem token bestehen können (wegen quotes).

This commit is contained in:
Enno Rehling 2004-07-03 07:42:55 +00:00
parent f0f97913e9
commit 11bff85cff
5 changed files with 343 additions and 618 deletions

View File

@ -108,8 +108,6 @@ struct building_type;
#define MONSTER_FACTION 0 /* Die Partei, in der die Monster sind. */ #define MONSTER_FACTION 0 /* Die Partei, in der die Monster sind. */
#define FULL_BASE36
/** /**
* heaps and heaps of unsupported versions: * heaps and heaps of unsupported versions:
#define RACES_VERSION 91 #define RACES_VERSION 91

File diff suppressed because it is too large Load Diff

View File

@ -42,22 +42,19 @@ struct building;
/* siehe auch typ_t in objtypes.h */ /* siehe auch typ_t in objtypes.h */
typedef enum { typedef enum {
SPP_UNIT, /* "u" : getunit() -> *unit */
SPP_REGION, /* "r" : findregion(x,y) -> *region */ SPP_REGION, /* "r" : findregion(x,y) -> *region */
SPP_BUILDING, /* "b" : findbuilding() -> *building */ SPP_UNIT, /* - : atoi36() -> int */
SPP_SHIP, /* "s" : findship() -> *ship */ SPP_TEMP, /* - : temp einheit */
SPP_UNIT_ID, /* - : atoi36() -> int */ SPP_BUILDING, /* - : atoi() -> int */
SPP_BUILDING_ID, /* - : atoi() -> int */ SPP_SHIP, /* - : atoi() -> int */
SPP_SHIP_ID, /* - : atoi() -> int */
SPP_STRING, /* "c" */ SPP_STRING, /* "c" */
SPP_INT, /* "i" : atoi() -> int */ SPP_INT, /* "i" : atoi() -> int */
SPP_TUNIT_ID /* - : temp einheit */
} sppobj_t; } sppobj_t;
typedef struct spllprm{ typedef struct spllprm{
sppobj_t typ; sppobj_t typ;
int flag; int flag;
union{ union {
struct region *r; struct region *r;
struct unit *u; struct unit *u;
struct building *b; struct building *b;

View File

@ -707,6 +707,7 @@ sp_destroy_magic(castorder *co)
strcpy(ts, regionid(tr)); strcpy(ts, regionid(tr));
break; break;
} }
case SPP_TEMP:
case SPP_UNIT: case SPP_UNIT:
{ {
unit *u; unit *u;
@ -5647,6 +5648,7 @@ sp_analysemagic(castorder *co)
magicanalyse_region(tr, mage, cast_level); magicanalyse_region(tr, mage, cast_level);
break; break;
} }
case SPP_TEMP:
case SPP_UNIT: case SPP_UNIT:
{ {
unit *u; unit *u;
@ -7056,6 +7058,7 @@ sp_q_antimagie(castorder *co)
set_string(&ts, regionid(r)); set_string(&ts, regionid(r));
break; break;
case SPP_TEMP:
case SPP_UNIT: case SPP_UNIT:
{ {
unit *u = pa->param[0]->data.u; unit *u = pa->param[0]->data.u;
@ -7149,6 +7152,7 @@ sp_destroy_curse(castorder *co)
set_string(&ts, regionname(r, mage->faction)); set_string(&ts, regionname(r, mage->faction));
break; break;
case SPP_TEMP:
case SPP_UNIT: case SPP_UNIT:
{ {
unit *u = pa->param[0]->data.u; unit *u = pa->param[0]->data.u;
@ -7579,10 +7583,6 @@ patzer_createitem(castorder *co)
* + : gibt an, das der vorherige Parameter mehrfach vorkommen kann. Da * + : gibt an, das der vorherige Parameter mehrfach vorkommen kann. Da
* ein Ende nicht definiert werden kann, muss dies immer am Schluss * ein Ende nicht definiert werden kann, muss dies immer am Schluss
* kommen. * kommen.
* ? : gibt an, das der folgende Parameter optional ist. Da nicht
* definiert werden kann, ob wirklich ein Parameter nachfolgt oder
* etwas anderes, muss dies immer als vorletztes Zeichen stehen und
* darf nicht direkt von einem + gefolgt werden.
* *
* Flags für das Parsing: * Flags für das Parsing:
* TESTRESISTANCE : alle Zielobjekte, also alle Parameter vom Typ Unit, * TESTRESISTANCE : alle Zielobjekte, also alle Parameter vom Typ Unit,