トドのアイテムサーチについて

ぬすっトド系・畠荒らし系のアイテム探知はなかなかトリッキーです。
部屋の外のアイテムに反応したり、逆に部屋内のアイテムを無視することもありますが、どういう仕組みで動いているのでしょうか。

基本は最後に落ちたアイテムに反応

SFCシレンでは部屋ごとに「最終アイテムドロップ座標」が記録されています。
この値の初期値は(-1,-1)(0,0)(2014/1/4修正)で、アイテムがドロップするとそのマスの座標がセットされます。
「最終アイテムドロップ座標」が(-1,-1)でなく、そこにアイテムがある場合、トドは目標点をこのマスに設定します。
(-1,-1)のときは通常のモンスターと同じ動きをします。

最後に落ちた座標にアイテムがない時

「最終アイテムドロップ座標」にアイテムが無い場合(シレンが拾った時など)、次のようにアイテムがあるマスを探します。

ステップ1:
  マスAを部屋の左上の隅のマスとする。ステップ2へ。
ステップ2:
  マスAから右に向かってマスを順次調べていき、アイテムがあればそのマスを結果として終了。
  壁や水脈に当たればステップ3へ。ただしマスAが部屋の左上の隅である時は水脈でもそのまま右に向かって処理を続ける(2014/1/4修正)
ステップ3:
  マスAを1マス下に移動。マスAが壁や水脈でなければステップ2へ。
  壁や水脈ならアイテムのあるマスは見つからずに終了。

上の手順でアイテムのあるマスが見つかれば、「最終アイテムドロップ座標」をそのマスに設定します。アイテムのあるマスが見つからなければ、(-1,-1)を設定します。

反応する場所としない場所

このアイテム探知はトリッキー(というかバギー)で、トドの動きが予想と異なることがあります。
例えば、次のような場合、水脈で遮られるためアイテムには反応しません。

■■■水■■■
■□□水□□■
■□□水ト□□
■□□水□□■
■□□水□□■
■□□水□ア■
■□□水□□■
■□□水□□■

水:水脈
ト:ぬすっトド
ア:アイテム

また、部屋の外にあるアイテムに反応することもあります。
次の場合、左上の部屋にいるトドは右下の通路にあるアイテムに向かおうとします。

■■■■■■■■■■■■■■
■□□□□□■■■■■■■■
■□□□□□□□□□□■■■
■□□ト□□■■■■□□□□
■□□□□□■■■■■■■■
■◇■■■■■■■■■■■■
■◇■■■■■■■■■■■■
■◇■■■■■■■■■■■■
■◇■■■■■■■■■■■■
■◇■■■■■■■■■■■■
■◇■■□□□□□□■■■■
■◇■■□□□□□□■■■■
■◇◇◇□□□□□□□□ア□
■■■■□□□□□□■■■■
■■■■■■■■■■■■■■

◇:つるはし穴
ト:ぬすっトド
ア:アイテム

TODO:ガマラのギタン探知について調べる