earthquake() の処理で、地震によりモンスターの居るマスの移動が発生した時に
update_monster() に地震により移動したモンスターのモンスターIDではなく
地震を発生させたモンスターのモンスターIDを誤って渡しているのが原因。
プレイヤーが地震を発生させた時はモンスターIDとして 0 が渡されるため、
update_monster() で想定外の処理が発生している。
正しく地震により移動したモンスターのモンスターIDを渡すようにする。
floor_ptr->grid_array[sy][sx].m_idx = m_idx_aux;
m_ptr->fy = sy;
m_ptr->fx = sx;
- update_monster(caster_ptr, m_idx, TRUE);
+ update_monster(caster_ptr, m_idx_aux, TRUE);
lite_spot(caster_ptr, yy, xx);
lite_spot(caster_ptr, sy, sx);
}