summaryrefslogtreecommitdiff
path: root/src/spells.pkg
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2012-05-29 06:25:07 +0200
committerBardur Arantsson <bardur@scientician.net>2012-05-29 18:18:10 +0200
commitd98a999477698bb0a304c4995df44f2b7ef5389d (patch)
treee0d30c7a705368f7991371a143a9c4c7b06faf60 /src/spells.pkg
parent127f4d6985d998c65d958907758e474edb29ceec (diff)
Lua: Convert all the spell metadata to C code
(Yay automated translation!)
Diffstat (limited to 'src/spells.pkg')
-rw-r--r--src/spells.pkg583
1 files changed, 11 insertions, 572 deletions
diff --git a/src/spells.pkg b/src/spells.pkg
index 0ea452bf..6360e7d3 100644
--- a/src/spells.pkg
+++ b/src/spells.pkg
@@ -2147,6 +2147,8 @@ extern magic_power *grab_magic_power @ get_magic_power(magic_power *m_ptr, int n
*/
extern bool lua_spell_success @ magic_power_sucess(magic_power *spell, int stat, char *oups_fct=NULL);
+extern s16b can_spell_random(s16b spell_idx);
+
/* Schools */
/** @struct school_spell_type
@@ -2166,24 +2168,6 @@ struct spell_type@school_spell_type
*/
byte skill_level;
- /** @structvar mana
- * @brief Number
- * @note Required mana at lvl 1
- */
- byte mana;
-
- /** @structvar mana_max
- * @brief Number
- * @note Required mana at max lvl
- */
- byte mana_max;
-
- /** @structvar fail
- * @brief Number
- * @note Minimum chance of failure
- */
- s16b fail;
-
/** @structvar level
* @brief Number
* @note Spell level(0 = not learnt)
@@ -2227,37 +2211,6 @@ struct school_type
*/
extern s16b new_school(int i, cptr name, s16b skill);
-/** @fn new_spell(int i, cptr name)
- * @dgonly
- * @brief Add spell to array of spells for a school.\n
- * @param i Number \n i is index of school spell array where spell is added.
- * There is no range checking.
- * @brief Index
- * @param name String \n name is the name of the spell.
- * @brief Name
- * @return Number \ The index parameter.
- * @note
- * Spell level is set to zero.\n\n
- * Note: do not call this function directly.\n
- * By order of DG.
- * @note (see file lua_bind.c)
- */
-extern s16b new_spell(int i, cptr name);
-
-/** @fn spell(s16b num);
- * @dgonly
- * @brief Get spell "num" from array of spells for a school.\n
- * @param num Number \n num is the index of the spell.
- * There is no range checking.
- * @brief Index
- * @return spell_type \n The spell.
- * @note
- * Note: do not call this function directly.\n
- * By order of DG.
- * @note (see file lua_bind.c)
- */
-extern spell_type *grab_spell_type @ spell(s16b num);
-
/** @fn school(s16b num);
* @dgonly
* @brief Get school "num" from array of schools.\n
@@ -2338,7 +2291,7 @@ extern s32b lua_spell_device_chance(s32b chance, int level, int base_level);
* If no spell is chosen, -1 is returned.
* @note (see file cmd5.c)
*/
-extern s32b get_school_spell(cptr do_what, cptr check_fct, s16b force_book);
+extern s32b get_school_spell(cptr do_what, s16b force_book);
/** @fn get_pos_player(int dis, int *ny=0, int *nx=0)
* @brief Get a grid near the player.\n
@@ -2358,528 +2311,6 @@ extern s32b get_school_spell(cptr do_what, cptr check_fct, s16b force_book);
extern void get_pos_player(int dis, int *ny=0, int *nx=0);
/**
- * Geomancy
- */
-extern void geomancy_random_floor(int y, int x, bool kill_wall);
-extern void geomancy_dig(int y, int x, int dir, int length);
-extern void channel_the_elements(int y, int x, int level);
-
-/*
- * Air
- */
-extern s32b NOXIOUSCLOUD;
-extern s32b AIRWINGS;
-extern s32b INVISIBILITY;
-extern s32b POISONBLOOD;
-extern s32b THUNDERSTORM;
-extern s32b STERILIZE;
-
-bool_ *air_noxious_cloud();
-char *air_noxious_cloud_info();
-bool_ *air_wings_of_winds();
-char *air_wings_of_winds_info();
-bool_ *air_invisibility();
-char *air_invisibility_info();
-bool_ *air_poison_blood();
-char *air_poison_blood_info();
-bool_ *air_thunderstorm();
-char *air_thunderstorm_info();
-bool_ *air_sterilize();
-char *air_sterilize_info();
-
-/*
- * Conveyance
- */
-extern s32b BLINK;
-extern s32b DISARM;
-extern s32b TELEPORT;
-extern s32b TELEAWAY;
-extern s32b RECALL;
-extern s32b PROBABILITY_TRAVEL;
-
-bool_ *convey_blink();
-char *convey_blink_info();
-bool_ *convey_disarm();
-char *convey_disarm_info();
-bool_ *convey_teleport();
-char *convey_teleport_info();
-bool_ *convey_teleport_away();
-char *convey_teleport_away_info();
-bool_ *convey_recall();
-char *convey_recall_info();
-bool_ *convey_probability_travel();
-char *convey_probability_travel_info();
-
-/*
- * Demonology
- */
-extern s32b DEMON_BLADE;
-extern s32b DEMON_MADNESS;
-extern s32b DEMON_FIELD;
-extern s32b DOOM_SHIELD;
-extern s32b UNHOLY_WORD;
-extern s32b DEMON_CLOAK;
-extern s32b DEMON_SUMMON;
-extern s32b DISCHARGE_MINION;
-extern s32b CONTROL_DEMON;
-
-bool_ *demonology_demon_blade();
-char *demonology_demon_blade_info();
-bool_ *demonology_demon_madness();
-char *demonology_demon_madness_info();
-bool_ *demonology_demon_field();
-char *demonology_demon_field_info();
-bool_ *demonology_doom_shield();
-char *demonology_doom_shield_info();
-bool_ *demonology_unholy_word();
-char *demonology_unholy_word_info();
-bool_ *demonology_demon_cloak();
-char *demonology_demon_cloak_info();
-bool_ *demonology_summon_demon();
-char *demonology_summon_demon_info();
-bool_ *demonology_discharge_minion();
-char *demonology_discharge_minion_info();
-bool_ *demonology_control_demon();
-char *demonology_control_demon_info();
-
-/*
- * Divination
- */
-extern s32b STARIDENTIFY;
-extern s32b IDENTIFY;
-extern s32b VISION;
-extern s32b SENSEHIDDEN;
-extern s32b REVEALWAYS;
-extern s32b SENSEMONSTERS;
-
-bool_ *divination_greater_identify();
-char *divination_greater_identify_info();
-bool_ *divination_identify();
-char *divination_identify_info();
-bool_ *divination_vision();
-char *divination_vision_info();
-bool_ *divination_sense_hidden();
-char *divination_sense_hidden_info();
-bool_ *divination_reveal_ways();
-char *divination_reveal_ways_info();
-bool_ *divination_sense_monsters();
-char *divination_sense_monsters_info();
-
-/*
- * Earth
- */
-extern s32b STONESKIN;
-extern s32b DIG;
-extern s32b STONEPRISON;
-extern s32b STRIKE;
-extern s32b SHAKE;
-
-bool_ *earth_stone_skin();
-char *earth_stone_skin_info();
-bool_ *earth_dig();
-char *earth_dig_info();
-bool_ *earth_stone_prison();
-char *earth_stone_prison_info();
-bool_ *earth_strike();
-char *earth_strike_info();
-bool_ *earth_shake();
-char *earth_shake_info();
-
-/*
- * Eru
- */
-extern s32b ERU_SEE;
-extern s32b ERU_LISTEN;
-extern s32b ERU_UNDERSTAND;
-extern s32b ERU_PROT;
-
-bool_ *eru_see_the_music();
-char *eru_see_the_music_info();
-bool_ *eru_listen_to_the_music();
-char *eru_listen_to_the_music_info();
-bool_ *eru_know_the_music();
-char *eru_know_the_music_info();
-bool_ *eru_lay_of_protection();
-char *eru_lay_of_protection_info();
-
-/*
- * Fire
- */
-extern s32b GLOBELIGHT;
-extern s32b FIREFLASH;
-extern s32b FIERYAURA;
-extern s32b FIREWALL;
-extern s32b FIREGOLEM;
-
-bool_ *fire_globe_of_light();
-char *fire_globe_of_light_info();
-bool_ *fire_fireflash();
-char *fire_fireflash_info();
-bool_ *fire_fiery_shield();
-char *fire_fiery_shield_info();
-bool_ *fire_firewall();
-char *fire_firewall_info();
-bool_ *fire_golem();
-char *fire_golem_info();
-
-/*
- * Geomancy
- */
-extern s32b CALL_THE_ELEMENTS;
-extern s32b CHANNEL_ELEMENTS;
-extern s32b ELEMENTAL_WAVE;
-extern s32b VAPORIZE;
-extern s32b GEOLYSIS;
-extern s32b DRIPPING_TREAD;
-extern s32b GROW_BARRIER;
-extern s32b ELEMENTAL_MINION;
-
-bool_ *geomancy_call_the_elements();
-char *geomancy_call_the_elements_info();
-bool_ *geomancy_channel_elements();
-char *geomancy_channel_elements_info();
-bool_ *geomancy_elemental_wave();
-char *geomancy_elemental_wave_info();
-bool_ *geomancy_vaporize();
-char *geomancy_vaporize_info();
-bool_ geomancy_vaporize_depends();
-bool_ *geomancy_geolysis();
-char *geomancy_geolysis_info();
-bool_ geomancy_geolysis_depends();
-bool_ *geomancy_dripping_tread();
-char *geomancy_dripping_tread_info();
-bool_ geomancy_dripping_tread_depends();
-bool_ *geomancy_grow_barrier();
-char *geomancy_grow_barrier_info();
-bool_ geomancy_grow_barrier_depends();
-bool_ *geomancy_elemental_minion();
-char *geomancy_elemental_minion_info();
-
-extern s32b MANATHRUST;
-extern s32b DELCURSES;
-extern s32b RESISTS;
-extern s32b MANASHIELD;
-
-bool_ *mana_manathrust();
-char *mana_manathrust_info();
-bool_ *mana_remove_curses();
-char *mana_remove_curses_info();
-bool_ *mana_elemental_shield();
-char *mana_elemental_shield_info();
-bool_ *mana_disruption_shield();
-char *mana_disruption_shield_info();
-
-extern s32b MANWE_SHIELD;
-extern s32b MANWE_AVATAR;
-extern s32b MANWE_BLESS;
-extern s32b MANWE_CALL;
-
-bool_ *manwe_wind_shield();
-char *manwe_wind_shield_info();
-bool_ *manwe_avatar();
-char *manwe_avatar_info();
-bool_ *manwe_blessing();
-char *manwe_blessing_info();
-bool_ *manwe_call();
-char *manwe_call_info();
-
-extern s32b MELKOR_CURSE;
-extern s32b MELKOR_CORPSE_EXPLOSION;
-extern s32b MELKOR_MIND_STEAL;
-
-bool_ *melkor_curse();
-char *melkor_curse_info();
-bool_ *melkor_corpse_explosion();
-char *melkor_corpse_explosion_info();
-bool_ *melkor_mind_steal();
-char *melkor_mind_steal_info();
-
-extern s32b RECHARGE;
-extern s32b SPELLBINDER;
-extern s32b DISPERSEMAGIC;
-extern s32b TRACKER;
-extern s32b INERTIA_CONTROL;
-
-bool_ *meta_recharge();
-char *meta_recharge_info();
-bool_ *meta_spellbinder();
-char *meta_spellbinder_info();
-bool_ *meta_disperse_magic();
-char *meta_disperse_magic_info();
-bool_ *meta_tracker();
-char *meta_tracker_info();
-bool_ *meta_inertia_control();
-char *meta_inertia_control_info();
-
-extern s32b CHARM;
-extern s32b CONFUSE;
-extern s32b ARMOROFFEAR;
-extern s32b STUN;
-
-bool_ *mind_charm();
-char *mind_charm_info();
-bool_ *mind_confuse();
-char *mind_confuse_info();
-bool_ *mind_armor_of_fear();
-char *mind_armor_of_fear_info();
-bool_ *mind_stun();
-char *mind_stun_info();
-
-extern s32b MAGELOCK;
-extern s32b SLOWMONSTER;
-extern s32b ESSENCESPEED;
-extern s32b BANISHMENT;
-
-bool_ *tempo_magelock();
-char *tempo_magelock_info();
-bool_ *tempo_slow_monster();
-char *tempo_slow_monster_info();
-bool_ *tempo_essence_of_speed();
-char *tempo_essence_of_speed_info();
-bool_ *tempo_banishment();
-char *tempo_banishment_info();
-
-extern s32b TULKAS_AIM;
-extern s32b TULKAS_WAVE;
-extern s32b TULKAS_SPIN;
-
-bool_ *tulkas_divine_aim();
-char *tulkas_divine_aim_info();
-bool_ *tulkas_wave_of_power();
-char *tulkas_wave_of_power_info();
-bool_ *tulkas_whirlwind();
-char *tulkas_whirlwind_info();
-
-extern s32b DRAIN;
-extern s32b GENOCIDE;
-extern s32b WRAITHFORM;
-extern s32b FLAMEOFUDUN;
-
-bool_ *udun_drain();
-char *udun_drain_info();
-bool_ *udun_genocide();
-char *udun_genocide_info();
-bool_ *udun_wraithform();
-char *udun_wraithform_info();
-bool_ *udun_flame_of_udun();
-char *udun_flame_of_udun_info();
-
-extern s32b TIDALWAVE;
-extern s32b ICESTORM;
-extern s32b ENTPOTION;
-extern s32b VAPOR;
-extern s32b GEYSER;
-
-bool_ *water_tidal_wave();
-char *water_tidal_wave_info();
-bool_ *water_ice_storm();
-char *water_ice_storm_info();
-bool_ *water_ent_potion();
-char *water_ent_potion_info();
-bool_ *water_vapor();
-char *water_vapor_info();
-bool_ *water_geyser();
-char *water_geyser_info();
-
-extern s32b YAVANNA_CHARM_ANIMAL;
-extern s32b YAVANNA_GROW_GRASS;
-extern s32b YAVANNA_TREE_ROOTS;
-extern s32b YAVANNA_WATER_BITE;
-extern s32b YAVANNA_UPROOT;
-
-bool_ *yavanna_charm_animal();
-char *yavanna_charm_animal_info();
-bool_ *yavanna_grow_grass();
-char *yavanna_grow_grass_info();
-bool_ *yavanna_tree_roots();
-char *yavanna_tree_roots_info();
-bool_ *yavanna_water_bite();
-char *yavanna_water_bite_info();
-bool_ *yavanna_uproot();
-char *yavanna_uproot_info();
-
-extern s32b GROWTREE;
-extern s32b HEALING;
-extern s32b RECOVERY;
-extern s32b REGENERATION;
-extern s32b SUMMONANNIMAL;
-extern s32b GROW_ATHELAS;
-
-bool_ *nature_grow_trees();
-char *nature_grow_trees_info();
-bool_ *nature_healing();
-char *nature_healing_info();
-bool_ *nature_recovery();
-char *nature_recovery_info();
-bool_ *nature_regeneration();
-char *nature_regeneration_info();
-bool_ *nature_summon_animal();
-char *nature_summon_animal_info();
-bool_ *nature_grow_athelas();
-char *nature_grow_athelas_info();
-
-extern s32b DEVICE_HEAL_MONSTER;
-extern s32b DEVICE_SPEED_MONSTER;
-extern s32b DEVICE_WISH;
-extern s32b DEVICE_SUMMON;
-extern s32b DEVICE_MANA;
-extern s32b DEVICE_NOTHING;
-extern s32b DEVICE_LEBOHAUM;
-extern s32b DEVICE_MAGGOT;
-extern s32b DEVICE_HOLY_FIRE;
-extern s32b DEVICE_ETERNAL_FLAME;
-extern s32b DEVICE_DURANDIL;
-extern s32b DEVICE_THUNDERLORDS;
-extern s32b DEVICE_RADAGAST;
-extern s32b DEVICE_VALAROMA;
-
-bool_ *device_heal_monster();
-char *device_heal_monster_info();
-bool_ *device_haste_monster();
-char *device_haste_monster_info();
-bool_ *device_wish();
-char *device_wish_info();
-bool_ *device_summon_monster();
-char *device_summon_monster_info();
-bool_ *device_mana();
-char *device_mana_info();
-bool_ *device_nothing();
-char *device_nothing_info();
-bool_ *device_lebohaum();
-char *device_lebohaum_info();
-bool_ *device_maggot();
-char *device_maggot_info();
-bool_ *device_holy_fire();
-char *device_holy_fire_info();
-bool_ *device_eternal_flame();
-char *device_eternal_flame_info();
-bool_ *device_durandil();
-char *device_durandil_info();
-bool_ *device_thunderlords();
-char *device_thunderlords_info();
-bool_ *device_radagast();
-char *device_radagast_info();
-bool_ *device_valaroma();
-char *device_valaroma_info();
-
-extern s32b MUSIC_STOP;
-extern s32b MUSIC_HOLD;
-extern s32b MUSIC_CONF;
-extern s32b MUSIC_STUN;
-extern s32b MUSIC_LITE;
-extern s32b MUSIC_HEAL;
-extern s32b MUSIC_HERO;
-extern s32b MUSIC_TIME;
-extern s32b MUSIC_MIND;
-extern s32b MUSIC_BLOW;
-extern s32b MUSIC_WIND;
-extern s32b MUSIC_YLMIR;
-extern s32b MUSIC_AMBARKANTA;
-
-bool_ *music_stop_singing_spell();
-char *music_stop_singing_info();
-
-int music_holding_pattern_lasting();
-bool_ *music_holding_pattern_spell();
-char *music_holding_pattern_info();
-
-int music_illusion_pattern_lasting();
-bool_ *music_illusion_pattern_spell();
-char *music_illusion_pattern_info();
-
-int music_stun_pattern_lasting();
-bool_ *music_stun_pattern_spell();
-char *music_stun_pattern_info();
-
-int music_song_of_the_sun_lasting();
-bool_ *music_song_of_the_sun_spell();
-char *music_song_of_the_sun_info();
-
-int music_flow_of_life_lasting();
-bool_ *music_flow_of_life_spell();
-char *music_flow_of_life_info();
-
-int music_heroic_ballad_lasting();
-bool_ *music_heroic_ballad_spell();
-char *music_heroic_ballad_info();
-
-int music_hobbit_melodies_lasting();
-bool_ *music_hobbit_melodies_spell();
-char *music_hobbit_melodies_info();
-
-int music_clairaudience_lasting();
-bool_ *music_clairaudience_spell();
-char *music_clairaudience_info();
-
-bool_ *music_blow_spell();
-char *music_blow_info();
-
-bool_ *music_gush_of_wind_spell();
-char *music_gush_of_wind_info();
-
-bool_ *music_horns_of_ylmir_spell();
-char *music_horns_of_ylmir_info();
-
-bool_ *music_ambarkanta_spell();
-char *music_ambarkanta_info();
-
-extern s32b AULE_FIREBRAND;
-extern s32b AULE_ENCHANT_WEAPON;
-extern s32b AULE_ENCHANT_ARMOUR;
-extern s32b AULE_CHILD;
-
-bool_ *aule_firebrand_spell();
-char *aule_firebrand_info();
-bool_ *aule_enchant_weapon_spell();
-char *aule_enchant_weapon_info();
-bool_ *aule_enchant_armour_spell();
-char *aule_enchant_armour_info();
-bool_ *aule_child_spell();
-char *aule_child_info();
-
-extern s32b MANDOS_TEARS_LUTHIEN;
-extern s32b MANDOS_SPIRIT_FEANTURI;
-extern s32b MANDOS_TALE_DOOM;
-extern s32b MANDOS_CALL_HALLS;
-
-bool_ *mandos_tears_of_luthien_spell();
-char *mandos_tears_of_luthien_info();
-bool_ *mandos_spirit_of_the_feanturi_spell();
-char *mandos_spirit_of_the_feanturi_info();
-bool_ *mandos_tale_of_doom_spell();
-char *mandos_tale_of_doom_info();
-bool_ *mandos_call_to_the_halls_spell();
-char *mandos_call_to_the_halls_info();
-
-extern s32b ULMO_BELEGAER;
-extern s32b ULMO_DRAUGHT_ULMONAN;
-extern s32b ULMO_CALL_ULUMURI;
-extern s32b ULMO_WRATH;
-
-bool_ *ulmo_song_of_belegaer_spell();
-char *ulmo_song_of_belegaer_info();
-bool_ *ulmo_draught_of_ulmonan_spell();
-char *ulmo_draught_of_ulmonan_info();
-bool_ *ulmo_call_of_the_ulumuri_spell();
-char *ulmo_call_of_the_ulumuri_info();
-bool_ *ulmo_wrath_of_ulmo_spell();
-char *ulmo_wrath_of_ulmo_info();
-
-extern s32b VARDA_LIGHT_VALINOR;
-extern s32b VARDA_CALL_ALMAREN;
-extern s32b VARDA_EVENSTAR;
-extern s32b VARDA_STARKINDLER;
-
-bool_ *varda_light_of_valinor_spell();
-char *varda_light_of_valinor_info();
-bool_ *varda_call_of_almaren_spell();
-char *varda_call_of_almaren_info();
-bool_ *varda_evenstar_spell();
-char *varda_evenstar_info();
-bool_ *varda_star_kindler_spell();
-char *varda_star_kindler_info();
-
-/**
* spells4.c
*/
void init_school_books();
@@ -2912,3 +2343,11 @@ extern s32b SCHOOL_YAVANNA;
void lua_cast_school_spell @ cast_school_spell(s32b spell_idx, bool no_cost = FALSE);
void spell_description_add_line(s32b spell_idx, cptr line);
+
+/**
+ * spells5.c
+ */
+void school_spells_init();
+s16b get_random_spell(s16b random_type, int lev);
+bool check_spell_depends(s16b spell_idx);
+int spell_get_school_idx(s16b spell_idx, int i);