OSDN Git Service

[Refactor] #38997 各スペル実行関数にplayer_type * 引数を追加.
authordeskull <deskull@users.sourceforge.jp>
Thu, 1 Aug 2019 14:57:07 +0000 (23:57 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Thu, 1 Aug 2019 14:57:07 +0000 (23:57 +0900)
27 files changed:
src/cmd-spell.c
src/realm-arcane.c
src/realm-arcane.h
src/realm-chaos.c
src/realm-chaos.h
src/realm-craft.c
src/realm-craft.h
src/realm-crusade.c
src/realm-crusade.h
src/realm-daemon.c
src/realm-daemon.h
src/realm-death.c
src/realm-death.h
src/realm-hex.c
src/realm-hex.h
src/realm-hissatsu.c
src/realm-hissatsu.h
src/realm-life.c
src/realm-life.h
src/realm-nature.c
src/realm-nature.h
src/realm-song.c
src/realm-song.h
src/realm-sorcery.c
src/realm-sorcery.h
src/realm-trump.c
src/realm-trump.h

index d72bc30..a800339 100644 (file)
@@ -276,19 +276,19 @@ concptr exe_spell(REALM_IDX realm, SPELL_IDX spell, BIT_FLAGS mode)
 {
        switch (realm)
        {
-       case REALM_LIFE:     return do_life_spell(spell, mode);
-       case REALM_SORCERY:  return do_sorcery_spell(spell, mode);
-       case REALM_NATURE:   return do_nature_spell(spell, mode);
-       case REALM_CHAOS:    return do_chaos_spell(spell, mode);
-       case REALM_DEATH:    return do_death_spell(spell, mode);
-       case REALM_TRUMP:    return do_trump_spell(spell, mode);
-       case REALM_ARCANE:   return do_arcane_spell(spell, mode);
-       case REALM_CRAFT:    return do_craft_spell(spell, mode);
-       case REALM_DAEMON:   return do_daemon_spell(spell, mode);
-       case REALM_CRUSADE:  return do_crusade_spell(spell, mode);
-       case REALM_MUSIC:    return do_music_spell(spell, mode);
-       case REALM_HISSATSU: return do_hissatsu_spell(spell, mode);
-       case REALM_HEX:      return do_hex_spell(spell, mode);
+       case REALM_LIFE:     return do_life_spell(p_ptr, spell, mode);
+       case REALM_SORCERY:  return do_sorcery_spell(p_ptr, spell, mode);
+       case REALM_NATURE:   return do_nature_spell(p_ptr, spell, mode);
+       case REALM_CHAOS:    return do_chaos_spell(p_ptr, spell, mode);
+       case REALM_DEATH:    return do_death_spell(p_ptr, spell, mode);
+       case REALM_TRUMP:    return do_trump_spell(p_ptr, spell, mode);
+       case REALM_ARCANE:   return do_arcane_spell(p_ptr, spell, mode);
+       case REALM_CRAFT:    return do_craft_spell(p_ptr, spell, mode);
+       case REALM_DAEMON:   return do_daemon_spell(p_ptr, spell, mode);
+       case REALM_CRUSADE:  return do_crusade_spell(p_ptr, spell, mode);
+       case REALM_MUSIC:    return do_music_spell(p_ptr, spell, mode);
+       case REALM_HISSATSU: return do_hissatsu_spell(p_ptr, spell, mode);
+       case REALM_HEX:      return do_hex_spell(p_ptr, spell, mode);
        }
 
        return NULL;
index f9b6928..16407fd 100644 (file)
@@ -19,7 +19,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -27,7 +27,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -243,7 +243,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               set_poisoned(p_ptr, 0);
+                               set_poisoned(caster_ptr, 0);
                        }
                }
                break;
@@ -259,7 +259,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_cold(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_cold(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -276,7 +276,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_fire(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_fire(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -293,7 +293,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_elec(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_elec(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -310,7 +310,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_acid(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_acid(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -403,7 +403,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               set_food(p_ptr, PY_FOOD_MAX - 1);
+                               set_food(caster_ptr, PY_FOOD_MAX - 1);
                        }
                }
                break;
@@ -419,7 +419,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_invis(p_ptr, randint1(base) + base, FALSE);
+                               set_tim_invis(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -430,7 +430,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               if (!summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))
+                               if (!summon_specific(-1, caster_ptr->y, caster_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))
                                {
                                        msg_print(_("エレメンタルは現れなかった。", "No Elementals arrive."));
                                }
@@ -528,7 +528,7 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               if (!recall_player(p_ptr, randint0(21) + 15)) return NULL;
+                               if (!recall_player(caster_ptr, randint0(21) + 15)) return NULL;
                        }
                }
                break;
@@ -546,14 +546,14 @@ concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               chg_virtue(p_ptr, V_KNOWLEDGE, 1);
-                               chg_virtue(p_ptr, V_ENLIGHTEN, 1);
+                               chg_virtue(caster_ptr, V_KNOWLEDGE, 1);
+                               chg_virtue(caster_ptr, V_ENLIGHTEN, 1);
 
                                wiz_lite(FALSE);
 
-                               if (!p_ptr->telepathy)
+                               if (!caster_ptr->telepathy)
                                {
-                                       set_tim_esp(p_ptr, randint1(sides) + base, FALSE);
+                                       set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
                                }
                        }
                }
index 734d909..ce12ec6 100644 (file)
@@ -1 +1 @@
-extern concptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_arcane_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index 843a94c..45229b1 100644 (file)
@@ -18,7 +18,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_chaos_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -26,7 +26,7 @@ concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -90,11 +90,11 @@ concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               if (!(p_ptr->special_attack & ATTACK_CONFUSE))
+                               if (!(caster_ptr->special_attack & ATTACK_CONFUSE))
                                {
                                        msg_print(_("あなたの手は光り始めた。", "Your hands start glowing."));
-                                       p_ptr->special_attack |= ATTACK_CONFUSE;
-                                       p_ptr->redraw |= (PR_STATUS);
+                                       caster_ptr->special_attack |= ATTACK_CONFUSE;
+                                       caster_ptr->redraw |= (PR_STATUS);
                                }
                        }
                }
@@ -110,7 +110,7 @@ concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        POSITION rad = (plev < 30) ? 2 : 3;
                        int base;
 
-                       if (IS_WIZARD_CLASS(p_ptr))
+                       if (IS_WIZARD_CLASS(caster_ptr))
                                base = plev + plev / 2;
                        else
                                base = plev + plev / 4;
@@ -236,7 +236,7 @@ concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                msg_print(_("ドーン!部屋が揺れた!", "BOOM! Shake the room!"));
-                               project(0, rad, p_ptr->y, p_ptr->x, dam, GF_SOUND, PROJECT_KILL | PROJECT_ITEM, -1);
+                               project(0, rad, caster_ptr->y, caster_ptr->x, dam, GF_SOUND, PROJECT_KILL | PROJECT_ITEM, -1);
                        }
                }
                break;
@@ -307,7 +307,7 @@ concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               destroy_area(p_ptr->y, p_ptr->x, base + randint1(sides), FALSE);
+                               destroy_area(caster_ptr->y, caster_ptr->x, base + randint1(sides), FALSE);
                        }
                }
                break;
@@ -536,7 +536,7 @@ concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                if (!get_check(_("変身します。よろしいですか?", "You will polymorph yourself. Are you sure? "))) return NULL;
-                               do_poly_self(p_ptr);
+                               do_poly_self(caster_ptr);
                        }
                }
                break;
@@ -564,7 +564,7 @@ concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("非常に強力なカオスの球を放つ。", "Fires an extremely powerful ball of chaos.");
 
                {
-                       HIT_POINT dam = p_ptr->chp;
+                       HIT_POINT dam = caster_ptr->chp;
                        POSITION rad = 2;
 
                        if (info) return info_damage(0, 0, dam);
index 050210b..2969a1c 100644 (file)
@@ -1 +1 @@
-extern concptr do_chaos_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_chaos_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index b6b78c5..9fe6c6a 100644 (file)
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_craft_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
        bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -41,7 +41,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_infra(p_ptr, base + randint1(base), FALSE);
+                               set_tim_infra(caster_ptr, base + randint1(base), FALSE);
                        }
                }
                break;
@@ -57,7 +57,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_regen(p_ptr, base + randint1(base), FALSE);
+                               set_tim_regen(caster_ptr, base + randint1(base), FALSE);
                        }
                }
                break;
@@ -69,7 +69,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               set_food(p_ptr, PY_FOOD_MAX - 1);
+                               set_food(caster_ptr, PY_FOOD_MAX - 1);
                        }
                }
                break;
@@ -86,7 +86,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_cold(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_cold(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -103,7 +103,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_fire(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_fire(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -136,7 +136,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_elec(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_elec(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -153,7 +153,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_acid(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_acid(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -169,7 +169,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_invis(p_ptr, randint1(base) + base, FALSE);
+                               set_tim_invis(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -195,7 +195,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_pois(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_pois(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -241,7 +241,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_protevil(p_ptr, randint1(sides) + base, FALSE);
+                               set_protevil(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -270,7 +270,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               if (!choose_ele_attack(p_ptr)) return NULL;
+                               if (!choose_ele_attack(caster_ptr)) return NULL;
                        }
                }
                break;
@@ -287,7 +287,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_esp(p_ptr, randint1(sides) + base, FALSE);
+                               set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -304,7 +304,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_shield(p_ptr, randint1(sides) + base, FALSE);
+                               set_shield(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -321,11 +321,11 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_acid(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_elec(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_fire(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_cold(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_pois(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_acid(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_elec(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_fire(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_cold(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_pois(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -342,7 +342,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_fast(p_ptr, randint1(sides) + base, FALSE);
+                               set_fast(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -358,7 +358,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_kabenuke(p_ptr, randint1(base) + base, FALSE);
+                               set_kabenuke(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -382,7 +382,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               if (summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_GOLEM, PM_FORCE_PET))
+                               if (summon_specific(-1, caster_ptr->y, caster_ptr->x, plev, SUMMON_GOLEM, PM_FORCE_PET))
                                {
                                        msg_print(_("ゴーレムを作った。", "You make a golem."));
                                }
@@ -406,7 +406,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_magicdef(p_ptr, randint1(base) + base, FALSE);
+                               set_magicdef(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -484,7 +484,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (name) return _("人間トランプ", "Living Trump");
                if (desc) return _("ランダムにテレポートする突然変異か、自分の意思でテレポートする突然変異が身につく。",
                        "Gives mutation which makes you teleport randomly or makes you able to teleport at will.");
-               if (cast) become_living_trump(p_ptr);
+               if (cast) become_living_trump(caster_ptr);
                break;
 
        case 31:
@@ -499,7 +499,7 @@ concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               if (!choose_ele_immune(p_ptr, base + randint1(base))) return NULL;
+                               if (!choose_ele_immune(caster_ptr, base + randint1(base))) return NULL;
                        }
                }
                break;
index 83a6e22..e202c3b 100644 (file)
@@ -1 +1 @@
-concptr do_craft_spell(SPELL_IDX spell, BIT_FLAGS mode);
+concptr do_craft_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index 280af20..3513c06 100644 (file)
@@ -21,7 +21,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_crusade_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -29,7 +29,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -65,7 +65,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (name) return _("恐怖除去", "Remove Fear");
                if (desc) return _("恐怖を取り除く。", "Removes fear.");
                {
-                       if (cast) set_afraid(p_ptr, 0);
+                       if (cast) set_afraid(caster_ptr, 0);
                }
                break;
 
@@ -127,9 +127,9 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               set_cut(p_ptr,0);
-                               set_poisoned(p_ptr, 0);
-                               set_stun(p_ptr, 0);
+                               set_cut(caster_ptr,0);
+                               set_poisoned(caster_ptr, 0);
+                               set_stun(caster_ptr, 0);
                        }
                }
                break;
@@ -159,9 +159,9 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        DICE_SID sides = 6;
                        POSITION rad = (plev < 30) ? 2 : 3;
                        int base;
-                       if (p_ptr->pclass == CLASS_PRIEST ||
-                               p_ptr->pclass == CLASS_HIGH_MAGE ||
-                               p_ptr->pclass == CLASS_SORCERER)
+                       if (caster_ptr->pclass == CLASS_PRIEST ||
+                               caster_ptr->pclass == CLASS_HIGH_MAGE ||
+                               caster_ptr->pclass == CLASS_SORCERER)
                                base = plev + plev / 2;
                        else
                                base = plev + plev / 4;
@@ -214,7 +214,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_invis(p_ptr, randint1(base) + base, FALSE);
+                               set_tim_invis(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -231,7 +231,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_protevil(p_ptr, randint1(sides) + base, FALSE);
+                               set_protevil(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -266,11 +266,11 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                dispel_evil(randint1(dam_sides));
-                               hp_player(p_ptr, heal);
-                               set_afraid(p_ptr, 0);
-                               set_poisoned(p_ptr, 0);
-                               set_stun(p_ptr, 0);
-                               set_cut(p_ptr,0);
+                               hp_player(caster_ptr, heal);
+                               set_afraid(caster_ptr, 0);
+                               set_poisoned(caster_ptr, 0);
+                               set_stun(caster_ptr, 0);
+                               set_cut(caster_ptr,0);
                        }
                }
                break;
@@ -318,7 +318,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_sh_holy(p_ptr, randint1(base) + base, FALSE);
+                               set_tim_sh_holy(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -401,7 +401,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                else flg |= PM_NO_PET;
                                if (!(pet && (plev < 50))) flg |= PM_ALLOW_GROUP;
 
-                               if (summon_specific((pet ? -1 : 0), p_ptr->y, p_ptr->x, (plev * 3) / 2, SUMMON_ANGEL, flg))
+                               if (summon_specific((pet ? -1 : 0), caster_ptr->y, caster_ptr->x, (plev * 3) / 2, SUMMON_ANGEL, flg))
                                {
                                        if (pet)
                                        {
@@ -471,7 +471,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               destroy_area(p_ptr->y, p_ptr->x, base + randint1(sides), FALSE);
+                               destroy_area(caster_ptr->y, caster_ptr->x, base + randint1(sides), FALSE);
                        }
                }
                break;
@@ -488,7 +488,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_eyeeye(p_ptr, randint1(base) + base, FALSE);
+                               set_tim_eyeeye(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -524,14 +524,14 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (info) return format(_("回%d/損%d+%d", "h%d/dm%d+%d"), heal, d_dam, b_dam / 2);
                        if (cast)
                        {
-                               project(0, 1, p_ptr->y, p_ptr->x, b_dam, GF_HOLY_FIRE, PROJECT_KILL, -1);
+                               project(0, 1, caster_ptr->y, caster_ptr->x, b_dam, GF_HOLY_FIRE, PROJECT_KILL, -1);
                                dispel_monsters(d_dam);
                                slow_monsters(plev);
                                stun_monsters(power);
                                confuse_monsters(power);
                                turn_monsters(power);
                                stasis_monsters(power);
-                               hp_player(p_ptr, heal);
+                               hp_player(caster_ptr, heal);
                        }
                }
                break;
@@ -557,7 +557,7 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                                        while (attempt--)
                                        {
-                                               scatter(&my, &mx, p_ptr->y, p_ptr->x, 4, 0);
+                                               scatter(&my, &mx, caster_ptr->y, caster_ptr->x, 4, 0);
 
                                                /* Require empty grids */
                                                if (cave_empty_bold2(my, mx)) break;
@@ -565,11 +565,11 @@ concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        if (attempt < 0) continue;
                                        summon_specific(-1, my, mx, plev, SUMMON_KNIGHTS, (PM_ALLOW_GROUP | PM_FORCE_PET | PM_HASTE));
                                }
-                               set_hero(p_ptr, randint1(base) + base, FALSE);
-                               set_blessed(p_ptr, randint1(base) + base, FALSE);
-                               set_fast(p_ptr, randint1(sp_sides) + sp_base, FALSE);
-                               set_protevil(p_ptr, randint1(base) + base, FALSE);
-                               set_afraid(p_ptr, 0);
+                               set_hero(caster_ptr, randint1(base) + base, FALSE);
+                               set_blessed(caster_ptr, randint1(base) + base, FALSE);
+                               set_fast(caster_ptr, randint1(sp_sides) + sp_base, FALSE);
+                               set_protevil(caster_ptr, randint1(base) + base, FALSE);
+                               set_afraid(caster_ptr, 0);
                        }
                }
                break;
index b8204b1..96de330 100644 (file)
@@ -1 +1 @@
-extern concptr do_crusade_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_crusade_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index b7c750e..6327730 100644 (file)
@@ -20,7 +20,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -28,7 +28,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -78,7 +78,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_blessed(p_ptr, randint1(base) + base, FALSE);
+                               set_blessed(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -95,7 +95,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_fire(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_fire(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -145,7 +145,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               if (!summon_specific(-1, p_ptr->y, p_ptr->x, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET)))
+                               if (!summon_specific(-1, caster_ptr->y, caster_ptr->x, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET)))
                                {
                                        msg_print(_("古代の死霊は現れなかった。", "No Manes arrive."));
                                }
@@ -164,7 +164,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        POSITION rad = (plev < 30) ? 2 : 3;
                        int base;
 
-                       if (IS_WIZARD_CLASS(p_ptr))
+                       if (IS_WIZARD_CLASS(caster_ptr))
                                base = plev + plev / 2;
                        else
                                base = plev + plev / 4;
@@ -226,7 +226,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_res_nether(p_ptr, randint1(base) + base, FALSE);
+                               set_tim_res_nether(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -324,7 +324,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_esp(p_ptr, randint1(sides) + base, FALSE);
+                               set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -343,10 +343,10 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                TIME_EFFECT dur = randint1(base) + base;
 
-                               set_oppose_fire(p_ptr, dur, FALSE);
-                               set_oppose_cold(p_ptr, dur, FALSE);
-                               set_tim_sh_fire(p_ptr, dur, FALSE);
-                               set_afraid(p_ptr, 0);
+                               set_oppose_fire(caster_ptr, dur, FALSE);
+                               set_oppose_cold(caster_ptr, dur, FALSE);
+                               set_tim_sh_fire(caster_ptr, dur, FALSE);
+                               set_afraid(caster_ptr, 0);
                                break;
                        }
                }
@@ -402,7 +402,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_mimic(p_ptr, base + randint1(base), MIMIC_DEMON, FALSE);
+                               set_mimic(caster_ptr, base + randint1(base), MIMIC_DEMON, FALSE);
                        }
                }
                break;
@@ -483,7 +483,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_res_time(p_ptr, randint1(base) + base, FALSE);
+                               set_tim_res_time(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -569,7 +569,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                if (!get_aim_dir(&dir)) return NULL;
 
                                fire_ball_hide(GF_BLOOD_CURSE, dir, dam, rad);
-                               take_hit(p_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("血の呪い", "Blood curse"), -1);
+                               take_hit(caster_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("血の呪い", "Blood curse"), -1);
                        }
                }
                break;
@@ -586,7 +586,7 @@ concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_mimic(p_ptr, base + randint1(base), MIMIC_DEMON_LORD, FALSE);
+                               set_mimic(caster_ptr, base + randint1(base), MIMIC_DEMON_LORD, FALSE);
                        }
                }
                break;
index 5e1e1ed..85c602f 100644 (file)
@@ -1,2 +1,2 @@
-extern concptr do_daemon_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_daemon_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
 
index e7532be..3353614 100644 (file)
@@ -18,7 +18,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_death_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -26,7 +26,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -155,7 +155,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_pois(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_pois(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -207,7 +207,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        POSITION rad = (plev < 30) ? 2 : 3;
                        int base;
 
-                       if (IS_WIZARD_CLASS(p_ptr))
+                       if (IS_WIZARD_CLASS(caster_ptr))
                                base = plev + plev / 2;
                        else
                                base = plev + plev / 4;
@@ -255,7 +255,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               project(0, rad, p_ptr->y, p_ptr->x, dam, GF_POIS, PROJECT_KILL | PROJECT_ITEM, -1);
+                               project(0, rad, caster_ptr->y, caster_ptr->x, dam, GF_POIS, PROJECT_KILL | PROJECT_ITEM, -1);
                        }
                }
                break;
@@ -310,10 +310,10 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                                if (hypodynamic_bolt(dir, dam))
                                {
-                                       chg_virtue(p_ptr, V_SACRIFICE, -1);
-                                       chg_virtue(p_ptr, V_VITALITY, -1);
+                                       chg_virtue(caster_ptr, V_SACRIFICE, -1);
+                                       chg_virtue(caster_ptr, V_VITALITY, -1);
 
-                                       hp_player(p_ptr, dam);
+                                       hp_player(caster_ptr, dam);
 
                                        /*
                                        * Gain nutritional sustenance:
@@ -326,11 +326,11 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        * ARE Gorged, it won't cure
                                        * us
                                        */
-                                       dam = p_ptr->food + MIN(5000, 100 * dam);
+                                       dam = caster_ptr->food + MIN(5000, 100 * dam);
 
                                        /* Not gorged already */
-                                       if (p_ptr->food < PY_FOOD_MAX)
-                                               set_food(p_ptr, dam >= PY_FOOD_MAX ? PY_FOOD_MAX - 1 : dam);
+                                       if (caster_ptr->food < PY_FOOD_MAX)
+                                               set_food(caster_ptr, dam >= PY_FOOD_MAX ? PY_FOOD_MAX - 1 : dam);
                                }
                        }
                }
@@ -343,7 +343,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               animate_dead(0, p_ptr->y, p_ptr->x);
+                               animate_dead(0, caster_ptr->y, caster_ptr->x);
                        }
                }
                break;
@@ -431,7 +431,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                (void)berserk(b_base + randint1(b_base));
-                               set_fast(p_ptr, randint1(sp_sides) + sp_base, FALSE);
+                               set_fast(caster_ptr, randint1(sp_sides) + sp_base, FALSE);
                        }
                }
                break;
@@ -463,13 +463,13 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                                if (!get_aim_dir(&dir)) return NULL;
 
-                               chg_virtue(p_ptr, V_SACRIFICE, -1);
-                               chg_virtue(p_ptr, V_VITALITY, -1);
+                               chg_virtue(caster_ptr, V_SACRIFICE, -1);
+                               chg_virtue(caster_ptr, V_VITALITY, -1);
 
                                for (i = 0; i < 3; i++)
                                {
                                        if (hypodynamic_bolt(dir, dam))
-                                               hp_player(p_ptr, dam);
+                                               hp_player(caster_ptr, dam);
                                }
                        }
                }
@@ -527,7 +527,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
        case 25:
                if (name) return _("死者召喚", "Raise the Dead");
                if (desc) return _("1体のアンデッドを召喚する。", "Summons an undead monster.");
-               if (cast) cast_summon_undead(p_ptr, (plev * 3) / 2);
+               if (cast) cast_summon_undead(caster_ptr, (plev * 3) / 2);
                break;
 
        case 26:
@@ -562,7 +562,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_mimic(p_ptr, base + randint1(base), MIMIC_VAMPIRE, FALSE);
+                               set_mimic(caster_ptr, base + randint1(base), MIMIC_VAMPIRE, FALSE);
                        }
                }
                break;
@@ -574,7 +574,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               restore_level(p_ptr);
+                               restore_level(caster_ptr);
                        }
                }
                break;
@@ -612,7 +612,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                if (!get_aim_dir(&dir)) return NULL;
 
                                fire_ball(GF_HELL_FIRE, dir, dam, rad);
-                               take_hit(p_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("地獄の劫火の呪文を唱えた疲労", "the strain of casting Hellfire"), -1);
+                               take_hit(caster_ptr, DAMAGE_USELIFE, 20 + randint1(30), _("地獄の劫火の呪文を唱えた疲労", "the strain of casting Hellfire"), -1);
                        }
                }
                break;
@@ -629,7 +629,7 @@ concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_wraith_form(p_ptr, randint1(base) + base, FALSE);
+                               set_wraith_form(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
index b7fee63..84f0af0 100644 (file)
@@ -1 +1 @@
-extern concptr do_death_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_death_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index a2847ff..0e431c2 100644 (file)
@@ -337,7 +337,7 @@ bool multiply_barrier(MONSTER_IDX m_idx)
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST / SPELL_CONT / SPELL_STOP)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_CONT / SPELL_STOP 時はNULL文字列を返す。
 */
-concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_hex_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -348,7 +348,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
        bool add = TRUE;
 
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
        HIT_POINT power;
 
        switch (spell)
@@ -359,14 +359,14 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("祝福により攻撃精度と防御力が上がる。", "Attempts to increase +to_hit of a weapon and AC");
                if (cast)
                {
-                       if (!p_ptr->blessed)
+                       if (!caster_ptr->blessed)
                        {
                                msg_print(_("高潔な気分になった!", "You feel righteous!"));
                        }
                }
                if (stop)
                {
-                       if (!p_ptr->blessed)
+                       if (!caster_ptr->blessed)
                        {
                                msg_print(_("高潔な気分が消え失せた。", "The prayer has expired."));
                        }
@@ -490,7 +490,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                o_ptr->curse_flags |= get_curse(curse_rank, o_ptr);
                        }
 
-                       p_ptr->update |= (PU_BONUS);
+                       caster_ptr->update |= (PU_BONUS);
                        add = FALSE;
                }
                break;
@@ -509,22 +509,22 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (name) return _("我慢", "Patience");
                if (desc) return _("数ターン攻撃を耐えた後、受けたダメージを地獄の業火として周囲に放出する。",
                        "Bursts hell fire strongly after patients any damage while few turns.");
-               power = MIN(200, (HEX_REVENGE_POWER(p_ptr) * 2));
+               power = MIN(200, (HEX_REVENGE_POWER(caster_ptr) * 2));
                if (info) return info_damage(0, 0, power);
                if (cast)
                {
-                       int a = 3 - (p_ptr->pspeed - 100) / 10;
+                       int a = 3 - (caster_ptr->pspeed - 100) / 10;
                        MAGIC_NUM2 r = 3 + randint1(3) + MAX(0, MIN(3, a));
 
-                       if (HEX_REVENGE_TURN(p_ptr) > 0)
+                       if (HEX_REVENGE_TURN(caster_ptr) > 0)
                        {
                                msg_print(_("すでに我慢をしている。", "You are already patienting."));
                                return NULL;
                        }
 
-                       HEX_REVENGE_TYPE(p_ptr) = 1;
-                       HEX_REVENGE_TURN(p_ptr) = r;
-                       HEX_REVENGE_POWER(p_ptr) = 0;
+                       HEX_REVENGE_TYPE(caster_ptr) = 1;
+                       HEX_REVENGE_TURN(caster_ptr) = r;
+                       HEX_REVENGE_POWER(caster_ptr) = 0;
                        msg_print(_("じっと耐えることにした。", "You decide to patient all damages."));
                        add = FALSE;
                }
@@ -532,25 +532,25 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        POSITION rad = 2 + (power / 50);
 
-                       HEX_REVENGE_TURN(p_ptr)--;
+                       HEX_REVENGE_TURN(caster_ptr)--;
 
-                       if ((HEX_REVENGE_TURN(p_ptr) <= 0) || (power >= 200))
+                       if ((HEX_REVENGE_TURN(caster_ptr) <= 0) || (power >= 200))
                        {
                                msg_print(_("我慢が解かれた!", "Time for end of patioence!"));
                                if (power)
                                {
-                                       project(0, rad, p_ptr->y, p_ptr->x, power, GF_HELL_FIRE,
+                                       project(0, rad, caster_ptr->y, caster_ptr->x, power, GF_HELL_FIRE,
                                                (PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL), -1);
                                }
-                               if (p_ptr->wizard)
+                               if (caster_ptr->wizard)
                                {
                                        msg_format(_("%d点のダメージを返した。", "You return %d damages."), power);
                                }
 
                                /* Reset */
-                               HEX_REVENGE_TYPE(p_ptr) = 0;
-                               HEX_REVENGE_TURN(p_ptr) = 0;
-                               HEX_REVENGE_POWER(p_ptr) = 0;
+                               HEX_REVENGE_TYPE(caster_ptr) = 0;
+                               HEX_REVENGE_TURN(caster_ptr) = 0;
+                               HEX_REVENGE_POWER(caster_ptr) = 0;
                        }
                }
                break;
@@ -585,9 +585,9 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("呪文詠唱を中止することなく、薬の効果を得ることができる。", "Quaffs a potion without canceling of casting a spell.");
                if (cast)
                {
-                       CASTING_HEX_FLAGS(p_ptr) |= (1L << HEX_INHAIL);
+                       CASTING_HEX_FLAGS(caster_ptr) |= (1L << HEX_INHAIL);
                        do_cmd_quaff_potion();
-                       CASTING_HEX_FLAGS(p_ptr) &= ~(1L << HEX_INHAIL);
+                       CASTING_HEX_FLAGS(caster_ptr) &= ~(1L << HEX_INHAIL);
                        add = FALSE;
                }
                break;
@@ -613,7 +613,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
 #ifdef JP
                        msg_print("あなたの武器が黒く輝いた。");
 #else
-                       if (!empty_hands(p_ptr, FALSE))
+                       if (!empty_hands(caster_ptr, FALSE))
                                msg_print("Your weapons glow bright black.");
                        else
                                msg_print("Your weapon glows bright black.");
@@ -624,7 +624,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
 #ifdef JP
                        msg_print("武器の輝きが消え去った。");
 #else
-                       msg_format("Brightness of weapon%s disappeared.", (empty_hands(p_ptr, FALSE)) ? "" : "s");
+                       msg_format("Brightness of weapon%s disappeared.", (empty_hands(caster_ptr, FALSE)) ? "" : "s");
 #endif
                }
                break;
@@ -709,7 +709,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                }
                if (cast || cont)
                {
-                       animate_dead(0, p_ptr->y, p_ptr->x);
+                       animate_dead(0, caster_ptr->y, caster_ptr->x);
                }
                break;
 
@@ -731,7 +731,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        o_ptr = choose_object(&item, q, s, (USE_EQUIP), 0);
                        if (!o_ptr) return FALSE;
 
-                       o_ptr = &p_ptr->inventory_list[item];
+                       o_ptr = &caster_ptr->inventory_list[item];
                        object_desc(o_name, o_ptr, OD_NAME_ONLY);
                        object_flags(o_ptr, f);
 
@@ -788,7 +788,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                o_ptr->curse_flags |= get_curse(curse_rank, o_ptr);
                        }
 
-                       p_ptr->update |= (PU_BONUS);
+                       caster_ptr->update |= (PU_BONUS);
                        add = FALSE;
                }
                break;
@@ -798,7 +798,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("影のオーラを身にまとい、敵に影のダメージを与える。", "Gives aura of shadow.");
                if (cast)
                {
-                       object_type *o_ptr = &p_ptr->inventory_list[INVEN_OUTER];
+                       object_type *o_ptr = &caster_ptr->inventory_list[INVEN_OUTER];
 
                        if (!o_ptr->k_idx)
                        {
@@ -817,14 +817,14 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                }
                if (cont)
                {
-                       object_type *o_ptr = &p_ptr->inventory_list[INVEN_OUTER];
+                       object_type *o_ptr = &caster_ptr->inventory_list[INVEN_OUTER];
 
                        if ((!o_ptr->k_idx) || (!object_is_cursed(o_ptr)))
                        {
                                exe_spell(REALM_HEX, spell, SPELL_STOP);
-                               CASTING_HEX_FLAGS(p_ptr) &= ~(1L << spell);
-                               CASTING_HEX_NUM(p_ptr)--;
-                               if (!SINGING_SONG_ID(p_ptr)) set_action(p_ptr, ACTION_NONE);
+                               CASTING_HEX_FLAGS(caster_ptr) &= ~(1L << spell);
+                               CASTING_HEX_NUM(caster_ptr)--;
+                               if (!SINGING_SONG_ID(caster_ptr)) set_action(caster_ptr, ACTION_NONE);
                        }
                }
                if (stop)
@@ -873,34 +873,34 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (cast || cont)
                {
                        bool flag = FALSE;
-                       int d = (p_ptr->max_exp - p_ptr->exp);
-                       int r = (p_ptr->exp / 20);
+                       int d = (caster_ptr->max_exp - caster_ptr->exp);
+                       int r = (caster_ptr->exp / 20);
                        int i;
 
                        if (d > 0)
                        {
                                if (d < r)
-                                       p_ptr->exp = p_ptr->max_exp;
+                                       caster_ptr->exp = caster_ptr->max_exp;
                                else
-                                       p_ptr->exp += r;
+                                       caster_ptr->exp += r;
 
                                /* Check the experience */
-                               check_experience(p_ptr);
+                               check_experience(caster_ptr);
 
                                flag = TRUE;
                        }
                        for (i = A_STR; i < A_MAX; i++)
                        {
-                               if (p_ptr->stat_cur[i] < p_ptr->stat_max[i])
+                               if (caster_ptr->stat_cur[i] < caster_ptr->stat_max[i])
                                {
-                                       if (p_ptr->stat_cur[i] < 18)
-                                               p_ptr->stat_cur[i]++;
+                                       if (caster_ptr->stat_cur[i] < 18)
+                                               caster_ptr->stat_cur[i]++;
                                        else
-                                               p_ptr->stat_cur[i] += 10;
+                                               caster_ptr->stat_cur[i] += 10;
 
-                                       if (p_ptr->stat_cur[i] > p_ptr->stat_max[i])
-                                               p_ptr->stat_cur[i] = p_ptr->stat_max[i];
-                                       p_ptr->update |= (PU_BONUS);
+                                       if (caster_ptr->stat_cur[i] > caster_ptr->stat_max[i])
+                                               caster_ptr->stat_cur[i] = caster_ptr->stat_max[i];
+                                       caster_ptr->update |= (PU_BONUS);
 
                                        flag = TRUE;
                                }
@@ -909,12 +909,12 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!flag)
                        {
                                msg_format(_("%sの呪文の詠唱をやめた。", "Finish casting '%^s'."), exe_spell(REALM_HEX, HEX_RESTORE, SPELL_NAME));
-                               CASTING_HEX_FLAGS(p_ptr) &= ~(1L << HEX_RESTORE);
-                               if (cont) CASTING_HEX_NUM(p_ptr)--;
-                               if (CASTING_HEX_NUM(p_ptr)) p_ptr->action = ACTION_NONE;
+                               CASTING_HEX_FLAGS(caster_ptr) &= ~(1L << HEX_RESTORE);
+                               if (cont) CASTING_HEX_NUM(caster_ptr)--;
+                               if (CASTING_HEX_NUM(caster_ptr)) caster_ptr->action = ACTION_NONE;
 
-                               p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
-                               p_ptr->redraw |= (PR_EXTRA);
+                               caster_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
+                               caster_ptr->redraw |= (PR_EXTRA);
 
                                return "";
                        }
@@ -940,9 +940,9 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        object_flags(o_ptr, f);
 
-                       p_ptr->csp += (p_ptr->lev / 5) + randint1(p_ptr->lev / 5);
-                       if (have_flag(f, TR_TY_CURSE) || (o_ptr->curse_flags & TRC_TY_CURSE)) p_ptr->csp += randint1(5);
-                       if (p_ptr->csp > p_ptr->msp) p_ptr->csp = p_ptr->msp;
+                       caster_ptr->csp += (caster_ptr->lev / 5) + randint1(caster_ptr->lev / 5);
+                       if (have_flag(f, TR_TY_CURSE) || (o_ptr->curse_flags & TRC_TY_CURSE)) caster_ptr->csp += randint1(5);
+                       if (caster_ptr->csp > caster_ptr->msp) caster_ptr->csp = caster_ptr->msp;
 
                        if (o_ptr->curse_flags & TRC_PERMA_CURSE)
                        {
@@ -974,7 +974,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
 #ifdef JP
                        msg_print("あなたの武器が血を欲している。");
 #else
-                       if (!empty_hands(p_ptr, FALSE))
+                       if (!empty_hands(caster_ptr, FALSE))
                                msg_print("Your weapons want more blood now.");
                        else
                                msg_print("Your weapon wants more blood now.");
@@ -985,7 +985,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
 #ifdef JP
                        msg_print("武器の渇望が消え去った。");
 #else
-                       msg_format("Thirsty of weapon%s disappeared.", (empty_hands(p_ptr, FALSE)) ? "" : "s");
+                       msg_format("Thirsty of weapon%s disappeared.", (empty_hands(caster_ptr, FALSE)) ? "" : "s");
 #endif
                }
                break;
@@ -1025,7 +1025,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                }
 
                                if (!cave_empty_bold(y, x) || (current_floor_ptr->grid_array[y][x].info & CAVE_ICKY) ||
-                                       (distance(y, x, p_ptr->y, p_ptr->x) > plev + 2))
+                                       (distance(y, x, caster_ptr->y, caster_ptr->x) > plev + 2))
                                {
                                        msg_print(_("そこには移動できない。", "Can not teleport to there."));
                                        continue;
@@ -1062,30 +1062,30 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (name) return _("復讐の宣告", "Revenge sentence");
                if (desc) return _("数ターン後にそれまで受けたダメージに応じた威力の地獄の劫火の弾を放つ。",
                        "Fires  a ball of hell fire to try revenging after few turns.");
-               power = HEX_REVENGE_POWER(p_ptr);
+               power = HEX_REVENGE_POWER(caster_ptr);
                if (info) return info_damage(0, 0, power);
                if (cast)
                {
                        MAGIC_NUM2 r;
-                       int a = 3 - (p_ptr->pspeed - 100) / 10;
+                       int a = 3 - (caster_ptr->pspeed - 100) / 10;
                        r = 1 + randint1(2) + MAX(0, MIN(3, a));
 
-                       if (HEX_REVENGE_TURN(p_ptr) > 0)
+                       if (HEX_REVENGE_TURN(caster_ptr) > 0)
                        {
                                msg_print(_("すでに復讐は宣告済みだ。", "You already pronounced your revenge."));
                                return NULL;
                        }
 
-                       HEX_REVENGE_TYPE(p_ptr) = 2;
-                       HEX_REVENGE_TURN(p_ptr) = r;
+                       HEX_REVENGE_TYPE(caster_ptr) = 2;
+                       HEX_REVENGE_TURN(caster_ptr) = r;
                        msg_format(_("あなたは復讐を宣告した。あと %d ターン。", "You pronounce your revenge. %d turns left."), r);
                        add = FALSE;
                }
                if (cont)
                {
-                       HEX_REVENGE_TURN(p_ptr)--;
+                       HEX_REVENGE_TURN(caster_ptr)--;
 
-                       if (HEX_REVENGE_TURN(p_ptr) <= 0)
+                       if (HEX_REVENGE_TURN(caster_ptr) <= 0)
                        {
                                DIRECTION dir;
 
@@ -1100,7 +1100,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                                        fire_ball(GF_HELL_FIRE, dir, power, 1);
 
-                                       if (p_ptr->wizard)
+                                       if (caster_ptr->wizard)
                                        {
                                                msg_format(_("%d点のダメージを返した。", "You return %d damages."), power);
                                        }
@@ -1109,7 +1109,7 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                {
                                        msg_print(_("復讐する気が失せた。", "You are not a mood to revenge."));
                                }
-                               HEX_REVENGE_POWER(p_ptr) = 0;
+                               HEX_REVENGE_POWER(caster_ptr) = 0;
                        }
                }
                break;
@@ -1119,16 +1119,16 @@ concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode)
        if ((cast) && (add))
        {
                /* add spell */
-               CASTING_HEX_FLAGS(p_ptr) |= 1L << (spell);
-               CASTING_HEX_NUM(p_ptr)++;
+               CASTING_HEX_FLAGS(caster_ptr) |= 1L << (spell);
+               CASTING_HEX_NUM(caster_ptr)++;
 
-               if (p_ptr->action != ACTION_SPELL) set_action(p_ptr, ACTION_SPELL);
+               if (caster_ptr->action != ACTION_SPELL) set_action(caster_ptr, ACTION_SPELL);
        }
 
        if (!info)
        {
-               p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
-               p_ptr->redraw |= (PR_EXTRA | PR_HP | PR_MANA);
+               caster_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
+               caster_ptr->redraw |= (PR_EXTRA | PR_HP | PR_MANA);
        }
 
        return "";
index f5be0c0..4d605d5 100644 (file)
@@ -58,5 +58,5 @@ extern void revenge_store(HIT_POINT dam);
 extern bool teleport_barrier(MONSTER_IDX m_idx);
 extern bool magic_barrier(MONSTER_IDX m_idx);
 extern bool multiply_barrier(MONSTER_IDX m_idx);
-extern concptr do_hex_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_hex_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
 
index ab2c8aa..4d24e6b 100644 (file)
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_hissatsu_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -70,22 +70,22 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cdir == 8) return NULL;
 
-                       y = p_ptr->y + ddy_cdd[cdir];
-                       x = p_ptr->x + ddx_cdd[cdir];
+                       y = caster_ptr->y + ddy_cdd[cdir];
+                       x = caster_ptr->x + ddx_cdd[cdir];
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, 0);
                        else
                                msg_print(_("攻撃は空を切った。", "You attack the empty air."));
 
-                       y = p_ptr->y + ddy_cdd[(cdir + 7) % 8];
-                       x = p_ptr->x + ddx_cdd[(cdir + 7) % 8];
+                       y = caster_ptr->y + ddy_cdd[(cdir + 7) % 8];
+                       x = caster_ptr->x + ddx_cdd[(cdir + 7) % 8];
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, 0);
                        else
                                msg_print(_("攻撃は空を切った。", "You attack the empty air."));
 
-                       y = p_ptr->y + ddy_cdd[(cdir + 1) % 8];
-                       x = p_ptr->x + ddx_cdd[(cdir + 1) % 8];
+                       y = caster_ptr->y + ddy_cdd[(cdir + 1) % 8];
+                       x = caster_ptr->x + ddx_cdd[(cdir + 1) % 8];
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, 0);
                        else
@@ -100,7 +100,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                if (cast)
                {
-                       if (!do_cmd_throw(p_ptr, 1, TRUE, -1)) return NULL;
+                       if (!do_cmd_throw(caster_ptr, 1, TRUE, -1)) return NULL;
                }
                break;
 
@@ -115,8 +115,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_FIRE);
@@ -149,8 +149,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_MINEUCHI);
@@ -169,13 +169,13 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                if (cast)
                {
-                       if (p_ptr->riding)
+                       if (caster_ptr->riding)
                        {
                                msg_print(_("乗馬中には無理だ。", "You cannot do it when riding."));
                                return NULL;
                        }
                        msg_print(_("相手の攻撃に対して身構えた。", "You prepare to counter blow."));
-                       p_ptr->counter = TRUE;
+                       caster_ptr->counter = TRUE;
                }
                break;
 
@@ -188,7 +188,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        POSITION y, x;
 
-                       if (p_ptr->riding)
+                       if (caster_ptr->riding)
                        {
                                msg_print(_("乗馬中には無理だ。", "You cannot do it when riding."));
                                return NULL;
@@ -197,8 +197,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
 
                        if (dir == 5) return NULL;
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (!current_floor_ptr->grid_array[y][x].m_idx)
                        {
@@ -217,7 +217,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (player_can_enter(current_floor_ptr->grid_array[y][x].feat, 0) && !is_trap(current_floor_ptr->grid_array[y][x].feat) && !current_floor_ptr->grid_array[y][x].m_idx)
                        {
                                msg_print(NULL);
-                               (void)move_player_effect(p_ptr, y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
+                               (void)move_player_effect(caster_ptr, y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
                        }
                }
                break;
@@ -233,8 +233,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_POISON);
@@ -258,8 +258,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_ZANMA);
@@ -282,8 +282,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, 0);
@@ -292,7 +292,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
                                return NULL;
                        }
-                       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
+                       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
                        {
                                return "";
                        }
@@ -331,7 +331,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        lite_spot(ty, tx);
 
                                        if (r_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))
-                                               p_ptr->update |= (PU_MON_LITE);
+                                               caster_ptr->update |= (PU_MON_LITE);
                                }
                        }
                }
@@ -366,8 +366,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_HAGAN);
@@ -376,7 +376,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        /* Destroy the feature */
                        cave_alter_feat(y, x, FF_HURT_ROCK);
-                       p_ptr->update |= (PU_FLOW);
+                       caster_ptr->update |= (PU_FLOW);
                }
                break;
 
@@ -392,8 +392,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_COLD);
@@ -417,8 +417,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_KYUSHO);
@@ -442,8 +442,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_MAJIN);
@@ -467,8 +467,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_SUTEMI);
@@ -477,7 +477,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
                                return NULL;
                        }
-                       p_ptr->sutemi = TRUE;
+                       caster_ptr->sutemi = TRUE;
                }
                break;
 
@@ -493,8 +493,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_ELEC);
@@ -528,15 +528,15 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        grid_type       *g_ptr;
                        monster_type    *m_ptr;
 
-                       if (p_ptr->cut < 300)
-                               set_cut(p_ptr,p_ptr->cut + 300);
+                       if (caster_ptr->cut < 300)
+                               set_cut(caster_ptr,caster_ptr->cut + 300);
                        else
-                               set_cut(p_ptr,p_ptr->cut * 2);
+                               set_cut(caster_ptr,caster_ptr->cut * 2);
 
                        for (dir = 0; dir < 8; dir++)
                        {
-                               y = p_ptr->y + ddy_ddd[dir];
-                               x = p_ptr->x + ddx_ddd[dir];
+                               y = caster_ptr->y + ddy_ddd[dir];
+                               x = caster_ptr->x + ddx_ddd[dir];
                                g_ptr = &current_floor_ptr->grid_array[y][x];
                                m_ptr = &current_floor_ptr->m_list[g_ptr->m_idx];
 
@@ -567,13 +567,13 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_QUAKE);
                        else
-                               earthquake(p_ptr->y, p_ptr->x, 10, 0);
+                               earthquake(caster_ptr->y, caster_ptr->x, 10, 0);
                }
                break;
 
@@ -592,8 +592,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                int damage;
 
-                               if (!has_melee_weapon(p_ptr, INVEN_RARM + i)) break;
-                               o_ptr = &p_ptr->inventory_list[INVEN_RARM + i];
+                               if (!has_melee_weapon(caster_ptr, INVEN_RARM + i)) break;
+                               o_ptr = &caster_ptr->inventory_list[INVEN_RARM + i];
                                basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
                                damage = o_ptr->to_d * 100;
                                object_flags(o_ptr, flgs);
@@ -610,7 +610,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        basedam /= 9;
                                }
                                damage += basedam;
-                               damage *= p_ptr->num_blow[i];
+                               damage *= caster_ptr->num_blow[i];
                                total_damage += damage / 200;
                                if (i) total_damage = total_damage * 7 / 10;
                        }
@@ -650,8 +650,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                grid_type *g_ptr;
                                monster_type *m_ptr;
 
-                               y = p_ptr->y + ddy[dir];
-                               x = p_ptr->x + ddx[dir];
+                               y = caster_ptr->y + ddy[dir];
+                               x = caster_ptr->x + ddx[dir];
                                g_ptr = &current_floor_ptr->grid_array[y][x];
 
                                if (g_ptr->m_idx)
@@ -662,7 +662,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        return NULL;
                                }
 
-                               if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
+                               if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
                                {
                                        return "";
                                }
@@ -699,7 +699,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                /* Player can move forward? */
                                if (player_can_enter(g_ptr->feat, 0))
                                {
-                                       if (!move_player_effect(p_ptr, y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP)) break;
+                                       if (!move_player_effect(caster_ptr, y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP)) break;
                                }
                                else
                                {
@@ -724,8 +724,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_DRAIN);
@@ -767,23 +767,23 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                if (is_new)
                                {
                                        /* Reserve needed mana point */
-                                       p_ptr->csp -= technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
+                                       caster_ptr->csp -= technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
                                        is_new = FALSE;
                                }
                                else
-                                       p_ptr->csp -= mana_cost_per_monster;
+                                       caster_ptr->csp -= mana_cost_per_monster;
 
                                if (!mdeath) break;
                                command_dir = 0;
 
-                               p_ptr->redraw |= PR_MANA;
+                               caster_ptr->redraw |= PR_MANA;
                                handle_stuff();
-                       } while (p_ptr->csp > mana_cost_per_monster);
+                       } while (caster_ptr->csp > mana_cost_per_monster);
 
                        if (is_new) return NULL;
 
                        /* Restore reserved mana */
-                       p_ptr->csp += technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
+                       caster_ptr->csp += technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
                }
                break;
 
@@ -799,13 +799,13 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!tgt_pt(&x, &y)) return NULL;
 
                        if (!cave_player_teleportable_bold(y, x, 0L) ||
-                               (distance(y, x, p_ptr->y, p_ptr->x) > MAX_SIGHT / 2) ||
-                               !projectable(p_ptr->y, p_ptr->x, y, x))
+                               (distance(y, x, caster_ptr->y, caster_ptr->x) > MAX_SIGHT / 2) ||
+                               !projectable(caster_ptr->y, caster_ptr->x, y, x))
                        {
                                msg_print(_("失敗!", "You cannot move to that place!"));
                                break;
                        }
-                       if (p_ptr->anti_tele)
+                       if (caster_ptr->anti_tele)
                        {
                                msg_print(_("不思議な力がテレポートを防いだ!", "A mysterious force prevents you from teleporting!"));
                                break;
@@ -825,8 +825,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (!get_rep_dir(&dir, FALSE)) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                        {
@@ -859,10 +859,10 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
-                       if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
+                       if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_NO_MELEE)
                        {
                                msg_print(_("なぜか攻撃することができない。", "Something prevent you from attacking."));
                                return "";
@@ -871,8 +871,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        for (i = 0; i < 2; i++)
                        {
                                int damage;
-                               if (!has_melee_weapon(p_ptr, INVEN_RARM + i)) break;
-                               o_ptr = &p_ptr->inventory_list[INVEN_RARM + i];
+                               if (!has_melee_weapon(caster_ptr, INVEN_RARM + i)) break;
+                               o_ptr = &caster_ptr->inventory_list[INVEN_RARM + i];
                                basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
                                damage = o_ptr->to_d * 100;
                                object_flags(o_ptr, flgs);
@@ -889,8 +889,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        basedam /= 9;
                                }
                                damage += basedam;
-                               damage += p_ptr->to_d[i] * 100;
-                               damage *= p_ptr->num_blow[i];
+                               damage += caster_ptr->to_d[i] * 100;
+                               damage *= caster_ptr->num_blow[i];
                                total_damage += (damage / 100);
                        }
                        project(0, (cave_have_flag_bold(y, x, FF_PROJECT) ? 5 : 0), y, x, total_damage * 3 / 2, GF_METEOR, PROJECT_KILL | PROJECT_JUMP | PROJECT_ITEM, -1);
@@ -909,8 +909,8 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (!get_direction(&dir, FALSE, FALSE)) return NULL;
                        if (dir == 5) return NULL;
 
-                       y = p_ptr->y + ddy[dir];
-                       x = p_ptr->x + ddx[dir];
+                       y = caster_ptr->y + ddy[dir];
+                       x = caster_ptr->x + ddx[dir];
 
                        if (current_floor_ptr->grid_array[y][x].m_idx)
                                py_attack(y, x, HISSATSU_UNDEAD);
@@ -919,7 +919,7 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
                                return NULL;
                        }
-                       take_hit(p_ptr, DAMAGE_NOESCAPE, 100 + randint1(100), _("慶雲鬼忍剣を使った衝撃", "exhaustion on using Keiun-Kininken"), -1);
+                       take_hit(caster_ptr, DAMAGE_NOESCAPE, 100 + randint1(100), _("慶雲鬼忍剣を使った衝撃", "exhaustion on using Keiun-Kininken"), -1);
                }
                break;
 
@@ -938,15 +938,15 @@ concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        i = inkey();
                        prt("", 0, 0);
                        if (i != '@') return NULL;
-                       if (p_ptr->total_winner)
+                       if (caster_ptr->total_winner)
                        {
-                               take_hit(p_ptr, DAMAGE_FORCE, 9999, "Seppuku", -1);
-                               p_ptr->total_winner = TRUE;
+                               take_hit(caster_ptr, DAMAGE_FORCE, 9999, "Seppuku", -1);
+                               caster_ptr->total_winner = TRUE;
                        }
                        else
                        {
                                msg_print(_("武士道とは、死ぬことと見つけたり。", "Meaning of Bushi-do is found in the death."));
-                               take_hit(p_ptr, DAMAGE_FORCE, 9999, "Seppuku", -1);
+                               take_hit(caster_ptr, DAMAGE_FORCE, 9999, "Seppuku", -1);
                        }
                }
                break;
index f7e9f4e..063541c 100644 (file)
@@ -1 +1 @@
-extern concptr do_hissatsu_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_hissatsu_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index ce7f53f..f46c34c 100644 (file)
@@ -14,7 +14,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_life_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -22,7 +22,7 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -47,7 +47,7 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_blessed(p_ptr, randint1(base) + base, FALSE);
+                               set_blessed(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -121,7 +121,7 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               set_poisoned(p_ptr, 0);
+                               set_poisoned(caster_ptr, 0);
                        }
                }
                break;
@@ -132,7 +132,7 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               set_food(p_ptr, PY_FOOD_MAX - 1);
+                               set_food(caster_ptr, PY_FOOD_MAX - 1);
                        }
                }
                break;
@@ -186,8 +186,8 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_cold(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_fire(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_cold(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_fire(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -327,7 +327,7 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               if (!recall_player(p_ptr, randint0(21) + 15)) return NULL;
+                               if (!recall_player(caster_ptr, randint0(21) + 15)) return NULL;
                        }
                }
                break;
@@ -431,7 +431,7 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                (void)restore_all_status();
-                               restore_level(p_ptr);
+                               restore_level(caster_ptr);
                        }
                }
                break;
@@ -471,13 +471,13 @@ concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                TIME_EFFECT v = randint1(base) + base;
-                               set_fast(p_ptr, v, FALSE);
-                               set_oppose_acid(p_ptr, v, FALSE);
-                               set_oppose_elec(p_ptr, v, FALSE);
-                               set_oppose_fire(p_ptr, v, FALSE);
-                               set_oppose_cold(p_ptr, v, FALSE);
-                               set_oppose_pois(p_ptr, v, FALSE);
-                               set_ultimate_res(p_ptr, v, FALSE);
+                               set_fast(caster_ptr, v, FALSE);
+                               set_oppose_acid(caster_ptr, v, FALSE);
+                               set_oppose_elec(caster_ptr, v, FALSE);
+                               set_oppose_fire(caster_ptr, v, FALSE);
+                               set_oppose_cold(caster_ptr, v, FALSE);
+                               set_oppose_pois(caster_ptr, v, FALSE);
+                               set_ultimate_res(caster_ptr, v, FALSE);
                        }
                }
                break;
index fe0607f..a3ab4d5 100644 (file)
@@ -1 +1 @@
-extern concptr do_life_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_life_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index 4f07beb..b645402 100644 (file)
@@ -20,7 +20,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_nature_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -28,7 +28,7 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -102,7 +102,7 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
 
                                /* Drop the object from heaven */
-                               (void)drop_near(q_ptr, -1, p_ptr->y, p_ptr->x);
+                               (void)drop_near(q_ptr, -1, caster_ptr->y, caster_ptr->x);
                        }
                }
                break;
@@ -122,10 +122,10 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                lite_area(damroll(dice, sides), rad);
 
-                               if ((PRACE_IS_(p_ptr, RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
+                               if ((PRACE_IS_(caster_ptr, RACE_VAMPIRE) || (caster_ptr->mimic_form == MIMIC_VAMPIRE)) && !caster_ptr->resist_lite)
                                {
                                        msg_print(_("日の光があなたの肉体を焦がした!", "The daylight scorches your flesh!"));
-                                       take_hit(p_ptr, DAMAGE_NOESCAPE, damroll(2, 2), _("日の光", "daylight"), -1);
+                                       take_hit(caster_ptr, DAMAGE_NOESCAPE, damroll(2, 2), _("日の光", "daylight"), -1);
                                }
                        }
                }
@@ -161,9 +161,9 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_cold(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_fire(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_elec(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_cold(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_fire(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_elec(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -180,9 +180,9 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               hp_player(p_ptr, damroll(dice, sides));
-                               set_cut(p_ptr,0);
-                               set_poisoned(p_ptr, 0);
+                               hp_player(caster_ptr, damroll(dice, sides));
+                               set_cut(caster_ptr,0);
+                               set_poisoned(caster_ptr, 0);
                        }
                }
                break;
@@ -301,7 +301,7 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
                {
                        if (cast)
                        {
-                               if (!(summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET))))
+                               if (!(summon_specific(-1, caster_ptr->y, caster_ptr->x, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET))))
                                {
                                        msg_print(_("動物は現れなかった。", "No animals arrive."));
                                }
@@ -344,7 +344,7 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_shield(p_ptr, randint1(sides) + base, FALSE);
+                               set_shield(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -361,11 +361,11 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_oppose_acid(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_elec(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_fire(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_cold(p_ptr, randint1(base) + base, FALSE);
-                               set_oppose_pois(p_ptr, randint1(base) + base, FALSE);
+                               set_oppose_acid(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_elec(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_fire(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_cold(caster_ptr, randint1(base) + base, FALSE);
+                               set_oppose_pois(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
@@ -441,7 +441,7 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               earthquake(p_ptr->y, p_ptr->x, rad, 0);
+                               earthquake(caster_ptr->y, caster_ptr->x, rad, 0);
                        }
                }
                break;
@@ -522,14 +522,14 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                fire_ball(GF_LITE, 0, dam, rad);
-                               chg_virtue(p_ptr, V_KNOWLEDGE, 1);
-                               chg_virtue(p_ptr, V_ENLIGHTEN, 1);
+                               chg_virtue(caster_ptr, V_KNOWLEDGE, 1);
+                               chg_virtue(caster_ptr, V_ENLIGHTEN, 1);
                                wiz_lite(FALSE);
 
-                               if ((PRACE_IS_(p_ptr, RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
+                               if ((PRACE_IS_(caster_ptr, RACE_VAMPIRE) || (caster_ptr->mimic_form == MIMIC_VAMPIRE)) && !caster_ptr->resist_lite)
                                {
                                        msg_print(_("日光があなたの肉体を焦がした!", "The sunlight scorches your flesh!"));
-                                       take_hit(p_ptr, DAMAGE_NOESCAPE, 50, _("日光", "sunlight"), -1);
+                                       take_hit(caster_ptr, DAMAGE_NOESCAPE, 50, _("日光", "sunlight"), -1);
                                }
                        }
                }
@@ -563,8 +563,8 @@ concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast)
                        {
                                dispel_monsters(d_dam);
-                               earthquake(p_ptr->y, p_ptr->x, q_rad, 0);
-                               project(0, b_rad, p_ptr->y, p_ptr->x, b_dam, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM, -1);
+                               earthquake(caster_ptr->y, caster_ptr->x, q_rad, 0);
+                               project(0, b_rad, caster_ptr->y, caster_ptr->x, b_dam, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM, -1);
                        }
                }
                break;
index f3126a4..d2424eb 100644 (file)
@@ -1 +1 @@
-extern concptr do_nature_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_nature_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index 7520577..f126513 100644 (file)
@@ -39,7 +39,7 @@ static void start_singing(SPELL_IDX spell, MAGIC_NUM1 song)
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP 時はNULL文字列を返す。
 */
-concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -50,7 +50,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -59,7 +59,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターを減速させる。抵抗されると無効。", "Attempts to slow all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -84,7 +84,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("命中率とACのボーナスを得る。", "Gives bonus to hit and AC for a few turns.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -94,7 +94,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                if (stop)
                {
-                       if (!p_ptr->blessed)
+                       if (!caster_ptr->blessed)
                        {
                                msg_print(_("高潔な気分が消え失せた。", "The prayer has expired."));
                        }
@@ -107,7 +107,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("轟音のボルトを放つ。", "Fires a bolt of sound.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                {
                        DICE_NUMBER dice = 4 + (plev - 1) / 5;
@@ -129,7 +129,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターを朦朧させる。抵抗されると無効。", "Attempts to stun all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -156,7 +156,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("体力を少し回復させる。", "Heals HP a little.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -172,7 +172,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cont)
                        {
-                               hp_player(p_ptr, damroll(dice, sides));
+                               hp_player(caster_ptr, damroll(dice, sides));
                        }
                }
 
@@ -183,7 +183,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("光源が照らしている範囲か部屋全体を永久に明るくする。", "Lights up nearby area and the inside of a room permanently.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                {
                        DICE_NUMBER dice = 2;
@@ -205,7 +205,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターを恐怖させる。抵抗されると無効。", "Attempts to scare all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -231,28 +231,28 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("ヒーロー気分になる。", "Removes fear, and gives bonus to hit and 10 more HP for a while.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
                        msg_print(_("激しい戦いの歌を歌った...", "You start singing a song of intense fighting..."));
 
-                       (void)hp_player(p_ptr, 10);
-                       (void)set_afraid(p_ptr, 0);
+                       (void)hp_player(caster_ptr, 10);
+                       (void)set_afraid(caster_ptr, 0);
 
                        /* Recalculate hitpoints */
-                       p_ptr->update |= (PU_HP);
+                       caster_ptr->update |= (PU_HP);
 
                        start_singing(spell, MUSIC_HERO);
                }
 
                if (stop)
                {
-                       if (!p_ptr->hero)
+                       if (!caster_ptr->hero)
                        {
                                msg_print(_("ヒーローの気分が消え失せた。", "The heroism wears off."));
                                /* Recalculate hitpoints */
-                               p_ptr->update |= (PU_HP);
+                               caster_ptr->update |= (PU_HP);
                        }
                }
 
@@ -264,13 +264,13 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        "Detects traps, doors and stairs in your vicinity. And detects all monsters at level 15, treasures and items at level 20. Maps nearby area at level 25. Lights and know the whole level at level 40. These effects occurs by turns while this song continues.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
                        msg_print(_("静かな音楽が感覚を研ぎ澄まさせた...", "Your quiet music sharpens your sense of hearing..."));
                        /* Hack -- Initialize the current_world_ptr->game_turn count */
-                       SINGING_COUNT(p_ptr) = 0;
+                       SINGING_COUNT(caster_ptr) = 0;
                        start_singing(spell, MUSIC_DETECT);
                }
 
@@ -281,14 +281,14 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cont)
                        {
-                               int count = SINGING_COUNT(p_ptr);
+                               int count = SINGING_COUNT(caster_ptr);
 
                                if (count >= 19) wiz_lite(FALSE);
                                if (count >= 11)
                                {
                                        map_area(rad);
                                        if (plev > 39 && count < 19)
-                                               SINGING_COUNT(p_ptr) = count + 1;
+                                               SINGING_COUNT(caster_ptr) = count + 1;
                                }
                                if (count >= 6)
                                {
@@ -298,7 +298,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        detect_objects_normal(rad);
 
                                        if (plev > 24 && count < 11)
-                                               SINGING_COUNT(p_ptr) = count + 1;
+                                               SINGING_COUNT(caster_ptr) = count + 1;
                                }
                                if (count >= 3)
                                {
@@ -306,14 +306,14 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                        detect_monsters_normal(rad);
 
                                        if (plev > 19 && count < A_MAX)
-                                               SINGING_COUNT(p_ptr) = count + 1;
+                                               SINGING_COUNT(caster_ptr) = count + 1;
                                }
                                detect_traps(rad, TRUE);
                                detect_doors(rad);
                                detect_stairs(rad);
 
                                if (plev > 14 && count < 3)
-                                       SINGING_COUNT(p_ptr) = count + 1;
+                                       SINGING_COUNT(caster_ptr) = count + 1;
                        }
                }
 
@@ -324,7 +324,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターに対して精神攻撃を行う。", "Damages all monsters in sight with PSI damages.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -351,7 +351,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("自分のいるマスと隣りのマスに落ちているアイテムを鑑定する。", "Identifies all items which are in the adjacent squares.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -370,7 +370,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        */
                        if (cont || cast)
                        {
-                               project(0, rad, p_ptr->y, p_ptr->x, 0, GF_IDENTIFY, PROJECT_ITEM, -1);
+                               project(0, rad, caster_ptr->y, caster_ptr->x, 0, GF_IDENTIFY, PROJECT_ITEM, -1);
                        }
                }
 
@@ -381,7 +381,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("隠密行動能力を上昇させる。", "Gives improved stealth.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -391,7 +391,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                if (stop)
                {
-                       if (!p_ptr->tim_stealth)
+                       if (!caster_ptr->tim_stealth)
                        {
                                msg_print(_("姿がはっきりと見えるようになった。", "You are no longer hided."));
                        }
@@ -404,7 +404,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターを混乱させる。抵抗されると無効。", "Attempts to confuse all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -430,7 +430,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターに対して轟音攻撃を行う。", "Damages all monsters in sight with booming sound.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -458,12 +458,12 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                {
                        /* Stop singing before start another */
-                       if (cast || fail) stop_singing(p_ptr);
+                       if (cast || fail) stop_singing(caster_ptr);
 
                        if (cast)
                        {
                                msg_print(_("生命と復活のテーマを奏で始めた...", "The themes of life and revival are woven into your song..."));
-                               animate_dead(0, p_ptr->y, p_ptr->x);
+                               animate_dead(0, caster_ptr->y, caster_ptr->x);
                        }
                }
                break;
@@ -473,7 +473,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターを魅了する。抵抗されると無効。", "Attempts to charm all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -500,7 +500,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("壁を掘り進む。自分の足元のアイテムは蒸発する。", "Makes you be able to burrow into walls. Objects under your feet evaporate.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -515,7 +515,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        */
                        if (cont || cast)
                        {
-                               project(0, 0, p_ptr->y, p_ptr->x,
+                               project(0, 0, caster_ptr->y, caster_ptr->x,
                                        0, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM | PROJECT_HIDE, -1);
                        }
                }
@@ -527,7 +527,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        "Gives resistance to fire, cold, electricity, acid and poison. These resistances can be added to which from equipment for more powerful resistances.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -537,27 +537,27 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                if (stop)
                {
-                       if (!p_ptr->oppose_acid)
+                       if (!caster_ptr->oppose_acid)
                        {
                                msg_print(_("酸への耐性が薄れた気がする。", "You feel less resistant to acid."));
                        }
 
-                       if (!p_ptr->oppose_elec)
+                       if (!caster_ptr->oppose_elec)
                        {
                                msg_print(_("電撃への耐性が薄れた気がする。", "You feel less resistant to elec."));
                        }
 
-                       if (!p_ptr->oppose_fire)
+                       if (!caster_ptr->oppose_fire)
                        {
                                msg_print(_("火への耐性が薄れた気がする。", "You feel less resistant to fire."));
                        }
 
-                       if (!p_ptr->oppose_cold)
+                       if (!caster_ptr->oppose_cold)
                        {
                                msg_print(_("冷気への耐性が薄れた気がする。", "You feel less resistant to cold."));
                        }
 
-                       if (!p_ptr->oppose_pois)
+                       if (!caster_ptr->oppose_pois)
                        {
                                msg_print(_("毒への耐性が薄れた気がする。", "You feel less resistant to pois."));
                        }
@@ -570,7 +570,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("加速する。", "Hastes you.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -580,7 +580,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                if (stop)
                {
-                       if (!p_ptr->fast)
+                       if (!caster_ptr->fast)
                        {
                                msg_print(_("動きの素早さがなくなったようだ。", "You feel yourself slow down."));
                        }
@@ -599,12 +599,12 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (info) return info_radius(rad);
 
                        /* Stop singing before start another */
-                       if (cast || fail) stop_singing(p_ptr);
+                       if (cast || fail) stop_singing(caster_ptr);
 
                        if (cast)
                        {
                                msg_print(_("歌が空間を歪めた...", "Reality whirls wildly as you sing a dizzying melody..."));
-                               project(0, rad, p_ptr->y, p_ptr->x, power, GF_AWAY_ALL, PROJECT_KILL, -1);
+                               project(0, rad, caster_ptr->y, caster_ptr->x, power, GF_AWAY_ALL, PROJECT_KILL, -1);
                        }
                }
                break;
@@ -615,7 +615,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        "Damages all monsters in sight. Hurts evil monsters greatly.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -642,7 +642,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターを減速させ、眠らせようとする。抵抗されると無効。", "Attempts to slow and sleep all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -675,7 +675,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (info) return info_damage(dice, sides, 0);
 
                        /* Stop singing before start another */
-                       if (cast || fail) stop_singing(p_ptr);
+                       if (cast || fail) stop_singing(caster_ptr);
 
                        if (cast)
                        {
@@ -697,7 +697,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (info) return info_delay(base, sides);
 
                        /* Stop singing before start another */
-                       if (cast || fail) stop_singing(p_ptr);
+                       if (cast || fail) stop_singing(caster_ptr);
 
                        if (cast)
                        {
@@ -713,7 +713,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        "Shakes dungeon structure, and results in random swapping of floors and walls.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -728,7 +728,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cont)
                        {
-                               earthquake(p_ptr->y, p_ptr->x, 10, 0);
+                               earthquake(caster_ptr->y, caster_ptr->x, 10, 0);
                        }
                }
 
@@ -740,7 +740,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("視界内の全てのモンスターを麻痺させようとする。抵抗されると無効。", "Attempts to freeze all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -768,7 +768,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                {
                        /* Stop singing before start another */
-                       if (cast || fail) stop_singing(p_ptr);
+                       if (cast || fail) stop_singing(caster_ptr);
 
                        if (cast)
                        {
@@ -784,30 +784,30 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        "Hastes you. Gives heroism. Damages all monsters in sight.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
                        msg_print(_("英雄の歌を口ずさんだ...", "You chant a powerful, heroic call to arms..."));
-                       (void)hp_player(p_ptr, 10);
-                       (void)set_afraid(p_ptr, 0);
+                       (void)hp_player(caster_ptr, 10);
+                       (void)set_afraid(caster_ptr, 0);
 
                        /* Recalculate hitpoints */
-                       p_ptr->update |= (PU_HP);
+                       caster_ptr->update |= (PU_HP);
 
                        start_singing(spell, MUSIC_SHERO);
                }
 
                if (stop)
                {
-                       if (!p_ptr->hero)
+                       if (!caster_ptr->hero)
                        {
                                msg_print(_("ヒーローの気分が消え失せた。", "The heroism wears off."));
                                /* Recalculate hitpoints */
-                               p_ptr->update |= (PU_HP);
+                               caster_ptr->update |= (PU_HP);
                        }
 
-                       if (!p_ptr->fast)
+                       if (!caster_ptr->fast)
                        {
                                msg_print(_("動きの素早さがなくなったようだ。", "You feel yourself slow down."));
                        }
@@ -831,7 +831,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (desc) return _("強力な回復の歌で、負傷と朦朧状態も全快する。", "Powerful healing song. Also heals cut and stun completely.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
@@ -847,9 +847,9 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cont)
                        {
-                               hp_player(p_ptr, damroll(dice, sides));
-                               set_stun(p_ptr, 0);
-                               set_cut(p_ptr,0);
+                               hp_player(caster_ptr, damroll(dice, sides));
+                               set_stun(caster_ptr, 0);
+                               set_cut(caster_ptr,0);
                        }
                }
 
@@ -861,14 +861,14 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                {
                        /* Stop singing before start another */
-                       if (cast || fail) stop_singing(p_ptr);
+                       if (cast || fail) stop_singing(caster_ptr);
 
                        if (cast)
                        {
                                msg_print(_("暗黒の中に光と美をふりまいた。体が元の活力を取り戻した。",
                                        "You strewed light and beauty in the dark as you sing. You feel refreshed."));
                                (void)restore_all_status();
-                               (void)restore_level(p_ptr);
+                               (void)restore_level(caster_ptr);
                        }
                }
                break;
@@ -885,7 +885,7 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (info) return info_damage(dice, sides, 0);
 
                        /* Stop singing before start another */
-                       if (cast || fail) stop_singing(p_ptr);
+                       if (cast || fail) stop_singing(caster_ptr);
 
                        if (cast)
                        {
@@ -902,29 +902,29 @@ concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        "Generates barrier which completely protect you from almost all damages. Takes a few your turns when the barrier breaks.");
 
                /* Stop singing before start another */
-               if (cast || fail) stop_singing(p_ptr);
+               if (cast || fail) stop_singing(caster_ptr);
 
                if (cast)
                {
                        msg_print(_("フィンゴルフィンの冥王への挑戦を歌った...",
                                "You recall the valor of Fingolfin's challenge to the Dark Lord..."));
 
-                       p_ptr->redraw |= (PR_MAP);
-                       p_ptr->update |= (PU_MONSTERS);
-                       p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+                       caster_ptr->redraw |= (PR_MAP);
+                       caster_ptr->update |= (PU_MONSTERS);
+                       caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
 
                        start_singing(spell, MUSIC_INVULN);
                }
 
                if (stop)
                {
-                       if (!p_ptr->invuln)
+                       if (!caster_ptr->invuln)
                        {
                                msg_print(_("無敵ではなくなった。", "The invulnerability wears off."));
 
-                               p_ptr->redraw |= (PR_MAP);
-                               p_ptr->update |= (PU_MONSTERS);
-                               p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+                               caster_ptr->redraw |= (PR_MAP);
+                               caster_ptr->update |= (PU_MONSTERS);
+                               caster_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
                        }
                }
 
index a2e9563..1fa0d58 100644 (file)
@@ -36,4 +36,4 @@
 #define music_singing(p_ptr, X) ((p_ptr->pclass == CLASS_BARD) && (p_ptr->magic_num1[0] == (X)))
 #define music_singing_any(CREATURE_PTR) (((CREATURE_PTR)->pclass == CLASS_BARD) && (CREATURE_PTR)->magic_num1[0])
 
-extern concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index 524e61b..d6ccc01 100644 (file)
@@ -17,7 +17,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -25,7 +25,7 @@ concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -257,7 +257,7 @@ concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_fast(p_ptr, randint1(sides) + base, FALSE);
+                               set_fast(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -339,7 +339,7 @@ concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_esp(p_ptr, randint1(sides) + base, FALSE);
+                               set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -395,7 +395,7 @@ concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               if (!recall_player(p_ptr, randint0(21) + 15)) return NULL;
+                               if (!recall_player(caster_ptr, randint0(21) + 15)) return NULL;
                        }
                }
                break;
@@ -480,14 +480,14 @@ concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               chg_virtue(p_ptr, V_KNOWLEDGE, 1);
-                               chg_virtue(p_ptr, V_ENLIGHTEN, 1);
+                               chg_virtue(caster_ptr, V_KNOWLEDGE, 1);
+                               chg_virtue(caster_ptr, V_ENLIGHTEN, 1);
 
                                wiz_lite(FALSE);
 
-                               if (!p_ptr->telepathy)
+                               if (!caster_ptr->telepathy)
                                {
-                                       set_tim_esp(p_ptr, randint1(sides) + base, FALSE);
+                                       set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
                                }
                        }
                }
@@ -549,7 +549,7 @@ concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_invuln(p_ptr, randint1(base) + base, FALSE);
+                               set_invuln(caster_ptr, randint1(base) + base, FALSE);
                        }
                }
                break;
index 1767b61..9d7900c 100644 (file)
@@ -1 +1 @@
-extern concptr do_sorcery_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_sorcery_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
index 8a3207f..eb1553d 100644 (file)
@@ -18,7 +18,7 @@
 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)
 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST時はNULL文字列を返す。
 */
-concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
+concptr do_trump_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode)
 {
        bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
        bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -27,7 +27,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
        bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
 
        DIRECTION dir;
-       PLAYER_LEVEL plev = p_ptr->lev;
+       PLAYER_LEVEL plev = caster_ptr->lev;
 
        switch (spell)
        {
@@ -55,7 +55,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast || fail)
                        {
                                msg_print(_("あなたは蜘蛛のカードに集中する...", "You concentrate on the trump of an spider..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_SPIDER, PM_ALLOW_GROUP))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_SPIDER, PM_ALLOW_GROUP))
                                {
                                        if (fail)
                                        {
@@ -120,7 +120,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               set_tim_esp(p_ptr, randint1(sides) + base, FALSE);
+                               set_tim_esp(caster_ptr, randint1(sides) + base, FALSE);
                        }
                }
                break;
@@ -152,7 +152,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                int type = (!fail ? SUMMON_ANIMAL_RANGER : SUMMON_ANIMAL);
                                msg_print(_("あなたは動物のカードに集中する...", "You concentrate on the trump of an animal..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, type, 0L))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, type, 0L))
                                {
                                        if (fail)
                                        {
@@ -200,11 +200,11 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                                else
                                {
                                        /* Summons near player when failed */
-                                       x = p_ptr->x;
-                                       y = p_ptr->y;
+                                       x = caster_ptr->x;
+                                       y = caster_ptr->y;
                                }
 
-                               if (p_ptr->pclass == CLASS_BEASTMASTER)
+                               if (caster_ptr->pclass == CLASS_BEASTMASTER)
                                        type = SUMMON_KAMIKAZE_LIVING;
                                else
                                        type = SUMMON_KAMIKAZE;
@@ -231,7 +231,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                int summon_lev = plev * 2 / 3 + randint1(plev / 2);
 
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, (summon_lev * 3 / 2), SUMMON_PHANTOM, 0L))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, (summon_lev * 3 / 2), SUMMON_PHANTOM, 0L))
                                {
                                        msg_print(_("御用でございますか、御主人様?", "'Your wish, master?'"));
                                }
@@ -307,7 +307,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
 
                        if (cast)
                        {
-                               if (!recall_player(p_ptr, randint0(21) + 15)) return NULL;
+                               if (!recall_player(caster_ptr, randint0(21) + 15)) return NULL;
                        }
                }
                break;
@@ -360,7 +360,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast || fail)
                        {
                                msg_print(_("あなたはアンデッドのカードに集中する...", "You concentrate on the trump of an undead creature..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_UNDEAD, 0L))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_UNDEAD, 0L))
                                {
                                        if (fail)
                                        {
@@ -379,7 +379,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast || fail)
                        {
                                msg_print(_("あなたは爬虫類のカードに集中する...", "You concentrate on the trump of a reptile..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_HYDRA, 0L))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_HYDRA, 0L))
                                {
                                        if (fail)
                                        {
@@ -399,12 +399,12 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                int type;
                                msg_print(_("あなたはモンスターのカードに集中する...", "You concentrate on several trumps at once..."));
-                               if (p_ptr->pclass == CLASS_BEASTMASTER)
+                               if (caster_ptr->pclass == CLASS_BEASTMASTER)
                                        type = SUMMON_LIVING;
                                else
                                        type = 0;
 
-                               if (trump_summoning((1 + (plev - 15) / 10), !fail, p_ptr->y, p_ptr->x, 0, type, 0L))
+                               if (trump_summoning((1 + (plev - 15) / 10), !fail, caster_ptr->y, caster_ptr->x, 0, type, 0L))
                                {
                                        if (fail)
                                        {
@@ -424,7 +424,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast || fail)
                        {
                                msg_print(_("あなたはハウンドのカードに集中する...", "You concentrate on the trump of a hound..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_HOUND, PM_ALLOW_GROUP))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_HOUND, PM_ALLOW_GROUP))
                                {
                                        if (fail)
                                        {
@@ -451,7 +451,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                if (name) return _("人間トランプ", "Living Trump");
                if (desc) return _("ランダムにテレポートする突然変異か、自分の意思でテレポートする突然変異が身につく。",
                        "Gives mutation which makes you teleport randomly or makes you able to teleport at will.");
-               if (cast) become_living_trump(p_ptr);
+               if (cast) become_living_trump(caster_ptr);
                break;
 
        case 23:
@@ -462,7 +462,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast || fail)
                        {
                                msg_print(_("あなたはサイバーデーモンのカードに集中する...", "You concentrate on the trump of a Cyberdemon..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_CYBER, 0L))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_CYBER, 0L))
                                {
                                        if (fail)
                                        {
@@ -539,7 +539,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast || fail)
                        {
                                msg_print(_("あなたはドラゴンのカードに集中する...", "You concentrate on the trump of a dragon..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_DRAGON, 0L))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_DRAGON, 0L))
                                {
                                        if (fail)
                                        {
@@ -575,7 +575,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        if (cast || fail)
                        {
                                msg_print(_("あなたはデーモンのカードに集中する...", "You concentrate on the trump of a demon..."));
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_DEMON, 0L))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_DEMON, 0L))
                                {
                                        if (fail)
                                        {
@@ -595,7 +595,7 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                msg_print(_("あなたは強力なアンデッドのカードに集中する...", "You concentrate on the trump of a greater undead being..."));
                                /* May allow unique depend on level and dice roll */
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, SUMMON_HI_UNDEAD, PM_ALLOW_UNIQUE))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, SUMMON_HI_UNDEAD, PM_ALLOW_UNIQUE))
                                {
                                        if (fail)
                                        {
@@ -615,14 +615,14 @@ concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode)
                        {
                                int type;
 
-                               if (p_ptr->pclass == CLASS_BEASTMASTER)
+                               if (caster_ptr->pclass == CLASS_BEASTMASTER)
                                        type = SUMMON_HI_DRAGON_LIVING;
                                else
                                        type = SUMMON_HI_DRAGON;
 
                                msg_print(_("あなたは古代ドラゴンのカードに集中する...", "You concentrate on the trump of an ancient dragon..."));
                                /* May allow unique depend on level and dice roll */
-                               if (trump_summoning(1, !fail, p_ptr->y, p_ptr->x, 0, type, PM_ALLOW_UNIQUE))
+                               if (trump_summoning(1, !fail, caster_ptr->y, caster_ptr->x, 0, type, PM_ALLOW_UNIQUE))
                                {
                                        if (fail)
                                        {
index def707c..61b359f 100644 (file)
@@ -1 +1 @@
-extern concptr do_trump_spell(SPELL_IDX spell, BIT_FLAGS mode);
+extern concptr do_trump_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);