p_can_pass_walls = FALSE;
}
- if (p_ptr->riding)
- {
- cave[py][px].m_idx = 0;
- }
-
/* Hack -- attack monsters */
if (c_ptr->m_idx && (m_ptr->ml || cave_floor_bold(y, x) || p_can_pass_walls))
{
}
}
+ /* Hack -- For moving monster or riding player's moving */
+ cave[py][px].m_idx = c_ptr->m_idx;
+ c_ptr->m_idx = 0;
+
if (do_past)
{
#ifdef JP
m_ptr->fy = py;
m_ptr->fx = px;
- cave[py][px].m_idx = c_ptr->m_idx;
- c_ptr->m_idx = 0;
update_mon(cave[py][px].m_idx, TRUE);
}
cave_set_feat(py, px, floor_type[randint0(100)]);
}
}
+
if (music_singing(MUSIC_WALL))
{
project(0, 0, py, px,
/* Remove "unsafe" flag */
if ((!p_ptr->blind && !no_lite()) || !is_trap(c_ptr->feat)) c_ptr->info &= ~(CAVE_UNSAFE);
+ if (p_ptr->riding)
+ {
+ riding_m_ptr->fy = py;
+ riding_m_ptr->fx = px;
+ cave[py][px].m_idx = p_ptr->riding;
+ update_mon(p_ptr->riding, TRUE);
+ }
+
/* Redraw new spot */
lite_spot(py, px);
}
}
}
-
- if (p_ptr->riding)
- {
- riding_m_ptr->fy = py;
- riding_m_ptr->fx = px;
- cave[py][px].m_idx = p_ptr->riding;
- update_mon(cave[py][px].m_idx, TRUE);
- if (riding_r_ptr->flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))
- p_ptr->update |= (PU_MON_LITE);
- }
}
if (p_ptr->riding)
{
- int tmp;
- tmp = cave[py][px].m_idx;
- cave[py][px].m_idx = cave[oy][ox].m_idx;
- cave[oy][ox].m_idx = tmp;
+ cave[oy][ox].m_idx = cave[py][px].m_idx;
+ cave[py][px].m_idx = p_ptr->riding;
m_list[p_ptr->riding].fy = py;
m_list[p_ptr->riding].fx = px;
- update_mon(cave[py][px].m_idx, TRUE);
+ update_mon(p_ptr->riding, TRUE);
}
forget_flow();
m_list[p_ptr->riding].fx = px;
cave[py][px].m_idx = p_ptr->riding;
cave[oy][ox].m_idx = 0;
- update_mon(cave[py][px].m_idx, TRUE);
+ update_mon(p_ptr->riding, TRUE);
}
lite_spot(py, px);
if (p_ptr->riding)
{
- int tmp;
- tmp = cave[py][px].m_idx;
- cave[py][px].m_idx = cave[oy][ox].m_idx;
- cave[oy][ox].m_idx = tmp;
+ cave[oy][ox].m_idx = cave[py][px].m_idx;
+ cave[py][px].m_idx = p_ptr->riding;
m_list[p_ptr->riding].fy = py;
m_list[p_ptr->riding].fx = px;
- update_mon(cave[py][px].m_idx, TRUE);
+ update_mon(p_ptr->riding, TRUE);
}
/* Redraw the old spot */
m_list[p_ptr->riding].fx = tx;
/* Update the monster (new location) */
- update_mon(cave[ty][tx].m_idx, TRUE);
+ update_mon(p_ptr->riding, TRUE);
}
tx = m_ptr->fx;
if (p_ptr->riding)
{
- int tmp;
- tmp = cave[py][px].m_idx;
- cave[py][px].m_idx = cave[oy][ox].m_idx;
- cave[oy][ox].m_idx = tmp;
+ cave[oy][ox].m_idx = cave[py][px].m_idx;
+ cave[py][px].m_idx = p_ptr->riding;
m_list[p_ptr->riding].fy = py;
m_list[p_ptr->riding].fx = px;
- update_mon(cave[py][px].m_idx, TRUE);
+ update_mon(p_ptr->riding, TRUE);
}
/* Redraw the old spot */
if (p_ptr->riding)
{
- int tmp;
- tmp = cave[py][px].m_idx;
- cave[py][px].m_idx = cave[oy][ox].m_idx;
- cave[oy][ox].m_idx = tmp;
+ cave[oy][ox].m_idx = cave[py][px].m_idx;
+ cave[py][px].m_idx = p_ptr->riding;
m_list[p_ptr->riding].fy = py;
m_list[p_ptr->riding].fx = px;
- update_mon(cave[py][px].m_idx, TRUE);
+ update_mon(p_ptr->riding, TRUE);
}
forget_flow();