OSDN Git Service

[Refactor] monster_name() で一部 cmd2.c の投擲対象処理を整理。
[hengband/hengband.git] / src / cmd-pet.c
index 25a7e98..a901365 100644 (file)
@@ -1,12 +1,18 @@
 #include "angband.h"
+#include "melee.h"
+#include "sort.h"
+#include "player-status.h"
+#include "object-hook.h"
+#include "monster.h"
+#include "monster-status.h"
 
 /*!
 * @brief プレイヤーの騎乗/下馬処理判定
-* @param c_ptr プレイヤーの移動先マスの構造体参照ポインタ
+* @param g_ptr プレイヤーの移動先マスの構造体参照ポインタ
 * @param now_riding TRUEなら下馬処理、FALSEならば騎乗処理
 * @return 可能ならばTRUEを返す
 */
-bool player_can_ride_aux(cave_type *c_ptr, bool now_riding)
+bool player_can_ride_aux(grid_type *g_ptr, bool now_riding)
 {
        bool p_can_enter;
        bool old_character_xtra = character_xtra;
@@ -18,7 +24,7 @@ bool player_can_ride_aux(cave_type *c_ptr, bool now_riding)
        /* Hack -- prevent "icky" message */
        character_xtra = TRUE;
 
-       if (now_riding) p_ptr->riding = c_ptr->m_idx;
+       if (now_riding) p_ptr->riding = g_ptr->m_idx;
        else
        {
                p_ptr->riding = 0;
@@ -26,9 +32,10 @@ bool player_can_ride_aux(cave_type *c_ptr, bool now_riding)
                p_ptr->riding_ryoute = p_ptr->old_riding_ryoute = FALSE;
        }
 
-       calc_bonuses();
+       p_ptr->update |= PU_BONUS;
+       handle_stuff();
 
-       p_can_enter = player_can_enter(c_ptr->feat, CEM_P_CAN_ENTER_PATTERN);
+       p_can_enter = player_can_enter(g_ptr->feat, CEM_P_CAN_ENTER_PATTERN);
 
        p_ptr->riding = old_riding;
        if (old_pf_ryoute) p_ptr->pet_extra_flags |= (PF_RYOUTE);
@@ -36,7 +43,8 @@ bool player_can_ride_aux(cave_type *c_ptr, bool now_riding)
        p_ptr->riding_ryoute = old_riding_ryoute;
        p_ptr->old_riding_ryoute = old_old_riding_ryoute;
 
-       calc_bonuses();
+       p_ptr->update |= PU_BONUS;
+       handle_stuff();
 
        character_xtra = old_character_xtra;
 
@@ -45,71 +53,24 @@ bool player_can_ride_aux(cave_type *c_ptr, bool now_riding)
 
 
 /*!
-* @brief ペットになっているモンスターをソートするための比較処理
-* @param u モンスターの構造体配列
-* @param v 未使用
-* @param a 比較対象のモンスターID1
-* @param b 比較対象のモンスターID2
-* @return 2番目が大ならばTRUEを返す
-*/
-static bool ang_sort_comp_pet_dismiss(vptr u, vptr v, int a, int b)
-{
-       u16b *who = (u16b*)(u);
-
-       int w1 = who[a];
-       int w2 = who[b];
-
-       monster_type *m_ptr1 = &m_list[w1];
-       monster_type *m_ptr2 = &m_list[w2];
-       monster_race *r_ptr1 = &r_info[m_ptr1->r_idx];
-       monster_race *r_ptr2 = &r_info[m_ptr2->r_idx];
-
-       /* Unused */
-       (void)v;
-
-       if (w1 == p_ptr->riding) return TRUE;
-       if (w2 == p_ptr->riding) return FALSE;
-
-       if (m_ptr1->nickname && !m_ptr2->nickname) return TRUE;
-       if (m_ptr2->nickname && !m_ptr1->nickname) return FALSE;
-
-       if (!m_ptr1->parent_m_idx && m_ptr2->parent_m_idx) return TRUE;
-       if (!m_ptr2->parent_m_idx && m_ptr1->parent_m_idx) return FALSE;
-
-       if ((r_ptr1->flags1 & RF1_UNIQUE) && !(r_ptr2->flags1 & RF1_UNIQUE)) return TRUE;
-       if ((r_ptr2->flags1 & RF1_UNIQUE) && !(r_ptr1->flags1 & RF1_UNIQUE)) return FALSE;
-
-       if (r_ptr1->level > r_ptr2->level) return TRUE;
-       if (r_ptr2->level > r_ptr1->level) return FALSE;
-
-       if (m_ptr1->hp > m_ptr2->hp) return TRUE;
-       if (m_ptr2->hp > m_ptr1->hp) return FALSE;
-
-       return w1 <= w2;
-}
-
-
-/*!
 * @brief ペットの維持コスト計算
 * @return 維持コスト(%)
 */
-int calculate_upkeep(void)
+PERCENTAGE calculate_upkeep(void)
 {
-       s32b old_friend_align = friend_align;
        MONSTER_IDX m_idx;
        bool have_a_unique = FALSE;
-       s32b total_friend_levels = 0;
+       DEPTH total_friend_levels = 0;
 
        total_friends = 0;
-       friend_align = 0;
 
        for (m_idx = m_max - 1; m_idx >= 1; m_idx--)
        {
                monster_type *m_ptr;
                monster_race *r_ptr;
 
-               m_ptr = &m_list[m_idx];
-               if (!m_ptr->r_idx) continue;
+               m_ptr = &current_floor_ptr->m_list[m_idx];
+               if (!monster_is_valid(m_ptr)) continue;
                r_ptr = &r_info[m_ptr->r_idx];
 
                if (is_pet(m_ptr))
@@ -133,12 +94,9 @@ int calculate_upkeep(void)
                        else
                                total_friend_levels += r_ptr->level;
 
-                       /* Determine pet alignment */
-                       if (r_ptr->flags3 & RF3_GOOD) friend_align += r_ptr->level;
-                       if (r_ptr->flags3 & RF3_EVIL) friend_align -= r_ptr->level;
                }
        }
-       if (old_friend_align != friend_align) p_ptr->update |= (PU_BONUS);
+
        if (total_friends)
        {
                int upkeep_factor;
@@ -157,8 +115,8 @@ int calculate_upkeep(void)
 */
 void do_cmd_pet_dismiss(void)
 {
-       monster_type    *m_ptr;
-       bool            all_pets = FALSE;
+       monster_type *m_ptr;
+       bool all_pets = FALSE;
        MONSTER_IDX pet_ctr;
        int i;
        int Dismissed = 0;
@@ -174,31 +132,27 @@ void do_cmd_pet_dismiss(void)
        Term->scr->cv = 1;
 
        /* Allocate the "who" array */
-       C_MAKE(who, max_m_idx, MONSTER_IDX);
+       C_MAKE(who, current_floor_ptr->max_m_idx, MONSTER_IDX);
 
        /* Process the monsters (backwards) */
        for (pet_ctr = m_max - 1; pet_ctr >= 1; pet_ctr--)
        {
-               if (is_pet(&m_list[pet_ctr]))
+               if (is_pet(&current_floor_ptr->m_list[pet_ctr]))
                        who[max_pet++] = pet_ctr;
        }
 
-       /* Select the sort method */
-       ang_sort_comp = ang_sort_comp_pet_dismiss;
-       ang_sort_swap = ang_sort_swap_hook;
-
-       ang_sort(who, &dummy_why, max_pet);
+       ang_sort(who, &dummy_why, max_pet, ang_sort_comp_pet_dismiss, ang_sort_swap_hook);
 
        /* Process the monsters (backwards) */
        for (i = 0; i < max_pet; i++)
        {
                bool delete_this;
-               char friend_name[80];
+               GAME_TEXT friend_name[MAX_NLEN];
                bool kakunin;
 
                /* Access the monster */
                pet_ctr = who[i];
-               m_ptr = &m_list[pet_ctr];
+               m_ptr = &current_floor_ptr->m_list[pet_ctr];
 
                delete_this = FALSE;
                kakunin = ((pet_ctr == p_ptr->riding) || (m_ptr->nickname));
@@ -208,8 +162,6 @@ void do_cmd_pet_dismiss(void)
                {
                        /* Hack -- health bar for this monster */
                        health_track(pet_ctr);
-
-                       /* Hack -- handle stuff */
                        handle_stuff();
 
                        msg_format(_("%sを放しますか? [Yes/No/Unnamed (%d体)]", "Dismiss %s? [Yes/No/Unnamed (%d remain)]"), friend_name, max_pet - i);
@@ -252,7 +204,7 @@ void do_cmd_pet_dismiss(void)
                {
                        if (record_named_pet && m_ptr->nickname)
                        {
-                               char m_name[80];
+                               GAME_TEXT m_name[MAX_NLEN];
 
                                monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
                                do_cmd_write_nikki(NIKKI_NAMED_PET, RECORD_NAMED_PET_DISMISS, m_name);
@@ -264,15 +216,14 @@ void do_cmd_pet_dismiss(void)
 
                                p_ptr->riding = 0;
 
-                               /* Update the monsters */
-                               p_ptr->update |= (PU_BONUS | PU_MONSTERS);
+                               p_ptr->update |= (PU_MONSTERS);
                                p_ptr->redraw |= (PR_EXTRA | PR_UHEALTH);
                        }
 
                        /* HACK : Add the line to message buffer */
                        msg_format(_("%s を放した。", "Dismissed %s."), friend_name);
+                       p_ptr->update |= (PU_BONUS);
                        p_ptr->window |= (PW_MESSAGE);
-                       window_stuff();
 
                        delete_monster_idx(pet_ctr);
                        Dismissed++;
@@ -283,7 +234,7 @@ void do_cmd_pet_dismiss(void)
        Term->scr->cv = cv;
        Term_fresh();
 
-       C_KILL(who, max_m_idx, MONSTER_IDX);
+       C_KILL(who, current_floor_ptr->max_m_idx, MONSTER_IDX);
 
 #ifdef JP
        msg_format("%d 体のペットを放しました。", Dismissed);
@@ -293,6 +244,8 @@ void do_cmd_pet_dismiss(void)
 #endif
        if (Dismissed == 0 && all_pets)
                msg_print(_("'U'nnamed は、乗馬以外の名前のないペットだけを全て解放します。", "'U'nnamed means all your pets except named pets and your mount."));
+
+       handle_stuff();
 }
 
 
@@ -306,20 +259,20 @@ bool do_riding(bool force)
 {
        POSITION x, y;
        DIRECTION dir = 0;
-       cave_type *c_ptr;
+       grid_type *g_ptr;
        monster_type *m_ptr;
 
        if (!get_direction(&dir, FALSE, FALSE)) return FALSE;
        y = p_ptr->y + ddy[dir];
        x = p_ptr->x + ddx[dir];
-       c_ptr = &cave[y][x];
+       g_ptr = &current_floor_ptr->grid_array[y][x];
 
        if (p_ptr->special_defense & KATA_MUSOU) set_action(ACTION_NONE);
 
        if (p_ptr->riding)
        {
                /* Skip non-empty grids */
-               if (!player_can_ride_aux(c_ptr, FALSE))
+               if (!player_can_ride_aux(g_ptr, FALSE))
                {
                        msg_print(_("そちらには降りられません。", "You cannot go to that direction."));
                        return FALSE;
@@ -327,9 +280,9 @@ bool do_riding(bool force)
 
                if (!pattern_seq(p_ptr->y, p_ptr->x, y, x)) return FALSE;
 
-               if (c_ptr->m_idx)
+               if (g_ptr->m_idx)
                {
-                       p_ptr->energy_use = 100;
+                       take_turn(p_ptr, 100);
 
                        msg_print(_("モンスターが立ちふさがっている!", "There is a monster in the way!"));
 
@@ -343,15 +296,11 @@ bool do_riding(bool force)
        }
        else
        {
-               if (p_ptr->confused)
-               {
-                       msg_print(_("混乱していて乗れない!", "You are too confused!"));
-                       return FALSE;
-               }
+               if (cmd_limit_confused(p_ptr)) return FALSE;
 
-               m_ptr = &m_list[c_ptr->m_idx];
+               m_ptr = &current_floor_ptr->m_list[g_ptr->m_idx];
 
-               if (!c_ptr->m_idx || !m_ptr->ml)
+               if (!g_ptr->m_idx || !m_ptr->ml)
                {
                        msg_print(_("その場所にはモンスターはいません。", "Here is no monster."));
                        return FALSE;
@@ -369,10 +318,10 @@ bool do_riding(bool force)
 
                if (!pattern_seq(p_ptr->y, p_ptr->x, y, x)) return FALSE;
 
-               if (!player_can_ride_aux(c_ptr, TRUE))
+               if (!player_can_ride_aux(g_ptr, TRUE))
                {
                        /* Feature code (applying "mimic" field) */
-                       feature_type *f_ptr = &f_info[get_feat_mimic(c_ptr)];
+                       feature_type *f_ptr = &f_info[get_feat_mimic(g_ptr)];
 #ifdef JP
                        msg_format("そのモンスターは%sの%sにいる。", f_name + f_ptr->name,
                                ((!have_flag(f_ptr->flags, FF_MOVE) && !have_flag(f_ptr->flags, FF_CAN_FLY)) ||
@@ -390,40 +339,34 @@ bool do_riding(bool force)
                if (r_info[m_ptr->r_idx].level > randint1((p_ptr->skill_exp[GINOU_RIDING] / 50 + p_ptr->lev / 2 + 20)))
                {
                        msg_print(_("うまく乗れなかった。", "You failed to ride."));
-                       p_ptr->energy_use = 100;
+                       take_turn(p_ptr, 100);
                        return FALSE;
                }
 
                if (MON_CSLEEP(m_ptr))
                {
-                       char m_name[80];
+                       GAME_TEXT m_name[MAX_NLEN];
                        monster_desc(m_name, m_ptr, 0);
-                       (void)set_monster_csleep(c_ptr->m_idx, 0);
+                       (void)set_monster_csleep(g_ptr->m_idx, 0);
                        msg_format(_("%sを起こした。", "You have waked %s up."), m_name);
                }
 
                if (p_ptr->action == ACTION_KAMAE) set_action(ACTION_NONE);
 
-               p_ptr->riding = c_ptr->m_idx;
+               p_ptr->riding = g_ptr->m_idx;
 
                /* Hack -- remove tracked monster */
                if (p_ptr->riding == p_ptr->health_who) health_track(0);
        }
 
-       p_ptr->energy_use = 100;
+       take_turn(p_ptr, 100);
 
        /* Mega-Hack -- Forget the view and lite */
        p_ptr->update |= (PU_UN_VIEW | PU_UN_LITE);
-
-       /* Update the monsters */
        p_ptr->update |= (PU_BONUS);
-
-       /* Redraw map */
        p_ptr->redraw |= (PR_MAP | PR_EXTRA);
-
        p_ptr->redraw |= (PR_UHEALTH);
 
-       /* Move the player */
        (void)move_player_effect(y, x, MPE_HANDLE_STUFF | MPE_ENERGY_USE | MPE_DONT_PICKUP | MPE_DONT_SWAP_MON);
 
        return TRUE;
@@ -437,7 +380,7 @@ static void do_name_pet(void)
 {
        monster_type *m_ptr;
        char out_val[20];
-       char m_name[80];
+       GAME_TEXT m_name[MAX_NLEN];
        bool old_name = FALSE;
        bool old_target_pet = target_pet;
 
@@ -449,9 +392,9 @@ static void do_name_pet(void)
        }
        target_pet = old_target_pet;
 
-       if (cave[target_row][target_col].m_idx)
+       if (current_floor_ptr->grid_array[target_row][target_col].m_idx)
        {
-               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];
 
                if (!is_pet(m_ptr))
                {
@@ -516,7 +459,7 @@ void do_cmd_pet(void)
        COMMAND_CODE i = 0;
        int                     num;
        int                     powers[36];
-       cptr                    power_desc[36];
+       concptr                 power_desc[36];
        bool                    flag, redraw;
        char                    choice;
        char                    out_val[160];
@@ -532,15 +475,17 @@ void do_cmd_pet(void)
 
        num = 0;
 
+       if(p_ptr->wild_mode) return;
+
        power_desc[num] = _("ペットを放す", "dismiss pets");
        powers[num++] = PET_DISMISS;
 
 #ifdef JP
        sprintf(target_buf, "ペットのターゲットを指定 (現在:%s)",
-               (pet_t_m_idx ? (p_ptr->image ? "何か奇妙な物" : (r_name + r_info[m_list[pet_t_m_idx].ap_r_idx].name)) : "指定なし"));
+               (pet_t_m_idx ? (p_ptr->image ? "何か奇妙な物" : (r_name + r_info[current_floor_ptr->m_list[pet_t_m_idx].ap_r_idx].name)) : "指定なし"));
 #else
        sprintf(target_buf, "specify a target of pet (now:%s)",
-               (pet_t_m_idx ? (p_ptr->image ? "something strange" : (r_name + r_info[m_list[pet_t_m_idx].ap_r_idx].name)) : "nothing"));
+               (pet_t_m_idx ? (p_ptr->image ? "something strange" : (r_name + r_info[current_floor_ptr->m_list[pet_t_m_idx].ap_r_idx].name)) : "nothing"));
 #endif
        power_desc[num] = target_buf;
        powers[num++] = PET_TARGET;
@@ -675,7 +620,7 @@ void do_cmd_pet(void)
 
                                        powers[num++] = PET_RYOUTE;
                                }
-                               else if ((empty_hands(FALSE) != EMPTY_HAND_NONE) && !buki_motteruka(INVEN_RARM) && !buki_motteruka(INVEN_LARM))
+                               else if ((empty_hands(FALSE) != EMPTY_HAND_NONE) && !has_melee_weapon(INVEN_RARM) && !has_melee_weapon(INVEN_LARM))
                                {
                                        if (p_ptr->pet_extra_flags & PF_RYOUTE)
                                        {
@@ -703,7 +648,6 @@ void do_cmd_pet(void)
 
                if (use_menu)
                {
-                       /* Save the screen */
                        screen_save();
 
                        /* Build a prompt */
@@ -778,11 +722,7 @@ void do_cmd_pet(void)
                                {
                                        byte y = 1, x = 0;
                                        PET_COMMAND_IDX ctr = 0;
-
-                                       /* Show list */
                                        redraw = TRUE;
-
-                                       /* Save the screen */
                                        if (!use_menu) screen_save();
 
                                        prt("", y++, x);
@@ -809,8 +749,6 @@ void do_cmd_pet(void)
                                {
                                        /* Hide list */
                                        redraw = FALSE;
-
-                                       /* Restore the screen */
                                        screen_load();
                                }
 
@@ -850,14 +788,12 @@ void do_cmd_pet(void)
                        /* Stop the loop */
                        flag = TRUE;
                }
-
-               /* Restore the screen */
                if (redraw) screen_load();
 
                /* Abort if needed */
                if (!flag)
                {
-                       p_ptr->energy_use = 0;
+                       free_turn(p_ptr);
                        return;
                }
 
@@ -871,7 +807,7 @@ void do_cmd_pet(void)
                for (pet_ctr = m_max - 1; pet_ctr >= 1; pet_ctr--)
                {
                        /* Player has pet */
-                       if (is_pet(&m_list[pet_ctr])) break;
+                       if (is_pet(&current_floor_ptr->m_list[pet_ctr])) break;
                }
 
                if (!pet_ctr)
@@ -889,10 +825,10 @@ void do_cmd_pet(void)
                if (!target_set(TARGET_KILL)) pet_t_m_idx = 0;
                else
                {
-                       cave_type *c_ptr = &cave[target_row][target_col];
-                       if (c_ptr->m_idx && (m_list[c_ptr->m_idx].ml))
+                       grid_type *g_ptr = &current_floor_ptr->grid_array[target_row][target_col];
+                       if (g_ptr->m_idx && (current_floor_ptr->m_list[g_ptr->m_idx].ml))
                        {
-                               pet_t_m_idx = cave[target_row][target_col].m_idx;
+                               pet_t_m_idx = current_floor_ptr->grid_array[target_row][target_col].m_idx;
                                p_ptr->pet_follow_distance = PET_DESTROY_DIST;
                        }
                        else pet_t_m_idx = 0;
@@ -949,7 +885,7 @@ void do_cmd_pet(void)
                        for (pet_ctr = m_max - 1; pet_ctr >= 1; pet_ctr--)
                        {
                                /* Access the monster */
-                               m_ptr = &m_list[pet_ctr];
+                               m_ptr = &current_floor_ptr->m_list[pet_ctr];
 
                                if (is_pet(m_ptr))
                                {
@@ -1015,35 +951,6 @@ void do_cmd_pet(void)
 
 
 /*!
-* @brief ペットの善悪属性に応じた維持コストの途中計算処理
-* @param m_ptr 計算基準となるモンスターの構造体参照ポインタ
-* @param inc m_ptrで指定したモンスターを維持コスト計算に加えるならTRUE、外すならFALSEを指定
-* @return なし
-*/
-void check_pets_num_and_align(monster_type *m_ptr, bool inc)
-{
-       s32b old_friend_align = friend_align;
-       monster_race *r_ptr = &r_info[m_ptr->r_idx];
-
-       if (inc)
-       {
-               total_friends++;
-               if (r_ptr->flags3 & RF3_GOOD) friend_align += r_ptr->level;
-               if (r_ptr->flags3 & RF3_EVIL) friend_align -= r_ptr->level;
-       }
-       else
-       {
-               total_friends--;
-               if (r_ptr->flags3 & RF3_GOOD) friend_align -= r_ptr->level;
-               if (r_ptr->flags3 & RF3_EVIL) friend_align += r_ptr->level;
-       }
-
-       if (old_friend_align != friend_align) p_ptr->update |= (PU_BONUS);
-}
-
-
-
-/*!
 * @brief プレイヤーの落馬判定処理
 * @param dam 落馬判定を発した際に受けたダメージ量
 * @param force TRUEならば強制的に落馬する
@@ -1053,8 +960,8 @@ bool rakuba(HIT_POINT dam, bool force)
 {
        int i, y, x, oy, ox;
        int sn = 0, sy = 0, sx = 0;
-       char m_name[80];
-       monster_type *m_ptr = &m_list[p_ptr->riding];
+       GAME_TEXT m_name[MAX_NLEN];
+       monster_type *m_ptr = &current_floor_ptr->m_list[p_ptr->riding];
        monster_race *r_ptr = &r_info[m_ptr->r_idx];
        bool fall_dam = FALSE;
 
@@ -1099,23 +1006,22 @@ bool rakuba(HIT_POINT dam, bool force)
                /* Check around the player */
                for (i = 0; i < 8; i++)
                {
-                       cave_type *c_ptr;
+                       grid_type *g_ptr;
 
-                       /* Access the location */
                        y = p_ptr->y + ddy_ddd[i];
                        x = p_ptr->x + ddx_ddd[i];
 
-                       c_ptr = &cave[y][x];
+                       g_ptr = &current_floor_ptr->grid_array[y][x];
 
-                       if (c_ptr->m_idx) continue;
+                       if (g_ptr->m_idx) continue;
 
                        /* Skip non-empty grids */
-                       if (!cave_have_flag_grid(c_ptr, FF_MOVE) && !cave_have_flag_grid(c_ptr, FF_CAN_FLY))
+                       if (!cave_have_flag_grid(g_ptr, FF_MOVE) && !cave_have_flag_grid(g_ptr, FF_CAN_FLY))
                        {
-                               if (!player_can_ride_aux(c_ptr, FALSE)) continue;
+                               if (!player_can_ride_aux(g_ptr, FALSE)) continue;
                        }
 
-                       if (cave_have_flag_grid(c_ptr, FF_PATTERN)) continue;
+                       if (cave_have_flag_grid(g_ptr, FF_PATTERN)) continue;
 
                        /* Count "safe" grids */
                        sn++;
@@ -1154,14 +1060,11 @@ bool rakuba(HIT_POINT dam, bool force)
        p_ptr->pet_extra_flags &= ~(PF_RYOUTE);
        p_ptr->riding_ryoute = p_ptr->old_riding_ryoute = FALSE;
 
-       calc_bonuses();
+       p_ptr->update |= (PU_BONUS | PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
+       handle_stuff();
 
-       p_ptr->update |= (PU_BONUS);
-
-       p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_MON_LITE | PU_MONSTERS);
 
        p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
-
        p_ptr->redraw |= (PR_EXTRA);
 
        /* Update health track of mount */
@@ -1178,7 +1081,6 @@ bool rakuba(HIT_POINT dam, bool force)
                fall_dam = TRUE;
        }
 
-       /* Move the player */
        if (sy && !p_ptr->is_dead)
                (void)move_player_effect(p_ptr->y, p_ptr->x, MPE_DONT_PICKUP | MPE_DONT_SWAP_MON);