forked from github/server
Mehr const, weniger Warnungen.
Bugfix für spelllist_add (aufsteigend sortiert)
This commit is contained in:
parent
1771a81c52
commit
2602a8db67
|
@ -1403,7 +1403,7 @@ fighters(battle *b, fighter *af, int minrow, int maxrow, int mask)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
report_failed_spell(battle * b, unit * mage, spell * sp)
|
report_failed_spell(battle * b, unit * mage, const spell * sp)
|
||||||
{
|
{
|
||||||
message * m = msg_message("battle::spell_failed", "unit spell", mage, sp);
|
message * m = msg_message("battle::spell_failed", "unit spell", mage, sp);
|
||||||
message_all(b, m);
|
message_all(b, m);
|
||||||
|
@ -1414,7 +1414,6 @@ void
|
||||||
do_combatmagic(battle *b, combatmagic_t was)
|
do_combatmagic(battle *b, combatmagic_t was)
|
||||||
{
|
{
|
||||||
void **fi;
|
void **fi;
|
||||||
spell *sp;
|
|
||||||
region *r = b->region;
|
region *r = b->region;
|
||||||
castorder *co;
|
castorder *co;
|
||||||
castorder *cll[MAX_SPELLRANK];
|
castorder *cll[MAX_SPELLRANK];
|
||||||
|
@ -1435,6 +1434,7 @@ do_combatmagic(battle *b, combatmagic_t was)
|
||||||
level = eff_skill(mage, SK_MAGIC, r);
|
level = eff_skill(mage, SK_MAGIC, r);
|
||||||
if (level > 0) {
|
if (level > 0) {
|
||||||
double power;
|
double power;
|
||||||
|
const spell *sp;
|
||||||
const struct locale * lang = mage->faction->locale;
|
const struct locale * lang = mage->faction->locale;
|
||||||
char cmd[128];
|
char cmd[128];
|
||||||
order * ord;
|
order * ord;
|
||||||
|
@ -1489,7 +1489,7 @@ do_combatmagic(battle *b, combatmagic_t was)
|
||||||
for (spellrank = 0; spellrank < MAX_SPELLRANK; spellrank++) {
|
for (spellrank = 0; spellrank < MAX_SPELLRANK; spellrank++) {
|
||||||
for (co = cll[spellrank]; co; co = co->next) {
|
for (co = cll[spellrank]; co; co = co->next) {
|
||||||
fighter * fig = (fighter*)co->magician;
|
fighter * fig = (fighter*)co->magician;
|
||||||
spell * sp = co->sp;
|
const spell * sp = co->sp;
|
||||||
int level = co->level;
|
int level = co->level;
|
||||||
double power = co->force;
|
double power = co->force;
|
||||||
|
|
||||||
|
@ -1508,7 +1508,7 @@ do_combatmagic(battle *b, combatmagic_t was)
|
||||||
static void
|
static void
|
||||||
do_combatspell(troop at, int row)
|
do_combatspell(troop at, int row)
|
||||||
{
|
{
|
||||||
spell *sp;
|
const spell *sp;
|
||||||
fighter *fi = at.fighter;
|
fighter *fi = at.fighter;
|
||||||
unit *mage = fi->unit;
|
unit *mage = fi->unit;
|
||||||
battle *b = fi->side->battle;
|
battle *b = fi->side->battle;
|
||||||
|
|
|
@ -717,12 +717,10 @@ countspells(unit *u, int step)
|
||||||
* Parameter count ist dabei die Anzahl der bereits gezauberten Sprüche
|
* Parameter count ist dabei die Anzahl der bereits gezauberten Sprüche
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
spellcost(unit *u, spell * sp)
|
spellcost(unit *u, const spell * sp)
|
||||||
{
|
{
|
||||||
int k, aura = 0;
|
int k, aura = 0;
|
||||||
int count;
|
int count = countspells(u, 0);
|
||||||
|
|
||||||
count = countspells(u,0);
|
|
||||||
|
|
||||||
for (k = 0; k < MAXINGREDIENT; k++) {
|
for (k = 0; k < MAXINGREDIENT; k++) {
|
||||||
if (sp->komponenten[k][0] == R_AURA) {
|
if (sp->komponenten[k][0] == R_AURA) {
|
||||||
|
@ -741,7 +739,7 @@ spellcost(unit *u, spell * sp)
|
||||||
* niedrigstwertigen und sollte von den beiden anderen Typen
|
* niedrigstwertigen und sollte von den beiden anderen Typen
|
||||||
* überschrieben werden */
|
* überschrieben werden */
|
||||||
static int
|
static int
|
||||||
spl_costtyp(spell * sp)
|
spl_costtyp(const spell * sp)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
int costtyp = SPC_FIX;
|
int costtyp = SPC_FIX;
|
||||||
|
@ -769,7 +767,7 @@ spl_costtyp(spell * sp)
|
||||||
* generiert werden.
|
* generiert werden.
|
||||||
* */
|
* */
|
||||||
int
|
int
|
||||||
eff_spelllevel(unit *u, spell * sp, int cast_level, int range)
|
eff_spelllevel(unit *u, const spell * sp, int cast_level, int range)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
int maxlevel;
|
int maxlevel;
|
||||||
|
@ -824,7 +822,7 @@ eff_spelllevel(unit *u, spell * sp, int cast_level, int range)
|
||||||
* multipliziert.
|
* multipliziert.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
pay_spell(unit * u, spell * sp, int cast_level, int range)
|
pay_spell(unit * u, const spell * sp, int cast_level, int range)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
int resuse;
|
int resuse;
|
||||||
|
@ -891,7 +889,7 @@ knowsspell(const region * r, const unit * u, const spell * sp)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
boolean
|
boolean
|
||||||
cancast(unit * u, spell * sp, int level, int range, struct order * ord)
|
cancast(unit * u, const spell * sp, int level, int range, struct order * ord)
|
||||||
{
|
{
|
||||||
int k;
|
int k;
|
||||||
resource_t res;
|
resource_t res;
|
||||||
|
@ -968,7 +966,7 @@ cancast(unit * u, spell * sp, int level, int range, struct order * ord)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
double
|
double
|
||||||
spellpower(region * r, unit * u, spell * sp, int cast_level, struct order * ord)
|
spellpower(region * r, unit * u, const spell * sp, int cast_level, struct order * ord)
|
||||||
{
|
{
|
||||||
curse * c;
|
curse * c;
|
||||||
double force = cast_level;
|
double force = cast_level;
|
||||||
|
@ -1202,7 +1200,7 @@ is_magic_resistant(unit *magician, unit *target, int resist_bonus)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
boolean
|
boolean
|
||||||
fumble(region * r, unit * u, spell * sp, int cast_grade)
|
fumble(region * r, unit * u, const spell * sp, int cast_grade)
|
||||||
{
|
{
|
||||||
/* X ergibt Zahl zwischen 1 und 0, je kleiner, desto besser der Magier.
|
/* X ergibt Zahl zwischen 1 und 0, je kleiner, desto besser der Magier.
|
||||||
* 0,5*40-20=0, dh wenn der Magier doppelt so gut ist, wie der Spruch
|
* 0,5*40-20=0, dh wenn der Magier doppelt so gut ist, wie der Spruch
|
||||||
|
@ -1261,7 +1259,7 @@ do_fumble(castorder *co)
|
||||||
curse * c;
|
curse * c;
|
||||||
region * r = co->rt;
|
region * r = co->rt;
|
||||||
unit * u = (unit*)co->magician;
|
unit * u = (unit*)co->magician;
|
||||||
spell * sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
int level = co->level;
|
int level = co->level;
|
||||||
int duration;
|
int duration;
|
||||||
variant effect;
|
variant effect;
|
||||||
|
@ -1523,7 +1521,7 @@ static int
|
||||||
verify_targets(castorder *co)
|
verify_targets(castorder *co)
|
||||||
{
|
{
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
region *target_r = co->rt;
|
region *target_r = co->rt;
|
||||||
spellparameter *sa = co->par;
|
spellparameter *sa = co->par;
|
||||||
int failed = 0;
|
int failed = 0;
|
||||||
|
@ -1969,7 +1967,7 @@ add_spellparameter(region *target_r, unit *u, const char *syntax, char ** param,
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
|
|
||||||
castorder *
|
castorder *
|
||||||
new_castorder(void *u, unit *u2, spell *sp, region *r, int lev,
|
new_castorder(void *u, unit *u2, const spell *sp, region *r, int lev,
|
||||||
double force, int range, struct order * ord, spellparameter *p)
|
double force, int range, struct order * ord, spellparameter *p)
|
||||||
{
|
{
|
||||||
castorder *corder;
|
castorder *corder;
|
||||||
|
@ -2646,7 +2644,7 @@ magic(void)
|
||||||
int verify, cast_level = co->level;
|
int verify, cast_level = co->level;
|
||||||
boolean fumbled = false;
|
boolean fumbled = false;
|
||||||
unit * u = (unit *)co->magician;
|
unit * u = (unit *)co->magician;
|
||||||
spell * sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
region * target_r = co->rt;
|
region * target_r = co->rt;
|
||||||
|
|
||||||
/* reichen die Komponenten nicht, wird der Level reduziert. */
|
/* reichen die Komponenten nicht, wird der Level reduziert. */
|
||||||
|
@ -2746,7 +2744,7 @@ magic(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
spell_info(const struct spell * sp, const struct locale * lang)
|
spell_info(const spell * sp, const struct locale * lang)
|
||||||
{
|
{
|
||||||
if (sp->info==NULL) {
|
if (sp->info==NULL) {
|
||||||
return LOC(lang, mkname("spellinfo", sp->sname));
|
return LOC(lang, mkname("spellinfo", sp->sname));
|
||||||
|
@ -2755,7 +2753,7 @@ spell_info(const struct spell * sp, const struct locale * lang)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
spell_name(const struct spell * sp, const struct locale * lang)
|
spell_name(const spell * sp, const struct locale * lang)
|
||||||
{
|
{
|
||||||
if (sp->info==NULL) {
|
if (sp->info==NULL) {
|
||||||
return LOC(lang, mkname("spell", sp->sname));
|
return LOC(lang, mkname("spell", sp->sname));
|
||||||
|
@ -2766,7 +2764,20 @@ spell_name(const struct spell * sp, const struct locale * lang)
|
||||||
void
|
void
|
||||||
spelllist_add(spell_list ** lspells, spell * sp)
|
spelllist_add(spell_list ** lspells, spell * sp)
|
||||||
{
|
{
|
||||||
spell_list * entry = malloc(sizeof(spell_list));
|
spell_list * entry;
|
||||||
|
|
||||||
|
while (*lspells) {
|
||||||
|
spell_list * slist = *lspells;
|
||||||
|
if (slist->data->id==sp->id) {
|
||||||
|
if (slist->data==sp) {
|
||||||
|
log_error(("trying to add spell '%s' to a list twice.\n", sp->sname));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (slist->data->id>sp->id) break;
|
||||||
|
lspells = &slist->next;
|
||||||
|
}
|
||||||
|
entry = malloc(sizeof(spell_list));
|
||||||
entry->data = sp;
|
entry->data = sp;
|
||||||
entry->next = *lspells;
|
entry->next = *lspells;
|
||||||
*lspells = entry;
|
*lspells = entry;
|
||||||
|
|
|
@ -127,7 +127,7 @@ typedef struct castorder {
|
||||||
void *magician; /* Magier (kann vom Typ struct unit oder fighter sein) */
|
void *magician; /* Magier (kann vom Typ struct unit oder fighter sein) */
|
||||||
struct unit *familiar; /* Vertrauter, gesetzt, wenn der Spruch durch
|
struct unit *familiar; /* Vertrauter, gesetzt, wenn der Spruch durch
|
||||||
den Vertrauten gezaubert wird */
|
den Vertrauten gezaubert wird */
|
||||||
struct spell *sp; /* Spruch */
|
const struct spell *sp; /* Spruch */
|
||||||
int level; /* gewünschte Stufe oder Stufe des Magiers */
|
int level; /* gewünschte Stufe oder Stufe des Magiers */
|
||||||
double force; /* Stärke des Zaubers */
|
double force; /* Stärke des Zaubers */
|
||||||
struct region *rt; /* Zielregion des Spruchs */
|
struct region *rt; /* Zielregion des Spruchs */
|
||||||
|
@ -141,7 +141,7 @@ typedef void (*spell_f) (void*);
|
||||||
/* normale zauber: */
|
/* normale zauber: */
|
||||||
typedef int (*nspell_f)(castorder*);
|
typedef int (*nspell_f)(castorder*);
|
||||||
/* kampfzauber: */
|
/* kampfzauber: */
|
||||||
typedef int (*cspell_f) (struct fighter*, int, double, struct spell * sp);
|
typedef int (*cspell_f) (struct fighter*, int, double, const struct spell * sp);
|
||||||
/* zauber-patzer: */
|
/* zauber-patzer: */
|
||||||
typedef void (*pspell_f) (castorder *);
|
typedef void (*pspell_f) (castorder *);
|
||||||
|
|
||||||
|
@ -306,13 +306,13 @@ int change_maxspellpoints(struct unit * u, int csp);
|
||||||
/* verändert die maximalen Magiepunkte einer Einheit */
|
/* verändert die maximalen Magiepunkte einer Einheit */
|
||||||
|
|
||||||
/* Zaubern */
|
/* Zaubern */
|
||||||
extern double spellpower(struct region *r, struct unit *u, spell *spruch, int cast_level, struct order * ord);
|
extern double spellpower(struct region *r, struct unit *u, const spell *sp, int cast_level, struct order * ord);
|
||||||
/* ermittelt die Stärke eines Spruchs */
|
/* ermittelt die Stärke eines Spruchs */
|
||||||
boolean fumble (struct region *r, struct unit *u, spell *spruch, int cast_level);
|
boolean fumble (struct region *r, struct unit *u, const spell *sp, int cast_level);
|
||||||
/* true, wenn der Zauber misslingt, bei false gelingt der Zauber */
|
/* true, wenn der Zauber misslingt, bei false gelingt der Zauber */
|
||||||
|
|
||||||
/* */
|
/* */
|
||||||
castorder *new_castorder(void *u, struct unit *familiar, spell *sp, struct region *r,
|
castorder *new_castorder(void *u, struct unit *familiar, const spell *sp, struct region *r,
|
||||||
int lev, double force, int distance, struct order * ord, spellparameter *p);
|
int lev, double force, int distance, struct order * ord, spellparameter *p);
|
||||||
/* Zwischenspreicher für Zauberbefehle, notwendig für Prioritäten */
|
/* Zwischenspreicher für Zauberbefehle, notwendig für Prioritäten */
|
||||||
void add_castorder(castorder **cll, castorder *co);
|
void add_castorder(castorder **cll, castorder *co);
|
||||||
|
@ -324,18 +324,18 @@ void free_castorders(castorder *co);
|
||||||
int countspells(struct unit *u, int step);
|
int countspells(struct unit *u, int step);
|
||||||
/* erhöht den Counter für Zaubersprüche um 'step' und gibt die neue
|
/* erhöht den Counter für Zaubersprüche um 'step' und gibt die neue
|
||||||
* Anzahl der gezauberten Sprüche zurück. */
|
* Anzahl der gezauberten Sprüche zurück. */
|
||||||
int spellcost(struct unit *u, spell *spruch);
|
int spellcost(struct unit *u, const spell *sp);
|
||||||
/* gibt die für diesen Spruch derzeit notwendigen Magiepunkte auf der
|
/* gibt die für diesen Spruch derzeit notwendigen Magiepunkte auf der
|
||||||
* geringstmöglichen Stufe zurück, schon um den Faktor der bereits
|
* geringstmöglichen Stufe zurück, schon um den Faktor der bereits
|
||||||
* zuvor gezauberten Sprüche erhöht */
|
* zuvor gezauberten Sprüche erhöht */
|
||||||
boolean cancast (struct unit *u, spell *spruch, int eff_stufe, int distance, struct order * ord);
|
boolean cancast (struct unit *u, const spell *spruch, int eff_stufe, int distance, struct order * ord);
|
||||||
/* true, wenn Einheit alle Komponenten des Zaubers (incl. MP) für die
|
/* true, wenn Einheit alle Komponenten des Zaubers (incl. MP) für die
|
||||||
* geringstmögliche Stufe hat und den Spruch beherrscht */
|
* geringstmögliche Stufe hat und den Spruch beherrscht */
|
||||||
void pay_spell(struct unit *u, spell *spruch, int eff_stufe, int distance);
|
void pay_spell(struct unit *u, const spell *sp, int eff_stufe, int distance);
|
||||||
/* zieht die Komponenten des Zaubers aus dem Inventory der Einheit
|
/* zieht die Komponenten des Zaubers aus dem Inventory der Einheit
|
||||||
* ab. Die effektive Stufe des gezauberten Spruchs ist wichtig für
|
* ab. Die effektive Stufe des gezauberten Spruchs ist wichtig für
|
||||||
* die korrekte Bestimmung der Magiepunktkosten */
|
* die korrekte Bestimmung der Magiepunktkosten */
|
||||||
int eff_spelllevel(struct unit *u, spell * sp, int cast_level, int distance);
|
int eff_spelllevel(struct unit *u, const spell * sp, int cast_level, int distance);
|
||||||
/* ermittelt die effektive Stufe des Zaubers. Dabei ist cast_level
|
/* ermittelt die effektive Stufe des Zaubers. Dabei ist cast_level
|
||||||
* die gewünschte maximale Stufe (im Normalfall Stufe des Magiers,
|
* die gewünschte maximale Stufe (im Normalfall Stufe des Magiers,
|
||||||
* bei Farcasting Stufe*2^Entfernung) */
|
* bei Farcasting Stufe*2^Entfernung) */
|
||||||
|
|
|
@ -4248,7 +4248,7 @@ sp_migranten(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
||||||
|
@ -4553,7 +4553,7 @@ sp_pump(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
||||||
|
@ -4623,7 +4623,7 @@ sp_seduce(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
double force = co->force;
|
double force = co->force;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
|
@ -4706,7 +4706,7 @@ sp_calm_monster(castorder *co)
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
double force = co->force;
|
double force = co->force;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
variant effect;
|
variant effect;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
|
@ -5700,7 +5700,7 @@ sp_enterastral(castorder *co)
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
double power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
|
|
||||||
switch(getplaneid(r)) {
|
switch(getplaneid(r)) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -5815,7 +5815,7 @@ sp_pullastral(castorder *co)
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
double power = co->force;
|
double power = co->force;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
|
|
||||||
switch (getplaneid(r)) {
|
switch (getplaneid(r)) {
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -6483,7 +6483,7 @@ sp_permtransfer(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
||||||
|
@ -6533,7 +6533,7 @@ sp_movecastle(castorder *co)
|
||||||
unit *mage = (unit *)co->magician;
|
unit *mage = (unit *)co->magician;
|
||||||
int cast_level = co->level;
|
int cast_level = co->level;
|
||||||
spellparameter *pa = co->par;
|
spellparameter *pa = co->par;
|
||||||
spell *sp = co->sp;
|
const spell *sp = co->sp;
|
||||||
|
|
||||||
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
/* wenn kein Ziel gefunden, Zauber abbrechen */
|
||||||
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
if(pa->param[0]->flag == TARGET_NOTFOUND) return 0;
|
||||||
|
@ -7492,13 +7492,10 @@ spell_list * spells = NULL;
|
||||||
void
|
void
|
||||||
register_spell(spell * sp)
|
register_spell(spell * sp)
|
||||||
{
|
{
|
||||||
spell_list * slist = malloc(sizeof(spell_list));
|
|
||||||
slist->next = spells;
|
|
||||||
slist->data = sp;
|
|
||||||
if (sp->id==0) {
|
if (sp->id==0) {
|
||||||
sp->id = hashstring(sp->sname);
|
sp->id = hashstring(sp->sname);
|
||||||
}
|
}
|
||||||
spells = slist;
|
spelllist_add(&spells, sp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** versucht einen Spruch über gebiet + bame zu identifizieren.
|
/** versucht einen Spruch über gebiet + bame zu identifizieren.
|
||||||
|
|
Loading…
Reference in New Issue