OSDN Git Service

[Refactor] #37353 コメント整理。 / Refactor comments.
[hengbandforosx/hengbandosx.git] / src / mspells3.c
index 293da9b..fa4c796 100644 (file)
@@ -16,6 +16,7 @@
 #include "avatar.h"
 #include "spells-status.h"
 #include "cmd-spell.h"
+#include "player-status.h"
 
 #define pseudo_plev() (((p_ptr->lev + 40) * (p_ptr->lev + 40) - 1550) / 130) /*!< モンスター魔法をプレイヤーが使用する場合の換算レベル */
 
@@ -420,8 +421,6 @@ static bool get_learned_power(SPELL_IDX *sn)
                        if (!redraw || use_menu)
                        {
                                char psi_desc[80];
-
-                               /* Show list */
                                redraw = TRUE;
                                if (!use_menu) screen_save();
 
@@ -608,7 +607,7 @@ static bool cast_learned_spell(int spell, bool success)
                MONSTER_IDX m_idx;
 
                if (!target_set(TARGET_KILL)) return FALSE;
-               m_idx = cave[target_row][target_col].m_idx;
+               m_idx = current_floor_ptr->grid_array[target_row][target_col].m_idx;
                if (!m_idx) break;
                if (!player_has_los_bold(target_row, target_col)) break;
                if (!projectable(p_ptr->y, p_ptr->x, target_row, target_col)) break;
@@ -1050,10 +1049,10 @@ static bool cast_learned_spell(int spell, bool success)
                GAME_TEXT m_name[MAX_NLEN];
 
                if (!target_set(TARGET_KILL)) return FALSE;
-               if (!cave[target_row][target_col].m_idx) break;
+               if (!current_floor_ptr->grid_array[target_row][target_col].m_idx) break;
                if (!player_has_los_bold(target_row, target_col)) break;
                if (!projectable(p_ptr->y, p_ptr->x, target_row, target_col)) break;
-               m_ptr = &m_list[cave[target_row][target_col].m_idx];
+               m_ptr = &current_floor_ptr->m_list[current_floor_ptr->grid_array[target_row][target_col].m_idx];
                r_ptr = &r_info[m_ptr->r_idx];
                monster_desc(m_name, m_ptr, 0);
                if (r_ptr->flagsr & RFR_RES_TELE)
@@ -1072,7 +1071,7 @@ static bool cast_learned_spell(int spell, bool success)
                        }
                }
         msg_format(_("%sを引き戻した。", "You command %s to return."), m_name);
-               teleport_monster_to(cave[target_row][target_col].m_idx, p_ptr->y, p_ptr->x, 100, TELEPORT_PASSIVE);
+               teleport_monster_to(current_floor_ptr->grid_array[target_row][target_col].m_idx, p_ptr->y, p_ptr->x, 100, TELEPORT_PASSIVE);
                break;
        }
        case MS_TELE_AWAY:
@@ -1403,13 +1402,7 @@ bool do_cmd_cast_learned(void)
        bool cast;
        MANA_POINT need_mana;
 
-
-       /* not if confused */
-       if (p_ptr->confused)
-       {
-               msg_print(_("混乱していて唱えられない!", "You are too confused!"));
-               return TRUE;
-       }
+       if (cmd_limit_confused(p_ptr)) return FALSE;
 
        /* get power */
        if (!get_learned_power(&n)) return FALSE;
@@ -1518,11 +1511,10 @@ bool do_cmd_cast_learned(void)
                }
        }
 
-       p_ptr->energy_use = 100;
+       take_turn(p_ptr, 100);
 
        p_ptr->redraw |= (PR_MANA);
-       p_ptr->window |= (PW_PLAYER);
-       p_ptr->window |= (PW_SPELL);
+       p_ptr->window |= (PW_PLAYER | PW_SPELL);
 
        return TRUE;
 }