OSDN Git Service

[Refactor] #37353 鏡使いのレイシャル「静水」を mirror_concentration() に分離。 / Separate Mirror master...
[hengband/hengband.git] / src / realm-sorcery.c
index bc1b8ff..2b0875e 100644 (file)
@@ -1,6 +1,9 @@
 #include "angband.h"
 #include "cmd-spell.h"
 #include "selfinfo.h"
+#include "projection.h"
+#include "avatar.h"
+#include "spells-status.h"
 
 /*!
 * @brief 仙術領域魔法の各処理を行う
@@ -8,7 +11,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -75,8 +78,8 @@ cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("光源が照らしている範囲か部屋全体を永久に明るくする。", "Lights up nearby area and the inside of a room permanently.");
 
                {
-                       int dice = 2;
-                       int sides = plev / 2;
+                       DICE_NUMBER dice = 2;
+                       DICE_SID sides = plev / 2;
                        POSITION rad = plev / 10 + 1;
 
                        if (info) return info_damage(dice, sides, 0);
@@ -242,7 +245,7 @@ cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                {
                        int base = plev;
-                       int sides = 20 + plev;
+                       DICE_SID sides = 20 + plev;
 
                        if (info) return info_duration(base, sides);
 
@@ -324,7 +327,7 @@ cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                {
                        int base = 25;
-                       int sides = 30;
+                       DICE_SID sides = 30;
 
                        if (info) return info_duration(base, sides);
 
@@ -380,13 +383,13 @@ cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                {
                        int base = 15;
-                       int sides = 20;
+                       DICE_SID sides = 20;
 
                        if (info) return info_delay(base, sides);
 
                        if (cast)
                        {
-                               if (!word_of_recall()) return NULL;
+                               if (!recall_player(p_ptr, randint0(21) + 15)) return NULL;
                        }
                }
                break;
@@ -427,8 +430,8 @@ cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        "Sets a glyph under you. The glyph will explode when a monster moves on it.");
 
                {
-                       int dice = 7;
-                       int sides = 7;
+                       DICE_NUMBER dice = 7;
+                       DICE_SID sides = 7;
                        int base = plev;
 
                        if (info) return info_damage(dice, sides, base);
@@ -445,7 +448,7 @@ cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("アイテムを自分の足元へ移動させる。", "Pulls a distant item close to you.");
 
                {
-                       int weight = plev * 15;
+                       WEIGHT weight = plev * 15;
 
                        if (info) return info_weight(weight);
 
@@ -465,7 +468,7 @@ cptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                {
                        int base = 25;
-                       int sides = 30;
+                       DICE_SID sides = 30;
 
                        if (info) return info_duration(base, sides);