OSDN Git Service

[Fix] #41295 狂戦士で地震を撃ったら画面中の敵以外のマスが@で埋め尽くされる
authorHabu <habu@users.osdn.me>
Thu, 21 Jan 2021 08:37:27 +0000 (17:37 +0900)
committerHabu <habu@users.osdn.me>
Thu, 21 Jan 2021 08:37:27 +0000 (17:37 +0900)
earthquake() の処理で、地震によりモンスターの居るマスの移動が発生した時に
update_monster() に地震により移動したモンスターのモンスターIDではなく
地震を発生させたモンスターのモンスターIDを誤って渡しているのが原因。
プレイヤーが地震を発生させた時はモンスターIDとして 0 が渡されるため、
update_monster() で想定外の処理が発生している。
正しく地震により移動したモンスターのモンスターIDを渡すようにする。

src/spell-kind/earthquake.c

index 410f236..c5e3a94 100644 (file)
@@ -265,7 +265,7 @@ bool earthquake(player_type *caster_ptr, POSITION cy, POSITION cx, POSITION r, M
             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);
         }