OSDN Git Service

Merge remote-tracking branch 'remotes/origin/feature/Fix-saved-floor-exceed' into...
[hengband/hengband.git] / src / spell / spells-execution.c
1 #include "spell/spells-execution.h"
2 #include "realm/realm-names-table.h"
3 #include "realm/realm-arcane.h"
4 #include "realm/realm-chaos.h"
5 #include "realm/realm-craft.h"
6 #include "realm/realm-crusade.h"
7 #include "realm/realm-demon.h"
8 #include "realm/realm-death.h"
9 #include "realm/realm-hex.h"
10 #include "realm/realm-hissatsu.h"
11 #include "realm/realm-life.h"
12 #include "realm/realm-nature.h"
13 #include "realm/realm-song.h"
14 #include "realm/realm-sorcery.h"
15 #include "realm/realm-trump.h"
16
17 /*!
18  * @brief 魔法処理のメインルーチン
19  * @param realm 魔法領域のID
20  * @param spell 各領域の魔法ID
21  * @param mode 求める処理
22  * @return 各領域魔法に各種テキストを求めた場合は文字列参照ポインタ、そうでない場合はNULLポインタを返す。
23  */
24 concptr exe_spell(player_type *caster_ptr, REALM_IDX realm, SPELL_IDX spell, spell_type mode)
25 {
26         switch (realm)
27         {
28         case REALM_LIFE:     return do_life_spell(caster_ptr, spell, mode);
29         case REALM_SORCERY:  return do_sorcery_spell(caster_ptr, spell, mode);
30         case REALM_NATURE:   return do_nature_spell(caster_ptr, spell, mode);
31         case REALM_CHAOS:    return do_chaos_spell(caster_ptr, spell, mode);
32         case REALM_DEATH:    return do_death_spell(caster_ptr, spell, mode);
33         case REALM_TRUMP:    return do_trump_spell(caster_ptr, spell, mode);
34         case REALM_ARCANE:   return do_arcane_spell(caster_ptr, spell, mode);
35         case REALM_CRAFT:    return do_craft_spell(caster_ptr, spell, mode);
36         case REALM_DAEMON:   return do_daemon_spell(caster_ptr, spell, mode);
37         case REALM_CRUSADE:  return do_crusade_spell(caster_ptr, spell, mode);
38         case REALM_MUSIC:    return do_music_spell(caster_ptr, spell, mode);
39         case REALM_HISSATSU: return do_hissatsu_spell(caster_ptr, spell, mode);
40         case REALM_HEX:      return do_hex_spell(caster_ptr, spell, mode);
41         }
42
43         return NULL;
44 }