diff --git a/src/spells/combatspells.c b/src/spells/combatspells.c index 280e2b271..0493c3821 100644 --- a/src/spells/combatspells.c +++ b/src/spells/combatspells.c @@ -106,8 +106,12 @@ static double get_force(double power, int formel) } /* Generischer Kampfzauber */ -int sp_kampfzauber(fighter * fi, int level, double power, spell * sp) +int sp_kampfzauber(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; troop at, dt; message *m; @@ -165,8 +169,12 @@ int sp_kampfzauber(fighter * fi, int level, double power, spell * sp) } /* Versteinern */ -int sp_petrify(fighter * fi, int level, double power, spell * sp) +int sp_petrify(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; /* Wirkt auf erste und zweite Reihe */ @@ -205,8 +213,12 @@ int sp_petrify(fighter * fi, int level, double power, spell * sp) } /* Benommenheit: eine Runde kein Angriff */ -int sp_stun(fighter * fi, int level, double power, spell * sp) +int sp_stun(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; message *m; @@ -273,8 +285,12 @@ static void scramble_fighters(quicklist * ql) } /* Rosthauch */ -int sp_combatrosthauch(fighter * fi, int level, double power, spell * sp) +int sp_combatrosthauch(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; quicklist *ql, *fgs; int force = lovar(power * 15); @@ -360,8 +376,12 @@ int sp_combatrosthauch(fighter * fi, int level, double power, spell * sp) return level; } -int sp_sleep(fighter * fi, int level, double power, spell * sp) +int sp_sleep(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; unit *du; @@ -398,8 +418,11 @@ int sp_sleep(fighter * fi, int level, double power, spell * sp) return level; } -int sp_speed(fighter * fi, int level, double power, spell * sp) +int sp_speed(struct castorder * co) { + fighter * fi = co->magician.fig; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; int force; int allies; @@ -476,8 +499,12 @@ static skill_t random_skill(unit * u, boolean weighted) /** The mind blast spell for regular folks. * This spell temporarily reduces the skill of the victims */ -int sp_mindblast_temp(fighter * fi, int level, double power, spell * sp) +int sp_mindblast_temp(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; int k = 0, reset = 0, maxloss = (level + 2) / 3; @@ -538,8 +565,12 @@ int sp_mindblast_temp(fighter * fi, int level, double power, spell * sp) * This spell PERMANENTLY reduces the skill of the victims or kills them * when they have no skills left. Not currently in use. */ -int sp_mindblast(fighter * fi, int level, double power, spell * sp) +int sp_mindblast(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; int killed = 0, k = 0, reset = 0; @@ -605,8 +636,12 @@ int sp_mindblast(fighter * fi, int level, double power, spell * sp) return level; } -int sp_dragonodem(fighter * fi, int level, double power, spell * sp) +int sp_dragonodem(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; troop dt; troop at; @@ -651,8 +686,11 @@ int sp_dragonodem(fighter * fi, int level, double power, spell * sp) /* Feuersturm: Betrifft sehr viele Gegner (in der Regel alle), * macht nur vergleichsweise geringen Schaden */ -int sp_immolation(fighter * fi, int level, double power, spell * sp) +int sp_immolation(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + const spell * sp = co->sp; battle *b = fi->side->battle; troop at; int force, qi, killed = 0; @@ -752,8 +790,12 @@ int sp_drainodem(fighter * fi, int level, double power, spell * sp) /* ------------------------------------------------------------- */ /* PRECOMBAT */ -int sp_shadowcall(fighter * fi, int level, double power, spell * sp) +int sp_shadowcall(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; region *r = b->region; unit *mage = fi->unit; @@ -787,8 +829,12 @@ int sp_shadowcall(fighter * fi, int level, double power, spell * sp) return level; } -int sp_wolfhowl(fighter * fi, int level, double power, spell * sp) +int sp_wolfhowl(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; region *r = b->region; unit *mage = fi->unit; @@ -827,8 +873,12 @@ int sp_wolfhowl(fighter * fi, int level, double power, spell * sp) return level; } -int sp_shadowknights(fighter * fi, int level, double power, spell * sp) +int sp_shadowknights(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; unit *u; battle *b = fi->side->battle; region *r = b->region; @@ -864,8 +914,12 @@ int sp_shadowknights(fighter * fi, int level, double power, spell * sp) return level; } -int sp_strong_wall(fighter * fi, int level, double power, spell * sp) +int sp_strong_wall(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; building *burg; @@ -899,8 +953,12 @@ int sp_strong_wall(fighter * fi, int level, double power, spell * sp) /** Spells: chaosrow / song of confusion. * German Title: 'Gesang der Verwirrung' */ -int sp_chaosrow(fighter * fi, int level, double power, spell * sp) +int sp_chaosrow(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; quicklist *fgs, *ql; @@ -984,8 +1042,12 @@ int sp_chaosrow(fighter * fi, int level, double power, spell * sp) /* Gesang der Furcht (Kampfzauber) */ /* Panik (Präkampfzauber) */ -int sp_flee(fighter * fi, int level, double power, spell * sp) +int sp_flee(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; quicklist *fgs, *ql; @@ -1048,8 +1110,12 @@ int sp_flee(fighter * fi, int level, double power, spell * sp) } /* Heldenmut */ -int sp_hero(fighter * fi, int level, double power, spell * sp) +int sp_hero(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; int df_bonus = 0; int force = 0; @@ -1097,8 +1163,12 @@ int sp_hero(fighter * fi, int level, double power, spell * sp) return level; } -int sp_berserk(fighter * fi, int level, double power, spell * sp) +int sp_berserk(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; int at_bonus = 0; int df_malus = 0; @@ -1151,8 +1221,12 @@ int sp_berserk(fighter * fi, int level, double power, spell * sp) return level; } -int sp_frighten(fighter * fi, int level, double power, spell * sp) +int sp_frighten(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; int at_malus = 0; @@ -1204,8 +1278,12 @@ int sp_frighten(fighter * fi, int level, double power, spell * sp) return level; } -int sp_tiredsoldiers(fighter * fi, int level, double power, spell * sp) +int sp_tiredsoldiers(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; int n = 0; @@ -1245,8 +1323,12 @@ int sp_tiredsoldiers(fighter * fi, int level, double power, spell * sp) return level; } -int sp_windshield(fighter * fi, int level, double power, spell * sp) +int sp_windshield(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; int force, at_malus; int enemies; @@ -1292,8 +1374,12 @@ int sp_windshield(fighter * fi, int level, double power, spell * sp) return level; } -int sp_reeling_arrows(fighter * fi, int level, double power, spell * sp) +int sp_reeling_arrows(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; message *m; @@ -1306,11 +1392,15 @@ int sp_reeling_arrows(fighter * fi, int level, double power, spell * sp) return level; } -int sp_denyattack(fighter * fi, int level, double power, spell * sp) -{ /* Magier weicht dem Kampf aus. Wenn er sich bewegen kann, zieht er in * eine Nachbarregion, wobei ein NACH berücksichtigt wird. Ansonsten * bleibt er stehen und nimmt nicht weiter am Kampf teil. */ +int sp_denyattack(struct castorder * co) +{ + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; unit *mage = fi->unit; region *r = b->region; @@ -1352,8 +1442,12 @@ static void do_meffect(fighter * af, int typ, int effect, int duration) me->duration = duration; } -int sp_armorshield(fighter * fi, int level, double power, spell * sp) +int sp_armorshield(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; int effect; int duration; battle *b = fi->side->battle; @@ -1378,8 +1472,12 @@ int sp_armorshield(fighter * fi, int level, double power, spell * sp) return level; } -int sp_reduceshield(fighter * fi, int level, double power, spell * sp) +int sp_reduceshield(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; int effect; int duration; battle *b = fi->side->battle; @@ -1404,8 +1502,11 @@ int sp_reduceshield(fighter * fi, int level, double power, spell * sp) return level; } -int sp_fumbleshield(fighter * fi, int level, double power, spell * sp) +int sp_fumbleshield(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + const spell * sp = co->sp; int effect; int duration; battle *b = fi->side->battle; @@ -1450,8 +1551,11 @@ static int count_healable(battle * b, fighter * df) } /* wiederbeleben */ -int sp_reanimate(fighter * fi, int level, double power, spell * sp) +int sp_reanimate(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; battle *b = fi->side->battle; unit *mage = fi->unit; int healable, j = 0; @@ -1506,8 +1610,12 @@ int sp_reanimate(fighter * fi, int level, double power, spell * sp) return level; } -int sp_keeploot(fighter * fi, int level, double power, spell * sp) +int sp_keeploot(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; + const spell * sp = co->sp; battle *b = fi->side->battle; message *m = msg_message("cast_spell_effect", "mage spell", fi->unit, sp); @@ -1561,8 +1669,11 @@ static int heal_fighters(quicklist * fgs, int *power, boolean heal_monsters) return healed; } -int sp_healing(fighter * fi, int level, double power, spell * sp) +int sp_healing(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; battle *b = fi->side->battle; unit *mage = fi->unit; int j = 0; @@ -1603,8 +1714,11 @@ int sp_healing(fighter * fi, int level, double power, spell * sp) return level; } -int sp_undeadhero(fighter * fi, int level, double power, spell * sp) +int sp_undeadhero(struct castorder * co) { + fighter * fi = co->magician.fig; + int level = co->level; + double power = co->force; battle *b = fi->side->battle; unit *mage = fi->unit; region *r = b->region; diff --git a/src/spells/combatspells.h b/src/spells/combatspells.h index 27683e953..9ff3e2e2b 100644 --- a/src/spells/combatspells.h +++ b/src/spells/combatspells.h @@ -20,66 +20,36 @@ extern "C" { struct fighter; /* Kampfzauber */ - extern int sp_fumbleshield(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_shadowknights(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_combatrosthauch(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_kampfzauber(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_healing(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_keeploot(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_reanimate(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_chaosrow(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_flee(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_berserk(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_tiredsoldiers(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_reeling_arrows(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_denyattack(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_sleep(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_windshield(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_strong_wall(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_petrify(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_hero(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_frighten(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_mindblast(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_mindblast_temp(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_speed(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_wolfhowl(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_dragonodem(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_reduceshield(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_armorshield(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_stun(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_undeadhero(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_shadowcall(struct fighter *fi, int level, double power, - struct spell *sp); - extern int sp_immolation(struct fighter *fi, int level, double power, - struct spell *sp); + extern int sp_fumbleshield(struct castorder * co); + extern int sp_shadowknights(struct castorder * co); + extern int sp_combatrosthauch(struct castorder * co); + extern int sp_kampfzauber(struct castorder * co); + extern int sp_healing(struct castorder * co); + extern int sp_keeploot(struct castorder * co); + extern int sp_reanimate(struct castorder * co); + extern int sp_chaosrow(struct castorder * co); + extern int sp_flee(struct castorder * co); + extern int sp_berserk(struct castorder * co); + extern int sp_tiredsoldiers(struct castorder * co); + extern int sp_reeling_arrows(struct castorder * co); + extern int sp_denyattack(struct castorder * co); + extern int sp_sleep(struct castorder * co); + extern int sp_windshield(struct castorder * co); + extern int sp_strong_wall(struct castorder * co); + extern int sp_petrify(struct castorder * co); + extern int sp_hero(struct castorder * co); + extern int sp_frighten(struct castorder * co); + extern int sp_mindblast(struct castorder * co); + extern int sp_mindblast_temp(struct castorder * co); + extern int sp_speed(struct castorder * co); + extern int sp_wolfhowl(struct castorder * co); + extern int sp_dragonodem(struct castorder * co); + extern int sp_reduceshield(struct castorder * co); + extern int sp_armorshield(struct castorder * co); + extern int sp_stun(struct castorder * co); + extern int sp_undeadhero(struct castorder * co); + extern int sp_shadowcall(struct castorder * co); + extern int sp_immolation(struct castorder * co); #ifdef __cplusplus } diff --git a/src/spells/spells.c b/src/spells/spells.c index 928d954d3..cf8b76d8e 100644 --- a/src/spells/spells.c +++ b/src/spells/spells.c @@ -4879,7 +4879,7 @@ int sp_disturbingdreams(castorder * co) int sp_analysemagic(castorder * co) { int obj; - unit *mage = co->magician.u; + unit *mage = co_get_caster(co); int cast_level = co->level; spellparameter *pa = co->par; @@ -6520,448 +6520,448 @@ static spelldata spelldaten[] = { /* M_GWYRRD */ { SPL_STONEGOLEM, "stonegolem", - (spell_f) sp_create_stonegolem, NULL}, + sp_create_stonegolem, NULL}, { SPL_IRONGOLEM, "irongolem", - (spell_f) sp_create_irongolem, NULL}, + sp_create_irongolem, NULL}, { SPL_TREEGROW, "treegrow", - (spell_f) sp_hain, patzer_ents}, + sp_hain, patzer_ents}, { SPL_RUSTWEAPON, "rustweapon", - (spell_f) sp_rosthauch, NULL}, + sp_rosthauch, NULL}, { SPL_KAELTESCHUTZ, "cold_protection", - (spell_f) sp_kaelteschutz, NULL}, + sp_kaelteschutz, NULL}, { SPL_HAGEL, "hail", - (spell_f) sp_kampfzauber, NULL}, + sp_kampfzauber, NULL}, { SPL_IRONKEEPER, "ironkeeper", - (spell_f) sp_ironkeeper, NULL}, + sp_ironkeeper, NULL}, { SPL_MAGICSTREET, "magicstreet", - (spell_f) sp_magicstreet, NULL}, + sp_magicstreet, NULL}, { SPL_WINDSHIELD, "windshield", - (spell_f) sp_windshield, NULL}, + sp_windshield, NULL}, { SPL_MALLORNTREEGROW, "mallorntreegrow", - (spell_f) sp_mallornhain, patzer_ents}, + sp_mallornhain, patzer_ents}, {SPL_GOODWINDS, "goodwinds", - (spell_f) sp_goodwinds, NULL}, + sp_goodwinds, NULL}, { SPL_HEALING, "healing", - (spell_f) sp_healing, NULL}, + sp_healing, NULL}, { SPL_REELING_ARROWS, "reelingarrows", - (spell_f) sp_reeling_arrows, NULL}, + sp_reeling_arrows, NULL}, { SPL_GWYRRD_FUMBLESHIELD, "gwyrrdfumbleshield", - (spell_f) sp_fumbleshield, NULL}, + sp_fumbleshield, NULL}, { SPL_TRANSFERAURA_DRUIDE, "transferauradruide", - (spell_f) sp_transferaura, NULL}, + sp_transferaura, NULL}, { SPL_EARTHQUAKE, "earthquake", - (spell_f) sp_earthquake, NULL}, + sp_earthquake, NULL}, { SPL_STORMWINDS, "stormwinds", - (spell_f) sp_stormwinds, NULL}, + sp_stormwinds, NULL}, { SPL_HOMESTONE, "homestone", - (spell_f) sp_homestone, NULL}, + sp_homestone, NULL}, { SPL_WOLFHOWL, "wolfhowl", - (spell_f) sp_wolfhowl, NULL}, + sp_wolfhowl, NULL}, { SPL_VERSTEINERN, "versteinern", - (spell_f) sp_petrify, NULL}, + sp_petrify, NULL}, { SPL_STRONG_WALL, "strongwall", - (spell_f) sp_strong_wall, NULL}, + sp_strong_wall, NULL}, { SPL_GWYRRD_DESTROY_MAGIC, "gwyrrddestroymagic", - (spell_f) sp_destroy_magic, NULL}, + sp_destroy_magic, NULL}, { SPL_TREEWALKENTER, "treewalkenter", - (spell_f) sp_treewalkenter, NULL}, + sp_treewalkenter, NULL}, { SPL_TREEWALKEXIT, "treewalkexit", - (spell_f) sp_treewalkexit, NULL}, + sp_treewalkexit, NULL}, { SPL_HOLYGROUND, "holyground", - (spell_f) sp_holyground, NULL}, + sp_holyground, NULL}, { SPL_SUMMONENT, "summonent", - (spell_f) sp_summonent, NULL}, + sp_summonent, NULL}, { SPL_GWYRRD_FAMILIAR, "gwyrrdfamiliar", - (spell_f) sp_summon_familiar, NULL}, + sp_summon_familiar, NULL}, { SPL_BLESSSTONECIRCLE, "blessstonecircle", - (spell_f) sp_blessstonecircle, NULL}, + sp_blessstonecircle, NULL}, { SPL_GWYRRD_ARMORSHIELD, "barkskin", - (spell_f) sp_armorshield, NULL}, + sp_armorshield, NULL}, { SPL_DROUGHT, "summonfireelemental", - (spell_f) sp_drought, NULL}, + sp_drought, NULL}, { SPL_MAELSTROM, "maelstrom", - (spell_f) sp_maelstrom, NULL}, + sp_maelstrom, NULL}, { SPL_MALLORN, "magic_roots", - (spell_f) sp_mallorn, NULL}, + sp_mallorn, NULL}, { SPL_GREAT_DROUGHT, "great_drought", - (spell_f) sp_great_drought, NULL}, + sp_great_drought, NULL}, /* M_DRAIG */ { SPL_SPARKLE_CHAOS, "sparklechaos", - (spell_f) sp_sparkle, NULL}, + sp_sparkle, NULL}, { SPL_FIREBALL, "fireball", - (spell_f) sp_kampfzauber, NULL}, + sp_kampfzauber, NULL}, { SPL_MAGICBOOST, "magicboost", - (spell_f) sp_magicboost, NULL}, + sp_magicboost, NULL}, { SPL_BLOODSACRIFICE, "bloodsacrifice", - (spell_f) sp_bloodsacrifice, NULL}, + sp_bloodsacrifice, NULL}, { SPL_BERSERK, "berserk", - (spell_f) sp_berserk, NULL}, + sp_berserk, NULL}, { SPL_FUMBLECURSE, "fumblecurse", - (spell_f) sp_fumblecurse, patzer_fumblecurse}, + sp_fumblecurse, patzer_fumblecurse}, { SPL_SUMMONUNDEAD, "summonundead", - (spell_f) sp_summonundead, patzer_peasantmob}, + sp_summonundead, patzer_peasantmob}, { SPL_COMBATRUST, "combatrust", - (spell_f) sp_combatrosthauch, NULL}, + sp_combatrosthauch, NULL}, { SPL_TRANSFERAURA_CHAOS, "transferaurachaos", - (spell_f) sp_transferaura, NULL}, + sp_transferaura, NULL}, { SPL_FIREWALL, "firewall", - (spell_f) sp_firewall, patzer_peasantmob}, + sp_firewall, patzer_peasantmob}, { SPL_PLAGUE, "plague", - (spell_f) sp_plague, patzer_peasantmob}, + sp_plague, patzer_peasantmob}, { SPL_CHAOSROW, "chaosrow", - (spell_f) sp_chaosrow, NULL}, + sp_chaosrow, NULL}, { SPL_SUMMONSHADOW, "summonshadow", - (spell_f) sp_summonshadow, patzer_peasantmob}, + sp_summonshadow, patzer_peasantmob}, { SPL_UNDEADHERO, "undeadhero", - (spell_f) sp_undeadhero, NULL}, + sp_undeadhero, NULL}, { SPL_AURALEAK, "auraleak", - (spell_f) sp_auraleak, NULL}, + sp_auraleak, NULL}, { SPL_DRAIG_FUMBLESHIELD, "draigfumbleshield", - (spell_f) sp_fumbleshield, NULL}, + sp_fumbleshield, NULL}, { SPL_FOREST_FIRE, "forestfire", - (spell_f) sp_forest_fire, patzer_peasantmob}, + sp_forest_fire, patzer_peasantmob}, { SPL_DRAIG_DESTROY_MAGIC, "draigdestroymagic", - (spell_f) sp_destroy_magic, NULL}, + sp_destroy_magic, NULL}, { SPL_UNHOLYPOWER, "unholypower", - (spell_f) sp_unholypower, NULL}, + sp_unholypower, NULL}, { SPL_DEATHCLOUD, "deathcloud", - (spell_f) sp_deathcloud, patzer_peasantmob}, + sp_deathcloud, patzer_peasantmob}, { SPL_SUMMONDRAGON, "summondragon", - (spell_f) sp_summondragon, patzer_peasantmob}, + sp_summondragon, patzer_peasantmob}, { SPL_SUMMONSHADOWLORDS, "summonshadowlords", - (spell_f) sp_summonshadowlords, patzer_peasantmob}, + sp_summonshadowlords, patzer_peasantmob}, { SPL_DRAIG_FAMILIAR, "draigfamiliar", - (spell_f) sp_summon_familiar, NULL}, + sp_summon_familiar, NULL}, { SPL_CHAOSSUCTION, "chaossuction", - (spell_f) sp_chaossuction, patzer_peasantmob}, + sp_chaossuction, patzer_peasantmob}, /* M_ILLAUN */ { SPL_SPARKLE_DREAM, "sparkledream", - (spell_f) sp_sparkle, NULL}, + sp_sparkle, NULL}, { SPL_SHADOWKNIGHTS, "shadowknights", - (spell_f) sp_shadowknights, NULL}, + sp_shadowknights, NULL}, { SPL_FLEE, "flee", - (spell_f) sp_flee, NULL}, + sp_flee, NULL}, { SPL_PUTTOREST, "puttorest", - (spell_f) sp_puttorest, NULL}, + sp_puttorest, NULL}, { SPL_ICASTLE, "icastle", - (spell_f) sp_icastle, NULL}, + sp_icastle, NULL}, { SPL_TRANSFERAURA_TRAUM, "transferauratraum", - (spell_f) sp_transferaura, NULL}, + sp_transferaura, NULL}, { SPL_ILL_SHAPESHIFT, "shapeshift", - (spell_f) sp_illusionary_shapeshift, NULL}, + sp_illusionary_shapeshift, NULL}, { SPL_DREAMREADING, "dreamreading", - (spell_f) sp_dreamreading, NULL}, + sp_dreamreading, NULL}, { SPL_TIREDSOLDIERS, "tiredsoldiers", - (spell_f) sp_tiredsoldiers, NULL}, + sp_tiredsoldiers, NULL}, { SPL_REANIMATE, "reanimate", - (spell_f) sp_reanimate, NULL}, + sp_reanimate, NULL}, { SPL_ANALYSEDREAM, "analysedream", - (spell_f) sp_analysedream, NULL}, + sp_analysedream, NULL}, { SPL_DISTURBINGDREAMS, "disturbingdreams", - (spell_f) sp_disturbingdreams, NULL}, + sp_disturbingdreams, NULL}, { SPL_SLEEP, "sleep", - (spell_f) sp_sleep, NULL}, + sp_sleep, NULL}, { SPL_WISPS, "wisps", - (spell_f) sp_wisps, NULL}, + sp_wisps, NULL}, { SPL_GOODDREAMS, "gooddreams", - (spell_f) sp_gooddreams, NULL}, + sp_gooddreams, NULL}, { SPL_ILLAUN_DESTROY_MAGIC, "illaundestroymagic", - (spell_f) sp_destroy_magic, NULL}, + sp_destroy_magic, NULL}, { SPL_ILLAUN_FAMILIAR, "illaunfamiliar", - (spell_f) sp_summon_familiar, NULL}, + sp_summon_familiar, NULL}, { SPL_CLONECOPY, "clone", - (spell_f) sp_clonecopy, NULL}, + sp_clonecopy, NULL}, { SPL_BADDREAMS, "bad_dreams", - (spell_f) sp_baddreams, NULL}, + sp_baddreams, NULL}, { SPL_MINDBLAST, "mindblast", - (spell_f) sp_mindblast_temp, NULL}, + sp_mindblast_temp, NULL}, { SPL_ORKDREAM, "orkdream", - (spell_f) sp_sweetdreams, NULL}, + sp_sweetdreams, NULL}, { SPL_SUMMON_ALP, "summon_alp", - (spell_f) sp_summon_alp, NULL}, + sp_summon_alp, NULL}, /* M_CERDDOR */ { SPL_DENYATTACK, "appeasement", - (spell_f) sp_denyattack, NULL}, + sp_denyattack, NULL}, { SPL_HEALINGSONG, "song_of_healing", - (spell_f) sp_healing, NULL}, + sp_healing, NULL}, { SPL_GENEROUS, "generous", - (spell_f) sp_generous, NULL}, + sp_generous, NULL}, { SPL_SONG_OF_FEAR, "song_of_fear", - (spell_f) sp_flee, NULL}, + sp_flee, NULL}, { SPL_RECRUIT, "courting", - (spell_f) sp_recruit, NULL}, + sp_recruit, NULL}, { SPL_SONG_OF_CONFUSION, "song_of_confusion", - (spell_f) sp_chaosrow, NULL}, + sp_chaosrow, NULL}, { SPL_HERO, "heroic_song", - (spell_f) sp_hero, NULL}, + sp_hero, NULL}, { SPL_TRANSFERAURA_BARDE, "transfer_aura_song", - (spell_f) sp_transferaura, NULL}, + sp_transferaura, NULL}, { SPL_UNIT_ANALYSESONG, "analysesong_unit", - (spell_f) sp_analysesong_unit, NULL}, + sp_analysesong_unit, NULL}, { SPL_CERRDOR_FUMBLESHIELD, "cerrdorfumbleshield", - (spell_f) sp_fumbleshield, NULL}, + sp_fumbleshield, NULL}, {SPL_CALM_MONSTER, "calm_monster", - (spell_f) sp_calm_monster, NULL}, + sp_calm_monster, NULL}, {SPL_SEDUCE, "seduction", - (spell_f) sp_seduce, NULL}, + sp_seduce, NULL}, { SPL_HEADACHE, "headache", - (spell_f) sp_headache, NULL}, + sp_headache, NULL}, {SPL_PUMP, "sound_out", - (spell_f) sp_pump, NULL}, + sp_pump, NULL}, { SPL_BLOODTHIRST, "bloodthirst", - (spell_f) sp_berserk, NULL}, + sp_berserk, NULL}, { SPL_FRIGHTEN, "frighten", - (spell_f) sp_frighten, NULL}, + sp_frighten, NULL}, { SPL_OBJ_ANALYSESONG, "analyse_object", - (spell_f) sp_analysesong_obj, NULL}, + sp_analysesong_obj, NULL}, { SPL_CERDDOR_DESTROY_MAGIC, "cerddor_destroymagic", - (spell_f) sp_destroy_magic, NULL}, + sp_destroy_magic, NULL}, { SPL_MIGRANT, "migration", - (spell_f) sp_migranten, NULL}, + sp_migranten, NULL}, { SPL_CERDDOR_FAMILIAR, "summon_familiar", - (spell_f) sp_summon_familiar, NULL}, + sp_summon_familiar, NULL}, { SPL_RAISEPEASANTS, "raise_mob", - (spell_f) sp_raisepeasants, NULL}, + sp_raisepeasants, NULL}, { SPL_SONG_RESISTMAGIC, "song_resist_magic", - (spell_f) sp_song_resistmagic, NULL}, + sp_song_resistmagic, NULL}, { SPL_DEPRESSION, "melancholy", - (spell_f) sp_depression, NULL}, + sp_depression, NULL}, { SPL_SONG_SUSCEPTMAGIC, "song_suscept_magic", - (spell_f) sp_song_susceptmagic, NULL}, + sp_song_susceptmagic, NULL}, { SPL_SONG_OF_PEACE, "song_of_peace", - (spell_f) sp_song_of_peace, NULL}, + sp_song_of_peace, NULL}, { SPL_SONG_OF_ENSLAVE, "song_of_slavery", - (spell_f) sp_charmingsong, NULL}, + sp_charmingsong, NULL}, { SPL_BIGRECRUIT, "big_recruit", - (spell_f) sp_bigrecruit, NULL}, + sp_bigrecruit, NULL}, { SPL_RALLYPEASANTMOB, "calm_riot", - (spell_f) sp_rallypeasantmob, NULL}, + sp_rallypeasantmob, NULL}, { SPL_RAISEPEASANTMOB, "incite_riot", - (spell_f) sp_raisepeasantmob, NULL}, + sp_raisepeasantmob, NULL}, /* M_TYBIED */ { SPL_ANALYSEMAGIC, "analyze_magic", - (spell_f) sp_analysemagic, NULL}, + sp_analysemagic, NULL}, { SPL_ITEMCLOAK, "concealing_aura", - (spell_f) sp_itemcloak, NULL}, + sp_itemcloak, NULL}, { SPL_TYBIED_FUMBLESHIELD, "tybiedfumbleshield", - (spell_f) sp_fumbleshield, NULL}, + sp_fumbleshield, NULL}, #ifdef SHOWASTRAL_NOT_BORKED { SPL_SHOWASTRAL, "show_astral", - (spell_f) sp_showastral, NULL}, + sp_showastral, NULL}, #endif { SPL_RESISTMAGICBONUS, "resist_magic", - (spell_f) sp_resist_magic_bonus, NULL}, + sp_resist_magic_bonus, NULL}, { SPL_KEEPLOOT, "keeploot", - (spell_f) sp_keeploot, NULL}, + sp_keeploot, NULL}, { SPL_ENTERASTRAL, "enterastral", - (spell_f) sp_enterastral, NULL}, + sp_enterastral, NULL}, { SPL_LEAVEASTRAL, "leaveastral", - (spell_f) sp_leaveastral, NULL}, + sp_leaveastral, NULL}, { SPL_TRANSFERAURA_ASTRAL, "auratransfer", - (spell_f) sp_transferaura, NULL}, + sp_transferaura, NULL}, { SPL_SHOCKWAVE, "shockwave", - (spell_f) sp_stun, NULL}, + sp_stun, NULL}, { SPL_ANTIMAGICZONE, "antimagiczone", - (spell_f) sp_antimagiczone, NULL}, + sp_antimagiczone, NULL}, { SPL_TYBIED_DESTROY_MAGIC, "destroy_magic", - (spell_f) sp_destroy_magic, NULL}, + sp_destroy_magic, NULL}, { SPL_PULLASTRAL, "pull_astral", - (spell_f) sp_pullastral, NULL}, + sp_pullastral, NULL}, { SPL_FETCHASTRAL, "fetch_astral", - (spell_f) sp_fetchastral, NULL}, + sp_fetchastral, NULL}, { SPL_STEALAURA, "steal_aura", - (spell_f) sp_stealaura, NULL}, + sp_stealaura, NULL}, { SPL_FLYING_SHIP, "airship", - (spell_f) sp_flying_ship, NULL}, + sp_flying_ship, NULL}, { SPL_DESTROY_MAGIC, "break_curse", - (spell_f) sp_break_curse, NULL}, + sp_break_curse, NULL}, { SPL_ETERNIZEWALL, "eternal_walls", - (spell_f) sp_eternizewall, NULL}, + sp_eternizewall, NULL}, { SPL_SCHILDRUNEN, "protective_runes", - (spell_f) sp_magicrunes, NULL}, + sp_magicrunes, NULL}, { SPL_REDUCESHIELD, "fish_shield", - (spell_f) sp_reduceshield, NULL}, + sp_reduceshield, NULL}, { SPL_SPEED, "combat_speed", - (spell_f) sp_speed, NULL}, + sp_speed, NULL}, { SPL_VIEWREALITY, "view_reality", - (spell_f) sp_viewreality, NULL}, + sp_viewreality, NULL}, { SPL_SPEED2, "double_time", - (spell_f) sp_speed2, NULL}, + sp_speed2, NULL}, { SPL_ARMORSHIELD, "armor_shield", - (spell_f) sp_armorshield, NULL}, + sp_armorshield, NULL}, { SPL_TYBIED_FAMILIAR, "summon_familiar", - (spell_f) sp_summon_familiar, NULL}, + sp_summon_familiar, NULL}, { SPL_MOVECASTLE, "living_rock", - (spell_f) sp_movecastle, NULL}, + sp_movecastle, NULL}, { SPL_DISRUPTASTRAL, "astral_disruption", - (spell_f) sp_disruptastral, NULL}, + sp_disruptastral, NULL}, { SPL_PERMTRANSFER, "sacrifice_strength", - (spell_f) sp_permtransfer, NULL}, + sp_permtransfer, NULL}, /* M_GRAY */ /* Definitionen von Create_Artefaktspruechen */ { SPL_METEORRAIN, "meteor_rain", - (spell_f) sp_kampfzauber, NULL}, + sp_kampfzauber, NULL}, { SPL_BECOMEWYRM, "wyrm_transformation", - (spell_f) sp_becomewyrm, NULL}, + sp_becomewyrm, NULL}, /* Monstersprueche */ {SPL_FIREDRAGONODEM, "fiery_dragonbreath", - (spell_f) sp_dragonodem, NULL}, + sp_dragonodem, NULL}, {SPL_DRAGONODEM, "icy_dragonbreath", - (spell_f) sp_dragonodem, NULL}, + sp_dragonodem, NULL}, {SPL_WYRMODEM, "powerful_dragonbreath", - (spell_f) sp_dragonodem, NULL}, + sp_dragonodem, NULL}, {SPL_DRAINODEM, "drain_skills", - (spell_f) sp_dragonodem, NULL}, + sp_dragonodem, NULL}, { SPL_AURA_OF_FEAR, "aura_of_fear", - (spell_f) sp_flee, NULL}, + sp_flee, NULL}, { SPL_SHADOWCALL, "shadowcall", - (spell_f) sp_shadowcall, NULL}, + sp_shadowcall, NULL}, { SPL_IMMOLATION, "immolation", - (spell_f) sp_immolation, NULL}, + sp_immolation, NULL}, {SPL_FIREODEM, "firestorm", - (spell_f) sp_immolation, NULL}, + sp_immolation, NULL}, {SPL_ICEODEM, "coldfront", - (spell_f) sp_immolation, NULL}, + sp_immolation, NULL}, {SPL_ACIDODEM, "acidrain", - (spell_f) sp_immolation, NULL}, + sp_immolation, NULL}, /* SPL_NOSPELL MUSS der letzte Spruch der Liste sein */ { SPL_NOSPELL, "no spell", @@ -7008,7 +7008,7 @@ border_type bt_chaosgate = { static void set_spelldata_i(spell * sp, spelldata * data) { - sp->sp_function = data->sp_function; + sp->cast = data->sp_function; sp->patzer = data->patzer; }