OSDN Git Service

Merge remote-tracking branch 'remotes/origin/MERFOLK'
[hengband/hengband.git] / src / cmd1.c
index 6fe3d66..7b18fc4 100644 (file)
@@ -823,14 +823,15 @@ bool player_can_enter(FEAT_IDX feature, BIT_FLAGS16 mode)
  */
 bool move_player_effect(POSITION ny, POSITION nx, BIT_FLAGS mpe_mode)
 {
+       POSITION oy = p_ptr->y;
+       POSITION ox = p_ptr->x;
        cave_type *c_ptr = &cave[ny][nx];
+       cave_type *oc_ptr = &cave[oy][ox];
        feature_type *f_ptr = &f_info[c_ptr->feat];
+       feature_type *of_ptr = &f_info[oc_ptr->feat];
 
        if (!(mpe_mode & MPE_STAYING))
        {
-               POSITION oy = p_ptr->y;
-               POSITION ox = p_ptr->x;
-               cave_type *oc_ptr = &cave[oy][ox];
                MONSTER_IDX om_idx = oc_ptr->m_idx;
                MONSTER_IDX nm_idx = c_ptr->m_idx;
 
@@ -899,6 +900,14 @@ bool move_player_effect(POSITION ny, POSITION nx, BIT_FLAGS mpe_mode)
                        msg_print(_("ここでは素早く動けない。", "You cannot run in here."));
                        set_action(ACTION_NONE);
                }
+               if (p_ptr->prace == RACE_MERFOLK)
+               {
+                       if(have_flag(f_ptr->flags, FF_WATER) ^ have_flag(of_ptr->flags, FF_WATER))
+                       {
+                               p_ptr->update |= PU_BONUS;
+                               update_creature(p_ptr);
+                       }
+               }
        }
 
        if (mpe_mode & MPE_ENERGY_USE)