OSDN Git Service

[Refactor] #40498 Separated player-update-types.h from player-status.h
authorHourier <hourier@users.sourceforge.jp>
Sun, 5 Jul 2020 14:09:55 +0000 (23:09 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sun, 5 Jul 2020 14:10:00 +0000 (23:10 +0900)
115 files changed:
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/autopick/autopick-destroyer.c
src/autopick/autopick-util.c
src/birth/birth-wizard.c
src/birth/quick-start.c
src/cmd-action/cmd-attack.c
src/cmd-action/cmd-hissatsu.c
src/cmd-action/cmd-pet.c
src/cmd-action/cmd-spell.c
src/cmd-building/cmd-building.c
src/cmd-item/cmd-activate.c
src/cmd-item/cmd-eat.c
src/cmd-item/cmd-item.c
src/cmd-item/cmd-read.c
src/cmd-item/cmd-smith.c
src/cmd-item/cmd-usestaff.c
src/cmd-item/cmd-zaprod.c
src/cmd-item/cmd-zapwand.c
src/cmd-visual/cmd-draw.c
src/cmd/cmd-basic.c
src/combat/shoot.c
src/core/game-play.c
src/core/hp-mp-regenerator.c
src/core/player-processor.c
src/core/player-update-types.h [new file with mode: 0644]
src/core/stuff-handler.c
src/dungeon/dungeon-processor.c
src/dungeon/quest.c
src/effect/effect-feature.c
src/effect/effect-player-resist-hurt.c
src/floor/floor-events.c
src/floor/floor.c
src/inventory/inventory-curse.c
src/inventory/inventory-object.c
src/io/cursor.c
src/io/input-key-processor.c
src/io/screen-util.c
src/io/targeting.c
src/market/building-craft-fix.c
src/market/building-craft-weapon.c
src/market/building-recharger.c
src/mind/mind-force-trainer.c
src/mind/mind-magic-resistance.c
src/mind/mind-mindcrafter.c
src/mind/mind-mirror-master.c
src/mind/mind-samurai.c
src/mind/mind-sniper.c
src/mind/mind.c
src/mind/racial-kutar.c
src/mind/racial.c
src/monster-attack/monster-attack-player.c
src/monster-attack/monster-attack-status.c
src/monster-attack/monster-eating.c
src/monster-floor/monster-death.c
src/monster-floor/monster-move.c
src/monster-floor/monster-remover.c
src/monster-floor/one-monster-placer.c
src/monster/monster-list.c
src/monster/monster-processor.c
src/monster/monster-status.c
src/monster/monster-update.c
src/mspell/mspell-dispel.c
src/mspell/mspell-floor.c
src/mspell/mspell-special.c
src/mutation/mutation.c
src/object-enchant/object-curse.c
src/object-hook/hook-expendable.c
src/object-potion/quaff-execution.c
src/object/lite-processor.c
src/perception/simple-perception.c
src/pet/pet-fall-off.c
src/pet/pet-util.c
src/player-attack/player-attack.c
src/player/avatar.c
src/player/digestion-processor.c
src/player/eldritch-horror.c
src/player/player-damage.c
src/player/player-move.c
src/player/player-status.c
src/player/player-status.h
src/player/process-death.c
src/realm/realm-hex.c
src/realm/realm-hissatsu.c
src/realm/realm-song.c
src/savedata/save.c
src/spell-kind/earthquake.c
src/spell-kind/spells-curse-removal.c
src/spell-kind/spells-equipment.c
src/spell-kind/spells-fetcher.c
src/spell-kind/spells-floor.c
src/spell-kind/spells-neighbor.c
src/spell-kind/spells-perception.c
src/spell-kind/spells-sight.c
src/spell-kind/spells-teleport.c
src/spell-realm/spells-chaos.c
src/spell-realm/spells-craft.c
src/spell-realm/spells-crusade.c
src/spell-realm/spells-demon.c
src/spell-realm/spells-hex.c
src/spell-realm/spells-song.c
src/spell/spells-object.c
src/spell/spells-status.c
src/status/action-setter.c
src/status/bad-status-setter.c
src/status/base-status.c
src/status/body-improvement.c
src/status/buff-setter.c
src/status/form-changer.c
src/status/shape-changer.c
src/status/sight-setter.c
src/status/temporary-resistance.c
src/store/store.c
src/wizard/wizard-special-process.c

index 7cd8b56..4bbeb36 100644 (file)
     <ClInclude Include="..\..\src\object-hook\hook-weapon.h" />\r
     <ClInclude Include="..\..\src\object-potion\quaff-execution.h" />\r
     <ClInclude Include="..\..\src\player\attack-defense-types.h" />\r
+    <ClInclude Include="..\..\src\core\player-update-types.h" />\r
     <ClInclude Include="..\..\src\savedata\angband-version-comparer.h" />\r
     <ClInclude Include="..\..\src\savedata\birth-loader.h" />\r
     <ClInclude Include="..\..\src\savedata\dummy-loader.h" />\r
index c54b2b6..568fabf 100644 (file)
     <ClInclude Include="..\..\src\savedata\quest-loader.h">
       <Filter>savedata</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\core\player-update-types.h">
+      <Filter>core</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index 2c2e761..4554af0 100644 (file)
@@ -113,6 +113,7 @@ hengband_SOURCES = \
        core/magic-effects-timeout-reducer.c core/magic-effects-timeout-reducer.h \
        core/output-updater.c core/output-updater.h \
        core/player-processor.c core/player-processor.h \
+       core/player-update-types.h \
        core/scores.c core/scores.h \
        core/show-file.c core/show-file.h \
        core/special-internal-keys.h \
index 3ff3e98..ce00d17 100644 (file)
@@ -7,6 +7,7 @@
 #include "autopick/autopick-destroyer.h"
 #include "autopick-methods-table.h"
 #include "autopick/autopick-util.h"
+#include "player/player-race-types.h"
 #include "game-option/auto-destruction-options.h"
 #include "game-option/input-options.h"
 #include "monster-race/monster-race.h"
@@ -20,7 +21,7 @@
 #include "object/object-value.h"
 #include "perception/object-perception.h"
 #include "player/player-move.h"
-#include "player/player-race-types.h"
+#include "core/player-update-types.h"
 #include "sv-definition/sv-other-types.h"
 #include "sv-definition/sv-wand-types.h"
 #include "util/string-processor.h"
index e2e9e8b..4beddc2 100644 (file)
@@ -1,5 +1,6 @@
 #include "autopick/autopick-util.h"
 #include "autopick/autopick-menu-data-table.h"
+#include "core/player-update-types.h"
 #include "game-option/input-options.h"
 #include "main/sound-of-music.h"
 #include "monster-race/race-indice-types.h"
index 9e48c25..a907776 100644 (file)
@@ -15,6 +15,7 @@
 #include "cmd-io/cmd-gameoption.h"
 #include "cmd-io/cmd-help.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "game-option/birth-options.h"
 #include "io/input-key-acceptor.h"
 #include "main/sound-definitions-table.h"
index af56104..fe8647f 100644 (file)
@@ -2,6 +2,7 @@
 #include "birth/birth-stat.h"
 #include "birth/birth-util.h"
 #include "birth/game-play-initializer.h"
+#include "core/player-update-types.h"
 #include "io/input-key-acceptor.h"
 #include "player/player-class.h"
 #include "player/player-personality.h"
index d75b91f..9a54290 100644 (file)
@@ -9,6 +9,7 @@
 #include "combat/attack-accuracy.h"
 #include "combat/attack-criticality.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
 #include "effect/effect-characteristics.h"
index 271b455..2c13257 100644 (file)
@@ -12,6 +12,7 @@
 #include "cmd-action/cmd-spell.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-object.h"
 #include "game-option/disturbance-options.h"
index 96f2fbd..4fef580 100644 (file)
@@ -3,6 +3,7 @@
 #include "cmd-io/cmd-dump.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/spells-effect-util.h"
 #include "floor/floor.h"
index 9f3354d..64df832 100644 (file)
@@ -10,6 +10,7 @@
 #include "cmd-io/cmd-dump.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
index 4ab0ba2..86cf9f9 100644 (file)
@@ -16,6 +16,7 @@
 #include "cmd-building/cmd-inn.h"
 #include "cmd-io/cmd-dump.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/scores.h"
 #include "core/show-file.h"
 #include "core/special-internal-keys.h"
index 44a2344..68da191 100644 (file)
@@ -13,6 +13,7 @@
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
 #include "core/hp-mp-processor.h"
+#include "core/player-update-types.h"
 #include "effect/effect-characteristics.h"
 #include "effect/spells-effect-util.h"
 #include "floor/floor-object.h"
index 61910b8..6e4bcdd 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "cmd-item/cmd-eat.h"
 #include "core/hp-mp-processor.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
 #include "inventory/inventory-object.h"
index 9b67fa1..9c568b7 100644 (file)
@@ -23,6 +23,7 @@
 #include "cmd-item/cmd-zapwand.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/quest.h"
 #include "floor/floor-object.h"
index 8d57ee6..15f7b60 100644 (file)
@@ -8,6 +8,7 @@
 #include "art-definition/art-accessory-types.h"
 #include "art-definition/art-armor-types.h"
 #include "cmd/cmd-basic.h"
+#include "core/player-update-types.h"
 #include "core/show-file.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
index 4fcd09e..4f2e287 100644 (file)
@@ -8,6 +8,7 @@
 #include "autopick/autopick.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "game-option/text-display-options.h"
 #include "io/command-repeater.h"
index c0fd7f6..86d9388 100644 (file)
@@ -1,5 +1,6 @@
 #include "cmd-item/cmd-usestaff.h"
 #include "cmd/cmd-basic.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
 #include "game-option/disturbance-options.h"
index 4d50858..2652212 100644 (file)
@@ -1,5 +1,6 @@
 #include "cmd-item/cmd-zaprod.h"
 #include "cmd/cmd-basic.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
 #include "game-option/disturbance-options.h"
index 69e2972..397b75f 100644 (file)
@@ -1,5 +1,6 @@
 #include "cmd-item/cmd-zapwand.h"
 #include "cmd/cmd-basic.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
 #include "game-option/disturbance-options.h"
index 1b1928a..136c077 100644 (file)
@@ -1,5 +1,6 @@
 #include "cmd-visual/cmd-draw.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "io/files-util.h"
 #include "io/input-key-acceptor.h"
index 9ff7286..8c074d8 100644 (file)
@@ -19,6 +19,7 @@
 #include "combat/slaying.h"
 #include "core/asking-player.h"
 #include "core/output-updater.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
index f63466e..4354c01 100644 (file)
@@ -1,5 +1,6 @@
 #include "combat/shoot.h"
 #include "art-definition/art-bow-types.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "effect/spells-effect-util.h"
index bca3b1b..d75538a 100644 (file)
@@ -19,6 +19,7 @@
 #include "core/game-closer.h"
 #include "core/output-updater.h"
 #include "core/player-processor.h"
+#include "core/player-update-types.h"
 #include "core/scores.h"
 #include "core/speed-table.h"
 #include "core/status-reseter.h"
index 7992ddb..665d5b5 100644 (file)
@@ -1,5 +1,6 @@
 #include "core/hp-mp-regenerator.h"
 #include "cmd-item/cmd-magiceat.h"
+#include "core/player-update-types.h"
 #include "floor/floor.h"
 #include "inventory/inventory-slot-types.h"
 #include "monster-race/monster-race.h"
index a3f0dca..bbe773d 100644 (file)
@@ -1,4 +1,5 @@
 #include "core/player-processor.h"
+#include "core/player-update-types.h"
 #include "core/special-internal-keys.h"
 #include "core/speed-table.h"
 #include "core/stuff-handler.h"
diff --git a/src/core/player-update-types.h b/src/core/player-update-types.h
new file mode 100644 (file)
index 0000000..18568f0
--- /dev/null
@@ -0,0 +1,21 @@
+#pragma once
+
+typedef enum player_update_type {
+       PU_BONUS = 0x00000001L, /*!< ステータス更新フラグ: 能力値修正 / Calculate bonuses */
+       PU_TORCH = 0x00000002L, /*!< ステータス更新フラグ: 光源半径 / Calculate torch radius */
+       PU_HP = 0x00000010L, /*!< ステータス更新フラグ: HP / Calculate chp and mhp */
+       PU_MANA = 0x00000020L, /*!< ステータス更新フラグ: MP / Calculate csp and msp */
+       PU_SPELLS = 0x00000040L, /*!< ステータス更新フラグ: 魔法学習数 / Calculate spells */
+       PU_COMBINE = 0x00000100L, /*!< アイテム処理フラグ: アイテムの結合を要する / Combine the pack */
+       PU_REORDER = 0x00000200L, /*!< アイテム処理フラグ: アイテムの並び替えを要する / Reorder the pack */
+       PU_AUTODESTROY = 0x00000400L, /*!< アイテム処理フラグ: アイテムの自動破壊を要する / Auto-destroy marked item */
+       PU_UN_VIEW = 0x00010000L, /*!< ステータス更新フラグ: 地形の視界外化 / Forget view */
+       PU_UN_LITE = 0x00020000L, /*!< ステータス更新フラグ: 明暗範囲の視界外化 / Forget lite */
+       PU_VIEW = 0x00100000L, /*!< ステータス更新フラグ: 視界 / Update view */
+       PU_LITE = 0x00200000L, /*!< ステータス更新フラグ: 明暗範囲 / Update lite */
+       PU_MON_LITE = 0x00400000L, /*!< ステータス更新フラグ: モンスターの光源範囲 / Monster illumination */
+       PU_DELAY_VIS = 0x00800000L, /*!< ステータス更新フラグ: 視界の追加更新 / Mega-Hack -- Delayed visual update */
+       PU_MONSTERS = 0x01000000L, /*!< ステータス更新フラグ: モンスターのステータス / Update monsters */
+       PU_DISTANCE = 0x02000000L, /*!< ステータス更新フラグ: プレイヤーとモンスターの距離 / Update distances */
+       PU_FLOW = 0x10000000L, /*!< ステータス更新フラグ: プレイヤーから各マスへの到達距離 / Update flow */
+} player_update_type;
index 4b1e833..e505145 100644 (file)
@@ -1,4 +1,5 @@
 #include "core/stuff-handler.h"
+#include "core/player-update-types.h"
 #include "core/window-redrawer.h"
 
 /*!
index 8cef6fb..24faccc 100644 (file)
@@ -3,6 +3,7 @@
 #include "cmd-io/cmd-dump.h"
 #include "core/hp-mp-regenerator.h"
 #include "core/player-processor.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "core/turn-compensator.h"
 #include "dungeon/dungeon.h"
index 30bcfec..c778934 100644 (file)
@@ -1,6 +1,7 @@
 #include "dungeon/quest.h"
 #include "cmd-io/cmd-dump.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "floor/floor-events.h"
 #include "floor/floor-object.h"
index 76ac50f..aa5f3f3 100644 (file)
@@ -1,4 +1,5 @@
 #include "effect/effect-feature.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "effect/effect-characteristics.h"
 #include "floor/floor.h"
index 24c79b7..7439053 100644 (file)
@@ -1,6 +1,7 @@
 #include "effect/effect-player-resist-hurt.h"
 #include "art-definition/art-sword-types.h"
 #include "core/hp-mp-processor.h"
+#include "core/player-update-types.h"
 #include "inventory/inventory-damage.h"
 #include "inventory/inventory-slot-types.h"
 #include "mind/mind-mirror-master.h"
index 72a276b..eca4a42 100644 (file)
@@ -1,5 +1,6 @@
 #include "floor/floor-events.h"
 #include "cmd-io/cmd-dump.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
 #include "game-option/birth-options.h"
index f6027f9..31b8aed 100644 (file)
@@ -1,4 +1,5 @@
 #include "floor/floor.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
 #include "effect/effect-characteristics.h"
index 2394476..de48366 100644 (file)
@@ -1,6 +1,7 @@
 #include "inventory/inventory-curse.h"
 #include "art-definition/art-accessory-types.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "io/files-util.h"
 #include "monster-floor/monster-summon.h"
index c2799be..6cb1f90 100644 (file)
@@ -1,4 +1,5 @@
 #include "inventory/inventory-object.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-hook/hook-weapon.h"
index 5088eb2..b7ef404 100644 (file)
@@ -1,4 +1,5 @@
 #include "io/cursor.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "effect/spells-effect-util.h"
index 43e4b16..52b82d4 100644 (file)
@@ -37,6 +37,7 @@
 #include "cmd-visual/cmd-visuals.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/special-internal-keys.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h" // do_cmd_quest() がある。後で移設する.
index 9b87ce8..c05581c 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "io/screen-util.h"
 #include "core/player-processor.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
index caa52ec..434c3e7 100644 (file)
@@ -13,9 +13,8 @@
 #include "cmd-action/cmd-pet.h"
 #include "cmd-building/cmd-building.h"
 #include "core/asking-player.h"
-#include "util/sort.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
-#include "info-reader/fixed-map-parser.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
 #include "effect/spells-effect-util.h"
@@ -32,6 +31,7 @@
 #include "game-option/map-screen-options.h"
 #include "grid/feature.h"
 #include "grid/grid.h"
+#include "info-reader/fixed-map-parser.h"
 #include "io/command-repeater.h"
 #include "io/cursor.h"
 #include "io/input-key-acceptor.h"
@@ -39,9 +39,9 @@
 #include "io/screen-util.h"
 #include "locale/vowel-checker.h"
 #include "main/sound-of-music.h"
+#include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
-#include "monster-race/monster-race-hook.h"
 #include "monster/monster-describer.h"
 #include "monster/monster-description-types.h"
 #include "monster/monster-flag-types.h"
 #include "term/term-color-types.h"
 #include "util/bit-flags-calculator.h"
 #include "util/int-char-converter.h"
-#include "view/display-messages.h"
+#include "util/sort.h"
 #include "view/display-lore.h"
+#include "view/display-messages.h"
 #include "view/display-monster-status.h"
 #include "view/main-window-util.h"
 #include "world/world.h"
 
- /*!
 * @brief コンソール上におけるマップ表示の左上位置を返す /
 * Calculates current boundaries Called below and from "do_cmd_locate()".
 * @return なし
 */
+/*!
+ * @brief コンソール上におけるマップ表示の左上位置を返す /
+ * Calculates current boundaries Called below and from "do_cmd_locate()".
+ * @return なし
+ */
 void panel_bounds_center(void)
 {
-       TERM_LEN wid, hgt;
+    TERM_LEN wid, hgt;
 
-       get_screen_size(&wid, &hgt);
+    get_screen_size(&wid, &hgt);
 
-       panel_row_max = panel_row_min + hgt - 1;
-       panel_row_prt = panel_row_min - 1;
-       panel_col_max = panel_col_min + wid - 1;
-       panel_col_prt = panel_col_min - 13;
+    panel_row_max = panel_row_min + hgt - 1;
+    panel_row_prt = panel_row_min - 1;
+    panel_col_max = panel_col_min + wid - 1;
+    panel_col_prt = panel_col_min - 13;
 }
 
 /*!
@@ -99,21 +100,25 @@ void panel_bounds_center(void)
  */
 static bool change_panel_xy(player_type *creature_ptr, POSITION y, POSITION x)
 {
-       POSITION dy = 0, dx = 0;
-       TERM_LEN wid, hgt;
-       get_screen_size(&wid, &hgt);
-
-       if (y < panel_row_min) dy = -1;
-       if (y > panel_row_max) dy = 1;
-       if (x < panel_col_min) dx = -1;
-       if (x > panel_col_max) dx = 1;
-
-       if (!dy && !dx) return FALSE;
-
-       return change_panel(creature_ptr, dy, dx);
+    POSITION dy = 0, dx = 0;
+    TERM_LEN wid, hgt;
+    get_screen_size(&wid, &hgt);
+
+    if (y < panel_row_min)
+        dy = -1;
+    if (y > panel_row_max)
+        dy = 1;
+    if (x < panel_col_min)
+        dx = -1;
+    if (x > panel_col_max)
+        dx = 1;
+
+    if (!dy && !dx)
+        return FALSE;
+
+    return change_panel(creature_ptr, dy, dx);
 }
 
-
 /*!
  * @brief マップ描画のフォーカスを当てるべき座標を更新する
  * @param creature_ptr プレーヤーへの参照ポインタ
@@ -126,98 +131,98 @@ static bool change_panel_xy(player_type *creature_ptr, POSITION y, POSITION x)
  */
 void verify_panel(player_type *creature_ptr)
 {
-       POSITION y = creature_ptr->y;
-       POSITION x = creature_ptr->x;
-       TERM_LEN wid, hgt;
-
-       get_screen_size(&wid, &hgt);
-
-       int max_prow_min = creature_ptr->current_floor_ptr->height - hgt;
-       int max_pcol_min = creature_ptr->current_floor_ptr->width - wid;
-
-       /* Bounds checking */
-       int prow_min;
-       int pcol_min;
-       if (max_prow_min < 0) max_prow_min = 0;
-       if (max_pcol_min < 0) max_pcol_min = 0;
-
-       /* Center on player */
-       if (center_player && (center_running || !creature_ptr->running))
-       {
-               /* Center vertically */
-               prow_min = y - hgt / 2;
-               if (prow_min < 0) prow_min = 0;
-               else if (prow_min > max_prow_min) prow_min = max_prow_min;
-
-               /* Center horizontally */
-               pcol_min = x - wid / 2;
-               if (pcol_min < 0) pcol_min = 0;
-               else if (pcol_min > max_pcol_min) pcol_min = max_pcol_min;
-       }
-       else
-       {
-               prow_min = panel_row_min;
-               pcol_min = panel_col_min;
-
-               /* Scroll screen when 2 grids from top/bottom edge */
-               if (y > panel_row_max - 2)
-               {
-                       while (y > prow_min + hgt - 1 - 2)
-                       {
-                               prow_min += (hgt / 2);
-                       }
-               }
-
-               if (y < panel_row_min + 2)
-               {
-                       while (y < prow_min + 2)
-                       {
-                               prow_min -= (hgt / 2);
-                       }
-               }
-
-               if (prow_min > max_prow_min) prow_min = max_prow_min;
-               if (prow_min < 0) prow_min = 0;
-
-               /* Scroll screen when 4 grids from left/right edge */
-               if (x > panel_col_max - 4)
-               {
-                       while (x > pcol_min + wid - 1 - 4)
-                       {
-                               pcol_min += (wid / 2);
-                       }
-               }
-
-               if (x < panel_col_min + 4)
-               {
-                       while (x < pcol_min + 4)
-                       {
-                               pcol_min -= (wid / 2);
-                       }
-               }
-
-               if (pcol_min > max_pcol_min) pcol_min = max_pcol_min;
-               if (pcol_min < 0) pcol_min = 0;
-       }
-
-       /* Check for "no change" */
-       if ((prow_min == panel_row_min) && (pcol_min == panel_col_min)) return;
-
-       /* Save the new panel info */
-       panel_row_min = prow_min;
-       panel_col_min = pcol_min;
-
-       /* Hack -- optional disturb on "panel change" */
-       if (disturb_panel && !center_player) disturb(creature_ptr, FALSE, FALSE);
-
-       panel_bounds_center();
-
-       creature_ptr->update |= (PU_MONSTERS);
-       creature_ptr->redraw |= (PR_MAP);
-       creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
+    POSITION y = creature_ptr->y;
+    POSITION x = creature_ptr->x;
+    TERM_LEN wid, hgt;
+
+    get_screen_size(&wid, &hgt);
+
+    int max_prow_min = creature_ptr->current_floor_ptr->height - hgt;
+    int max_pcol_min = creature_ptr->current_floor_ptr->width - wid;
+
+    /* Bounds checking */
+    int prow_min;
+    int pcol_min;
+    if (max_prow_min < 0)
+        max_prow_min = 0;
+    if (max_pcol_min < 0)
+        max_pcol_min = 0;
+
+    /* Center on player */
+    if (center_player && (center_running || !creature_ptr->running)) {
+        /* Center vertically */
+        prow_min = y - hgt / 2;
+        if (prow_min < 0)
+            prow_min = 0;
+        else if (prow_min > max_prow_min)
+            prow_min = max_prow_min;
+
+        /* Center horizontally */
+        pcol_min = x - wid / 2;
+        if (pcol_min < 0)
+            pcol_min = 0;
+        else if (pcol_min > max_pcol_min)
+            pcol_min = max_pcol_min;
+    } else {
+        prow_min = panel_row_min;
+        pcol_min = panel_col_min;
+
+        /* Scroll screen when 2 grids from top/bottom edge */
+        if (y > panel_row_max - 2) {
+            while (y > prow_min + hgt - 1 - 2) {
+                prow_min += (hgt / 2);
+            }
+        }
+
+        if (y < panel_row_min + 2) {
+            while (y < prow_min + 2) {
+                prow_min -= (hgt / 2);
+            }
+        }
+
+        if (prow_min > max_prow_min)
+            prow_min = max_prow_min;
+        if (prow_min < 0)
+            prow_min = 0;
+
+        /* Scroll screen when 4 grids from left/right edge */
+        if (x > panel_col_max - 4) {
+            while (x > pcol_min + wid - 1 - 4) {
+                pcol_min += (wid / 2);
+            }
+        }
+
+        if (x < panel_col_min + 4) {
+            while (x < pcol_min + 4) {
+                pcol_min -= (wid / 2);
+            }
+        }
+
+        if (pcol_min > max_pcol_min)
+            pcol_min = max_pcol_min;
+        if (pcol_min < 0)
+            pcol_min = 0;
+    }
+
+    /* Check for "no change" */
+    if ((prow_min == panel_row_min) && (pcol_min == panel_col_min))
+        return;
+
+    /* Save the new panel info */
+    panel_row_min = prow_min;
+    panel_col_min = pcol_min;
+
+    /* Hack -- optional disturb on "panel change" */
+    if (disturb_panel && !center_player)
+        disturb(creature_ptr, FALSE, FALSE);
+
+    panel_bounds_center();
+
+    creature_ptr->update |= (PU_MONSTERS);
+    creature_ptr->redraw |= (PR_MAP);
+    creature_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
 }
 
-
 /*
  * Determine is a monster makes a reasonable target
  *
@@ -234,31 +239,35 @@ void verify_panel(player_type *creature_ptr)
  */
 bool target_able(player_type *creature_ptr, MONSTER_IDX m_idx)
 {
-       floor_type *floor_ptr = creature_ptr->current_floor_ptr;
-       monster_type *m_ptr = &floor_ptr->m_list[m_idx];
+    floor_type *floor_ptr = creature_ptr->current_floor_ptr;
+    monster_type *m_ptr = &floor_ptr->m_list[m_idx];
 
-       /* Monster must be alive */
-       if (!monster_is_valid(m_ptr)) return FALSE;
+    /* Monster must be alive */
+    if (!monster_is_valid(m_ptr))
+        return FALSE;
 
-       /* Hack -- no targeting hallucinations */
-       if (creature_ptr->image) return FALSE;
+    /* Hack -- no targeting hallucinations */
+    if (creature_ptr->image)
+        return FALSE;
 
-       /* Monster must be visible */
-       if (!m_ptr->ml) return FALSE;
+    /* Monster must be visible */
+    if (!m_ptr->ml)
+        return FALSE;
 
-       if (creature_ptr->riding && (creature_ptr->riding == m_idx)) return TRUE;
+    if (creature_ptr->riding && (creature_ptr->riding == m_idx))
+        return TRUE;
 
-       /* Monster must be projectable */
-       if (!projectable(creature_ptr, creature_ptr->y, creature_ptr->x, m_ptr->fy, m_ptr->fx)) return FALSE;
+    /* Monster must be projectable */
+    if (!projectable(creature_ptr, creature_ptr->y, creature_ptr->x, m_ptr->fy, m_ptr->fx))
+        return FALSE;
 
-       /* Hack -- Never target trappers */
-       /* if (CLEAR_ATTR && (CLEAR_CHAR)) return FALSE; */
+    /* Hack -- Never target trappers */
+    /* if (CLEAR_ATTR && (CLEAR_CHAR)) return FALSE; */
 
-       /* Assume okay */
-       return TRUE;
+    /* Assume okay */
+    return TRUE;
 }
 
-
 /*
  * Targetting variables
  */
@@ -273,117 +282,126 @@ POSITION target_row;
  */
 bool target_okay(player_type *creature_ptr)
 {
-       /* Accept stationary targets */
-       if (target_who < 0) return TRUE;
+    /* Accept stationary targets */
+    if (target_who < 0)
+        return TRUE;
 
-       /* Check moving targets */
-       if (target_who <= 0) return FALSE;
+    /* Check moving targets */
+    if (target_who <= 0)
+        return FALSE;
 
-       /* Accept reasonable targets */
-       if (!target_able(creature_ptr, target_who)) return FALSE;
+    /* Accept reasonable targets */
+    if (!target_able(creature_ptr, target_who))
+        return FALSE;
 
-       monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[target_who];
+    monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[target_who];
 
-       /* Acquire monster location */
-       target_row = m_ptr->fy;
-       target_col = m_ptr->fx;
+    /* Acquire monster location */
+    target_row = m_ptr->fy;
+    target_col = m_ptr->fx;
 
-       /* Good target */
-       return TRUE;
+    /* Good target */
+    return TRUE;
 }
 
-
 /*
  * Hack -- help "select" a location (see below)
  */
 static POSITION_IDX target_pick(POSITION y1, POSITION x1, POSITION dy, POSITION dx)
 {
-       /* Scan the locations */
-       POSITION_IDX b_i = -1, b_v = 9999;
-       for (POSITION_IDX i = 0; i < tmp_pos.n; i++)
-       {
-               /* Point 2 */
-               POSITION x2 = tmp_pos.x[i];
-               POSITION y2 = tmp_pos.y[i];
-
-               /* Directed distance */
-               POSITION x3 = (x2 - x1);
-               POSITION y3 = (y2 - y1);
-
-               /* Verify quadrant */
-               if (dx && (x3 * dx <= 0)) continue;
-               if (dy && (y3 * dy <= 0)) continue;
-
-               POSITION x4 = ABS(x3);
-               POSITION y4 = ABS(y3);
-
-               /* Verify quadrant */
-               if (dy && !dx && (x4 > y4)) continue;
-               if (dx && !dy && (y4 > x4)) continue;
-
-               /* Approximate Double Distance */
-               POSITION_IDX v = ((x4 > y4) ? (x4 + x4 + y4) : (y4 + y4 + x4));
-
-               /* Penalize location */
-               if ((b_i >= 0) && (v >= b_v)) continue;
-               b_i = i; b_v = v;
-       }
-
-       return b_i;
+    /* Scan the locations */
+    POSITION_IDX b_i = -1, b_v = 9999;
+    for (POSITION_IDX i = 0; i < tmp_pos.n; i++) {
+        /* Point 2 */
+        POSITION x2 = tmp_pos.x[i];
+        POSITION y2 = tmp_pos.y[i];
+
+        /* Directed distance */
+        POSITION x3 = (x2 - x1);
+        POSITION y3 = (y2 - y1);
+
+        /* Verify quadrant */
+        if (dx && (x3 * dx <= 0))
+            continue;
+        if (dy && (y3 * dy <= 0))
+            continue;
+
+        POSITION x4 = ABS(x3);
+        POSITION y4 = ABS(y3);
+
+        /* Verify quadrant */
+        if (dy && !dx && (x4 > y4))
+            continue;
+        if (dx && !dy && (y4 > x4))
+            continue;
+
+        /* Approximate Double Distance */
+        POSITION_IDX v = ((x4 > y4) ? (x4 + x4 + y4) : (y4 + y4 + x4));
+
+        /* Penalize location */
+        if ((b_i >= 0) && (v >= b_v))
+            continue;
+        b_i = i;
+        b_v = v;
+    }
+
+    return b_i;
 }
 
-
 /*
  * Hack -- determine if a given location is "interesting"
  */
 static bool target_set_accept(player_type *creature_ptr, POSITION y, POSITION x)
 {
-       floor_type *floor_ptr = creature_ptr->current_floor_ptr;
-       if (!(in_bounds(floor_ptr, y, x))) return FALSE;
-
-       /* Player grid is always interesting */
-       if (player_bold(creature_ptr, y, x)) return TRUE;
-
-       if (creature_ptr->image) return FALSE;
-
-       grid_type *g_ptr;
-       g_ptr = &floor_ptr->grid_array[y][x];
-
-       /* Visible monsters */
-       if (g_ptr->m_idx)
-       {
-               monster_type *m_ptr = &floor_ptr->m_list[g_ptr->m_idx];
-
-               /* Visible monsters */
-               if (m_ptr->ml) return TRUE;
-       }
-
-       /* Scan all objects in the grid */
-       OBJECT_IDX next_o_idx = 0;
-       for (OBJECT_IDX this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
-       {
-               object_type *o_ptr;
-               o_ptr = &floor_ptr->o_list[this_o_idx];
-               next_o_idx = o_ptr->next_o_idx;
-
-               /* Memorized object */
-               if (o_ptr->marked & OM_FOUND) return TRUE;
-       }
-
-       /* Interesting memorized features */
-       if (g_ptr->info & (CAVE_MARK))
-       {
-               /* Notice object features */
-               if (g_ptr->info & CAVE_OBJECT) return TRUE;
-
-               /* Feature code (applying "mimic" field) */
-               if (have_flag(f_info[get_feat_mimic(g_ptr)].flags, FF_NOTICE)) return TRUE;
-       }
-
-       return FALSE;
+    floor_type *floor_ptr = creature_ptr->current_floor_ptr;
+    if (!(in_bounds(floor_ptr, y, x)))
+        return FALSE;
+
+    /* Player grid is always interesting */
+    if (player_bold(creature_ptr, y, x))
+        return TRUE;
+
+    if (creature_ptr->image)
+        return FALSE;
+
+    grid_type *g_ptr;
+    g_ptr = &floor_ptr->grid_array[y][x];
+
+    /* Visible monsters */
+    if (g_ptr->m_idx) {
+        monster_type *m_ptr = &floor_ptr->m_list[g_ptr->m_idx];
+
+        /* Visible monsters */
+        if (m_ptr->ml)
+            return TRUE;
+    }
+
+    /* Scan all objects in the grid */
+    OBJECT_IDX next_o_idx = 0;
+    for (OBJECT_IDX this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) {
+        object_type *o_ptr;
+        o_ptr = &floor_ptr->o_list[this_o_idx];
+        next_o_idx = o_ptr->next_o_idx;
+
+        /* Memorized object */
+        if (o_ptr->marked & OM_FOUND)
+            return TRUE;
+    }
+
+    /* Interesting memorized features */
+    if (g_ptr->info & (CAVE_MARK)) {
+        /* Notice object features */
+        if (g_ptr->info & CAVE_OBJECT)
+            return TRUE;
+
+        /* Feature code (applying "mimic" field) */
+        if (have_flag(f_info[get_feat_mimic(g_ptr)].flags, FF_NOTICE))
+            return TRUE;
+    }
+
+    return FALSE;
 }
 
-
 /*
  * Prepare the "temp" array for "target_set"
  *
@@ -391,133 +409,117 @@ static bool target_set_accept(player_type *creature_ptr, POSITION y, POSITION x)
  */
 static void target_set_prepare(player_type *creature_ptr, BIT_FLAGS mode)
 {
-       POSITION min_hgt, max_hgt, min_wid, max_wid;
-       if (mode & TARGET_KILL)
-       {
-               /* Inner range */
-               min_hgt = MAX((creature_ptr->y - get_max_range(creature_ptr)), 0);
-               max_hgt = MIN((creature_ptr->y + get_max_range(creature_ptr)), creature_ptr->current_floor_ptr->height - 1);
-               min_wid = MAX((creature_ptr->x - get_max_range(creature_ptr)), 0);
-               max_wid = MIN((creature_ptr->x + get_max_range(creature_ptr)), creature_ptr->current_floor_ptr->width - 1);
-       }
-       else /* not targetting */
-       {
-               /* Inner panel */
-               min_hgt = panel_row_min;
-               max_hgt = panel_row_max;
-               min_wid = panel_col_min;
-               max_wid = panel_col_max;
-       }
-
-       /* Reset "temp" array */
-       tmp_pos.n = 0;
-
-       /* Scan the current panel */
-       for (POSITION y = min_hgt; y <= max_hgt; y++)
-       {
-               for (POSITION x = min_wid; x <= max_wid; x++)
-               {
-                       grid_type *g_ptr;
-
-                       /* Require "interesting" contents */
-                       if (!target_set_accept(creature_ptr, y, x)) continue;
-
-                       g_ptr = &creature_ptr->current_floor_ptr->grid_array[y][x];
-
-                       /* Require target_able monsters for "TARGET_KILL" */
-                       if ((mode & (TARGET_KILL)) && !target_able(creature_ptr, g_ptr->m_idx)) continue;
-
-                       if ((mode & (TARGET_KILL)) && !target_pet && is_pet(&creature_ptr->current_floor_ptr->m_list[g_ptr->m_idx])) continue;
-
-                       /* Save the location */
-                       tmp_pos.x[tmp_pos.n] = x;
-                       tmp_pos.y[tmp_pos.n] = y;
-                       tmp_pos.n++;
-               }
-       }
-
-       /* Set the sort hooks */
-       if (mode & (TARGET_KILL))
-       {
-               ang_sort(creature_ptr, tmp_pos.x, tmp_pos.y, tmp_pos.n, ang_sort_comp_distance, ang_sort_swap_distance);
-       }
-       else
-       {
-               ang_sort(creature_ptr, tmp_pos.x, tmp_pos.y, tmp_pos.n, ang_sort_comp_importance, ang_sort_swap_distance);
-       }
-
-       if (creature_ptr->riding == 0 || !target_pet || (tmp_pos.n <= 1) || !(mode & (TARGET_KILL)))
-               return;
-
-       POSITION tmp = tmp_pos.y[0];
-       tmp_pos.y[0] = tmp_pos.y[1];
-       tmp_pos.y[1] = tmp;
-       tmp = tmp_pos.x[0];
-       tmp_pos.x[0] = tmp_pos.x[1];
-       tmp_pos.x[1] = tmp;
-}
-
-
-void target_set_prepare_look(player_type *creature_ptr)
-{
-       target_set_prepare(creature_ptr, TARGET_LOOK);
+    POSITION min_hgt, max_hgt, min_wid, max_wid;
+    if (mode & TARGET_KILL) {
+        /* Inner range */
+        min_hgt = MAX((creature_ptr->y - get_max_range(creature_ptr)), 0);
+        max_hgt = MIN((creature_ptr->y + get_max_range(creature_ptr)), creature_ptr->current_floor_ptr->height - 1);
+        min_wid = MAX((creature_ptr->x - get_max_range(creature_ptr)), 0);
+        max_wid = MIN((creature_ptr->x + get_max_range(creature_ptr)), creature_ptr->current_floor_ptr->width - 1);
+    } else /* not targetting */
+    {
+        /* Inner panel */
+        min_hgt = panel_row_min;
+        max_hgt = panel_row_max;
+        min_wid = panel_col_min;
+        max_wid = panel_col_max;
+    }
+
+    /* Reset "temp" array */
+    tmp_pos.n = 0;
+
+    /* Scan the current panel */
+    for (POSITION y = min_hgt; y <= max_hgt; y++) {
+        for (POSITION x = min_wid; x <= max_wid; x++) {
+            grid_type *g_ptr;
+
+            /* Require "interesting" contents */
+            if (!target_set_accept(creature_ptr, y, x))
+                continue;
+
+            g_ptr = &creature_ptr->current_floor_ptr->grid_array[y][x];
+
+            /* Require target_able monsters for "TARGET_KILL" */
+            if ((mode & (TARGET_KILL)) && !target_able(creature_ptr, g_ptr->m_idx))
+                continue;
+
+            if ((mode & (TARGET_KILL)) && !target_pet && is_pet(&creature_ptr->current_floor_ptr->m_list[g_ptr->m_idx]))
+                continue;
+
+            /* Save the location */
+            tmp_pos.x[tmp_pos.n] = x;
+            tmp_pos.y[tmp_pos.n] = y;
+            tmp_pos.n++;
+        }
+    }
+
+    /* Set the sort hooks */
+    if (mode & (TARGET_KILL)) {
+        ang_sort(creature_ptr, tmp_pos.x, tmp_pos.y, tmp_pos.n, ang_sort_comp_distance, ang_sort_swap_distance);
+    } else {
+        ang_sort(creature_ptr, tmp_pos.x, tmp_pos.y, tmp_pos.n, ang_sort_comp_importance, ang_sort_swap_distance);
+    }
+
+    if (creature_ptr->riding == 0 || !target_pet || (tmp_pos.n <= 1) || !(mode & (TARGET_KILL)))
+        return;
+
+    POSITION tmp = tmp_pos.y[0];
+    tmp_pos.y[0] = tmp_pos.y[1];
+    tmp_pos.y[1] = tmp;
+    tmp = tmp_pos.x[0];
+    tmp_pos.x[0] = tmp_pos.x[1];
+    tmp_pos.x[1] = tmp;
 }
 
+void target_set_prepare_look(player_type *creature_ptr) { target_set_prepare(creature_ptr, TARGET_LOOK); }
 
 /*
  * Evaluate number of kill needed to gain level
  */
 static void evaluate_monster_exp(player_type *creature_ptr, char *buf, monster_type *m_ptr)
 {
-       monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx];
-       u32b num;
-       s32b exp_mon, exp_adv;
-       u32b exp_mon_frac, exp_adv_frac;
-
-       if ((creature_ptr->lev >= PY_MAX_LEVEL) || (creature_ptr->prace == RACE_ANDROID))
-       {
-               sprintf(buf, "**");
-               return;
-       }
-       else if (!ap_r_ptr->r_tkills || (m_ptr->mflag2 & MFLAG2_KAGE))
-       {
-               if (!current_world_ptr->wizard)
-               {
-                       sprintf(buf, "??");
-                       return;
-               }
-       }
-
-       /* The monster's experience point (assuming average monster speed) */
-       exp_mon = ap_r_ptr->mexp * ap_r_ptr->level;
-       exp_mon_frac = 0;
-       s64b_div(&exp_mon, &exp_mon_frac, 0, (creature_ptr->max_plv + 2));
-
-
-       /* Total experience value for next level */
-       exp_adv = player_exp[creature_ptr->lev - 1] * creature_ptr->expfact;
-       exp_adv_frac = 0;
-       s64b_div(&exp_adv, &exp_adv_frac, 0, 100);
-
-       /* Experience value need to get */
-       s64b_sub(&exp_adv, &exp_adv_frac, creature_ptr->exp, creature_ptr->exp_frac);
-
-
-       /* You need to kill at least one monster to get any experience */
-       s64b_add(&exp_adv, &exp_adv_frac, exp_mon, exp_mon_frac);
-       s64b_sub(&exp_adv, &exp_adv_frac, 0, 1);
-
-       /* Extract number of monsters needed */
-       s64b_div(&exp_adv, &exp_adv_frac, exp_mon, exp_mon_frac);
-
-       /* If 999 or more monsters needed, only display "999". */
-       num = MIN(999, exp_adv_frac);
-
-       /* Display the number */
-       sprintf(buf, "%03ld", (long int)num);
+    monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx];
+    u32b num;
+    s32b exp_mon, exp_adv;
+    u32b exp_mon_frac, exp_adv_frac;
+
+    if ((creature_ptr->lev >= PY_MAX_LEVEL) || (creature_ptr->prace == RACE_ANDROID)) {
+        sprintf(buf, "**");
+        return;
+    } else if (!ap_r_ptr->r_tkills || (m_ptr->mflag2 & MFLAG2_KAGE)) {
+        if (!current_world_ptr->wizard) {
+            sprintf(buf, "??");
+            return;
+        }
+    }
+
+    /* The monster's experience point (assuming average monster speed) */
+    exp_mon = ap_r_ptr->mexp * ap_r_ptr->level;
+    exp_mon_frac = 0;
+    s64b_div(&exp_mon, &exp_mon_frac, 0, (creature_ptr->max_plv + 2));
+
+    /* Total experience value for next level */
+    exp_adv = player_exp[creature_ptr->lev - 1] * creature_ptr->expfact;
+    exp_adv_frac = 0;
+    s64b_div(&exp_adv, &exp_adv_frac, 0, 100);
+
+    /* Experience value need to get */
+    s64b_sub(&exp_adv, &exp_adv_frac, creature_ptr->exp, creature_ptr->exp_frac);
+
+    /* You need to kill at least one monster to get any experience */
+    s64b_add(&exp_adv, &exp_adv_frac, exp_mon, exp_mon_frac);
+    s64b_sub(&exp_adv, &exp_adv_frac, 0, 1);
+
+    /* Extract number of monsters needed */
+    s64b_div(&exp_adv, &exp_adv_frac, exp_mon, exp_mon_frac);
+
+    /* If 999 or more monsters needed, only display "999". */
+    num = MIN(999, exp_adv_frac);
+
+    /* Display the number */
+    sprintf(buf, "%03ld", (long int)num);
 }
 
-
 bool show_gold_on_floor = FALSE;
 
 /*
@@ -543,479 +545,453 @@ bool show_gold_on_floor = FALSE;
  */
 static char target_set_aux(player_type *subject_ptr, POSITION y, POSITION x, BIT_FLAGS mode, concptr info)
 {
-       OBJECT_IDX next_o_idx = 0;
-       concptr s1 = "", s2 = "", s3 = "", x_info = "";
-       bool boring = TRUE;
-       FEAT_IDX feat;
-       feature_type *f_ptr;
-       char query = '\001';
-       char out_val[MAX_NLEN + 80];
-       OBJECT_IDX floor_list[23];
-       ITEM_NUMBER floor_num = 0;
-
-       /* Scan all objects in the grid */
-       if (easy_floor)
-       {
-               floor_num = scan_floor_items(subject_ptr, floor_list, y, x, 0x02, 0);
-
-               if (floor_num)
-               {
-                       x_info = _("x物 ", "x,");
-               }
-       }
-
-       /* Hack -- under the player */
-       if (player_bold(subject_ptr, y, x))
-       {
+    OBJECT_IDX next_o_idx = 0;
+    concptr s1 = "", s2 = "", s3 = "", x_info = "";
+    bool boring = TRUE;
+    FEAT_IDX feat;
+    feature_type *f_ptr;
+    char query = '\001';
+    char out_val[MAX_NLEN + 80];
+    OBJECT_IDX floor_list[23];
+    ITEM_NUMBER floor_num = 0;
+
+    /* Scan all objects in the grid */
+    if (easy_floor) {
+        floor_num = scan_floor_items(subject_ptr, floor_list, y, x, 0x02, 0);
+
+        if (floor_num) {
+            x_info = _("x物 ", "x,");
+        }
+    }
+
+    /* Hack -- under the player */
+    if (player_bold(subject_ptr, y, x)) {
 #ifdef JP
-               s1 = "あなたは";
-               s2 = "の上";
-               s3 = "にいる";
+        s1 = "あなたは";
+        s2 = "の上";
+        s3 = "にいる";
 #else
-               s1 = "You are ";
-               s2 = "on ";
+        s1 = "You are ";
+        s2 = "on ";
 #endif
-       }
-       else
-       {
-               s1 = _("ターゲット:", "Target:");
-       }
-
-       /* Hack -- hallucination */
-       if (subject_ptr->image)
-       {
-               concptr name = _("何か奇妙な物", "something strange");
-
-               /* Display a message */
+    } else {
+        s1 = _("ターゲット:", "Target:");
+    }
+
+    /* Hack -- hallucination */
+    if (subject_ptr->image) {
+        concptr name = _("何か奇妙な物", "something strange");
+
+        /* Display a message */
 #ifdef JP
-               sprintf(out_val, "%s%s%s%s [%s]", s1, name, s2, s3, info);
+        sprintf(out_val, "%s%s%s%s [%s]", s1, name, s2, s3, info);
 #else
-               sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, name, info);
+        sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, name, info);
 #endif
 
-               prt(out_val, 0, 0);
-               move_cursor_relative(y, x);
-               query = inkey();
+        prt(out_val, 0, 0);
+        move_cursor_relative(y, x);
+        query = inkey();
 
-               /* Stop on everything but "return" */
-               if ((query != '\r') && (query != '\n')) return query;
+        /* Stop on everything but "return" */
+        if ((query != '\r') && (query != '\n'))
+            return query;
 
-               /* Repeat forever */
-               return 0;
-       }
+        /* Repeat forever */
+        return 0;
+    }
 
-       /* Actual monsters */
-       grid_type *g_ptr = &subject_ptr->current_floor_ptr->grid_array[y][x];
-       if (g_ptr->m_idx && subject_ptr->current_floor_ptr->m_list[g_ptr->m_idx].ml)
-       {
-               monster_type *m_ptr = &subject_ptr->current_floor_ptr->m_list[g_ptr->m_idx];
-               monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx];
-               GAME_TEXT m_name[MAX_NLEN];
-               bool recall = FALSE;
+    /* Actual monsters */
+    grid_type *g_ptr = &subject_ptr->current_floor_ptr->grid_array[y][x];
+    if (g_ptr->m_idx && subject_ptr->current_floor_ptr->m_list[g_ptr->m_idx].ml) {
+        monster_type *m_ptr = &subject_ptr->current_floor_ptr->m_list[g_ptr->m_idx];
+        monster_race *ap_r_ptr = &r_info[m_ptr->ap_r_idx];
+        GAME_TEXT m_name[MAX_NLEN];
+        bool recall = FALSE;
 
-               /* Not boring */
-               boring = FALSE;
+        /* Not boring */
+        boring = FALSE;
 
-               monster_desc(subject_ptr, m_name, m_ptr, MD_INDEF_VISIBLE);
-               monster_race_track(subject_ptr, m_ptr->ap_r_idx);
-               health_track(subject_ptr, g_ptr->m_idx);
-               handle_stuff(subject_ptr);
+        monster_desc(subject_ptr, m_name, m_ptr, MD_INDEF_VISIBLE);
+        monster_race_track(subject_ptr, m_ptr->ap_r_idx);
+        health_track(subject_ptr, g_ptr->m_idx);
+        handle_stuff(subject_ptr);
 
-               /* Interact */
-               while (TRUE)
-               {
-                       char acount[10];
+        /* Interact */
+        while (TRUE) {
+            char acount[10];
 
-                       if (recall)
-                       {
-                               screen_save();
+            if (recall) {
+                screen_save();
 
-                               /* Recall on screen */
-                               screen_roff(subject_ptr, m_ptr->ap_r_idx, 0);
+                /* Recall on screen */
+                screen_roff(subject_ptr, m_ptr->ap_r_idx, 0);
 
-                               /* Hack -- Complete the prompt (again) */
-                               Term_addstr(-1, TERM_WHITE, format(_("  [r思 %s%s]", "  [r,%s%s]"), x_info, info));
+                /* Hack -- Complete the prompt (again) */
+                Term_addstr(-1, TERM_WHITE, format(_("  [r思 %s%s]", "  [r,%s%s]"), x_info, info));
 
-                               query = inkey();
+                query = inkey();
 
-                               screen_load();
+                screen_load();
 
-                               /* Normal commands */
-                               if (query != 'r') break;
+                /* Normal commands */
+                if (query != 'r')
+                    break;
 
-                               recall = FALSE;
+                recall = FALSE;
 
-                               /* Cleare recall text and repeat */
-                               continue;
-                       }
+                /* Cleare recall text and repeat */
+                continue;
+            }
 
-                       /*** Normal ***/
+            /*** Normal ***/
 
-                       /* Describe, and prompt for recall */
-                       evaluate_monster_exp(subject_ptr, acount, m_ptr);
+            /* Describe, and prompt for recall */
+            evaluate_monster_exp(subject_ptr, acount, m_ptr);
 
 #ifdef JP
-                       sprintf(out_val, "[%s]%s%s(%s)%s%s [r思 %s%s]", acount, s1, m_name, look_mon_desc(m_ptr, 0x01), s2, s3, x_info, info);
+            sprintf(out_val, "[%s]%s%s(%s)%s%s [r思 %s%s]", acount, s1, m_name, look_mon_desc(m_ptr, 0x01), s2, s3, x_info, info);
 #else
-                       sprintf(out_val, "[%s]%s%s%s%s(%s) [r, %s%s]", acount, s1, s2, s3, m_name, look_mon_desc(m_ptr, 0x01), x_info, info);
+            sprintf(out_val, "[%s]%s%s%s%s(%s) [r, %s%s]", acount, s1, s2, s3, m_name, look_mon_desc(m_ptr, 0x01), x_info, info);
 #endif
 
-                       prt(out_val, 0, 0);
+            prt(out_val, 0, 0);
 
-                       /* Place cursor */
-                       move_cursor_relative(y, x);
+            /* Place cursor */
+            move_cursor_relative(y, x);
 
-                       query = inkey();
+            query = inkey();
 
-                       /* Normal commands */
-                       if (query != 'r') break;
+            /* Normal commands */
+            if (query != 'r')
+                break;
 
-                       recall = TRUE;
-               }
+            recall = TRUE;
+        }
 
-               /* Always stop at "normal" keys */
-               if ((query != '\r') && (query != '\n') && (query != ' ') && (query != 'x')) return query;
+        /* Always stop at "normal" keys */
+        if ((query != '\r') && (query != '\n') && (query != ' ') && (query != 'x'))
+            return query;
 
-               /* Sometimes stop at "space" key */
-               if ((query == ' ') && !(mode & (TARGET_LOOK))) return query;
+        /* Sometimes stop at "space" key */
+        if ((query == ' ') && !(mode & (TARGET_LOOK)))
+            return query;
 
-               /* Change the intro */
-               s1 = _("それは", "It is ");
+        /* Change the intro */
+        s1 = _("それは", "It is ");
 
-               /* Hack -- take account of gender */
-               if (ap_r_ptr->flags1 & (RF1_FEMALE)) s1 = _("彼女は", "She is ");
-               else if (ap_r_ptr->flags1 & (RF1_MALE)) s1 = _("彼は", "He is ");
+        /* Hack -- take account of gender */
+        if (ap_r_ptr->flags1 & (RF1_FEMALE))
+            s1 = _("彼女は", "She is ");
+        else if (ap_r_ptr->flags1 & (RF1_MALE))
+            s1 = _("彼は", "He is ");
 
-               /* Use a preposition */
+            /* Use a preposition */
 #ifdef JP
-               s2 = "を";
-               s3 = "持っている";
+        s2 = "を";
+        s3 = "持っている";
 #else
-               s2 = "carrying ";
+        s2 = "carrying ";
 #endif
 
-               /* Scan all objects being carried */
-               for (OBJECT_IDX this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx)
-               {
-                       GAME_TEXT o_name[MAX_NLEN];
+        /* Scan all objects being carried */
+        for (OBJECT_IDX this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) {
+            GAME_TEXT o_name[MAX_NLEN];
 
-                       object_type *o_ptr;
-                       o_ptr = &subject_ptr->current_floor_ptr->o_list[this_o_idx];
-                       next_o_idx = o_ptr->next_o_idx;
+            object_type *o_ptr;
+            o_ptr = &subject_ptr->current_floor_ptr->o_list[this_o_idx];
+            next_o_idx = o_ptr->next_o_idx;
 
-                       object_desc(subject_ptr, o_name, o_ptr, 0);
+            object_desc(subject_ptr, o_name, o_ptr, 0);
 
 #ifdef JP
-                       sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
+            sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
 #else
-                       sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
+            sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
 #endif
 
-                       prt(out_val, 0, 0);
-                       move_cursor_relative(y, x);
-                       query = inkey();
+            prt(out_val, 0, 0);
+            move_cursor_relative(y, x);
+            query = inkey();
 
-                       /* Always stop at "normal" keys */
-                       if ((query != '\r') && (query != '\n') && (query != ' ') && (query != 'x')) return query;
+            /* Always stop at "normal" keys */
+            if ((query != '\r') && (query != '\n') && (query != ' ') && (query != 'x'))
+                return query;
 
-                       /* Sometimes stop at "space" key */
-                       if ((query == ' ') && !(mode & (TARGET_LOOK))) return query;
+            /* Sometimes stop at "space" key */
+            if ((query == ' ') && !(mode & (TARGET_LOOK)))
+                return query;
 
-                       /* Change the intro */
-                       s2 = _("をまた", "also carrying ");
-               }
+            /* Change the intro */
+            s2 = _("をまた", "also carrying ");
+        }
 
-               /* Use a preposition */
+        /* Use a preposition */
 #ifdef JP
-               s2 = "の上";
-               s3 = "にいる";
+        s2 = "の上";
+        s3 = "にいる";
 #else
-               s2 = "on ";
+        s2 = "on ";
 #endif
-       }
+    }
 
-       if (floor_num)
-       {
-               int min_width = 0;
+    if (floor_num) {
+        int min_width = 0;
 
-               while (TRUE)
-               {
-                       if (floor_num == 1)
-                       {
-                               GAME_TEXT o_name[MAX_NLEN];
+        while (TRUE) {
+            if (floor_num == 1) {
+                GAME_TEXT o_name[MAX_NLEN];
 
-                               object_type *o_ptr;
-                               o_ptr = &subject_ptr->current_floor_ptr->o_list[floor_list[0]];
+                object_type *o_ptr;
+                o_ptr = &subject_ptr->current_floor_ptr->o_list[floor_list[0]];
 
-                               object_desc(subject_ptr, o_name, o_ptr, 0);
+                object_desc(subject_ptr, o_name, o_ptr, 0);
 
 #ifdef JP
-                               sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
+                sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
 #else
-                               sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
+                sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
 #endif
 
-                               prt(out_val, 0, 0);
-                               move_cursor_relative(y, x);
+                prt(out_val, 0, 0);
+                move_cursor_relative(y, x);
 
-                               query = inkey();
+                query = inkey();
 
-                               /* End this grid */
-                               return query;
-                       }
+                /* End this grid */
+                return query;
+            }
 
-                       /* Provide one cushion before item listing  */
-                       if (boring)
-                       {
-                               /* Display rough information about items */
+            /* Provide one cushion before item listing  */
+            if (boring) {
+                /* Display rough information about items */
 #ifdef JP
-                               sprintf(out_val, "%s %d個のアイテム%s%s ['x'で一覧, %s]", s1, (int)floor_num, s2, s3, info);
+                sprintf(out_val, "%s %d個のアイテム%s%s ['x'で一覧, %s]", s1, (int)floor_num, s2, s3, info);
 #else
-                               sprintf(out_val, "%s%s%sa pile of %d items [x,%s]", s1, s2, s3, (int)floor_num, info);
+                sprintf(out_val, "%s%s%sa pile of %d items [x,%s]", s1, s2, s3, (int)floor_num, info);
 #endif
 
-                               prt(out_val, 0, 0);
-                               move_cursor_relative(y, x);
-
-                               query = inkey();
+                prt(out_val, 0, 0);
+                move_cursor_relative(y, x);
 
-                               /* No request for listing */
-                               if (query != 'x' && query != ' ') return query;
-                       }
+                query = inkey();
 
+                /* No request for listing */
+                if (query != 'x' && query != ' ')
+                    return query;
+            }
 
-                       /** Display list of items **/
+            /** Display list of items **/
 
-                       /* Continue scrolling list if requested */
-                       while (TRUE)
-                       {
-                               int i;
-                               OBJECT_IDX o_idx;
-                               screen_save();
+            /* Continue scrolling list if requested */
+            while (TRUE) {
+                int i;
+                OBJECT_IDX o_idx;
+                screen_save();
 
-                               /* Display */
-                               show_gold_on_floor = TRUE;
-                               (void)show_floor_items(subject_ptr, 0, y, x, &min_width, 0);
-                               show_gold_on_floor = FALSE;
+                /* Display */
+                show_gold_on_floor = TRUE;
+                (void)show_floor_items(subject_ptr, 0, y, x, &min_width, 0);
+                show_gold_on_floor = FALSE;
 
-                               /* Prompt */
+                /* Prompt */
 #ifdef JP
-                               sprintf(out_val, "%s %d個のアイテム%s%s [Enterで次へ, %s]", s1, (int)floor_num, s2, s3, info);
+                sprintf(out_val, "%s %d個のアイテム%s%s [Enterで次へ, %s]", s1, (int)floor_num, s2, s3, info);
 #else
-                               sprintf(out_val, "%s%s%sa pile of %d items [Enter,%s]", s1, s2, s3, (int)floor_num, info);
+                sprintf(out_val, "%s%s%sa pile of %d items [Enter,%s]", s1, s2, s3, (int)floor_num, info);
 #endif
-                               prt(out_val, 0, 0);
+                prt(out_val, 0, 0);
 
-                               query = inkey();
-                               screen_load();
+                query = inkey();
+                screen_load();
 
-                               /* Exit unless 'Enter' */
-                               if (query != '\n' && query != '\r')
-                               {
-                                       return query;
-                               }
+                /* Exit unless 'Enter' */
+                if (query != '\n' && query != '\r') {
+                    return query;
+                }
 
-                               /* Get the object being moved. */
-                               o_idx = g_ptr->o_idx;
+                /* Get the object being moved. */
+                o_idx = g_ptr->o_idx;
 
-                               /* Only rotate a pile of two or more objects. */
-                               if (!(o_idx && subject_ptr->current_floor_ptr->o_list[o_idx].next_o_idx)) continue;
+                /* Only rotate a pile of two or more objects. */
+                if (!(o_idx && subject_ptr->current_floor_ptr->o_list[o_idx].next_o_idx))
+                    continue;
 
-                               /* Remove the first object from the list. */
-                               excise_object_idx(subject_ptr->current_floor_ptr, o_idx);
+                /* Remove the first object from the list. */
+                excise_object_idx(subject_ptr->current_floor_ptr, o_idx);
 
-                               /* Find end of the list. */
-                               i = g_ptr->o_idx;
-                               while (subject_ptr->current_floor_ptr->o_list[i].next_o_idx)
-                                       i = subject_ptr->current_floor_ptr->o_list[i].next_o_idx;
+                /* Find end of the list. */
+                i = g_ptr->o_idx;
+                while (subject_ptr->current_floor_ptr->o_list[i].next_o_idx)
+                    i = subject_ptr->current_floor_ptr->o_list[i].next_o_idx;
 
-                               /* Add after the last object. */
-                               subject_ptr->current_floor_ptr->o_list[i].next_o_idx = o_idx;
+                /* Add after the last object. */
+                subject_ptr->current_floor_ptr->o_list[i].next_o_idx = o_idx;
 
-                               /* Loop and re-display the list */
-                       }
-               }
+                /* Loop and re-display the list */
+            }
+        }
 
-               /* NOTREACHED */
-       }
+        /* NOTREACHED */
+    }
 
-       /* Scan all objects in the grid */
-       for (OBJECT_IDX this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
-       {
-               object_type *o_ptr;
-               o_ptr = &subject_ptr->current_floor_ptr->o_list[this_o_idx];
-               next_o_idx = o_ptr->next_o_idx;
+    /* Scan all objects in the grid */
+    for (OBJECT_IDX this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) {
+        object_type *o_ptr;
+        o_ptr = &subject_ptr->current_floor_ptr->o_list[this_o_idx];
+        next_o_idx = o_ptr->next_o_idx;
 
-               if (o_ptr->marked & OM_FOUND)
-               {
-                       GAME_TEXT o_name[MAX_NLEN];
+        if (o_ptr->marked & OM_FOUND) {
+            GAME_TEXT o_name[MAX_NLEN];
 
-                       /* Not boring */
-                       boring = FALSE;
+            /* Not boring */
+            boring = FALSE;
 
-                       object_desc(subject_ptr, o_name, o_ptr, 0);
+            object_desc(subject_ptr, o_name, o_ptr, 0);
 
 #ifdef JP
-                       sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
+            sprintf(out_val, "%s%s%s%s[%s]", s1, o_name, s2, s3, info);
 #else
-                       sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
+            sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, o_name, info);
 #endif
 
-                       prt(out_val, 0, 0);
-                       move_cursor_relative(y, x);
-                       query = inkey();
+            prt(out_val, 0, 0);
+            move_cursor_relative(y, x);
+            query = inkey();
 
-                       /* Always stop at "normal" keys */
-                       if ((query != '\r') && (query != '\n') && (query != ' ') && (query != 'x')) return query;
+            /* Always stop at "normal" keys */
+            if ((query != '\r') && (query != '\n') && (query != ' ') && (query != 'x'))
+                return query;
 
-                       /* Sometimes stop at "space" key */
-                       if ((query == ' ') && !(mode & TARGET_LOOK)) return query;
+            /* Sometimes stop at "space" key */
+            if ((query == ' ') && !(mode & TARGET_LOOK))
+                return query;
 
-                       /* Change the intro */
-                       s1 = _("それは", "It is ");
+            /* Change the intro */
+            s1 = _("それは", "It is ");
 
-                       /* Plurals */
-                       if (o_ptr->number != 1) s1 = _("それらは", "They are ");
+            /* Plurals */
+            if (o_ptr->number != 1)
+                s1 = _("それらは", "They are ");
 
-                       /* Preposition */
+                /* Preposition */
 #ifdef JP
-                       s2 = "の上";
-                       s3 = "に見える";
+            s2 = "の上";
+            s3 = "に見える";
 #else
-                       s2 = "on ";
+            s2 = "on ";
 #endif
-
-               }
-       }
-
-       /* Feature code (applying "mimic" field) */
-       feat = get_feat_mimic(g_ptr);
-
-       /* Require knowledge about grid, or ability to see grid */
-       if (!(g_ptr->info & CAVE_MARK) && !player_can_see_bold(subject_ptr, y, x))
-       {
-               /* Forget feature */
-               feat = feat_none;
-       }
-
-       f_ptr = &f_info[feat];
-
-       /* Terrain feature if needed */
-       if (!boring && !have_flag(f_ptr->flags, FF_REMEMBER))
-       {
-               if ((query != '\r') && (query != '\n')) return query;
-               return 0;
-       }
-
-       /* Hack -- special handling for quest entrances */
-       concptr name;
-       if (have_flag(f_ptr->flags, FF_QUEST_ENTER))
-       {
-               /* Set the quest number temporary */
-               IDX old_quest = subject_ptr->current_floor_ptr->inside_quest;
-               int j;
-
-               /* Clear the text */
-               for (j = 0; j < 10; j++) quest_text[j][0] = '\0';
-               quest_text_line = 0;
-
-               subject_ptr->current_floor_ptr->inside_quest = g_ptr->special;
-
-               /* Get the quest text */
-               init_flags = INIT_NAME_ONLY;
-
-               parse_fixed_map(subject_ptr, "q_info.txt", 0, 0, 0, 0);
-
-               name = format(_("クエスト「%s」(%d階相当)", "the entrance to the quest '%s'(level %d)"),
-                       quest[g_ptr->special].name, quest[g_ptr->special].level);
-
-               /* Reset the old quest number */
-               subject_ptr->current_floor_ptr->inside_quest = old_quest;
-       }
-
-       /* Hack -- special handling for building doors */
-       else if (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->current_floor_ptr->inside_arena)
-       {
-               name = building[f_ptr->subtype].name;
-       }
-       else if (have_flag(f_ptr->flags, FF_ENTRANCE))
-       {
-               name = format(_("%s(%d階相当)", "%s(level %d)"), d_text + d_info[g_ptr->special].text, d_info[g_ptr->special].mindepth);
-       }
-       else if (have_flag(f_ptr->flags, FF_TOWN))
-       {
-               name = town_info[g_ptr->special].name;
-       }
-       else if (subject_ptr->wild_mode && (feat == feat_floor))
-       {
-               name = _("道", "road");
-       }
-       else
-       {
-               name = f_name + f_ptr->name;
-       }
-
-       /* Pick a prefix */
-       if (*s2 &&
-               ((!have_flag(f_ptr->flags, FF_MOVE) && !have_flag(f_ptr->flags, FF_CAN_FLY)) ||
-               (!have_flag(f_ptr->flags, FF_LOS) && !have_flag(f_ptr->flags, FF_TREE)) ||
-                       have_flag(f_ptr->flags, FF_TOWN)))
-       {
-               s2 = _("の中", "in ");
-       }
-
-       /* Hack -- special introduction for store & building doors -KMW- */
-       if (have_flag(f_ptr->flags, FF_STORE) ||
-               have_flag(f_ptr->flags, FF_QUEST_ENTER) ||
-               (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->current_floor_ptr->inside_arena) ||
-               have_flag(f_ptr->flags, FF_ENTRANCE))
-       {
-               s2 = _("の入口", "");
-       }
+        }
+    }
+
+    /* Feature code (applying "mimic" field) */
+    feat = get_feat_mimic(g_ptr);
+
+    /* Require knowledge about grid, or ability to see grid */
+    if (!(g_ptr->info & CAVE_MARK) && !player_can_see_bold(subject_ptr, y, x)) {
+        /* Forget feature */
+        feat = feat_none;
+    }
+
+    f_ptr = &f_info[feat];
+
+    /* Terrain feature if needed */
+    if (!boring && !have_flag(f_ptr->flags, FF_REMEMBER)) {
+        if ((query != '\r') && (query != '\n'))
+            return query;
+        return 0;
+    }
+
+    /* Hack -- special handling for quest entrances */
+    concptr name;
+    if (have_flag(f_ptr->flags, FF_QUEST_ENTER)) {
+        /* Set the quest number temporary */
+        IDX old_quest = subject_ptr->current_floor_ptr->inside_quest;
+        int j;
+
+        /* Clear the text */
+        for (j = 0; j < 10; j++)
+            quest_text[j][0] = '\0';
+        quest_text_line = 0;
+
+        subject_ptr->current_floor_ptr->inside_quest = g_ptr->special;
+
+        /* Get the quest text */
+        init_flags = INIT_NAME_ONLY;
+
+        parse_fixed_map(subject_ptr, "q_info.txt", 0, 0, 0, 0);
+
+        name = format(_("クエスト「%s」(%d階相当)", "the entrance to the quest '%s'(level %d)"), quest[g_ptr->special].name, quest[g_ptr->special].level);
+
+        /* Reset the old quest number */
+        subject_ptr->current_floor_ptr->inside_quest = old_quest;
+    }
+
+    /* Hack -- special handling for building doors */
+    else if (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->current_floor_ptr->inside_arena) {
+        name = building[f_ptr->subtype].name;
+    } else if (have_flag(f_ptr->flags, FF_ENTRANCE)) {
+        name = format(_("%s(%d階相当)", "%s(level %d)"), d_text + d_info[g_ptr->special].text, d_info[g_ptr->special].mindepth);
+    } else if (have_flag(f_ptr->flags, FF_TOWN)) {
+        name = town_info[g_ptr->special].name;
+    } else if (subject_ptr->wild_mode && (feat == feat_floor)) {
+        name = _("道", "road");
+    } else {
+        name = f_name + f_ptr->name;
+    }
+
+    /* Pick a prefix */
+    if (*s2
+        && ((!have_flag(f_ptr->flags, FF_MOVE) && !have_flag(f_ptr->flags, FF_CAN_FLY))
+            || (!have_flag(f_ptr->flags, FF_LOS) && !have_flag(f_ptr->flags, FF_TREE)) || have_flag(f_ptr->flags, FF_TOWN))) {
+        s2 = _("の中", "in ");
+    }
+
+    /* Hack -- special introduction for store & building doors -KMW- */
+    if (have_flag(f_ptr->flags, FF_STORE) || have_flag(f_ptr->flags, FF_QUEST_ENTER)
+        || (have_flag(f_ptr->flags, FF_BLDG) && !subject_ptr->current_floor_ptr->inside_arena) || have_flag(f_ptr->flags, FF_ENTRANCE)) {
+        s2 = _("の入口", "");
+    }
 #ifdef JP
 #else
-       else if (have_flag(f_ptr->flags, FF_FLOOR) ||
-               have_flag(f_ptr->flags, FF_TOWN) ||
-               have_flag(f_ptr->flags, FF_SHALLOW) ||
-               have_flag(f_ptr->flags, FF_DEEP))
-       {
-               s3 = "";
-       }
-       else
-       {
-               /* Pick proper indefinite article */
-               s3 = (is_a_vowel(name[0])) ? "an " : "a ";
-       }
+    else if (have_flag(f_ptr->flags, FF_FLOOR) || have_flag(f_ptr->flags, FF_TOWN) || have_flag(f_ptr->flags, FF_SHALLOW) || have_flag(f_ptr->flags, FF_DEEP)) {
+        s3 = "";
+    } else {
+        /* Pick proper indefinite article */
+        s3 = (is_a_vowel(name[0])) ? "an " : "a ";
+    }
 #endif
 
-       /* Display a message */
-       if (current_world_ptr->wizard)
-       {
-               char f_idx_str[32];
-               if (g_ptr->mimic) sprintf(f_idx_str, "%d/%d", g_ptr->feat, g_ptr->mimic);
-               else sprintf(f_idx_str, "%d", g_ptr->feat);
+    /* Display a message */
+    if (current_world_ptr->wizard) {
+        char f_idx_str[32];
+        if (g_ptr->mimic)
+            sprintf(f_idx_str, "%d/%d", g_ptr->feat, g_ptr->mimic);
+        else
+            sprintf(f_idx_str, "%d", g_ptr->feat);
 #ifdef JP
-               sprintf(out_val, "%s%s%s%s[%s] %x %s %d %d %d (%d,%d) %d", s1, name, s2, s3, info, (unsigned int)g_ptr->info, f_idx_str, g_ptr->dist, g_ptr->cost, g_ptr->when, (int)y, (int)x, travel.cost[y][x]);
+        sprintf(out_val, "%s%s%s%s[%s] %x %s %d %d %d (%d,%d) %d", s1, name, s2, s3, info, (unsigned int)g_ptr->info, f_idx_str, g_ptr->dist, g_ptr->cost,
+            g_ptr->when, (int)y, (int)x, travel.cost[y][x]);
 #else
-               sprintf(out_val, "%s%s%s%s [%s] %x %s %d %d %d (%d,%d)", s1, s2, s3, name, info, g_ptr->info, f_idx_str, g_ptr->dist, g_ptr->cost, g_ptr->when, (int)y, (int)x);
+        sprintf(out_val, "%s%s%s%s [%s] %x %s %d %d %d (%d,%d)", s1, s2, s3, name, info, g_ptr->info, f_idx_str, g_ptr->dist, g_ptr->cost, g_ptr->when, (int)y,
+            (int)x);
 #endif
-       }
-       else
+    } else
 #ifdef JP
-               sprintf(out_val, "%s%s%s%s[%s]", s1, name, s2, s3, info);
+        sprintf(out_val, "%s%s%s%s[%s]", s1, name, s2, s3, info);
 #else
-               sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, name, info);
+        sprintf(out_val, "%s%s%s%s [%s]", s1, s2, s3, name, info);
 #endif
 
-       prt(out_val, 0, 0);
-       move_cursor_relative(y, x);
-       query = inkey();
+    prt(out_val, 0, 0);
+    move_cursor_relative(y, x);
+    query = inkey();
 
-       if ((query != '\r') && (query != '\n') && (query != ' ')) return query;
-       return 0;
+    if ((query != '\r') && (query != '\n') && (query != ' '))
+        return query;
+    return 0;
 }
 
-
 /*
  * Handle "target" and "look".
  *
@@ -1059,470 +1035,434 @@ static char target_set_aux(player_type *subject_ptr, POSITION y, POSITION x, BIT
  */
 bool target_set(player_type *creature_ptr, BIT_FLAGS mode)
 {
-       int i, d, t, bd;
-       POSITION y = creature_ptr->y;
-       POSITION x = creature_ptr->x;
-
-       bool done = FALSE;
-       bool flag = TRUE;
-       char query;
-       char info[80];
-       char same_key;
-       grid_type *g_ptr;
-       TERM_LEN wid, hgt;
-
-       get_screen_size(&wid, &hgt);
-
-       /* Cancel target */
-       target_who = 0;
-
-       if (rogue_like_commands)
-       {
-               same_key = 'x';
-       }
-       else
-       {
-               same_key = 'l';
-       }
-
-       /* Prepare the "temp" array */
-       target_set_prepare(creature_ptr, mode);
-
-       /* Start near the player */
-       int m = 0;
-
-       /* Interact */
-       floor_type *floor_ptr = creature_ptr->current_floor_ptr;
-       while (!done)
-       {
-               /* Interesting grids */
-               if (flag && tmp_pos.n)
-               {
-                       y = tmp_pos.y[m];
-                       x = tmp_pos.x[m];
-
-                       /* Set forcus */
-                       change_panel_xy(creature_ptr, y, x);
-
-                       if (!(mode & TARGET_LOOK)) print_path(creature_ptr, y, x);
-
-                       /* Access */
-                       g_ptr = &floor_ptr->grid_array[y][x];
-
-                       /* Allow target */
-                       if (target_able(creature_ptr, g_ptr->m_idx))
-                       {
-                               strcpy(info, _("q止 t決 p自 o現 +次 -前", "q,t,p,o,+,-,<dir>"));
-                       }
-
-                       /* Dis-allow target */
-                       else
-                       {
-                               strcpy(info, _("q止 p自 o現 +次 -前", "q,p,o,+,-,<dir>"));
-                       }
-
-                       if (cheat_sight)
-                       {
-                               char cheatinfo[30];
-                               sprintf(cheatinfo, " LOS:%d, PROJECTABLE:%d",
-                                       los(creature_ptr, creature_ptr->y, creature_ptr->x, y, x), projectable(creature_ptr, creature_ptr->y, creature_ptr->x, y, x));
-                               strcat(info, cheatinfo);
-                       }
-
-                       /* Describe and Prompt */
-                       while (TRUE)
-                       {
-                               query = target_set_aux(creature_ptr, y, x, mode, info);
-                               if (query)break;
-                       }
-
-                       /* Assume no "direction" */
-                       d = 0;
-
-                       if (use_menu)
-                       {
-                               if (query == '\r') query = 't';
-                       }
-
-                       /* Analyze */
-                       switch (query)
-                       {
-                       case ESCAPE:
-                       case 'q':
-                       {
-                               done = TRUE;
-                               break;
-                       }
-
-                       case 't':
-                       case '.':
-                       case '5':
-                       case '0':
-                       {
-                               if (target_able(creature_ptr, g_ptr->m_idx))
-                               {
-                                       health_track(creature_ptr, g_ptr->m_idx);
-                                       target_who = g_ptr->m_idx;
-                                       target_row = y;
-                                       target_col = x;
-                                       done = TRUE;
-                               }
-                               else
-                               {
-                                       bell();
-                               }
-                               break;
-                       }
-
-                       case ' ':
-                       case '*':
-                       case '+':
-                       {
-                               if (++m == tmp_pos.n)
-                               {
-                                       m = 0;
-                                       if (!expand_list) done = TRUE;
-                               }
-                               break;
-                       }
-
-                       case '-':
-                       {
-                               if (m-- == 0)
-                               {
-                                       m = tmp_pos.n - 1;
-                                       if (!expand_list) done = TRUE;
-                               }
-                               break;
-                       }
-
-                       case 'p':
-                       {
-                               /* Recenter the map around the player */
-                               verify_panel(creature_ptr);
-                               creature_ptr->update |= (PU_MONSTERS);
-                               creature_ptr->redraw |= (PR_MAP);
-                               creature_ptr->window |= (PW_OVERHEAD);
-                               handle_stuff(creature_ptr);
-
-                               /* Recalculate interesting grids */
-                               target_set_prepare(creature_ptr, mode);
-
-                               y = creature_ptr->y;
-                               x = creature_ptr->x;
-                       }
-                               /* Fall through */
-
-                       case 'o':
-                       {
-                               flag = FALSE;
-                               break;
-                       }
-
-                       case 'm':
-                       {
-                               break;
-                       }
-
-                       default:
-                       {
-                               if (query == same_key)
-                               {
-                                       if (++m == tmp_pos.n)
-                                       {
-                                               m = 0;
-                                               if (!expand_list) done = TRUE;
-                                       }
-                               }
-                               else
-                               {
-                                       /* Extract the action (if any) */
-                                       d = get_keymap_dir(query);
-
-                                       if (!d) bell();
-                                       break;
-                               }
-                       }
-                       }
-                       /* Hack -- move around */
-                       if (d)
-                       {
-                               /* Modified to scroll to monster */
-                               POSITION y2 = panel_row_min;
-                               POSITION x2 = panel_col_min;
-
-                               /* Find a new monster */
-                               i = target_pick(tmp_pos.y[m], tmp_pos.x[m], ddy[d], ddx[d]);
-
-                               /* Request to target past last interesting grid */
-                               while (flag && (i < 0))
-                               {
-                                       /* Note the change */
-                                       if (change_panel(creature_ptr, ddy[d], ddx[d]))
-                                       {
-                                               int v = tmp_pos.y[m];
-                                               int u = tmp_pos.x[m];
-
-                                               /* Recalculate interesting grids */
-                                               target_set_prepare(creature_ptr, mode);
-
-                                               /* Look at interesting grids */
-                                               flag = TRUE;
-
-                                               /* Find a new monster */
-                                               i = target_pick(v, u, ddy[d], ddx[d]);
-
-                                               /* Use that grid */
-                                               if (i >= 0) m = i;
-                                               continue;
-                                       }
-
-                                       /* Nothing interesting */
-                                       POSITION dx = ddx[d];
-                                       POSITION dy = ddy[d];
-
-                                       /* Restore previous position */
-                                       panel_row_min = y2;
-                                       panel_col_min = x2;
-                                       panel_bounds_center();
-
-                                       creature_ptr->update |= (PU_MONSTERS);
-                                       creature_ptr->redraw |= (PR_MAP);
-                                       creature_ptr->window |= (PW_OVERHEAD);
-                                       handle_stuff(creature_ptr);
-
-                                       /* Recalculate interesting grids */
-                                       target_set_prepare(creature_ptr, mode);
-
-                                       /* Look at boring grids */
-                                       flag = FALSE;
-
-                                       /* Move */
-                                       x += dx;
-                                       y += dy;
-
-                                       /* Do not move horizontally if unnecessary */
-                                       if (((x < panel_col_min + wid / 2) && (dx > 0)) ||
-                                               ((x > panel_col_min + wid / 2) && (dx < 0)))
-                                       {
-                                               dx = 0;
-                                       }
-
-                                       /* Do not move vertically if unnecessary */
-                                       if (((y < panel_row_min + hgt / 2) && (dy > 0)) ||
-                                               ((y > panel_row_min + hgt / 2) && (dy < 0)))
-                                       {
-                                               dy = 0;
-                                       }
-
-                                       /* Apply the motion */
-                                       if ((y >= panel_row_min + hgt) || (y < panel_row_min) ||
-                                               (x >= panel_col_min + wid) || (x < panel_col_min))
-                                       {
-                                               if (change_panel(creature_ptr, dy, dx)) target_set_prepare(creature_ptr, mode);
-                                       }
-
-                                       /* Slide into legality */
-                                       if (x >= floor_ptr->width - 1) x = floor_ptr->width - 2;
-                                       else if (x <= 0) x = 1;
-
-                                       /* Slide into legality */
-                                       if (y >= floor_ptr->height - 1) y = floor_ptr->height - 2;
-                                       else if (y <= 0) y = 1;
-                               }
-
-                               /* Use that grid */
-                               m = i;
-                       }
-
-                       continue;
-               }
-
-               /* Arbitrary grids */
-
-               bool move_fast = FALSE;
-
-               if (!(mode & TARGET_LOOK)) print_path(creature_ptr, y, x);
-
-               /* Access */
-               g_ptr = &floor_ptr->grid_array[y][x];
-
-               /* Default prompt */
-               strcpy(info, _("q止 t決 p自 m近 +次 -前", "q,t,p,m,+,-,<dir>"));
-
-               if (cheat_sight)
-               {
-                       char cheatinfo[100];
-                       sprintf(cheatinfo, " LOS:%d, PROJECTABLE:%d, SPECIAL:%d",
-                               los(creature_ptr, creature_ptr->y, creature_ptr->x, y, x),
-                               projectable(creature_ptr, creature_ptr->y, creature_ptr->x, y, x), g_ptr->special);
-                       strcat(info, cheatinfo);
-               }
-
-               /* Describe and Prompt (enable "TARGET_LOOK") */
-               while ((query = target_set_aux(creature_ptr, y, x, mode | TARGET_LOOK, info)) == 0);
-
-               /* Assume no direction */
-               d = 0;
-
-               if (use_menu)
-               {
-                       if (query == '\r') query = 't';
-               }
-
-               /* Analyze the keypress */
-               switch (query)
-               {
-               case ESCAPE:
-               case 'q':
-               {
-                       done = TRUE;
-                       break;
-               }
-
-               case 't':
-               case '.':
-               case '5':
-               case '0':
-               {
-                       target_who = -1;
-                       target_row = y;
-                       target_col = x;
-                       done = TRUE;
-                       break;
-               }
-
-               case 'p':
-               {
-                       /* Recenter the map around the player */
-                       verify_panel(creature_ptr);
-                       creature_ptr->update |= (PU_MONSTERS);
-                       creature_ptr->redraw |= (PR_MAP);
-                       creature_ptr->window |= (PW_OVERHEAD);
-                       handle_stuff(creature_ptr);
-
-                       /* Recalculate interesting grids */
-                       target_set_prepare(creature_ptr, mode);
-
-                       y = creature_ptr->y;
-                       x = creature_ptr->x;
-               }
-
-               case 'o':
-               {
-                       break;
-               }
-
-               case ' ':
-               case '*':
-               case '+':
-               case '-':
-               case 'm':
-               {
-                       flag = TRUE;
-
-                       m = 0;
-                       bd = 999;
-
-                       /* Pick a nearby monster */
-                       for (i = 0; i < tmp_pos.n; i++)
-                       {
-                               t = distance(y, x, tmp_pos.y[i], tmp_pos.x[i]);
-
-                               /* Pick closest */
-                               if (t < bd)
-                               {
-                                       m = i;
-                                       bd = t;
-                               }
-                       }
-
-                       /* Nothing interesting */
-                       if (bd == 999) flag = FALSE;
-
-                       break;
-               }
-
-               default:
-               {
-                       /* Extract the action (if any) */
-                       d = get_keymap_dir(query);
-
-                       /* XTRA HACK MOVEFAST */
-                       if (isupper(query)) move_fast = TRUE;
-
-                       if (!d) bell();
-                       break;
-               }
-               }
-
-               /* Handle "direction" */
-               if (d)
-               {
-                       POSITION dx = ddx[d];
-                       POSITION dy = ddy[d];
-
-                       /* XTRA HACK MOVEFAST */
-                       if (move_fast)
-                       {
-                               int mag = MIN(wid / 2, hgt / 2);
-                               x += dx * mag;
-                               y += dy * mag;
-                       }
-                       else
-                       {
-                               x += dx;
-                               y += dy;
-                       }
-
-                       /* Do not move horizontally if unnecessary */
-                       if (((x < panel_col_min + wid / 2) && (dx > 0)) ||
-                               ((x > panel_col_min + wid / 2) && (dx < 0)))
-                       {
-                               dx = 0;
-                       }
-
-                       /* Do not move vertically if unnecessary */
-                       if (((y < panel_row_min + hgt / 2) && (dy > 0)) ||
-                               ((y > panel_row_min + hgt / 2) && (dy < 0)))
-                       {
-                               dy = 0;
-                       }
-
-                       /* Apply the motion */
-                       if ((y >= panel_row_min + hgt) || (y < panel_row_min) ||
-                               (x >= panel_col_min + wid) || (x < panel_col_min))
-                       {
-                               if (change_panel(creature_ptr, dy, dx)) target_set_prepare(creature_ptr, mode);
-                       }
-
-                       /* Slide into legality */
-                       if (x >= floor_ptr->width - 1) x = floor_ptr->width - 2;
-                       else if (x <= 0) x = 1;
-
-                       /* Slide into legality */
-                       if (y >= floor_ptr->height - 1) y = floor_ptr->height - 2;
-                       else if (y <= 0) y = 1;
-               }
-       }
-
-       /* Forget */
-       tmp_pos.n = 0;
-
-       /* Clear the top line */
-       prt("", 0, 0);
-
-       /* Recenter the map around the player */
-       verify_panel(creature_ptr);
-       creature_ptr->update |= (PU_MONSTERS);
-       creature_ptr->redraw |= (PR_MAP);
-       creature_ptr->window |= (PW_OVERHEAD);
-       handle_stuff(creature_ptr);
-
-       return target_who != 0;
+    int i, d, t, bd;
+    POSITION y = creature_ptr->y;
+    POSITION x = creature_ptr->x;
+
+    bool done = FALSE;
+    bool flag = TRUE;
+    char query;
+    char info[80];
+    char same_key;
+    grid_type *g_ptr;
+    TERM_LEN wid, hgt;
+
+    get_screen_size(&wid, &hgt);
+
+    /* Cancel target */
+    target_who = 0;
+
+    if (rogue_like_commands) {
+        same_key = 'x';
+    } else {
+        same_key = 'l';
+    }
+
+    /* Prepare the "temp" array */
+    target_set_prepare(creature_ptr, mode);
+
+    /* Start near the player */
+    int m = 0;
+
+    /* Interact */
+    floor_type *floor_ptr = creature_ptr->current_floor_ptr;
+    while (!done) {
+        /* Interesting grids */
+        if (flag && tmp_pos.n) {
+            y = tmp_pos.y[m];
+            x = tmp_pos.x[m];
+
+            /* Set forcus */
+            change_panel_xy(creature_ptr, y, x);
+
+            if (!(mode & TARGET_LOOK))
+                print_path(creature_ptr, y, x);
+
+            /* Access */
+            g_ptr = &floor_ptr->grid_array[y][x];
+
+            /* Allow target */
+            if (target_able(creature_ptr, g_ptr->m_idx)) {
+                strcpy(info, _("q止 t決 p自 o現 +次 -前", "q,t,p,o,+,-,<dir>"));
+            }
+
+            /* Dis-allow target */
+            else {
+                strcpy(info, _("q止 p自 o現 +次 -前", "q,p,o,+,-,<dir>"));
+            }
+
+            if (cheat_sight) {
+                char cheatinfo[30];
+                sprintf(cheatinfo, " LOS:%d, PROJECTABLE:%d", los(creature_ptr, creature_ptr->y, creature_ptr->x, y, x),
+                    projectable(creature_ptr, creature_ptr->y, creature_ptr->x, y, x));
+                strcat(info, cheatinfo);
+            }
+
+            /* Describe and Prompt */
+            while (TRUE) {
+                query = target_set_aux(creature_ptr, y, x, mode, info);
+                if (query)
+                    break;
+            }
+
+            /* Assume no "direction" */
+            d = 0;
+
+            if (use_menu) {
+                if (query == '\r')
+                    query = 't';
+            }
+
+            /* Analyze */
+            switch (query) {
+            case ESCAPE:
+            case 'q': {
+                done = TRUE;
+                break;
+            }
+
+            case 't':
+            case '.':
+            case '5':
+            case '0': {
+                if (target_able(creature_ptr, g_ptr->m_idx)) {
+                    health_track(creature_ptr, g_ptr->m_idx);
+                    target_who = g_ptr->m_idx;
+                    target_row = y;
+                    target_col = x;
+                    done = TRUE;
+                } else {
+                    bell();
+                }
+                break;
+            }
+
+            case ' ':
+            case '*':
+            case '+': {
+                if (++m == tmp_pos.n) {
+                    m = 0;
+                    if (!expand_list)
+                        done = TRUE;
+                }
+                break;
+            }
+
+            case '-': {
+                if (m-- == 0) {
+                    m = tmp_pos.n - 1;
+                    if (!expand_list)
+                        done = TRUE;
+                }
+                break;
+            }
+
+            case 'p': {
+                /* Recenter the map around the player */
+                verify_panel(creature_ptr);
+                creature_ptr->update |= (PU_MONSTERS);
+                creature_ptr->redraw |= (PR_MAP);
+                creature_ptr->window |= (PW_OVERHEAD);
+                handle_stuff(creature_ptr);
+
+                /* Recalculate interesting grids */
+                target_set_prepare(creature_ptr, mode);
+
+                y = creature_ptr->y;
+                x = creature_ptr->x;
+            }
+                /* Fall through */
+
+            case 'o': {
+                flag = FALSE;
+                break;
+            }
+
+            case 'm': {
+                break;
+            }
+
+            default: {
+                if (query == same_key) {
+                    if (++m == tmp_pos.n) {
+                        m = 0;
+                        if (!expand_list)
+                            done = TRUE;
+                    }
+                } else {
+                    /* Extract the action (if any) */
+                    d = get_keymap_dir(query);
+
+                    if (!d)
+                        bell();
+                    break;
+                }
+            }
+            }
+            /* Hack -- move around */
+            if (d) {
+                /* Modified to scroll to monster */
+                POSITION y2 = panel_row_min;
+                POSITION x2 = panel_col_min;
+
+                /* Find a new monster */
+                i = target_pick(tmp_pos.y[m], tmp_pos.x[m], ddy[d], ddx[d]);
+
+                /* Request to target past last interesting grid */
+                while (flag && (i < 0)) {
+                    /* Note the change */
+                    if (change_panel(creature_ptr, ddy[d], ddx[d])) {
+                        int v = tmp_pos.y[m];
+                        int u = tmp_pos.x[m];
+
+                        /* Recalculate interesting grids */
+                        target_set_prepare(creature_ptr, mode);
+
+                        /* Look at interesting grids */
+                        flag = TRUE;
+
+                        /* Find a new monster */
+                        i = target_pick(v, u, ddy[d], ddx[d]);
+
+                        /* Use that grid */
+                        if (i >= 0)
+                            m = i;
+                        continue;
+                    }
+
+                    /* Nothing interesting */
+                    POSITION dx = ddx[d];
+                    POSITION dy = ddy[d];
+
+                    /* Restore previous position */
+                    panel_row_min = y2;
+                    panel_col_min = x2;
+                    panel_bounds_center();
+
+                    creature_ptr->update |= (PU_MONSTERS);
+                    creature_ptr->redraw |= (PR_MAP);
+                    creature_ptr->window |= (PW_OVERHEAD);
+                    handle_stuff(creature_ptr);
+
+                    /* Recalculate interesting grids */
+                    target_set_prepare(creature_ptr, mode);
+
+                    /* Look at boring grids */
+                    flag = FALSE;
+
+                    /* Move */
+                    x += dx;
+                    y += dy;
+
+                    /* Do not move horizontally if unnecessary */
+                    if (((x < panel_col_min + wid / 2) && (dx > 0)) || ((x > panel_col_min + wid / 2) && (dx < 0))) {
+                        dx = 0;
+                    }
+
+                    /* Do not move vertically if unnecessary */
+                    if (((y < panel_row_min + hgt / 2) && (dy > 0)) || ((y > panel_row_min + hgt / 2) && (dy < 0))) {
+                        dy = 0;
+                    }
+
+                    /* Apply the motion */
+                    if ((y >= panel_row_min + hgt) || (y < panel_row_min) || (x >= panel_col_min + wid) || (x < panel_col_min)) {
+                        if (change_panel(creature_ptr, dy, dx))
+                            target_set_prepare(creature_ptr, mode);
+                    }
+
+                    /* Slide into legality */
+                    if (x >= floor_ptr->width - 1)
+                        x = floor_ptr->width - 2;
+                    else if (x <= 0)
+                        x = 1;
+
+                    /* Slide into legality */
+                    if (y >= floor_ptr->height - 1)
+                        y = floor_ptr->height - 2;
+                    else if (y <= 0)
+                        y = 1;
+                }
+
+                /* Use that grid */
+                m = i;
+            }
+
+            continue;
+        }
+
+        /* Arbitrary grids */
+
+        bool move_fast = FALSE;
+
+        if (!(mode & TARGET_LOOK))
+            print_path(creature_ptr, y, x);
+
+        /* Access */
+        g_ptr = &floor_ptr->grid_array[y][x];
+
+        /* Default prompt */
+        strcpy(info, _("q止 t決 p自 m近 +次 -前", "q,t,p,m,+,-,<dir>"));
+
+        if (cheat_sight) {
+            char cheatinfo[100];
+            sprintf(cheatinfo, " LOS:%d, PROJECTABLE:%d, SPECIAL:%d", los(creature_ptr, creature_ptr->y, creature_ptr->x, y, x),
+                projectable(creature_ptr, creature_ptr->y, creature_ptr->x, y, x), g_ptr->special);
+            strcat(info, cheatinfo);
+        }
+
+        /* Describe and Prompt (enable "TARGET_LOOK") */
+        while ((query = target_set_aux(creature_ptr, y, x, mode | TARGET_LOOK, info)) == 0)
+            ;
+
+        /* Assume no direction */
+        d = 0;
+
+        if (use_menu) {
+            if (query == '\r')
+                query = 't';
+        }
+
+        /* Analyze the keypress */
+        switch (query) {
+        case ESCAPE:
+        case 'q': {
+            done = TRUE;
+            break;
+        }
+
+        case 't':
+        case '.':
+        case '5':
+        case '0': {
+            target_who = -1;
+            target_row = y;
+            target_col = x;
+            done = TRUE;
+            break;
+        }
+
+        case 'p': {
+            /* Recenter the map around the player */
+            verify_panel(creature_ptr);
+            creature_ptr->update |= (PU_MONSTERS);
+            creature_ptr->redraw |= (PR_MAP);
+            creature_ptr->window |= (PW_OVERHEAD);
+            handle_stuff(creature_ptr);
+
+            /* Recalculate interesting grids */
+            target_set_prepare(creature_ptr, mode);
+
+            y = creature_ptr->y;
+            x = creature_ptr->x;
+        }
+
+        case 'o': {
+            break;
+        }
+
+        case ' ':
+        case '*':
+        case '+':
+        case '-':
+        case 'm': {
+            flag = TRUE;
+
+            m = 0;
+            bd = 999;
+
+            /* Pick a nearby monster */
+            for (i = 0; i < tmp_pos.n; i++) {
+                t = distance(y, x, tmp_pos.y[i], tmp_pos.x[i]);
+
+                /* Pick closest */
+                if (t < bd) {
+                    m = i;
+                    bd = t;
+                }
+            }
+
+            /* Nothing interesting */
+            if (bd == 999)
+                flag = FALSE;
+
+            break;
+        }
+
+        default: {
+            /* Extract the action (if any) */
+            d = get_keymap_dir(query);
+
+            /* XTRA HACK MOVEFAST */
+            if (isupper(query))
+                move_fast = TRUE;
+
+            if (!d)
+                bell();
+            break;
+        }
+        }
+
+        /* Handle "direction" */
+        if (d) {
+            POSITION dx = ddx[d];
+            POSITION dy = ddy[d];
+
+            /* XTRA HACK MOVEFAST */
+            if (move_fast) {
+                int mag = MIN(wid / 2, hgt / 2);
+                x += dx * mag;
+                y += dy * mag;
+            } else {
+                x += dx;
+                y += dy;
+            }
+
+            /* Do not move horizontally if unnecessary */
+            if (((x < panel_col_min + wid / 2) && (dx > 0)) || ((x > panel_col_min + wid / 2) && (dx < 0))) {
+                dx = 0;
+            }
+
+            /* Do not move vertically if unnecessary */
+            if (((y < panel_row_min + hgt / 2) && (dy > 0)) || ((y > panel_row_min + hgt / 2) && (dy < 0))) {
+                dy = 0;
+            }
+
+            /* Apply the motion */
+            if ((y >= panel_row_min + hgt) || (y < panel_row_min) || (x >= panel_col_min + wid) || (x < panel_col_min)) {
+                if (change_panel(creature_ptr, dy, dx))
+                    target_set_prepare(creature_ptr, mode);
+            }
+
+            /* Slide into legality */
+            if (x >= floor_ptr->width - 1)
+                x = floor_ptr->width - 2;
+            else if (x <= 0)
+                x = 1;
+
+            /* Slide into legality */
+            if (y >= floor_ptr->height - 1)
+                y = floor_ptr->height - 2;
+            else if (y <= 0)
+                y = 1;
+        }
+    }
+
+    /* Forget */
+    tmp_pos.n = 0;
+
+    /* Clear the top line */
+    prt("", 0, 0);
+
+    /* Recenter the map around the player */
+    verify_panel(creature_ptr);
+    creature_ptr->update |= (PU_MONSTERS);
+    creature_ptr->redraw |= (PR_MAP);
+    creature_ptr->window |= (PW_OVERHEAD);
+    handle_stuff(creature_ptr);
+
+    return target_who != 0;
 }
 
-
 /*
  * Get an "aiming direction" from the user.
  *
@@ -1536,243 +1476,212 @@ bool target_set(player_type *creature_ptr, BIT_FLAGS mode)
  */
 bool get_aim_dir(player_type *creature_ptr, DIRECTION *dp)
 {
-       /* Global direction */
-       DIRECTION dir = command_dir;
-
-       /* Hack -- auto-target if requested */
-       if (use_old_target && target_okay(creature_ptr)) dir = 5;
-
-       COMMAND_CODE code;
-       if (repeat_pull(&code))
-       {
-               /* Confusion? */
-
-               /* Verify */
-               if (!(code == 5 && !target_okay(creature_ptr)))
-               {
-                       /*                      return TRUE; */
-                       dir = (DIRECTION)code;
-               }
-       }
-
-       *dp = (DIRECTION)code;
-
-       /* Ask until satisfied */
-       char command;
-       while (!dir)
-       {
-               /* Choose a prompt */
-               concptr p;
-               if (!target_okay(creature_ptr))
-               {
-                       p = _("方向 ('*'でターゲット選択, ESCで中断)? ", "Direction ('*' to choose a target, Escape to cancel)? ");
-               }
-               else
-               {
-                       p = _("方向 ('5'でターゲットへ, '*'でターゲット再選択, ESCで中断)? ", "Direction ('5' for target, '*' to re-target, Escape to cancel)? ");
-               }
-
-               /* Get a command (or Cancel) */
-               if (!get_com(p, &command, TRUE)) break;
-
-               if (use_menu)
-               {
-                       if (command == '\r') command = 't';
-               }
-
-               /* Convert various keys to "standard" keys */
-               switch (command)
-               {
-                       /* Use current target */
-               case 'T':
-               case 't':
-               case '.':
-               case '5':
-               case '0':
-               {
-                       dir = 5;
-                       break;
-               }
-
-               /* Set new target */
-               case '*':
-               case ' ':
-               case '\r':
-               {
-                       if (target_set(creature_ptr, TARGET_KILL)) dir = 5;
-                       break;
-               }
-
-               default:
-               {
-                       /* Extract the action (if any) */
-                       dir = get_keymap_dir(command);
-
-                       break;
-               }
-               }
-
-               /* Verify requested targets */
-               if ((dir == 5) && !target_okay(creature_ptr)) dir = 0;
-
-               /* Error */
-               if (!dir) bell();
-       }
-
-       /* No direction */
-       if (!dir)
-       {
-               project_length = 0; /* reset to default */
-               return FALSE;
-       }
-
-       /* Save the direction */
-       command_dir = dir;
-
-       /* Check for confusion */
-       if (creature_ptr->confused)
-       {
-               /* Random direction */
-               dir = ddd[randint0(8)];
-       }
-
-       /* Notice confusion */
-       if (command_dir != dir)
-       {
-               /* Warn the user */
-               msg_print(_("あなたは混乱している。", "You are confused."));
-       }
-
-       /* Save direction */
-       (*dp) = dir;
-
-       repeat_push((COMMAND_CODE)command_dir);
-       return TRUE;
+    /* Global direction */
+    DIRECTION dir = command_dir;
+
+    /* Hack -- auto-target if requested */
+    if (use_old_target && target_okay(creature_ptr))
+        dir = 5;
+
+    COMMAND_CODE code;
+    if (repeat_pull(&code)) {
+        /* Confusion? */
+
+        /* Verify */
+        if (!(code == 5 && !target_okay(creature_ptr))) {
+            /*                 return TRUE; */
+            dir = (DIRECTION)code;
+        }
+    }
+
+    *dp = (DIRECTION)code;
+
+    /* Ask until satisfied */
+    char command;
+    while (!dir) {
+        /* Choose a prompt */
+        concptr p;
+        if (!target_okay(creature_ptr)) {
+            p = _("方向 ('*'でターゲット選択, ESCで中断)? ", "Direction ('*' to choose a target, Escape to cancel)? ");
+        } else {
+            p = _("方向 ('5'でターゲットへ, '*'でターゲット再選択, ESCで中断)? ", "Direction ('5' for target, '*' to re-target, Escape to cancel)? ");
+        }
+
+        /* Get a command (or Cancel) */
+        if (!get_com(p, &command, TRUE))
+            break;
+
+        if (use_menu) {
+            if (command == '\r')
+                command = 't';
+        }
+
+        /* Convert various keys to "standard" keys */
+        switch (command) {
+            /* Use current target */
+        case 'T':
+        case 't':
+        case '.':
+        case '5':
+        case '0': {
+            dir = 5;
+            break;
+        }
+
+        /* Set new target */
+        case '*':
+        case ' ':
+        case '\r': {
+            if (target_set(creature_ptr, TARGET_KILL))
+                dir = 5;
+            break;
+        }
+
+        default: {
+            /* Extract the action (if any) */
+            dir = get_keymap_dir(command);
+
+            break;
+        }
+        }
+
+        /* Verify requested targets */
+        if ((dir == 5) && !target_okay(creature_ptr))
+            dir = 0;
+
+        /* Error */
+        if (!dir)
+            bell();
+    }
+
+    /* No direction */
+    if (!dir) {
+        project_length = 0; /* reset to default */
+        return FALSE;
+    }
+
+    /* Save the direction */
+    command_dir = dir;
+
+    /* Check for confusion */
+    if (creature_ptr->confused) {
+        /* Random direction */
+        dir = ddd[randint0(8)];
+    }
+
+    /* Notice confusion */
+    if (command_dir != dir) {
+        /* Warn the user */
+        msg_print(_("あなたは混乱している。", "You are confused."));
+    }
+
+    /* Save direction */
+    (*dp) = dir;
+
+    repeat_push((COMMAND_CODE)command_dir);
+    return TRUE;
 }
 
-
 bool get_direction(player_type *creature_ptr, DIRECTION *dp, bool allow_under, bool with_steed)
 {
-       /* Global direction */
-       DIRECTION dir = command_dir;
-
-       COMMAND_CODE code;
-       if (repeat_pull(&code))
-       {
-               dir = (DIRECTION)code;
-               /*              return TRUE; */
-       }
-
-       *dp = (DIRECTION)code;
-
-       concptr prompt;
-       if (allow_under)
-       {
-               prompt = _("方向 ('.'足元, ESCで中断)? ", "Direction ('.' at feet, Escape to cancel)? ");
-       }
-       else
-       {
-               prompt = _("方向 (ESCで中断)? ", "Direction (Escape to cancel)? ");
-       }
-
-       /* Get a direction */
-       while (!dir)
-       {
-               char ch;
-
-               /* Get a command (or Cancel) */
-               if (!get_com(prompt, &ch, TRUE)) break;
-
-               /* Look down */
-               if ((allow_under) && ((ch == '5') || (ch == '-') || (ch == '.')))
-               {
-                       dir = 5;
-               }
-               else
-               {
-                       /* Look up the direction */
-                       dir = get_keymap_dir(ch);
-
-                       if (!dir) bell();
-               }
-       }
-
-       /* Prevent weirdness */
-       if ((dir == 5) && (!allow_under)) dir = 0;
-
-       /* Aborted */
-       if (!dir) return FALSE;
-
-       /* Save desired direction */
-       command_dir = dir;
-
-       /* Apply "confusion" */
-       if (creature_ptr->confused)
-       {
-               /* Standard confusion */
-               if (randint0(100) < 75)
-               {
-                       /* Random direction */
-                       dir = ddd[randint0(8)];
-               }
-       }
-       else if (creature_ptr->riding && with_steed)
-       {
-               monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
-               monster_race *r_ptr = &r_info[m_ptr->r_idx];
-
-               if (monster_confused_remaining(m_ptr))
-               {
-                       /* Standard confusion */
-                       if (randint0(100) < 75)
-                       {
-                               /* Random direction */
-                               dir = ddd[randint0(8)];
-                       }
-               }
-               else if ((r_ptr->flags1 & RF1_RAND_50) && (r_ptr->flags1 & RF1_RAND_25) && (randint0(100) < 50))
-               {
-                       /* Random direction */
-                       dir = ddd[randint0(8)];
-               }
-               else if ((r_ptr->flags1 & RF1_RAND_50) && (randint0(100) < 25))
-               {
-                       /* Random direction */
-                       dir = ddd[randint0(8)];
-               }
-       }
-
-       /* Notice confusion */
-       if (command_dir != dir)
-       {
-               if (creature_ptr->confused)
-               {
-                       /* Warn the user */
-                       msg_print(_("あなたは混乱している。", "You are confused."));
-               }
-               else
-               {
-                       GAME_TEXT m_name[MAX_NLEN];
-                       monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
-
-                       monster_desc(creature_ptr, m_name, m_ptr, 0);
-                       if (monster_confused_remaining(m_ptr))
-                       {
-                               msg_format(_("%sは混乱している。", "%^s is confused."), m_name);
-                       }
-                       else
-                       {
-                               msg_format(_("%sは思い通りに動いてくれない。", "You cannot control %s."), m_name);
-                       }
-               }
-       }
-
-       *dp = dir;
-       repeat_push((COMMAND_CODE)command_dir);
-       return TRUE;
+    /* Global direction */
+    DIRECTION dir = command_dir;
+
+    COMMAND_CODE code;
+    if (repeat_pull(&code)) {
+        dir = (DIRECTION)code;
+        /*             return TRUE; */
+    }
+
+    *dp = (DIRECTION)code;
+
+    concptr prompt;
+    if (allow_under) {
+        prompt = _("方向 ('.'足元, ESCで中断)? ", "Direction ('.' at feet, Escape to cancel)? ");
+    } else {
+        prompt = _("方向 (ESCで中断)? ", "Direction (Escape to cancel)? ");
+    }
+
+    /* Get a direction */
+    while (!dir) {
+        char ch;
+
+        /* Get a command (or Cancel) */
+        if (!get_com(prompt, &ch, TRUE))
+            break;
+
+        /* Look down */
+        if ((allow_under) && ((ch == '5') || (ch == '-') || (ch == '.'))) {
+            dir = 5;
+        } else {
+            /* Look up the direction */
+            dir = get_keymap_dir(ch);
+
+            if (!dir)
+                bell();
+        }
+    }
+
+    /* Prevent weirdness */
+    if ((dir == 5) && (!allow_under))
+        dir = 0;
+
+    /* Aborted */
+    if (!dir)
+        return FALSE;
+
+    /* Save desired direction */
+    command_dir = dir;
+
+    /* Apply "confusion" */
+    if (creature_ptr->confused) {
+        /* Standard confusion */
+        if (randint0(100) < 75) {
+            /* Random direction */
+            dir = ddd[randint0(8)];
+        }
+    } else if (creature_ptr->riding && with_steed) {
+        monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
+        monster_race *r_ptr = &r_info[m_ptr->r_idx];
+
+        if (monster_confused_remaining(m_ptr)) {
+            /* Standard confusion */
+            if (randint0(100) < 75) {
+                /* Random direction */
+                dir = ddd[randint0(8)];
+            }
+        } else if ((r_ptr->flags1 & RF1_RAND_50) && (r_ptr->flags1 & RF1_RAND_25) && (randint0(100) < 50)) {
+            /* Random direction */
+            dir = ddd[randint0(8)];
+        } else if ((r_ptr->flags1 & RF1_RAND_50) && (randint0(100) < 25)) {
+            /* Random direction */
+            dir = ddd[randint0(8)];
+        }
+    }
+
+    /* Notice confusion */
+    if (command_dir != dir) {
+        if (creature_ptr->confused) {
+            /* Warn the user */
+            msg_print(_("あなたは混乱している。", "You are confused."));
+        } else {
+            GAME_TEXT m_name[MAX_NLEN];
+            monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
+
+            monster_desc(creature_ptr, m_name, m_ptr, 0);
+            if (monster_confused_remaining(m_ptr)) {
+                msg_format(_("%sは混乱している。", "%^s is confused."), m_name);
+            } else {
+                msg_format(_("%sは思い通りに動いてくれない。", "You cannot control %s."), m_name);
+            }
+        }
+    }
+
+    *dp = dir;
+    repeat_push((COMMAND_CODE)command_dir);
+    return TRUE;
 }
 
-
 /*
  * @brief 進行方向を指定する(騎乗対象の混乱の影響を受ける) / Request a "movement" direction (1,2,3,4,6,7,8,9) from the user,
  * and place it into "command_dir", unless we already have one.
@@ -1791,444 +1700,416 @@ bool get_direction(player_type *creature_ptr, DIRECTION *dp, bool allow_under, b
  */
 bool get_rep_dir(player_type *creature_ptr, DIRECTION *dp, bool under)
 {
-       /* Global direction */
-       DIRECTION dir = command_dir;
-
-       COMMAND_CODE code;
-       if (repeat_pull(&code))
-       {
-               dir = (DIRECTION)code;
-               /*              return TRUE; */
-       }
-
-       *dp = (DIRECTION)code;
-
-       concptr prompt;
-       if (under)
-       {
-               prompt = _("方向 ('.'足元, ESCで中断)? ", "Direction ('.' at feet, Escape to cancel)? ");
-       }
-       else
-       {
-               prompt = _("方向 (ESCで中断)? ", "Direction (Escape to cancel)? ");
-       }
-
-       /* Get a direction */
-       while (!dir)
-       {
-               char ch;
-
-               /* Get a command (or Cancel) */
-               if (!get_com(prompt, &ch, TRUE)) break;
-
-               /* Look down */
-               if ((under) && ((ch == '5') || (ch == '-') || (ch == '.')))
-               {
-                       dir = 5;
-               }
-               else
-               {
-                       /* Look up the direction */
-                       dir = get_keymap_dir(ch);
-
-                       if (!dir) bell();
-               }
-       }
-
-       /* Prevent weirdness */
-       if ((dir == 5) && (!under)) dir = 0;
-
-       /* Aborted */
-       if (!dir) return FALSE;
-
-       /* Save desired direction */
-       command_dir = dir;
-
-       /* Apply "confusion" */
-       if (creature_ptr->confused)
-       {
-               /* Standard confusion */
-               if (randint0(100) < 75)
-               {
-                       /* Random direction */
-                       dir = ddd[randint0(8)];
-               }
-       }
-       else if (creature_ptr->riding)
-       {
-               monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
-               monster_race *r_ptr = &r_info[m_ptr->r_idx];
-
-               if (monster_confused_remaining(m_ptr))
-               {
-                       /* Standard confusion */
-                       if (randint0(100) < 75)
-                       {
-                               /* Random direction */
-                               dir = ddd[randint0(8)];
-                       }
-               }
-               else if ((r_ptr->flags1 & RF1_RAND_50) && (r_ptr->flags1 & RF1_RAND_25) && (randint0(100) < 50))
-               {
-                       /* Random direction */
-                       dir = ddd[randint0(8)];
-               }
-               else if ((r_ptr->flags1 & RF1_RAND_50) && (randint0(100) < 25))
-               {
-                       /* Random direction */
-                       dir = ddd[randint0(8)];
-               }
-       }
-
-       /* Notice confusion */
-       if (command_dir != dir)
-       {
-               if (creature_ptr->confused)
-               {
-                       /* Warn the user */
-                       msg_print(_("あなたは混乱している。", "You are confused."));
-               }
-               else
-               {
-                       GAME_TEXT m_name[MAX_NLEN];
-                       monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
-
-                       monster_desc(creature_ptr, m_name, m_ptr, 0);
-                       if (monster_confused_remaining(m_ptr))
-                       {
-                               msg_format(_("%sは混乱している。", "%^s is confused."), m_name);
-                       }
-                       else
-                       {
-                               msg_format(_("%sは思い通りに動いてくれない。", "You cannot control %s."), m_name);
-                       }
-               }
-       }
-
-       *dp = dir;
-       repeat_push((COMMAND_CODE)command_dir);
-       return TRUE;
+    /* Global direction */
+    DIRECTION dir = command_dir;
+
+    COMMAND_CODE code;
+    if (repeat_pull(&code)) {
+        dir = (DIRECTION)code;
+        /*             return TRUE; */
+    }
+
+    *dp = (DIRECTION)code;
+
+    concptr prompt;
+    if (under) {
+        prompt = _("方向 ('.'足元, ESCで中断)? ", "Direction ('.' at feet, Escape to cancel)? ");
+    } else {
+        prompt = _("方向 (ESCで中断)? ", "Direction (Escape to cancel)? ");
+    }
+
+    /* Get a direction */
+    while (!dir) {
+        char ch;
+
+        /* Get a command (or Cancel) */
+        if (!get_com(prompt, &ch, TRUE))
+            break;
+
+        /* Look down */
+        if ((under) && ((ch == '5') || (ch == '-') || (ch == '.'))) {
+            dir = 5;
+        } else {
+            /* Look up the direction */
+            dir = get_keymap_dir(ch);
+
+            if (!dir)
+                bell();
+        }
+    }
+
+    /* Prevent weirdness */
+    if ((dir == 5) && (!under))
+        dir = 0;
+
+    /* Aborted */
+    if (!dir)
+        return FALSE;
+
+    /* Save desired direction */
+    command_dir = dir;
+
+    /* Apply "confusion" */
+    if (creature_ptr->confused) {
+        /* Standard confusion */
+        if (randint0(100) < 75) {
+            /* Random direction */
+            dir = ddd[randint0(8)];
+        }
+    } else if (creature_ptr->riding) {
+        monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
+        monster_race *r_ptr = &r_info[m_ptr->r_idx];
+
+        if (monster_confused_remaining(m_ptr)) {
+            /* Standard confusion */
+            if (randint0(100) < 75) {
+                /* Random direction */
+                dir = ddd[randint0(8)];
+            }
+        } else if ((r_ptr->flags1 & RF1_RAND_50) && (r_ptr->flags1 & RF1_RAND_25) && (randint0(100) < 50)) {
+            /* Random direction */
+            dir = ddd[randint0(8)];
+        } else if ((r_ptr->flags1 & RF1_RAND_50) && (randint0(100) < 25)) {
+            /* Random direction */
+            dir = ddd[randint0(8)];
+        }
+    }
+
+    /* Notice confusion */
+    if (command_dir != dir) {
+        if (creature_ptr->confused) {
+            /* Warn the user */
+            msg_print(_("あなたは混乱している。", "You are confused."));
+        } else {
+            GAME_TEXT m_name[MAX_NLEN];
+            monster_type *m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
+
+            monster_desc(creature_ptr, m_name, m_ptr, 0);
+            if (monster_confused_remaining(m_ptr)) {
+                msg_format(_("%sは混乱している。", "%^s is confused."), m_name);
+            } else {
+                msg_format(_("%sは思い通りに動いてくれない。", "You cannot control %s."), m_name);
+            }
+        }
+    }
+
+    *dp = dir;
+    repeat_push((COMMAND_CODE)command_dir);
+    return TRUE;
 }
 
-
 /*
  * XAngband: determine if a given location is "interesting"
  * based on target_set_accept function.
  */
 static bool tgt_pt_accept(player_type *creature_ptr, POSITION y, POSITION x)
 {
-       floor_type *floor_ptr = creature_ptr->current_floor_ptr;
-       if (!(in_bounds(floor_ptr, y, x))) return FALSE;
+    floor_type *floor_ptr = creature_ptr->current_floor_ptr;
+    if (!(in_bounds(floor_ptr, y, x)))
+        return FALSE;
 
-       /* Player grid is always interesting */
-       if ((y == creature_ptr->y) && (x == creature_ptr->x)) return TRUE;
+    /* Player grid is always interesting */
+    if ((y == creature_ptr->y) && (x == creature_ptr->x))
+        return TRUE;
 
-       if (creature_ptr->image) return FALSE;
+    if (creature_ptr->image)
+        return FALSE;
 
-       grid_type *g_ptr;
-       g_ptr = &floor_ptr->grid_array[y][x];
+    grid_type *g_ptr;
+    g_ptr = &floor_ptr->grid_array[y][x];
 
-       /* Interesting memorized features */
-       if (!(g_ptr->info & (CAVE_MARK))) return FALSE;
+    /* Interesting memorized features */
+    if (!(g_ptr->info & (CAVE_MARK)))
+        return FALSE;
 
-       /* Notice stairs */
-       if (cave_have_flag_grid(g_ptr, FF_LESS)) return TRUE;
-       if (cave_have_flag_grid(g_ptr, FF_MORE)) return TRUE;
+    /* Notice stairs */
+    if (cave_have_flag_grid(g_ptr, FF_LESS))
+        return TRUE;
+    if (cave_have_flag_grid(g_ptr, FF_MORE))
+        return TRUE;
 
-       /* Notice quest features */
-       if (cave_have_flag_grid(g_ptr, FF_QUEST_ENTER)) return TRUE;
-       if (cave_have_flag_grid(g_ptr, FF_QUEST_EXIT)) return TRUE;
+    /* Notice quest features */
+    if (cave_have_flag_grid(g_ptr, FF_QUEST_ENTER))
+        return TRUE;
+    if (cave_have_flag_grid(g_ptr, FF_QUEST_EXIT))
+        return TRUE;
 
-       return FALSE;
+    return FALSE;
 }
 
-
 /*
  * XAngband: Prepare the "temp" array for "tget_pt"
  * based on target_set_prepare funciton.
  */
 static void tgt_pt_prepare(player_type *creature_ptr)
 {
-       tmp_pos.n = 0;
-
-       if (!expand_list) return;
-
-       /* Scan the current panel */
-       floor_type *floor_ptr = creature_ptr->current_floor_ptr;
-       for (POSITION y = 1; y < floor_ptr->height; y++)
-       {
-               for (POSITION x = 1; x < floor_ptr->width; x++)
-               {
-                       /* Require "interesting" contents */
-                       if (!tgt_pt_accept(creature_ptr, y, x)) continue;
-
-                       /* Save the location */
-                       tmp_pos.x[tmp_pos.n] = x;
-                       tmp_pos.y[tmp_pos.n] = y;
-                       tmp_pos.n++;
-               }
-       }
-
-       ang_sort(creature_ptr, tmp_pos.x, tmp_pos.y, tmp_pos.n, ang_sort_comp_distance, ang_sort_swap_distance);
+    tmp_pos.n = 0;
+
+    if (!expand_list)
+        return;
+
+    /* Scan the current panel */
+    floor_type *floor_ptr = creature_ptr->current_floor_ptr;
+    for (POSITION y = 1; y < floor_ptr->height; y++) {
+        for (POSITION x = 1; x < floor_ptr->width; x++) {
+            /* Require "interesting" contents */
+            if (!tgt_pt_accept(creature_ptr, y, x))
+                continue;
+
+            /* Save the location */
+            tmp_pos.x[tmp_pos.n] = x;
+            tmp_pos.y[tmp_pos.n] = y;
+            tmp_pos.n++;
+        }
+    }
+
+    ang_sort(creature_ptr, tmp_pos.x, tmp_pos.y, tmp_pos.n, ang_sort_comp_distance, ang_sort_swap_distance);
 }
 
-
 /*
  * old -- from PsiAngband.
  */
 bool tgt_pt(player_type *creature_ptr, POSITION *x_ptr, POSITION *y_ptr)
 {
-       TERM_LEN wid, hgt;
-       get_screen_size(&wid, &hgt);
-
-       POSITION x = creature_ptr->x;
-       POSITION y = creature_ptr->y;
-
-       if (expand_list) tgt_pt_prepare(creature_ptr);
-
-       msg_print(_("場所を選んでスペースキーを押して下さい。", "Select a point and press space."));
-       msg_flag = FALSE; /* prevents "-more-" message. */
-
-       char ch = 0;
-       int n = 0;
-       bool success = FALSE;
-       while ((ch != ESCAPE) && !success)
-       {
-               bool move_fast = FALSE;
-
-               move_cursor_relative(y, x);
-               ch = inkey();
-               switch (ch)
-               {
-               case ESCAPE:
-                       break;
-               case ' ':
-               case 't':
-               case '.':
-               case '5':
-               case '0':
-                       /* illegal place */
-                       if (player_bold(creature_ptr, y, x)) ch = 0;
-
-                       /* okay place */
-                       else success = TRUE;
-
-                       break;
-
-                       /* XAngband: Move cursor to stairs */
-               case '>':
-               case '<':
-               {
-                       if (!expand_list || !tmp_pos.n) break;
-
-                       int dx, dy;
-                       int cx = (panel_col_min + panel_col_max) / 2;
-                       int cy = (panel_row_min + panel_row_max) / 2;
-
-                       n++;
-
-                       /* Skip stairs which have defferent distance */
-                       for (; n < tmp_pos.n; ++n)
-                       {
-                               grid_type *g_ptr = &creature_ptr->current_floor_ptr->grid_array[tmp_pos.y[n]][tmp_pos.x[n]];
-
-                               if (cave_have_flag_grid(g_ptr, FF_STAIRS) &&
-                                       cave_have_flag_grid(g_ptr, ch == '>' ? FF_MORE : FF_LESS))
-                               {
-                                       /* Found */
-                                       break;
-                               }
-                       }
-
-                       if (n == tmp_pos.n)     /* Loop out taget list */
-                       {
-                               n = 0;
-                               y = creature_ptr->y;
-                               x = creature_ptr->x;
-                               verify_panel(creature_ptr);     /* Move cursor to player */
-
-                               creature_ptr->update |= (PU_MONSTERS);
-
-                               creature_ptr->redraw |= (PR_MAP);
-
-                               creature_ptr->window |= (PW_OVERHEAD);
-                               handle_stuff(creature_ptr);
-                       }
-                       else    /* move cursor to next stair and change panel */
-                       {
-                               y = tmp_pos.y[n];
-                               x = tmp_pos.x[n];
-
-                               dy = 2 * (y - cy) / hgt;
-                               dx = 2 * (x - cx) / wid;
-                               if (dy || dx) change_panel(creature_ptr, dy, dx);
-                       }
-
-                       break;
-               }
-
-               default:
-               {
-                       /* Look up the direction */
-                       int d = get_keymap_dir(ch);
-
-                       /* XTRA HACK MOVEFAST */
-                       if (isupper(ch)) move_fast = TRUE;
-
-                       /* Handle "direction" */
-                       if (d == 0) break;
-
-                       int dx = ddx[d];
-                       int dy = ddy[d];
-
-                       /* XTRA HACK MOVEFAST */
-                       if (move_fast)
-                       {
-                               int mag = MIN(wid / 2, hgt / 2);
-                               x += dx * mag;
-                               y += dy * mag;
-                       }
-                       else
-                       {
-                               x += dx;
-                               y += dy;
-                       }
-
-                       /* Do not move horizontally if unnecessary */
-                       if (((x < panel_col_min + wid / 2) && (dx > 0)) ||
-                               ((x > panel_col_min + wid / 2) && (dx < 0)))
-                       {
-                               dx = 0;
-                       }
-
-                       /* Do not move vertically if unnecessary */
-                       if (((y < panel_row_min + hgt / 2) && (dy > 0)) ||
-                               ((y > panel_row_min + hgt / 2) && (dy < 0)))
-                       {
-                               dy = 0;
-                       }
-
-                       /* Apply the motion */
-                       if ((y >= panel_row_min + hgt) || (y < panel_row_min) ||
-                               (x >= panel_col_min + wid) || (x < panel_col_min))
-                       {
-                               change_panel(creature_ptr, dy, dx);
-                       }
-
-                       /* Slide into legality */
-                       if (x >= creature_ptr->current_floor_ptr->width - 1) x = creature_ptr->current_floor_ptr->width - 2;
-                       else if (x <= 0) x = 1;
-
-                       /* Slide into legality */
-                       if (y >= creature_ptr->current_floor_ptr->height - 1) y = creature_ptr->current_floor_ptr->height - 2;
-                       else if (y <= 0) y = 1;
-
-                       break;
-               }
-               }
-       }
-
-       prt("", 0, 0);
-       verify_panel(creature_ptr);
-       creature_ptr->update |= (PU_MONSTERS);
-       creature_ptr->redraw |= (PR_MAP);
-       creature_ptr->window |= (PW_OVERHEAD);
-       handle_stuff(creature_ptr);
-
-       *x_ptr = x;
-       *y_ptr = y;
-       return success;
+    TERM_LEN wid, hgt;
+    get_screen_size(&wid, &hgt);
+
+    POSITION x = creature_ptr->x;
+    POSITION y = creature_ptr->y;
+
+    if (expand_list)
+        tgt_pt_prepare(creature_ptr);
+
+    msg_print(_("場所を選んでスペースキーを押して下さい。", "Select a point and press space."));
+    msg_flag = FALSE; /* prevents "-more-" message. */
+
+    char ch = 0;
+    int n = 0;
+    bool success = FALSE;
+    while ((ch != ESCAPE) && !success) {
+        bool move_fast = FALSE;
+
+        move_cursor_relative(y, x);
+        ch = inkey();
+        switch (ch) {
+        case ESCAPE:
+            break;
+        case ' ':
+        case 't':
+        case '.':
+        case '5':
+        case '0':
+            /* illegal place */
+            if (player_bold(creature_ptr, y, x))
+                ch = 0;
+
+            /* okay place */
+            else
+                success = TRUE;
+
+            break;
+
+            /* XAngband: Move cursor to stairs */
+        case '>':
+        case '<': {
+            if (!expand_list || !tmp_pos.n)
+                break;
+
+            int dx, dy;
+            int cx = (panel_col_min + panel_col_max) / 2;
+            int cy = (panel_row_min + panel_row_max) / 2;
+
+            n++;
+
+            /* Skip stairs which have defferent distance */
+            for (; n < tmp_pos.n; ++n) {
+                grid_type *g_ptr = &creature_ptr->current_floor_ptr->grid_array[tmp_pos.y[n]][tmp_pos.x[n]];
+
+                if (cave_have_flag_grid(g_ptr, FF_STAIRS) && cave_have_flag_grid(g_ptr, ch == '>' ? FF_MORE : FF_LESS)) {
+                    /* Found */
+                    break;
+                }
+            }
+
+            if (n == tmp_pos.n) /* Loop out taget list */
+            {
+                n = 0;
+                y = creature_ptr->y;
+                x = creature_ptr->x;
+                verify_panel(creature_ptr); /* Move cursor to player */
+
+                creature_ptr->update |= (PU_MONSTERS);
+
+                creature_ptr->redraw |= (PR_MAP);
+
+                creature_ptr->window |= (PW_OVERHEAD);
+                handle_stuff(creature_ptr);
+            } else /* move cursor to next stair and change panel */
+            {
+                y = tmp_pos.y[n];
+                x = tmp_pos.x[n];
+
+                dy = 2 * (y - cy) / hgt;
+                dx = 2 * (x - cx) / wid;
+                if (dy || dx)
+                    change_panel(creature_ptr, dy, dx);
+            }
+
+            break;
+        }
+
+        default: {
+            /* Look up the direction */
+            int d = get_keymap_dir(ch);
+
+            /* XTRA HACK MOVEFAST */
+            if (isupper(ch))
+                move_fast = TRUE;
+
+            /* Handle "direction" */
+            if (d == 0)
+                break;
+
+            int dx = ddx[d];
+            int dy = ddy[d];
+
+            /* XTRA HACK MOVEFAST */
+            if (move_fast) {
+                int mag = MIN(wid / 2, hgt / 2);
+                x += dx * mag;
+                y += dy * mag;
+            } else {
+                x += dx;
+                y += dy;
+            }
+
+            /* Do not move horizontally if unnecessary */
+            if (((x < panel_col_min + wid / 2) && (dx > 0)) || ((x > panel_col_min + wid / 2) && (dx < 0))) {
+                dx = 0;
+            }
+
+            /* Do not move vertically if unnecessary */
+            if (((y < panel_row_min + hgt / 2) && (dy > 0)) || ((y > panel_row_min + hgt / 2) && (dy < 0))) {
+                dy = 0;
+            }
+
+            /* Apply the motion */
+            if ((y >= panel_row_min + hgt) || (y < panel_row_min) || (x >= panel_col_min + wid) || (x < panel_col_min)) {
+                change_panel(creature_ptr, dy, dx);
+            }
+
+            /* Slide into legality */
+            if (x >= creature_ptr->current_floor_ptr->width - 1)
+                x = creature_ptr->current_floor_ptr->width - 2;
+            else if (x <= 0)
+                x = 1;
+
+            /* Slide into legality */
+            if (y >= creature_ptr->current_floor_ptr->height - 1)
+                y = creature_ptr->current_floor_ptr->height - 2;
+            else if (y <= 0)
+                y = 1;
+
+            break;
+        }
+        }
+    }
+
+    prt("", 0, 0);
+    verify_panel(creature_ptr);
+    creature_ptr->update |= (PU_MONSTERS);
+    creature_ptr->redraw |= (PR_MAP);
+    creature_ptr->window |= (PW_OVERHEAD);
+    handle_stuff(creature_ptr);
+
+    *x_ptr = x;
+    *y_ptr = y;
+    return success;
 }
 
-
 bool get_hack_dir(player_type *creature_ptr, DIRECTION *dp)
 {
-       *dp = 0;
-
-       /* Ask until satisfied */
-       char command;
-       DIRECTION dir = 0;
-       while (!dir)
-       {
-               /* Choose a prompt */
-               concptr p;
-               if (!target_okay(creature_ptr))
-               {
-                       p = _("方向 ('*'でターゲット選択, ESCで中断)? ", "Direction ('*' to choose a target, Escape to cancel)? ");
-               }
-               else
-               {
-                       p = _("方向 ('5'でターゲットへ, '*'でターゲット再選択, ESCで中断)? ", "Direction ('5' for target, '*' to re-target, Escape to cancel)? ");
-               }
-
-               /* Get a command (or Cancel) */
-               if (!get_com(p, &command, TRUE)) break;
-
-               if (use_menu)
-               {
-                       if (command == '\r') command = 't';
-               }
-
-               /* Convert various keys to "standard" keys */
-               switch (command)
-               {
-                       /* Use current target */
-               case 'T':
-               case 't':
-               case '.':
-               case '5':
-               case '0':
-               {
-                       dir = 5;
-                       break;
-               }
-
-               /* Set new target */
-               case '*':
-               case ' ':
-               case '\r':
-               {
-                       if (target_set(creature_ptr, TARGET_KILL)) dir = 5;
-                       break;
-               }
-
-               default:
-               {
-                       /* Look up the direction */
-                       dir = get_keymap_dir(command);
-
-                       break;
-               }
-               }
-
-               /* Verify requested targets */
-               if ((dir == 5) && !target_okay(creature_ptr)) dir = 0;
-
-               /* Error */
-               if (!dir) bell();
-       }
-
-       if (!dir) return FALSE;
-
-       /* Save the direction */
-       command_dir = dir;
-
-       /* Check for confusion */
-       if (creature_ptr->confused)
-       {
-               /* Random direction */
-               dir = ddd[randint0(8)];
-       }
-
-       /* Notice confusion */
-       if (command_dir != dir)
-       {
-               /* Warn the user */
-               msg_print(_("あなたは混乱している。", "You are confused."));
-       }
-
-       *dp = dir;
-       return TRUE;
+    *dp = 0;
+
+    /* Ask until satisfied */
+    char command;
+    DIRECTION dir = 0;
+    while (!dir) {
+        /* Choose a prompt */
+        concptr p;
+        if (!target_okay(creature_ptr)) {
+            p = _("方向 ('*'でターゲット選択, ESCで中断)? ", "Direction ('*' to choose a target, Escape to cancel)? ");
+        } else {
+            p = _("方向 ('5'でターゲットへ, '*'でターゲット再選択, ESCで中断)? ", "Direction ('5' for target, '*' to re-target, Escape to cancel)? ");
+        }
+
+        /* Get a command (or Cancel) */
+        if (!get_com(p, &command, TRUE))
+            break;
+
+        if (use_menu) {
+            if (command == '\r')
+                command = 't';
+        }
+
+        /* Convert various keys to "standard" keys */
+        switch (command) {
+            /* Use current target */
+        case 'T':
+        case 't':
+        case '.':
+        case '5':
+        case '0': {
+            dir = 5;
+            break;
+        }
+
+        /* Set new target */
+        case '*':
+        case ' ':
+        case '\r': {
+            if (target_set(creature_ptr, TARGET_KILL))
+                dir = 5;
+            break;
+        }
+
+        default: {
+            /* Look up the direction */
+            dir = get_keymap_dir(command);
+
+            break;
+        }
+        }
+
+        /* Verify requested targets */
+        if ((dir == 5) && !target_okay(creature_ptr))
+            dir = 0;
+
+        /* Error */
+        if (!dir)
+            bell();
+    }
+
+    if (!dir)
+        return FALSE;
+
+    /* Save the direction */
+    command_dir = dir;
+
+    /* Check for confusion */
+    if (creature_ptr->confused) {
+        /* Random direction */
+        dir = ddd[randint0(8)];
+    }
+
+    /* Notice confusion */
+    if (command_dir != dir) {
+        /* Warn the user */
+        msg_print(_("あなたは混乱している。", "You are confused."));
+    }
+
+    *dp = dir;
+    return TRUE;
 }
 
 /*!
index 7effcca..1a66aea 100644 (file)
@@ -1,6 +1,7 @@
 #include "market/building-craft-fix.h"
 #include "art-definition/art-sword-types.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-object.h"
index 1a587b0..a5750b1 100644 (file)
@@ -2,6 +2,7 @@
 #include "art-definition/art-sword-types.h"
 #include "combat/attack-accuracy.h"
 #include "combat/shoot.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-slot-types.h"
index 95181f7..27392d8 100644 (file)
@@ -1,6 +1,7 @@
 #include "market/building-recharger.h"
 #include "autopick/autopick.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-slot-types.h"
 #include "market/building-util.h"
index 2b33c32..3dc1595 100644 (file)
@@ -1,5 +1,6 @@
 #include "mind/mind-force-trainer.h"
 #include "cmd-action/cmd-pet.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/spells-effect-util.h"
 #include "floor/floor.h"
index 4351751..2670ed4 100644 (file)
@@ -1,4 +1,5 @@
 #include "mind/mind-magic-resistance.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "player/player-move.h"
index 2e791d5..12ce0b9 100644 (file)
@@ -1,5 +1,6 @@
 #include "mind/mind-mindcrafter.h"
 #include "autopick/autopick.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "game-option/auto-destruction-options.h"
 #include "object-enchant/item-feeling.h"
index 489aecf..5620d63 100644 (file)
@@ -1,5 +1,6 @@
 #include "mind/mind-mirror-master.h"
 #include "cmd-action/cmd-pet.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-feature.h"
index 4963ca8..1c53172 100644 (file)
@@ -8,6 +8,7 @@
 #include "cmd-action/cmd-attack.h"
 #include "cmd-action/cmd-pet.h"
 #include "cmd/cmd-basic.h"
+#include "core/player-update-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "io/input-key-acceptor.h"
 #include "mind/stances-table.h"
index 69aac8f..6ae3876 100644 (file)
@@ -8,6 +8,7 @@
 #include "mind/mind-sniper.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor.h"
 #include "game-option/text-display-options.h"
index 5f543c5..1ed63fe 100644 (file)
@@ -20,6 +20,7 @@
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
 #include "core/hp-mp-processor.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "effect/spells-effect-util.h"
index 5554332..b19715b 100644 (file)
@@ -1,4 +1,5 @@
 #include "mind/racial-kutar.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "player/player-move.h"
index 10d62cb..87a2655 100644 (file)
@@ -16,6 +16,7 @@
 #include "cmd-item/cmd-zapwand.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/spells-effect-util.h"
 #include "game-option/disturbance-options.h"
index cfda9e7..d41b98f 100644 (file)
@@ -12,6 +12,7 @@
 #include "combat/aura-counterattack.h"
 #include "combat/combat-options-type.h"
 #include "combat/hallucination-attacks-table.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "effect/effect-characteristics.h"
 #include "inventory/inventory-slot-types.h"
index a56ff70..049bba3 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "monster-attack/monster-attack-status.h"
+#include "core/player-update-types.h"
 #include "mind/mind-mirror-master.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-indice-types.h"
index 23595a3..9c5ec1a 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "monster-attack/monster-eating.h"
+#include "core/player-update-types.h"
 #include "floor/floor.h"
 #include "inventory/inventory-object.h"
 #include "inventory/inventory-slot-types.h"
index 814c18c..f7572c5 100644 (file)
@@ -4,6 +4,7 @@
 #include "art-definition/art-protector-types.h"
 #include "art-definition/art-weapon-types.h"
 #include "art-definition/random-art-effects.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
 #include "effect/effect-characteristics.h"
index eca9222..6a660a0 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "monster-floor/monster-move.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "effect/effect-characteristics.h"
 #include "game-option/disturbance-options.h"
index 9ba3dde..5be49d3 100644 (file)
@@ -1,4 +1,5 @@
 #include "monster-floor/monster-remover.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
index 551fe88..ec9bf44 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "monster-floor/one-monster-placer.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "dungeon/quest.h"
 #include "effect/effect-characteristics.h"
index cc6347f..1fc1fdb 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 #include "monster/monster-list.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "dungeon/dungeon.h"
 #include "floor/floor-object.h"
index 8d94836..0e56ab3 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "monster/monster-processor.h"
 #include "cmd-io/cmd-dump.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "game-option/play-record-options.h"
 #include "grid/feature.h"
index 8659661..172e3a1 100644 (file)
@@ -2,6 +2,7 @@
 #include "autopick/autopick-pref-processor.h"
 #include "cmd-io/cmd-dump.h"
 #include "cmd-visual/cmd-draw.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
index cf8e109..923b393 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "monster/monster-update.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "game-option/birth-options.h"
 #include "game-option/disturbance-options.h"
index b2bfb37..b744c1c 100644 (file)
@@ -1,4 +1,5 @@
 #include "mspell/mspell-dispel.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "mind/mind-force-trainer.h"
 #include "mind/mind-magic-resistance.h"
index 9fcaf78..8d01cc8 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "mspell/mspell-floor.h"
+#include "core/player-update-types.h"
 #include "effect/effect-characteristics.h"
 #include "mind/drs-types.h"
 #include "monster-race/monster-race.h"
index 108a3bd..661c5f6 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "mspell/mspell-special.h"
+#include "core/player-update-types.h"
 #include "effect/effect-characteristics.h"
 #include "grid/grid.h"
 #include "main/sound-definitions-table.h"
index 4995e18..c4b950f 100644 (file)
@@ -15,6 +15,7 @@
 #include "cmd-io/cmd-dump.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "player/player-race-types.h"
 #include "core/show-file.h"
 #include "core/stuff-handler.h"
 #include "effect/spells-effect-util.h"
@@ -46,7 +47,7 @@
 #include "player/player-class.h"
 #include "player/player-damage.h"
 #include "player/player-personalities-types.h"
-#include "player/player-race-types.h"
+#include "core/player-update-types.h"
 #include "player/selfinfo.h"
 #include "spell-kind/earthquake.h"
 #include "spell-kind/spells-charm.h"
index cfb2ad6..a91ec08 100644 (file)
@@ -1,4 +1,5 @@
 #include "object-enchant/object-curse.h"
+#include "core/player-update-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/item-feeling.h"
 #include "object-enchant/tr-types.h"
index 4f6093c..23fef53 100644 (file)
@@ -1,6 +1,7 @@
 #include "object-hook/hook-expendable.h"
 #include "art-definition/art-accessory-types.h"
 #include "art-definition/art-armor-types.h"
+#include "core/player-update-types.h"
 #include "monster-race/monster-race.h"
 #include "object-enchant/item-feeling.h"
 #include "object-enchant/special-object-flags.h"
index fbdef67..8b18c1d 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "object-potion/quaff-execution.h"
 #include "birth/birth-stat.h"
+#include "core/player-update-types.h"
 #include "game-option/birth-options.h"
 #include "game-option/disturbance-options.h"
 #include "inventory/inventory-object.h"
index 54585b6..3914456 100644 (file)
@@ -1,4 +1,5 @@
 #include "object/lite-processor.h"
+#include "core/player-update-types.h"
 #include "game-option/disturbance-options.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/object-ego.h"
index b09a770..2ad9eef 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "perception/simple-perception.h"
 #include "autopick/autopick.h"
+#include "core/player-update-types.h"
 #include "game-option/auto-destruction-options.h"
 #include "game-option/disturbance-options.h"
 #include "inventory/inventory-describer.h"
index e4dbc64..6e68ecb 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "pet/pet-fall-off.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor.h"
 #include "grid/feature.h"
index a164244..252a907 100644 (file)
@@ -1,4 +1,5 @@
 #include "pet/pet-util.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "monster/monster-info.h"
 #include "world/world.h"
index 427690a..028f809 100644 (file)
@@ -11,6 +11,7 @@
 #include "combat/attack-criticality.h"
 #include "combat/martial-arts-table.h"
 #include "combat/slaying.h"
+#include "core/player-update-types.h"
 #include "floor/floor.h"
 #include "game-option/cheat-types.h"
 #include "grid/feature.h"
index 951b314..308709e 100644 (file)
@@ -14,6 +14,7 @@
 */
 
 #include "player/avatar.h"
+#include "core/player-update-types.h"
 #include "realm/realm-names-table.h"
 #include "player/player-race-types.h"
 #include "player/player-class.h"
index 22720e9..7f3c14c 100644 (file)
@@ -1,4 +1,5 @@
 #include "player/digestion-processor.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "core/stuff-handler.h"
 #include "floor/wild.h"
index 1849386..92a9574 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "player/eldritch-horror.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor.h"
 #include "locale/vowel-checker.h"
index 187cbbd..d5cbdf9 100644 (file)
@@ -3,6 +3,7 @@
 #include "cmd-building/cmd-building.h"
 #include "cmd-io/cmd-process-screen.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/quest.h"
 #include "floor/floor.h"
index 9d4022d..5f5f85d 100644 (file)
 #include "cmd-action/cmd-attack.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/special-internal-keys.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
index 0d806c2..0c52d38 100644 (file)
@@ -12,6 +12,7 @@
 #include "cmd-item/cmd-magiceat.h"
 #include "combat/attack-power-table.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
index 90055c7..b5b0a77 100644 (file)
@@ -361,24 +361,6 @@ typedef struct player_type
        POSITION cur_lite;              /* Radius of lite (if any) */
 
        BIT_FLAGS update;       /* Pending Updates */
-#define PU_BONUS        0x00000001L     /*!< ステータス更新フラグ: 能力値修正 / Calculate bonuses */
-#define PU_TORCH        0x00000002L     /*!< ステータス更新フラグ: 光源半径 / Calculate torch radius */
-#define PU_HP           0x00000010L     /*!< ステータス更新フラグ: HP / Calculate chp and mhp */
-#define PU_MANA         0x00000020L     /*!< ステータス更新フラグ: MP / Calculate csp and msp */
-#define PU_SPELLS       0x00000040L     /*!< ステータス更新フラグ: 魔法学習数 / Calculate spells */
-#define PU_COMBINE      0x00000100L     /*!< アイテム処理フラグ: アイテムの結合を要する / Combine the pack */
-#define PU_REORDER      0x00000200L     /*!< アイテム処理フラグ: アイテムの並び替えを要する / Reorder the pack */
-#define PU_AUTODESTROY  0x00000400L     /*!< アイテム処理フラグ: アイテムの自動破壊を要する / Auto-destroy marked item */
-#define PU_UN_VIEW      0x00010000L     /*!< ステータス更新フラグ: 地形の視界外化 / Forget view */
-#define PU_UN_LITE      0x00020000L     /*!< ステータス更新フラグ: 明暗範囲の視界外化 / Forget lite */
-#define PU_VIEW         0x00100000L     /*!< ステータス更新フラグ: 視界 / Update view */
-#define PU_LITE         0x00200000L     /*!< ステータス更新フラグ: 明暗範囲 / Update lite */
-#define PU_MON_LITE     0x00400000L     /*!< ステータス更新フラグ: モンスターの光源範囲 / Monster illumination */
-#define PU_DELAY_VIS    0x00800000L     /*!< ステータス更新フラグ: 視界の追加更新 / Mega-Hack -- Delayed visual update */
-#define PU_MONSTERS     0x01000000L     /*!< ステータス更新フラグ: モンスターのステータス / Update monsters */
-#define PU_DISTANCE     0x02000000L     /*!< ステータス更新フラグ: プレイヤーとモンスターの距離 / Update distances */
-#define PU_FLOW         0x10000000L     /*!< ステータス更新フラグ: プレイヤーから各マスへの到達距離 / Update flow */
-
        BIT_FLAGS redraw;       /* Normal Redraws */
 #define PR_MISC         0x00000001L     /*!< 再描画フラグ: 種族と職業 / Display Race/Class */
 #define PR_TITLE        0x00000002L     /*!< 再描画フラグ: 称号 / Display Title */
index 6c1cec2..f35c237 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "process-death.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-town.h"
 #include "floor/floor.h"
index e2a9733..6e0387d 100644 (file)
@@ -18,6 +18,7 @@
 #include "cmd-action/cmd-spell.h"
 #include "cmd-item/cmd-quaff.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "effect/effect-characteristics.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
index 4370ae5..1aa483b 100644 (file)
@@ -5,6 +5,7 @@
 #include "cmd/cmd-basic.h"
 #include "combat/combat-options-type.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
 #include "effect/effect-characteristics.h"
index 9a4778e..6b96bbb 100644 (file)
@@ -1,5 +1,6 @@
 #include "cmd-action/cmd-spell.h"
 #include "core/hp-mp-processor.h"
+#include "core/player-update-types.h"
 #include "effect/effect-characteristics.h"
 #include "io/targeting.h"
 #include "player/attack-defense-types.h"
index 98376e5..174d135 100644 (file)
@@ -14,6 +14,7 @@
 #include "savedata/save.h"
 #include "birth/quick-start.h"
 #include "cmd-building/cmd-building.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
 #include "floor/floor-events.h"
index 26fd203..918f44a 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-kind/earthquake.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
 #include "floor/floor-events.h"
index afff9dd..45052df 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-kind/spells-curse-removal.h"
+#include "core/player-update-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/item-feeling.h"
 #include "object-enchant/special-object-flags.h"
index e458d6e..e91ddaa 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-kind/spells-equipment.h"
+#include "core/player-update-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "mind/racial-android.h"
 #include "object-hook/hook-enchant.h"
index 1dfe61c..cb0e849 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-kind/spells-fetcher.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor.h"
 #include "grid/feature.h"
index 8b05152..c889aca 100644 (file)
@@ -7,6 +7,7 @@
 #include "spell-kind/spells-floor.h"
 #include "cmd-io/cmd-dump.h"
 #include "cmd/cmd-basic.h"
+#include "core/player-update-types.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"
 #include "effect/effect-characteristics.h"
index 73be3f1..439f7e3 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-kind/spells-neighbor.h"
+#include "core/player-update-types.h"
 #include "effect/effect-characteristics.h"
 #include "floor/floor.h"
 #include "grid/feature.h"
index 5e544bb..09c3d5e 100644 (file)
@@ -1,5 +1,6 @@
 #include "spell-kind/spells-perception.h"
 #include "autopick/autopick.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-object.h"
 #include "game-option/auto-destruction-options.h"
index 9d68de7..4e76936 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-kind/spells-sight.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "floor/floor.h"
index 729eca1..4030056 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "spell-kind/spells-teleport.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "effect/effect-characteristics.h"
 #include "grid/grid.h"
index 2e0ede1..87e2ac1 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-realm/spells-chaos.h"
+#include "core/player-update-types.h"
 #include "dungeon/quest.h"
 #include "floor/floor.h"
 #include "grid/feature.h"
index 5008da5..118bd76 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-realm/spells-craft.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "inventory/inventory-slot-types.h"
index d98c4cb..0b116f8 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include "spell-realm/spells-crusade.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "floor/floor.h"
index c4e1afa..8483dbb 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-realm/spells-demon.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "player/player-move.h"
index b785ccb..af6958c 100644 (file)
@@ -1,5 +1,6 @@
 #include "spell-realm/spells-hex.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "floor/floor.h"
 #include "monster-race/monster-race.h"
 #include "player/attack-defense-types.h"
index 741e8bb..c0b2b74 100644 (file)
@@ -1,4 +1,5 @@
 #include "spell-realm/spells-song.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "floor/floor.h"
 #include "game-option/disturbance-options.h"
index b8e0793..669da21 100644 (file)
@@ -9,6 +9,7 @@
 #include "autopick/autopick.h"
 #include "cmd/cmd-basic.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "floor/floor-object.h"
 #include "floor/floor.h"
 #include "game-option/disturbance-options.h"
index 444c5ff..aa50c9f 100644 (file)
@@ -8,6 +8,7 @@
 #include "cmd-action/cmd-spell.h"
 #include "cmd-item/cmd-magiceat.h"
 #include "core/hp-mp-processor.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "floor/floor-object.h"
index 99b0efb..9dcdb15 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include "status/action-setter.h"
+#include "core/player-update-types.h"
 #include "player/attack-defense-types.h"
 #include "player/special-defense-types.h"
 #include "spell-realm/spells-hex.h"
index 299cc50..3f0c0c4 100644 (file)
@@ -1,4 +1,5 @@
 #include "status/bad-status-setter.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "mind/mind-sniper.h"
index cd8f065..313bc91 100644 (file)
@@ -1,4 +1,5 @@
 #include "status/base-status.h"
+#include "core/player-update-types.h"
 #include "game-option/birth-options.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/item-feeling.h"
index 5427472..509200f 100644 (file)
@@ -1,4 +1,5 @@
 #include "status/body-improvement.h"
+#include "core/player-update-types.h"
 #include "core/speed-table.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
index f439e0d..c78eabc 100644 (file)
@@ -1,4 +1,5 @@
 #include "status/buff-setter.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "player/avatar.h"
index bece2d0..ab45795 100644 (file)
@@ -1,4 +1,5 @@
 #include "status/form-changer.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "player/avatar.h"
index 8d9d67f..6cd5f50 100644 (file)
@@ -3,6 +3,7 @@
 #include "birth/birth-body-spec.h"
 #include "birth/birth-stat.h"
 #include "core/hp-mp-processor.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "grid/grid.h"
 #include "mutation/mutation.h"
index ed671c2..96c3937 100644 (file)
@@ -1,4 +1,5 @@
 #include "status/sight-setter.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "player/player-move.h"
index 647edd6..1352003 100644 (file)
@@ -1,4 +1,5 @@
 #include "status/temporary-resistance.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
 #include "player/player-move.h"
index 4927359..a6eac25 100644 (file)
@@ -30,6 +30,7 @@
 #include "cmd-visual/cmd-draw.h"
 #include "cmd-visual/cmd-visuals.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "mind/mind-sniper.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-events.h"
index cb7755c..b0447a7 100644 (file)
@@ -16,6 +16,7 @@
 #include "cmd-io/cmd-save.h"
 #include "cmd-visual/cmd-draw.h"
 #include "core/asking-player.h"
+#include "core/player-update-types.h"
 #include "core/stuff-handler.h"
 #include "dungeon/dungeon.h"
 #include "dungeon/quest.h"