OSDN Git Service

先程の変更でテレポート先の候補が全く無い場合の処理をしていなかったので、
authormogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 6 Jan 2004 12:18:27 +0000 (12:18 +0000)
committermogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 6 Jan 2004 12:18:27 +0000 (12:18 +0000)
その場合は何も起きないようにした。
以前のアルゴリズムではテレポート先を探しながら距離disも増やしていたので、
壁の中に完全埋まった状態や巨大vaultの中でショートテレポートを使うと
どんなに遠くても外の床に脱出していたが、現状ではそれが出来なくなっている。
仕様として残す必要があるなら後でdisを増やすコードを書くが…。

src/spells3.c

index d79f8a2..3d2dd85 100644 (file)
@@ -358,6 +358,9 @@ void teleport_player(int dis, bool passive)
                }
        }
 
+       /* No valid location! */
+       if (0 == total_candidates) return;
+
        /* Fix the minimum distance */
        for (cur_candidates = 0, min = dis; min >= 0; min--)
        {