OSDN Git Service

Merge pull request #3569 from sikabane-works/release/3.0.0.88-alpha 3.0.0.88-alpha
authorDeskull <61610939+sikabane-works@users.noreply.github.com>
Sun, 23 Jul 2023 13:47:54 +0000 (22:47 +0900)
committerGitHub <noreply@github.com>
Sun, 23 Jul 2023 13:47:54 +0000 (22:47 +0900)
Release/3.0.0.88 alpha

1832 files changed:
.editorconfig
.github/scripts/check-bom.sh
.github/workflows/build-test-with-msvc.yml
.github/workflows/create-release.yml
.github/workflows/publish-spoiler-page.yml
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
THIRD-PARTY-NOTICES.txt
doxygen/Hengband.doxyfile
hengband.spec
lib/edit/MonsterRaceDefinitions.txt
lib/edit/quests/034_DumpWitness.txt
src/Makefile.am
src/action/action-limited.cpp
src/action/action-limited.h
src/action/activation-execution.cpp
src/action/activation-execution.h
src/action/movement-execution.cpp
src/action/movement-execution.h
src/action/mutation-execution.cpp
src/action/mutation-execution.h
src/action/open-close-execution.cpp
src/action/open-close-execution.h
src/action/open-util.cpp
src/action/open-util.h
src/action/racial-execution.cpp
src/action/racial-execution.h
src/action/run-execution.cpp
src/action/run-execution.h
src/action/travel-execution.cpp
src/action/travel-execution.h
src/action/tunnel-execution.cpp
src/action/tunnel-execution.h
src/action/weapon-shield.cpp
src/action/weapon-shield.h
src/artifact/artifact-info.cpp
src/artifact/artifact-info.h
src/artifact/fixed-art-generator.cpp
src/artifact/fixed-art-generator.h
src/artifact/fixed-art-types.h
src/artifact/random-art-activation.cpp
src/artifact/random-art-activation.h
src/artifact/random-art-bias-types.h
src/artifact/random-art-characteristics.cpp
src/artifact/random-art-characteristics.h
src/artifact/random-art-effects.h
src/artifact/random-art-generator.cpp
src/artifact/random-art-generator.h
src/artifact/random-art-misc.cpp
src/artifact/random-art-misc.h
src/artifact/random-art-pval-investor.cpp
src/artifact/random-art-pval-investor.h
src/artifact/random-art-resistance.cpp
src/artifact/random-art-resistance.h
src/artifact/random-art-slay.cpp
src/artifact/random-art-slay.h
src/autopick/autopick-command-menu.cpp
src/autopick/autopick-command-menu.h
src/autopick/autopick-commands-table.h
src/autopick/autopick-describer.cpp
src/autopick/autopick-describer.h
src/autopick/autopick-destroyer.cpp
src/autopick/autopick-destroyer.h
src/autopick/autopick-dirty-flags.h
src/autopick/autopick-drawer.cpp
src/autopick/autopick-drawer.h
src/autopick/autopick-editor-command.cpp
src/autopick/autopick-editor-command.h
src/autopick/autopick-editor-util.cpp
src/autopick/autopick-editor-util.h
src/autopick/autopick-entry.cpp
src/autopick/autopick-entry.h
src/autopick/autopick-finder.cpp
src/autopick/autopick-finder.h
src/autopick/autopick-flags-table.h
src/autopick/autopick-initializer.cpp
src/autopick/autopick-initializer.h
src/autopick/autopick-inserter-killer.cpp
src/autopick/autopick-inserter-killer.h
src/autopick/autopick-key-flag-process.h
src/autopick/autopick-keys-table.h
src/autopick/autopick-matcher.cpp
src/autopick/autopick-matcher.h
src/autopick/autopick-menu-data-table.cpp
src/autopick/autopick-menu-data-table.h
src/autopick/autopick-methods-table.h
src/autopick/autopick-pref-processor.cpp
src/autopick/autopick-pref-processor.h
src/autopick/autopick-reader-writer.cpp
src/autopick/autopick-reader-writer.h
src/autopick/autopick-registry.cpp
src/autopick/autopick-registry.h
src/autopick/autopick-util.cpp
src/autopick/autopick-util.h
src/autopick/autopick.cpp
src/autopick/autopick.h
src/avatar/avatar-changer.cpp
src/avatar/avatar-changer.h
src/avatar/avatar.cpp
src/avatar/avatar.h
src/birth/auto-roller.cpp
src/birth/auto-roller.h
src/birth/birth-body-spec.cpp
src/birth/birth-body-spec.h
src/birth/birth-explanations-table.cpp
src/birth/birth-explanations-table.h
src/birth/birth-select-class.cpp
src/birth/birth-select-class.h
src/birth/birth-select-personality.cpp
src/birth/birth-select-personality.h
src/birth/birth-select-race.cpp
src/birth/birth-select-race.h
src/birth/birth-select-realm.cpp
src/birth/birth-select-realm.h
src/birth/birth-stat.cpp
src/birth/birth-stat.h
src/birth/birth-util.cpp
src/birth/birth-util.h
src/birth/birth-wizard.cpp
src/birth/birth-wizard.h
src/birth/character-builder.cpp
src/birth/character-builder.h
src/birth/game-play-initializer.cpp
src/birth/game-play-initializer.h
src/birth/history-editor.cpp
src/birth/history-editor.h
src/birth/history-generator.cpp
src/birth/history-generator.h
src/birth/history.cpp
src/birth/history.h
src/birth/initial-equipments-table.cpp
src/birth/initial-equipments-table.h
src/birth/inventory-initializer.cpp
src/birth/inventory-initializer.h
src/birth/quick-start.cpp
src/birth/quick-start.h
src/blue-magic/blue-magic-ball-bolt.cpp
src/blue-magic/blue-magic-ball-bolt.h
src/blue-magic/blue-magic-breath.cpp
src/blue-magic/blue-magic-breath.h
src/blue-magic/blue-magic-caster.cpp
src/blue-magic/blue-magic-caster.h
src/blue-magic/blue-magic-checker.cpp
src/blue-magic/blue-magic-checker.h
src/blue-magic/blue-magic-spirit-curse.cpp
src/blue-magic/blue-magic-spirit-curse.h
src/blue-magic/blue-magic-status.cpp
src/blue-magic/blue-magic-status.h
src/blue-magic/blue-magic-summon.cpp
src/blue-magic/blue-magic-summon.h
src/blue-magic/blue-magic-util.cpp
src/blue-magic/blue-magic-util.h
src/blue-magic/learnt-info.cpp
src/blue-magic/learnt-info.h
src/blue-magic/learnt-power-getter.cpp
src/blue-magic/learnt-power-getter.h
src/cmd-action/cmd-attack.cpp
src/cmd-action/cmd-attack.h
src/cmd-action/cmd-hissatsu.cpp
src/cmd-action/cmd-hissatsu.h
src/cmd-action/cmd-mane.cpp
src/cmd-action/cmd-mane.h
src/cmd-action/cmd-mind.cpp
src/cmd-action/cmd-mind.h
src/cmd-action/cmd-move.cpp
src/cmd-action/cmd-move.h
src/cmd-action/cmd-open-close.cpp
src/cmd-action/cmd-open-close.h
src/cmd-action/cmd-others.cpp
src/cmd-action/cmd-others.h
src/cmd-action/cmd-pet.cpp
src/cmd-action/cmd-pet.h
src/cmd-action/cmd-racial.cpp
src/cmd-action/cmd-racial.h
src/cmd-action/cmd-shoot.cpp
src/cmd-action/cmd-shoot.h
src/cmd-action/cmd-spell.cpp
src/cmd-action/cmd-spell.h
src/cmd-action/cmd-travel.cpp
src/cmd-action/cmd-travel.h
src/cmd-action/cmd-tunnel.cpp
src/cmd-action/cmd-tunnel.h
src/cmd-building/cmd-building.cpp
src/cmd-building/cmd-building.h
src/cmd-building/cmd-inn.cpp
src/cmd-building/cmd-inn.h
src/cmd-io/cmd-autopick.cpp
src/cmd-io/cmd-autopick.h
src/cmd-io/cmd-diary.cpp
src/cmd-io/cmd-diary.h
src/cmd-io/cmd-dump.cpp
src/cmd-io/cmd-dump.h
src/cmd-io/cmd-floor.cpp
src/cmd-io/cmd-floor.h
src/cmd-io/cmd-gameoption.cpp
src/cmd-io/cmd-gameoption.h
src/cmd-io/cmd-help.cpp
src/cmd-io/cmd-help.h
src/cmd-io/cmd-knowledge.cpp
src/cmd-io/cmd-knowledge.h
src/cmd-io/cmd-lore.cpp
src/cmd-io/cmd-lore.h
src/cmd-io/cmd-macro.cpp
src/cmd-io/cmd-macro.h
src/cmd-io/cmd-menu-content-table.cpp
src/cmd-io/cmd-menu-content-table.h
src/cmd-io/cmd-process-screen.cpp
src/cmd-io/cmd-process-screen.h
src/cmd-io/cmd-save.cpp
src/cmd-io/cmd-save.h
src/cmd-io/diary-subtitle-table.cpp
src/cmd-io/diary-subtitle-table.h
src/cmd-io/feeling-table.cpp
src/cmd-io/feeling-table.h
src/cmd-io/macro-util.cpp
src/cmd-io/macro-util.h
src/cmd-item/cmd-destroy.cpp
src/cmd-item/cmd-destroy.h
src/cmd-item/cmd-eat.cpp
src/cmd-item/cmd-eat.h
src/cmd-item/cmd-equipment.cpp
src/cmd-item/cmd-equipment.h
src/cmd-item/cmd-item.cpp
src/cmd-item/cmd-item.h
src/cmd-item/cmd-magiceat.cpp
src/cmd-item/cmd-magiceat.h
src/cmd-item/cmd-quaff.cpp
src/cmd-item/cmd-quaff.h
src/cmd-item/cmd-read.cpp
src/cmd-item/cmd-read.h
src/cmd-item/cmd-refill.cpp
src/cmd-item/cmd-refill.h
src/cmd-item/cmd-throw.cpp
src/cmd-item/cmd-throw.h
src/cmd-item/cmd-usestaff.cpp
src/cmd-item/cmd-usestaff.h
src/cmd-item/cmd-zaprod.cpp
src/cmd-item/cmd-zaprod.h
src/cmd-item/cmd-zapwand.cpp
src/cmd-item/cmd-zapwand.h
src/cmd-visual/cmd-draw.cpp
src/cmd-visual/cmd-draw.h
src/cmd-visual/cmd-map.cpp
src/cmd-visual/cmd-map.h
src/cmd-visual/cmd-visuals.cpp
src/cmd-visual/cmd-visuals.h
src/combat/attack-accuracy.cpp
src/combat/attack-accuracy.h
src/combat/attack-criticality.cpp
src/combat/attack-criticality.h
src/combat/attack-power-table.cpp
src/combat/attack-power-table.h
src/combat/aura-counterattack.cpp
src/combat/aura-counterattack.h
src/combat/combat-options-type.h
src/combat/hallucination-attacks-table.cpp
src/combat/hallucination-attacks-table.h
src/combat/martial-arts-table.cpp
src/combat/martial-arts-table.h
src/combat/shoot.cpp
src/combat/shoot.h
src/combat/slaying.cpp
src/combat/slaying.h
src/core/asking-player.cpp
src/core/asking-player.h
src/core/disturbance.cpp
src/core/disturbance.h
src/core/game-closer.cpp
src/core/game-closer.h
src/core/game-play.cpp
src/core/game-play.h
src/core/magic-effects-timeout-reducer.cpp
src/core/magic-effects-timeout-reducer.h
src/core/object-compressor.cpp
src/core/object-compressor.h
src/core/player-processor.cpp
src/core/player-processor.h
src/core/score-util.cpp
src/core/score-util.h
src/core/scores.cpp
src/core/scores.h
src/core/show-file.cpp
src/core/show-file.h
src/core/special-internal-keys.h
src/core/speed-table.cpp
src/core/speed-table.h
src/core/stuff-handler.cpp
src/core/stuff-handler.h
src/core/turn-compensator.cpp
src/core/turn-compensator.h
src/core/visuals-reseter.cpp
src/core/visuals-reseter.h
src/core/window-redrawer.cpp
src/core/window-redrawer.h
src/dungeon/dungeon-flag-mask.h
src/dungeon/dungeon-flag-types.h
src/dungeon/dungeon-processor.cpp
src/dungeon/dungeon-processor.h
src/dungeon/quest-completion-checker.cpp
src/dungeon/quest-completion-checker.h
src/dungeon/quest-monster-placer.cpp
src/dungeon/quest-monster-placer.h
src/dungeon/quest.cpp
src/dungeon/quest.h
src/effect/attribute-types.h
src/effect/effect-characteristics.h
src/effect/effect-feature.cpp
src/effect/effect-feature.h
src/effect/effect-item.cpp
src/effect/effect-item.h
src/effect/effect-monster-charm.cpp
src/effect/effect-monster-charm.h
src/effect/effect-monster-curse.cpp
src/effect/effect-monster-curse.h
src/effect/effect-monster-evil.cpp
src/effect/effect-monster-evil.h
src/effect/effect-monster-lite-dark.cpp
src/effect/effect-monster-lite-dark.h
src/effect/effect-monster-oldies.cpp
src/effect/effect-monster-oldies.h
src/effect/effect-monster-psi.cpp
src/effect/effect-monster-psi.h
src/effect/effect-monster-resist-hurt.cpp
src/effect/effect-monster-resist-hurt.h
src/effect/effect-monster-spirit.cpp
src/effect/effect-monster-spirit.h
src/effect/effect-monster-switcher.cpp
src/effect/effect-monster-switcher.h
src/effect/effect-monster-util.cpp
src/effect/effect-monster-util.h
src/effect/effect-monster.cpp
src/effect/effect-monster.h
src/effect/effect-player-curse.cpp
src/effect/effect-player-curse.h
src/effect/effect-player-oldies.cpp
src/effect/effect-player-oldies.h
src/effect/effect-player-resist-hurt.cpp
src/effect/effect-player-resist-hurt.h
src/effect/effect-player-spirit.cpp
src/effect/effect-player-spirit.h
src/effect/effect-player-switcher.cpp
src/effect/effect-player-switcher.h
src/effect/effect-player.cpp
src/effect/effect-player.h
src/effect/effect-processor.cpp
src/effect/effect-processor.h
src/effect/spells-effect-util.cpp
src/effect/spells-effect-util.h
src/external-lib/include-json.h
src/external-lib/json.hpp
src/flavor/flag-inscriptions-table.cpp
src/flavor/flag-inscriptions-table.h
src/flavor/flavor-describer.cpp
src/flavor/flavor-describer.h
src/flavor/flavor-util.cpp
src/flavor/flavor-util.h
src/flavor/named-item-describer.cpp
src/flavor/named-item-describer.h
src/flavor/object-flavor-types.h
src/flavor/object-flavor.cpp
src/flavor/object-flavor.h
src/flavor/tval-description-switcher.cpp
src/flavor/tval-description-switcher.h
src/floor/cave-generator.cpp
src/floor/cave-generator.h
src/floor/cave.cpp
src/floor/cave.h
src/floor/dungeon-tunnel-util.cpp
src/floor/dungeon-tunnel-util.h
src/floor/fixed-map-generator.cpp
src/floor/fixed-map-generator.h
src/floor/floor-allocation-types.h
src/floor/floor-base-definitions.h
src/floor/floor-changer.cpp
src/floor/floor-changer.h
src/floor/floor-events.cpp
src/floor/floor-events.h
src/floor/floor-generator-util.h
src/floor/floor-generator.cpp
src/floor/floor-generator.h
src/floor/floor-leaver.cpp
src/floor/floor-leaver.h
src/floor/floor-mode-changer.cpp
src/floor/floor-mode-changer.h
src/floor/floor-object.cpp
src/floor/floor-object.h
src/floor/floor-save-util.cpp
src/floor/floor-save-util.h
src/floor/floor-save.cpp
src/floor/floor-save.h
src/floor/floor-streams.cpp
src/floor/floor-streams.h
src/floor/floor-town.cpp
src/floor/floor-town.h
src/floor/floor-util.cpp
src/floor/floor-util.h
src/floor/geometry.cpp
src/floor/geometry.h
src/floor/line-of-sight.cpp
src/floor/line-of-sight.h
src/floor/object-allocator.cpp
src/floor/object-allocator.h
src/floor/object-scanner.cpp
src/floor/object-scanner.h
src/floor/pattern-walk.cpp
src/floor/pattern-walk.h
src/floor/tunnel-generator.cpp
src/floor/tunnel-generator.h
src/floor/wild.cpp
src/floor/wild.h
src/game-option/auto-destruction-options.cpp
src/game-option/auto-destruction-options.h
src/game-option/birth-options.cpp
src/game-option/birth-options.h
src/game-option/cheat-options.cpp
src/game-option/cheat-options.h
src/game-option/cheat-types.h
src/game-option/disturbance-options.cpp
src/game-option/disturbance-options.h
src/game-option/game-play-options.cpp
src/game-option/game-play-options.h
src/game-option/input-options.cpp
src/game-option/input-options.h
src/game-option/keymap-directory-getter.cpp
src/game-option/keymap-directory-getter.h
src/game-option/map-screen-options.cpp
src/game-option/map-screen-options.h
src/game-option/option-flags.cpp
src/game-option/option-flags.h
src/game-option/option-types-table.cpp
src/game-option/option-types-table.h
src/game-option/play-record-options.cpp
src/game-option/play-record-options.h
src/game-option/runtime-arguments.cpp
src/game-option/runtime-arguments.h
src/game-option/special-options.cpp
src/game-option/special-options.h
src/game-option/text-display-options.cpp
src/game-option/text-display-options.h
src/grid/door.cpp
src/grid/door.h
src/grid/feature-action-flags.cpp
src/grid/feature-action-flags.h
src/grid/feature-flag-types.h
src/grid/feature-generator.cpp
src/grid/feature-generator.h
src/grid/feature.cpp
src/grid/feature.h
src/grid/grid.cpp
src/grid/grid.h
src/grid/lighting-colors-table.cpp
src/grid/lighting-colors-table.h
src/grid/object-placer.cpp
src/grid/object-placer.h
src/grid/stair.cpp
src/grid/stair.h
src/grid/trap.cpp
src/grid/trap.h
src/hpmp/hp-mp-processor.cpp
src/hpmp/hp-mp-processor.h
src/hpmp/hp-mp-regenerator.cpp
src/hpmp/hp-mp-regenerator.h
src/info-reader/artifact-reader.cpp
src/info-reader/artifact-reader.h
src/info-reader/baseitem-reader.cpp
src/info-reader/baseitem-reader.h
src/info-reader/baseitem-tokens-table.cpp
src/info-reader/baseitem-tokens-table.h
src/info-reader/dungeon-info-tokens-table.cpp
src/info-reader/dungeon-info-tokens-table.h
src/info-reader/dungeon-reader.cpp
src/info-reader/dungeon-reader.h
src/info-reader/ego-reader.cpp
src/info-reader/ego-reader.h
src/info-reader/feature-info-tokens-table.cpp
src/info-reader/feature-info-tokens-table.h
src/info-reader/feature-reader.cpp
src/info-reader/feature-reader.h
src/info-reader/fixed-map-parser.cpp
src/info-reader/fixed-map-parser.h
src/info-reader/general-parser.cpp
src/info-reader/general-parser.h
src/info-reader/info-reader-util.cpp
src/info-reader/info-reader-util.h
src/info-reader/magic-reader.cpp
src/info-reader/magic-reader.h
src/info-reader/parse-error-types.h
src/info-reader/race-info-tokens-table.cpp
src/info-reader/race-info-tokens-table.h
src/info-reader/race-reader.cpp
src/info-reader/race-reader.h
src/info-reader/random-grid-effect-types.h
src/info-reader/skill-reader.cpp
src/info-reader/skill-reader.h
src/info-reader/vault-reader.cpp
src/info-reader/vault-reader.h
src/inventory/floor-item-getter.cpp
src/inventory/floor-item-getter.h
src/inventory/inventory-curse.cpp
src/inventory/inventory-curse.h
src/inventory/inventory-damage.cpp
src/inventory/inventory-damage.h
src/inventory/inventory-describer.cpp
src/inventory/inventory-describer.h
src/inventory/inventory-object.cpp
src/inventory/inventory-object.h
src/inventory/inventory-slot-types.h
src/inventory/inventory-util.cpp
src/inventory/inventory-util.h
src/inventory/item-getter.cpp
src/inventory/item-getter.h
src/inventory/item-selection-util.cpp
src/inventory/item-selection-util.h
src/inventory/pack-overflow.cpp
src/inventory/pack-overflow.h
src/inventory/player-inventory.cpp
src/inventory/player-inventory.h
src/inventory/recharge-processor.cpp
src/inventory/recharge-processor.h
src/io-dump/character-dump.cpp
src/io-dump/character-dump.h
src/io-dump/dump-remover.cpp
src/io-dump/dump-remover.h
src/io-dump/dump-util.cpp
src/io-dump/dump-util.h
src/io-dump/player-status-dump.cpp
src/io-dump/player-status-dump.h
src/io-dump/random-art-info-dumper.cpp
src/io-dump/random-art-info-dumper.h
src/io-dump/special-class-dump.cpp
src/io-dump/special-class-dump.h
src/io/command-repeater.cpp
src/io/command-repeater.h
src/io/cursor.cpp
src/io/cursor.h
src/io/exit-panic.cpp
src/io/exit-panic.h
src/io/files-util.cpp
src/io/files-util.h
src/io/gf-descriptions.cpp
src/io/gf-descriptions.h
src/io/input-key-acceptor.cpp
src/io/input-key-acceptor.h
src/io/input-key-processor.cpp
src/io/input-key-processor.h
src/io/input-key-requester.cpp
src/io/input-key-requester.h
src/io/interpret-pref-file.cpp
src/io/interpret-pref-file.h
src/io/mutations-dump.cpp
src/io/mutations-dump.h
src/io/pref-file-expressor.cpp
src/io/pref-file-expressor.h
src/io/read-pref-file.cpp
src/io/read-pref-file.h
src/io/record-play-movie.cpp
src/io/record-play-movie.h
src/io/report.cpp
src/io/report.h
src/io/screen-util.cpp
src/io/screen-util.h
src/io/signal-handlers.cpp
src/io/signal-handlers.h
src/io/tokenizer.cpp
src/io/tokenizer.h
src/io/uid-checker.cpp
src/io/uid-checker.h
src/io/write-diary.cpp
src/io/write-diary.h
src/item-info/flavor-initializer.cpp
src/item-info/flavor-initializer.h
src/knowledge/knowledge-autopick.cpp
src/knowledge/knowledge-autopick.h
src/knowledge/knowledge-experiences.cpp
src/knowledge/knowledge-experiences.h
src/knowledge/knowledge-features.cpp
src/knowledge/knowledge-features.h
src/knowledge/knowledge-inventory.cpp
src/knowledge/knowledge-inventory.h
src/knowledge/knowledge-items.cpp
src/knowledge/knowledge-items.h
src/knowledge/knowledge-monsters.cpp
src/knowledge/knowledge-monsters.h
src/knowledge/knowledge-mutations.cpp
src/knowledge/knowledge-mutations.h
src/knowledge/knowledge-quests.cpp
src/knowledge/knowledge-quests.h
src/knowledge/knowledge-self.cpp
src/knowledge/knowledge-self.h
src/knowledge/knowledge-uniques.cpp
src/knowledge/knowledge-uniques.h
src/knowledge/lighting-level-table.cpp
src/knowledge/lighting-level-table.h
src/knowledge/monster-group-table.cpp
src/knowledge/monster-group-table.h
src/knowledge/object-group-table.cpp
src/knowledge/object-group-table.h
src/load/angband-version-comparer.cpp
src/load/angband-version-comparer.h
src/load/birth-loader.cpp
src/load/birth-loader.h
src/load/dummy-loader.cpp
src/load/dummy-loader.h
src/load/dungeon-loader.cpp
src/load/dungeon-loader.h
src/load/extra-loader.cpp
src/load/extra-loader.h
src/load/floor-loader.cpp
src/load/floor-loader.h
src/load/info-loader.cpp
src/load/info-loader.h
src/load/inventory-loader.cpp
src/load/inventory-loader.h
src/load/item/item-loader-base.cpp
src/load/item/item-loader-base.h
src/load/item/item-loader-factory.cpp
src/load/item/item-loader-factory.h
src/load/item/item-loader-version-types.h
src/load/load-util.cpp
src/load/load-util.h
src/load/load-zangband.cpp
src/load/load-zangband.h
src/load/load.cpp
src/load/load.h
src/load/lore-loader.cpp
src/load/lore-loader.h
src/load/monster/monster-loader-base.h
src/load/monster/monster-loader-factory.cpp
src/load/monster/monster-loader-factory.h
src/load/monster/monster-loader-version-types.h
src/load/old-feature-types.h
src/load/old/item-flag-types-savefile50.h
src/load/old/item-loader-savefile50.cpp
src/load/old/item-loader-savefile50.h
src/load/old/load-v1-5-0.cpp
src/load/old/load-v1-5-0.h
src/load/old/load-v1-7-0.cpp
src/load/old/load-v1-7-0.h
src/load/old/monster-flag-types-savefile50.h
src/load/old/monster-loader-savefile50.cpp
src/load/old/monster-loader-savefile50.h
src/load/option-loader.cpp
src/load/option-loader.h
src/load/player-attack-loader.cpp
src/load/player-attack-loader.h
src/load/player-class-specific-data-loader.cpp
src/load/player-class-specific-data-loader.h
src/load/player-info-loader.cpp
src/load/player-info-loader.h
src/load/quest-loader.cpp
src/load/quest-loader.h
src/load/savedata-old-flag-types.h
src/load/store-loader.cpp
src/load/store-loader.h
src/load/world-loader.cpp
src/load/world-loader.h
src/locale/english.cpp
src/locale/english.h
src/locale/japanese.cpp
src/locale/japanese.h
src/locale/language-switcher.h
src/locale/utf-8.cpp
src/locale/utf-8.h
src/lore/combat-types-setter.cpp
src/lore/combat-types-setter.h
src/lore/lore-calculator.cpp
src/lore/lore-calculator.h
src/lore/lore-store.cpp
src/lore/lore-store.h
src/lore/lore-util.cpp
src/lore/lore-util.h
src/lore/magic-types-setter.cpp
src/lore/magic-types-setter.h
src/lore/monster-lore.cpp
src/lore/monster-lore.h
src/maid-x11.cpp
src/main-cap.cpp
src/main-gcu.cpp
src/main-unix/unix-user-ids.cpp
src/main-unix/unix-user-ids.h
src/main-unix/x11-gamma-builder.cpp
src/main-unix/x11-gamma-builder.h
src/main-unix/x11-type-string.cpp
src/main-unix/x11-type-string.h
src/main-win.cpp
src/main-win/commandline-win.cpp
src/main-win/commandline-win.h
src/main-win/graphics-win.cpp
src/main-win/graphics-win.h
src/main-win/main-win-bg.cpp
src/main-win/main-win-bg.h
src/main-win/main-win-cfg-reader.cpp
src/main-win/main-win-cfg-reader.h
src/main-win/main-win-define.h
src/main-win/main-win-exception.cpp
src/main-win/main-win-exception.h
src/main-win/main-win-file-utils.cpp
src/main-win/main-win-file-utils.h
src/main-win/main-win-mci.cpp
src/main-win/main-win-mci.h
src/main-win/main-win-menuitem.h
src/main-win/main-win-mmsystem.h
src/main-win/main-win-music.cpp
src/main-win/main-win-music.h
src/main-win/main-win-sound.cpp
src/main-win/main-win-sound.h
src/main-win/main-win-term.cpp
src/main-win/main-win-term.h
src/main-win/main-win-tokenizer.cpp
src/main-win/main-win-tokenizer.h
src/main-win/main-win-utils.cpp
src/main-win/main-win-utils.h
src/main-win/wav-reader.cpp
src/main-win/wav-reader.h
src/main-x11.cpp
src/main.cpp
src/main/angband-headers.cpp
src/main/angband-headers.h
src/main/angband-initializer.cpp
src/main/angband-initializer.h
src/main/game-data-initializer.cpp
src/main/game-data-initializer.h
src/main/info-initializer.cpp
src/main/info-initializer.h
src/main/init-error-messages-table.cpp
src/main/init-error-messages-table.h
src/main/music-definitions-table.cpp
src/main/music-definitions-table.h
src/main/scene-table-floor.cpp
src/main/scene-table-floor.h
src/main/scene-table-monster.cpp
src/main/scene-table-monster.h
src/main/scene-table.cpp
src/main/scene-table.h
src/main/sound-definitions-table.cpp
src/main/sound-definitions-table.h
src/main/sound-of-music.cpp
src/main/sound-of-music.h
src/market/arena-info-table.cpp
src/market/arena-info-table.h
src/market/arena.cpp
src/market/arena.h
src/market/bounty-prize-table.cpp
src/market/bounty-prize-table.h
src/market/bounty-type-definition.h
src/market/bounty.cpp
src/market/bounty.h
src/market/building-actions-table.h
src/market/building-craft-armor.cpp
src/market/building-craft-armor.h
src/market/building-craft-fix.cpp
src/market/building-craft-fix.h
src/market/building-craft-weapon.cpp
src/market/building-craft-weapon.h
src/market/building-enchanter.cpp
src/market/building-enchanter.h
src/market/building-initializer.cpp
src/market/building-initializer.h
src/market/building-monster.cpp
src/market/building-monster.h
src/market/building-quest.cpp
src/market/building-quest.h
src/market/building-recharger.cpp
src/market/building-recharger.h
src/market/building-service.cpp
src/market/building-service.h
src/market/building-util.cpp
src/market/building-util.h
src/market/play-gamble.cpp
src/market/play-gamble.h
src/market/poker.cpp
src/market/poker.h
src/melee/melee-postprocess.cpp
src/melee/melee-postprocess.h
src/melee/melee-spell-flags-checker.cpp
src/melee/melee-spell-flags-checker.h
src/melee/melee-spell-util.cpp
src/melee/melee-spell-util.h
src/melee/melee-spell.cpp
src/melee/melee-spell.h
src/melee/melee-switcher.cpp
src/melee/melee-switcher.h
src/melee/melee-util.cpp
src/melee/melee-util.h
src/melee/monster-attack-monster.cpp
src/melee/monster-attack-monster.h
src/mind/drs-types.h
src/mind/mind-archer.cpp
src/mind/mind-archer.h
src/mind/mind-berserker.cpp
src/mind/mind-berserker.h
src/mind/mind-blue-mage.cpp
src/mind/mind-blue-mage.h
src/mind/mind-cavalry.cpp
src/mind/mind-cavalry.h
src/mind/mind-chaos-warrior.cpp
src/mind/mind-chaos-warrior.h
src/mind/mind-elementalist.cpp
src/mind/mind-elementalist.h
src/mind/mind-explanations-table.cpp
src/mind/mind-explanations-table.h
src/mind/mind-force-trainer.cpp
src/mind/mind-force-trainer.h
src/mind/mind-hobbit.cpp
src/mind/mind-hobbit.h
src/mind/mind-info.cpp
src/mind/mind-info.h
src/mind/mind-mage.cpp
src/mind/mind-mage.h
src/mind/mind-magic-eater.cpp
src/mind/mind-magic-eater.h
src/mind/mind-magic-resistance.cpp
src/mind/mind-magic-resistance.h
src/mind/mind-mindcrafter.cpp
src/mind/mind-mindcrafter.h
src/mind/mind-mirror-master.cpp
src/mind/mind-mirror-master.h
src/mind/mind-monk.cpp
src/mind/mind-monk.h
src/mind/mind-ninja.cpp
src/mind/mind-ninja.h
src/mind/mind-numbers.h
src/mind/mind-power-getter.cpp
src/mind/mind-power-getter.h
src/mind/mind-priest.cpp
src/mind/mind-priest.h
src/mind/mind-samurai.cpp
src/mind/mind-samurai.h
src/mind/mind-sniper.cpp
src/mind/mind-sniper.h
src/mind/mind-types.h
src/mind/mind-warrior-mage.cpp
src/mind/mind-warrior-mage.h
src/mind/mind-warrior.cpp
src/mind/mind-warrior.h
src/mind/mind-weaponsmith.cpp
src/mind/mind-weaponsmith.h
src/mind/monk-attack.cpp
src/mind/monk-attack.h
src/mind/snipe-types.h
src/mind/stances-table.cpp
src/mind/stances-table.h
src/monster-attack/insults-moans.cpp
src/monster-attack/insults-moans.h
src/monster-attack/monster-attack-describer.cpp
src/monster-attack/monster-attack-describer.h
src/monster-attack/monster-attack-effect.h
src/monster-attack/monster-attack-lose.cpp
src/monster-attack/monster-attack-lose.h
src/monster-attack/monster-attack-player.cpp
src/monster-attack/monster-attack-player.h
src/monster-attack/monster-attack-processor.cpp
src/monster-attack/monster-attack-processor.h
src/monster-attack/monster-attack-status.cpp
src/monster-attack/monster-attack-status.h
src/monster-attack/monster-attack-switcher.cpp
src/monster-attack/monster-attack-switcher.h
src/monster-attack/monster-attack-table.cpp
src/monster-attack/monster-attack-table.h
src/monster-attack/monster-eating.cpp
src/monster-attack/monster-eating.h
src/monster-floor/monster-death-util.cpp
src/monster-floor/monster-death-util.h
src/monster-floor/monster-death.cpp
src/monster-floor/monster-death.h
src/monster-floor/monster-direction.cpp
src/monster-floor/monster-direction.h
src/monster-floor/monster-dist-offsets.cpp
src/monster-floor/monster-dist-offsets.h
src/monster-floor/monster-generator.cpp
src/monster-floor/monster-generator.h
src/monster-floor/monster-lite-util.cpp
src/monster-floor/monster-lite-util.h
src/monster-floor/monster-lite.cpp
src/monster-floor/monster-lite.h
src/monster-floor/monster-move.cpp
src/monster-floor/monster-move.h
src/monster-floor/monster-object.cpp
src/monster-floor/monster-object.h
src/monster-floor/monster-remover.cpp
src/monster-floor/monster-remover.h
src/monster-floor/monster-runaway.cpp
src/monster-floor/monster-runaway.h
src/monster-floor/monster-safety-hiding.cpp
src/monster-floor/monster-safety-hiding.h
src/monster-floor/monster-summon.cpp
src/monster-floor/monster-summon.h
src/monster-floor/monster-sweep-grid.cpp
src/monster-floor/monster-sweep-grid.h
src/monster-floor/one-monster-placer.cpp
src/monster-floor/one-monster-placer.h
src/monster-floor/place-monster-types.h
src/monster-floor/quantum-effect.cpp
src/monster-floor/quantum-effect.h
src/monster-floor/special-death-switcher.cpp
src/monster-floor/special-death-switcher.h
src/monster-race/monster-aura-types.h
src/monster-race/monster-kind-mask.cpp
src/monster-race/monster-kind-mask.h
src/monster-race/monster-race-hook.cpp
src/monster-race/monster-race-hook.h
src/monster-race/monster-race.cpp
src/monster-race/monster-race.h
src/monster-race/race-ability-flags.h
src/monster-race/race-ability-mask.cpp
src/monster-race/race-ability-mask.h
src/monster-race/race-behavior-flags.h
src/monster-race/race-brightness-flags.h
src/monster-race/race-brightness-mask.cpp
src/monster-race/race-brightness-mask.h
src/monster-race/race-drop-flags.h
src/monster-race/race-feature-flags.h
src/monster-race/race-feature-mask.cpp
src/monster-race/race-feature-mask.h
src/monster-race/race-flags-resistance.h
src/monster-race/race-flags1.h
src/monster-race/race-flags2.h
src/monster-race/race-flags3.h
src/monster-race/race-flags7.h
src/monster-race/race-flags8.h
src/monster-race/race-indice-types.h
src/monster-race/race-kind-flags.h
src/monster-race/race-population-flags.h
src/monster-race/race-resistance-mask.cpp
src/monster-race/race-resistance-mask.h
src/monster-race/race-speak-flags.h
src/monster-race/race-visual-flags.h
src/monster-race/race-wilderness-flags.h
src/monster/horror-descriptions.cpp
src/monster/horror-descriptions.h
src/monster/monster-compaction.cpp
src/monster/monster-compaction.h
src/monster/monster-damage.cpp
src/monster/monster-damage.h
src/monster/monster-describer.cpp
src/monster/monster-describer.h
src/monster/monster-description-types.h
src/monster/monster-flag-types.h
src/monster/monster-info.cpp
src/monster/monster-info.h
src/monster/monster-list.cpp
src/monster/monster-list.h
src/monster/monster-pain-describer.cpp
src/monster/monster-pain-describer.h
src/monster/monster-processor-util.cpp
src/monster/monster-processor-util.h
src/monster/monster-processor.cpp
src/monster/monster-processor.h
src/monster/monster-status-setter.cpp
src/monster/monster-status-setter.h
src/monster/monster-status.cpp
src/monster/monster-status.h
src/monster/monster-timed-effect-types.h
src/monster/monster-update.cpp
src/monster/monster-update.h
src/monster/monster-util.cpp
src/monster/monster-util.h
src/monster/smart-learn-types.h
src/mspell/assign-monster-spell.cpp
src/mspell/assign-monster-spell.h
src/mspell/element-resistance-checker.cpp
src/mspell/element-resistance-checker.h
src/mspell/high-resistance-checker.cpp
src/mspell/high-resistance-checker.h
src/mspell/improper-mspell-remover.cpp
src/mspell/improper-mspell-remover.h
src/mspell/monster-power-table.cpp
src/mspell/monster-power-table.h
src/mspell/mspell-attack-util.cpp
src/mspell/mspell-attack-util.h
src/mspell/mspell-attack.cpp
src/mspell/mspell-attack.h
src/mspell/mspell-attack/abstract-mspell.cpp
src/mspell/mspell-attack/abstract-mspell.h
src/mspell/mspell-attack/mspell-ball.cpp
src/mspell/mspell-attack/mspell-ball.h
src/mspell/mspell-attack/mspell-bolt.cpp
src/mspell/mspell-attack/mspell-bolt.h
src/mspell/mspell-attack/mspell-breath.cpp
src/mspell/mspell-attack/mspell-breath.h
src/mspell/mspell-attack/mspell-curse.cpp
src/mspell/mspell-attack/mspell-curse.h
src/mspell/mspell-attack/mspell-particularity.cpp
src/mspell/mspell-attack/mspell-particularity.h
src/mspell/mspell-checker.cpp
src/mspell/mspell-checker.h
src/mspell/mspell-damage-calculator.cpp
src/mspell/mspell-damage-calculator.h
src/mspell/mspell-data.cpp
src/mspell/mspell-data.h
src/mspell/mspell-dispel.cpp
src/mspell/mspell-dispel.h
src/mspell/mspell-floor.cpp
src/mspell/mspell-floor.h
src/mspell/mspell-judgement.cpp
src/mspell/mspell-judgement.h
src/mspell/mspell-learn-checker.cpp
src/mspell/mspell-learn-checker.h
src/mspell/mspell-lite.cpp
src/mspell/mspell-lite.h
src/mspell/mspell-result.h
src/mspell/mspell-selector.cpp
src/mspell/mspell-selector.h
src/mspell/mspell-special.cpp
src/mspell/mspell-special.h
src/mspell/mspell-status.cpp
src/mspell/mspell-status.h
src/mspell/mspell-summon.cpp
src/mspell/mspell-summon.h
src/mspell/mspell-util.cpp
src/mspell/mspell-util.h
src/mspell/smart-mspell-util.cpp
src/mspell/smart-mspell-util.h
src/mspell/specified-summon.cpp
src/mspell/specified-summon.h
src/mspell/summon-checker.cpp
src/mspell/summon-checker.h
src/mutation/gain-mutation-switcher.cpp
src/mutation/gain-mutation-switcher.h
src/mutation/lose-mutation-switcher.cpp
src/mutation/lose-mutation-switcher.h
src/mutation/mutation-calculator.cpp
src/mutation/mutation-calculator.h
src/mutation/mutation-flag-types.h
src/mutation/mutation-investor-remover.cpp
src/mutation/mutation-investor-remover.h
src/mutation/mutation-processor.cpp
src/mutation/mutation-processor.h
src/mutation/mutation-techniques.cpp
src/mutation/mutation-techniques.h
src/mutation/mutation-util.cpp
src/mutation/mutation-util.h
src/net/curl-easy-session.cpp
src/net/curl-easy-session.h
src/net/curl-slist.cpp
src/net/curl-slist.h
src/net/http-client.cpp
src/net/http-client.h
src/net/report-error.cpp
src/net/report-error.h
src/object-activation/activation-bolt-ball.cpp
src/object-activation/activation-bolt-ball.h
src/object-activation/activation-breath.cpp
src/object-activation/activation-breath.h
src/object-activation/activation-charm.cpp
src/object-activation/activation-charm.h
src/object-activation/activation-genocide.cpp
src/object-activation/activation-genocide.h
src/object-activation/activation-others.cpp
src/object-activation/activation-others.h
src/object-activation/activation-resistance.cpp
src/object-activation/activation-resistance.h
src/object-activation/activation-switcher.cpp
src/object-activation/activation-switcher.h
src/object-activation/activation-teleport.cpp
src/object-activation/activation-teleport.h
src/object-activation/activation-util.cpp
src/object-activation/activation-util.h
src/object-enchant/activation-info-table.cpp
src/object-enchant/activation-info-table.h
src/object-enchant/dragon-breaths-table.cpp
src/object-enchant/dragon-breaths-table.h
src/object-enchant/enchanter-base.h
src/object-enchant/enchanter-factory.cpp
src/object-enchant/enchanter-factory.h
src/object-enchant/item-apply-magic.h
src/object-enchant/item-feeling.h
src/object-enchant/item-magic-applier.cpp
src/object-enchant/item-magic-applier.h
src/object-enchant/object-boost.cpp
src/object-enchant/object-boost.h
src/object-enchant/object-curse.cpp
src/object-enchant/object-curse.h
src/object-enchant/object-ego.cpp
src/object-enchant/object-ego.h
src/object-enchant/old-ego-extra-values.h
src/object-enchant/others/apply-magic-amulet.cpp
src/object-enchant/others/apply-magic-amulet.h
src/object-enchant/others/apply-magic-lite.cpp
src/object-enchant/others/apply-magic-lite.h
src/object-enchant/others/apply-magic-others.cpp
src/object-enchant/others/apply-magic-others.h
src/object-enchant/others/apply-magic-ring.cpp
src/object-enchant/others/apply-magic-ring.h
src/object-enchant/protector/abstract-protector-enchanter.cpp
src/object-enchant/protector/abstract-protector-enchanter.h
src/object-enchant/protector/apply-magic-armor.cpp
src/object-enchant/protector/apply-magic-armor.h
src/object-enchant/protector/apply-magic-boots.cpp
src/object-enchant/protector/apply-magic-boots.h
src/object-enchant/protector/apply-magic-cloak.cpp
src/object-enchant/protector/apply-magic-cloak.h
src/object-enchant/protector/apply-magic-crown.cpp
src/object-enchant/protector/apply-magic-crown.h
src/object-enchant/protector/apply-magic-dragon-armor.cpp
src/object-enchant/protector/apply-magic-dragon-armor.h
src/object-enchant/protector/apply-magic-gloves.cpp
src/object-enchant/protector/apply-magic-gloves.h
src/object-enchant/protector/apply-magic-hard-armor.cpp
src/object-enchant/protector/apply-magic-hard-armor.h
src/object-enchant/protector/apply-magic-helm.cpp
src/object-enchant/protector/apply-magic-helm.h
src/object-enchant/protector/apply-magic-shield.cpp
src/object-enchant/protector/apply-magic-shield.h
src/object-enchant/protector/apply-magic-soft-armor.cpp
src/object-enchant/protector/apply-magic-soft-armor.h
src/object-enchant/special-object-flags.h
src/object-enchant/tr-flags.h
src/object-enchant/tr-types.h
src/object-enchant/trc-types.h
src/object-enchant/trg-types.h
src/object-enchant/vorpal-weapon.cpp
src/object-enchant/vorpal-weapon.h
src/object-enchant/weapon/abstract-weapon-enchanter.cpp
src/object-enchant/weapon/abstract-weapon-enchanter.h
src/object-enchant/weapon/apply-magic-arrow.cpp
src/object-enchant/weapon/apply-magic-arrow.h
src/object-enchant/weapon/apply-magic-bow.cpp
src/object-enchant/weapon/apply-magic-bow.h
src/object-enchant/weapon/apply-magic-digging.cpp
src/object-enchant/weapon/apply-magic-digging.h
src/object-enchant/weapon/apply-magic-hafted.cpp
src/object-enchant/weapon/apply-magic-hafted.h
src/object-enchant/weapon/apply-magic-polearm.cpp
src/object-enchant/weapon/apply-magic-polearm.h
src/object-enchant/weapon/apply-magic-sword.cpp
src/object-enchant/weapon/apply-magic-sword.h
src/object-enchant/weapon/melee-weapon-enchanter.cpp
src/object-enchant/weapon/melee-weapon-enchanter.h
src/object-hook/hook-armor.cpp
src/object-hook/hook-armor.h
src/object-hook/hook-expendable.cpp
src/object-hook/hook-expendable.h
src/object-hook/hook-magic.cpp
src/object-hook/hook-magic.h
src/object-hook/hook-perception.cpp
src/object-hook/hook-perception.h
src/object-hook/hook-quest.cpp
src/object-hook/hook-quest.h
src/object-hook/hook-weapon.cpp
src/object-hook/hook-weapon.h
src/object-use/item-use-checker.cpp
src/object-use/item-use-checker.h
src/object-use/quaff/quaff-effects.cpp
src/object-use/quaff/quaff-effects.h
src/object-use/quaff/quaff-execution.cpp
src/object-use/quaff/quaff-execution.h
src/object-use/read/gbh-shirt-read-executor.cpp
src/object-use/read/gbh-shirt-read-executor.h
src/object-use/read/parchment-read-executor.cpp
src/object-use/read/parchment-read-executor.h
src/object-use/read/read-execution.cpp
src/object-use/read/read-execution.h
src/object-use/read/read-executor-base.h
src/object-use/read/read-executor-factory.cpp
src/object-use/read/read-executor-factory.h
src/object-use/read/ring-power-read-executor.cpp
src/object-use/read/ring-power-read-executor.h
src/object-use/read/scroll-read-executor.cpp
src/object-use/read/scroll-read-executor.h
src/object-use/throw-execution.cpp
src/object-use/throw-execution.h
src/object-use/use-execution.cpp
src/object-use/use-execution.h
src/object-use/zaprod-execution.cpp
src/object-use/zaprod-execution.h
src/object-use/zapwand-execution.cpp
src/object-use/zapwand-execution.h
src/object/item-tester-hooker.cpp
src/object/item-tester-hooker.h
src/object/item-use-flags.h
src/object/lite-processor.cpp
src/object/lite-processor.h
src/object/object-broken.cpp
src/object/object-broken.h
src/object/object-flags.cpp
src/object/object-flags.h
src/object/object-index-list.cpp
src/object/object-index-list.h
src/object/object-info.cpp
src/object/object-info.h
src/object/object-kind-hook.cpp
src/object/object-kind-hook.h
src/object/object-mark-types.h
src/object/object-stack.cpp
src/object/object-stack.h
src/object/object-value-calc.cpp
src/object/object-value-calc.h
src/object/object-value.cpp
src/object/object-value.h
src/object/tval-types.h
src/object/warning.cpp
src/object/warning.h
src/perception/identification.cpp
src/perception/identification.h
src/perception/object-perception.cpp
src/perception/object-perception.h
src/perception/simple-perception.cpp
src/perception/simple-perception.h
src/pet/pet-fall-off.cpp
src/pet/pet-fall-off.h
src/pet/pet-util.cpp
src/pet/pet-util.h
src/player-ability/player-ability-types.h
src/player-ability/player-charisma.cpp
src/player-ability/player-charisma.h
src/player-ability/player-constitution.cpp
src/player-ability/player-constitution.h
src/player-ability/player-dexterity.cpp
src/player-ability/player-dexterity.h
src/player-ability/player-intelligence.cpp
src/player-ability/player-intelligence.h
src/player-ability/player-strength.cpp
src/player-ability/player-strength.h
src/player-ability/player-wisdom.cpp
src/player-ability/player-wisdom.h
src/player-attack/attack-chaos-effect.cpp
src/player-attack/attack-chaos-effect.h
src/player-attack/blood-sucking-processor.cpp
src/player-attack/blood-sucking-processor.h
src/player-attack/player-attack.cpp
src/player-attack/player-attack.h
src/player-base/player-class.cpp
src/player-base/player-class.h
src/player-base/player-race.cpp
src/player-base/player-race.h
src/player-info/alignment.cpp
src/player-info/alignment.h
src/player-info/bard-data-type.h
src/player-info/base-status-info.cpp
src/player-info/base-status-info.h
src/player-info/bluemage-data-type.h
src/player-info/body-improvement-info.cpp
src/player-info/body-improvement-info.h
src/player-info/class-ability-info.cpp
src/player-info/class-ability-info.h
src/player-info/class-info.cpp
src/player-info/class-info.h
src/player-info/class-specific-data.h
src/player-info/class-types.h
src/player-info/equipment-info.cpp
src/player-info/equipment-info.h
src/player-info/force-trainer-data-type.h
src/player-info/magic-eater-data-type.cpp
src/player-info/magic-eater-data-type.h
src/player-info/mane-data-type.h
src/player-info/mimic-info-table.cpp
src/player-info/mimic-info-table.h
src/player-info/monk-data-type.h
src/player-info/mutation-info.cpp
src/player-info/mutation-info.h
src/player-info/ninja-data-type.h
src/player-info/race-ability-info.cpp
src/player-info/race-ability-info.h
src/player-info/race-info.cpp
src/player-info/race-info.h
src/player-info/race-types.h
src/player-info/resistance-info.cpp
src/player-info/resistance-info.h
src/player-info/samurai-data-type.h
src/player-info/self-info-util.cpp
src/player-info/self-info-util.h
src/player-info/self-info.cpp
src/player-info/self-info.h
src/player-info/smith-data-type.h
src/player-info/sniper-data-type.h
src/player-info/spell-hex-data-type.h
src/player-info/weapon-effect-info.cpp
src/player-info/weapon-effect-info.h
src/player-status/player-basic-statistics.cpp
src/player-status/player-basic-statistics.h
src/player-status/player-energy.cpp
src/player-status/player-energy.h
src/player-status/player-hand-types.h
src/player-status/player-infravision.cpp
src/player-status/player-infravision.h
src/player-status/player-speed.cpp
src/player-status/player-speed.h
src/player-status/player-status-base.cpp
src/player-status/player-status-base.h
src/player-status/player-stealth.cpp
src/player-status/player-stealth.h
src/player/attack-defense-types.h
src/player/digestion-processor.cpp
src/player/digestion-processor.h
src/player/eldritch-horror.cpp
src/player/eldritch-horror.h
src/player/patron.cpp
src/player/patron.h
src/player/permanent-resistances.cpp
src/player/permanent-resistances.h
src/player/player-damage.cpp
src/player/player-damage.h
src/player/player-move.cpp
src/player/player-move.h
src/player/player-personality-types.h
src/player/player-personality.cpp
src/player/player-personality.h
src/player/player-realm.cpp
src/player/player-realm.h
src/player/player-sex.cpp
src/player/player-sex.h
src/player/player-skill.cpp
src/player/player-skill.h
src/player/player-status-flags.cpp
src/player/player-status-flags.h
src/player/player-status-resist.cpp
src/player/player-status-resist.h
src/player/player-status-table.cpp
src/player/player-status-table.h
src/player/player-status.cpp
src/player/player-status.h
src/player/player-view.cpp
src/player/player-view.h
src/player/process-death.cpp
src/player/process-death.h
src/player/process-name.cpp
src/player/process-name.h
src/player/race-info-table.cpp
src/player/race-info-table.h
src/player/race-resistances.cpp
src/player/race-resistances.h
src/player/special-defense-types.h
src/player/temporary-resistances.cpp
src/player/temporary-resistances.h
src/racial/class-racial-switcher.cpp
src/racial/class-racial-switcher.h
src/racial/mutation-racial-selector.cpp
src/racial/mutation-racial-selector.h
src/racial/race-racial-command-setter.cpp
src/racial/race-racial-command-setter.h
src/racial/racial-android.cpp
src/racial/racial-android.h
src/racial/racial-balrog.cpp
src/racial/racial-balrog.h
src/racial/racial-draconian.cpp
src/racial/racial-draconian.h
src/racial/racial-kutar.cpp
src/racial/racial-kutar.h
src/racial/racial-switcher.cpp
src/racial/racial-switcher.h
src/racial/racial-util.cpp
src/racial/racial-util.h
src/racial/racial-vampire.cpp
src/racial/racial-vampire.h
src/realm/realm-arcane.cpp
src/realm/realm-arcane.h
src/realm/realm-chaos.cpp
src/realm/realm-chaos.h
src/realm/realm-craft.cpp
src/realm/realm-craft.h
src/realm/realm-crusade.cpp
src/realm/realm-crusade.h
src/realm/realm-death.cpp
src/realm/realm-death.h
src/realm/realm-demon.cpp
src/realm/realm-demon.h
src/realm/realm-hex-numbers.h
src/realm/realm-hex.cpp
src/realm/realm-hex.h
src/realm/realm-hissatsu.cpp
src/realm/realm-hissatsu.h
src/realm/realm-life.cpp
src/realm/realm-life.h
src/realm/realm-names-table.cpp
src/realm/realm-names-table.h
src/realm/realm-nature.cpp
src/realm/realm-nature.h
src/realm/realm-song-numbers.h
src/realm/realm-song.cpp
src/realm/realm-song.h
src/realm/realm-sorcery.cpp
src/realm/realm-sorcery.h
src/realm/realm-trump.cpp
src/realm/realm-trump.h
src/realm/realm-types.h
src/room/cave-filler.cpp
src/room/cave-filler.h
src/room/door-definition.cpp
src/room/door-definition.h
src/room/lake-types.h
src/room/room-generator.cpp
src/room/room-generator.h
src/room/room-info-table.cpp
src/room/room-info-table.h
src/room/room-types.h
src/room/rooms-builder.cpp
src/room/rooms-builder.h
src/room/rooms-city.cpp
src/room/rooms-city.h
src/room/rooms-fractal.cpp
src/room/rooms-fractal.h
src/room/rooms-maze-vault.cpp
src/room/rooms-maze-vault.h
src/room/rooms-normal.cpp
src/room/rooms-normal.h
src/room/rooms-pit-nest.cpp
src/room/rooms-pit-nest.h
src/room/rooms-special.cpp
src/room/rooms-special.h
src/room/rooms-trap.cpp
src/room/rooms-trap.h
src/room/rooms-vault.cpp
src/room/rooms-vault.h
src/room/space-finder.cpp
src/room/space-finder.h
src/room/treasure-deployment.cpp
src/room/treasure-deployment.h
src/room/vault-builder.cpp
src/room/vault-builder.h
src/save/floor-writer.cpp
src/save/floor-writer.h
src/save/info-writer.cpp
src/save/info-writer.h
src/save/item-writer.cpp
src/save/item-writer.h
src/save/monster-writer.cpp
src/save/monster-writer.h
src/save/player-class-specific-data-writer.cpp
src/save/player-class-specific-data-writer.h
src/save/player-writer.cpp
src/save/player-writer.h
src/save/save-util.cpp
src/save/save-util.h
src/save/save.cpp
src/save/save.h
src/smith/object-smith.cpp
src/smith/object-smith.h
src/smith/smith-info.cpp
src/smith/smith-info.h
src/smith/smith-tables.cpp
src/smith/smith-tables.h
src/smith/smith-types.h
src/specific-object/blade-turner.cpp
src/specific-object/blade-turner.h
src/specific-object/bloody-moon.cpp
src/specific-object/bloody-moon.h
src/specific-object/chest.cpp
src/specific-object/chest.h
src/specific-object/death-crimson.cpp
src/specific-object/death-crimson.h
src/specific-object/death-scythe.cpp
src/specific-object/death-scythe.h
src/specific-object/monster-ball.cpp
src/specific-object/monster-ball.h
src/specific-object/muramasa.cpp
src/specific-object/muramasa.h
src/specific-object/ring-of-power.cpp
src/specific-object/ring-of-power.h
src/specific-object/stone-of-lore.cpp
src/specific-object/stone-of-lore.h
src/specific-object/toragoroshi.cpp
src/specific-object/toragoroshi.h
src/specific-object/torch.cpp
src/specific-object/torch.h
src/spell-class/spells-mirror-master.cpp
src/spell-class/spells-mirror-master.h
src/spell-kind/blood-curse.cpp
src/spell-kind/blood-curse.h
src/spell-kind/earthquake.cpp
src/spell-kind/earthquake.h
src/spell-kind/magic-item-recharger.cpp
src/spell-kind/magic-item-recharger.h
src/spell-kind/spells-beam.cpp
src/spell-kind/spells-beam.h
src/spell-kind/spells-charm.cpp
src/spell-kind/spells-charm.h
src/spell-kind/spells-curse-removal.cpp
src/spell-kind/spells-curse-removal.h
src/spell-kind/spells-detection.cpp
src/spell-kind/spells-detection.h
src/spell-kind/spells-enchant.cpp
src/spell-kind/spells-enchant.h
src/spell-kind/spells-equipment.cpp
src/spell-kind/spells-equipment.h
src/spell-kind/spells-fetcher.cpp
src/spell-kind/spells-fetcher.h
src/spell-kind/spells-floor.cpp
src/spell-kind/spells-floor.h
src/spell-kind/spells-genocide.cpp
src/spell-kind/spells-genocide.h
src/spell-kind/spells-grid.cpp
src/spell-kind/spells-grid.h
src/spell-kind/spells-launcher.cpp
src/spell-kind/spells-launcher.h
src/spell-kind/spells-lite.cpp
src/spell-kind/spells-lite.h
src/spell-kind/spells-neighbor.cpp
src/spell-kind/spells-neighbor.h
src/spell-kind/spells-perception.cpp
src/spell-kind/spells-perception.h
src/spell-kind/spells-pet.cpp
src/spell-kind/spells-pet.h
src/spell-kind/spells-polymorph.cpp
src/spell-kind/spells-polymorph.h
src/spell-kind/spells-random.cpp
src/spell-kind/spells-random.h
src/spell-kind/spells-sight.cpp
src/spell-kind/spells-sight.h
src/spell-kind/spells-specific-bolt.cpp
src/spell-kind/spells-specific-bolt.h
src/spell-kind/spells-teleport.cpp
src/spell-kind/spells-teleport.h
src/spell-kind/spells-world.cpp
src/spell-kind/spells-world.h
src/spell-realm/spells-arcane.cpp
src/spell-realm/spells-arcane.h
src/spell-realm/spells-chaos.cpp
src/spell-realm/spells-chaos.h
src/spell-realm/spells-craft.cpp
src/spell-realm/spells-craft.h
src/spell-realm/spells-crusade.cpp
src/spell-realm/spells-crusade.h
src/spell-realm/spells-demon.cpp
src/spell-realm/spells-demon.h
src/spell-realm/spells-hex.cpp
src/spell-realm/spells-hex.h
src/spell-realm/spells-nature.cpp
src/spell-realm/spells-nature.h
src/spell-realm/spells-song.cpp
src/spell-realm/spells-song.h
src/spell-realm/spells-sorcery.cpp
src/spell-realm/spells-sorcery.h
src/spell-realm/spells-trump.cpp
src/spell-realm/spells-trump.h
src/spell/range-calc.cpp
src/spell/range-calc.h
src/spell/spell-info.cpp
src/spell/spell-info.h
src/spell/spells-describer.cpp
src/spell/spells-describer.h
src/spell/spells-diceroll.cpp
src/spell/spells-diceroll.h
src/spell/spells-execution.cpp
src/spell/spells-execution.h
src/spell/spells-object.cpp
src/spell/spells-object.h
src/spell/spells-staff-only.cpp
src/spell/spells-staff-only.h
src/spell/spells-status.cpp
src/spell/spells-status.h
src/spell/spells-summon.cpp
src/spell/spells-summon.h
src/spell/spells-util.h
src/spell/summon-types.h
src/spell/technic-info-table.cpp
src/spell/technic-info-table.h
src/status/action-setter.cpp
src/status/action-setter.h
src/status/bad-status-setter.cpp
src/status/bad-status-setter.h
src/status/base-status.cpp
src/status/base-status.h
src/status/body-improvement.cpp
src/status/body-improvement.h
src/status/buff-setter.cpp
src/status/buff-setter.h
src/status/element-resistance.cpp
src/status/element-resistance.h
src/status/experience.cpp
src/status/experience.h
src/status/shape-changer.cpp
src/status/shape-changer.h
src/status/sight-setter.cpp
src/status/sight-setter.h
src/status/temporary-resistance.cpp
src/status/temporary-resistance.h
src/stdafx.cpp
src/stdafx.h
src/store/articles-on-sale.cpp
src/store/articles-on-sale.h
src/store/black-market.cpp
src/store/black-market.h
src/store/cmd-store.cpp
src/store/cmd-store.h
src/store/gold-magnification-table.cpp
src/store/gold-magnification-table.h
src/store/home.cpp
src/store/home.h
src/store/museum.cpp
src/store/museum.h
src/store/pricing.cpp
src/store/pricing.h
src/store/purchase-order.cpp
src/store/purchase-order.h
src/store/rumor.cpp
src/store/rumor.h
src/store/say-comments.cpp
src/store/say-comments.h
src/store/sell-order.cpp
src/store/sell-order.h
src/store/service-checker.cpp
src/store/service-checker.h
src/store/store-key-processor.cpp
src/store/store-key-processor.h
src/store/store-owner-comments.cpp
src/store/store-owner-comments.h
src/store/store-owners.cpp
src/store/store-owners.h
src/store/store-util.cpp
src/store/store-util.h
src/store/store.cpp
src/store/store.h
src/sv-definition/sv-amulet-types.h
src/sv-definition/sv-armor-types.h
src/sv-definition/sv-bow-types.h
src/sv-definition/sv-digging-types.h
src/sv-definition/sv-food-types.h
src/sv-definition/sv-lite-types.h
src/sv-definition/sv-other-types.h
src/sv-definition/sv-potion-types.h
src/sv-definition/sv-protector-types.h
src/sv-definition/sv-ring-types.h
src/sv-definition/sv-rod-types.h
src/sv-definition/sv-scroll-types.h
src/sv-definition/sv-staff-types.h
src/sv-definition/sv-wand-types.h
src/sv-definition/sv-weapon-types.h
src/system/alloc-entries.cpp
src/system/alloc-entries.h
src/system/angband-exceptions.h
src/system/angband-version.cpp
src/system/angband-version.h
src/system/angband.h
src/system/artifact-type-definition.cpp
src/system/artifact-type-definition.h
src/system/baseitem-info.cpp
src/system/baseitem-info.h
src/system/building-type-definition.cpp
src/system/building-type-definition.h
src/system/dungeon-data-definition.h
src/system/dungeon-info.cpp
src/system/dungeon-info.h
src/system/floor-type-definition.cpp
src/system/floor-type-definition.h
src/system/game-option-types.h
src/system/gamevalue.h
src/system/grid-type-definition.cpp
src/system/grid-type-definition.h
src/system/h-basic.h
src/system/h-config.h
src/system/h-system.h
src/system/h-type.h
src/system/item-entity.cpp
src/system/item-entity.h
src/system/monster-entity.cpp
src/system/monster-entity.h
src/system/monster-race-info.cpp
src/system/monster-race-info.h
src/system/player-type-definition.cpp
src/system/player-type-definition.h
src/system/redrawing-flags-updater.cpp
src/system/redrawing-flags-updater.h
src/system/system-variables.cpp
src/system/system-variables.h
src/system/terrain-type-definition.cpp
src/system/terrain-type-definition.h
src/target/grid-selector.cpp
src/target/grid-selector.h
src/target/projection-path-calculator.cpp
src/target/projection-path-calculator.h
src/target/target-checker.cpp
src/target/target-checker.h
src/target/target-describer.cpp
src/target/target-describer.h
src/target/target-getter.cpp
src/target/target-getter.h
src/target/target-preparation.cpp
src/target/target-preparation.h
src/target/target-setter.cpp
src/target/target-setter.h
src/target/target-types.h
src/term/gameterm.cpp
src/term/gameterm.h
src/term/screen-processor.cpp
src/term/screen-processor.h
src/term/term-color-types.h
src/term/z-form.cpp
src/term/z-form.h
src/term/z-rand.cpp
src/term/z-rand.h
src/term/z-term.cpp
src/term/z-term.h
src/term/z-util.cpp
src/term/z-util.h
src/term/z-virt.cpp
src/term/z-virt.h
src/test/test-sha256.cpp
src/timed-effect/player-acceleration.cpp
src/timed-effect/player-acceleration.h
src/timed-effect/player-blindness.cpp
src/timed-effect/player-blindness.h
src/timed-effect/player-confusion.cpp
src/timed-effect/player-confusion.h
src/timed-effect/player-cut.cpp
src/timed-effect/player-cut.h
src/timed-effect/player-deceleration.cpp
src/timed-effect/player-deceleration.h
src/timed-effect/player-fear.cpp
src/timed-effect/player-fear.h
src/timed-effect/player-hallucination.cpp
src/timed-effect/player-hallucination.h
src/timed-effect/player-paralysis.cpp
src/timed-effect/player-paralysis.h
src/timed-effect/player-poison.cpp
src/timed-effect/player-poison.h
src/timed-effect/player-stun.cpp
src/timed-effect/player-stun.h
src/timed-effect/timed-effects.cpp
src/timed-effect/timed-effects.h
src/util/angband-files.cpp
src/util/angband-files.h
src/util/bit-flags-calculator.h
src/util/buffer-shaper.cpp
src/util/buffer-shaper.h
src/util/candidate-selector.cpp [new file with mode: 0644]
src/util/candidate-selector.h [new file with mode: 0644]
src/util/enum-converter.h
src/util/enum-range.h
src/util/finalizer.h
src/util/flag-group.h
src/util/int-char-converter.h
src/util/object-sort.cpp
src/util/object-sort.h
src/util/point-2d.h
src/util/probability-table.h
src/util/rng-xoshiro.cpp
src/util/rng-xoshiro.h
src/util/sha256.cpp
src/util/sha256.h
src/util/sort.cpp
src/util/sort.h
src/util/string-processor.cpp
src/util/string-processor.h
src/view/display-birth.cpp
src/view/display-birth.h
src/view/display-characteristic.cpp
src/view/display-characteristic.h
src/view/display-fruit.cpp
src/view/display-fruit.h
src/view/display-inventory.cpp
src/view/display-inventory.h
src/view/display-lore-attacks.cpp
src/view/display-lore-attacks.h
src/view/display-lore-drops.cpp
src/view/display-lore-drops.h
src/view/display-lore-magics.cpp
src/view/display-lore-magics.h
src/view/display-lore-status.cpp
src/view/display-lore-status.h
src/view/display-lore.cpp
src/view/display-lore.h
src/view/display-map.cpp
src/view/display-map.h
src/view/display-messages.cpp
src/view/display-messages.h
src/view/display-monster-status.cpp
src/view/display-monster-status.h
src/view/display-player-middle.cpp
src/view/display-player-middle.h
src/view/display-player-misc-info.cpp
src/view/display-player-misc-info.h
src/view/display-player-stat-info.cpp
src/view/display-player-stat-info.h
src/view/display-player.cpp
src/view/display-player.h
src/view/display-scores.cpp
src/view/display-scores.h
src/view/display-self-info.cpp
src/view/display-self-info.h
src/view/display-store.cpp
src/view/display-store.h
src/view/display-util.cpp
src/view/display-util.h
src/view/object-describer.cpp
src/view/object-describer.h
src/view/status-bars-table.cpp
src/view/status-bars-table.h
src/view/status-first-page.cpp
src/view/status-first-page.h
src/window/display-sub-windows.cpp
src/window/display-sub-windows.h
src/window/main-window-equipments.cpp
src/window/main-window-equipments.h
src/window/main-window-left-frame.cpp
src/window/main-window-left-frame.h
src/window/main-window-row-column.cpp
src/window/main-window-row-column.h
src/window/main-window-stat-poster.cpp
src/window/main-window-stat-poster.h
src/window/main-window-util.cpp
src/window/main-window-util.h
src/wizard/artifact-analyzer.cpp
src/wizard/artifact-analyzer.h
src/wizard/artifact-bias-table.cpp
src/wizard/artifact-bias-table.h
src/wizard/cmd-wizard.cpp
src/wizard/cmd-wizard.h
src/wizard/fixed-artifacts-spoiler.cpp
src/wizard/fixed-artifacts-spoiler.h
src/wizard/items-spoiler.cpp
src/wizard/items-spoiler.h
src/wizard/monster-info-spoiler.cpp
src/wizard/monster-info-spoiler.h
src/wizard/spoiler-table.cpp
src/wizard/spoiler-table.h
src/wizard/spoiler-util.cpp
src/wizard/spoiler-util.h
src/wizard/tval-descriptions-table.cpp
src/wizard/tval-descriptions-table.h
src/wizard/wizard-game-modifier.cpp
src/wizard/wizard-game-modifier.h
src/wizard/wizard-item-modifier.cpp
src/wizard/wizard-item-modifier.h
src/wizard/wizard-messages.cpp
src/wizard/wizard-messages.h
src/wizard/wizard-player-modifier.cpp
src/wizard/wizard-player-modifier.h
src/wizard/wizard-special-process.cpp
src/wizard/wizard-special-process.h
src/wizard/wizard-spells.cpp
src/wizard/wizard-spells.h
src/wizard/wizard-spoiler.cpp
src/wizard/wizard-spoiler.h
src/world/world-movement-processor.cpp
src/world/world-movement-processor.h
src/world/world-object.cpp
src/world/world-object.h
src/world/world-turn-processor.cpp
src/world/world-turn-processor.h
src/world/world.cpp
src/world/world.h

index 3170fbd..7091a54 100644 (file)
@@ -3,6 +3,3 @@ root = true
 [*]
 insert_final_newline = true
 charset = utf-8
-
-[*.{c,cpp,h}]
-charset = utf-8-bom
index 2322f16..e1875ee 100644 (file)
@@ -6,8 +6,8 @@ STATUS=0
 
 for file in $SRC_FILES; do
     file $file | grep "BOM" >/dev/null
-    if [ $? != 0 ]; then
-        echo "$file: BOM does not exists."
+    if [ $? == 0 ]; then
+        echo "$file: BOM exists."
         STATUS=1
     fi
 done
index dd342d4..8934464 100644 (file)
@@ -1,4 +1,4 @@
-name: Build test with MSVC
+name: Build test with MSVC
 on:
   workflow_call:
 
index 6c4b202..37e090b 100644 (file)
@@ -1,4 +1,4 @@
-name: Create Release
+name: Create Release
 
 on:
   push:
index cf3ea30..8651698 100644 (file)
@@ -25,7 +25,7 @@ jobs:
         run: ./bootstrap
 
       - name: Configuration for Japanese version
-        run: ./configure --disable-worldscore
+        run: ./configure --disable-net
         env:
           CFLAGS: "-pipe"
 
index f1ebe73..3ee24a4 100644 (file)
       <ExceptionHandling>SyncCThrow</ExceptionHandling>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>\r
-      <AdditionalOptions>/execution-charset:shift-jis %(AdditionalOptions)</AdditionalOptions>\r
+      <AdditionalOptions>/source-charset:utf-8 /execution-charset:shift-jis %(AdditionalOptions)</AdditionalOptions>\r
     </ClCompile>\r
     <Link>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <LanguageStandard>stdcpp20</LanguageStandard>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>\r
+      <AdditionalOptions>/source-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>\r
     </ClCompile>\r
     <Link>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <LanguageStandard>stdcpp20</LanguageStandard>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>\r
-      <AdditionalOptions>/execution-charset:shift-jis %(AdditionalOptions)</AdditionalOptions>\r
+      <AdditionalOptions>/source-charset:utf-8 /execution-charset:shift-jis %(AdditionalOptions)</AdditionalOptions>\r
     </ClCompile>\r
     <Link>\r
       <TargetMachine>MachineX86</TargetMachine>\r
       <CompileAs>CompileAsCpp</CompileAs>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>\r
+      <AdditionalOptions>/source-charset:utf-8 %(AdditionalOptions)</AdditionalOptions>\r
     </ClCompile>\r
     <Link>\r
       <AdditionalDependencies>winmm.lib;gdiplus.lib;Ws2_32.lib;Wldap32.lib;Crypt32.lib;Normaliz.lib;curl\lib\libcurl_a.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
     <ClCompile Include="..\..\src\timed-effect\player-poison.cpp" />\r
     <ClCompile Include="..\..\src\timed-effect\player-stun.cpp" />\r
     <ClCompile Include="..\..\src\timed-effect\timed-effects.cpp" />\r
+    <ClCompile Include="..\..\src\util\candidate-selector.cpp" />\r
     <ClCompile Include="..\..\src\util\rng-xoshiro.cpp" />\r
     <ClCompile Include="..\..\src\util\sha256.cpp" />\r
     <ClCompile Include="..\..\src\view\display-inventory.cpp" />\r
     <ClInclude Include="..\..\src\timed-effect\timed-effects.h" />\r
     <ClInclude Include="..\..\src\util\bit-flags-calculator.h" />\r
     <ClInclude Include="..\..\src\util\buffer-shaper.h" />\r
+    <ClInclude Include="..\..\src\util\candidate-selector.h" />\r
     <ClInclude Include="..\..\src\util\enum-converter.h" />\r
     <ClInclude Include="..\..\src\util\enum-range.h" />\r
     <ClInclude Include="..\..\src\util\finalizer.h" />\r
index d5e0d1c..9ca4c04 100644 (file)
     <ClCompile Include="..\..\src\main-win\main-win-exception.cpp">\r
       <Filter>main-win</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\..\src\util\candidate-selector.cpp">\r
+      <Filter>util</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\..\src\combat\shoot.h">\r
     <ClInclude Include="..\..\src\main-win\main-win-exception.h">\r
       <Filter>main-win</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\..\src\util\candidate-selector.h">\r
+      <Filter>util</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <None Include="..\..\src\wall.bmp" />\r
index 7116add..ebbcdc2 100644 (file)
@@ -1,4 +1,4 @@
-THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
+THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
 Do Not Translate or Localize
 
 hengband incorporates third party material from the projects listed below.
index c50c63a..0decb35 100644 (file)
@@ -38,7 +38,7 @@ PROJECT_NAME           = Hengband
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 3.0.0Alpha87
+PROJECT_NUMBER         = 3.0.0Alpha88
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
index 68c1b93..a9aa45f 100644 (file)
@@ -1,4 +1,4 @@
-%define version 3.0.0.86
+%define version 3.0.0.88
 %define release 1
 %global debug_package %{nil}
 
@@ -97,6 +97,12 @@ exit 0
 
 %changelog
 
+* Sun Jul 23 2023 Shiro Hara <white@vx-xv.com>
+- hengband RPM 3.0.0.88(Alpha)
+
+* Sun Jul 09 2023 Shiro Hara <white@vx-xv.com>
+- hengband RPM 3.0.0.87(Alpha)
+
 * Mon Jun 26 2023 Shiro Hara <white@vx-xv.com>
 - hengband RPM 3.0.0.86(Alpha)
 
index 2ff3876..6f7ddef 100644 (file)
@@ -18889,7 +18889,7 @@ S:BO_PLAS | BO_ICEE | MISSILE | BLIND | CONF | SLOW | HOLD | HASTE | HAND_DOOM |
 S:HEAL | INVULNER | BLINK | TPORT | WORLD | TELE_TO | TELE_AWAY | TELE_LEVEL |
 S:PSY_SPEAR | DARKNESS | TRAPS | FORGET | ANIM_DEAD | S_KIN | S_CYBER | S_MONSTER |
 S:S_MONSTERS | S_ANT | S_SPIDER | S_HOUND | S_HYDRA | S_DEMON | S_UNDEAD |
-S:S_DRAGON | S_HI_UNDEAD | S_AMBERITES | S_UNIQUE | BA_LITE
+S:S_DRAGON | S_HI_UNDEAD | S_AMBERITES | S_UNIQUE | BA_LITE | S_DEAD_UNIQUE
 V:133
 D:$You don't know what it is.
 D:それは何が何だか分からない。
@@ -26719,3 +26719,27 @@ S:1_IN_6 | BR_ABYSS
 V:150
 D:$It's a abyssal whirlpool.
 D:深淵の渦巻きだ。
+
+N:1353:破壊と憎悪の化身『サルーイン』
+E:Saruin, The avatar of destruction and hatred
+G:P:w
+I:125:90d100:100:175:0
+W:79:3:0:66666:0:0
+B:HIT:HURT:11d13
+B:HIT:HURT:11d13
+B:HIT:HURT:11d13
+B:HIT:HURT:11d13
+F:UNIQUE | MALE | DROP_CORPSE | NONLIVING |
+F:ONLY_ITEM | DROP_2D2 | DROP_4D2 | DROP_GREAT |
+F:PREVENT_SUDDEN_MAGIC | FORCE_MAXHP | SMART |
+F:OPEN_DOOR | BASH_DOOR |
+F:EVIL | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS |
+F:RES_WATE | RES_SHAR | RES_LITE | RES_DARK |
+F:NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN | RES_TELE
+S:1_IN_3 | S_DEAD_UNIQUE |
+S:BA_FIRE | BA_WATE | BA_ACID | ROCKET | DISPEL | BLIND | BO_MANA |
+S:HOLD | HEAL | HASTE | CONF | BRAIN_SMASH
+D:$He was born from the heart of Sayva, the goddess of destruction.
+D:$  Apparently, some foolish adventurer had given away all the Destiny Stones.
+D:破壊の女神サイヴァの心臓から生まれた存在だ。
+D:どうやら愚かなる冒険者がすべてのデステニィストーンを捧げてしまったらしい。
index 48ea1a1..f50fe6f 100644 (file)
@@ -56,7 +56,7 @@ F:%:FLOOR:10:0:395
 
 
 # Cloaker
-F:(:FLOOR:8:243
+F:(:FLOOR:10:243
 # Death sword
 F:|:FLOOR:8:107
 # Killer bee
index 30c0cee..ce90327 100644 (file)
@@ -967,6 +967,7 @@ hengband_SOURCES = \
        util/angband-files.cpp util/angband-files.h \
        util/buffer-shaper.cpp util/buffer-shaper.h \
        util/bit-flags-calculator.h \
+       util/candidate-selector.cpp util/candidate-selector.h \
        util/enum-converter.h \
        util/enum-range.h \
        util/finalizer.h \
index 9050383..aec7928 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file action-limited.cpp
  * @brief プレイヤーの行動制約判定定義
  */
index 9fcb309..9c46873 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file action-limited.h
  * @brief プレイヤーの行動制約判定ヘッダ
index a002cd6..be0a6e9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file activation-execution.cpp
  * @brief アイテムの発動実行定義
  */
index f2ae6a9..28bfffe 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file activation-execution.h
  * @brief アイテムの発動実行ヘッダ
index e48003a..ecc7001 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file movement-execution.cpp
  * @brief プレイヤーの歩行勝利実行定義
  */
index 084022d..b18c30d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file movement-execution.h
  * @brief プレイヤーの歩行処理実行ヘッダ
index 36f4a20..84fd07d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file mutation-execution.cpp
  * @brief プレイヤーの変異能力実行定義
  */
index 55400a4..7043ac5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file mutation-execution.h
  * @brief プレイヤーの変異能力実行ヘッダ
index 510549d..fbc76b0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file open-close-execution.cpp
  * @brief 扉や箱を開ける処理
  * @date 2020/07/11
index 7911f61..ed472aa 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file open-close-execution.h
  * @brief 扉や箱を開ける処理のヘッダ
index 3072426..6a3f2a7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file open-util.cpp
  * @brief 開閉処理関連関数
  */
index 3d60a67..0d8d3ad 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file open-util.h
  * @brief 開閉処理関連関数ヘッダ
index d8d8054..d354edf 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file racial-execution.cpp
  * @brief レイシャルパワー実行処理実装
  */
index eb32e1b..f0c0c10 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file racial-execution.h
  * @brief レイシャルパワー実行処理ヘッダ
index 3c83cd5..7918e0d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file run-execution.cpp
  * @brief プレイヤーの走行処理実装
  */
index f4f79a4..39a8845 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file run-execution.h
  * @brief プレイヤーの走行処理ヘッダ
index 6e682ce..bb655cd 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file travel-execution.cpp
  * @brief トラベル移動処理実装
  */
index e38d07b..79437f5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file travel-execution.h
  * @brief トラベル移動処理ヘッダ
index bf2aa61..af0ed14 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file tunnel-execution.cpp
  * @brief 掘削処理実装
  */
index 6ecc77e..70bef78 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file tunnel-execution.h
  * @brief 掘削処理ヘッダ
index 91b7cec..73cf68a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file weapon-shield.cpp
  * @brief 手装備持ち替え処理実装
  */
index 7ee5fa3..3227ba3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file weapon-shield.h
  * @brief 手装備持ち替え処理ヘッダ
index db77747..1b0c7ac 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file artifact-info.cpp
  * @brief アーティファクトの発動効果取得関数定義
  */
index cee8649..dc5b3e9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file artifact-info.h
  * @brief アーティファクトの発動効果取得関数ヘッダ
  */
index 62c85e4..2a1c4d2 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file fixed-art-generator.cpp
  * @brief 固定アーティファクトの生成 / Artifact code
  * @date 2020/07/14
index 2634c1c..dd38e38 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file fixed-art-generator.h
  * @brief 固定アーティファクトの生成処理ヘッダ
index 2344484..4a4664a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file fixed-art-types.h
  * @brief 固定アーティファクトのハードコード処理用ID定義
index 0919da1..c7d9353 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file random-art-activation.cpp
  * @brief ランダムアーティファクトの発動実装定義
  */
index bccee9a..a4857a6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-activation.h
  * @brief ランダムアーティファクトの発動実装ヘッダ
index 5cbc612..8d54583 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-bias-types.h
  * @brief ランダムアーティファクトのバイアス定義
index 691e9e7..363a391 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file random-art-characteristics.cpp
  * @brief ランダムアーティファクトのバイアス付加処理実装
  */
index c16d1dc..d8b6a37 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-characteristics.h
  * @brief ランダムアーティファクトのバイアス付加処理ヘッダ
index 7023242..c5f6b6e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @file random-art-effects.h
index 9d09e50..63f8f3a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file random-art-generator.cpp
  * @brief ランダムアーティファクトの生成メイン定義 / Artifact code
  * @date 2020/07/14
index 72f84f0..80a6293 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-generator.h
  * @brief ランダムアーティファクトの生成メインヘッダ / Artifact code
index c76876c..927d3c1 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file random-art-misc.cpp
  * @brief ランダムアーティファクト生成のその他特性バイアス付け実装 / Artifact code
  */
index b1c29e1..50d6490 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-misc.h
  * @brief ランダムアーティファクト生成のその他特性バイアス付けヘッダ / Artifact code
index 035bed8..d9dd0c1 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file random-art-pval-investor.cpp
  * @brief ランダムアーティファクトにpvalを追加する処理
  * @date 2020/07/14
index 25a43d9..f2a3b9e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-pval-investor.h
  * @brief ランダムアーティファクトのpval付加処理ヘッダ
index 3c5802d..1cc82d9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file random-art-resistance.cpp
  * @brief ランダムアーティファクトの耐性付加処理実装
  */
index d3e9d94..abd29ec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-resistance.h
  * @brief ランダムアーティファクトの耐性付加処理ヘッダ
index 8fb530f..1d913c7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file random-art-slay.cpp
  * @brief ランダムアーティファクトのスレイ付加処理実装
  */
index dbe3e92..98d0ab6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file random-art-slay.h
  * @brief ランダムアーティファクトのスレイ付加処理ヘッダ
index 059308f..7a79eba 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いエディタのコマンドを受け付ける
  * @date 2020/04/26
  * @author Hourier
index 429eda2..cd55b02 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 int do_command_menu(int level, int start);
index 6c8dc15..9b720af 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Editor command id's
index 8e65920..dfc9a8c 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いの記述
  * @date 2020/04/25
  * @author Hourier
index 9068550..bf84a47 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct autopick_type;
 void describe_autopick(char *buff, const autopick_type &entry);
index 3743fd7..0baefc9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動破壊の実行
  * @date 2020/04/25
  * @author Hourier
index 8d31f42..297ae63 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 240ab14..39b532b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Dirty flag for text editor
index c78f594..7549acf 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いエディタを表示させる
  * @date 2020/04/26
  * @author Hourier
@@ -14,6 +14,7 @@
 #include "term/screen-processor.h"
 #include "term/term-color-types.h"
 #include "view/display-util.h"
+#include <tuple>
 
 #define DESCRIPT_HGT 3
 
@@ -66,7 +67,7 @@ void draw_text_editor(PlayerType *player_ptr, text_body_type *tb)
 {
     int by1 = 0, by2 = 0;
 
-    term_get_size(&tb->wid, &tb->hgt);
+    std::tie(tb->wid, tb->hgt) = term_get_size();
 
     /*
      * Top line (-1), description line (-3), separator (-1)
index 1dd4c8e..094cbb4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct text_body_type;
 class PlayerType;
index 793f09a..832172a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いエディタ画面でキーを押した時の挙動一式
  * @date 2020/04/26
  * @author Hourier
index 7bafde6..7173a31 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*! APE means AutoPickEditor*/
 enum ape_quittance {
index 4afd258..cd9a31f 100644 (file)
@@ -1,4 +1,4 @@
-#include <cstdlib>
+#include <cstdlib>
 
 #include "autopick/autopick-dirty-flags.h"
 #include "autopick/autopick-editor-util.h"
index 8b0f1f2..2e9d306 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d877cc5..fa7c9e7 100644 (file)
@@ -1,4 +1,4 @@
-#include "autopick/autopick-entry.h"
+#include "autopick/autopick-entry.h"
 #include "autopick/autopick-flags-table.h"
 #include "autopick/autopick-key-flag-process.h"
 #include "autopick/autopick-keys-table.h"
index e794885..1570257 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 663f03d..4f26e3b 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いの検索
  * @date 2020/04/26
  * @author Hourier
@@ -115,7 +115,7 @@ byte get_string_for_search(PlayerType *player_ptr, ItemEntity **o_handle, concpt
     int pos = 0;
     while (true) {
         bool back = false;
-        term_erase(col, 0, 255);
+        term_erase(col, 0);
         term_putstr(col, 0, -1, color, buf);
         term_gotoxy(col + pos, 0);
 
index dd6e0e9..29ffa57 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e7ad81c..fe30846 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Macros for Keywords
index 189dc5a..a079f0d 100644 (file)
@@ -1,4 +1,4 @@
-#include "autopick/autopick-initializer.h"
+#include "autopick/autopick-initializer.h"
 #include "autopick/autopick-entry.h"
 #include "autopick/autopick-util.h"
 #include "system/angband.h"
index 572f799..f145131 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 void init_autopick(void);
index 1a5e81c..28a8f5d 100644 (file)
@@ -1,4 +1,4 @@
-#include "autopick/autopick-inserter-killer.h"
+#include "autopick/autopick-inserter-killer.h"
 #include "autopick/autopick-dirty-flags.h"
 #include "autopick/autopick-util.h"
 #include "cmd-io/macro-util.h"
index 3742526..63c3178 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct text_body_type;
 void check_expression_line(text_body_type *tb, int y);
index 8914120..0680aa2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #define MATCH_KEY(KEY) (!strncmp(ptr, KEY, strlen(KEY))                             \
                             ? (ptr += strlen(KEY), (' ' == *ptr) ? ptr++ : 0, true) \
index c37ce20..a8c1b4f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/h-basic.h"
 
index c96e958..1edfaef 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 床のアイテムが自動拾いに一致するかどうかを調べる関数だけを格納したファイル
  * @date 2020/04/25
  * @author Hourier
index 8bdae3b..be0660c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 58091b5..32a6272 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いのユーティリティ
  * @date 2020/04/25
  * @author Hourier
index 0c0ca7f..cd462da 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c5d50e1..5e33c3a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #define DO_AUTOPICK 0x01
 #define DO_AUTODESTROY 0x02
index 5ba8eb1..2bfe0bf 100644 (file)
@@ -1,4 +1,4 @@
-#include "autopick/autopick-pref-processor.h"
+#include "autopick/autopick-pref-processor.h"
 #include "autopick/autopick-entry.h"
 #include "autopick/autopick-util.h"
 #include "system/angband.h"
index 14c4482..657e47e 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 void process_autopick_file_command(char *buf);
index cca397f..81f093a 100644 (file)
@@ -1,4 +1,4 @@
-#include "autopick/autopick-reader-writer.h"
+#include "autopick/autopick-reader-writer.h"
 #include "autopick/autopick-initializer.h"
 #include "autopick/autopick-pref-processor.h"
 #include "autopick/autopick-util.h"
index d006245..9b13350 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 9dac42a..0e6ba47 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いにアイテムを登録する
  * @date 2020/04/26
  * @author Hourier
index f479c69..967a3e5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 034bd6f..5c1a532 100644 (file)
@@ -1,4 +1,4 @@
-#include "autopick/autopick-util.h"
+#include "autopick/autopick-util.h"
 #include "autopick/autopick-menu-data-table.h"
 #include "core/window-redrawer.h"
 #include "game-option/input-options.h"
index dd27a85..b1dcb02 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 849da57..5e484ba 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file autopick.c
  * @brief 自動拾い機能の実装 / Object Auto-picker/Destroyer
  * @date 2014/01/02
index 716735a..626d016 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ebbc5b7..8deab1f 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 敵への攻撃によって徳を変化させる処理
  * @date 2021/08/05
  * @author Hourier
index e7a0cfe..1760c6d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index db1a2eb..d033955 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ウルティマ4を参考にした徳のシステムの実装 / Enable an Ultima IV style "avatar" game where you try to achieve perfection in various virtues.
  * @date 2013/12/23
  * @author
index 5cafbc3..335451e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <map>
index 6a7509f..bfae185 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/auto-roller.h"
+#include "birth/auto-roller.h"
 #include "birth/birth-stat.h"
 #include "birth/birth-util.h"
 #include "cmd-io/cmd-gameoption.h"
index f4ab0ed..cb59bec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 34fab8e..15c5dd5 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-body-spec.h"
+#include "birth/birth-body-spec.h"
 #include "player-base/player-class.h"
 #include "player-base/player-race.h"
 #include "player-info/race-info.h"
index af8f3e5..addcc76 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void get_height_weight(PlayerType *player_ptr);
index de509b2..faa3092 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-explanations-table.h"
+#include "birth/birth-explanations-table.h"
 #include "system/angband.h"
 
 /*! 種族の解説メッセージテーブル */
index 559bb39..29d47f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 #include <vector>
index ffd1418..b12a121 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-select-class.h"
+#include "birth/birth-select-class.h"
 #include "birth/birth-util.h"
 #include "io/input-key-acceptor.h"
 #include "player-info/class-info.h"
index ca724dd..4de79a7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool get_player_class(PlayerType *player_ptr);
index 2a3a732..faa1e2e 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-select-personality.h"
+#include "birth/birth-select-personality.h"
 #include "birth/birth-util.h"
 #include "io/input-key-acceptor.h"
 #include "player/player-personality.h"
index dd8c648..cbc1485 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool get_player_personality(PlayerType *player_ptr);
index 5ff41ef..f1384d1 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-select-race.h"
+#include "birth/birth-select-race.h"
 #include "birth/birth-util.h"
 #include "io/input-key-acceptor.h"
 #include "player-info/race-info.h"
index 2b3a93a..bc377fc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool get_player_race(PlayerType *player_ptr);
index 914e3bd..b8a0b34 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-select-realm.h"
+#include "birth/birth-select-realm.h"
 #include "birth/birth-explanations-table.h"
 #include "birth/birth-util.h"
 #include "core/asking-player.h"
index ec348b4..f130d5c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool get_player_realms(PlayerType *player_ptr);
index 40c8d56..303c892 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-stat.h"
+#include "birth/birth-stat.h"
 #include "birth/auto-roller.h"
 #include "player-base/player-class.h"
 #include "player-base/player-race.h"
index e17a174..16f51f2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f042b39..d029467 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-util.h"
+#include "birth/birth-util.h"
 #include "cmd-io/cmd-gameoption.h"
 #include "core/show-file.h"
 #include "main/sound-of-music.h"
index a094721..0523296 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c390d97..ff8b02d 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/birth-wizard.h"
+#include "birth/birth-wizard.h"
 #include "avatar/avatar.h"
 #include "birth/auto-roller.h"
 #include "birth/birth-body-spec.h"
index 3f0ea95..1b85997 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool player_birth_wizard(PlayerType *player_ptr);
index b3c1d05..f5ba945 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file birth.c
  * @brief プレイヤーの作成を行う / Create a player character
  * @date 2013/12/28
index 451717d..25484c0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void player_birth(PlayerType *player_ptr);
index 767ff7b..610b38f 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/game-play-initializer.h"
+#include "birth/game-play-initializer.h"
 #include "dungeon/quest.h"
 #include "floor/floor-util.h"
 #include "game-option/birth-options.h"
index ff36144..ed8caf6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void player_wipe_without_name(PlayerType *player_ptr);
index 993b269..e2b4d29 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/history-editor.h"
+#include "birth/history-editor.h"
 #include "io/input-key-acceptor.h"
 #include "io/read-pref-file.h"
 #include "locale/japanese.h"
@@ -110,8 +110,8 @@ void edit_history(PlayerType *player_ptr)
             }
 #endif
         } else if (c == '\r' || c == '\n') {
-            term_erase(0, 11, 255);
-            term_erase(0, 17, 255);
+            term_erase(0, 11);
+            term_erase(0, 17);
             put_str(_("(キャラクターの生い立ち - 編集済み)", "(Character Background - Edited)"), 11, 20);
             break;
         } else if (c == ESCAPE) {
index 0d7ce7e..336ca01 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void edit_history(PlayerType *player_ptr);
index d4980b8..65b8e36 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/history-generator.h"
+#include "birth/history-generator.h"
 #include "birth/history.h"
 #include "player-info/race-types.h"
 #include "system/player-type-definition.h"
index b843996..59df81e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void get_history(PlayerType *player_ptr);
index aac3811..3eaef0a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 生い立ちメッセージテーブル / Forward declare
  * @date 2002/01/12
  * @author mogami
index 8edc526..f72745a 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/angband.h"
+#include "system/angband.h"
 #include <vector>
 
 /*!
index db13fb7..563d1f2 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/initial-equipments-table.h"
+#include "birth/initial-equipments-table.h"
 #include "object/tval-types.h"
 #include "sv-definition/sv-armor-types.h"
 #include "sv-definition/sv-bow-types.h"
index 663e1a2..a7bf4b9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <tuple>
index 9b04274..5b4e5ae 100644 (file)
@@ -1,9 +1,10 @@
-#include "birth/inventory-initializer.h"
+#include "birth/inventory-initializer.h"
 #include "autopick/autopick.h"
 #include "birth/initial-equipments-table.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-object.h"
 #include "inventory/inventory-slot-types.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster/monster-list.h"
 #include "monster/monster-util.h"
@@ -103,7 +104,7 @@ static void decide_initial_items(PlayerType *player_ptr, ItemEntity *q_ptr)
         get_mon_num_prep(player_ptr, monster_hook_human, nullptr);
         for (int i = rand_range(3, 4); i > 0; i--) {
             q_ptr->prep(lookup_baseitem_id({ ItemKindType::CORPSE, SV_CORPSE }));
-            q_ptr->pval = enum2i(get_mon_num(player_ptr, 0, 2, 0));
+            q_ptr->pval = enum2i(get_mon_num(player_ptr, 0, 2, PM_NONE));
             if (q_ptr->pval) {
                 q_ptr->number = 1;
                 add_outfit(player_ptr, q_ptr);
index 4995f78..49aba40 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index bac6fe7..45e0978 100644 (file)
@@ -1,4 +1,4 @@
-#include "birth/quick-start.h"
+#include "birth/quick-start.h"
 #include "birth/birth-stat.h"
 #include "birth/birth-util.h"
 #include "birth/game-play-initializer.h"
index e5a3df4..0e3cff2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-info/class-types.h"
 #include "player-info/race-types.h"
index 88aa130..bae40aa 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-ball-bolt.cpp
  * @brief 青魔法のボール/ボルト系呪文定義
  */
index 03e75a3..6b3df7b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-ball-bolt.h
  * @brief 青魔法のボール/ボルト系呪文ヘッダ
index a190d80..0b76ea0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-breath.cpp
  * @brief 青魔法のブレス系呪文定義
  */
index ed3271c..90351d9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-breath.h
  * @brief 青魔法のブレス系呪文ヘッダ
index d6e13b3..31b4ba0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-caster.cpp
  * @brief 青魔法のその他系統の呪文定義と詠唱時分岐処理
  */
@@ -404,6 +404,8 @@ static bool switch_cast_blue_magic(PlayerType *player_ptr, bmc_type *bmc_ptr, Mo
         return cast_blue_summon_amberite(player_ptr, bmc_ptr);
     case MonsterAbilityType::S_UNIQUE:
         return cast_blue_summon_unique(player_ptr, bmc_ptr);
+    case MonsterAbilityType::S_DEAD_UNIQUE:
+        return cast_blue_summon_dead_unique(player_ptr, bmc_ptr);
     default:
         msg_print("hoge?");
         return true;
index cff0d0c..7556575 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-caster.h
  * @brief 青魔法のその他系統の呪文定義と詠唱時分岐処理ヘッダ
index 9d8bd99..f2ec72c 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-checker.cpp
  * @brief 青魔法の処理実装 / Blue magic
  * @date 2014/01/15
index 61e60dc..6ea9263 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-checker.h
  * @brief 青魔法の処理ヘッダ / Blue magic
index a763531..c477b22 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-spirit-curse.cpp
  * @brief 青魔法の呪い系処理定義
  */
index f3e6516..3bd8f88 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-spirit-curse.h
  * @brief 青魔法の呪い系処理ヘッダ
index 59d42d1..c2e09bf 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-status.cpp
  * @brief 青魔法の状態異常系スペル定義
  */
index c3ca2d8..ef2f82a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-status.h
  * @brief 青魔法の状態異常系スペルヘッダ
index f23adb7..9daddcf 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-summon.cpp
  * @brief 青魔法の召喚系スペル定義
  */
@@ -271,3 +271,19 @@ bool cast_blue_summon_unique(PlayerType *player_ptr, bmc_type *bmc_ptr)
 
     return true;
 }
+
+bool cast_blue_summon_dead_unique(PlayerType *player_ptr, bmc_type *bmc_ptr)
+{
+    BIT_FLAGS mode = bmc_ptr->g_mode | bmc_ptr->p_mode | PM_ALLOW_UNIQUE | PM_CLONE;
+
+    msg_print(_("特別な強敵を蘇らせた!", "You summon a special dead opponent!"));
+    if (summon_specific(player_ptr, (bmc_ptr->pet ? -1 : 0), player_ptr->y, player_ptr->x, bmc_ptr->summon_lev, SUMMON_DEAD_UNIQUE, mode)) {
+        if (!bmc_ptr->pet) {
+            msg_print(_("蘇生されたユニーク・モンスターは怒っている!", "The summoned special dead opponent is angry!"));
+        }
+    } else {
+        bmc_ptr->no_trump = true;
+    }
+
+    return true;
+}
index 79d90b2..321ae57 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-summon.h
  * @brief 青魔法の召喚系スペルヘッダ
@@ -22,3 +22,4 @@ bool cast_blue_summon_high_undead(PlayerType *player_ptr, bmc_type *bmc_ptr);
 bool cast_blue_summon_high_dragon(PlayerType *player_ptr, bmc_type *bmc_ptr);
 bool cast_blue_summon_amberite(PlayerType *player_ptr, bmc_type *bmc_ptr);
 bool cast_blue_summon_unique(PlayerType *player_ptr, bmc_type *bmc_ptr);
+bool cast_blue_summon_dead_unique(PlayerType *player_ptr, bmc_type *bmc_ptr);
index 61c97f0..9346cb5 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file blue-magic-util.cpp
  * @brief 青魔法の構造体、初期化処理定義
  */
index 527e93b..9f760e1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file blue-magic-util.h
  * @brief 青魔法の構造体、初期化処理ヘッダ
index 5bc20c5..a64f6fa 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file learnt-info.cpp
  * @brief 青魔法の情報表示処理定義
  */
index 66a8755..f119036 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file learnt-info.h
  * @brief 青魔法の情報表示処理ヘッダ
index 860f7b4..5504bb9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file learnt-power-getter.cpp
  * @brief 青魔法の処理実行定義
  */
index c3049a3..f3a093a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file learnt-power-getter.h
  * @brief 青魔法の処理実行ヘッダ
index a117de1..e20dfd0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 攻撃コマンド処理
  * @date 2020/05/23
  * @author Hourier
index 62fdd66..a03ea54 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "combat/combat-options-type.h"
 #include "system/angband.h"
index f3b7905..631b2e4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 剣術の実装 / Blade arts
  * @date 2014/01/17
  * @author
index cdafa6e..293b442 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_hissatsu(PlayerType *player_ptr);
index bb596e9..c70e459 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ものまねの処理実装 / Imitation code
  * @date 2014/01/14
  * @author
@@ -1194,6 +1194,19 @@ static bool use_mane(PlayerType *player_ptr, MonsterAbilityType spell)
         }
         break;
     }
+    case MonsterAbilityType::S_DEAD_UNIQUE: {
+        auto count = 0;
+        if (!target_set(player_ptr, TARGET_KILL)) {
+            return false;
+        }
+        msg_print(_("特別な強敵を蘇生した!", "You summon special dead opponents!"));
+        for (auto k = 0; k < 4; k++) {
+            if (summon_specific(player_ptr, -1, target_row, target_col, plev, SUMMON_DEAD_UNIQUE, (mode | PM_ALLOW_UNIQUE | PM_CLONE))) {
+                count++;
+            }
+        }
+        break;
+    }
     default:
         msg_print("hoge?");
     }
index 6338c34..166e9dd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool do_cmd_mane(PlayerType *player_ptr, bool baigaesi);
index 8fb0c2e..1b669d9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 各職業の特殊技能実装 / Special magics
  * @date 2014/01/15
  * @author
@@ -466,12 +466,12 @@ void do_cmd_mind_browse(PlayerType *player_ptr)
             return;
         }
 
-        term_erase(12, 21, 255);
-        term_erase(12, 20, 255);
-        term_erase(12, 19, 255);
-        term_erase(12, 18, 255);
-        term_erase(12, 17, 255);
-        term_erase(12, 16, 255);
+        term_erase(12, 21);
+        term_erase(12, 20);
+        term_erase(12, 19);
+        term_erase(12, 18);
+        term_erase(12, 17);
+        term_erase(12, 16);
         display_wrap_around(mind_tips[enum2i(use_mind)][n], 62, 17, 15);
 
         switch (use_mind) {
index fe8dac1..3e3114d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_mind(PlayerType *player_ptr);
index 66147ec..300a8e8 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-action/cmd-move.h"
+#include "cmd-action/cmd-move.h"
 #include "action/action-limited.h"
 #include "action/movement-execution.h"
 #include "action/run-execution.h"
index 9871eaa..f751d48 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_go_up(PlayerType *player_ptr);
index 5c37cf5..9fbd968 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-action/cmd-open-close.h"
+#include "cmd-action/cmd-open-close.h"
 #include "action/open-close-execution.h"
 #include "action/open-util.h"
 #include "cmd-action/cmd-attack.h"
index 68b4c71..ea73287 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_open(PlayerType *player_ptr);
index 5fc878c..877f53f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief その他の小さなコマンド処理群 (探索、汎用グリッド処理、自殺/引退/切腹)
  * @date 2014/01/02
  * @author
@@ -155,7 +155,7 @@ static void accept_winner_message(PlayerType *player_ptr)
             continue;
         }
 
-        if (!input_check_strict(player_ptr, _("よろしいですか?", "Are you sure? "), UserCheck::NO_HISTORY)) {
+        if (input_check_strict(player_ptr, _("よろしいですか?", "Are you sure? "), UserCheck::NO_HISTORY)) {
             break;
         }
     }
index 8c0ac9c..f42f452 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_search(PlayerType *player_ptr);
index dae3587..b0d0a7a 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-action/cmd-pet.h"
+#include "cmd-action/cmd-pet.h"
 #include "action/action-limited.h"
 #include "cmd-action/cmd-attack.h"
 #include "cmd-io/cmd-dump.h"
index ad49110..5212b16 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool do_cmd_riding(PlayerType *player_ptr, bool force);
index 2442c57..27e5b21 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief クラス、種族、突然変異に関するコマンド処理
  * @author Hourier
  * @date 2022/02/24
@@ -302,12 +302,12 @@ static void racial_power_display_explanation(PlayerType *player_ptr, rc_type *rc
 {
     auto &rpi = rc_ptr->power_desc[rc_ptr->command_code];
 
-    term_erase(12, 21, 255);
-    term_erase(12, 20, 255);
-    term_erase(12, 19, 255);
-    term_erase(12, 18, 255);
-    term_erase(12, 17, 255);
-    term_erase(12, 16, 255);
+    term_erase(12, 21);
+    term_erase(12, 20);
+    term_erase(12, 19);
+    term_erase(12, 18);
+    term_erase(12, 17);
+    term_erase(12, 16);
     display_wrap_around(rpi.text, 62, 17, 15);
 
     prt(_("何かキーを押して下さい。", "Hit any key."), 0, 0);
index 191696d..e6cebff 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_racial_power(PlayerType *player_ptr);
index 439bd66..8b11b90 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-action/cmd-shoot.h"
+#include "cmd-action/cmd-shoot.h"
 #include "combat/shoot.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-slot-types.h"
index ae6e94a..ffd6e2f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 918a134..5d4f3cb 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 魔法のインターフェイスと発動 / Purpose: Do everything for each spell
  * @date 2013/12/31
  * @author
@@ -661,10 +661,10 @@ void do_cmd_browse(PlayerType *player_ptr)
         }
 
         /* Clear lines, position cursor  (really should use strlen here) */
-        term_erase(14, 14, 255);
-        term_erase(14, 13, 255);
-        term_erase(14, 12, 255);
-        term_erase(14, 11, 255);
+        term_erase(14, 14);
+        term_erase(14, 13);
+        term_erase(14, 12);
+        term_erase(14, 11);
 
         const auto spell_desc = exe_spell(player_ptr, use_realm, spell, SpellProcessType::DESCRIPTION);
         display_wrap_around(spell_desc.value(), 62, 11, 15);
index 6ba38d1..43899e2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index ab26f41..bcaf19b 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-action/cmd-travel.h"
+#include "cmd-action/cmd-travel.h"
 #include "action/travel-execution.h"
 #include "core/asking-player.h"
 #include "floor/cave.h"
index d4a34b6..2c0633a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_travel(PlayerType *player_ptr);
index 291e1f5..053c6a2 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-action/cmd-tunnel.h"
+#include "cmd-action/cmd-tunnel.h"
 #include "action/tunnel-execution.h"
 #include "cmd-action/cmd-attack.h"
 #include "core/disturbance.h"
index 264ba96..2e6c328 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_tunnel(PlayerType *player_ptr);
index 270e8ea..e6b4967 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 町の施設処理 / Building commands
  * @date 2013/12/23
  * @author
index 90107dc..8e543ae 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 #include "system/angband.h"
index 53ca8cd..3ef0927 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-building/cmd-inn.h"
+#include "cmd-building/cmd-inn.h"
 #include "cmd-item/cmd-magiceat.h"
 #include "core/turn-compensator.h"
 #include "game-option/birth-options.h"
index d98267d..71b515e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool inn_comm(PlayerType *player_ptr, int cmd);
index 3cfdfeb..cc7014f 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-autopick.h"
+#include "cmd-io/cmd-autopick.h"
 #include "autopick/autopick-command-menu.h"
 #include "autopick/autopick-commands-table.h"
 #include "autopick/autopick-dirty-flags.h"
index 32a19c9..e922c0e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_edit_autopick(PlayerType *player_ptr);
index 461d7c0..116451b 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-diary.h"
+#include "cmd-io/cmd-diary.h"
 #include "core/asking-player.h"
 #include "core/show-file.h"
 #include "game-option/play-record-options.h"
index dea2d48..3f95a2b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_diary(PlayerType *player_ptr);
index f894451..2416276 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーのインターフェイスに関するコマンドの実装 / Interface commands
  * @date 2014/01/02
  * @author
index 1932e96..f9100fe 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_pref(PlayerType *player_ptr);
index 0958c59..74b1124 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-floor.h"
+#include "cmd-io/cmd-floor.h"
 #include "core/asking-player.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
@@ -63,8 +63,7 @@ void do_cmd_locate(PlayerType *player_ptr)
         { { _("南西", " southwest of"), _("南", " south of"), _("南東", " southeast of") } },
     } };
     POSITION y1, x1;
-    TERM_LEN wid, hgt;
-    get_screen_size(&wid, &hgt);
+    const auto [wid, hgt] = get_screen_size();
     POSITION y2 = y1 = panel_row_min;
     POSITION x2 = x1 = panel_col_min;
     constexpr auto fmt = _("マップ位置 [%d(%02d),%d(%02d)] (プレイヤーの%s)  方向?", "Map sector [%d(%02d),%d(%02d)], which is%s your sector.  Direction?");
index b6db78b..40d9f18 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_target(PlayerType *player_ptr);
index b063440..17a8393 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-gameoption.h"
+#include "cmd-io/cmd-gameoption.h"
 #include "autopick/autopick.h"
 #include "cmd-io/cmd-autopick.h"
 #include "cmd-io/cmd-dump.h"
index fa9b023..4de1125 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/game-option-types.h"
index a26c3f2..115203f 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-help.h"
+#include "cmd-io/cmd-help.h"
 #include "core/show-file.h"
 #include "system/player-type-definition.h"
 #include "term/screen-processor.h"
index f3ed4a0..0efaff1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_help(PlayerType *player_ptr);
index 3127a93..b00641a 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-knowledge.h"
+#include "cmd-io/cmd-knowledge.h"
 #include "cmd-visual/cmd-draw.h"
 #include "game-option/birth-options.h"
 #include "grid/feature.h"
index f0a92df..38ff4ec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_knowledge(PlayerType *player_ptr);
index c901095..d521eba 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-lore.h"
+#include "cmd-io/cmd-lore.h"
 #include "core/asking-player.h"
 #include "core/stuff-handler.h"
 #include "game-option/cheat-options.h"
index e4b2b42..11be101 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_query_symbol(PlayerType *player_ptr);
index 064811c..c8b885e 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-macro.h"
+#include "cmd-io/cmd-macro.h"
 #include "cmd-io/cmd-gameoption.h"
 #include "cmd-io/macro-util.h"
 #include "core/asking-player.h"
index 0f95108..3b83812 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_macros(PlayerType *player_ptr);
index 3c72bd8..4c38dcb 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-menu-content-table.h"
+#include "cmd-io/cmd-menu-content-table.h"
 #include "player-info/class-types.h"
 #include "util/enum-converter.h"
 #include "util/int-char-converter.h"
index fc290b3..cdf65e5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <optional>
index 9cf18d9..60e7ec0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 記念撮影のセーブとロード
  * @date 2020/04/22
  * @Author Hourier
@@ -203,8 +203,7 @@ static void write_html_footer(FILE *tmpfff, FILE *fff)
 
 void exe_cmd_save_screen_html(const std::filesystem::path &path, bool need_message)
 {
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     auto *fff = angband_fopen(path, FileOpenMode::WRITE);
     if (!check_screen_html_can_open(fff, path, need_message)) {
         return;
@@ -376,10 +375,8 @@ void do_cmd_save_screen(PlayerType *player_ptr)
         return;
     }
 
-    int wid, hgt;
-    term_get_size(&wid, &hgt);
-
-    bool old_use_graphics = update_use_graphics(player_ptr);
+    const auto [wid, hgt] = term_get_size();
+    const auto old_use_graphics = update_use_graphics(player_ptr);
 
     if (html_dump) {
         exe_cmd_save_screen_html_with_naming();
@@ -490,8 +487,7 @@ static void draw_colored_characters(FILE *fff, int wid, int hgt, bool okay)
  */
 void do_cmd_load_screen(void)
 {
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     const auto path = path_build(ANGBAND_DIR_USER, "dump.txt");
     auto *fff = angband_fopen(path, FileOpenMode::READ);
     if (!fff) {
index 6723faf..e826de6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <filesystem>
 
index 67653e7..f788d02 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/cmd-save.h"
+#include "cmd-io/cmd-save.h"
 #include "cmd-io/cmd-dump.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
index f72b6a7..d537b25 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_save_game(PlayerType *player_ptr, int is_autosave);
index 35b8aaf..837a763 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 日記のサブタイトルを表すテキストの配列群
  * @date 2023/04/22
  * @author Hourier
index 75de647..2783da6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 471a901..74d94fe 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 雰囲気を表すテキストの配列群
  * @date 2020/03/08
  * @author Hourier
index 5a504f7..9f757c6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 79c5674..e1a7ccb 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-io/macro-util.h"
+#include "cmd-io/macro-util.h"
 
 /* Current macro action [1024] */
 std::vector<char> macro_buffers;
index 51ea851..543e723 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9b2afe0..baa6e9a 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-item/cmd-destroy.h"
+#include "cmd-item/cmd-destroy.h"
 #include "autopick/autopick-registry.h"
 #include "autopick/autopick.h"
 #include "avatar/avatar.h"
index 366ad5d..e9d1e7f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_destroy(PlayerType *player_ptr);
index 6972ecb..2574783 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの食べるコマンド実装
  * @date 2018/09/07
  @ @author deskull
index 7af0611..78f3ae1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9ca183a..6ec2a66 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-item/cmd-equipment.h"
+#include "cmd-item/cmd-equipment.h"
 #include "action/weapon-shield.h"
 #include "artifact/fixed-art-types.h"
 #include "autopick/autopick.h"
@@ -119,8 +119,7 @@ void do_cmd_equip(PlayerType *player_ptr)
         return;
     }
 
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     command_new = 0;
     command_gap = wid - 30;
 }
index 2163ff7..04be04f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_equip(PlayerType *player_ptr);
index 0280a37..77b63e9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  *  @brief プレイヤーのアイテムに関するコマンドの実装1 / Inventory and equipment commands
  *  @date 2014/01/02
  *  @author
@@ -99,8 +99,7 @@ void do_cmd_inven(PlayerType *player_ptr)
         return;
     }
 
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     command_new = 0;
     command_gap = wid - 30;
 }
index e3c0eef..b549a74 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_inven(PlayerType *player_ptr);
index 7441e98..a9a4646 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーのアイテムに関するコマンドの実装2 / Spell/Prayer commands
  * @date 2014/01/27
  * @author
@@ -491,10 +491,10 @@ static std::optional<BaseitemKey> select_magic_eater(PlayerType *player_ptr, boo
         /* Browse */
         else {
             /* Clear lines, position cursor  (really should use strlen here) */
-            term_erase(7, 23, 255);
-            term_erase(7, 22, 255);
-            term_erase(7, 21, 255);
-            term_erase(7, 20, 255);
+            term_erase(7, 23);
+            term_erase(7, 22);
+            term_erase(7, 21);
+            term_erase(7, 20);
 
             display_wrap_around(baseitems_info[lookup_baseitem_id({ tval, sval })].text, 62, 21, 10);
             continue;
index 18224ed..07c180f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool do_cmd_magic_eater(PlayerType *player_ptr, bool only_browse, bool powerful);
index 5822882..c2e8cd7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの飲むコマンド実装
  * @date 2018/09/07
  * @author deskull
index 335a526..470781b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_quaff_potion(PlayerType *player_ptr);
index 3520787..49d2d11 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @todo いずれcmd-item.c/h に統合したい
  * @brief プレイヤーの読むコマンド実装
  * @date 2018/09/07
index afb5da3..01940f3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_read_scroll(PlayerType *player_ptr);
index 0f8122e..dc60b08 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-item/cmd-refill.h"
+#include "cmd-item/cmd-refill.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-object.h"
 #include "inventory/inventory-slot-types.h"
index 90d28fe..9b20802 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_refill(PlayerType *player_ptr);
index 308dd1f..dfc6f5d 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief アイテム投擲コマンドの実装
  * @date 2021/08/20
  * @author Hourier
index af820b5..2ac87d2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b447716..25d6851 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-item/cmd-usestaff.h"
+#include "cmd-item/cmd-usestaff.h"
 #include "action/action-limited.h"
 #include "floor/floor-object.h"
 #include "monster-floor/monster-summon.h"
index 165d70e..9386cc4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 int staff_effect(PlayerType *player_ptr, int sval, bool *use_charge, bool powerful, bool magic, bool known);
index 7c2a226..9318f2a 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-item/cmd-zaprod.h"
+#include "cmd-item/cmd-zaprod.h"
 #include "action/action-limited.h"
 #include "effect/attribute-types.h"
 #include "floor/floor-object.h"
index 02a71b2..5ac503c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 int rod_effect(PlayerType *player_ptr, int sval, int dir, bool *use_charge, bool powerful);
index aabd20d..6b6476e 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-item/cmd-zapwand.h"
+#include "cmd-item/cmd-zapwand.h"
 #include "action/action-limited.h"
 #include "avatar/avatar.h"
 #include "core/window-redrawer.h"
index 947d7ae..7b18ec4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool wand_effect(PlayerType *player_ptr, int sval, int dir, bool powerful, bool magic);
index 581a5b3..eaec812 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-visual/cmd-draw.h"
+#include "cmd-visual/cmd-draw.h"
 #include "core/asking-player.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
@@ -205,8 +205,7 @@ void do_cmd_messages(int num_now)
     std::string shower_str("");
     std::string finder_str("");
     std::string shower("");
-    int wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     auto num_lines = hgt - 4;
     auto n = message_num();
     auto i = 0;
@@ -238,7 +237,7 @@ void do_cmd_messages(int num_now)
         }
 
         for (; j < num_lines; j++) {
-            term_erase(0, num_lines + 1 - j, 255);
+            term_erase(0, num_lines + 1 - j);
         }
 
         prt(format(_("以前のメッセージ %d-%d 全部で(%d)", "Message Recall (%d-%d of %d)"), i, i + j - 1, n), 0, 0);
index 1363d8b..730ab1e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_redraw(PlayerType *player_ptr);
index d19fc39..d0ab409 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-visual/cmd-map.h"
+#include "cmd-visual/cmd-map.h"
 #include "autopick/autopick-methods-table.h"
 #include "autopick/autopick-util.h"
 #include "io/input-key-acceptor.h"
@@ -24,8 +24,7 @@ void do_cmd_view_map(PlayerType *player_ptr)
     int cy, cx;
     display_map(player_ptr, &cy, &cx);
     if (autopick_list.empty() || player_ptr->wild_mode) {
-        int wid, hgt;
-        term_get_size(&wid, &hgt);
+        const auto [wid, hgt] = term_get_size();
         constexpr auto msg = _("何かキーを押すとゲームに戻ります", "Hit any key to continue");
         const auto center_x = (wid - std::string_view(msg).length()) / 2;
         put_str(msg, hgt - 1, center_x);
@@ -37,8 +36,7 @@ void do_cmd_view_map(PlayerType *player_ptr)
 
     display_autopick = ITEM_DISPLAY;
     while (true) {
-        int wid, hgt;
-        term_get_size(&wid, &hgt);
+        const auto [wid, hgt] = term_get_size();
         int row_message = hgt - 1;
         put_str(_("何かキーを押してください('M':拾う 'N':放置 'D':M+N 'K':壊すアイテムを表示)",
                     " Hit M, N(for ~), K(for !), or D(same as M+N) to display auto-picker items."),
index 999f78b..a77d5ba 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_view_map(PlayerType *player_ptr);
index fbc6b6a..ce36a5b 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-visual/cmd-visuals.h"
+#include "cmd-visual/cmd-visuals.h"
 #include "cmd-visual/cmd-draw.h"
 #include "core/asking-player.h"
 #include "core/visuals-reseter.h"
index 81968f7..aca17ec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_visuals(PlayerType *player_ptr);
index bcc9c5b..c081fdd 100644 (file)
@@ -1,4 +1,4 @@
-#include "combat/attack-accuracy.h"
+#include "combat/attack-accuracy.h"
 #include "combat/combat-options-type.h"
 #include "inventory/inventory-slot-types.h"
 #include "main/sound-definitions-table.h"
index 01f2b77..e8fdb9f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 742123e..638c53f 100644 (file)
@@ -1,4 +1,4 @@
-#include "combat/attack-criticality.h"
+#include "combat/attack-criticality.h"
 #include "combat/combat-options-type.h"
 #include "inventory/inventory-slot-types.h"
 #include "main/sound-of-music.h"
index 2c71944..fce5a86 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "combat/combat-options-type.h"
 #include "main/sound-definitions-table.h"
index 0df47ad..a43f6bb 100644 (file)
@@ -1,4 +1,4 @@
-#include "combat/attack-power-table.h"
+#include "combat/attack-power-table.h"
 
 /*!
  * @brief 修行僧のターンダメージ算出テーブル
index f365fd1..64f70a7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/system-variables.h"
index 3661460..fff7df6 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターから直接攻撃を受けた時に、プレイヤーのオーラダメージで反撃する処理
  * @date 2020/05/31
  * @author Hourier
index cf682a2..309105d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class MonsterAttackPlayer;
 class PlayerType;
index b896301..d239b32 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum combat_options {
     HISSATSU_NONE = 0,
index e285007..630cd54 100644 (file)
@@ -1,4 +1,4 @@
-#include "combat/hallucination-attacks-table.h"
+#include "combat/hallucination-attacks-table.h"
 
 /*!
  * @brief 幻覚時の打撃記述テーブル / Weird melee attack types when hallucinating
index 622181d..1c0d5df 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e487081..70d3e5c 100644 (file)
@@ -1,4 +1,4 @@
-#include "combat/martial-arts-table.h"
+#include "combat/martial-arts-table.h"
 /*!
  * @brief マーシャルアーツ打撃テーブル
  */
index 9ef6c31..a0fc865 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a506e02..e9d521d 100644 (file)
@@ -1,4 +1,4 @@
-#include "combat/shoot.h"
+#include "combat/shoot.h"
 #include "artifact/fixed-art-types.h"
 #include "avatar/avatar.h"
 #include "combat/attack-criticality.h"
index e4d3603..460fd20 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 514802e..5fb9587 100644 (file)
@@ -1,4 +1,4 @@
-#include "combat/slaying.h"
+#include "combat/slaying.h"
 #include "artifact/fixed-art-types.h"
 #include "effect/attribute-types.h"
 #include "mind/mind-samurai.h"
index 47cf3f6..8a02ca8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 1f9cd1b..cdd910d 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/asking-player.h"
+#include "core/asking-player.h"
 #include "cmd-io/macro-util.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
index 8ffacdc..e570edf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "util/flag-group.h"
 #include <optional>
index 9ad5548..ef8da97 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/disturbance.h"
+#include "core/disturbance.h"
 #include "action/travel-execution.h"
 #include "game-option/disturbance-options.h"
 #include "game-option/map-screen-options.h"
index 1421e4b..2a9e929 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void disturb(PlayerType *player_ptr, bool stop_search, bool flush_output);
index 48764c2..f4b9bd9 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @file game-closer.cpp
  * @brief ゲーム終了処理
  * @author Hourier
index e6571e6..efcb76d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * @file game-closer.h
index 516cf76..e7c203f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ゲームプレイのメインルーチン
  * @date 2020/05/10
  * @author Hourier
index 738ff87..377442b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void play_game(PlayerType *player_ptr, bool new_game, bool browsing_movie);
index 501c4ef..1b57208 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/magic-effects-timeout-reducer.h"
+#include "core/magic-effects-timeout-reducer.h"
 #include "game-option/birth-options.h"
 #include "mind/mind-force-trainer.h"
 #include "mind/mind-magic-resistance.h"
index 2ab31b6..bce2309 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void reduce_magic_effects_timeout(PlayerType *player_ptr);
index 7c4583e..c0e70df 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/object-compressor.h"
+#include "core/object-compressor.h"
 #include "core/window-redrawer.h"
 #include "floor/floor-object.h"
 #include "floor/geometry.h"
index cd9e6fb..36b6cd7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void compact_objects(PlayerType *player_ptr, int size);
index 12f4e72..290aeca 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/player-processor.h"
+#include "core/player-processor.h"
 #include "action/run-execution.h"
 #include "action/travel-execution.h"
 #include "core/disturbance.h"
@@ -79,7 +79,7 @@ static void process_fishing(PlayerType *player_ptr)
         auto *floor_ptr = player_ptr->current_floor_ptr;
         const auto wild_level = wilderness[player_ptr->wilderness_y][player_ptr->wilderness_x].level;
         const auto level = floor_ptr->is_in_dungeon() ? floor_ptr->dun_level : wild_level;
-        const auto r_idx = get_mon_num(player_ptr, 0, level, 0);
+        const auto r_idx = get_mon_num(player_ptr, 0, level, PM_NONE);
         msg_print(nullptr);
         if (MonsterRace(r_idx).is_valid() && one_in_(2)) {
             POSITION y, x;
index e6c209d..55a37c1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 extern bool load; /*!<ロード処理中の分岐フラグ*/
 extern bool can_save;
index 72da391..83c1ff2 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/score-util.h"
+#include "core/score-util.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
 #include "system/player-type-definition.h"
index 2231834..cd76f12 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0576721..8309fef 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file scores.c
  * @brief ハイスコア処理 / Highscores handling
  * @date 2014/07/14
index ab93764..892d429 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index aab7395..79b6cde 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/show-file.h"
+#include "core/show-file.h"
 #include "core/asking-player.h"
 #include "io/files-util.h"
 #include "io/input-key-acceptor.h"
@@ -115,7 +115,7 @@ static void show_file_aux_line(std::string_view str, int cy, std::string_view sh
         i++;
     }
 
-    term_erase(cx, cy, 255);
+    term_erase(cx, cy);
 }
 
 /*!
@@ -139,8 +139,7 @@ bool show_file(PlayerType *player_ptr, bool show_version, std::string_view name_
 {
     TermCenteredOffsetSetter tcos(MAIN_TERM_MIN_COLS, std::nullopt);
 
-    int wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
 
     char hook[68][32]{};
     auto stripped_names = str_split(name_with_tag, '#');
@@ -293,7 +292,7 @@ bool show_file(PlayerType *player_ptr, bool show_version, std::string_view name_
         }
 
         while (row_count < rows) {
-            term_erase(0, row_count + 2, 255);
+            term_erase(0, row_count + 2);
             row_count++;
         }
 
index a84c1f8..4d2051f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <stdint.h>
 #include <string_view>
index f95335d..c39217c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Special internal key
index cbe6eea..757e8fe 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/speed-table.h"
+#include "core/speed-table.h"
 #include <vector>
 
 /*!
index 2f2ddee..41ad9e4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 86f9358..506ffce 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/stuff-handler.h"
+#include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
 #include "player/player-status.h"
 #include "system/player-type-definition.h"
index e943223..59e8dd3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index edbf5ef..bb65ec6 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/turn-compensator.h"
+#include "core/turn-compensator.h"
 #include "floor/floor-town.h"
 #include "player-info/race-types.h"
 #include "store/store-owners.h"
index fdbd40d..e6045ee 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9641032..12a9db4 100644 (file)
@@ -1,4 +1,4 @@
-#include "core/visuals-reseter.h"
+#include "core/visuals-reseter.h"
 #include "game-option/special-options.h"
 #include "io/read-pref-file.h"
 #include "monster-race/monster-race.h"
index 385f2a7..db60ded 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void reset_visuals(PlayerType *player_ptr);
index a4f0a69..0ec4363 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ウィンドウの再描画処理
  * @date 2020/06/27
  * @author Hourier
@@ -48,17 +48,16 @@ void redraw_window()
  */
 static void print_dungeon(PlayerType *player_ptr)
 {
-    TERM_LEN width, height;
-    term_get_size(&width, &height);
+    const auto [wid, hgt] = term_get_size();
 
-    c_put_str(TERM_WHITE, "             ", height + ROW_DUNGEON, COL_DUNGEON);
+    c_put_str(TERM_WHITE, "             ", hgt + ROW_DUNGEON, COL_DUNGEON);
     const auto dungeon_name = map_name(player_ptr);
     TERM_LEN col = COL_DUNGEON + 6 - dungeon_name.length() / 2;
     if (col < 0) {
         col = 0;
     }
 
-    c_put_str(TERM_L_UMBER, dungeon_name, height + ROW_DUNGEON, col);
+    c_put_str(TERM_L_UMBER, dungeon_name, hgt + ROW_DUNGEON, col);
 }
 
 /*!
index 5e521d3..b8597f3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f42b6f9..9d79350 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "dungeon/dungeon-flag-types.h"
 #include "util/flag-group.h"
index 5cfd538..3917013 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class DungeonFeatureType {
     WINNER,
index 84c4f03..07c2593 100644 (file)
@@ -1,4 +1,4 @@
-#include "dungeon/dungeon-processor.h"
+#include "dungeon/dungeon-processor.h"
 #include "cmd-building/cmd-building.h"
 #include "cmd-io/cmd-dump.h"
 #include "core/disturbance.h"
index 83fbdcb..03c094e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void process_dungeon(PlayerType *player_ptr, bool load_game);
index 2510f31..908f28d 100644 (file)
@@ -1,4 +1,4 @@
-#include "dungeon/quest-completion-checker.h"
+#include "dungeon/quest-completion-checker.h"
 #include "dungeon/quest.h"
 #include "effect/effect-characteristics.h"
 #include "floor/cave.h"
index 7cf02ea..94b07d6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "dungeon/quest.h"
 #include "system/angband.h"
index 7c54edd..3d4161e 100644 (file)
@@ -1,4 +1,4 @@
-#include "dungeon/quest-monster-placer.h"
+#include "dungeon/quest-monster-placer.h"
 #include "dungeon/quest.h"
 #include "floor/floor-generator-util.h"
 #include "floor/geometry.h"
index 0241423..be29f93 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool place_quest_monsters(PlayerType *player_ptr);
index 10aa7d1..c8dbf87 100644 (file)
@@ -1,4 +1,4 @@
-#include "dungeon/quest.h"
+#include "dungeon/quest.h"
 #include "artifact/fixed-art-types.h"
 #include "cmd-io/cmd-dump.h"
 #include "core/asking-player.h"
@@ -12,6 +12,7 @@
 #include "locale/english.h"
 #include "main/music-definitions-table.h"
 #include "main/sound-of-music.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
@@ -184,7 +185,7 @@ void determine_random_questor(PlayerType *player_ptr, QuestType *q_ptr)
     get_mon_num_prep(player_ptr, mon_hook_quest, nullptr);
     MonsterRaceId r_idx;
     while (true) {
-        r_idx = get_mon_num(player_ptr, 0, q_ptr->level + 5 + randint1(q_ptr->level / 10), GMN_ARENA);
+        r_idx = get_mon_num(player_ptr, 0, q_ptr->level + 5 + randint1(q_ptr->level / 10), PM_ARENA);
         const auto &monrace = monraces_info[r_idx];
         if (monrace.kind_flags.has_not(MonsterKindType::UNIQUE)) {
             continue;
index cf46b43..5f5b21e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "util/enum-converter.h"
index 7081ecc..c5b623d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "util/flag-group.h"
 
 enum class AttributeType : int {
index 608c822..9c0f7ec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * project()関数に用いられる、遠隔攻撃特性ビットフラグ / Bit flags for the "project()" function
index 06e2045..e9ded01 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-feature.h"
+#include "effect/effect-feature.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h" // 暫定、後で消す.
index 57669aa..ccb8245 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index 2fefe3e..67e6bb3 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-item.h"
+#include "effect/effect-item.h"
 #include "autopick/autopick.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
index 58ca734..9776f98 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index d1b54cf..8bec2df 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-charm.h"
+#include "effect/effect-monster-charm.h"
 #include "avatar/avatar.h"
 #include "dungeon/quest.h"
 #include "effect/effect-monster-util.h"
index 4f6d430..77f174b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <optional>
index b338ef2..a69cd78 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-curse.h"
+#include "effect/effect-monster-curse.h"
 #include "effect/effect-monster-util.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-indice-types.h"
index a796275..d50f472 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 293d2f7..cbd1515 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-evil.h"
+#include "effect/effect-monster-evil.h"
 #include "effect/effect-monster-util.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
index c6221ce..fa380d7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 06f09d7..0955ae5 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-lite-dark.h"
+#include "effect/effect-monster-lite-dark.h"
 #include "effect/effect-monster-util.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags-resistance.h"
index 0274a1a..09d67a9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 8e8f877..3320bcf 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-oldies.h"
+#include "effect/effect-monster-oldies.h"
 #include "avatar/avatar.h"
 #include "effect/effect-monster-util.h"
 #include "monster-floor/monster-generator.h"
index 6f1e2c1..b8494c3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 44fc3c5..a897a9d 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-psi.h"
+#include "effect/effect-monster-psi.h"
 #include "core/window-redrawer.h"
 #include "effect/effect-monster-util.h"
 #include "floor/line-of-sight.h"
index a4d1b1a..fc66b35 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 048d357..7cb8700 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-resist-hurt.h"
+#include "effect/effect-monster-resist-hurt.h"
 #include "effect/effect-monster-util.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-brightness-flags.h"
index 7d48d5f..41a819d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 702304c..79816bb 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-monster-spirit.h"
+#include "effect/effect-monster-spirit.h"
 #include "effect/effect-monster-util.h"
 #include "hpmp/hp-mp-processor.h"
 #include "monster-race/monster-race.h"
index 17ee036..8716452 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c66eaf8..ec90be9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * 本ファイル内の行数はまともなレベルに落ち着いているので、一旦ここに留め置くこととする
  * @brief 魔法種別による各種処理切り替え
  * @date 2020/04/29
index ee941fa..0dad94b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <optional>
index 3896f87..acea76f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief effect_monster_type構造体の初期化処理
  * @date 2020/04/29
  * @author Hourier
index 605649f..7f0f898 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 09fc791..9c5a0d4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 魔法によるモンスターへの効果まとめ
  * @date 2020/04/29
  * @author Hourier
index c2e9fe9..dc295e2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index d30075f..32b8ed8 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-player-curse.h"
+#include "effect/effect-player-curse.h"
 #include "blue-magic/blue-magic-checker.h"
 #include "effect/effect-player.h"
 #include "mind/mind-mirror-master.h"
index 6bda4fd..9431503 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class EffectPlayerType;
 class PlayerType;
index 4bf4fe8..f54bf9d 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-player-oldies.h"
+#include "effect/effect-player-oldies.h"
 #include "effect/effect-player.h"
 #include "game-option/birth-options.h"
 #include "hpmp/hp-mp-processor.h"
index 46efdf5..38ebd1f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class EffectPlayerType;
 class PlayerType;
index cb508ec..406f410 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-player-resist-hurt.h"
+#include "effect/effect-player-resist-hurt.h"
 #include "artifact/fixed-art-types.h"
 #include "blue-magic/blue-magic-checker.h"
 #include "core/window-redrawer.h"
index b3a9120..5488494 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string_view>
 
index bbe51d4..b228866 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-player-spirit.h"
+#include "effect/effect-player-spirit.h"
 #include "blue-magic/blue-magic-checker.h"
 #include "core/window-redrawer.h"
 #include "effect/effect-player.h"
index 595d574..427faa5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class EffectPlayerType;
 class PlayerType;
index ddd877e..3998001 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-player-switcher.h"
+#include "effect/effect-player-switcher.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-player-curse.h"
 #include "effect/effect-player-oldies.h"
index f8f65af..552309b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class EffectPlayerType;
 class PlayerType;
index 0f6d023..b7b4263 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 魔法によるプレイヤーへの効果まとめ
  * @date 2020/04/29
  * @author Hourier
index a28b6c1..1fdaf42 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index db79674..0303299 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/effect-processor.h"
+#include "effect/effect-processor.h"
 #include "core/stuff-handler.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
index b5663d0..259baea 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index ed4a8c1..b9a23c2 100644 (file)
@@ -1,4 +1,4 @@
-#include "effect/spells-effect-util.h"
+#include "effect/spells-effect-util.h"
 #include "monster-race/race-indice-types.h"
 
 int rakubadam_m;
index 269c184..744138a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 122b335..70b0c2d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 // MSVCの警告レベルを最大に設定してあるためjson.hppが大量の警告を
 // 出力してしまうのでヘッダのインクルード時のみ警告を抑制しておく
index 9e98b41..a52d405 100644 (file)
@@ -1,4 +1,4 @@
-//     __ _____ _____ _____
+//     __ _____ _____ _____
 //  __|  |   __|     |   | |  JSON for Modern C++
 // |  |  |__   |  |  | | | |  version 3.11.2
 // |_____|_____|_____|_|___|  https://github.com/nlohmann/json
index 147c354..54ce980 100644 (file)
@@ -1,4 +1,4 @@
-#include "flavor/flag-inscriptions-table.h"
+#include "flavor/flag-inscriptions-table.h"
 #include "object-enchant/tr-types.h"
 
 #ifdef JP
index 7d75329..4348dce 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <optional>
 #include <vector>
index 65059e9..b54915d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 武器/防具/アクセサリアイテムにおける、耐性やスレイ等の表記
  * @date 2020/07/06
  * @author Hourier
index 0d724b7..8b2ae47 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index ab9c224..ddb70f7 100644 (file)
@@ -1,4 +1,4 @@
-#include "flavor/flavor-util.h"
+#include "flavor/flavor-util.h"
 #include "flavor/flag-inscriptions-table.h"
 #include "object-enchant/tr-flags.h"
 #include "object-enchant/tr-types.h"
index b0a644c..de9cd0f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 11b4911..2bde316 100644 (file)
@@ -1,4 +1,4 @@
-#include "flavor/named-item-describer.h"
+#include "flavor/named-item-describer.h"
 #include "artifact/fixed-art-types.h"
 #include "flavor/flavor-util.h"
 #include "flavor/object-flavor-types.h"
index 343fe1b..9d4dae5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 
index bedac2a..41879de 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum object_description_type {
     OD_NAME_ONLY = 0x00000001, /* Omit values, pval, inscription */
index b7008fa..7812d06 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  *  @brief オブジェクトの記述処理 / Mbject flavor code
  *  @date 2014/01/03
  *  @author
index f0308e8..aabba8b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 
index 16d4acc..377a10d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 個々のアイテム種別について、未鑑定名/鑑定後の正式な名前を取得する処理
  * @date 2020/07/07
  * @author Hourier
index 213de7b..c9b73d3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 #include <utility>
index 91cd892..b74636e 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/cave-generator.h"
+#include "floor/cave-generator.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "dungeon/quest-monster-placer.h"
 #include "floor/dungeon-tunnel-util.h"
index e54bd77..5af3fdc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 3ceb963..99e08d7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ダンジョンの壁等に関する判定関数の集合
  * @date 2020/07/18
  * @author Hourier
index 1f056d5..3d7d298 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ec17e25..f82d1fa 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/dungeon-tunnel-util.h"
+#include "floor/dungeon-tunnel-util.h"
 #include "system/angband.h"
 
 /*
index 3359f01..87a82c8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct dt_type {
     int dun_tun_rnd; /*!< ダンジョンの通路方向を掻き回す頻度(一回の試行ごとに%で判定している) */
index 76ed357..358e030 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/fixed-map-generator.h"
+#include "floor/fixed-map-generator.h"
 #include "artifact/fixed-art-generator.h"
 #include "artifact/fixed-art-types.h"
 #include "dungeon/quest.h"
index 11f7e9b..72f8347 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d6b429c..d624b0e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* Dungeon allocation "places" */
 enum dap_type : int {
index 633a7f2..6e1df18 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @brief ダンジョンの最深層 / Maximum dungeon level.
index 90ce647..798c97a 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/floor-changer.h"
+#include "floor/floor-changer.h"
 #include "action/travel-execution.h"
 #include "dungeon/quest-monster-placer.h"
 #include "dungeon/quest.h"
index 21ea1a6..ce6483a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void change_floor(PlayerType *player_ptr);
index e9de431..315b61e 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/floor-events.h"
+#include "floor/floor-events.h"
 #include "cmd-io/cmd-dump.h"
 #include "core/disturbance.h"
 #include "core/window-redrawer.h"
index 213b345..21e5478 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 class FloorType;
index c251fa0..5179610 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 #define SAFE_MAX_ATTEMPTS 5000 /*!< 生成処理基本試行回数 */
index 500fec8..3abe0cc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ダンジョンの生成 / Dungeon generation
  * @date 2014/01/04
  * @author
index 0ec2e8d..6504876 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class FloorType;
 class PlayerType;
index a9ef30e..c19f635 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/floor-leaver.h"
+#include "floor/floor-leaver.h"
 #include "cmd-building/cmd-building.h"
 #include "floor/cave.h"
 #include "floor/floor-events.h"
index 77c454c..d679040 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void leave_floor(PlayerType *player_ptr);
index e1bc0fd..dd1f21c 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/floor-mode-changer.h"
+#include "floor/floor-mode-changer.h"
 #include "system/player-type-definition.h"
 
 /*!
index fccaebb..2980cef 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5b57e57..6914e54 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief フロア生成時にアイテムを配置する
  * @date 2020/06/01
  * @author Hourier
index 2a78aac..64f6591 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/item-tester-hooker.h"
 #include "system/angband.h"
index 09996ab..d2c6c82 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/floor-save-util.h"
+#include "floor/floor-save-util.h"
 
 /*
  * Sign for current process used in temporary files.
index 60f3f99..d0bca0b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/monster-entity.h"
index 0b05e4b..69bff6d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 保存された階の管理 / management of the saved floor
  * @date 2014/01/04
  * @author
index 3df5223..85c2961 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 64ed59e..95ccbaa 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ダンジョン生成に利用する関数群 / Used by dungeon generation.
  * @date 2014/07/15
  * @author
index f81c864..48eaee0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index bc54036..e039f91 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/floor-town.h"
+#include "floor/floor-town.h"
 #include "system/item-entity.h"
 
 /* The towns [towns_info.size()] */
index ba8026a..22ed7a7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "store/store-util.h"
 #include "system/angband.h"
index aec5cb5..afd6087 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief フロア全体の処理に関するユーティリティ
  * @date 2019/04/24
  * @author deskull
index e0f53a0..1345b1b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index d9b9ada..07c8411 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/geometry.h"
+#include "floor/geometry.h"
 #include "floor/cave.h"
 #include "game-option/text-display-options.h"
 #include "grid/feature.h"
index c4cc8ae..9031326 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 7f66758..f2d3b8c 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/line-of-sight.h"
+#include "floor/line-of-sight.h"
 #include "floor/cave.h"
 #include "system/floor-type-definition.h"
 #include "system/player-type-definition.h"
index cd5b537..5a77a79 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b7f04f5..941cce8 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/object-allocator.h"
+#include "floor/object-allocator.h"
 #include "dungeon/quest.h"
 #include "floor/cave.h"
 #include "floor/dungeon-tunnel-util.h"
index c8af760..00422b4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "floor/floor-allocation-types.h"
 #include "system/angband.h"
index d0c9393..aa2c5ea 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/object-scanner.h"
+#include "floor/object-scanner.h"
 #include "flavor/flavor-describer.h"
 #include "floor/cave.h"
 #include "game-option/text-display-options.h"
@@ -106,18 +106,17 @@ COMMAND_CODE show_floor_items(PlayerType *player_ptr, int target_item, POSITION
     COMMAND_CODE i, m;
     int j, k, l;
     ItemEntity *o_ptr;
-    char tmp_val[80];
-    COMMAND_CODE out_index[23];
-    TERM_COLOR out_color[23];
+    char tmp_val[80]{};
+    COMMAND_CODE out_index[23]{};
+    TERM_COLOR out_color[23]{};
     std::array<std::string, 23> descriptions{};
     COMMAND_CODE target_item_label = 0;
-    OBJECT_IDX floor_list[23];
+    OBJECT_IDX floor_list[23]{};
     ITEM_NUMBER floor_num;
-    TERM_LEN wid, hgt;
-    char floor_label[52 + 1];
-    bool dont_need_to_show_weights = true;
-    term_get_size(&wid, &hgt);
-    int len = std::max((*min_width), 20);
+    char floor_label[52 + 1]{};
+    auto dont_need_to_show_weights = true;
+    const auto [wid, hgt] = term_get_size();
+    auto len = std::max((*min_width), 20);
     floor_num = scan_floor_items(player_ptr, floor_list, y, x, SCAN_FLOOR_ITEM_TESTER | SCAN_FLOOR_ONLY_MARKED, item_tester);
     auto *floor_ptr = player_ptr->current_floor_ptr;
     for (k = 0, i = 0; i < floor_num && i < 23; i++) {
index 1e50c92..af341a6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 #include "system/angband.h"
index 3c56602..66b9c95 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/pattern-walk.h"
+#include "floor/pattern-walk.h"
 #include "cmd-io/cmd-save.h"
 #include "core/asking-player.h"
 #include "dungeon/quest.h"
index 1c798eb..e9eb2ee 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5062662..f37c081 100644 (file)
@@ -1,4 +1,4 @@
-#include "floor/tunnel-generator.h"
+#include "floor/tunnel-generator.h"
 #include "floor/cave.h"
 #include "floor/dungeon-tunnel-util.h"
 #include "floor/geometry.h"
index 65ed31f..2b25460 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 15e523d..70bec41 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 荒野マップの生成とルール管理 / Wilderness generation
  * @date 2014/02/13
  * @author
index 6637bcc..3b23732 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <vector>
index c8092a1..b2aa6b1 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/auto-destruction-options.h"
+#include "game-option/auto-destruction-options.h"
 
 bool destroy_items; /* Use easy auto-destroyer */
 bool destroy_feeling; /* Apply auto-destroy as sense feeling */
index e9255fb..e01afe5 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/birth-options.h"
+#include "game-option/birth-options.h"
 
 bool smart_learn; /* Monsters learn from their mistakes (*) */
 bool smart_cheat; /* Monsters exploit players weaknesses (*) */
index 69f9308..911ed13 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index dbcf4ed..b166d45 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/cheat-options.h"
+#include "game-option/cheat-options.h"
 
 bool cheat_peek; /* Peek into object creation */
 bool cheat_hear; /* Peek into monster creation */
index 1f8d1ae..6e8df06 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 7334790..52a8a94 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum cheat_type {
     CHEAT_OBJECT = 0,
index b4d5c7e..d3a427a 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/disturbance-options.h"
+#include "game-option/disturbance-options.h"
 
 bool find_ignore_stairs; /* Run past stairs */
 bool find_ignore_doors; /* Run through open doors */
index 696c77e..6ed5288 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 6b05332..59bbed2 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/game-play-options.h"
+#include "game-option/game-play-options.h"
 
 bool stack_force_notes; /* Merge inscriptions when stacking */
 bool stack_force_costs; /* Merge discounts when stacking */
index 9884a15..3cf3b76 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 7a0ff4f..1346425 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/input-options.h"
+#include "game-option/input-options.h"
 
 bool rogue_like_commands; /* Rogue-like commands */
 bool always_pickup; /* Pick things up by default */
index e74ee36..5f65434 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 683e18a..d4d0491 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/keymap-directory-getter.h"
+#include "game-option/keymap-directory-getter.h"
 #include "game-option/input-options.h"
 #include "io/input-key-requester.h"
 #include "system/angband.h"
index 517639d..9551a5a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum keymap_mode {
     KEYMAP_MODE_ORIG = 0, /*!< オリジナルキー配置 / Mode for original keyset commands */
index 5799ba4..1bdfa18 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/map-screen-options.h"
+#include "game-option/map-screen-options.h"
 
 bool center_player; /* Center map while walking (*slow*) */
 bool center_running; /* Centering even while running */
index b2b4a3a..dc7a88e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2caee8f..d01c219 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/option-flags.h"
+#include "game-option/option-flags.h"
 #include "system/redrawing-flags-updater.h"
 
 std::array<uint32_t, MAX_WINDOW_ENTITIES> g_option_flags = {};
index 40ab7d5..33aab4b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/redrawing-flags-updater.h"
 #include "util/flag-group.h"
index 1ebc642..8b1c2cf 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/option-types-table.h"
+#include "game-option/option-types-table.h"
 #include "game-option/auto-destruction-options.h"
 #include "game-option/birth-options.h"
 #include "game-option/cheat-options.h"
index 6868530..8bffe17 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <vector>
index bc8101b..5964421 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/play-record-options.h"
+#include "game-option/play-record-options.h"
 
 bool record_fix_art; /* Record fixed artifacts */
 bool record_rand_art; /* Record random artifacts */
index d758539..0ec5525 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ec53275..400306f 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/runtime-arguments.h"
+#include "game-option/runtime-arguments.h"
 
 bool arg_sound; /* Command arg -- Request special sounds */
 int arg_sound_volume_table_index;
index ddc2627..0164f06 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ac3d6a6..976a59e 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/special-options.h"
+#include "game-option/special-options.h"
 
 byte hitpoint_warn; /* Hitpoint warning (0 to 9) */
 byte mana_warn; /* Mana color (0 to 9) */
index ecd69b0..00c7096 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 6fb59c1..02f3f8b 100644 (file)
@@ -1,4 +1,4 @@
-#include "game-option/text-display-options.h"
+#include "game-option/text-display-options.h"
 
 bool plain_descriptions; /* Plain object descriptions */
 bool plain_pickup; /* Plain pickup messages(japanese only) */
index 05de62b..85da816 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 040e750..7517fa4 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/door.h"
+#include "grid/door.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/cave.h"
 #include "grid/feature.h"
index 5d7061b..fa3c86b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 1935ae9..eaa8882 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/feature-action-flags.h"
+#include "grid/feature-action-flags.h"
 
 /*!
  * @brief 地形状態フラグテーブル /
index 357a908..6cbd501 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "grid/feature-flag-types.h"
 #include "system/angband.h"
 
index e9e4f25..5a10ae5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "util/enum-converter.h"
 
index 69b1736..b0225a1 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/feature-generator.h"
+#include "grid/feature-generator.h"
 #include "dungeon/dungeon-flag-mask.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "dungeon/quest.h"
index 4b16b80..8940b19 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a023557..52940cb 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/feature.h"
+#include "grid/feature.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/cave.h"
 #include "floor/geometry.h"
index 9b7d531..18b2d30 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 070fa31..6b18b57 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief グリッドの実装 / low level dungeon routines -BEN-
  * @date 2013/12/30
  * @author
index e7394d0..da561a1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @file grid.h
index 80b2d48..71aee4e 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/lighting-colors-table.h"
+#include "grid/lighting-colors-table.h"
 #include "term/term-color-types.h"
 
 /*!
index f1509b6..0274196 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5b338ea..e1480c2 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/object-placer.h"
+#include "grid/object-placer.h"
 #include "floor/cave.h"
 #include "floor/floor-object.h"
 #include "grid/grid.h"
index 203675f..e3e29b8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 299ebf5..4f78a00 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/stair.h"
+#include "grid/stair.h"
 #include "dungeon/quest.h"
 #include "floor/cave.h"
 #include "game-option/birth-options.h"
index 3b567d8..00d76c5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4b90160..fe4d4cc 100644 (file)
@@ -1,4 +1,4 @@
-#include "grid/trap.h"
+#include "grid/trap.h"
 #include "cmd-io/cmd-dump.h"
 #include "cmd-io/cmd-save.h"
 #include "core/disturbance.h"
index 1173454..fda68eb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "util/flag-group.h"
index fc2b8d0..27eb085 100644 (file)
@@ -1,4 +1,4 @@
-#include "hpmp/hp-mp-processor.h"
+#include "hpmp/hp-mp-processor.h"
 #include "avatar/avatar.h"
 #include "cmd-action/cmd-pet.h"
 #include "core/window-redrawer.h"
index 47d849b..850cc9b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void process_player_hp_mp(PlayerType *player_ptr);
index 270098d..2c4a8d7 100644 (file)
@@ -1,4 +1,4 @@
-#include "hpmp/hp-mp-regenerator.h"
+#include "hpmp/hp-mp-regenerator.h"
 #include "cmd-item/cmd-magiceat.h"
 #include "core/window-redrawer.h"
 #include "inventory/inventory-slot-types.h"
index 299ca40..c58ede5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d57f4e6..3117e14 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/artifact-reader.h"
+#include "info-reader/artifact-reader.h"
 #include "artifact/fixed-art-types.h"
 #include "artifact/random-art-effects.h"
 #include "info-reader/baseitem-tokens-table.h"
index 26e5c72..47f131f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 43e606a..071cf45 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief ベースアイテム定義の読み込み処理
  * @author Hourier
  * @date 2022/10/10
index 842808c..bc24753 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 0b08f64..f7a8a73 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/baseitem-tokens-table.h"
+#include "info-reader/baseitem-tokens-table.h"
 
 // clang-format off
 /*!
index 7617b6a..20a5168 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-types.h"
 #include "object-enchant/trg-types.h"
index e85a2ec..84ebcc1 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/dungeon-info-tokens-table.h"
+#include "info-reader/dungeon-info-tokens-table.h"
 #include "dungeon/dungeon-flag-types.h"
 
 /*!
index a2fdc72..dc84e24 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/dungeon-reader.h"
+#include "info-reader/dungeon-reader.h"
 #include "grid/feature.h"
 #include "info-reader/dungeon-info-tokens-table.h"
 #include "info-reader/feature-reader.h"
index 164f55d..e88f4e2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 59e40f3..3ca73ef 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/ego-reader.h"
+#include "info-reader/ego-reader.h"
 #include "artifact/random-art-effects.h"
 #include "info-reader/baseitem-tokens-table.h"
 #include "info-reader/info-reader-util.h"
index cebc1aa..56deac7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 39648a2..1b540a4 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/feature-info-tokens-table.h"
+#include "info-reader/feature-info-tokens-table.h"
 
 /*!
  * @brief 地形属性トークンの定義 / Feature info flags
index 5fb8841..453e096 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "grid/feature-flag-types.h"
 #include "system/angband.h"
index 38ffb6c..915751b 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/feature-reader.h"
+#include "info-reader/feature-reader.h"
 #include "floor/wild.h"
 #include "grid/feature.h"
 #include "grid/grid.h"
index 3e93675..e61696b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index cca0e78..e4404ca 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ゲームデータ初期化1 / Initialization (part 1) -BEN-
  * @date 2014/01/28
  * @author
index 2b8b9b3..8669a3f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <set>
 #include <string_view>
index 9494d2c..a595eed 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/general-parser.h"
+#include "info-reader/general-parser.h"
 #include "artifact/fixed-art-types.h"
 #include "dungeon/quest.h"
 #include "grid/feature.h"
index 75dc5e1..55a602e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/object-ego.h"
 #include "system/angband.h"
index f208b11..deea824 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/info-reader-util.h"
+#include "info-reader/info-reader-util.h"
 #include "artifact/random-art-effects.h"
 #include "main/angband-headers.h"
 #include "object-enchant/activation-info-table.h"
index 7008e12..9fb0800 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "util/bit-flags-calculator.h"
index cc1b850..1250130 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/magic-reader.h"
+#include "info-reader/magic-reader.h"
 #include "info-reader/info-reader-util.h"
 #include "info-reader/parse-error-types.h"
 #include "main/angband-headers.h"
index 3245254..e74ad10 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 3900479..3a94a68 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum parse_error_type : int {
     PARSE_ERROR_NONE = 0,
index aac612e..fd2f5fb 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/race-info-tokens-table.h"
+#include "info-reader/race-info-tokens-table.h"
 #include "monster-attack/monster-attack-effect.h"
 #include "monster-attack/monster-attack-table.h"
 #include "monster-race/race-ability-flags.h"
@@ -244,6 +244,7 @@ const std::unordered_map<std::string_view, MonsterAbilityType> r_info_ability_fl
        {"S_HI_DRAGON", MonsterAbilityType::S_HI_DRAGON },
        {"S_AMBERITES", MonsterAbilityType::S_AMBERITES },
        {"S_UNIQUE", MonsterAbilityType::S_UNIQUE },
+       {"S_DEAD_UNIQUE", MonsterAbilityType::S_DEAD_UNIQUE },
 };
 /* clang-format on */
 
index 21256e4..2d3f731 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-attack/monster-attack-effect.h"
 #include "monster-attack/monster-attack-table.h"
index 8b8ab2d..ac17e3b 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/race-reader.h"
+#include "info-reader/race-reader.h"
 #include "info-reader/info-reader-util.h"
 #include "info-reader/parse-error-types.h"
 #include "info-reader/race-info-tokens-table.h"
index 3e36533..3563af9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index cd6176b..b368ad9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* Random dungeon grid effects */
 enum rdge_type {
index 1527579..70ed101 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/skill-reader.h"
+#include "info-reader/skill-reader.h"
 #include "info-reader/info-reader-util.h"
 #include "info-reader/parse-error-types.h"
 #include "main/angband-headers.h"
index 88adad1..12593d3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index ba0ba9d..86b56da 100644 (file)
@@ -1,4 +1,4 @@
-#include "info-reader/vault-reader.h"
+#include "info-reader/vault-reader.h"
 #include "info-reader/info-reader-util.h"
 #include "info-reader/parse-error-types.h"
 #include "main/angband-headers.h"
index 0aa58a4..5050a87 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 743cbd4..6adbefb 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief オブジェクト選択処理
  * @date 2020/07/02
  * @author Hourier
index a39639d..32d56ba 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 #include "system/angband.h"
index 2cd17c3..7ae37ec 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/inventory-curse.h"
+#include "inventory/inventory-curse.h"
 #include "artifact/fixed-art-types.h"
 #include "core/asking-player.h"
 #include "core/disturbance.h"
index ccc2482..1a6b018 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4321f84..42a45a1 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/inventory-damage.h"
+#include "inventory/inventory-damage.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "inventory/inventory-object.h"
index d3bc344..c1dd553 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/object-broken.h"
 
index b4dfaa0..29fe4e4 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/inventory-describer.h"
+#include "inventory/inventory-describer.h"
 #include "game-option/birth-options.h"
 #include "inventory/inventory-slot-types.h"
 #include "player/player-status-flags.h"
index 7118017..8da2877 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index be608e4..f847395 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/inventory-object.h"
+#include "inventory/inventory-object.h"
 #include "core/window-redrawer.h"
 #include "flavor/flavor-describer.h"
 #include "floor/floor-object.h"
index 246d5d9..53efe0c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d69096a..48d05f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum inventory_slot_type {
     INVEN_PACK = 23, /*!< アイテムスロット…所持品(0~) */
index 25e0877..871c418 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief インベントリ関係のユーティリティ
  * @date 2020/07/02
  * @author Hourier
index 0798290..ca6e84c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 #include "system/angband.h"
index 8842596..71604a8 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/item-getter.h"
+#include "inventory/item-getter.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
 #include "game-option/input-options.h"
index ebe91d4..b8abec7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4a934ca..ee3dd69 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/item-selection-util.h"
+#include "inventory/item-selection-util.h"
 #include "io/input-key-requester.h"
 #include "object/item-use-flags.h"
 
index 9e07d5f..7aa9ce6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 #include "system/angband.h"
index 6c16d88..a302722 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/pack-overflow.h"
+#include "inventory/pack-overflow.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "flavor/flavor-describer.h"
index 8870728..a57469e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void pack_overflow(PlayerType *player_ptr);
index de609a7..d73127c 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/player-inventory.h"
+#include "inventory/player-inventory.h"
 #include "autopick/autopick.h"
 #include "core/asking-player.h"
 #include "core/disturbance.h"
index c0cbb93..5238ee5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 #include "system/angband.h"
index ec0020d..99a5980 100644 (file)
@@ -1,4 +1,4 @@
-#include "inventory/recharge-processor.h"
+#include "inventory/recharge-processor.h"
 #include "core/disturbance.h"
 #include "core/window-redrawer.h"
 #include "flavor/flavor-describer.h"
index dbd54c8..4925441 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void recharge_magic_items(PlayerType *player_ptr);
index 6c37bfa..c26a5b5 100644 (file)
@@ -1,4 +1,4 @@
-#include "io-dump/character-dump.h"
+#include "io-dump/character-dump.h"
 #include "artifact/fixed-art-types.h"
 #include "avatar/avatar.h"
 #include "cmd-building/cmd-building.h"
index efeea8f..4adf25d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f0a901d..e970578 100644 (file)
@@ -1,4 +1,4 @@
-#include "io-dump/dump-remover.h"
+#include "io-dump/dump-remover.h"
 #include "io-dump/dump-util.h"
 #include "io/read-pref-file.h"
 #include "term/z-form.h"
index 85186e2..3ee062a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <filesystem>
 #include <string_view>
index 1460a32..e9eb7c9 100644 (file)
@@ -1,4 +1,4 @@
-#include "io-dump/dump-util.h"
+#include "io-dump/dump-util.h"
 #include "floor/geometry.h"
 #include "game-option/keymap-directory-getter.h"
 #include "game-option/special-options.h"
@@ -277,8 +277,7 @@ void browser_cursor(char ch, int *column, IDX *grp_cur, int grp_cnt, IDX *list_c
 
     if ((ddx[d] > 0) && ddy[d]) {
         int browser_rows;
-        int wid, hgt;
-        term_get_size(&wid, &hgt);
+        const auto [wid, hgt] = term_get_size();
         browser_rows = hgt - 8;
         if (!col) {
             int old_grp = grp;
index cdec972..e9d4144 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/terrain-type-definition.h"
index afe8120..21f5892 100644 (file)
@@ -1,4 +1,4 @@
-#include "io-dump/player-status-dump.h"
+#include "io-dump/player-status-dump.h"
 #include "view/display-player.h"
 
 /*!
index bfc1909..d022569 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 6d4e675..4111d02 100644 (file)
@@ -1,4 +1,4 @@
-#include "io-dump/random-art-info-dumper.h"
+#include "io-dump/random-art-info-dumper.h"
 #include "floor/floor-town.h"
 #include "inventory/inventory-slot-types.h"
 #include "io/files-util.h"
@@ -7,10 +7,12 @@
 #include "system/item-entity.h"
 #include "system/player-type-definition.h"
 #include "util/angband-files.h"
+#include "util/finalizer.h"
 #include "view/display-messages.h"
 #include "wizard/artifact-analyzer.h"
 #include "wizard/fixed-artifacts-spoiler.h"
 #include "wizard/spoiler-util.h"
+#include <sstream>
 
 /*!
  * @brief ランダムアーティファクト1件をスポイラー出力する /
  * @param art_ptr 記述内容を収めた構造体参照ポインタ
  * Fill in an object description structure for a given object
  */
-static void spoiler_print_randart(ItemEntity *o_ptr, obj_desc_list *art_ptr)
+static void spoiler_print_randart(ItemEntity *o_ptr, obj_desc_list *art_ptr, std::ofstream &ofs)
 {
-    pval_info_type *pval_ptr = &art_ptr->pval_info;
-    fprintf(spoiler_file, "%s\n", art_ptr->description);
+    const auto finalizer = util::make_finalizer([art_ptr, &ofs]() {
+        ofs << spoiler_indent << art_ptr->misc_desc << "\n\n";
+    });
+    const auto *pval_ptr = &art_ptr->pval_info;
+    ofs << art_ptr->description << '\n';
     if (!o_ptr->is_fully_known()) {
-        fprintf(spoiler_file, _("%s不明\n", "%sUnknown\n"), spoiler_indent);
-    } else {
-        if (pval_ptr->pval_desc[0]) {
-            spoiler_outlist(std::string(pval_ptr->pval_desc).append(_("の修正:", " to")).data(), pval_ptr->pval_affects, item_separator);
-        }
+        ofs << format(_("%s不明\n", "%sUnknown\n"), spoiler_indent.data());
+        return;
+    }
 
-        spoiler_outlist(_("対:", "Slay"), art_ptr->slays, item_separator);
-        spoiler_outlist(_("武器属性:", ""), art_ptr->brands, list_separator);
-        spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, item_separator);
-        spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, item_separator);
-        spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustains, item_separator);
-        spoiler_outlist("", art_ptr->misc_magic, list_separator);
-        if (art_ptr->activation) {
-            fprintf(spoiler_file, _("%s発動: %s\n", "%sActivates for %s\n"), spoiler_indent, art_ptr->activation);
-        }
+    if (!pval_ptr->pval_desc.empty()) {
+        std::stringstream ss;
+        ss << pval_ptr->pval_desc << _("の修正:", " to");
+        spoiler_outlist(ss.str(), pval_ptr->pval_affects, item_separator, ofs);
     }
 
-    fprintf(spoiler_file, "%s%s\n\n", spoiler_indent, art_ptr->misc_desc);
+    spoiler_outlist(_("対:", "Slay"), art_ptr->slays, item_separator, ofs);
+    spoiler_outlist(_("武器属性:", ""), art_ptr->brands, list_separator, ofs);
+    spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, item_separator, ofs);
+    spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, item_separator, ofs);
+    spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustenances, item_separator, ofs);
+    spoiler_outlist("", art_ptr->misc_magic, list_separator, ofs);
+    if (!art_ptr->activation.empty()) {
+        ofs << format(_("%s発動: %s\n", "%sActivates for %s\n"), spoiler_indent.data(), art_ptr->activation.data());
+    }
 }
 
 /*!
@@ -50,7 +56,7 @@ static void spoiler_print_randart(ItemEntity *o_ptr, obj_desc_list *art_ptr)
  * @param o_ptr ランダムアーティファクトのオブジェクト構造体参照ポインタ
  * @param tval 出力したいランダムアーティファクトの種類
  */
-static void spoil_random_artifact_aux(PlayerType *player_ptr, ItemEntity *o_ptr, ItemKindType tval)
+static void spoil_random_artifact_aux(PlayerType *player_ptr, ItemEntity *o_ptr, ItemKindType tval, std::ofstream &ofs)
 {
     obj_desc_list artifact;
     if (!o_ptr->is_known() || !o_ptr->is_random_artifact() || (o_ptr->bi_key.tval() != tval)) {
@@ -58,54 +64,49 @@ static void spoil_random_artifact_aux(PlayerType *player_ptr, ItemEntity *o_ptr,
     }
 
     random_artifact_analyze(player_ptr, o_ptr, &artifact);
-    spoiler_print_randart(o_ptr, &artifact);
+    spoiler_print_randart(o_ptr, &artifact, ofs);
 }
 
 /*!
- * @brief ランダムアーティファクト内容をスポイラー出力するメインルーチン /
- * Create a list file for random artifacts
- * @param fname 出力ファイル名
+ * @brief ランダムアーティファクト内容をスポイラー出力するメインルーチン
+ * @param player_ptr プレイヤーへの参照ポインタ
  */
-void spoil_random_artifact(PlayerType *player_ptr, concptr fname)
+void spoil_random_artifact(PlayerType *player_ptr)
 {
-    const auto &path = path_build(ANGBAND_DIR_USER, fname);
-    spoiler_file = angband_fopen(path, FileOpenMode::WRITE);
-    if (!spoiler_file) {
+    const auto &path = path_build(ANGBAND_DIR_USER, "randifact.txt");
+    std::ofstream ofs(path);
+    if (!ofs) {
         msg_print("Cannot create list file.");
         return;
     }
 
-    spoiler_underline("Random artifacts list.\r");
+    spoiler_underline("Random artifacts list.\r", ofs);
     for (const auto &[tval_list, name] : group_artifact_list) {
         for (auto tval : tval_list) {
             for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
                 auto *q_ptr = &player_ptr->inventory_list[i];
-                spoil_random_artifact_aux(player_ptr, q_ptr, tval);
+                spoil_random_artifact_aux(player_ptr, q_ptr, tval, ofs);
             }
 
             for (int i = 0; i < INVEN_PACK; i++) {
                 auto *q_ptr = &player_ptr->inventory_list[i];
-                spoil_random_artifact_aux(player_ptr, q_ptr, tval);
+                spoil_random_artifact_aux(player_ptr, q_ptr, tval, ofs);
             }
 
             const auto *store_ptr = &towns_info[1].stores[StoreSaleType::HOME];
             for (int i = 0; i < store_ptr->stock_num; i++) {
                 auto *q_ptr = &store_ptr->stock[i];
-                spoil_random_artifact_aux(player_ptr, q_ptr, tval);
+                spoil_random_artifact_aux(player_ptr, q_ptr, tval, ofs);
             }
 
             store_ptr = &towns_info[1].stores[StoreSaleType::MUSEUM];
             for (int i = 0; i < store_ptr->stock_num; i++) {
                 auto *q_ptr = &store_ptr->stock[i];
-                spoil_random_artifact_aux(player_ptr, q_ptr, tval);
+                spoil_random_artifact_aux(player_ptr, q_ptr, tval, ofs);
             }
         }
     }
 
-    if (ferror(spoiler_file) || angband_fclose(spoiler_file)) {
-        msg_print("Cannot close list file.");
-        return;
-    }
-
-    msg_print("Successfully created a list file.");
+    const auto mes = ofs.good() ? "Successfully created a list file." : "Failed to create a list file.";
+    msg_print(mes);
 }
index 7d49fe4..22442c0 100644 (file)
@@ -1,6 +1,4 @@
-#pragma once
-
-#include "system/angband.h"
+#pragma once
 
 class PlayerType;
-void spoil_random_artifact(PlayerType *player_ptr, concptr fname);
+void spoil_random_artifact(PlayerType *player_ptr);
index 446b01d..69463b4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 一部職業でのみダンプする能力の出力処理
  * @date 2020/03/07
  * @author Hourier
index 76bb44e..330dfb4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c802624..1e515f3 100644 (file)
@@ -1,4 +1,4 @@
-#include "io/command-repeater.h"
+#include "io/command-repeater.h"
 #include "io/input-key-requester.h"
 #include "util/int-char-converter.h"
 
index f9db57f..b6c40b8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9cad659..0d72e38 100644 (file)
@@ -1,4 +1,4 @@
-#include "io/cursor.h"
+#include "io/cursor.h"
 #include "core/stuff-handler.h"
 #include "effect/effect-characteristics.h"
 #include "effect/spells-effect-util.h"
@@ -104,9 +104,7 @@ void print_path(PlayerType *player_ptr, POSITION y, POSITION x)
  */
 bool change_panel(PlayerType *player_ptr, POSITION dy, POSITION dx)
 {
-    TERM_LEN wid, hgt;
-    get_screen_size(&wid, &hgt);
-
+    const auto [wid, hgt] = get_screen_size();
     POSITION y = panel_row_min + dy * hgt / 2;
     POSITION x = panel_col_min + dx * wid / 2;
 
@@ -145,8 +143,7 @@ bool change_panel(PlayerType *player_ptr, POSITION dy, POSITION dx)
  */
 void panel_bounds_center(void)
 {
-    TERM_LEN wid, hgt;
-    get_screen_size(&wid, &hgt);
+    const auto [wid, hgt] = get_screen_size();
     panel_row_max = panel_row_min + hgt - 1;
     panel_row_prt = panel_row_min - 1;
     panel_col_max = panel_col_min + wid - 1;
index dda9406..9def126 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d5acca9..f3c96eb 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 異常発生時のゲーム緊急終了処理
  * @date 2020/03/01
  * @author Hourier
index 7d7f0b4..c261063 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*
  * Windowsのコードからは呼ばれない。よってVSからは見えない
  */
index 098c341..76eb5b3 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ファイル入出力管理 / Purpose: code dealing with files (and death)
  * @date 2014/01/28
  * @author
index 2ea46c8..7154b63 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <filesystem>
index be85573..6843595 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief Index of spell type names
  */
 
index ea60992..3c6f772 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 #include <vector>
index 3f70013..f8ba3e5 100644 (file)
@@ -1,4 +1,4 @@
-#include "io/input-key-acceptor.h"
+#include "io/input-key-acceptor.h"
 #include "cmd-io/macro-util.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
index 1180b82..8193903 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e5f38d7..5a09f1a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief キー入力に応じてゲーム内コマンドを実行する
  * @date 2022/02/20
  * @author Hourier
@@ -670,7 +670,7 @@ void process_command(PlayerType *player_ptr)
         break;
     }
     case KTRL('V'): {
-        spoil_random_artifact(player_ptr, "randifact.txt");
+        spoil_random_artifact(player_ptr);
         break;
     }
     case '`': {
index c417b92..ef259bb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool enter_wizard_mode(PlayerType *player_ptr);
index 0f9ddff..84c21f1 100644 (file)
@@ -1,4 +1,4 @@
-#include "io/input-key-requester.h"
+#include "io/input-key-requester.h"
 #include "cmd-io/cmd-menu-content-table.h"
 #include "cmd-io/macro-util.h"
 #include "core/asking-player.h" //!< @todo 相互依存している、後で何とかする.
index d77bcf8..76b10c1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "game-option/keymap-directory-getter.h"
 #include "system/angband.h"
index 1815ec9..7fc64f5 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief prefファイルの内容を解釈しメモリに展開する
  * @date 2020/03/01
  * @author Hourier
index 0fc5f65..5fced6e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0768718..bd66b61 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 突然変異の一覧を出力する
  * @date 2020/04/24
  * @author Hourier
index 887e166..d5d9957 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2d4348b..b69ce43 100644 (file)
@@ -1,4 +1,4 @@
-#include "io/pref-file-expressor.h"
+#include "io/pref-file-expressor.h"
 #include "game-option/runtime-arguments.h"
 #include "player-info/class-info.h"
 #include "player-info/race-info.h"
index 50bb930..659b26c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b7d9d30..3d1c284 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief プレイヤーのインターフェイスに関するコマンドの実装 / Interface commands
  * @date 2023/04/30
  * @author Mogami & Hourier
index c62fd7f..eed8f20 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <filesystem>
index 945fb22..b20cce1 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 録画・再生機能
  * @date 2014/01/02
  * @author 2014 Deskull rearranged comment for Doxygen.
@@ -499,9 +499,8 @@ static bool get_nextbuf(char *buf)
 /* プレイホストのマップが大きいときクライアントのマップもリサイズする */
 static void update_term_size(int x, int y, int len)
 {
-    int ox, oy;
     int nx, ny;
-    term_get_size(&ox, &oy);
+    const auto [ox, oy] = term_get_size();
     nx = ox;
     ny = oy;
 
index 30332e4..15f1237 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <filesystem>
 #include <string_view>
index d39aa58..44a6945 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file report.c
  * @brief スコアサーバ転送機能の実装
  * @date 2014/07/14
@@ -145,9 +145,7 @@ concptr make_screen_dump(PlayerType *player_ptr)
         "</pre>\n"
         "</body>\n</html>\n";
 
-    int wid, hgt;
-    term_get_size(&wid, &hgt);
-
+    const auto [wid, hgt] = term_get_size();
     std::stringstream screen_ss;
 
     auto &rfu = RedrawingFlagsUpdater::get_instance();
index 46418b7..7b94824 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ebedc9d..211c548 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 画面描画のユーティリティ
  * @date 2018/09/25
  * @author
@@ -88,26 +88,25 @@ void resize_map()
 }
 
 /*!
- * @brief 現在のコンソール表示の縦横を返す。 /
- * Get term size and calculate screen size
- * @param wid_p コンソールの表示幅文字数を返す
- * @param hgt_p コンソールの表示行数を返す
+ * @brief 現在のコンソール表示の縦横を返す
  */
-void get_screen_size(TERM_LEN *wid_p, TERM_LEN *hgt_p)
+std::pair<int, int> get_screen_size()
 {
-    term_get_size(wid_p, hgt_p);
-    *hgt_p -= ROW_MAP + 2;
-    *wid_p -= COL_MAP + 2;
+    auto [width, height] = term_get_size();
+    height -= ROW_MAP + 2;
+    width -= COL_MAP + 2;
     if (use_bigtile) {
-        *wid_p /= 2;
+        width /= 2;
     }
+
+    return { width, height };
 }
 
 /*
  * Determines if a map location is currently "on screen" -RAK-
  * Note that "panel_contains(Y,X)" always implies "in_bounds2(Y,X)".
  */
-bool panel_contains(POSITION y, POSITION x)
+bool panel_contains(int y, int x)
 {
     return (y >= panel_row_min) && (y <= panel_row_max) && (x >= panel_col_min) && (x <= panel_col_max);
 }
index c40f899..79a7161 100644 (file)
@@ -1,7 +1,7 @@
-#pragma once
+#pragma once
 
-#include "system/angband.h"
+#include <utility>
 
-void get_screen_size(TERM_LEN *wid_p, TERM_LEN *hgt_p);
+std::pair<int, int> get_screen_size();
 void resize_map(void);
-bool panel_contains(POSITION y, POSITION x);
+bool panel_contains(int y, int x);
index 2581019..2c671b2 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file signal-handlers.c
  * @brief シグナルハンドラの管理 / Controlling signal handlers
  * @date 2020/02/23
@@ -89,7 +89,7 @@ static void handle_signal_simple(int sig)
         quit(_("強制終了", "interrupt"));
     } else if (signal_count >= 4) {
         term_xtra(TERM_XTRA_NOISE, 0);
-        term_erase(0, 0, 255);
+        term_erase(0, 0);
         term_putstr(0, 0, -1, TERM_WHITE, _("熟慮の上の自殺!", "Contemplating suicide!"));
         term_fresh();
     } else if (signal_count >= 2) {
@@ -118,9 +118,7 @@ static void handle_signal_simple(int sig)
  */
 static void handle_signal_abort(int sig)
 {
-    int wid, hgt;
-    term_get_size(&wid, &hgt);
-
+    const auto [wid, hgt] = term_get_size();
     (void)signal(sig, SIG_IGN);
     if (!w_ptr->character_generated || w_ptr->character_saved) {
         quit(nullptr);
@@ -130,7 +128,7 @@ static void handle_signal_abort(int sig)
     forget_view(p_ptr->current_floor_ptr);
     clear_mon_lite(p_ptr->current_floor_ptr);
 
-    term_erase(0, hgt - 1, 255);
+    term_erase(0, hgt - 1);
     term_putstr(0, hgt - 1, -1, TERM_RED, _("恐ろしいソフトのバグが飛びかかってきた!", "A gruesome software bug LEAPS out at you!"));
 
     term_putstr(45, hgt - 1, -1, TERM_RED, _("緊急セーブ...", "Panic save..."));
index 908b4fd..47b4d23 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 extern int16_t signal_count;
index a995616..5106707 100644 (file)
@@ -1,4 +1,4 @@
-#include "io/tokenizer.h"
+#include "io/tokenizer.h"
 
 /*!
  * @brief 各種データテキストをトークン単位に分解する / Extract the first few "tokens" from a buffer
index 2c041b7..75c8c65 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 586d161..f2a5c08 100644 (file)
@@ -1,4 +1,4 @@
-#include "io/uid-checker.h"
+#include "io/uid-checker.h"
 #include "system/angband.h"
 #if defined(SET_UID) && defined(SAFE_SETUID) && defined(SAFE_SETUID_POSIX)
 #include "main-unix/unix-user-ids.h"
index eec5bff..6dcebf9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 void safe_setuid_drop();
 void safe_setuid_grab();
index f5a2e91..d770506 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 日記へのメッセージ追加処理
  * @date 2020/03/08
  * @author Hourier
index f385b78..f1ebaa8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string_view>
 #ifdef JP
index 96a4677..fa37fcf 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief アイテムのフレーバー初期化 (未鑑定名のシャッフル処理)
  * @author Hourier
  * @date 2022/12/28
index 78cb77d..dd6401c 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 void initialize_items_flavor();
index 00c6213..910f4cc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自動拾いの登録状況を表示する
  * @date 2020/04/23
  * @author Hourier
index 58a0af1..380a1e6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_reload_autopick(PlayerType *player_ptr);
index d863049..1b0241c 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 技能の経験を表示する
  * @date 2020/04/23
  * @author Hourier
index a97e8f4..ded38be 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_knowledge_weapon_exp(PlayerType *player_ptr);
index 50d26c4..ad79efd 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 地形に関する情報を表示する
  * @date 2020/04/24
  * @author Hourier
@@ -92,7 +92,7 @@ static void display_feature_list(int col, int row, int per_page, FEAT_IDX *feat_
     }
 
     for (; i < per_page; i++) {
-        term_erase(col, row + i, 255);
+        term_erase(col, row + i);
     }
 }
 
@@ -106,9 +106,7 @@ void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX direct_f
     TERM_COLOR attr_old[F_LIT_MAX] = {};
     char char_old[F_LIT_MAX] = {};
 
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-
+    const auto [wid, hgt] = term_get_size();
     std::vector<FEAT_IDX> feat_idx(terrains_info.size());
 
     concptr feature_group_text[] = { "terrains", nullptr };
index 7bcad5d..ea76743 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 7f325f1..943fee3 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 装備の耐性を表示する
  * @date 2020/04/20
  * @author Hourier
index 791a8e0..62563a2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_knowledge_inventory(PlayerType *player_ptr);
index 7886d65..ad29257 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 既知のアイテムとアーティファクトを表示する
  * @date 2020/04/23
  * @author Hourier
@@ -211,7 +211,7 @@ static void display_object_list(int col, int row, int per_page, const std::vecto
     }
 
     for (; i < per_page; i++) {
-        term_erase(col, row + i, 255);
+        term_erase(col, row + i);
     }
 }
 
@@ -245,7 +245,7 @@ void do_cmd_knowledge_objects(PlayerType *player_ptr, bool *need_redraw, bool vi
     TermCenteredOffsetSetter tcos(MAIN_TERM_MIN_COLS, std::nullopt);
 
     short object_old, object_top;
-    short grp_idx[100];
+    short grp_idx[100]{};
     int object_cnt;
 
     bool visual_list = false;
@@ -253,10 +253,8 @@ void do_cmd_knowledge_objects(PlayerType *player_ptr, bool *need_redraw, bool vi
     byte char_left = 0;
     byte mode;
 
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-
-    int browser_rows = hgt - 8;
+    const auto [wid, hgt] = term_get_size();
+    auto browser_rows = hgt - 8;
     std::vector<short> object_idx(baseitems_info.size());
 
     int len;
index 238a131..eca86f7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_knowledge_artifacts(PlayerType *player_ptr);
index d6e7e3e..dd4b588 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file knowledge-monsters.cpp
  * @brief 既知のモンスターに関する情報を表示する
  * @date 2020/04/24
@@ -266,7 +266,7 @@ static void display_monster_list(int col, int row, int per_page, const std::vect
             c_prt(attr, format("%d", enum2i(r_idx)), row + i, 62);
         }
 
-        term_erase(69, row + i, 255);
+        term_erase(69, row + i);
         term_queue_bigchar(use_bigtile ? 69 : 70, row + i, r_ptr->x_attr, r_ptr->x_char, 0, 0);
         if (!visual_only) {
             if (r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE)) {
@@ -278,7 +278,7 @@ static void display_monster_list(int col, int row, int per_page, const std::vect
     }
 
     for (; i < per_page; i++) {
-        term_erase(col, row + i, 255);
+        term_erase(col, row + i);
     }
 }
 
@@ -294,8 +294,7 @@ void do_cmd_knowledge_monsters(PlayerType *player_ptr, bool *need_redraw, bool v
 {
     TermCenteredOffsetSetter tcos(MAIN_TERM_MIN_COLS, std::nullopt);
 
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     std::vector<MonsterRaceId> r_idx_list;
     std::vector<IDX> grp_idx;
 
index 47f987d..88b5d8a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <optional>
index c852f28..88a617f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 突然変異の一覧を出力する
  * @date 2020/04/24
  * @author Hourier
index d1fba21..9400241 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_knowledge_mutations(PlayerType *player_ptr);
index 48caf85..78a2256 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 既知のクエストを表示する
  * @date 2020/04/23
  * @author Hourier
index 9326bcf..756cfe4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "dungeon/quest.h"
 #include "system/angband.h"
index b04c93f..fc1810f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自己に関する情報を表示する
  * @date 2020/04/24
  * @author Hourier
index c30fdb6..cffcc34 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_knowledge_virtues(PlayerType *player_ptr);
index 4c0b45d..8ce65b4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 既知/存命のユニークを表示する
  * @date 2020/04/23
  * @author Hourier
index 535d511..6ba8c33 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_knowledge_uniques(PlayerType *player_ptr, bool is_alive);
index 7e14b45..eed3f58 100644 (file)
@@ -1,4 +1,4 @@
-#include "knowledge/lighting-level-table.h"
+#include "knowledge/lighting-level-table.h"
 
 /*!
  * @brief キャラクタ色の明暗表現
index 9a57760..bac05a2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/terrain-type-definition.h"
index fb6b1ea..5d0d7bc 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief シンボルテキストの配列群
  * @date 2020/03/08
  * @author Hourier
index 7a35c8c..d508139 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e30be72..7d99b24 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief オブジェクト種別を表すテキストの配列群
  * @date 2020/03/08
  * @author Hourier
index aaa9a53..7a49415 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <vector>
index 6ab693c..d8771ba 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/angband-version-comparer.h"
+#include "load/angband-version-comparer.h"
 #include "system/angband-version.h"
 #include "world/world.h"
 
index ec4f054..c806901 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 1494721..8cc5caa 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/birth-loader.h"
+#include "load/birth-loader.h"
 #include "birth/quick-start.h"
 #include "load/angband-version-comparer.h"
 #include "load/load-util.h"
index 7e24c65..15c3973 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 void load_quick_start(void);
index 1aa3390..d9a93ff 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/dummy-loader.h"
+#include "load/dummy-loader.h"
 #include "load/angband-version-comparer.h"
 #include "load/load-util.h"
 #include "load/monster/monster-loader-factory.h"
index fbde072..c8a4184 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void rd_dummy1(void);
index 7947386..0882488 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/dungeon-loader.h"
+#include "load/dungeon-loader.h"
 #include "dungeon/quest.h"
 #include "floor/floor-save-util.h"
 #include "floor/floor-save.h"
index 822c82b..34d61f9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 02d803b..18906f6 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief その他の情報を読み込む処理
  * @date 2020/07/05
  * @author Hourier
index feb3186..3a590c4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void rd_extra(PlayerType *player_ptr);
index f79dd39..8761ca4 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/floor-loader.h"
+#include "load/floor-loader.h"
 #include "floor/floor-generator.h"
 #include "floor/floor-object.h"
 #include "floor/floor-save-util.h"
index c8cc21b..8c42fd6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fceb663..201693e 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/info-loader.h"
+#include "load/info-loader.h"
 #include "game-option/runtime-arguments.h"
 #include "load/angband-version-comparer.h"
 #include "load/load-util.h"
index 16b0f1d..c06f64f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 void rd_version_info(void);
 void rd_randomizer(void);
index 9f3be15..e15b455 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/inventory-loader.h"
+#include "load/inventory-loader.h"
 #include "inventory/inventory-slot-types.h"
 #include "load/item/item-loader-factory.h"
 #include "load/load-util.h"
index a22475b..7751e25 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 29fbc64..111b25c 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/item/item-loader-base.h"
+#include "load/item/item-loader-base.h"
 #include "artifact/fixed-art-types.h"
 #include "load/angband-version-comparer.h"
 #include "load/load-util.h"
index 56eb9cc..a930477 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class ItemLoaderBase {
index a4e866e..fe14040 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief アイテム情報をセーブデータから読み込むクラスを選択するファクトリクラス
  * @date 2021/10/16
  * @author Hourier
index 6ab5a24..c5cbafc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <memory>
 
index f0e98e6..fd388e6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class ItemLoaderVersionType {
     LOAD50,
index 5a2677f..98b44ef 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/load-util.h"
+#include "load/load-util.h"
 #include "locale/japanese.h"
 #include "term/gameterm.h"
 #include "term/screen-processor.h"
index ec3a46f..d565b77 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 3c739de..0be2338 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/load-zangband.h"
+#include "load/load-zangband.h"
 #include "avatar/avatar.h"
 #include "cmd-building/cmd-building.h"
 #include "dungeon/quest.h"
index 6e6f196..4fe9456 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "dungeon/quest.h"
 #include "system/angband.h"
index 51b0d14..5d13b94 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief セーブファイル読み込み処理 / Purpose: support for loading savefiles -BEN-
  * @date 2014/07/07
  * @author
index f11e675..71d9601 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool load_savedata(PlayerType *player_ptr, bool *new_game);
index bda2dbf..1892b94 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/lore-loader.h"
+#include "load/lore-loader.h"
 #include "game-option/runtime-arguments.h"
 #include "load/angband-version-comparer.h"
 #include "load/load-util.h"
index 9fccece..f66a8f1 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 void load_lore(void);
index c67a650..b0db636 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class MonsterEntity;
 class PlayerType;
index 52c3ce4..06f481d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター情報をセーブデータから読み込むクラスを選択するファクトリクラス
  * @date 2021/10/16
  * @author Hourier
index afcd4bf..113f704 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterLoaderVersionType {
     LOAD50,
index 5337130..295374d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*** Terrain Feature Index (see "lib/edit/TerrainDefinitions.txt") ***/
 enum old_feature_type {
index 357973c..1420479 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class SaveDataItemFlagType : unsigned int {
     PVAL = 0x00000001,
index cf294bb..9e341c9 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/old/item-loader-savefile50.h"
+#include "load/old/item-loader-savefile50.h"
 #include "artifact/fixed-art-types.h"
 #include "game-option/runtime-arguments.h"
 #include "load/angband-version-comparer.h"
index a0afea3..0f0d0f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "load/item/item-loader-base.h"
 
index 124c16f..f3d3074 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 変愚蛮怒 v1.5.0以前の旧いセーブデータを読み込む処理
  * @date 2020/07/04
  * @author Hourier
index 4a33358..29b55d4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/monster-entity.h"
index 0a71782..60cc0a5 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/old/load-v1-7-0.h"
+#include "load/old/load-v1-7-0.h"
 #include "game-option/birth-options.h"
 #include "load/load-util.h"
 #include "load/old/load-v1-5-0.h"
index 5811557..067af39 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void set_hp_old(PlayerType *player_ptr);
index d464e9f..ef73b51 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class SaveDataMonsterFlagType {
     AP_R_IDX = 0x00000001,
index 881799e..dfee189 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/old/monster-loader-savefile50.h"
+#include "load/old/monster-loader-savefile50.h"
 #include "load/angband-version-comparer.h"
 #include "load/load-util.h"
 #include "load/old/load-v1-5-0.h"
index 1ec4532..543aba1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "load/monster/monster-loader-base.h"
 
index 276d07a..06fef96 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/option-loader.h"
+#include "load/option-loader.h"
 #include "cmd-io/cmd-gameoption.h"
 #include "game-option/cheat-options.h"
 #include "game-option/option-flags.h"
index c359faa..d550ced 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 void rd_options();
index df057b9..a2506fb 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/player-attack-loader.h"
+#include "load/player-attack-loader.h"
 #include "load/angband-version-comparer.h"
 #include "load/load-util.h"
 #include "load/load-zangband.h"
index 67736d6..f4d2885 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void rd_special_attack(PlayerType *player_ptr);
index 2d7d097..b851ce9 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/player-class-specific-data-loader.h"
+#include "load/player-class-specific-data-loader.h"
 #include "load/load-util.h"
 #include "player-info/bard-data-type.h"
 #include "player-info/bluemage-data-type.h"
index 2bd4306..239e2ab 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/system-variables.h"
index 919a35c..d1dede1 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/player-info-loader.h"
+#include "load/player-info-loader.h"
 #include "cmd-building/cmd-building.h"
 #include "load/angband-version-comparer.h"
 #include "load/birth-loader.h"
index 9a5d4ef..58a9c1f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void rd_base_info(PlayerType *player_ptr);
index 8e24f27..8b82dd2 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/quest-loader.h"
+#include "load/quest-loader.h"
 #include "artifact/fixed-art-types.h"
 #include "dungeon/quest.h"
 #include "floor/floor-town.h"
index 3da0c79..84d48cf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <tuple>
index 76951b8..3e257a0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file savedata-old-flag-types.h
  * @brief 過去に存在したセーブデータ有無フラグを定義する。古いセーブデータからのマイグレーション用。
  */
index a5f895b..c7a6990 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/store-loader.h"
+#include "load/store-loader.h"
 #include "avatar/avatar.h"
 #include "floor/floor-town.h"
 #include "load/angband-version-comparer.h"
index 7c162b0..88e5f1a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void load_store(PlayerType *player_ptr);
index b8507c4..830d4e3 100644 (file)
@@ -1,4 +1,4 @@
-#include "load/world-loader.h"
+#include "load/world-loader.h"
 #include "cmd-building/cmd-building.h"
 #include "floor/wild.h"
 #include "load/angband-version-comparer.h"
index 1a4c535..ceb6130 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2bf064f..3fc335c 100644 (file)
@@ -1,4 +1,4 @@
-#include "locale/english.h"
+#include "locale/english.h"
 #include "system/angband.h"
 #include "util/string-processor.h"
 
index f650822..47ef3a4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #ifndef JP
 void plural_aux(char *Name);
index 4df36ab..c165a90 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  *  @file japanese.cpp
  *  @brief 日本語処理関数
  *  @date 2014/07/07
index 0afdf5d..9225057 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <optional>
index 3e5f610..9829532 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/h-basic.h"
 
index ab447d3..38bed85 100644 (file)
@@ -1,4 +1,4 @@
-#include "locale/utf-8.h"
+#include "locale/utf-8.h"
 
 /*!
  * @brief 文字列の最初の文字のUTF-8エンコーディングにおけるバイト長を返す
index 059e099..3fcc78c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0e246fc..d2f7d64 100644 (file)
@@ -1,4 +1,4 @@
-#include "lore/combat-types-setter.h"
+#include "lore/combat-types-setter.h"
 #include "lore/lore-util.h"
 #include "monster-attack/monster-attack-effect.h"
 #include "monster-attack/monster-attack-table.h"
index a0ebfa7..d2e5c60 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct lore_type;
 void set_monster_blow_method(lore_type *lore_ptr, int m);
index 62ff85c..de206f5 100644 (file)
@@ -1,4 +1,4 @@
-#include "lore/lore-calculator.h"
+#include "lore/lore-calculator.h"
 #include "game-option/cheat-options.h"
 #include "lore/lore-util.h"
 #include "monster-race/monster-race.h"
index 9eb3082..7e6d971 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index d9df7a6..6a31354 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの思い出を記憶する処理
  * @date 2020/06/09
  * @author Hourier
index 32a58a8..f27434b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d428729..4523afb 100644 (file)
@@ -1,4 +1,4 @@
-#include "lore/lore-util.h"
+#include "lore/lore-util.h"
 #include "game-option/birth-options.h"
 #include "monster-attack/monster-attack-table.h"
 #include "monster-race/monster-race.h"
index e82acd4..924b117 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-attack/monster-attack-table.h"
 #include "monster-race/monster-aura-types.h"
index b2316ff..8514bed 100644 (file)
@@ -1,4 +1,4 @@
-#include "lore/magic-types-setter.h"
+#include "lore/magic-types-setter.h"
 #include "lore/lore-calculator.h"
 #include "lore/lore-util.h"
 #include "monster-race/race-brightness-mask.h"
@@ -569,4 +569,9 @@ void set_summon_types(lore_type *lore_ptr)
         lore_ptr->vp[lore_ptr->vn] = _("ユニーク・モンスター召喚", "summon Unique Monsters");
         lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
     }
+
+    if (lore_ptr->ability_flags.has(MonsterAbilityType::S_DEAD_UNIQUE)) {
+        lore_ptr->vp[lore_ptr->vn] = _("ユニーク・モンスター口寄せ", "animate Unique Monsters");
+        lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
+    }
 }
index 0eb6632..4d7c19a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct lore_type;
 class PlayerType;
index 81f4a76..b84ab95 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの思い出表示に必要なフラグ類の処理
  * @date 2020/06/09
  * @author Hourier
index a7c03d1..cbd1898 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "lore/lore-util.h"
 #include "system/angband.h"
index b432013..5ffbdce 100644 (file)
@@ -1,4 +1,4 @@
-/* File: maid-x11.c */
+/* File: maid-x11.c */
 
 /*
  * Copyright (c) 1997 Ben Harrison, and others
index e41bfcb..aae411a 100644 (file)
@@ -1,4 +1,4 @@
-/* File: main-cap.c */
+/* File: main-cap.c */
 
 /* Purpose: Support for "term.c" using "termcap" calls */
 
index 88fd57d..1533959 100644 (file)
@@ -1,4 +1,4 @@
-/* File: main-gcu.c */
+/* File: main-gcu.c */
 
 /*
  * Copyright (c) 1997 Ben Harrison, and others
index 070de81..76cf7a7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief UNIX用ユーザID定義
  * @author Hourier
  * @date 2023/05/27
index 5876489..8b41af1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class UnixUserIds {
 public:
index fffcc98..a1bdda0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file x11-gamma-builder.cpp
  * @brief X11環境 (の中でもmaid-x11を必要とする特殊な環境)でガンマ値を調整する
  * @date 2020/05/16
index 4e5686a..6ec45f9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file x11-gamma-builder.h
  * @brief X11環境ガンマ値の調整処理ヘッダ
index 6fbcbf1..9723e38 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file x11-type-string.cpp
  * @brief X11用の文字列処理
  * @date 2020/06/14
index c26350c..987be77 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file x11-type-string.h
  * @brief X11用の文字列処理ヘッダ
index 7185f34..d75b2d3 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win.cpp
  * @brief Windows版固有実装(メインエントリポイント含む)
  * @date 2018/03/16
index 74a9e66..ac9de79 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file commandline-win.cpp
  * @brief Windows版固有実装(コマンドライン)
  */
index e81d555..d90e40a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file commandline-win.h
  * @brief Windows版固有実装(コマンドライン)ヘッダ
index 6a1f631..2d01757 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file graphics-win.cpp
  * @brief Windows版固有実装(タイル、イメージファイルの読み込み)
  */
index aa871cb..86638a9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file graphics-win.h
  * @brief Windows版固有実装(タイル、イメージファイルの読み込み)ヘッダ
index addb13d..e8def85 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-bg.cpp
  * @brief Windows版固有実装(壁紙)
  */
index 20223f5..dfebbf3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "main-win/main-win-define.h"
 #include <filesystem>
index 6765d06..a54ccd2 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-cfg-reader.cpp
  * @brief Windows版固有実装(.cfgファイル処理)
  */
index d9e3fcf..5113299 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <cstddef>
index 5ef951a..6c8fee8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 // max. length of full pathname
 #define MAIN_WIN_MAX_PATH 1024
index d88fe7f..c47f0a3 100644 (file)
@@ -1,4 +1,4 @@
-#include "main-win/main-win-exception.h"
+#include "main-win/main-win-exception.h"
 #include "main-win/main-win-utils.h"
 #include "net/report-error.h"
 #include <sstream>
index 524cd20..d328a3d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <stdexcept>
 
index b3cf5bf..69b206a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-file-utils.cpp
  * @brief Windows版固有実装(ファイル関連処理)
  */
index 410a41d..ef286bd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/h-type.h"
 #include <filesystem>
index 7855ff3..3793417 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-mci.cpp
  * @brief Windows版固有実装(BGM再生用のMCI)
  */
index 93b8d6d..28240e9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <windows.h>
 
index 79777a7..9a8d206 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Menu constants -- see "ang_jp.rc", "ang_eng.rc"
index 4d9e047..b8926e1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <windows.h>
 
index fd458aa..8443bc6 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-music.cpp
  * @brief Windows版固有実装(BGM)
  */
index e4c3055..4a18680 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "main-win/main-win-cfg-reader.h"
 #include "main/music-definitions-table.h"
index 9feb3fc..e7309a2 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-sound.cpp
  * @brief Windows版固有実装(効果音)
  */
index 56867ef..040ea9d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "main-win/main-win-cfg-reader.h"
 #include <array>
index dd16ef9..afd1cbc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-term.cpp
  * @brief Windows版固有実装(ターミナル)
  */
index 4c76198..e83f8ae 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file main-win-term.h
  * @brief Windows版固有実装(ターミナル)ヘッダ
index 8fc1eaf..dc20931 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-tokenizer.cpp
  * @brief Windows版固有実装(トークン分割)
  */
index 580e03b..2f4e9f2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/h-type.h"
 
index e3c852e..55402fe 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file main-win-utils.cpp
  * @brief Windows版固有実装(ユーティリティー)
  */
index 2d5f202..a6f747e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file main-win-utils.h
  * @brief Windows版固有実装(ユーティリティー)ヘッダ
index 18a9d4c..58c3eee 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file wav-reader.cpp
  * @brief Windows版固有実装(WAVファイル読込)
  */
index 16f1ada..8534afd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file wav-reader.h
  * @brief Windows版固有実装(WAVファイル読込)ヘッダ
index d9a2544..e733d49 100644 (file)
@@ -1,4 +1,4 @@
-/* File: main-x11.c */
+/* File: main-x11.c */
 
 /*
  * Copyright (c) 1997 Ben Harrison, and others
index 22ff629..e0ab108 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * Copyright (c) 1997 Ben Harrison, and others
  *
  * This software may be copied and distributed for educational, research,
index 1380400..7e7ee9e 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file angband-headers.cpp
  * @brief ゲームデータのグローバルヘッダ情報定義
  */
index a7850a0..49123f3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file angband-headers.h
  * @brief ゲームデータのグローバルヘッダ情報ヘッダ
index e81fd88..31313c4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file angband-initializer.cpp
  * @brief 変愚蛮怒のシステム初期化
  * @date 2014/01/28
@@ -107,7 +107,7 @@ void init_file_paths(const std::filesystem::path &libpath)
  */
 static void init_note_term(concptr str)
 {
-    term_erase(0, 23, 255);
+    term_erase(0, 23);
     term_putstr(20, 23, -1, TERM_WHITE, str);
     term_fresh();
 }
index 5b3187a..df233db 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file angband-initializer.h
  * @brief 変愚蛮怒のシステム初期化処理ヘッダファイル
index 5bdfb85..3778a73 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file game-data-initializer.cpp
  * @brief 変愚蛮怒のゲームデータ初期化定義
  */
index ef26aac..effa2c2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file game-data-initializer.h
  * @brief 変愚蛮怒のゲームデータ初期化ヘッダファイル
index 05216fc..2906835 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file info-initializer.cpp
  * @brief 変愚蛮怒のゲームデータ解析処理定義
  */
index 8395d0d..fa317e0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file info-initializer.h
  * @brief 変愚蛮怒のゲームデータ解析処理ヘッダ
index f5cb8c4..0155e4f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file init-error-messages-table.cpp
  * @brief 変愚蛮怒のゲームデータ解析エラー名定義
  */
index bb23d5c..868bf21 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file init-error-messages-table.h
  * @brief 変愚蛮怒のゲームデータ解析エラー名ヘッダ
index 3515e48..b1fa6fb 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file music-definitions-table.cpp
  * @brief 設定ファイル用のBGM名定義
  */
index 38860a1..78b2feb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file music-definitions-table.h
  * @brief 設定ファイル用のBGM名定義ヘッダ
index aee040e..b803f67 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file scene-table-floor.cpp
  * @brief フロアの状況に応じたBGM設定処理実装
  */
index 9c6a902..0e5a825 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file scene-table-floor.h
  * @brief フロアの状況に応じたBGM設定処理ヘッダ
index 0838e21..4fdc32a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file scene-table-monster.cpp
  * @brief モンスターの遭遇状況に応じたBGM設定処理実装
  */
index 46f431b..9691e36 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file scene-table-monster.h
  * @brief モンスターの遭遇状況に応じたBGM設定処理ヘッダ
index a5805fa..0800a37 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file scene-table.cpp
  * @brief BGM選曲の基本処理部分実装
  */
index 56577ff..7f30e6b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file scene-table.h
  * @brief BGM選曲の基本処理部分ヘッダ
index 8575790..9a18de4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file sound-definitions-table.cpp
  * @brief 設定ファイル用の効果音名定義
  */
index da6a5d8..c0765c4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file sound-definitions-table.h
  * @brief 設定ファイル用の効果音名定義ヘッダ
index 99eb5f4..6a6fa29 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file sound-of-music.cpp
  * @brief BGM及び効果音のterm出力処理実装
  */
index 7f20954..60b31b0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file sound-of-music.h
  * @brief BGM及び効果音のterm出力処理ヘッダ
index 56c2a8c..a94c60d 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/arena-info-table.h"
+#include "market/arena-info-table.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-indice-types.h"
 #include "object/tval-types.h"
index f47f9e4..86651df 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/baseitem-info.h"
 #include <vector>
index 32d9277..4d49a89 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/arena.h"
+#include "market/arena.h"
 #include "cmd-building/cmd-building.h"
 #include "core/asking-player.h"
 #include "core/show-file.h"
@@ -10,6 +10,7 @@
 #include "market/arena-info-table.h"
 #include "market/building-actions-table.h"
 #include "market/building-util.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags-resistance.h"
@@ -202,7 +203,7 @@ void update_gambling_monsters(PlayerType *player_ptr)
             int j;
             while (true) {
                 get_mon_num_prep(player_ptr, monster_can_entry_arena, nullptr);
-                r_idx = get_mon_num(player_ptr, 0, mon_level, GMN_ARENA);
+                r_idx = get_mon_num(player_ptr, 0, mon_level, PM_ARENA);
                 if (!MonsterRace(r_idx).is_valid()) {
                     continue;
                 }
index da09489..0ff77e8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void arena_comm(PlayerType *player_ptr, int cmd);
index d809f4c..5e16b21 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/bounty-prize-table.h"
+#include "market/bounty-prize-table.h"
 #include "object/tval-types.h"
 #include "sv-definition/sv-potion-types.h"
 #include "sv-definition/sv-scroll-types.h"
index 803bb81..63f3223 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 賞金首の報酬テーブル
  * @author Hourier
  * @date 2022/11/04
index 0dd5665..f538730 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 41c4cba..811a222 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/bounty.h"
+#include "market/bounty.h"
 #include "autopick/autopick.h"
 #include "avatar/avatar.h"
 #include "cmd-building/cmd-building.h"
@@ -11,6 +11,7 @@
 #include "io/input-key-acceptor.h"
 #include "market/bounty-prize-table.h"
 #include "market/building-util.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
@@ -288,7 +289,7 @@ void determine_daily_bounty(PlayerType *player_ptr, bool conv_old)
     get_mon_num_prep_bounty(player_ptr);
 
     while (true) {
-        w_ptr->today_mon = get_mon_num(player_ptr, std::min(max_dl / 2, 40), max_dl, GMN_ARENA);
+        w_ptr->today_mon = get_mon_num(player_ptr, std::min(max_dl / 2, 40), max_dl, PM_ARENA);
         MonsterRaceInfo *r_ptr;
         r_ptr = &monraces_info[w_ptr->today_mon];
 
@@ -337,7 +338,7 @@ void determine_bounty_uniques(PlayerType *player_ptr)
     // 賞金首とするモンスターの種族IDのリストを生成
     std::vector<MonsterRaceId> bounty_r_idx_list;
     while (bounty_r_idx_list.size() < std::size(w_ptr->bounties)) {
-        auto r_idx = get_mon_num(player_ptr, 0, MAX_DEPTH - 1, GMN_ARENA);
+        auto r_idx = get_mon_num(player_ptr, 0, MAX_DEPTH - 1, PM_ARENA);
         if (!is_suitable_for_bounty(r_idx)) {
             continue;
         }
index 64176f1..757bca7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 588ad7d..d2c5d76 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Buildings actions
index 9124582..fda3090 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-craft-armor.h"
+#include "market/building-craft-armor.h"
 #include "io/input-key-acceptor.h"
 #include "market/building-util.h"
 #include "term/screen-processor.h"
index 44447fc..5505f26 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 bool eval_ac(short ac);
index 68eea15..2a58764 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-craft-fix.h"
+#include "market/building-craft-fix.h"
 #include "artifact/artifact-info.h"
 #include "artifact/fixed-art-types.h"
 #include "artifact/random-art-effects.h"
index 2b22b2f..b4a88f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b6f2b12..1f490d2 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-craft-weapon.h"
+#include "market/building-craft-weapon.h"
 #include "artifact/fixed-art-types.h"
 #include "combat/attack-accuracy.h"
 #include "combat/shoot.h"
index 5452dac..50c1057 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a2261dc..3b1e021 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-enchanter.h"
+#include "market/building-enchanter.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "floor/floor-object.h"
index 43ebbe6..e5d8e00 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f665b96..e20dd17 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-initializer.h"
+#include "market/building-initializer.h"
 #include "floor/floor-town.h"
 #include "io/files-util.h"
 #include "object/object-kind-hook.h"
index 80af857..6b14700 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 void init_towns(void);
 void init_buildings(void);
index 71a2d58..ae46ae2 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-monster.h"
+#include "market/building-monster.h"
 #include "core/asking-player.h"
 #include "core/stuff-handler.h"
 #include "game-option/game-play-options.h"
index 55aac38..9626a47 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool research_mon(PlayerType *player_ptr);
index cb755e7..6f02fb2 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-quest.h"
+#include "market/building-quest.h"
 #include "cmd-building/cmd-building.h"
 #include "core/asking-player.h"
 #include "dungeon/quest.h"
index 6c090a6..c060dfe 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void castle_quest(PlayerType *player_ptr);
index 7af2072..4e44364 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-recharger.h"
+#include "market/building-recharger.h"
 #include "autopick/autopick.h"
 #include "core/asking-player.h"
 #include "core/window-redrawer.h"
index 9197c06..d7c4561 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void building_recharge(PlayerType *player_ptr);
index 1577f0b..3a36d5a 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-service.h"
+#include "market/building-service.h"
 #include "cmd-building/cmd-building.h"
 #include "player-base/player-class.h"
 #include "realm/realm-names-table.h"
index 7d21803..0e87f93 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct building_type;
 class PlayerType;
index cb383ef..3243ad0 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/building-util.h"
+#include "market/building-util.h"
 #include "system/player-type-definition.h"
 #include "term/screen-processor.h"
 #include "term/z-form.h"
index 34e5756..f6f0d5e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void clear_bldg(int min_row, int max_row);
index be9b5ee..5158b46 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/play-gamble.h"
+#include "market/play-gamble.h"
 #include "avatar/avatar.h"
 #include "core/asking-player.h"
 #include "core/show-file.h"
index ef790a2..2096399 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void gamble_comm(PlayerType *player_ptr, int cmd);
index baa5580..2fc7f8a 100644 (file)
@@ -1,4 +1,4 @@
-#include "market/poker.h"
+#include "market/poker.h"
 #include "io/input-key-acceptor.h"
 #include "system/angband.h"
 #include "term/screen-processor.h"
index 1c6eb46..5d7d70e 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 int do_poker(void);
index b4777de..3e782dc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター同士の打撃後処理 / Melee post-process.
  * @date 2014/01/17
  * @author
index 0ac230e..b033b43 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "combat/combat-options-type.h"
 #include "system/angband.h"
index c22d6d4..2848176 100644 (file)
@@ -1,4 +1,4 @@
-#include "melee/melee-spell-flags-checker.h"
+#include "melee/melee-spell-flags-checker.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "effect/effect-characteristics.h"
 #include "floor/geometry.h"
index 42fc274..56e0d44 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct melee_spell_type;
 class PlayerType;
index 246ccb3..3e7d083 100644 (file)
@@ -1,4 +1,4 @@
-#include "melee/melee-spell-util.h"
+#include "melee/melee-spell-util.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "dungeon/quest.h"
 #include "floor/cave.h"
index 4e15221..ab17c7b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-race/race-ability-flags.h"
 #include "system/angband.h"
index 08016a0..c314ec3 100644 (file)
@@ -1,4 +1,4 @@
-#include "melee/melee-spell.h"
+#include "melee/melee-spell.h"
 #include "core/disturbance.h"
 #include "melee/melee-spell-flags-checker.h"
 #include "melee/melee-spell-util.h"
index 81304df..48d6edb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2b6b390..31edd53 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター同士が乱闘を起こした時の攻撃種別をスイッチングする
  * @date 2020/05/30
  * @author Hourier
index 2c5d59a..4b438ed 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class BlowEffectType {
     NONE = 0,
index 606674b..bf18399 100644 (file)
@@ -1,4 +1,4 @@
-#include "melee/melee-util.h"
+#include "melee/melee-util.h"
 #include "floor/geometry.h"
 #include "grid/grid.h"
 #include "melee/melee-switcher.h"
index 10aa63f..d385a8c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "monster-attack/monster-attack-effect.h"
index 680971f..83e708b 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター同士が乱闘する処理
  * @date 2020/05/23
  * @author Hourier
index 0c7c20c..f37d4ff 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 83c4b00..a1632f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Some things which induce learning
index 0f87408..3993ff3 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-archer.h"
+#include "mind/mind-archer.h"
 #include "action/action-limited.h"
 #include "autopick/autopick.h"
 #include "core/asking-player.h"
index a6a1f79..2040c83 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool create_ammo(PlayerType *player_ptr);
index 761808a..3a78390 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-berserker.h"
+#include "mind/mind-berserker.h"
 #include "action/movement-execution.h"
 #include "cmd-action/cmd-attack.h"
 #include "floor/geometry.h"
index 939ce45..15eb501 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MindBerserkerType : int;
 class PlayerType;
index 0113113..6ee84f8 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-blue-mage.h"
+#include "mind/mind-blue-mage.h"
 #include "action/action-limited.h"
 #include "avatar/avatar.h"
 #include "blue-magic/blue-magic-caster.h"
index f7bd9e0..cfe2362 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <array>
 
index 35a2b9e..0d11958 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 騎兵のレイシャルパワー処理
  * @date 2020/05/16
  * @author Hourier
index 638ba66..ca5b2d3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool rodeo(PlayerType *player_ptr);
index 75233fe..e3990af 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-chaos-warrior.h"
+#include "mind/mind-chaos-warrior.h"
 #include "floor/floor-object.h"
 #include "object-enchant/object-boost.h"
 #include "object-enchant/object-ego.h"
index 8053e2f..d787808 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void acquire_chaos_weapon(PlayerType *player_ptr);
index 0bad7d6..06046d3 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 元素使いの魔法系統
  */
 
@@ -968,12 +968,12 @@ void do_cmd_element_browse(PlayerType *player_ptr)
             return;
         }
 
-        term_erase(12, 21, 255);
-        term_erase(12, 20, 255);
-        term_erase(12, 19, 255);
-        term_erase(12, 18, 255);
-        term_erase(12, 17, 255);
-        term_erase(12, 16, 255);
+        term_erase(12, 21);
+        term_erase(12, 20);
+        term_erase(12, 19);
+        term_erase(12, 18);
+        term_erase(12, 17);
+        term_erase(12, 16);
         display_wrap_around(get_element_tip(player_ptr, n), 62, 17, 15);
 
         prt(_("何かキーを押して下さい。", "Hit any key."), 0, 0);
index d14fd56..f5d6416 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index cab710b..cae647b 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-explanations-table.h"
+#include "mind/mind-explanations-table.h"
 
 /*! 特殊技能の一覧テーブル */
 mind_power const mind_powers[MAX_MINDKINDS] = {
index ea8ba1e..466d0a3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e206285..657dbd5 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-force-trainer.h"
+#include "mind/mind-force-trainer.h"
 #include "avatar/avatar.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
index 2f5aef7..2c34f12 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0b2ca94..0c594b9 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-hobbit.h"
+#include "mind/mind-hobbit.h"
 #include "floor/floor-object.h"
 #include "object/object-kind-hook.h"
 #include "sv-definition/sv-food-types.h"
index b16c3e3..3d1d5bc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool create_ration(PlayerType *player_ptr);
index 1d743f0..f64a2df 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-info.h"
+#include "mind/mind-info.h"
 #include "cmd-action/cmd-spell.h"
 #include "locale/japanese.h"
 #include "mind/mind-force-trainer.h"
index 4d32868..8449724 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 
index 04c1e61..fe42edb 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 魔力喰い処理
  * @date 2020/06/27
  * @author Hourier
index 7133fb8..607fcdd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool eat_magic(PlayerType *player_ptr, int power);
index 539a38e..ebcca9e 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-magic-eater.h"
+#include "mind/mind-magic-eater.h"
 #include "flavor/flavor-describer.h"
 #include "floor/floor-object.h"
 #include "inventory/inventory-object.h"
index f225504..06260d8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool import_magic_device(PlayerType *player_ptr);
index 489f913..64a055b 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-magic-resistance.h"
+#include "mind/mind-magic-resistance.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
index 7e365c2..3d259cf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 98baabd..baf4bbc 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-mindcrafter.h"
+#include "mind/mind-mindcrafter.h"
 #include "autopick/autopick.h"
 #include "avatar/avatar.h"
 #include "core/window-redrawer.h"
index 14dfc19..b9b44d8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool psychometry(PlayerType *player_ptr);
index fca06fe..9e5c686 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 鏡使いの鏡魔法コマンド処理
  * @date 2022/03/07
  * @author Hourier
index 8a047da..e9a51a9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2f84471..5650cc4 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-monk.h"
+#include "mind/mind-monk.h"
 #include "action/action-limited.h"
 #include "io/input-key-acceptor.h"
 #include "mind/stances-table.h"
index 4c3b4c0..a6bc729 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool choose_monk_stance(PlayerType *player_ptr);
index b97e609..399c6c2 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-ninja.h"
+#include "mind/mind-ninja.h"
 #include "cmd-action/cmd-attack.h"
 #include "cmd-item/cmd-throw.h"
 #include "combat/combat-options-type.h"
index 286c2a9..5c43b02 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct player_attack_type;
 class PlayerType;
index 7fe11af..e8b0ca6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MindBerserkerType : int {
     DETECT_MANACE = 0,
index f611c4b..9aedbbe 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-power-getter.h"
+#include "mind/mind-power-getter.h"
 #include "core/asking-player.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
index 52f6b81..28280bd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "mind/mind-types.h"
 #include "system/angband.h"
index a96da6a..efe7295 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-priest.h"
+#include "mind/mind-priest.h"
 #include "core/window-redrawer.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
index 6fbfa43..2295e67 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool bless_weapon(PlayerType *player_ptr);
index 83950e3..394fa75 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 剣術家のレイシャルパワー処理
  * @date 2020/05/16
  * @author Hourier
index 4d7c6b6..2aed0ab 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 75fa6c5..34ec4ce 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief スナイパー技能の実装 / Sniping
  * @date 2014/01/18
  * @author
@@ -320,7 +320,7 @@ static int get_snipe_power(PlayerType *player_ptr, COMMAND_CODE *sn, bool only_b
                 /* Dump the spells */
                 for (i = 0; i < MAX_SNIPE_POWERS; i++) {
                     term_color_type tcol = TERM_WHITE;
-                    term_erase(x, y + i + 1, 255);
+                    term_erase(x, y + i + 1);
 
                     /* Access the spell */
                     spell = snipe_powers[i];
@@ -654,11 +654,11 @@ void do_cmd_snipe_browse(PlayerType *player_ptr)
         }
 
         /* Clear lines, position cursor  (really should use strlen here) */
-        term_erase(12, 22, 255);
-        term_erase(12, 21, 255);
-        term_erase(12, 20, 255);
-        term_erase(12, 19, 255);
-        term_erase(12, 18, 255);
+        term_erase(12, 22);
+        term_erase(12, 21);
+        term_erase(12, 20);
+        term_erase(12, 19);
+        term_erase(12, 18);
 
         display_wrap_around(snipe_tips[n], 62, 19, 15);
     }
index d56ba7c..0ccc5a5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 8a68b90..9304b4d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MindKindType {
     MINDCRAFTER = 0, /*!< 特殊能力: 超能力 */
index f6c6458..2ba9ad2 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-warrior-mage.h"
+#include "mind/mind-warrior-mage.h"
 #include "hpmp/hp-mp-processor.h"
 #include "player/player-damage.h"
 #include "system/player-type-definition.h"
index 840c00d..e5ca4e3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool comvert_hp_to_mp(PlayerType *player_ptr);
index c8076cb..5675b09 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-warrior.h"
+#include "mind/mind-warrior.h"
 #include "cmd-action/cmd-attack.h"
 #include "floor/geometry.h"
 #include "spell-kind/spells-teleport.h"
index da44de8..c81a27d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool hit_and_away(PlayerType *player_ptr);
index 94e3e53..3048a28 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/mind-weaponsmith.h"
+#include "mind/mind-weaponsmith.h"
 #include "action/action-limited.h"
 #include "autopick/autopick.h"
 #include "core/asking-player.h"
@@ -667,12 +667,12 @@ void do_cmd_kaji(PlayerType *player_ptr, bool only_browse)
             }
 
             if (only_browse) {
-                term_erase(14, 21, 255);
-                term_erase(14, 20, 255);
-                term_erase(14, 19, 255);
-                term_erase(14, 18, 255);
-                term_erase(14, 17, 255);
-                term_erase(14, 16, 255);
+                term_erase(14, 21);
+                term_erase(14, 20);
+                term_erase(14, 19);
+                term_erase(14, 18);
+                term_erase(14, 17);
+                term_erase(14, 16);
                 if (mode > 0) {
                     display_wrap_around(kaji_tips[mode - 1], 62, 17, 15);
                 }
index 0c26dca..c7ddc8a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_kaji(PlayerType *player_ptr, bool only_browse);
index abefcf8..7f5be2a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 素手で攻撃することに補正のある職業 (修行僧、狂戦士、練気術師)の打撃処理
  * @date 2020/05/23
  * @author Hourier
index 999d785..4aa11a3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct player_attack_type;
 class PlayerType;
index 2ea2420..6bdad9d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum snipe_type {
     SP_NONE = 0,
index b6a9686..e69a7f0 100644 (file)
@@ -1,4 +1,4 @@
-#include "mind/stances-table.h"
+#include "mind/stances-table.h"
 
 /*!
  * @brief 修行僧の構え能力テーブル
index 06b5d63..213e274 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player/special-defense-types.h"
 #include "system/angband.h"
index 1c3209b..58a8933 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-attack/insults-moans.h"
+#include "monster-attack/insults-moans.h"
 
 /*! モンスターの侮辱行為メッセージテーブル / Hack -- possible "insult" messages */
 concptr desc_insult[MAX_INSULTS] = {
index a52e5ae..01a3381 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 93763ab..174d39c 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの打撃種別を記述すると共に、切り傷/朦朧値を追加する
  * @date 2020/05/31
  * @author Hourier
index 16dc6f5..6fb7b17 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class MonsterAttackPlayer;
 void describe_monster_attack_method(MonsterAttackPlayer *monap_ptr);
index b31470a..28a410c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @note モンスターの攻撃効果 / New monster blow effects
index 89be1d2..2030bae 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-attack/monster-attack-lose.h"
+#include "monster-attack/monster-attack-lose.h"
 #include "mind/mind-mirror-master.h"
 #include "monster-attack/monster-attack-player.h"
 #include "monster-attack/monster-attack-status.h"
index a3e0e5b..9ff3941 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class MonsterAttackPlayer;
 class PlayerType;
index e29515c..e7e51d5 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターからプレイヤーへの直接攻撃処理
  * @date 2020/05/23
  * @author Hourier
index 88edaf3..1eb98a7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの攻撃に関する処理
  * @date 2020/03/08
  * @author Hourier
index 37411ee..9971351 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーのステータス (麻痺等)に影響を与えるモンスターの打撃処理
  * @date 2020/05/31
  * @author Hourier
index 522b0fb..b190049 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターからプレイヤーへの直接攻撃をその種別において振り分ける
  * @date 2020/05/31
  * @author Hourier
index aec7744..77b5f12 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class MonsterAttackPlayer;
 class PlayerType;
index a26d683..e5c1597 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-attack/monster-attack-table.h"
+#include "monster-attack/monster-attack-table.h"
 #include "effect/attribute-types.h"
 #include "monster-attack/monster-attack-effect.h"
 
index cf5dfd7..2d10346 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "monster-attack/monster-attack-effect.h"
index 2a2bd89..a97f5f7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーのHP/MP、アイテム、お金・明かりの残りターン、充填魔力を盗んだり減少させたりする処理
  * @date 2020/05/31
  * @author Hourier
index b5b418c..a63d703 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fcb76b5..ac9d4db 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/monster-death-util.h"
+#include "monster-floor/monster-death-util.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-indice-types.h"
index 6a4306d..eb51c12 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 139aac2..bc71304 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/monster-death.h"
+#include "monster-floor/monster-death.h"
 #include "artifact/fixed-art-generator.h"
 #include "artifact/fixed-art-types.h"
 #include "cmd-building/cmd-building.h"
index f7e4759..3ea6e82 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index a946fb3..30e95a1 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの移動方向を決定する処理
  * @date 2020/03/08
  * @author Hourier
index b51b732..0c9ab23 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5cc76b7..f10d461 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/monster-dist-offsets.h"
+#include "monster-floor/monster-dist-offsets.h"
 
 /*
  * Hack -- Precompute a bunch of calls to distance() in find_safety() and
index c1b32a0..1c8e5c2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d6c0ab7..5932ca6 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * todo 後で再分割する
  * @brief モンスター生成処理
  * @date 2020/06/10
@@ -375,7 +375,7 @@ bool place_random_monster(PlayerType *player_ptr, POSITION y, POSITION x, BIT_FL
     get_mon_num_prep(player_ptr, get_monster_hook(player_ptr), get_monster_hook2(player_ptr, y, x));
     MonsterRaceId r_idx;
     do {
-        r_idx = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->monster_level, 0);
+        r_idx = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->monster_level, PM_NONE);
     } while ((mode & PM_NO_QUEST) && (monraces_info[r_idx].flags8 & RF8_NO_QUEST));
 
     if (!MonsterRace(r_idx).is_valid()) {
@@ -394,7 +394,7 @@ static std::optional<MonsterRaceId> select_horde_leader_r_idx(PlayerType *player
     const auto *floor_ptr = player_ptr->current_floor_ptr;
 
     for (auto attempts = 1000; attempts > 0; --attempts) {
-        auto r_idx = get_mon_num(player_ptr, 0, floor_ptr->monster_level, 0);
+        auto r_idx = get_mon_num(player_ptr, 0, floor_ptr->monster_level, PM_NONE);
         if (!MonsterRace(r_idx).is_valid()) {
             return std::nullopt;
         }
index 330fd97..ed06deb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f559f24..0a42174 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/monster-lite-util.h"
+#include "monster-floor/monster-lite-util.h"
 #include "system/grid-type-definition.h"
 #include "system/monster-entity.h"
 #include "util/bit-flags-calculator.h"
index f52a21c..0d229e5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d549f98..530e557 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/monster-lite.h"
+#include "monster-floor/monster-lite.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/cave.h"
 #include "grid/feature-flag-types.h"
index c335830..a1edb41 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class FloorType;
 class PlayerType;
index 52f2a17..4711f13 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの移動に関する処理
  * @date 2020/03/08
  * @author Hourier
index a990b57..6e0d40b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4d8eb23..e39f506 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターが移動した結果、床のアイテムに重なった時の処理と、モンスターがアイテムを落とす処理
  * @date 2020/03/07
  * @author Hourier
index a7b2e35..7e924af 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 260bfe6..b5725fe 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/monster-remover.h"
+#include "monster-floor/monster-remover.h"
 #include "core/stuff-handler.h"
 #include "floor/cave.h"
 #include "floor/floor-object.h"
index 5a69da7..5f7746e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 1384d53..9bfb554 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの逃走に関する処理
  * @date 2020/03/08
  * @author Hourier
index e175cb1..dd09b56 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b86d389..f13bf76 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの逃走・隠匿に関する処理
  * @date 2020/03/08
  * @author Hourier
index 4663bc1..1692903 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0475b94..1d4dfc7 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/monster-summon.h"
+#include "monster-floor/monster-summon.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/geometry.h"
 #include "floor/wild.h"
@@ -145,7 +145,7 @@ bool summon_specific(PlayerType *player_ptr, MONSTER_IDX who, POSITION y1, POSIT
     get_mon_num_prep(player_ptr, summon_specific_okay, get_monster_hook2(player_ptr, y, x));
 
     DEPTH dlev = get_dungeon_or_wilderness_level(player_ptr);
-    MonsterRaceId r_idx = get_mon_num(player_ptr, 0, (dlev + lev) / 2 + 5, 0);
+    MonsterRaceId r_idx = get_mon_num(player_ptr, 0, (dlev + lev) / 2 + 5, mode);
     if (!MonsterRace(r_idx).is_valid()) {
         summon_specific_type = SUMMON_NONE;
         return false;
index 7c09c37..8577ef9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f8166c0..64dbc56 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの移動方向を走査する処理
  * @date 2020/03/08
  * @author Hourier
index fc54341..bb50655 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fd87a32..7c58ba8 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターをフロアに1体配置する処理
  * @date 2020/06/13
  * @author Hourier
@@ -102,7 +102,7 @@ static MonsterRaceId initial_r_appearance(PlayerType *player_ptr, MonsterRaceId
     int attempts = 1000;
     DEPTH min = std::min(floor_ptr->base_level - 5, 50);
     while (--attempts) {
-        auto ap_r_idx = get_mon_num(player_ptr, 0, floor_ptr->base_level + 10, 0);
+        auto ap_r_idx = get_mon_num(player_ptr, 0, floor_ptr->base_level + 10, PM_NONE);
         if (monraces_info[ap_r_idx].level >= min) {
             return ap_r_idx;
         }
@@ -117,12 +117,16 @@ static MonsterRaceId initial_r_appearance(PlayerType *player_ptr, MonsterRaceId
  * @param r_idx 生成モンスター種族
  * @return ユニークの生成が不可能な条件ならFALSE、それ以外はTRUE
  */
-static bool check_unique_placeable(PlayerType *player_ptr, MonsterRaceId r_idx)
+static bool check_unique_placeable(PlayerType *player_ptr, MonsterRaceId r_idx, BIT_FLAGS mode)
 {
     if (player_ptr->phase_out) {
         return true;
     }
 
+    if (any_bits(mode, PM_CLONE)) {
+        return true;
+    }
+
     auto *r_ptr = &monraces_info[r_idx];
     if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
         return false;
@@ -277,7 +281,7 @@ bool place_monster_one(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSI
         return false;
     }
 
-    if (!check_unique_placeable(player_ptr, r_idx) || !check_quest_placeable(floor, r_idx) || !check_procection_rune(player_ptr, r_idx, y, x)) {
+    if (!check_unique_placeable(player_ptr, r_idx, mode) || !check_quest_placeable(floor, r_idx) || !check_procection_rune(player_ptr, r_idx, y, x)) {
         return false;
     }
 
index 3e76fb1..2293dcc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 002b691..452e664 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Bit flags for the place_monster_???() (etc)
@@ -19,4 +19,6 @@ enum place_monster_type {
     PM_JURAL = 0x00000800, /*!< モンスター生成フラグ: ジュラル星人として誤認生成する */
     PM_NO_QUEST = 0x00001000, /*!< モンスター生成フラグ: クエスト除外モンスターを生成しない */
     PM_CLONE = 0x00002000, /*!< モンスター生成フラグ: クローンとして生成する */
+    PM_ARENA = 0x00004000, /*!< モンスター生成フラグ: アリーナ用の生成 */
+
 };
index 5ea5b9d..23d9388 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-floor/quantum-effect.h"
+#include "monster-floor/quantum-effect.h"
 #include "effect/attribute-types.h"
 #include "floor/line-of-sight.h"
 #include "monster-floor/monster-death.h"
index 88c54e9..76f8841 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5a9f22c..6ebb0be 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター死亡時の特殊処理switch (一般的な処理もdefaultで実施)
  * @date 2020/08/21
  * @author Hourier
index f827af0..dd6676e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "effect/attribute-types.h"
 #include "system/angband.h"
 
index f8ff02b..6af6400 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @brief モンスターがまとっているオーラ定義.
index 96068a2..52c4524 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-race/monster-kind-mask.h"
+#include "monster-race/monster-kind-mask.h"
 
 const EnumClassFlagGroup<MonsterKindType> alignment_mask = {
     MonsterKindType::GOOD, MonsterKindType::EVIL
index ab4c8e8..d5adc62 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-race/race-kind-flags.h"
 #include "system/angband.h"
index 1d993ae..d24b5be 100644 (file)
@@ -1,6 +1,7 @@
-#include "monster-race/monster-race-hook.h"
+#include "monster-race/monster-race-hook.h"
 #include "monster-attack/monster-attack-effect.h"
 #include "monster-attack/monster-attack-table.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-ability-mask.h"
 #include "monster-race/race-flags-resistance.h"
@@ -37,7 +38,7 @@ EnumClassFlagGroup<MonsterAbilityType> vault_aux_dragon_mask4;
 void vault_prep_clone(PlayerType *player_ptr)
 {
     get_mon_num_prep(player_ptr, vault_aux_simple, nullptr);
-    vault_aux_race = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->dun_level + 10, 0);
+    vault_aux_race = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->dun_level + 10, PM_NONE);
     get_mon_num_prep(player_ptr, nullptr, nullptr);
 }
 
@@ -48,7 +49,7 @@ void vault_prep_clone(PlayerType *player_ptr)
 void vault_prep_symbol(PlayerType *player_ptr)
 {
     get_mon_num_prep(player_ptr, vault_aux_simple, nullptr);
-    MonsterRaceId r_idx = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->dun_level + 10, 0);
+    MonsterRaceId r_idx = get_mon_num(player_ptr, 0, player_ptr->current_floor_ptr->dun_level + 10, PM_NONE);
     get_mon_num_prep(player_ptr, nullptr, nullptr);
     vault_aux_char = monraces_info[r_idx].d_char;
 }
index 759aa97..8f88249 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 781cac9..647b642 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-race/monster-race.h"
+#include "monster-race/monster-race.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-indice-types.h"
index a7277b6..2603112 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9f0028b..89a0f1a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterAbilityType {
     SHRIEK = 0, /*!< モンスター能力: 叫ぶ / Shriek for help */
@@ -99,6 +99,7 @@ enum class MonsterAbilityType {
     S_HI_DRAGON = 93, /* Summon Ancient Dragon */
     S_AMBERITES = 94, /* Summon Amberites */
     S_UNIQUE = 95, /* Summon Unique Monster */
+    S_DEAD_UNIQUE = 96, /* Summon Dead Unique Monster */
     BO_VOID = 97, /*!< モンスター能力: ヴォイド・ボルト / Void Bolt */
     BO_ABYSS = 98, /*!< モンスター能力: アビス・ボルト / Abyss Bolt */
     BR_VOID = 99, /*!< モンスター能力: 虚無のブレス / Breathe Void */
index 9e5df37..8930cb6 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-race/race-ability-mask.h"
+#include "monster-race/race-ability-mask.h"
 
 // clang-format off
 /* "summon" spells currently "summon" spells are included in "intelligent" and "indirect" */
@@ -7,6 +7,7 @@ const EnumClassFlagGroup<MonsterAbilityType> RF_ABILITY_SUMMON_MASK = {
     MonsterAbilityType::S_ANT, MonsterAbilityType::S_SPIDER, MonsterAbilityType::S_HOUND, MonsterAbilityType::S_HYDRA,
     MonsterAbilityType::S_ANGEL, MonsterAbilityType::S_DEMON, MonsterAbilityType::S_UNDEAD, MonsterAbilityType::S_DRAGON,
     MonsterAbilityType::S_HI_UNDEAD, MonsterAbilityType::S_HI_DRAGON, MonsterAbilityType::S_AMBERITES, MonsterAbilityType::S_UNIQUE,
+    MonsterAbilityType::S_DEAD_UNIQUE,
 };
 
 /* Choose "intelligent" spells when desperate Including "summon" spells */
index cdf5086..6fe74bf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-race/race-ability-flags.h"
 #include "util/flag-group.h"
index ffb7cb4..9ad42f2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterBehaviorType {
     NEVER_BLOW = 0,
index 8fdf261..2243e92 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterBrightnessType {
     HAS_LITE_1 = 0, /* Monster carries light */
index e2c6ac6..4e000cc 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-race/race-brightness-mask.h"
+#include "monster-race/race-brightness-mask.h"
 
 const EnumClassFlagGroup<MonsterBrightnessType> lite_mask = {
     MonsterBrightnessType::HAS_LITE_1,
index a02c990..39b0c88 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "monster-race/race-brightness-flags.h"
 #include "util/flag-group.h"
 
index 6068dd5..dd95afb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterDropType {
     ONLY_GOLD = 0,
index 1432729..4aa6ad3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterFeatureType {
     AQUATIC = 0,
index 6c173b0..8e77998 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-race/race-feature-mask.h"
+#include "monster-race/race-feature-mask.h"
 
 const EnumClassFlagGroup<MonsterFeatureType> feature_lore_flags2 = {
     MonsterFeatureType::PASS_WALL,
index bac5054..9f328cd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-race/race-feature-flags.h"
 #include "util/flag-group.h"
index 99cb460..798875c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterResistanceType {
     RESIST_ALL = 0, /* Resist all */
index b2092d2..fb8ae0d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum race_flags1 {
     RF1_UNIQUE = 0x00000001, /*!< モンスター特性: ユニーク / Unique Monster */
index 7326220..08d0ac7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum race_flags2 {
     RF2_STUPID = 0x00000001, /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */
index 0dc9c5c..443f6b7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum race_flags3 {
     RF3_ORC = 0x00000001, /*!< モンスター特性: オーク / Orc */
index 65816ad..795af3b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum race_flags7 {
     RF7_AQUATIC = 0x00000001, /* Aquatic monster */
index 3bc355f..6cf37f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum race_flags8 : uint32_t {
     RF8_WILD_ONLY = 0x00000001,
index 0a6dca2..6fced2d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterRaceId : int16_t {
     PLAYER = 0,
index 6da3fdd..b9a2fb4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterKindType {
     UNIQUE = 0,
index b74e1c2..d2ef63a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterPopulationType {
     NAZGUL = 0,
index a686720..746b2ea 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster-race/race-resistance-mask.h"
+#include "monster-race/race-resistance-mask.h"
 
 const EnumClassFlagGroup<MonsterResistanceType> RFR_EFF_IM_ACID_MASK = {
     MonsterResistanceType::IMMUNE_ACID,
index 9030dce..e075684 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-race/race-flags-resistance.h"
 #include "util/flag-group.h"
index f7cf6cf..142d396 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterSpeakType {
     SPEAK_ALL = 0, /* SPEAK_BATTLE, SPEAK_FEAR, SPEAK_FRIEND, SPEAK_DEATH */
index 7714972..6444a9b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterVisualType {
     CLEAR = 0,
index f6c7237..e22fffd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterWildernessType {
     WILD_ONLY = 0,
index f63104a..2ae4790 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file horror-descriptions.cpp
  * @brief エルドリッチホラーの形容詞テーブル定義
  * @date 2023/04/29
index 0e92f91..d139a29 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 #include <vector>
index e7d521c..68391b2 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster/monster-compaction.h"
+#include "monster/monster-compaction.h"
 #include "core/stuff-handler.h"
 #include "game-option/play-record-options.h"
 #include "io/write-diary.h"
index 1b8e0f6..ad33f5a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void compact_monsters(PlayerType *player_ptr, int size);
index 2172b2a..b9c5d44 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief モンスターがダメージを受けた時の処理と経験値の加算処理
  * @date 2021/08/04
  * @author Hourier
index 567a0b7..5a8f019 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "monster-race/race-indice-types.h"
index bed3a7b..68b57c0 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster/monster-describer.h"
+#include "monster/monster-describer.h"
 #include "io/files-util.h"
 #include "locale/english.h"
 #include "monster-race/monster-race.h"
index bdf778f..e7b39ea 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 6c6509c..d01868a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum monsetr_description_type {
     MD_NONE = 0x00000000,
index 2ee55e4..3494c43 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterTemporaryFlagType {
     VIEW = 0, /* Monster is in line of sight */
index f15bcd8..8e687d3 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター情報の記述 / describe monsters (using monster memory)
  * @date 2013/12/11
  * @author
index 5c542f7..efc4f4c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 611c385..ae8e156 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター処理 / misc code for monsters
  * @date 2014/07/08
  * @author
@@ -20,6 +20,7 @@
 #include "game-option/cheat-options.h"
 #include "grid/grid.h"
 #include "monster-floor/monster-summon.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-kind-mask.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-brightness-mask.h"
@@ -42,6 +43,7 @@
 #include "system/monster-race-info.h"
 #include "system/player-type-definition.h"
 #include "system/redrawing-flags-updater.h"
+#include "util/bit-flags-calculator.h"
 #include "util/probability-table.h"
 #include "view/display-messages.h"
 #include "world/world.h"
@@ -92,7 +94,7 @@ MONSTER_IDX m_pop(FloorType *floor_ptr)
  * @return 選択されたモンスター生成種族
  * @details nasty生成 (ゲーム内経過日数に応じて、現在フロアより深いフロアのモンスターを出現させる仕様)は
  */
-MonsterRaceId get_mon_num(PlayerType *player_ptr, DEPTH min_level, DEPTH max_level, BIT_FLAGS option)
+MonsterRaceId get_mon_num(PlayerType *player_ptr, DEPTH min_level, DEPTH max_level, BIT_FLAGS mode)
 {
     /* town max_level : same delay as 10F, no nasty mons till day18 */
     auto delay = static_cast<int>(std::sqrt(max_level * 10000)) + (max_level * 5);
@@ -128,7 +130,7 @@ MonsterRaceId get_mon_num(PlayerType *player_ptr, DEPTH min_level, DEPTH max_lev
     }
 
     /* Boost the max_level */
-    if ((option & GMN_ARENA) || dungeon.flags.has_not(DungeonFeatureType::BEGINNER)) {
+    if (any_bits(mode, PM_ARENA) || dungeon.flags.has_not(DungeonFeatureType::BEGINNER)) {
         /* Nightmare mode allows more out-of depth monsters */
         if (ironman_nightmare && !randint0(chance_nasty)) {
             /* What a bizarre calculation */
@@ -155,8 +157,8 @@ MonsterRaceId get_mon_num(PlayerType *player_ptr, DEPTH min_level, DEPTH max_lev
         } // sorted by depth array,
         auto r_idx = i2enum<MonsterRaceId>(entry.index);
         auto r_ptr = &monraces_info[r_idx];
-        if (!(option & GMN_ARENA) && !chameleon_change_m_idx) {
-            if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
+        if (none_bits(mode, PM_ARENA) && !chameleon_change_m_idx) {
+            if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num) && none_bits(mode, PM_CLONE)) {
                 continue;
             }
 
index 6293e34..e8a9082 100644 (file)
@@ -1,16 +1,14 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
-#define GMN_ARENA 0x00000001 //!< 賭け闘技場向け生成
-
 enum class MonsterRaceId : int16_t;
 class FloorType;
 class MonsterRaceInfo;
 class PlayerType;
 MONSTER_IDX m_pop(FloorType *floor_ptr);
 
-MonsterRaceId get_mon_num(PlayerType *player_ptr, DEPTH min_level, DEPTH max_level, BIT_FLAGS option);
+MonsterRaceId get_mon_num(PlayerType *player_ptr, DEPTH min_level, DEPTH max_level, BIT_FLAGS mode);
 void choose_new_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, bool born, MonsterRaceId r_idx);
 byte get_mspeed(FloorType *player_ptr, MonsterRaceInfo *r_ptr);
 int get_monster_crowd_number(FloorType *floor_ptr, MONSTER_IDX m_idx);
index 4f7ba63..26efcbb 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster/monster-pain-describer.h"
+#include "monster/monster-pain-describer.h"
 #include "monster-race/monster-race.h"
 #include "monster/monster-describer.h"
 #include "system/floor-type-definition.h"
index 8725ada..bd7f639 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 698677d..463606f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief monster-processのための構造体群初期化処理と共通性の極めて高い処理
  * @date 2020/03/07
  * @author Hourier
index d9441d8..487b52c 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief monster-processのための構造体群
  * @date 2020/03/07
  * @author Hourier
index f15ce80..dae1486 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの特殊技能とターン経過処理 (移動等)/ Monster spells and movement for passaging a turn
  * @date 2014/01/17
  * @author
index 076c5d4..87cd41e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 8563fba..16f2588 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster/monster-status-setter.h"
+#include "monster/monster-status-setter.h"
 #include "avatar/avatar.h"
 #include "cmd-visual/cmd-draw.h"
 #include "core/speed-table.h"
index 6090b5d..b664381 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9e7b949..1315bd5 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster/monster-status.h"
+#include "monster/monster-status.h"
 #include "autopick/autopick-pref-processor.h"
 #include "core/speed-table.h"
 #include "floor/cave.h"
index bc38adf..6d08d86 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f11a7aa..5ef4f7f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum monster_timed_effect_type {
     MTIMED_CSLEEP = 0, /* Monster is sleeping */
index d270479..ae09211 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター情報のアップデート処理
  * @date 2020/03/08
  * @author Hourier
index 52eb90d..930dcf2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 88fc86d..bd10eb7 100644 (file)
@@ -1,4 +1,4 @@
-#include "monster/monster-util.h"
+#include "monster/monster-util.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "dungeon/quest.h"
 #include "floor/wild.h"
index 07e237e..e2459a2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 51ceee0..294b284 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class MonsterSmartLearnType {
     RES_ACID = 0, /*!< モンスターの学習フラグ: プレイヤーに酸耐性あり */
index 61a83da..a213a68 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターのスペル振り分け処理 / Spell launch by a monster
  * @date 2014/07/14
  * @author Habu
@@ -147,6 +147,7 @@ static MonsterSpellResult monspell_to_player_impl(PlayerType *player_ptr, Monste
     case MonsterAbilityType::S_HI_DRAGON: return spell_RF6_S_HI_DRAGON(player_ptr, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF6_S_HI_DRAGON */
     case MonsterAbilityType::S_AMBERITES: return spell_RF6_S_AMBERITES(player_ptr, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF6_S_AMBERITES */
     case MonsterAbilityType::S_UNIQUE: return spell_RF6_S_UNIQUE(player_ptr, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF6_S_UNIQUE */
+    case MonsterAbilityType::S_DEAD_UNIQUE: return spell_RF6_S_DEAD_UNIQUE(player_ptr, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF6_S_DEAD_UNIQUE */
     default: break;
     }
     // clang-format on
@@ -278,6 +279,7 @@ static MonsterSpellResult monspell_to_monster_impl(
     case MonsterAbilityType::S_HI_DRAGON: return spell_RF6_S_HI_DRAGON(player_ptr, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF6_S_HI_DRAGON */
     case MonsterAbilityType::S_AMBERITES: return spell_RF6_S_AMBERITES(player_ptr, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF6_S_AMBERITES */
     case MonsterAbilityType::S_UNIQUE: return spell_RF6_S_UNIQUE(player_ptr, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF6_S_UNIQUE */
+    case MonsterAbilityType::S_DEAD_UNIQUE: return spell_RF6_S_DEAD_UNIQUE(player_ptr, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF6_S_DEAD_UNIQUE */
     default: break;
     }
     // clang-format on
index dc0306b..e86d885 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2aca730..1483e7f 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/element-resistance-checker.h"
+#include "mspell/element-resistance-checker.h"
 #include "game-option/birth-options.h"
 #include "monster-race/race-ability-flags.h"
 #include "monster/smart-learn-types.h"
index 57fc84f..e2b51bf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct msr_type;
 class PlayerType;
index 8ad88f6..8cc8331 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/high-resistance-checker.h"
+#include "mspell/high-resistance-checker.h"
 #include "monster-race/race-ability-flags.h"
 #include "monster/smart-learn-types.h"
 #include "mspell/smart-mspell-util.h"
index 506d675..5d5998a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct msr_type;
 class PlayerType;
index ebf9144..dad14dc 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/improper-mspell-remover.h"
+#include "mspell/improper-mspell-remover.h"
 #include "game-option/birth-options.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags2.h"
index ba8ebe9..dc50657 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 588b020..a4046f3 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/monster-power-table.h"
+#include "mspell/monster-power-table.h"
 #include "monster-race/race-ability-flags.h"
 #include "player-ability/player-ability-types.h"
 
@@ -112,6 +112,7 @@ const std::map<MonsterAbilityType, const monster_power> monster_powers = {
     { MonsterAbilityType::S_HI_DRAGON, { 46, 90, 85, 0, 45, A_INT, _("古代ドラゴンの召喚", "summon Ancient Dragon") } },
     { MonsterAbilityType::S_AMBERITES, { 48, 120, 90, 0, 50, A_INT, _("アンバーの王族の召喚", "summon Lords of Amber") } },
     { MonsterAbilityType::S_UNIQUE, { 50, 150, 95, 0, 50, A_INT, _("ユニークモンスターの召喚", "summon Unique Monsters") } },
+    { MonsterAbilityType::S_DEAD_UNIQUE, { 50, 150, 95, 0, 50, A_INT, _("ユニークモンスターの口寄せ", "summon Dead Unique Monsters") } },
 };
 
 /*!
@@ -222,4 +223,5 @@ const std::map<MonsterAbilityType, concptr> monster_powers_short = {
     { MonsterAbilityType::S_HI_DRAGON, _("古代ドラゴン", "Ancient Dragon") },
     { MonsterAbilityType::S_AMBERITES, _("アンバーの王族", "Lords of Amber") },
     { MonsterAbilityType::S_UNIQUE, _("ユニーク", "Unique monsters") },
+    { MonsterAbilityType::S_DEAD_UNIQUE, _("黄泉のユニーク", "Dead unique monsters") },
 };
index a836075..c5a7f1f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 3df673c..0ca6870 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-attack-util.h"
+#include "mspell/mspell-attack-util.h"
 #include "monster-race/monster-race.h"
 #include "system/floor-type-definition.h"
 #include "system/monster-entity.h"
index a27225b..ad3602b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-race/race-ability-flags.h"
 #include "system/angband.h"
index 21a5582..a8eb71b 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-attack.h"
+#include "mspell/mspell-attack.h"
 #include "blue-magic/blue-magic-checker.h"
 #include "core/disturbance.h"
 #include "dungeon/dungeon-flag-types.h"
index 9f7ef0a..04fb970 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2be4805..e4a2fdd 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-attack/abstract-mspell.h"
+#include "mspell/mspell-attack/abstract-mspell.h"
 #include "monster/monster-update.h"
 #include "mspell/mspell-damage-calculator.h"
 #include "mspell/mspell-util.h"
index 458da19..a67cd7b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/effect-processor.h"
 #include "monster-race/race-ability-flags.h"
index dc83850..139cccc 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-attack/mspell-ball.h"
+#include "mspell/mspell-attack/mspell-ball.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-processor.h"
 #include "main/sound-of-music.h"
index 8b05613..610b355 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ad4f0e9..62a86c4 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-attack/mspell-bolt.h"
+#include "mspell/mspell-attack/mspell-bolt.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-processor.h"
 #include "main/sound-definitions-table.h"
index 6b25341..626254b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 61fb5f0..77dda1a 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-attack/mspell-breath.h"
+#include "mspell/mspell-attack/mspell-breath.h"
 #include "core/disturbance.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-processor.h"
index 1afd775..77a74f0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 3eb35a2..cf78859 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-attack/mspell-curse.h"
+#include "mspell/mspell-attack/mspell-curse.h"
 #include "core/disturbance.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-processor.h"
index 83b87ed..e3d8f21 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 10f22a0..dc797a9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ボルトでもボールでもブレスでもなく、ダメージを与える特殊なスペルの実行 /
  * Performing special spells that take damage, not bolts, balls or breaths
  * @date 2020/05/16
index 6f656ee..00e300f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "mspell/mspell-attack/abstract-mspell.h"
 #include "system/angband.h"
index fbd167e..87aba6e 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター魔法の実装 / Monster spells (attack player)
  * @date 2014/01/17
  * @author
index c46b081..b521e00 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 3c08c91..970a3e9 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-damage-calculator.h"
+#include "mspell/mspell-damage-calculator.h"
 #include "game-option/birth-options.h"
 #include "inventory/inventory-slot-types.h"
 #include "monster-race/monster-race.h"
@@ -428,6 +428,8 @@ static int monspell_damage_base(
         return -1;
     case MonsterAbilityType::S_UNIQUE:
         return -1;
+    case MonsterAbilityType::S_DEAD_UNIQUE:
+        return -1;
     case MonsterAbilityType::MAX:
         return -1;
     }
index ac153f7..87ca1fa 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index cd268af..1225378 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-data.h"
+#include "mspell/mspell-data.h"
 #include "effect/attribute-types.h"
 #include "monster/monster-update.h"
 #include "mspell/mspell-util.h"
index 19475cb..280a983 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "mind/drs-types.h"
 #include "system/angband.h"
index 3dd3a2b..c6256b6 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-dispel.h"
+#include "mspell/mspell-dispel.h"
 #include "blue-magic/blue-magic-checker.h"
 #include "core/speed-table.h"
 #include "core/window-redrawer.h"
index eb88584..0e74fdb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b6f9301..7a8b784 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief フロアの一定範囲に効果を及ぼす (悲鳴、テレポート等)スペルの効果
  * @date 2020/05/16
  * @author Hourier
index 993478d..5645c41 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d41b1e4..ca368ad 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスター魔法の実装(対モンスター処理) / Monster spells (attack monster)
  * @date 2014/01/17
  * @author
index 269c7e4..978af5b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index 0332ae2..062a54a 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-learn-checker.h"
+#include "mspell/mspell-learn-checker.h"
 #include "floor/cave.h"
 #include "grid/grid.h"
 #include "system/floor-type-definition.h"
index ad25303..40fead7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c4896cd..7f11e51 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの魔法によってフロアを明るくする処理及びその判定
  * @date 2020/07/23
  * @author Hourier
index 6de1a5a..83b5159 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0cf9ea3..ed46541 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "system/angband.h"
 
 //! モンスターが魔法を使った際の結果。
index b067567..db23fdd 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターが詠唱する魔法を選択する処理
  * @date 2020/07/23
  * @author Hourier
@@ -155,7 +155,7 @@ static bool spell_annoy(MonsterAbilityType spell)
  */
 static bool spell_summon(MonsterAbilityType spell)
 {
-    return spell_in_between(spell, MonsterAbilityType::S_KIN, MonsterAbilityType::S_UNIQUE);
+    return spell_in_between(spell, MonsterAbilityType::S_KIN, MonsterAbilityType::S_DEAD_UNIQUE);
 }
 
 /*!
index 9bbea80..e88f617 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ce45a74..8f00d7d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 特殊な行動を取るモンスターの具体的な行動定義 (MonsterRaceDefinitionsのSPECIALフラグ)
  * @date 2020/05/16
  * @author Hourier
index 797eac5..0166884 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fb19048..dd03dac 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーのステータスを下げるか、モンスター自身のステータスを上げるスペル類の処理
  * @date 2020/05/16
  * @author Hourier
index 9221893..465c4b4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4d50372..0def9bf 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-summon.h"
+#include "mspell/mspell-summon.h"
 #include "core/disturbance.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
@@ -969,3 +969,49 @@ MonsterSpellResult spell_RF6_S_UNIQUE(PlayerType *player_ptr, POSITION y, POSITI
 
     return res;
 }
+
+/*!
+ * @brief RF6_S_DEAD_UNIQUEの処理。撃破済みユニーク・モンスターをクローンとして召喚。 /
+ * @param player_ptr プレイヤーへの参照ポインタ
+ * @param y 対象の地点のy座標
+ * @param x 対象の地点のx座標
+ * @param m_idx 呪文を唱えるモンスターID
+ * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
+ * @param target_type プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
+ *
+ * プレイヤーが対象ならラーニング可。
+ */
+MonsterSpellResult spell_RF6_S_DEAD_UNIQUE(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int target_type)
+{
+    auto *floor_ptr = player_ptr->current_floor_ptr;
+    auto rlev = monster_level_idx(floor_ptr, m_idx);
+    auto mon_to_mon = (target_type == MONSTER_TO_MONSTER);
+    auto mon_to_player = (target_type == MONSTER_TO_PLAYER);
+    auto see_either = see_monster(player_ptr, m_idx) || see_monster(player_ptr, t_idx);
+    auto known = monster_near_player(floor_ptr, m_idx, t_idx);
+
+    mspell_cast_msg_blind msg(_("%^sが何かをつぶやいた。", "%^s mumbles."),
+        _("%s^が魔法で特別な強敵を蘇らせた!", "%^s magically animates special opponents!"),
+        _("%s^が魔法で特別な強敵を蘇らせた!", "%^s magically animates special opponents!"));
+
+    monspell_message(player_ptr, m_idx, t_idx, msg, target_type);
+    summon_disturb(player_ptr, target_type, known, see_either);
+
+    auto count = 0;
+    for (auto k = 0; k < S_NUM_4; k++) {
+        count += summon_specific(player_ptr, m_idx, y, x, rlev, SUMMON_DEAD_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_CLONE));
+    }
+
+    if (player_ptr->effects()->blindness()->is_blind() && count && mon_to_player) {
+        msg_format(_("多くの力強いものが間近に蘇った音が聞こえる。", "You hear many powerful things animate nearby."));
+    }
+
+    if (monster_near_player(floor_ptr, m_idx, t_idx) && !see_monster(player_ptr, t_idx) && count && mon_to_mon) {
+        floor_ptr->monster_noise = true;
+    }
+
+    auto res = MonsterSpellResult::make_valid();
+    res.learnable = target_type == MONSTER_TO_PLAYER;
+
+    return res;
+}
index 0974683..eb8bad5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
@@ -21,3 +21,4 @@ MonsterSpellResult spell_RF6_S_HI_UNDEAD(PlayerType *player_ptr, POSITION y, POS
 MonsterSpellResult spell_RF6_S_HI_DRAGON(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int target_type);
 MonsterSpellResult spell_RF6_S_AMBERITES(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int target_type);
 MonsterSpellResult spell_RF6_S_UNIQUE(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int target_type);
+MonsterSpellResult spell_RF6_S_DEAD_UNIQUE(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int target_type);
index 90c1370..478242f 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/mspell-util.h"
+#include "mspell/mspell-util.h"
 #include "core/disturbance.h"
 #include "floor/geometry.h"
 #include "grid/grid.h"
index 8bfef6f..1c62a8a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c194d77..9284251 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/smart-mspell-util.h"
+#include "mspell/smart-mspell-util.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-ability-flags.h"
 #include "monster-race/race-flags2.h"
index ab5d9f9..a5ff308 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-race/race-ability-flags.h"
 #include "monster/smart-learn-types.h"
index e090537..53caf56 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/specified-summon.h"
+#include "mspell/specified-summon.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h"
 #include "floor/cave.h"
index 54adf8f..f1b5752 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b690b03..ea36fb1 100644 (file)
@@ -1,4 +1,4 @@
-#include "mspell/summon-checker.h"
+#include "mspell/summon-checker.h"
 #include "monster-attack/monster-attack-table.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
@@ -153,6 +153,9 @@ bool check_summon_specific(PlayerType *player_ptr, MonsterRaceId summoner_idx, M
         is_match |= (r_idx == MonsterRaceId::SHALLOW_PUDDLE) || (r_idx == MonsterRaceId::DEEP_PUDDLE) || (r_idx == MonsterRaceId::SKY_WHALE);
         return is_match;
     }
+    case SUMMON_DEAD_UNIQUE: {
+        return monrace.kind_flags.has(MonsterKindType::UNIQUE) && monrace.max_num == 0;
+    }
     default:
         return false;
     }
index 897a6e7..3981fce 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f2478ea..ccf1877 100644 (file)
@@ -1,4 +1,4 @@
-#include "mutation/gain-mutation-switcher.h"
+#include "mutation/gain-mutation-switcher.h"
 #include "mutation/mutation-flag-types.h"
 #include "mutation/mutation-util.h"
 #include "player-base/player-class.h"
index f8b3f8d..9d9a840 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct glm_type;
 class PlayerType;
index c7da136..28a04f5 100644 (file)
@@ -1,4 +1,4 @@
-#include "mutation/lose-mutation-switcher.h"
+#include "mutation/lose-mutation-switcher.h"
 #include "mutation/mutation-flag-types.h"
 #include "mutation/mutation-util.h"
 #include "system/player-type-definition.h"
index 1ef31b9..cbaba4f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct glm_type;
 class PlayerType;
index f4b8185..3ca5e07 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 突然変異の各種計算 / Calculations for mutation
  * @date 2014/01/11
  * @author
index 62b9572..7f0419e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 int calc_mutant_regenerate_mod(PlayerType *player_ptr);
index 9eb35dc..bb8bc1d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class PlayerMutationType {
     SPIT_ACID = 0, /*!< 突然変異: 酸の唾 */
index f628902..3d77456 100644 (file)
@@ -1,4 +1,4 @@
-#include "mutation/mutation-investor-remover.h"
+#include "mutation/mutation-investor-remover.h"
 #include "avatar/avatar.h"
 #include "core/stuff-handler.h"
 #include "mutation/gain-mutation-switcher.h"
index f0ae022..2bb876c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 6563099..bccfa01 100644 (file)
@@ -1,4 +1,4 @@
-#include "mutation/mutation-processor.h"
+#include "mutation/mutation-processor.h"
 #include "core/asking-player.h"
 #include "core/disturbance.h"
 #include "effect/attribute-types.h"
index 4e2c459..c49c43b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void process_world_aux_mutation(PlayerType *player_ptr);
index b5f3ff8..21f69e8 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 突然変異でのみ得ることができる特殊能力処理
  * @date 2020/07/04
  * @author Hourier
index ee9ac26..8ad7328 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool eat_rock(PlayerType *player_ptr);
index 1e7597d..b748ef5 100644 (file)
@@ -1,4 +1,4 @@
-#include "mutation/mutation-util.h"
+#include "mutation/mutation-util.h"
 #include "mutation/mutation-flag-types.h"
 
 glm_type *initialize_glm_type(glm_type *gm_ptr, MUTATION_IDX choose_mut)
index 8df15bb..27ad7a6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 87fa034..568ba85 100644 (file)
@@ -1,4 +1,4 @@
-#include "net/curl-easy-session.h"
+#include "net/curl-easy-session.h"
 
 #if !defined(DISABLE_NET)
 
index 5f1f9ac..20d0a23 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <functional>
index 433a8f6..902c99a 100644 (file)
@@ -1,4 +1,4 @@
-#include "net/curl-slist.h"
+#include "net/curl-slist.h"
 
 #if !defined(DISABLE_NET)
 
index b3c2ee0..8c6a411 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <memory>
index 0870d35..8f53f35 100644 (file)
@@ -1,4 +1,4 @@
-#include "net/http-client.h"
+#include "net/http-client.h"
 #include "net/curl-easy-session.h"
 #include "net/curl-slist.h"
 #include <fstream>
index 5703a30..74f3763 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <filesystem>
index 1976383..bbf08eb 100644 (file)
@@ -1,4 +1,4 @@
-#include "external-lib/include-json.h"
+#include "external-lib/include-json.h"
 #include "locale/japanese.h"
 #include "net/http-client.h"
 #include "system/angband-version.h"
index 94c5365..3fbcc17 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 1bae108..969a851 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-activation/activation-bolt-ball.h"
+#include "object-activation/activation-bolt-ball.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h"
index 03bb38f..b7e6ebe 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-activation/activation-breath.h"
+#include "object-activation/activation-breath.h"
 #include "effect/attribute-types.h"
 #include "object-enchant/dragon-breaths-table.h"
 #include "object/object-flags.h"
index 47a1baf..d05fcc4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index e56e2c3..72a7b53 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-activation/activation-charm.h"
+#include "object-activation/activation-charm.h"
 #include "spell-kind/spells-charm.h"
 #include "spell-kind/spells-sight.h"
 #include "system/player-type-definition.h"
index 9ec35a1..4455b65 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool activate_charm_animal(PlayerType *player_ptr);
index a1c9d87..5364cc4 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-activation/activation-genocide.h"
+#include "object-activation/activation-genocide.h"
 #include "spell-kind/spells-genocide.h"
 #include "system/player-type-definition.h"
 #include "view/display-messages.h"
index 2a390b3..84cd156 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool activate_genocide(PlayerType *player_ptr);
index fd50ce1..18b27f8 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 発動処理その他 (肥大化しがちなので適宜まとまりを別ファイルへ分割すること)
  * @date 2020/08/19
  * @author Hourier
index 3ea629e..36a64f5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5a2ea89..931cdb9 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-activation/activation-resistance.h"
+#include "object-activation/activation-resistance.h"
 #include "effect/attribute-types.h"
 #include "hpmp/hp-mp-processor.h"
 #include "spell-kind/spells-launcher.h"
index a4b3def..8517f99 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの発動コマンド実装
  * @date 2018/09/07
  * @author deskull
index 22aad4e..444e5a1 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-activation/activation-teleport.h"
+#include "object-activation/activation-teleport.h"
 #include "cmd-io/cmd-save.h"
 #include "core/asking-player.h"
 #include "effect/attribute-types.h"
index 54b8900..d0c0aa3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool activate_teleport_away(PlayerType *player_ptr);
index ca1726f..dcd3153 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-activation/activation-util.h"
+#include "object-activation/activation-util.h"
 #include "object/object-info.h"
 #include "system/baseitem-info.h"
 #include "system/item-entity.h"
index 2bc44d5..c88c49c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index dc1bb92..d29fc66 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-enchant/activation-info-table.h"
+#include "object-enchant/activation-info-table.h"
 #include "artifact/random-art-effects.h"
 
 /*!
index 992d87e..2f719bf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <vector>
index 6ebb89c..482cd37 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-enchant/dragon-breaths-table.h"
+#include "object-enchant/dragon-breaths-table.h"
 #include "effect/attribute-types.h"
 
 /*!
index a4e2346..cf909d4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "object-enchant/tr-types.h"
index d3a3416..a745b10 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * @file enchanter-base.h
index 062d1b7..57bb440 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief アイテムの強化/弱化処理クラスを選択するファクトリクラス
  * @date 2022/03/22
  * @author Hourier
index ab031f1..5c0b681 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <memory>
 
index a9248a6..bbd160f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Bit flags for apply_magic()
index 1e1685e..163a72b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * アイテムの簡易鑑定定義 / Game generated inscription indices. These are stored in the object,
index 7464ef2..7215492 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ベースアイテムを強化する処理
  * @date 2022/03/22
  * @author Hourier
index d721f4b..9ad5a4d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <tuple>
index 9efc80c..0d20a2f 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-enchant/object-boost.h"
+#include "object-enchant/object-boost.h"
 #include "artifact/random-art-effects.h"
 #include "object-enchant/tr-types.h"
 #include "player-ability/player-ability-types.h"
index 0de3219..b6d5fed 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5ac2586..c687c9d 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-enchant/object-curse.h"
+#include "object-enchant/object-curse.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "inventory/inventory-slot-types.h"
index 71813c8..aa4123e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 266a382..a491482 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief エゴアイテムに関する処理
  * @date 2019/05/02
  * @author deskull
index dcbe17b..5185ef1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <map>
 #include <string>
index 32c17f6..d17b606 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 変愚ver1.5.0以前に使われていたアイテムの追加特性フラグ / Hack -- special "xtra" object powers
  * @date 2020/05/28
  * @author Hourier
index 290c277..1ba8430 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief アミュレットを強化生成する処理
  * @date 2021/04/30
  * @author Hourier
index e908561..6116e30 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/enchanter-base.h"
 #include "system/angband.h"
index 1fcfb75..b9edb9e 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-enchant/others/apply-magic-lite.h"
+#include "object-enchant/others/apply-magic-lite.h"
 #include "artifact/random-art-generator.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/object-ego.h"
index 1836f09..b916c1d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/enchanter-base.h"
 #include "system/angband.h"
index bcd3e52..d383686 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 武器でも防具でもアクセサリでもない、その他のアイテム群を生成・強化する処理
  * @date 2022/02/23
  * @author Hourier
@@ -9,6 +9,7 @@
 #include "artifact/random-art-generator.h"
 #include "game-option/cheat-options.h"
 #include "inventory/inventory-slot-types.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-indice-types.h"
@@ -147,7 +148,7 @@ void OtherItemsEnchanter::generate_corpse()
     auto *floor_ptr = this->player_ptr->current_floor_ptr;
     MonsterRaceId r_idx;
     while (true) {
-        r_idx = get_mon_num(this->player_ptr, 0, floor_ptr->dun_level, 0);
+        r_idx = get_mon_num(this->player_ptr, 0, floor_ptr->dun_level, PM_NONE);
         auto &r_ref = monraces_info[r_idx];
         auto check = (floor_ptr->dun_level < r_ref.level) ? (r_ref.level - floor_ptr->dun_level) : 0;
         const auto sval = this->o_ptr->bi_key.sval();
index 1826d9b..a1de44e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/enchanter-base.h"
 
index e42327a..a8f434d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 指輪を強化生成する処理
  * @date 2021/04/30
  * @author Hourier
index 024087a..b5e1f84 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/enchanter-base.h"
 #include "system/angband.h"
index 93eef77..8f89672 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 防具類に耐性等を付与する処理の共通部分
  * @date 2021/08/01
  * @author Hourier
index 7404a46..93aed9d 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 鎧類に耐性等の追加効果を付与する基底処理
  * @date 2022/03/12
  * @author Hourier
index e3ea538..44f4e7c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index 4b32552..14055a1 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 靴に耐性等の追加効果を付与する処理
  * @date 2021/08/01
  * @author Hourier
index 8cd63e7..d6a4b57 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index ff90936..f04ade9 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief クロークに耐性等の追加効果を付与する処理
  * @date 2021/08/01
  * @author Hourier
index b0a8eff..2a11e8f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index ffa1c0c..15e00b8 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 冠に耐性等の追加効果を付与する処理
  * @date 2021/08/01
  * @author Hourier
index 8ab327f..d6fee9f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index d40719a..8a7bd7f 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief ドラゴン・スケイルメイルに耐性等の追加効果を付与する処理
  * @date 2022/03/12
  * @author Hourier
index 45ba86d..f613bba 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index 21db829..6ad75c0 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 籠手に耐性等の追加効果を付与する処理
  * @date 2021/08/01
  * @author Hourier
index 012b5a6..715643b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index 0da2d59..6699a53 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 重鎧に耐性等の追加効果を付与する処理
  * @date 2022/03/12
  * @author Hourier
index dff2e0c..54f9427 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/apply-magic-armor.h"
 #include "system/angband.h"
index ffab38e..65d49b6 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 兜に耐性等の追加効果を付与する処理
  * @date 2021/08/01
  * @author Hourier
index 50c1bb2..7141e4d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index 5aafd42..d6acbce 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 盾に耐性等の追加効果を付与する処理
  * @date 2021/08/01
  * @author Hourier
index 01c233c..2028add 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/abstract-protector-enchanter.h"
 #include "system/angband.h"
index 50d93d9..4a1187d 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 軽鎧に耐性等の追加効果を付与する処理
  * @date 2022/03/12
  * @author Hourier
index 998c44e..dca638d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/protector/apply-magic-armor.h"
 #include "system/angband.h"
index 06b3c02..7b0ecbb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Special Object Flags
index ca157ea..014e548 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-types.h"
 #include "util/flag-group.h"
index bff1cb1..4d223e9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 45aebca..877ba3a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* 旧TRC. 実態に即した名称に変更 */
 enum class CurseTraitType {
index 1a973e7..38e69b3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 // clang-format off
 /*!
index 11df112..9e49f1f 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-enchant/vorpal-weapon.h"
+#include "object-enchant/vorpal-weapon.h"
 #include "artifact/fixed-art-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "io/files-util.h"
index 4a1da30..a65f76c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct player_attack_type;
 class PlayerType;
index 5a0aae8..1c50ab8 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-enchant/weapon/abstract-weapon-enchanter.h"
+#include "object-enchant/weapon/abstract-weapon-enchanter.h"
 #include "object-enchant/object-boost.h"
 #include "object/tval-types.h"
 #include "sv-definition/sv-weapon-types.h"
index 397ddf9..585f945 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/enchanter-base.h"
 #include "system/angband.h"
index 49a3c4a..f00bbbe 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 矢類のアイテムを強化する処理
  * @date 2022/03/11
  * @author Hourier
index 80091f6..465849e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/weapon/abstract-weapon-enchanter.h"
 #include "system/angband.h"
index ad4b146..80c4d1d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 弓系のアイテムを強化する処理
  * @date 2022/03/11
  * @author Hourier
index 3042e6f..e1fa0c9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/weapon/abstract-weapon-enchanter.h"
 #include "system/angband.h"
index 9d23aa7..8136731 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 掘削武器に耐性等の追加効果を付与する処理
  * @date 2022/03/11
  * @author Hourier
index a3a50cf..d7eb73d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/weapon/abstract-weapon-enchanter.h"
 #include "system/angband.h"
index 6f333d2..244a366 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 鈍器に耐性等の追加効果を付与する処理
  * @date 2022/03/22
  * @author Hourier
index 0e80dac..032b864 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/weapon/melee-weapon-enchanter.h"
 #include "system/angband.h"
index 7627641..a8a02fc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 長柄/斧に耐性等の追加効果を付与する処理
  * @date 2022/03/22
  * @author Hourier
index 5c229bc..e9056b8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/weapon/melee-weapon-enchanter.h"
 #include "system/angband.h"
index fa6341b..4523f33 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 剣に耐性等の追加効果を付与する処理
  * @date 2022/03/22
  * @author Hourier
index a24db23..4d3f801 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/weapon/melee-weapon-enchanter.h"
 #include "system/angband.h"
index b4bca16..078aac4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 剣・鈍器・長柄/斧武器に耐性等の追加効果を付与する処理
  * @date 2022/03/22
  * @author Hourier
index 52e09ef..157abac 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/weapon/abstract-weapon-enchanter.h"
 #include "system/angband.h"
index aad32dc..9395539 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-hook/hook-armor.h"
+#include "object-hook/hook-armor.h"
 #include "inventory/inventory-slot-types.h"
 #include "object/object-info.h"
 #include "player/player-sex.h"
index a2cd8ed..eb08aa8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 02710f6..5d1b7ea 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-hook/hook-expendable.h"
+#include "object-hook/hook-expendable.h"
 #include "artifact/fixed-art-types.h"
 #include "core/window-redrawer.h"
 #include "monster-race/monster-race.h"
index 02586c8..fd7d412 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 8cc7e55..f12c3e3 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-hook/hook-magic.h"
+#include "object-hook/hook-magic.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/tr-types.h"
 #include "object/object-flags.h"
index c29e4de..6b63de0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 6962507..1890a4a 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-hook/hook-perception.h"
+#include "object-hook/hook-perception.h"
 #include "object-hook/hook-weapon.h"
 #include "perception/object-perception.h"
 #include "system/item-entity.h"
index 2578cff..53c317e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 bool object_is_nameless_weapon_armour(const ItemEntity *o_ptr);
index 09aabaf..1491dbb 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-hook/hook-quest.h"
+#include "object-hook/hook-quest.h"
 #include "artifact/fixed-art-types.h"
 #include "cmd-building/cmd-building.h"
 #include "dungeon/quest.h"
index 1264ca0..1fc0367 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "dungeon/quest.h"
 #include "system/angband.h"
index 2d75a69..f7a976c 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-hook/hook-weapon.h"
+#include "object-hook/hook-weapon.h"
 #include "object-enchant/tr-types.h"
 #include "object-hook/hook-armor.h"
 #include "object/object-flags.h"
index a17f156..ce926b7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 3366d5c..9b2ea8c 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-use/item-use-checker.h"
+#include "object-use/item-use-checker.h"
 #include "system/player-type-definition.h"
 #include "timed-effect/player-stun.h"
 #include "timed-effect/timed-effects.h"
index 3aac03e..8c8bb30 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 
index 111b13b..de2697e 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 薬を飲んだ時の効果処理
  * @date 2022/03/10
  * @author Hourier
index 068c350..44f82d3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index ef23e1e..c99c79b 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 薬を飲んだ時の各種効果処理
  * @date 2022/03/10
  * @author Hourier
index 9daa7d6..2d33450 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0a5b49e..651dfb7 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 読むことができるアイテム群の内、Tシャツ『★GHB』を読んだ時の効果や処理を記述する.
  * @date 2022/02/26
  * @author Hourier
index d70033a..4c719f8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-use/read/read-executor-base.h"
 
index 4ec6a66..b1ea3c3 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 読むことができるアイテム群の内、中つ国ガイドを読んだ時の効果や処理を記述する.
  * @date 2022/02/26
  * @author Hourier
index b9b3bb4..c859151 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-use/read/read-executor-base.h"
 
index 2be1282..f2fd823 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 巻物を読んだ際の効果処理
  * @date 2022/02/26
  * @author Hourier
index c8e4f53..c8b6b96 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e23cc91..efa0c53 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ReadExecutorBase {
 public:
index 49d212d..51db6c7 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-use/read/read-executor-factory.h"
+#include "object-use/read/read-executor-factory.h"
 #include "artifact/fixed-art-types.h"
 #include "object-use/read/gbh-shirt-read-executor.h"
 #include "object-use/read/parchment-read-executor.h"
index 8dff9f7..dc0d14a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-use/read/read-executor-base.h"
 #include <memory>
index 2a6abab..2160ba4 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 読むことができるアイテム群の内、一つの指輪に刻印された文字を読んだ時の効果や処理を記述する.
  * @date 2022/02/26
  * @author Hourier
index 4059c7b..73fbe79 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-use/read/read-executor-base.h"
 
index cfead0c..7261e86 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 読むことができるアイテム群の内、巻物を読んだ時の効果や処理を記述する.
  * @date 2022/02/26
  * @author Hourier
index e3e9421..311d21f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-use/read/read-executor-base.h"
 
index 086b935..3886bcd 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file throw-util.cpp
  * @brief 投擲処理関連クラス
  * @date 2021/08/20
index e6d527f..a102db6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 /*!
  * @file throw-util.h
  * @brief 投擲処理関連ヘッダ
index ed94845..7e703d4 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 杖を振る処理
  * @date 2021/09/25
  * @author Hourier
index 4258361..ca87245 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 67ab7d2..6433642 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ロッドを振る処理
  * @date 2021/09/25
  * @author Hourier
index d674da5..7e87776 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ebd3296..dac6118 100644 (file)
@@ -1,4 +1,4 @@
-#include "object-use/zapwand-execution.h"
+#include "object-use/zapwand-execution.h"
 #include "action/action-limited.h"
 #include "avatar/avatar.h"
 #include "cmd-item/cmd-zapwand.h" // 相互依存。暫定的措置、後で何とかする.
index 74299e7..be395d5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b4f97df..4ed10d9 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief オブジェクトに関する汎用判定処理
  * @date 2018/09/24
  * @author deskull
index 4b18ed4..32bf98e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 
index 75b7e63..1425033 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * get_item()関数でアイテムの選択を行うフラグ / Bit flags for the "get_item" function
index f74adf3..2e94dbc 100644 (file)
@@ -1,4 +1,4 @@
-#include "object/lite-processor.h"
+#include "object/lite-processor.h"
 #include "core/disturbance.h"
 #include "core/window-redrawer.h"
 #include "game-option/disturbance-options.h"
index da790e2..00be05c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 18dafb4..1932515 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief アイテム破壊処理
  * @date 2019/03/06
  * @author deskull
index 543e38f..3e5a7d0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-types.h"
 #include "system/angband.h"
index 142cc0c..d29eef9 100644 (file)
@@ -1,4 +1,4 @@
-#include "object/object-flags.h"
+#include "object/object-flags.h"
 #include "mind/mind-weaponsmith.h"
 #include "object-enchant/object-ego.h"
 #include "object-enchant/tr-types.h"
index 228959a..0ed2d0a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "system/system-variables.h"
index a4c5b50..5170eae 100644 (file)
@@ -1,4 +1,4 @@
-#include "object/object-index-list.h"
+#include "object/object-index-list.h"
 #include "system/floor-type-definition.h"
 #include "system/item-entity.h"
 
index c665929..43c9b4b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 1f72128..2ec6ef0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief オブジェクトの実装 / Object code, part 1
  * @date 2014/01/10
  * @author
@@ -40,7 +40,7 @@
  * @param o_ptr 名称を取得する元のオブジェクト構造体参照ポインタ
  * @return std::string 発動名称を返す文字列ポインタ
  */
-static std::string item_activation_dragon_breath(ItemEntity *o_ptr)
+static std::string item_activation_dragon_breath(const ItemEntity *o_ptr)
 {
     std::string desc = _("", "breathe ");
     int n = 0;
@@ -67,7 +67,7 @@ static std::string item_activation_dragon_breath(ItemEntity *o_ptr)
  * @param o_ptr 名称を取得する元のオブジェクト構造体参照ポインタ
  * @return concptr 発動名称を返す文字列ポインタ
  */
-static concptr item_activation_aux(ItemEntity *o_ptr)
+static concptr item_activation_aux(const ItemEntity *o_ptr)
 {
     static std::string activation_detail;
     auto tmp_act_ptr = find_activation_info(o_ptr);
@@ -185,7 +185,7 @@ static concptr item_activation_aux(ItemEntity *o_ptr)
  * @param o_ptr 名称を取得する元のオブジェクト構造体参照ポインタ
  * @return concptr 発動名称を返す文字列ポインタ
  */
-concptr activation_explanation(ItemEntity *o_ptr)
+std::string activation_explanation(const ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
     if (flags.has_not(TR_ACTIVATE)) {
index ea67889..0fa566b 100644 (file)
@@ -1,14 +1,15 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 #include "system/angband.h"
+#include <string>
 
 #define OBJ_GOLD_LIST 480 /* First "gold" entry */
 
 class BaseitemKey;
 class ItemEntity;
 class PlayerType;
-concptr activation_explanation(ItemEntity *o_ptr);
+std::string activation_explanation(const ItemEntity *o_ptr);
 char index_to_label(int i);
 int16_t wield_slot(PlayerType *player_ptr, const ItemEntity *o_ptr);
 bool check_book_realm(PlayerType *player_ptr, const BaseitemKey &bi_key);
index 082a3a3..81b2049 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief アイテムが特定種別のものであるかどうかの判定関数群
  * @date 2018/12/15
  * @author deskull
index 0c15a99..13c4bff 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 bool kind_is_cloak(short bi_id);
 bool kind_is_polearm(short bi_id);
index 4b7fefc..6497214 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief How an entity of an item is marked (flags in ItemEntity::marked)
  * @date 2020/05/28
  * @author Hourier
index 6966251..53515d0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 同種のアイテムをインベントリや床に重ね合わせたり、その判断を行う処理
  * @date 2020/06/03
  * @author Hourier
index 34a0e50..5293314 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 void distribute_charges(ItemEntity *o_ptr, ItemEntity *q_ptr, int amt);
index 72fb96c..c415194 100644 (file)
@@ -1,4 +1,4 @@
-#include "object/object-value-calc.h"
+#include "object/object-value-calc.h"
 #include "artifact/artifact-info.h"
 #include "object-enchant/activation-info-table.h"
 #include "object-enchant/object-ego.h"
index 2847fbe..df23dd7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b4334f8..e187d25 100644 (file)
@@ -1,4 +1,4 @@
-#include "object/object-value.h"
+#include "object/object-value.h"
 #include "monster-race/monster-race.h"
 #include "object/object-flags.h"
 #include "object/object-value-calc.h"
index 05ece9d..df632a4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 148e9e2..98be388 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * The values for the "tval" field of various objects.
  *
  * This value is the primary means by which items are sorted in the
index ccdb60e..71d7eeb 100644 (file)
@@ -1,4 +1,4 @@
-#include "object/warning.h"
+#include "object/warning.h"
 #include "artifact/fixed-art-types.h"
 #include "core/asking-player.h"
 #include "core/disturbance.h"
index 0ef31bf..c4f8ca5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 63dfb08..5744e1f 100644 (file)
@@ -1,4 +1,4 @@
-#include "perception/identification.h"
+#include "perception/identification.h"
 #include "artifact/fixed-art-types.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
@@ -26,6 +26,8 @@
 #include "util/buffer-shaper.h"
 #include "util/enum-converter.h"
 #include <algorithm>
+#include <array>
+#include <string>
 
 /*!
  * @brief オブジェクトの*鑑定*内容を詳述して表示する /
@@ -37,7 +39,7 @@
  */
 bool screen_object(PlayerType *player_ptr, ItemEntity *o_ptr, BIT_FLAGS mode)
 {
-    concptr info[128];
+    std::array<std::string, 128> info{};
     int trivial_info = 0;
     auto flags = object_flags(o_ptr);
 
@@ -788,9 +790,7 @@ bool screen_object(PlayerType *player_ptr, ItemEntity *o_ptr, BIT_FLAGS mode)
     }
 
     screen_save();
-    int wid, hgt;
-    term_get_size(&wid, &hgt);
-
+    const auto [wid, hgt] = term_get_size();
     std::string item_name;
     if (!(mode & SCROBJ_FAKE_OBJECT)) {
         item_name = describe_flavor(player_ptr, o_ptr, 0);
index 7f3a255..4e8a8c9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0b8b6f2..0c9ab9e 100644 (file)
@@ -1,4 +1,4 @@
-#include "perception/object-perception.h"
+#include "perception/object-perception.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "game-option/play-record-options.h"
index 8aec9d5..d1ea95e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 3c9ab50..dd3e280 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 疑似鑑定処理
  * @date 2020/05/15
  * @author Hourier
index fe2b418..6212886 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/item-feeling.h"
 
index a8ab7a1..54e8104 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 落馬処理
  * @date 2020/05/31
  * @author Hourier
index 63e4eb3..35e213f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e6fc761..55e1a12 100644 (file)
@@ -1,4 +1,4 @@
-#include "pet/pet-util.h"
+#include "pet/pet-util.h"
 #include "core/stuff-handler.h"
 #include "grid/grid.h"
 #include "monster-race/monster-race.h"
index 5c4bc7e..0404f0c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e196714..c7d24c6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * @file player-ability-types.h
index 61b0f8d..c7bbe64 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-ability/player-charisma.h"
+#include "player-ability/player-charisma.h"
 #include "mutation/mutation-flag-types.h"
 #include "object/object-flags.h"
 #include "player-base/player-class.h"
index fa18bcb..6401730 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-status/player-basic-statistics.h"
 
index 4bac551..ae1628c 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-ability/player-constitution.h"
+#include "player-ability/player-constitution.h"
 #include "mutation/mutation-flag-types.h"
 #include "object/object-flags.h"
 #include "player-base/player-class.h"
index 868160f..c0ea4eb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-status/player-basic-statistics.h"
 
index a64ca2e..74f6edc 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-ability/player-dexterity.h"
+#include "player-ability/player-dexterity.h"
 #include "mutation/mutation-flag-types.h"
 #include "object/object-flags.h"
 #include "player-base/player-class.h"
index 48b4cac..8d068a9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-status/player-basic-statistics.h"
 
index 274c60f..34074cb 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-ability/player-intelligence.h"
+#include "player-ability/player-intelligence.h"
 #include "mutation/mutation-flag-types.h"
 #include "object/object-flags.h"
 #include "player-base/player-class.h"
index 12c6021..5fea2da 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-status/player-basic-statistics.h"
 
index 3b99f83..18ced57 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-ability/player-strength.h"
+#include "player-ability/player-strength.h"
 #include "mutation/mutation-flag-types.h"
 #include "object/object-flags.h"
 #include "player-base/player-class.h"
index 06a4e59..1bd913e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-status/player-basic-statistics.h"
 
index 413506e..3220e4e 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-ability/player-wisdom.h"
+#include "player-ability/player-wisdom.h"
 #include "mutation/mutation-flag-types.h"
 #include "object/object-flags.h"
 #include "player-base/player-class.h"
index 8b4894f..9d25e64 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-status/player-basic-statistics.h"
 
index ef3b86a..3721fb3 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 特殊属性武器で攻撃した際の追加効果処理
  * @date 2020/05/23
  * @author Hourier
index f17e57e..7cea0e7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5560af6..7e2df2b 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 吸血処理
  * @date 2020/05/23
  * @author Hourier
index ee1a252..4a98b49 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct player_attack_type;
 class PlayerType;
index 048c3fc..e349aeb 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーからモンスターへの打撃処理
  * @date 2020/05/22
  * @author Hourier
index f4da384..35020a4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "combat/combat-options-type.h"
 #include "combat/martial-arts-table.h"
index 5217c93..72f11dc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの職業クラスに基づく耐性・能力の判定処理等を行うクラス
  * @date 2021/09/08
  * @author Hourier
index f6c57c7..736f1be 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-flags.h"
 #include "system/player-type-definition.h"
index d869db9..7f6aed6 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの種族に基づく耐性・能力の判定処理等を行うクラス
  * @date 2021/09/08
  * @author Hourier
index 5bcdfb4..5c2e602 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-flags.h"
 
index ee96872..4860609 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/alignment.h"
+#include "player-info/alignment.h"
 #include "artifact/fixed-art-types.h"
 #include "avatar/avatar.h"
 #include "game-option/text-display-options.h"
index 5da5aa4..b81d39d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 9e16d67..628d39e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 12c3575..7c42877 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/base-status-info.h"
+#include "player-info/base-status-info.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/tr-types.h"
 #include "object/object-flags.h"
index bb59d99..13040f2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index 3335e89..cc45cb6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index adefafc..fb6016d 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/body-improvement-info.h"
+#include "player-info/body-improvement-info.h"
 #include "player-info/self-info-util.h"
 #include "player/player-status-flags.h"
 #include "player/player-status.h"
index 29d20f6..e535da4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index fe90260..eec640d 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/class-ability-info.h"
+#include "player-info/class-ability-info.h"
 #include "player-info/self-info-util.h"
 #include "realm/realm-names-table.h"
 #include "realm/realm-types.h"
index dc695bc..4768c45 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index 1da7276..18aaffd 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの職業に関する諸テーブル定義
  * @date 2019/04/30
  * @author deskull
index ad2237e..ad6015d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* 人畜無害なenumヘッダを先に読み込む */
 #include "system/angband.h"
index efc6d1c..859ab30 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <memory>
 #include <variant>
index 4cb664f..35f0ad5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class PlayerClassType : short {
     WARRIOR = 0,
index a857795..afb6fc8 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/equipment-info.h"
+#include "player-info/equipment-info.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-hook/hook-weapon.h"
 #include "object/tval-types.h"
index ea5a987..bb85753 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 34bc808..43995c5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 46df2b2..4766a91 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/magic-eater-data-type.h"
+#include "player-info/magic-eater-data-type.h"
 #include "sv-definition/sv-rod-types.h"
 #include "sv-definition/sv-staff-types.h"
 #include "sv-definition/sv-wand-types.h"
index 52570ad..912fe79 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 38062df..7437652 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e434c77..37dc18d 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/mimic-info-table.h"
+#include "player-info/mimic-info-table.h"
 #include "player-info/race-info.h"
 
 #ifdef JP
index 44f269c..84c3773 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-info/race-info.h"
 #include <map>
index 2a7be8f..e83f98a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 55175cd..d8f170f 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/mutation-info.h"
+#include "player-info/mutation-info.h"
 #include "mutation/mutation-flag-types.h"
 #include "player-info/self-info-util.h"
 #include "player/player-status-flags.h"
index 5c31bb2..66b5ccb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index 9e30c7c..60845c2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index edfc06c..ccc390d 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/race-ability-info.h"
+#include "player-info/race-ability-info.h"
 #include "player-info/self-info-util.h"
 #include "system/player-type-definition.h"
 #include "term/z-form.h"
index 639458e..127eb30 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index c35e0a4..7bc39ce 100644 (file)
@@ -1,3 +1,3 @@
-#include "player-info/race-info.h"
+#include "player-info/race-info.h"
 
 const player_race_info *rp_ptr;
index 1b7cc66..834968e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <optional>
 #include <unordered_map>
index bd96994..d6f3894 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "util/enum-converter.h"
 
index db87d72..f4df125 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/resistance-info.h"
+#include "player-info/resistance-info.h"
 #include "player-base/player-race.h"
 #include "player-info/race-info.h"
 #include "player-info/self-info-util.h"
index 8833af2..ff4a018 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index 4afab18..90046e3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b9a77f3..d3e0e97 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自己分析における各種情報格納処理 (予定地)
  * @author Hourier
  * @date 2023/06/10
index 432734d..03e0bca 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/item-entity.h"
 
index de80834..5957dd1 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 自己分析処理/ Self knowledge
  * @date 2018/09/07
  * @author deskull
index 6241bd9..3e9e615 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void self_knowledge(PlayerType *player_ptr);
index fb0506f..fa0db42 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index edbb021..db03cec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0d4e8e5..c2eb89b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 28f5f36..edabf9e 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-info/weapon-effect-info.h"
+#include "player-info/weapon-effect-info.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/tr-types.h"
 #include "player-info/self-info-util.h"
index f5a8a11..a7d20d5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index a4b0c76..a01d17c 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-status/player-basic-statistics.h"
+#include "player-status/player-basic-statistics.h"
 #include "core/window-redrawer.h"
 #include "mutation/mutation-flag-types.h"
 #include "object/object-flags.h"
index abd859f..e5b382b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-ability/player-ability-types.h"
 #include "player-status/player-status-base.h"
index 2599fa2..98a61dd 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @file player-energy.cpp
  * @brief ゲームターン当たりの行動エネルギー増減処理
  * @author Hourier
index 18c88c1..d4a0460 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index bdd25a4..a14189b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!< Empty hand status */
 enum empty_hand_status {
index 58f8e29..54fd9e8 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-status/player-infravision.h"
+#include "player-status/player-infravision.h"
 #include "mutation/mutation-flag-types.h"
 #include "player-base/player-race.h"
 #include "player-info/mimic-info-table.h"
index 1da20b8..dea9344 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "player-status/player-status-base.h"
 
 class PlayerInfravision : public PlayerStatusBase {
index 786c22b..674ea1b 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-status/player-speed.h"
+#include "player-status/player-speed.h"
 #include "artifact/fixed-art-types.h"
 #include "grid/feature-flag-types.h"
 #include "grid/feature.h"
index 0c9a528..a9eb955 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "player-status/player-status-base.h"
 
 class PlayerSpeed : public PlayerStatusBase {
index 16fdfcb..bdb1089 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-status/player-status-base.h"
+#include "player-status/player-status-base.h"
 #include "inventory/inventory-slot-types.h"
 #include "object/object-flags.h"
 #include "player/player-status.h"
index f35dc94..fba2c68 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "player/player-status-flags.h"
 #include "system/angband.h"
 
index 8a436c0..89dd9f3 100644 (file)
@@ -1,4 +1,4 @@
-#include "player-status/player-stealth.h"
+#include "player-status/player-stealth.h"
 #include "mind/mind-ninja.h"
 #include "mutation/mutation-flag-types.h"
 #include "player-base/player-class.h"
index 0d19abd..a6b14b6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include "player-status/player-status-base.h"
 
 class PlayerStealth : public PlayerStatusBase {
index f82fa96..bad6552 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum special_attack_type {
     ATTACK_CONFUSE = 0x00000001, /*!< プレイヤーのステータス:混乱打撃 */
index e3b79b5..bf20c3d 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/digestion-processor.h"
+#include "player/digestion-processor.h"
 #include "avatar/avatar.h"
 #include "core/disturbance.h"
 #include "core/speed-table.h"
index c59a578..d865df1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 05693ac..0151810 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief エルドリッチホラー処理
  * @date 2020/06/07
  * @author Hourier
@@ -7,6 +7,7 @@
 #include "player/eldritch-horror.h"
 #include "core/stuff-handler.h"
 #include "locale/english.h"
+#include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
@@ -143,7 +144,7 @@ void sanity_blast(PlayerType *player_ptr, MonsterEntity *m_ptr, bool necro)
         }
     } else if (!necro) {
         get_mon_num_prep(player_ptr, get_nightmare, nullptr);
-        auto *r_ptr = &monraces_info[get_mon_num(player_ptr, 0, MAX_DEPTH, 0)];
+        auto *r_ptr = &monraces_info[get_mon_num(player_ptr, 0, MAX_DEPTH, PM_NONE)];
         power = r_ptr->level + 10;
         const auto &desc = r_ptr->name;
         get_mon_num_prep(player_ptr, nullptr, nullptr);
index fd49350..8d82f74 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class MonsterEntity;
 class PlayerType;
index 8ffe4f6..07d6200 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/patron.h"
+#include "player/patron.h"
 #include "cmd-action/cmd-pet.h"
 #include "cmd-io/cmd-dump.h"
 #include "flavor/flavor-describer.h"
index 0f75287..7cbccd4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index e2cca43..70a9acd 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/permanent-resistances.h"
+#include "player/permanent-resistances.h"
 #include "inventory/inventory-slot-types.h"
 #include "mind/mind-elementalist.h"
 #include "mutation/mutation-flag-types.h"
index d223e98..d65c4c4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 8431bba..4f7c84d 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-damage.h"
+#include "player/player-damage.h"
 #include "autopick/autopick-pref-processor.h"
 #include "avatar/avatar.h"
 #include "blue-magic/blue-magic-checker.h"
index 56debe1..7b5fe87 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string_view>
 
index 573766f..dbaa355 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  *  @brief プレイヤーの移動処理 / Movement commands
  *  @date 2014/01/02
  *  @author
index 6656e11..cc9b59d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 8ba70d8..9f50910 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum player_personality_type {
     PERSONALITY_ORDINARY = 0,
index 5c2bcca..10a0bc2 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-personality.h"
+#include "player/player-personality.h"
 #include "mutation/mutation-flag-types.h"
 #include "object-enchant/trc-types.h"
 
index aa48593..5f25c87 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player/player-personality-types.h"
 #include "system/angband.h"
index cd116e3..5905f94 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-realm.h"
+#include "player/player-realm.h"
 #include "object/tval-types.h"
 #include "system/player-type-definition.h"
 
index c193795..7db6efe 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <vector>
index b1fe5e6..7552c5b 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-sex.h"
+#include "player/player-sex.h"
 
 /*
  * Pointer to the player tables
index 7f76f0d..2206700 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d8e30c5..4fc7dc8 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-skill.h"
+#include "player/player-skill.h"
 #include "monster-race/monster-race.h"
 #include "player-base/player-class.h"
 #include "player-base/player-race.h"
index 762e3cd..4447d25 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ec53b26..dc793d1 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-status-flags.h"
+#include "player/player-status-flags.h"
 #include "artifact/fixed-art-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "mind/mind-elementalist.h"
index 2c9386d..b7d2d16 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/tr-types.h"
index 2878baa..6a2a3e2 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-status-resist.h"
+#include "player/player-status-resist.h"
 #include "artifact/fixed-art-types.h"
 #include "grid/grid.h"
 #include "inventory/inventory-slot-types.h"
index e683fe8..b426435 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a178c08..24fdd93 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-status-table.h"
+#include "player/player-status-table.h"
 
 /*!
  * @brief 能力値テーブル / Abbreviations of healthy stats
index a43b57d..23460a5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-ability/player-ability-types.h"
 #include "system/angband.h"
index 55a0ee9..495ed7b 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-status.h"
+#include "player/player-status.h"
 #include "artifact/fixed-art-types.h"
 #include "autopick/autopick-reader-writer.h"
 #include "autopick/autopick.h"
index 7e227c5..f9136d1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * @file player-status.h
index 0444b67..81319dd 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/player-view.h"
+#include "player/player-view.h"
 #include "floor/cave.h"
 #include "floor/line-of-sight.h"
 #include "game-option/map-screen-options.h"
index 3491ed7..19351c8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void update_view(PlayerType *player_ptr);
index c3babc3..1b6e295 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 死亡・引退・切腹時の画面表示
  * @date 2020/02/24
  * @author Hourier
index 00bdddc..161145b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void print_tomb(PlayerType *player_ptr);
index ec8579a..0aa920b 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/process-name.h"
+#include "player/process-name.h"
 #include "autopick/autopick-reader-writer.h"
 #include "core/asking-player.h"
 #include "game-option/birth-options.h"
index 6cbbf0f..b1dc64a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void process_player_name(PlayerType *player_ptr, bool is_new_savefile = false);
index 2d6a8c7..a666b43 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/race-info-table.h"
+#include "player/race-info-table.h"
 
 #ifdef JP
 #define N(JAPANESE, ENGLISH) JAPANESE, ENGLISH
index fbf4ea5..cddf16d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-info/race-info.h"
 #include "player-info/race-types.h"
index 9d7353b..c60325f 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/race-resistances.h"
+#include "player/race-resistances.h"
 #include "inventory/inventory-slot-types.h"
 #include "mind/mind-elementalist.h"
 #include "mutation/mutation-flag-types.h"
index a922310..63a4600 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b2ee35e..e01a1ed 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum special_defence {
     DEFENSE_ACID = 0x00000001, /*!< プレイヤーのステータス:酸免疫 */
index 20b5822..bb87ced 100644 (file)
@@ -1,4 +1,4 @@
-#include "player/temporary-resistances.h"
+#include "player/temporary-resistances.h"
 #include "object-enchant/tr-types.h"
 #include "player-info/race-info.h"
 #include "player-info/race-types.h"
index 93e8b29..f6fca6a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4343b4e..94bbe1f 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/class-racial-switcher.h"
+#include "racial/class-racial-switcher.h"
 #include "cmd-action/cmd-spell.h"
 #include "mind/mind-elementalist.h"
 #include "racial/racial-util.h"
index c53842c..06d80cd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct rc_type;
index 566b95c..06db745 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/mutation-racial-selector.h"
+#include "racial/mutation-racial-selector.h"
 #include "cmd-action/cmd-spell.h"
 #include "locale/japanese.h"
 #include "mutation/mutation-flag-types.h"
index 85dbebf..42b6267 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct rc_type;
index 56cb678..309a1ba 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/race-racial-command-setter.h"
+#include "racial/race-racial-command-setter.h"
 #include "cmd-action/cmd-spell.h"
 #include "player-info/race-info.h"
 #include "racial/racial-util.h"
index 5262ea0..4857487 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct rc_type;
index f17282d..a792def 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/racial-android.h"
+#include "racial/racial-android.h"
 #include "effect/attribute-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/object-ego.h"
index 5db1e23..3422cae 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool android_inside_weapon(PlayerType *player_ptr);
index 748b1d0..7db4f57 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/racial-balrog.h"
+#include "racial/racial-balrog.h"
 #include "effect/attribute-types.h"
 #include "player/player-status.h"
 #include "spell-kind/spells-launcher.h"
index 7dd926b..a67eea9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool demonic_breath(PlayerType *player_ptr);
index 668929d..30664bc 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/racial-draconian.h"
+#include "racial/racial-draconian.h"
 #include "effect/attribute-types.h"
 #include "mind/mind-elementalist.h"
 #include "player/player-status.h"
index 8fa35ea..40e524f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool draconian_breath(PlayerType *player_ptr);
index a6fbc9e..08569b7 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/racial-kutar.h"
+#include "racial/racial-kutar.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
index 1865126..e0ed33b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c933236..b0fbb09 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief レイシャルと突然変異の技能処理 / Racial powers (and mutations)
  * @date 2014/01/08
  * @author
index 2a1a65f..2a870f7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 7c8b677..bc10d09 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/racial-util.h"
+#include "racial/racial-util.h"
 #include "io/input-key-requester.h"
 #include "player-base/player-class.h"
 #include "system/player-type-definition.h"
index 3882afe..0739238 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 #include <vector>
index e430355..9c1974a 100644 (file)
@@ -1,4 +1,4 @@
-#include "racial/racial-vampire.h"
+#include "racial/racial-vampire.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/geometry.h"
 #include "hpmp/hp-mp-processor.h"
index 5083635..34b94e1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool vampirism(PlayerType *player_ptr);
index c1dafcf..8b119f7 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-arcane.h"
+#include "realm/realm-arcane.h"
 #include "avatar/avatar.h"
 #include "cmd-action/cmd-spell.h"
 #include "core/asking-player.h"
index ecc6a09..1766be0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index b6078d1..90c503c 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-chaos.h"
+#include "realm/realm-chaos.h"
 #include "cmd-action/cmd-spell.h"
 #include "core/asking-player.h"
 #include "effect/attribute-types.h"
index 1e21fd0..bc7db58 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index e20b0d1..fb0c929 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-craft.h"
+#include "realm/realm-craft.h"
 #include "cmd-action/cmd-spell.h"
 #include "monster-floor/monster-summon.h"
 #include "monster-floor/place-monster-types.h"
index 10acff3..03c10dd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 18b970a..af59aa5 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-crusade.h"
+#include "realm/realm-crusade.h"
 #include "cmd-action/cmd-spell.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
index a29ebc1..98a796a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index f7cbac3..bbd42c1 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-death.h"
+#include "realm/realm-death.h"
 #include "avatar/avatar.h"
 #include "cmd-action/cmd-spell.h"
 #include "effect/effect-characteristics.h"
index aa70d3c..bbe171a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 3af703f..c4d1acc 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-demon.h"
+#include "realm/realm-demon.h"
 #include "cmd-action/cmd-spell.h"
 #include "effect/attribute-types.h"
 #include "monster-floor/monster-summon.h"
index d680dbb..2cc0176 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 7c158e3..b793248 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum spell_hex_type {
     /* 1st book */
index e87d987..aa18e89 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 呪術の処理実装 / Hex code
  * @date 2014/01/14
  * @author
index 1d3efbf..81e3719 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "realm/realm-hex-numbers.h"
 #include "spell/spells-util.h"
index 7a228a7..d598aa3 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-hissatsu.h"
+#include "realm/realm-hissatsu.h"
 #include "artifact/fixed-art-types.h"
 #include "cmd-action/cmd-attack.h"
 #include "cmd-action/cmd-spell.h"
index 9e9da9b..1cbb4ce 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 386bbae..4118b6b 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-life.h"
+#include "realm/realm-life.h"
 #include "cmd-action/cmd-spell.h"
 #include "effect/attribute-types.h"
 #include "player/digestion-processor.h"
index 4c18841..c6020fc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 31a71d7..c0b4e4d 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-names-table.h"
+#include "realm/realm-names-table.h"
 
 #ifdef JP
 /*!
index 033e1eb..171039e 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 魔法領域に関する関数マクロ群
  * @date 2021/10/11
  * @author Hourier
index 11d5b67..9cc51e3 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-nature.h"
+#include "realm/realm-nature.h"
 #include "avatar/avatar.h"
 #include "cmd-action/cmd-spell.h"
 #include "effect/attribute-types.h"
index b348425..1ade6a2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 90e5592..0a3431a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum realm_song_type : int {
     MUSIC_NONE = 0,
index 5ea989a..9d12769 100644 (file)
@@ -1,4 +1,4 @@
-#include "cmd-action/cmd-spell.h"
+#include "cmd-action/cmd-spell.h"
 #include "core/window-redrawer.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h"
index 1a47a20..78de623 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 908b7ad..5a4a731 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-sorcery.h"
+#include "realm/realm-sorcery.h"
 #include "avatar/avatar.h"
 #include "cmd-action/cmd-spell.h"
 #include "core/asking-player.h"
index d70c3b9..6a5d9b3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 7ebc4ee..10800ab 100644 (file)
@@ -1,4 +1,4 @@
-#include "realm/realm-trump.h"
+#include "realm/realm-trump.h"
 #include "cmd-action/cmd-spell.h"
 #include "core/asking-player.h"
 #include "effect/attribute-types.h"
index 45d6275..5e36902 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index ea6c729..2547df5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum magic_realm_type {
     REALM_NONE = 0,
index cbe5537..ea5671a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief fill_data_type構造体を使ってダンジョンを生成/構成する処理
  * @date 2020/07/24
  * @author Hourier
index f180e76..e8c68a3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b638b54..133644b 100644 (file)
@@ -1,3 +1,3 @@
-#include "room/door-definition.h"
+#include "room/door-definition.h"
 
 door_type feat_door[MAX_DOOR_TYPES];
index c507c00..7b5cf43 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d54fe51..828cd6e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* 池型地形の生成ID / Room types for generate_lake() */
 enum lake_type {
index 35e68d4..afa8457 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/room-generator.h"
+#include "room/room-generator.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "game-option/birth-options.h"
 #include "game-option/cheat-types.h"
index f2eb21a..5ca4719 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct dun_data_type;
 class PlayerType;
index df8ef63..bf2fe0f 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/room-info-table.h"
+#include "room/room-info-table.h"
 
 /*!
  * 各部屋タイプの生成比定義
index e33b1ae..d25cff2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "room/room-types.h"
 #include "system/angband.h"
index e6b2481..246586c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "util/enum-converter.h"
 #include "util/enum-range.h"
index 661359a..46e17c5 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ダンジョンフロアの部屋生成処理 / make rooms. Used by generate.c when creating dungeons.
  * @date 2014/01/06
  * @author
index ed6c017..6b7a2de 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index e3d772f..8dbed38 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/rooms-city.h"
+#include "room/rooms-city.h"
 #include "floor/floor-generator.h"
 #include "floor/floor-town.h"
 #include "game-option/cheat-types.h"
index 56b8472..7f69b8d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4206c12..3a26a58 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/rooms-fractal.h"
+#include "room/rooms-fractal.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/floor-generator.h"
 #include "room/cave-filler.h"
index 5edb557..78d5dbe 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct dun_data_type;
 class PlayerType;
index 38f3946..c5dada9 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/rooms-maze-vault.h"
+#include "room/rooms-maze-vault.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "game-option/cheat-types.h"
 #include "grid/grid.h"
index b70ab7f..53ee104 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 927c450..42a8bb7 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/rooms-normal.h"
+#include "room/rooms-normal.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/geometry.h"
 #include "grid/door.h"
index 7d9d8fa..857e030 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct dun_data_type;
 class PlayerType;
index 050bafa..263123f 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/rooms-pit-nest.h"
+#include "room/rooms-pit-nest.h"
 #include "floor/floor-generator.h"
 #include "game-option/cheat-options.h"
 #include "game-option/cheat-types.h"
@@ -255,7 +255,7 @@ bool build_type5(PlayerType *player_ptr, dun_data_type *dd_ptr)
         auto select_r_idx = [player_ptr, floor_ptr, &align]() -> std::optional<MonsterRaceId> {
             for (auto attempts = 100; attempts > 0; attempts--) {
                 /* Get a (hard) monster type */
-                auto r_idx = get_mon_num(player_ptr, 0, floor_ptr->dun_level + 11, 0);
+                auto r_idx = get_mon_num(player_ptr, 0, floor_ptr->dun_level + 11, PM_NONE);
                 auto *r_ptr = &monraces_info[r_idx];
 
                 /* Decline incorrect alignment */
@@ -502,7 +502,7 @@ bool build_type6(PlayerType *player_ptr, dun_data_type *dd_ptr)
 
         while (attempts--) {
             /* Get a (hard) monster type */
-            r_idx = get_mon_num(player_ptr, 0, floor_ptr->dun_level + 11, 0);
+            r_idx = get_mon_num(player_ptr, 0, floor_ptr->dun_level + 11, PM_NONE);
             r_ptr = &monraces_info[r_idx];
 
             /* Decline incorrect alignment */
@@ -817,7 +817,7 @@ bool build_type13(PlayerType *player_ptr, dun_data_type *dd_ptr)
 
         while (attempts--) {
             /* Get a (hard) monster type */
-            r_idx = get_mon_num(player_ptr, 0, floor_ptr->dun_level + 0, 0);
+            r_idx = get_mon_num(player_ptr, 0, floor_ptr->dun_level + 0, PM_NONE);
             r_ptr = &monraces_info[r_idx];
 
             /* Decline incorrect alignment */
index 8a95372..9b370d0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f73cfbc..391f022 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/rooms-special.h"
+#include "room/rooms-special.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor//geometry.h"
 #include "floor/floor-generator.h"
index 6954f7f..25a9118 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct dun_data_type;
 class PlayerType;
index 12c1aa1..01fd26c 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/rooms-trap.h"
+#include "room/rooms-trap.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/floor-generator.h"
 #include "game-option/cheat-types.h"
index e6100aa..ce0fee1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct dun_data_type;
 class PlayerType;
index fa757b8..df41ec2 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief Vaultの生成処理
  * @date 2018/09/11
  * @author deskull
index 17d2dd5..0f43975 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <stdint.h>
 #include <string>
index e9da13d..9636797 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/space-finder.h"
+#include "room/space-finder.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/cave.h"
 #include "grid/grid.h"
index 1234590..459bcda 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a2dd6fd..f2adcb2 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 部屋にアイテム・モンスター・罠を配置する処理
  * @date 2020/07/24
  * @author Hourier
index 7e7968d..8c6b2ca 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 62e9d21..d946d20 100644 (file)
@@ -1,4 +1,4 @@
-#include "room/vault-builder.h"
+#include "room/vault-builder.h"
 #include "floor/cave.h"
 #include "floor/floor-generator-util.h"
 #include "floor/floor-util.h"
index 3d8ff83..8ccc3af 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a19b2f8..4439832 100644 (file)
@@ -1,4 +1,4 @@
-#include "save/floor-writer.h"
+#include "save/floor-writer.h"
 #include "core/object-compressor.h"
 #include "floor/floor-events.h"
 #include "floor/floor-save-util.h"
index b94f986..0228416 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index c67d9b4..1ab0a9a 100644 (file)
@@ -1,4 +1,4 @@
-#include "save/info-writer.h"
+#include "save/info-writer.h"
 #include "birth/quick-start.h"
 #include "game-option/cheat-options.h"
 #include "game-option/option-flags.h"
index 7f70b54..5550c94 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class SaveType;
 struct store_type;
index 2c77185..77266a8 100644 (file)
@@ -1,4 +1,4 @@
-#include "save/item-writer.h"
+#include "save/item-writer.h"
 #include "artifact/random-art-effects.h"
 #include "load/old/item-flag-types-savefile50.h"
 #include "save/save-util.h"
index 9ea38d5..2e36ceb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 void wr_item(ItemEntity *o_ptr);
index 564ccc8..70f0be4 100644 (file)
@@ -1,4 +1,4 @@
-#include "save/monster-writer.h"
+#include "save/monster-writer.h"
 #include "load/old/monster-flag-types-savefile50.h"
 #include "monster-race/monster-race.h"
 #include "monster/monster-info.h"
index a4b5e5a..7b2163d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index acd88b6..0b6fbb1 100644 (file)
@@ -1,4 +1,4 @@
-#include "save/player-class-specific-data-writer.h"
+#include "save/player-class-specific-data-writer.h"
 #include "player-info/bard-data-type.h"
 #include "player-info/bluemage-data-type.h"
 #include "player-info/force-trainer-data-type.h"
index 9c40299..2764e16 100644 (file)
@@ -1,4 +1,4 @@
-#include "save/player-writer.h"
+#include "save/player-writer.h"
 #include "cmd-building/cmd-building.h"
 #include "game-option/birth-options.h"
 #include "player-base/player-class.h"
index 5722002..f8664e0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void wr_player(PlayerType *player_ptr);
index 29d56be..6c174eb 100644 (file)
@@ -1,4 +1,4 @@
-#include "save/save-util.h"
+#include "save/save-util.h"
 
 FILE *saving_savefile; /* Current save "file" */
 byte save_xor_byte; /* Simple encryption */
index 13dd5e3..49e1d49 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index f59af29..1e6cd34 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file save.c
  * @brief セーブファイル書き込み処理 / Purpose: interact with savefiles
  * @date 2014/07/12
index f77ac40..8e8113a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class SaveType {
     CLOSE_GAME,
index 81787f1..369efa2 100644 (file)
@@ -1,4 +1,4 @@
-#include "smith/object-smith.h"
+#include "smith/object-smith.h"
 #include "object-enchant/special-object-flags.h"
 #include "object-enchant/tr-flags.h"
 #include "object-enchant/tr-types.h"
index bfda79a..766928b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/system-variables.h"
 
index acaa076..888f272 100644 (file)
@@ -1,4 +1,4 @@
-#include "smith/smith-info.h"
+#include "smith/smith-info.h"
 #include "object-enchant/tr-types.h"
 #include "object/object-flags.h"
 #include "object/tval-types.h"
index 19c6c63..d8af795 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 8318591..89efd04 100644 (file)
@@ -1,4 +1,4 @@
-#include "smith/smith-tables.h"
+#include "smith/smith-tables.h"
 #include "artifact/random-art-effects.h"
 #include "object-enchant/tr-flags.h"
 #include "object-enchant/tr-types.h"
index 1bc22a1..618b85d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fa186be..2336583 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/system-variables.h"
 
index 5bfa3be..c3510f7 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/blade-turner.h"
+#include "specific-object/blade-turner.h"
 #include "effect/attribute-types.h"
 #include "hpmp/hp-mp-processor.h"
 #include "spell-kind/spells-launcher.h"
index eb254b6..d2232f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool activate_bladeturner(PlayerType *player_ptr);
index c999150..65d65f7 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/bloody-moon.h"
+#include "specific-object/bloody-moon.h"
 #include "artifact/fixed-art-types.h"
 #include "object-enchant/object-boost.h"
 #include "object-enchant/tr-types.h"
index 59ac646..924b63d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 5be3d39..f5c5e1b 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/chest.h"
+#include "specific-object/chest.h"
 #include "effect/attribute-types.h"
 #include "floor/cave.h"
 #include "floor/floor-object.h"
index 87b40d6..5f9b9c4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 77c91d5..55c57d2 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/death-crimson.h"
+#include "specific-object/death-crimson.h"
 #include "artifact/fixed-art-types.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
index 6274ca0..39b7c5e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index f6429c0..f570f26 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 死の大鎌に特有の処理
  * @date 2020/05/23
  * @author Hourier
index f8fda9a..55fda08 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct player_attack_type;
 class PlayerType;
index 62469a3..bf6a8d0 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/monster-ball.h"
+#include "specific-object/monster-ball.h"
 #include "effect/spells-effect-util.h"
 #include "floor/geometry.h"
 #include "game-option/input-options.h"
index 191d50e..ddea3ec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 class ItemEntity;
index dc873fb..f8180ba 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/muramasa.h"
+#include "specific-object/muramasa.h"
 #include "artifact/fixed-art-types.h"
 #include "core/asking-player.h"
 #include "spell/spells-object.h"
index 2601915..f869b7b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 1e9932e..dfc9550 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/ring-of-power.h"
+#include "specific-object/ring-of-power.h"
 #include "effect/attribute-types.h"
 #include "main/sound-definitions-table.h"
 #include "main/sound-of-music.h"
index fec840e..8d9ccad 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 749842a..4477319 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 知識の石を発動させる処理
  * @date 2021/09/24
  * @author Hourier
index bda09c8..555053a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 class StoneOfLore {
index 0007939..4400758 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/toragoroshi.h"
+#include "specific-object/toragoroshi.h"
 #include "player-attack/player-attack.h"
 #include "system/player-type-definition.h"
 #include "view/display-messages.h"
index 28021ff..2600972 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool activate_toragoroshi(PlayerType *player_ptr);
index 28bc7ef..e286365 100644 (file)
@@ -1,4 +1,4 @@
-#include "specific-object/torch.h"
+#include "specific-object/torch.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/cave.h"
 #include "grid/grid.h"
index a86912d..e8d077e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 36f73b3..28b701c 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 鏡使いの鏡魔法効果処理
  * @date 2022/03/07
  * @author Hourier
index d8c7df7..0af474f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct ProjectResult;
index e4f94a9..e88d1ba 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/blood-curse.h"
+#include "spell-kind/blood-curse.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h"
index 711ecc6..27dcb8e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b9c84e5..4b72755 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/earthquake.h"
+#include "spell-kind/earthquake.h"
 #include "core/window-redrawer.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "dungeon/quest.h"
index 6503e02..aa73301 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 366b6c0..5b26f84 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 魔法効果の実装/ Spell code (part 3)
  * @date 2014/07/26
  * @author
index 14001e4..200640a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool recharge(PlayerType *player_ptr, int power);
index 87ce859..18e9edf 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-beam.h"
+#include "spell-kind/spells-beam.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
 #include "spell-kind/spells-launcher.h"
index cd3f525..f74f140 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4dcec40..98986ea 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-charm.h"
+#include "spell-kind/spells-charm.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
 #include "spell-kind/spells-launcher.h"
index 44cf12d..c04057d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0bface3..a5b5e3a 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-curse-removal.h"
+#include "spell-kind/spells-curse-removal.h"
 #include "core/window-redrawer.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-enchant/item-feeling.h"
index 152bb05..f66c9e5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 int remove_curse(PlayerType *player_ptr);
index 03e9cff..728bc57 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-detection.h"
+#include "spell-kind/spells-detection.h"
 #include "core/window-redrawer.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "floor/cave.h"
index 87d5919..1e61d8d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a7c7513..34c11ce 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-enchant.h"
+#include "spell-kind/spells-enchant.h"
 #include "artifact/random-art-generator.h"
 #include "avatar/avatar.h"
 #include "flavor/flavor-describer.h"
index 209eca1..e819e78 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool artifact_scroll(PlayerType *player_ptr);
index f3c2b6c..ddd3b38 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-equipment.h"
+#include "spell-kind/spells-equipment.h"
 #include "avatar/avatar.h"
 #include "core/window-redrawer.h"
 #include "flavor/flavor-describer.h"
index 5595c30..ce8e20b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index bd154e1..797385c 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-fetcher.h"
+#include "spell-kind/spells-fetcher.h"
 #include "core/stuff-handler.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
index 58de752..6f2f8f8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d5020c5..f098e21 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief フロアに影響のある魔法の処理
  * @date 2019/02/21
  * @author deskull
index 1a65d9a..b1026e6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 85e3dff..c7d20ff 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-genocide.h"
+#include "spell-kind/spells-genocide.h"
 #include "avatar/avatar.h"
 #include "core/asking-player.h"
 #include "core/stuff-handler.h"
index 744b271..507e62d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 74788f7..1be906d 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-grid.h"
+#include "spell-kind/spells-grid.h"
 #include "dungeon/quest.h"
 #include "floor/cave.h"
 #include "floor/floor-object.h"
index b3471a3..9612be4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 46fdad5..7905359 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-launcher.h"
+#include "spell-kind/spells-launcher.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h"
 #include "floor/geometry.h"
index 2ae7b2a..11c8b32 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index af7403f..67d2ff3 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-lite.h"
+#include "spell-kind/spells-lite.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
index a0ed340..d3347a0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f009662..03fba8b 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-neighbor.h"
+#include "spell-kind/spells-neighbor.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h"
index 4db70ac..11a0c1a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2c72a4e..fdad604 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-perception.h"
+#include "spell-kind/spells-perception.h"
 #include "autopick/autopick.h"
 #include "avatar/avatar.h"
 #include "core/stuff-handler.h"
index 9982962..8ec9c3d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index cc9f9bb..dd4635e 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-pet.h"
+#include "spell-kind/spells-pet.h"
 #include "core/asking-player.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
index 4c3cfc6..3eb7bbe 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void discharge_minion(PlayerType *player_ptr);
index 541e2e1..4b1b66e 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-polymorph.h"
+#include "spell-kind/spells-polymorph.h"
 #include "core/stuff-handler.h"
 #include "floor/floor-object.h"
 #include "monster-floor/monster-generator.h"
@@ -40,7 +40,7 @@ static MonsterRaceId poly_r_idx(PlayerType *player_ptr, MonsterRaceId r_idx)
     DEPTH lev2 = r_ptr->level + ((randint1(20) / randint1(9)) + 1);
     MonsterRaceId r;
     for (int i = 0; i < 1000; i++) {
-        r = get_mon_num(player_ptr, 0, (player_ptr->current_floor_ptr->dun_level + r_ptr->level) / 2 + 5, 0);
+        r = get_mon_num(player_ptr, 0, (player_ptr->current_floor_ptr->dun_level + r_ptr->level) / 2 + 5, PM_NONE);
         if (!MonsterRace(r).is_valid()) {
             break;
         }
index 0d457ba..39b0f15 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 99d30c6..5d41789 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ダイス目により様々な効果を及ぼす魔法の処理
  * @date 2020/06/05
  * @author Hourier
index fc23170..3662d78 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 58a0d3b..d111730 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-sight.h"
+#include "spell-kind/spells-sight.h"
 #include "avatar/avatar.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
@@ -470,7 +470,7 @@ bool probing(PlayerType *player_ptr)
         handle_stuff(player_ptr);
         move_cursor_relative(m_ptr->fy, m_ptr->fx);
         inkey();
-        term_erase(0, 0, 255);
+        term_erase(0, 0);
         if (lore_do_probe(player_ptr, m_ptr->r_idx)) {
 #ifdef JP
             msg_format("%sについてさらに詳しくなった気がする。", r_ptr->name.data());
index 76eb392..7d051fe 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index 02d2950..5d3dee1 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-kind/spells-specific-bolt.h"
+#include "spell-kind/spells-specific-bolt.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
 #include "spell-kind/spells-launcher.h"
index 7f43302..662b5f2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 1243f9d..98f17ff 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief テレポート魔法全般
  * @date 2020/06/04
  * @author Hourier
index 43c46df..bfeeba4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 43ff9a2..9037208 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 帰還やテレポート・レベル等、フロアを跨ぐ魔法効果の処理
  * @author Hourier
  * @date 2022/10/10
index 588ab01..2038095 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ca7017f..f32568f 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-arcane.h"
+#include "spell-realm/spells-arcane.h"
 #include "inventory/inventory-slot-types.h"
 #include "object/tval-types.h"
 #include "sv-definition/sv-lite-types.h"
index a4af0dd..4c15fec 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void phlogiston(PlayerType *player_ptr);
index 8bdc854..b14cec9 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-chaos.h"
+#include "spell-realm/spells-chaos.h"
 #include "core/window-redrawer.h"
 #include "dungeon/quest.h"
 #include "effect/attribute-types.h"
index 359024f..573a5bc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index cedfc9a..6bd2bf6 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-craft.h"
+#include "spell-realm/spells-craft.h"
 #include "avatar/avatar.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
index cbd2d09..22e9bee 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9bc122a..1ae86dc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 破邪魔法処理
  * @date 2020/06/05
  * @author Hourier
index 45f5649..55865f5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f0b7cdb..46381d3 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-demon.h"
+#include "spell-realm/spells-demon.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
index 06e2bbf..0098a49 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 8b7daf6..98ba155 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-hex.h"
+#include "spell-realm/spells-hex.h"
 #include "core/asking-player.h"
 #include "core/window-redrawer.h"
 #include "effect/effect-characteristics.h"
@@ -178,10 +178,10 @@ void SpellHex::display_casting_spells_list()
     constexpr auto y = 1;
     constexpr auto x = 20;
     auto n = 0;
-    term_erase(x, y, 255);
+    term_erase(x, y);
     prt(_("     名前", "     Name"), y, x + 5);
     for (auto spell : this->casting_spells) {
-        term_erase(x, y + n + 1, 255);
+        term_erase(x, y + n + 1);
         const auto spell_name = exe_spell(this->player_ptr, REALM_HEX, spell, SpellProcessType::NAME);
         put_str(format("%c)  %s", I2A(n), spell_name->data()), y + n + 1, x + 2);
         n++;
index fdd108d..740a455 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "realm/realm-hex-numbers.h"
 #include "system/angband.h"
index da043c8..a2a2c3d 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-nature.h"
+#include "spell-realm/spells-nature.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "floor/floor-object.h"
index b2c88d0..2bc7a2b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool rustproof(PlayerType *player_ptr);
index c6cc3bd..b7fcaa6 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-song.h"
+#include "spell-realm/spells-song.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
index 9053367..ab8ef1d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b3cb484..7ff5a0f 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-sorcery.h"
+#include "spell-realm/spells-sorcery.h"
 #include "core/asking-player.h"
 #include "core/window-redrawer.h"
 #include "flavor/flavor-describer.h"
index f5ee7ea..ef79b4f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool alchemy(PlayerType *player_ptr);
index 1d81c07..444ba9e 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell-realm/spells-trump.h"
+#include "spell-realm/spells-trump.h"
 #include "avatar/avatar.h"
 #include "monster-floor/monster-summon.h"
 #include "monster-floor/place-monster-types.h"
index 6505f2c..93586b5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void cast_shuffle(PlayerType *player_ptr);
index 6ba891b..7d6b05b 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 魔法による距離やエリアの計算
  * @date 2014/07/10
  * @author Ben Harrison, James E. Wilson, Robert A. Koeneke, deskull and Hourier
index 008207e..edbb6e1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index 47ea2eb..c61c11f 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell/spell-info.h"
+#include "spell/spell-info.h"
 #include "io/input-key-requester.h"
 #include "monster-race/monster-race.h"
 #include "player-base/player-class.h"
index 8322799..e076b9a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b447421..7991d7a 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell/spells-describer.h"
+#include "spell/spells-describer.h"
 #include "locale/language-switcher.h"
 #include "object/tval-types.h"
 
index 4d1c49c..9000b24 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <string>
 
index 29fe241..21e35c3 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell/spells-diceroll.h"
+#include "spell/spells-diceroll.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags-resistance.h"
index 9b3e32e..23850aa 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index a323d22..f45e79d 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell/spells-execution.h"
+#include "spell/spells-execution.h"
 #include "realm/realm-arcane.h"
 #include "realm/realm-chaos.h"
 #include "realm/realm-craft.h"
index c0a7fc3..2148ea5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index 2d06761..1e59cb0 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief アイテムに影響のある魔法の処理
  * @date 2019/01/22
  * @author deskull
index 2357c9d..99518c4 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b65fccf..3659006 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell/spells-staff-only.h"
+#include "spell/spells-staff-only.h"
 #include "effect/attribute-types.h"
 #include "effect/effect-characteristics.h"
 #include "effect/effect-processor.h"
index 5a78f1a..6175258 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool cleansing_nova(PlayerType *player_ptr, bool magic, bool powerful);
index 9fc9252..5a5c84f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief スピード等のステータスに影響のある魔法の処理
  * @date 2019/01/22
  * @author deskull
index 7af40eb..467b2f3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "spell/spells-util.h"
 #include "system/angband.h"
index c8e2c3a..0c77890 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell/spells-summon.h"
+#include "spell/spells-summon.h"
 #include "avatar/avatar.h"
 #include "effect/spells-effect-util.h"
 #include "floor/floor-object.h"
index a903e06..c5ac9fc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b226171..0cc2c06 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #define DETECT_RAD_DEFAULT 30
 #define DETECT_RAD_MAP 30
index 5a6f4ee..8d1a149 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* summon_specificで取り扱われる、召喚の種別定義 / Legal restrictions for "summon_specific()" */
 enum summon_type : int {
@@ -53,4 +53,5 @@ enum summon_type : int {
     SUMMON_APOCRYPHA_DRAGONS = 69, /*!< 召喚タイプ: 強力な古代ドラゴン */
     SUMMON_VESPOID = 70, /*!< 召喚タイプ: ランゴスタ */
     SUMMON_ANTI_TIGERS = 71, /*!< 召喚タイプ: トラ以外 */
+    SUMMON_DEAD_UNIQUE = 72, /*!< 召喚タイプ: 撃破済みユニーク */
 };
index 6ac5dbd..00b4784 100644 (file)
@@ -1,4 +1,4 @@
-#include "spell/technic-info-table.h"
+#include "spell/technic-info-table.h"
 
 /*!
  * @brief 歌、剣術、呪術領域情報テーブル
index 53f97e4..4fce9f7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "realm/realm-types.h"
 #include "system/angband.h"
index 5f85934..e9573c7 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの継続行動処理
  * @date 2014/01/01
  * @author
index 1b5ae6b..d49ad7f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <stdint.h>
 
index 1e57b23..abd3e5d 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/bad-status-setter.h"
+#include "status/bad-status-setter.h"
 #include "avatar/avatar.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
index 45da3bf..43c70b6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <memory>
index 00d88b6..5865af9 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/base-status.h"
+#include "status/base-status.h"
 #include "avatar/avatar.h"
 #include "core/window-redrawer.h"
 #include "game-option/birth-options.h"
index ea31c06..301f7be 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool inc_stat(PlayerType *player_ptr, int stat);
index 3747476..19a2ff1 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/body-improvement.h"
+#include "status/body-improvement.h"
 #include "avatar/avatar.h"
 #include "core/disturbance.h"
 #include "core/speed-table.h"
index 67114a7..b63832b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4b9c4fb..b09c0e1 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/buff-setter.h"
+#include "status/buff-setter.h"
 #include "avatar/avatar.h"
 #include "core/disturbance.h"
 #include "core/speed-table.h"
index bf549e8..ae7e0f0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 2582258..997deef 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/element-resistance.h"
+#include "status/element-resistance.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
index af8f57d..ca71cbf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index f7f7f97..5f7ef08 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/experience.h"
+#include "status/experience.h"
 #include "player-base/player-race.h"
 #include "player/player-status.h"
 #include "system/player-type-definition.h"
index 978a7f2..9812be2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 90301c0..6484336 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/shape-changer.h"
+#include "status/shape-changer.h"
 #include "autopick/autopick-reader-writer.h"
 #include "avatar/avatar.h"
 #include "birth/birth-body-spec.h"
index 2c16077..b891999 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-info/race-types.h"
 #include "system/angband.h"
index a663bb9..26c4206 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/sight-setter.h"
+#include "status/sight-setter.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
index 1bb7180..dc07616 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0a9c4b7..052a374 100644 (file)
@@ -1,4 +1,4 @@
-#include "status/temporary-resistance.h"
+#include "status/temporary-resistance.h"
 #include "core/disturbance.h"
 #include "core/stuff-handler.h"
 #include "game-option/disturbance-options.h"
index 416f8a8..26bfe88 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index d1303f3..fd4f341 100644 (file)
@@ -1 +1 @@
-#include "stdafx.h"
+#include "stdafx.h"
index 5695a33..d152533 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include <algorithm>
 #include <array>
 #include <bitset>
index 140b6a0..36568f4 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/articles-on-sale.h"
+#include "store/articles-on-sale.h"
 #include "object/tval-types.h"
 #include "store/store-owners.h"
 #include "sv-definition/sv-amulet-types.h"
index 767bc92..4686d83 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <map>
 #include <vector>
index 8c69b0e..7cbd2ab 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/black-market.h"
+#include "store/black-market.h"
 #include "floor/floor-town.h"
 #include "store/store-owners.h"
 #include "store/store-util.h"
index 1ea403a..27b623e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 6e8a3d8..a20114c 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/cmd-store.h"
+#include "store/cmd-store.h"
 #include "cmd-io/macro-util.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
@@ -56,10 +56,8 @@ void do_cmd_store(PlayerType *player_ptr)
         return;
     }
     TermCenteredOffsetSetter tcos(MAIN_TERM_MIN_COLS, std::nullopt);
-    TERM_LEN w, h;
-    term_get_size(&w, &h);
-
-    xtra_stock = std::min(14 + 26, ((h > MAIN_TERM_MIN_ROWS) ? (h - MAIN_TERM_MIN_ROWS) : 0));
+    const auto [wid, hgt] = term_get_size();
+    xtra_stock = std::min(14 + 26, ((hgt > MAIN_TERM_MIN_ROWS) ? (hgt - MAIN_TERM_MIN_ROWS) : 0));
     store_bottom = MIN_STOCK + xtra_stock;
 
     auto *floor_ptr = player_ptr->current_floor_ptr;
index 42d3721..1564197 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_store(PlayerType *player_ptr);
index dd11d27..9f3dd3e 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/gold-magnification-table.h"
+#include "store/gold-magnification-table.h"
 
 /*
  * Buying and selling adjustments for race combinations.
index 5f65308..097f857 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-info/race-types.h"
 #include "system/angband.h"
index ee2cdcf..bc4ff79 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/home.h"
+#include "store/home.h"
 #include "avatar/avatar.h"
 #include "floor/floor-town.h"
 #include "game-option/birth-options.h"
index 7694b94..549f965 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index 727534c..ac646ef 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/museum.h"
+#include "store/museum.h"
 #include "core/asking-player.h"
 #include "flavor/flavor-describer.h"
 #include "store/home.h"
@@ -25,13 +25,14 @@ void museum_remove_object(PlayerType *player_ptr)
         i = store_bottom;
     }
 
-    COMMAND_CODE item;
-    if (!get_stock(&item, _("どのアイテムの展示をやめさせますか?", "Which item do you want to order to remove? "), 0, i - 1, StoreSaleType::MUSEUM)) {
+    constexpr auto mes = _("どのアイテムの展示をやめさせますか?", "Which item do you want to order to remove? ");
+    auto item_num_opt = input_stock(mes, 0, i - 1, StoreSaleType::MUSEUM);
+    if (!item_num_opt) {
         return;
     }
 
-    item = item + store_top;
-    auto *o_ptr = &st_ptr->stock[item];
+    const short item_num = *item_num_opt + store_top;
+    auto *o_ptr = &st_ptr->stock[item_num];
     const auto item_name = describe_flavor(player_ptr, o_ptr, 0);
     msg_print(_("展示をやめさせたアイテムは二度と見ることはできません!", "Once removed from the Museum, an item will be gone forever!"));
     if (!input_check(format(_("本当に%sの展示をやめさせますか?", "Really order to remove %s from the Museum? "), item_name.data()))) {
@@ -39,8 +40,8 @@ void museum_remove_object(PlayerType *player_ptr)
     }
 
     msg_format(_("%sの展示をやめさせた。", "You ordered to remove %s."), item_name.data());
-    store_item_increase(item, -o_ptr->number);
-    store_item_optimize(item);
+    store_item_increase(item_num, -o_ptr->number);
+    store_item_optimize(item_num);
     (void)combine_and_reorder_home(player_ptr, StoreSaleType::MUSEUM);
     if (st_ptr->stock_num == 0) {
         store_top = 0;
index e6a8db0..563e3e9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void museum_remove_object(PlayerType *player_ptr);
index ab57864..7281e16 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/pricing.h"
+#include "store/pricing.h"
 #include "object/object-value.h"
 #include "player/player-status-table.h"
 #include "store/gold-magnification-table.h"
index 7333ef8..8ab1ab3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 4d25b08..f78d0e8 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/purchase-order.h"
+#include "store/purchase-order.h"
 #include "autopick/autopick-finder.h"
 #include "autopick/autopick-util.h"
 #include "autopick/autopick.h"
@@ -37,6 +37,7 @@
 #include "view/display-store.h"
 #include "world/world.h"
 #include <optional>
+#include <string>
 
 /*!
  * @brief プレイヤーが購入する時の値切り処理メインルーチン /
@@ -62,17 +63,12 @@ static std::optional<PRICE> prompt_to_buy(PlayerType *player_ptr, ItemEntity *o_
 
 /*!
  * @brief 店舗から購入する際のアイテム選択プロンプト
- * @param item 店舗インベントリ番号(アドレス渡し)
  * @param i 店舗インベントリストック数
  * @return 選択したらtrue、しなかったらfalse
- * @details
- * 選択したインベントリ番号はitemに返る。
- * ブラックマーケットの時は別のメッセージ。
  */
-static bool show_store_select_item(COMMAND_CODE *item, const int i, StoreSaleType store_num)
+static std::optional<short> show_store_select_item(const int i, StoreSaleType store_num)
 {
-    concptr prompt;
-
+    std::string prompt;
     switch (store_num) {
     case StoreSaleType::HOME:
         prompt = _("どのアイテムを取りますか? ", "Which item do you want to take? ");
@@ -85,7 +81,7 @@ static bool show_store_select_item(COMMAND_CODE *item, const int i, StoreSaleTyp
         break;
     }
 
-    return get_stock(item, prompt, 0, i - 1, store_num) != 0;
+    return input_stock(prompt, 0, i - 1, store_num);
 }
 
 /*!
@@ -196,14 +192,13 @@ void store_purchase(PlayerType *player_ptr, StoreSaleType store_num)
         i = store_bottom;
     }
 
-    COMMAND_CODE item;
-    if (!show_store_select_item(&item, i, store_num)) {
+    auto item_num_opt = show_store_select_item(i, store_num);
+    if (!item_num_opt) {
         return;
     }
 
-    item = item + store_top;
-    ItemEntity *o_ptr;
-    o_ptr = &st_ptr->stock[item];
+    const short item_num = *item_num_opt + store_top;
+    auto *o_ptr = &st_ptr->stock[item_num];
 
     ITEM_NUMBER amt = 1;
     ItemEntity forge;
@@ -248,14 +243,14 @@ void store_purchase(PlayerType *player_ptr, StoreSaleType store_num)
     }
 
     if (store_num == StoreSaleType::HOME) {
-        take_item_from_home(player_ptr, o_ptr, j_ptr, item);
+        take_item_from_home(player_ptr, o_ptr, j_ptr, item_num);
         return;
     }
 
     COMMAND_CODE item_new;
     PRICE price;
     const auto purchased_item_name = describe_flavor(player_ptr, j_ptr, 0);
-    msg_format(_("%s(%c)を購入する。", "Buying %s (%c)."), purchased_item_name.data(), I2A(item));
+    msg_format(_("%s(%c)を購入する。", "Buying %s (%c)."), purchased_item_name.data(), I2A(item_num));
     msg_print(nullptr);
 
     auto res = prompt_to_buy(player_ptr, j_ptr, store_num);
@@ -317,7 +312,7 @@ void store_purchase(PlayerType *player_ptr, StoreSaleType store_num)
     }
 
     i = st_ptr->stock_num;
-    store_item_increase(item, -amt);
-    store_item_optimize(item);
-    switch_store_stock(player_ptr, i, item, store_num);
+    store_item_increase(item_num, -amt);
+    store_item_optimize(item_num);
+    switch_store_stock(player_ptr, i, item_num, store_num);
 }
index 6e10ce4..536b0b9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class StoreSaleType;
 class PlayerType;
index 8b907b5..1c891cc 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/rumor.h"
+#include "store/rumor.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "floor/floor-town.h"
index 1b81fc7..65c22f2 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void display_rumor(PlayerType *player_ptr, bool ex);
index fb13c60..18488f0 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/say-comments.h"
+#include "store/say-comments.h"
 #include "avatar/avatar.h"
 #include "main/sound-definitions-table.h"
 #include "main/sound-of-music.h"
index b4529bb..f69d5db 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index b0019e5..f02f22b 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/sell-order.h"
+#include "store/sell-order.h"
 #include "action/weapon-shield.h"
 #include "autopick/autopick.h"
 #include "avatar/avatar.h"
index 74bdfd3..1538065 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class StoreSaleType;
 class PlayerType;
index a87fb54..46cc328 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/service-checker.h"
+#include "store/service-checker.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags3.h"
 #include "object-enchant/tr-types.h"
index 80ac868..6bce887 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class StoreSaleType;
 class ItemEntity;
index f63256b..8f79d53 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/store-key-processor.h"
+#include "store/store-key-processor.h"
 #include "autopick/autopick-pref-processor.h"
 #include "cmd-action/cmd-mind.h"
 #include "cmd-action/cmd-spell.h"
@@ -95,7 +95,7 @@ void store_process_command(PlayerType *player_ptr, StoreSaleType store_num)
              * 隠しオプション(powerup_home)がセットされていないときは
              * 我が家では 2 ページまでしか表示しない
              */
-            auto inven_max = store_get_stock_max(StoreSaleType::HOME, powerup_home);
+            auto inven_max = store_get_stock_max(store_num, powerup_home);
             if (store_top >= st_ptr->stock_num || store_top >= inven_max) {
                 store_top = 0;
             }
index da26395..63cac43 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 extern bool leave_store;
 
index 6e70393..6ac9255 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/store-owner-comments.h"
+#include "store/store-owner-comments.h"
 
 concptr comment_1[MAX_COMMENT_1] = {
     _("オーケーだ。", "Okay."),
index e7812f9..12fa511 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 69e4f1c..e4c0432 100644 (file)
@@ -1,4 +1,4 @@
-#include "store/store-owners.h"
+#include "store/store-owners.h"
 #include "player-info/race-types.h"
 #include "store/store-util.h"
 
index 1566671..8cc78a6 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-info/race-types.h"
 #include "store/store-util.h"
index ef8ac2d..c91f408 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 店舗処理関係のユーティリティ
  * @date 2020/03/20
  * @author Hourier
index 1e7bde9..646402e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fe30252..ae8f5ad 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 店の処理 / Store commands
  * @date 2022/03/26
  * @author Hourier
@@ -145,50 +145,47 @@ int store_check_num(ItemEntity *o_ptr, StoreSaleType store_num)
 }
 
 /*!
- * @brief 店舗からアイテムを選択する /
- * Get the ID of a store item and return its value     -RAK-
- * @param com_val 選択IDを返す参照ポインタ
+ * @brief 店舗からアイテムを選択する
  * @param pmt メッセージキャプション
- * @param i 選択範囲の最小値
- * @param j 選択範囲の最大値
- * @return 実際に選択したらTRUE、キャンセルしたらFALSE
+ * @param min 選択範囲の最小値
+ * @param max 選択範囲の最大値
+ * @return アイテムを選択したらそのインデックス ('a'等)、キャンセルしたらnullopt
+ * 繰り返しコマンドの時は前回の前回のインデックス
  */
-int get_stock(COMMAND_CODE *com_val, concptr pmt, int i, int j, [[maybe_unused]] StoreSaleType store_num)
+std::optional<short> input_stock(std::string_view fmt, int min, int max, [[maybe_unused]] StoreSaleType store_num)
 {
-    if (repeat_pull(com_val) && (*com_val >= i) && (*com_val <= j)) {
-        return true;
+    short repeat_command;
+    if (repeat_pull(&repeat_command) && (repeat_command >= min) && (repeat_command <= max)) {
+        return repeat_command;
     }
 
     msg_print(nullptr);
-    *com_val = (-1);
-    const auto lo = I2A(i);
-    const auto hi = (j > 25) ? toupper(I2A(j - 26)) : I2A(j);
+    const auto lo = I2A(min);
+    const auto hi = (max > 25) ? toupper(I2A(max - 26)) : I2A(max);
 #ifdef JP
     const auto title = (store_num == StoreSaleType::HOME) || (store_num == StoreSaleType::MUSEUM) ? "アイテム" : "商品";
-    const auto prompt = format("(%s:%c-%c, ESCで中断) %s", title, lo, hi, pmt);
+    const auto prompt = format("(%s:%c-%c, ESCで中断) %s", title, lo, hi, fmt.data());
 #else
-    const auto prompt = format("(Items %c-%c, ESC to exit) %s", lo, hi, pmt);
+    const auto prompt = format("(Items %c-%c, ESC to exit) %s", lo, hi, fmt.data());
 #endif
 
-    char command;
+    std::optional<char> command;
     while (true) {
         const auto command_opt = input_command(prompt);
         if (!command_opt.has_value()) {
-            continue;
+            break;
         }
 
-        command = command_opt.value();
-        short k;
-        if (islower(command)) {
-            k = A2I(command);
-        } else if (isupper(command)) {
-            k = A2I(tolower(command)) + 26;
-        } else {
-            k = -1;
+        const auto command_alpha = command_opt.value();
+        std::optional<int> command_num;
+        if (islower(command_alpha)) {
+            command_num = A2I(command_alpha);
+        } else if (isupper(command_alpha)) {
+            command_num = A2I(tolower(command_alpha)) + 26;
         }
 
-        if ((k >= i) && (k <= j)) {
-            *com_val = k;
+        if (command_num && (*command_num >= min) && (*command_num <= max)) {
+            command = static_cast<short>(*command_num);
             break;
         }
 
@@ -196,12 +193,12 @@ int get_stock(COMMAND_CODE *com_val, concptr pmt, int i, int j, [[maybe_unused]]
     }
 
     prt("", 0, 0);
-    if (command == ESCAPE) {
-        return false;
+    if (!command) {
+        return std::nullopt;
     }
 
-    repeat_push(*com_val);
-    return true;
+    repeat_push(*command);
+    return command;
 }
 
 /*!
@@ -226,13 +223,14 @@ void store_examine(PlayerType *player_ptr, StoreSaleType store_num)
         i = store_bottom;
     }
 
-    COMMAND_CODE item;
-    if (!get_stock(&item, _("どれを調べますか?", "Which item do you want to examine? "), 0, i - 1, store_num)) {
+    constexpr auto mes = _("どれを調べますか?", "Which item do you want to examine? ");
+    auto item_num_opt = input_stock(mes, 0, i - 1, store_num);
+    if (!item_num_opt) {
         return;
     }
-    item = item + store_top;
-    ItemEntity *o_ptr;
-    o_ptr = &st_ptr->stock[item];
+
+    const auto item_num = *item_num_opt + store_top;
+    auto *o_ptr = &st_ptr->stock[item_num];
     if (!o_ptr->is_fully_known()) {
         msg_print(_("このアイテムについて特に知っていることはない。", "You have no special knowledge about that item."));
         return;
index b822602..2308ac6 100644 (file)
@@ -1,7 +1,9 @@
-#pragma once
+#pragma once
 
 #include "store/store-util.h"
 #include "system/angband.h"
+#include <optional>
+#include <string_view>
 
 /* Store constants */
 #define STORE_INVEN_MAX 24 /* Max number of discrete objs in inven */
@@ -29,4 +31,4 @@ void store_maintenance(PlayerType *player_ptr, int town_num, StoreSaleType store
 void store_init(int town_num, StoreSaleType store_num);
 void store_examine(PlayerType *player_ptr, StoreSaleType store_num);
 int store_check_num(ItemEntity *o_ptr, StoreSaleType store_num);
-int get_stock(COMMAND_CODE *com_val, concptr pmt, int i, int j, StoreSaleType store_num);
+std::optional<short> input_stock(std::string_view fmt, int min, int max, StoreSaleType store_num);
index c39c58f..21f1d0f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_AMULET */
 enum sv_amulet_type {
index b4750c4..7b7270d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_SOFT_ARMOR */
 enum sv_soft_armor_type {
index 252a179..7e8eadc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_BOW (note information in "sval") */
 enum sv_bow_type {
index 452a35e..3cccf30 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_DIGGING */
 enum sv_digging_type {
index e03c2dd..70af587 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_FOOD */
 enum sv_food_type {
index fac6f2b..450aac7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The sval codes for TV_LITE */
 enum sv_lite_type {
index 136ef3f..03c109b 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief enumで表現することが却って高コストになりそうなSV (ベースアイテムのサブタイプ)定義をここに格納する
  * @date 2020/05/28
  * @author Hourier
index 06385b4..9eaff2c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_POTION */
 enum sv_potion_type {
index 16fb8e9..b432b0f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_SHIELD */
 enum sv_shield_type {
index 1c6f19c..8f952e5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The sval codes for TV_RING */
 enum sv_ring_type {
index 52b5f17..4db3791 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_ROD */
 enum sv_rod_type {
index 951f372..7cd0750 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_SCROLL */
 enum sv_scroll_type {
index 66967a1..058f3d0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_STAFF */
 enum sv_staff_type {
index ad2f50f..29fc51b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" codes for TV_WAND */
 enum sv_wand_type {
index 262b001..1b8c58b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /* The "sval" values for TV_HAFTED */
 enum sv_hafted_type {
index 3bfe963..95af3ba 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/alloc-entries.h"
+#include "system/alloc-entries.h"
 #include "system/baseitem-info.h"
 
 /* The entries in the "race allocator table" */
index c753ebf..2ad7275 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief
  * @author
  * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
index 8a6edc3..9802729 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <concepts>
 #include <filesystem>
index ecf36e7..215bad6 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/angband-version.h"
+#include "system/angband-version.h"
 #include "system/angband-exceptions.h"
 #include "system/angband.h"
 
index a8e84aa..41e1914 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <stdint.h>
 #include <string>
@@ -23,7 +23,7 @@ constexpr std::string_view ROOT_VARIANT_NAME("Hengband");
 #define H_VER_MAJOR 3 //!< ゲームのバージョン定義(メジャー番号)
 #define H_VER_MINOR 0 //!< ゲームのバージョン定義(マイナー番号)
 #define H_VER_PATCH 0 //!< ゲームのバージョン定義(パッチ番号)
-#define H_VER_EXTRA 87 //!< ゲームのバージョン定義(エクストラ番号)
+#define H_VER_EXTRA 88 //!< ゲームのバージョン定義(エクストラ番号)
 
 /*!
  * @brief セーブファイルのバージョン(3.0.0から導入)
index 66affa9..0205cd0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @file angband.h
index d4e7191..5c870e6 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/artifact-type-definition.h"
+#include "system/artifact-type-definition.h"
 #include "artifact/fixed-art-types.h"
 #include "object/tval-types.h"
 
index 903e60b..d83ad8c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-flags.h"
 #include "object-enchant/trg-types.h"
index 3b6afdd..4d23f4a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ベースアイテム情報の構造体 / Information about object "kinds", including player knowledge.
  * @date 2019/05/01
  * @author deskull
index 9043a34..331740f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-flags.h"
 #include "object-enchant/trg-types.h"
index 786dc79..4e17882 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/building-type-definition.h"
+#include "system/building-type-definition.h"
 
 std::array<building_type, MAX_BUILDINGS> buildings;
 MonsterRaceId battle_mon_list[4];
index 97de850..99bc16d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "player-info/class-types.h"
 #include "player-info/race-types.h"
index 6af774a..f7d39ea 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "floor/floor-base-definitions.h"
 #include "system/angband.h"
index 1c98437..35109a5 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/dungeon-info.h"
+#include "system/dungeon-info.h"
 #include "dungeon/dungeon-flag-mask.h"
 
 /*
index b31b24a..c7ad4d1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "dungeon/dungeon-flag-types.h"
 #include "monster-race/race-ability-flags.h"
index f713f1d..c296621 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/floor-type-definition.h"
+#include "system/floor-type-definition.h"
 #include "system/dungeon-info.h"
 
 bool FloorType::is_in_dungeon() const
index d2b3d9a..c62e1eb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "dungeon/quest.h"
 #include "floor/floor-base-definitions.h"
index d9143fa..f4a8c70 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum game_option_types {
     OPT_PAGE_INPUT,
index 4db5533..1368f9c 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief ゲーム内で広範に使われる定数群の定義
  * @author Hourier
  * @date 2022/11/02
index 95a763c..990be49 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/grid-type-definition.h"
+#include "system/grid-type-definition.h"
 #include "monster-race/race-flags7.h"
 #include "system/monster-race-info.h"
 #include "system/terrain-type-definition.h"
index b97e9c5..6a68f38 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/object-index-list.h"
 #include "system/angband.h"
index f322e7d..d5f081e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @file h-basic.h
index 151fbc2..284b8e3 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file h-config.h
  * @brief OSごとの差異を吸収してコンパイルするためのプリプロ群
  * The most basic "include" file.
index 9e8e95b..9ddb614 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file h-system.h
  * @brief 変愚蛮怒用システムヘッダーファイル /
  * The most basic "include" file.
index cca2efd..07e5f17 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @file h-type.h
index 9c676b1..ac2cd0a 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @file item-entity.cpp
  * @brief アイテム実体とそれにまつわる判定処理群
  * @author Hourier
index 5d4f5a9..f20a7fd 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * @file item-entity.h
index cfbb0ff..708adae 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/monster-entity.h"
+#include "system/monster-entity.h"
 #include "game-option/birth-options.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-indice-types.h"
index 2ed222d..8311cb0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster/monster-flag-types.h"
 #include "monster/monster-timed-effect-types.h"
index 3f5ab6d..e4a667a 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/monster-race-info.h"
+#include "system/monster-race-info.h"
 #include "monster-race/race-indice-types.h"
 #include "monster/horror-descriptions.h"
 #include <algorithm>
index f5daf12..3baab89 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster-attack/monster-attack-effect.h"
 #include "monster-attack/monster-attack-table.h"
index 8c21bd7..743bf12 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/player-type-definition.h"
+#include "system/player-type-definition.h"
 #include "market/arena-info-table.h"
 #include "system/redrawing-flags-updater.h"
 #include "timed-effect/player-blindness.h"
index 9f368d7..8091c2e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "mutation/mutation-flag-types.h"
 #include "object-enchant/trc-types.h"
index d4a8f13..550f8f6 100644 (file)
@@ -1,4 +1,4 @@
-#include "system/redrawing-flags-updater.h"
+#include "system/redrawing-flags-updater.h"
 #include "util/enum-range.h"
 
 RedrawingFlagsUpdater RedrawingFlagsUpdater::instance{};
index fcded72..b262c1e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "util/flag-group.h"
 
index 5371db7..f143c3d 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief グローバル変数の残骸
  * @date 2013/12/31
  * @todo 呼び出し関係を良く読んで消す方針で進めたい.
index 6e5851d..f13ffbb 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 05cd792..e51dd84 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief 地形特性定義
  * @author Hourier
  * @date 2022/10/15
index 411352f..7c2ab14 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "grid/feature-flag-types.h"
 #include "system/angband.h"
index 1495691..a722cfe 100644 (file)
@@ -1,4 +1,4 @@
-#include "target/grid-selector.h"
+#include "target/grid-selector.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
 #include "floor/cave.h"
@@ -111,11 +111,11 @@ std::unordered_map<int, std::function<bool(grid_type *)>> tgt_pt_symbol_call_bac
 struct tgt_pt_info {
     tgt_pt_info()
     {
-        get_screen_size(&this->wid, &this->hgt);
+        std::tie(this->width, this->height) = get_screen_size();
     };
 
-    TERM_LEN wid; //!< 画面サイズ(幅)
-    TERM_LEN hgt; //!< 画面サイズ(高さ)
+    int width; //!< 画面サイズ(幅)
+    int height; //!< 画面サイズ(高さ)
     POSITION y = 0; //!< 現在の指定位置(Y)
     POSITION x = 0; //!< 現在の指定位置(X)
     std::vector<POSITION> ys{}; //!< "interesting" な座標たちを記録する配列(Y)
@@ -171,8 +171,8 @@ void tgt_pt_info::move_to_symbol(PlayerType *player_ptr)
     } else {
         this->y = this->ys[this->n];
         this->x = this->xs[this->n];
-        dy = 2 * (this->y - cy) / this->hgt;
-        dx = 2 * (this->x - cx) / this->wid;
+        dy = 2 * (this->y - cy) / this->height;
+        dx = 2 * (this->x - cx) / this->width;
         if (dy || dx) {
             change_panel(player_ptr, dy, dx);
         }
@@ -266,7 +266,7 @@ bool tgt_pt(PlayerType *player_ptr, POSITION *x_ptr, POSITION *y_ptr)
             int dx = ddx[d];
             int dy = ddy[d];
             if (move_fast) {
-                int mag = std::min(info.wid / 2, info.hgt / 2);
+                int mag = std::min(info.width / 2, info.height / 2);
                 info.x += dx * mag;
                 info.y += dy * mag;
             } else {
@@ -274,15 +274,15 @@ bool tgt_pt(PlayerType *player_ptr, POSITION *x_ptr, POSITION *y_ptr)
                 info.y += dy;
             }
 
-            if (((info.x < panel_col_min + info.wid / 2) && (dx > 0)) || ((info.x > panel_col_min + info.wid / 2) && (dx < 0))) {
+            if (((info.x < panel_col_min + info.width / 2) && (dx > 0)) || ((info.x > panel_col_min + info.width / 2) && (dx < 0))) {
                 dx = 0;
             }
 
-            if (((info.y < panel_row_min + info.hgt / 2) && (dy > 0)) || ((info.y > panel_row_min + info.hgt / 2) && (dy < 0))) {
+            if (((info.y < panel_row_min + info.height / 2) && (dy > 0)) || ((info.y > panel_row_min + info.height / 2) && (dy < 0))) {
                 dy = 0;
             }
 
-            if ((info.y >= panel_row_min + info.hgt) || (info.y < panel_row_min) || (info.x >= panel_col_min + info.wid) || (info.x < panel_col_min)) {
+            if ((info.y >= panel_row_min + info.height) || (info.y < panel_row_min) || (info.x >= panel_col_min + info.width) || (info.x < panel_col_min)) {
                 change_panel(player_ptr, dy, dx);
             }
 
index fe879bb..2f8317e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 6c7d7a7..2f65368 100644 (file)
@@ -1,4 +1,4 @@
-#include "target/projection-path-calculator.h"
+#include "target/projection-path-calculator.h"
 #include "effect/effect-characteristics.h"
 #include "effect/spells-effect-util.h"
 #include "floor/cave.h"
index a7f0b8d..e43947b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <utility>
index d52d72c..2a47ff2 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief 雑多なその他の処理2 / effects of various "objects"
  * @date 2014/02/06
  * @author
@@ -43,8 +43,7 @@ void verify_panel(PlayerType *player_ptr)
 {
     POSITION y = player_ptr->y;
     POSITION x = player_ptr->x;
-    TERM_LEN wid, hgt;
-    get_screen_size(&wid, &hgt);
+    const auto [wid, hgt] = get_screen_size();
     int max_prow_min = player_ptr->current_floor_ptr->height - hgt;
     int max_pcol_min = player_ptr->current_floor_ptr->width - wid;
     if (max_prow_min < 0) {
index d0d63b4..77513d8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 9f8906f..f5fb2e2 100644 (file)
@@ -1,4 +1,4 @@
-#include "target/target-describer.h"
+#include "target/target-describer.h"
 #include "action/travel-execution.h"
 #include "core/stuff-handler.h"
 #include "dungeon/quest.h"
index ceaecd4..4043fc1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 54aca79..5d87767 100644 (file)
@@ -1,4 +1,4 @@
-#include "target/target-getter.h"
+#include "target/target-getter.h"
 #include "core/asking-player.h"
 #include "effect/spells-effect-util.h"
 #include "floor/geometry.h"
index 2bd9cbf..63f34bc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 bool get_aim_dir(PlayerType *player_ptr, int *dp);
index 61c5f6a..e261ffb 100644 (file)
@@ -1,4 +1,4 @@
-#include "target/target-preparation.h"
+#include "target/target-preparation.h"
 #include "floor/cave.h"
 #include "game-option/input-options.h"
 #include "grid/grid.h"
index 47b16e1..1d9c8f0 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <vector>
 
index 497f038..805b69d 100644 (file)
@@ -1,4 +1,4 @@
-#include "target/target-setter.h"
+#include "target/target-setter.h"
 #include "core/stuff-handler.h"
 #include "core/window-redrawer.h"
 #include "floor/geometry.h"
@@ -26,6 +26,7 @@
 #include "util/string-processor.h"
 #include "window/display-sub-windows.h"
 #include "window/main-window-util.h"
+#include <tuple>
 #include <vector>
 
 // "interesting" な座標たちを記録する配列。
@@ -59,7 +60,7 @@ static ts_type *initialize_target_set_type(PlayerType *player_ptr, ts_type *ts_p
     ts_ptr->x = player_ptr->x;
     ts_ptr->done = false;
     ts_ptr->flag = true;
-    get_screen_size(&ts_ptr->wid, &ts_ptr->hgt);
+    std::tie(ts_ptr->wid, ts_ptr->hgt) = get_screen_size();
     ts_ptr->m = 0;
     return ts_ptr;
 }
@@ -77,9 +78,9 @@ static ts_type *initialize_target_set_type(PlayerType *player_ptr, ts_type *ts_p
  */
 static bool change_panel_xy(PlayerType *player_ptr, POSITION y, POSITION x)
 {
-    POSITION dy = 0, dx = 0;
-    TERM_LEN wid, hgt;
-    get_screen_size(&wid, &hgt);
+    auto dy = 0;
+    auto dx = 0;
+    [[maybe_unused]] const auto [wid, hgt] = get_screen_size();
     if (y < panel_row_min) {
         dy = -1;
     }
index f684c32..062c742 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <stdint.h>
 
index 225e2c9..8f53423 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 #include <stdint.h>
 
 /* target_set用関数の利用用途フラグ / Bit flags for the "target_set" function */
index 0c19051..62197e5 100644 (file)
@@ -1,4 +1,4 @@
-#include "term/gameterm.h"
+#include "term/gameterm.h"
 #include "effect/attribute-types.h"
 #include "system/system-variables.h"
 #include "term/term-color-types.h"
index dfa4131..9e013f1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <array>
index 06aeef2..4332f05 100644 (file)
@@ -1,4 +1,4 @@
-#include "term/screen-processor.h"
+#include "term/screen-processor.h"
 #include "io/input-key-acceptor.h"
 #include "locale/japanese.h"
 #include "term/term-color-types.h"
@@ -97,7 +97,7 @@ void put_str(std::string_view sv, TERM_LEN row, TERM_LEN col)
  */
 void c_prt(TERM_COLOR attr, std::string_view sv, TERM_LEN row, TERM_LEN col)
 {
-    term_erase(col, row, 255);
+    term_erase(col, row);
     term_addstr(-1, attr, sv);
 }
 
@@ -151,7 +151,7 @@ static std::vector<std::pair<TERM_COLOR, char>> c_roff_wrap(int x, int y, int w,
         }
     }
 
-    term_erase(wrap_col, y, 255);
+    term_erase(wrap_col, y);
     return wrap_chars;
 }
 
@@ -171,13 +171,11 @@ static std::vector<std::pair<TERM_COLOR, char>> c_roff_wrap(int x, int y, int w,
  */
 void c_roff(TERM_COLOR a, std::string_view str)
 {
-    int w, h;
-    (void)term_get_size(&w, &h);
-
+    const auto [wid, hgt] = term_get_size();
     int x, y;
     (void)term_locate(&x, &y);
 
-    if (y == h - 1 && x > w - 3) {
+    if (y == hgt - 1 && x > wid - 3) {
         return;
     }
 
@@ -185,8 +183,8 @@ void c_roff(TERM_COLOR a, std::string_view str)
         const auto is_kanji = _(iskanji(*s), false);
 
         if (*s == '\n') {
-            if (y + 1 < h) {
-                term_erase(0, y + 1, 255);
+            if (y + 1 < hgt) {
+                term_erase(0, y + 1);
             }
 
             return;
@@ -194,15 +192,15 @@ void c_roff(TERM_COLOR a, std::string_view str)
 
         const auto ch = (is_kanji || isprint(*s)) ? *s : ' ';
 
-        if ((x >= ((is_kanji) ? w - 2 : w - 1)) && (ch != ' ')) {
-            const auto wrap_chars = c_roff_wrap(x, y, w, &*s);
+        if ((x >= ((is_kanji) ? wid - 2 : wid - 1)) && (ch != ' ')) {
+            const auto wrap_chars = c_roff_wrap(x, y, wid, &*s);
 
             y++;
-            if (y == h) {
+            if (y == hgt) {
                 return;
             }
 
-            term_erase(0, y, 255);
+            term_erase(0, y);
             for (const auto &[ca, cv] : wrap_chars) {
                 term_addch(ca, cv);
             }
@@ -216,8 +214,8 @@ void c_roff(TERM_COLOR a, std::string_view str)
             term_addch((a | 0x20), *s);
         }
 
-        if (++x > w) {
-            x = w;
+        if (++x > wid) {
+            x = wid;
         }
     }
 }
@@ -238,6 +236,6 @@ void clear_from(int row)
 {
     for (int y = row; y < game_term->hgt; y++) {
         TermOffsetSetter tos(0, std::nullopt);
-        term_erase(0, y, 255);
+        term_erase(0, y);
     }
 }
index ad1d4dc..542db89 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 9a1d135..66c0e42 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Angband "attributes" (with symbols, and base (R,G,B) codes)
index d37a306..c466481 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file z-form.cpp
  * @brief Low level text formatting
  * @date 2023/04/30
index faae436..9b2854c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*!
  * @file z-form.h
index ed8a73a..2e026f6 100644 (file)
@@ -1,4 +1,4 @@
-/* File: z-rand.c */
+/* File: z-rand.c */
 
 /*
  * Copyright (c) 1997 Ben Harrison, and others
index eec8045..62d6d3b 100644 (file)
@@ -1,4 +1,4 @@
-/* File: z-rand.h */
+/* File: z-rand.h */
 
 /*
  * Copyright (c) 1997 Ben Harrison, and others
index 656a18b..c0ab1ed 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
  * @brief Purpose: a generic, efficient, terminal window package -BEN-
  * Copyright (c) 1997 Ben Harrison
  *
@@ -1604,7 +1604,7 @@ errr term_putstr(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR a, std::string_view s
 /*
  * Place cursor at (x,y), and clear the next "n" chars
  */
-errr term_erase(TERM_LEN x, TERM_LEN y, int n)
+errr term_erase(TERM_LEN x, TERM_LEN y, std::optional<int> n_opt)
 {
     TERM_LEN w = game_term->wid;
     /* int h = Term->hgt; */
@@ -1623,6 +1623,8 @@ errr term_erase(TERM_LEN x, TERM_LEN y, int n)
     x = game_term->scr->cx;
     y = game_term->scr->cy;
 
+    auto n = n_opt.value_or(w);
+
     /* Force legal size */
     if (x + n > w) {
         n = w - x;
@@ -1854,11 +1856,9 @@ errr term_get_cursor(int *v)
 /*
  * Extract the current window size
  */
-errr term_get_size(TERM_LEN *w, TERM_LEN *h)
+std::pair<int, int> term_get_size()
 {
-    (*w) = game_term->centered_wid.value_or(game_term->wid);
-    (*h) = game_term->centered_hgt.value_or(game_term->hgt);
-    return 0;
+    return { game_term->centered_wid.value_or(game_term->wid), game_term->centered_hgt.value_or(game_term->hgt) };
 }
 
 /*
index 1325e93..433aca9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Copyright (c) 1997 Ben Harrison
@@ -14,6 +14,7 @@
 #include <optional>
 #include <stack>
 #include <string_view>
+#include <utility>
 #include <vector>
 
 /*!
@@ -190,7 +191,6 @@ private:
 /**** Available Variables ****/
 extern term_type *game_term;
 
-errr term_win_nuke(term_win *s, TERM_LEN w, TERM_LEN h);
 errr term_user(int n);
 errr term_xtra(int n, int v);
 
@@ -208,13 +208,13 @@ errr term_add_bigch(TERM_COLOR a, char c);
 errr term_addstr(int n, TERM_COLOR a, std::string_view sv);
 errr term_putch(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c);
 errr term_putstr(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR a, std::string_view sv);
-errr term_erase(TERM_LEN x, TERM_LEN y, int n);
+errr term_erase(TERM_LEN x, TERM_LEN y, std::optional<int> n_opt = std::nullopt);
 errr term_clear(void);
 errr term_redraw(void);
 errr term_redraw_section(TERM_LEN x1, TERM_LEN y1, TERM_LEN x2, TERM_LEN y2);
 
 errr term_get_cursor(int *v);
-errr term_get_size(TERM_LEN *w, TERM_LEN *h);
+std::pair<int, int> term_get_size();
 errr term_locate(TERM_LEN *x, TERM_LEN *y);
 errr term_what(TERM_LEN x, TERM_LEN y, TERM_COLOR *a, char *c);
 
index 1e5b3f3..be8481e 100644 (file)
@@ -1,4 +1,4 @@
-/* File: z-util.c */
+/* File: z-util.c */
 
 /*
  * Copyright (c) 1997 Ben Harrison
index 81fa0e3..35b1da7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Copyright (c) 1997 Ben Harrison
index 0b6cbf4..00d12a9 100644 (file)
@@ -1,4 +1,4 @@
-/* File: z-virt.c */
+/* File: z-virt.c */
 
 /*
  * Copyright (c) 1997 Ben Harrison
index a2a2a19..fdd09ee 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 /*
  * Copyright (c) 1997 Ben Harrison
index a564279..3630942 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief sha256ハッシュ値計算クラスのテストプログラム
  *
  * srcディレクトリで以下のコマンドでコンパイルして実行する
index 1f90c9c..768630f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの一時加速ステータス変更と判定
  * @date 2022/08/15
  * @author Hourier
index 43d0d63..16a6ce5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerAcceleration {
 public:
index 94fc41b..e12c9cc 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの盲目ステータス変更と判定
  * @date 2022/08/30
  * @author Hourier
index 877ba2b..4e3e78c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerBlindness {
 public:
index f1e4df2..74ca098 100644 (file)
@@ -1,4 +1,4 @@
-#include "timed-effect/player-confusion.h"
+#include "timed-effect/player-confusion.h"
 
 short PlayerConfusion::current() const
 {
index c4512ea..43def76 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerConfusion {
 public:
index de91149..42240b3 100644 (file)
@@ -1,4 +1,4 @@
-#include "timed-effect/player-cut.h"
+#include "timed-effect/player-cut.h"
 #include "system/angband-exceptions.h"
 #include "system/angband.h"
 
index 0fd993f..953a49d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "term/term-color-types.h"
 #include <string>
index 8791786..1986510 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの一時減速ステータス変更と判定
  * @date 2022/08/05
  * @author Hourier
index 80b17e5..c77fc39 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerDeceleration {
 public:
index d12d482..6055e9b 100644 (file)
@@ -1,4 +1,4 @@
-#include "timed-effect/player-fear.h"
+#include "timed-effect/player-fear.h"
 
 short PlayerFear::current() const
 {
index 7ec63dc..76547b7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerFear {
 public:
index 24a778a..1e29df1 100644 (file)
@@ -1,4 +1,4 @@
-#include "timed-effect/player-hallucination.h"
+#include "timed-effect/player-hallucination.h"
 
 short PlayerHallucination::current() const
 {
index 70a44ec..3f89ef9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerHallucination {
 public:
index 5eb18c2..31121d6 100644 (file)
@@ -1,4 +1,4 @@
-#include "timed-effect/player-paralysis.h"
+#include "timed-effect/player-paralysis.h"
 
 short PlayerParalysis::current() const
 {
index bb944d2..534c388 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerParalysis {
 public:
index a0a08de..8172975 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの一時減速ステータス変更と判定
  * @date 2022/08/16
  * @author Hourier
index 6941bd6..b3d13f8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerPoison {
 public:
index f85fdec..5118609 100644 (file)
@@ -1,4 +1,4 @@
-#include "timed-effect/player-stun.h"
+#include "timed-effect/player-stun.h"
 #include "system/angband-exceptions.h"
 #include "system/angband.h"
 
index ecba967..755ad5e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "term/term-color-types.h"
 #include <string>
index 34f4a9c..5eb4a09 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの時限効果を表すオブジェクト群を保持する
  * @date 2022/08/05
  * @author Hourier
index faa883f..c175d14 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <memory>
 
index df224b6..b517deb 100644 (file)
@@ -1,4 +1,4 @@
-#include "util/angband-files.h"
+#include "util/angband-files.h"
 #include "locale/japanese.h"
 #include "system/angband-exceptions.h"
 #include "util/string-processor.h"
@@ -166,7 +166,8 @@ std::filesystem::path path_build(const std::filesystem::path &path, std::string_
         return file;
     }
 
-    const auto path_ret = std::filesystem::path(path).append(file);
+    auto parsed_path = path_parse(path);
+    const auto &path_ret = parsed_path.append(file);
     constexpr auto max_path_length = 1024;
     const auto path_str = path_ret.string();
     if (path_str.length() > max_path_length) {
index 6cdbbea..d526140 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <filesystem>
index afe255c..e88774e 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <cassert>
 #include <type_traits>
index 06ac1e9..a7a8b73 100644 (file)
@@ -1,4 +1,4 @@
-#include "util/buffer-shaper.h"
+#include "util/buffer-shaper.h"
 #include "locale/japanese.h"
 #include <algorithm>
 #include <array>
index fbca07f..bd51f59 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
diff --git a/src/util/candidate-selector.cpp b/src/util/candidate-selector.cpp
new file mode 100644 (file)
index 0000000..e4b6ff8
--- /dev/null
@@ -0,0 +1,65 @@
+#include "util/candidate-selector.h"
+#include <algorithm>
+#include <iterator>
+
+/*!
+ * @brief 候補の選択に使用するシンボルのリスト
+ */
+const std::array<char, 62> CandidateSelector::i2sym = {
+    // clang-format off
+    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+    // clang-format on
+};
+
+/*!
+ * @brief CandidateSelectorクラスのコンストラクタ
+ *
+ * @param prompt 画面最上部に表示する文字列
+ * @param start_col 候補の表示を開始する列
+ */
+CandidateSelector::CandidateSelector(const std::string &prompt, int start_col)
+    : prompt(prompt)
+    , start_col(start_col)
+{
+    this->set_max_per_page();
+}
+
+std::pair<size_t, std::optional<size_t>> CandidateSelector::process_input(char cmd, size_t current_page, size_t page_max)
+{
+    switch (cmd) {
+    case ' ':
+        current_page++;
+        break;
+    case '-':
+        current_page += (page_max - 1);
+        break;
+    default:
+        if (auto select_sym_it = std::find(i2sym.begin(), i2sym.end(), cmd);
+            select_sym_it != i2sym.end()) {
+            const auto idx = static_cast<size_t>(std::distance(i2sym.begin(), select_sym_it));
+            return { current_page, idx };
+        }
+        break;
+    }
+
+    if (current_page >= page_max) {
+        current_page %= page_max;
+    }
+
+    return { current_page, std::nullopt };
+}
+
+/*!
+ * @brief 1ページに表示する候補の最大数を設定する
+ *
+ * 引数を省略した場合もしくは設定数が端末の高さより大きい場合は、端末の高さに合わせる
+ *
+ * @param max 1ページに表示する候補の最大数
+ */
+void CandidateSelector::set_max_per_page(size_t max)
+{
+    const auto [wid, hgt] = term_get_size();
+    this->max_per_page = std::min<size_t>(max, hgt - 2);
+}
diff --git a/src/util/candidate-selector.h b/src/util/candidate-selector.h
new file mode 100644 (file)
index 0000000..b9a2b0c
--- /dev/null
@@ -0,0 +1,130 @@
+#pragma once
+
+#include "core/asking-player.h"
+#include "term/screen-processor.h"
+#include "util/finalizer.h"
+#include <array>
+#include <concepts>
+#include <limits>
+#include <optional>
+#include <sstream>
+#include <string>
+
+/// @note clang-formatによるconceptの整形が安定していないので抑制しておく
+// clang-format off
+/*!
+ * @brief 型Argのオブジェクトの説明を生成する関数の型Funcを表すコンセプト
+ */
+template <typename Func, typename Arg>
+concept Describer = requires(Func f, Arg a) {
+    { std::invoke(f, a) } -> std::convertible_to<std::string>;
+};
+
+/*!
+ * @brief サイズが既知のコンテナの型を表すコンセプト
+ */
+template <typename T>
+concept SizedContainer = requires(T t) {
+    { std::begin(t) } -> std::convertible_to<typename T::iterator>;
+    { std::end(t) } -> std::convertible_to<typename T::iterator>;
+    std::size(t);
+    typename T::value_type;
+};
+// clang-format on
+
+/*!
+ * @brief 候補を選択するためのクラス
+ */
+class CandidateSelector {
+public:
+    CandidateSelector(const std::string &prompt, int start_col = 0);
+
+    void set_max_per_page(size_t max_per_page = std::numeric_limits<size_t>::max());
+
+    /*!
+     * @brief 引数で与えられた候補リストを画面に表示し選択する
+     *
+     * 最上行に prompt を表示し、次の行から候補を
+     *
+     * <pre>
+     * a) 候補1
+     * b) 候補2
+     *    ︙
+     * </pre>
+     *
+     * のように表示する。
+     * 候補名は関数 describe_candidate によって生成する。
+     *
+     * 先頭の記号をキーボードで入力することによって選択する。
+     * 与えられた要素の数が max_per_page を超える場合はページ分けを行い、
+     * ' ' によって次ページ、'-' によって前ページへの切り替えを行う。
+     * ESCキーを押すと選択をキャンセルする。
+     *
+     * @param candidates 選択する候補
+     * @param describe_candidates 候補名を生成する関数
+     * @return 選択した要素を指すイテレータ
+     *         キャンセルした場合はstd::end(candidates)
+     */
+    template <SizedContainer Candidates, Describer<typename Candidates::value_type> F>
+    typename Candidates::const_iterator select(const Candidates &candidates, F &&describe_candidate)
+    {
+        const auto candidates_count = std::size(candidates);
+        const auto page_max = (candidates_count - 1) / this->max_per_page + 1;
+        auto current_page = 0U;
+
+        screen_save();
+        const auto finalizer = util::make_finalizer([] { screen_load(); });
+
+        while (true) {
+            this->display_page(current_page, candidates, describe_candidate);
+
+            const auto cmd = input_command(this->prompt);
+            if (!cmd) {
+                return std::end(candidates);
+            }
+
+            const auto page_base_idx = current_page * this->max_per_page;
+            const auto page_item_count = std::min(this->max_per_page, candidates_count - page_base_idx);
+
+            const auto [new_page, idx] = process_input(*cmd, current_page, page_max);
+            if (idx && *idx < page_item_count) {
+                return std::next(std::begin(candidates), page_base_idx + *idx);
+            }
+
+            current_page = new_page;
+        }
+    }
+
+private:
+    static std::pair<size_t, std::optional<size_t>> process_input(char cmd, size_t current_page, size_t page_max);
+
+    template <SizedContainer Candidates, Describer<typename Candidates::value_type> F>
+    void display_page(size_t page, const Candidates &candidates, F &&describe_candidate)
+    {
+        const auto candidates_count = std::size(candidates);
+        const auto page_max = (candidates_count - 1) / this->max_per_page + 1;
+        const auto page_base_idx = page * this->max_per_page;
+        const auto page_item_count = std::min(this->max_per_page, candidates_count - page_base_idx);
+
+        for (auto i = 0U; i < this->max_per_page + 1; ++i) {
+            term_erase(this->start_col, i + 1, 255);
+        }
+
+        auto it = std::next(std::begin(candidates), page_base_idx);
+        for (auto i = 0U; i < page_item_count; ++i, ++it) {
+            std::stringstream ss;
+            ss << i2sym[i] << ") " << std::invoke(describe_candidate, *it);
+            put_str(ss.str(), i + 1, this->start_col);
+        }
+        if (page_max > 1) {
+            const auto page_info = format("-- more (%lu/%lu) --", page + 1, page_max);
+            put_str(page_info, page_item_count + 1, this->start_col);
+        }
+    }
+
+    static const std::array<char, 62> i2sym;
+
+    std::string prompt;
+    int start_col;
+    size_t max_per_page;
+};
index 2da738b..1d6a729 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <type_traits>
 
index 1ee531c..c5a1159 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <iterator>
 #include <type_traits>
index 2baae8e..933ef01 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <concepts>
 #include <functional>
index e476f64..9a92da9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <bitset>
 #include <concepts>
index 288902b..fa8d50d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fab8df4..2497a75 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief オブジェクトのソート処理
  * @date 2020/06/03
  * @author Hourier
index 1838e8b..e381c4b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 08d1179..02f4c32 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/h-type.h"
 
index da872ed..2f89f4c 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband-exceptions.h"
 #include "term/z-rand.h"
index da438e9..051e7a8 100644 (file)
@@ -1,4 +1,4 @@
-#include "util/rng-xoshiro.h"
+#include "util/rng-xoshiro.h"
 
 namespace {
 
index 68c4f53..74aaf0b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <array>
 #include <cstdint>
index 8b5d14a..6ece6ac 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief SHA-256ハッシュ値計算クラスの定義
  *
  * RFC 6234のリファレンス実装を参考にC++20で実装
index 1f0b84b..dfb891b 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief SHA-256ハッシュ値計算クラスの宣言
  */
 
index 07c3eac..4f46658 100644 (file)
@@ -1,4 +1,4 @@
-#include "util/sort.h"
+#include "util/sort.h"
 #include "artifact/fixed-art-types.h"
 #include "dungeon/quest.h"
 #include "grid/grid.h"
index 24de67b..b87282f 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 309e7a8..bed29d8 100644 (file)
@@ -1,4 +1,4 @@
-#include "util/string-processor.h"
+#include "util/string-processor.h"
 #include "util/int-char-converter.h"
 
 /*!
index be9f453..fd49025 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index 7312876..6398460 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-birth.h"
+#include "view/display-birth.h"
 #include "birth/auto-roller.h"
 #include "birth/birth-stat.h"
 #include "game-option/birth-options.h"
index b038c6d..dfa00c9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void birth_put_stats(PlayerType *player_ptr);
index d0a8c85..8ba7805 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief キャラクタの特性を表示する
  * @date 2020/02/25
  * @author Hourier
index d4ce241..ab0fcd1 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index fbb12b4..562ab73 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-fruit.h"
+#include "view/display-fruit.h"
 #include "system/angband.h"
 #include "term/screen-processor.h"
 #include "term/term-color-types.h"
index 9391685..18652d2 100644 (file)
@@ -1,3 +1,3 @@
-#pragma once
+#pragma once
 
 void display_fruit(int row, int col, int fruit);
index 94018a1..9ecdbd5 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-inventory.h"
+#include "view/display-inventory.h"
 #include "flavor/flavor-describer.h"
 #include "game-option/special-options.h"
 #include "game-option/text-display-options.h"
@@ -32,16 +32,15 @@ COMMAND_CODE show_inventory(PlayerType *player_ptr, int target_item, BIT_FLAGS m
     int k, l, z = 0;
     ItemEntity *o_ptr;
     char tmp_val[80];
-    COMMAND_CODE out_index[23];
-    TERM_COLOR out_color[23];
+    COMMAND_CODE out_index[23]{};
+    TERM_COLOR out_color[23]{};
     std::array<std::string, 23> out_desc{};
     COMMAND_CODE target_item_label = 0;
     char inven_label[52 + 1];
 
-    int col = command_gap;
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-    int len = wid - col - 1;
+    auto col = command_gap;
+    const auto [wid, hgt] = term_get_size();
+    auto len = wid - col - 1;
     for (i = 0; i < INVEN_PACK; i++) {
         o_ptr = &player_ptr->inventory_list[i];
         if (!o_ptr->is_valid()) {
@@ -142,14 +141,11 @@ void display_inventory(PlayerType *player_ptr, const ItemTester &item_tester)
     int i, z = 0;
     TERM_COLOR attr = TERM_WHITE;
     char tmp_val[80];
-    TERM_LEN wid, hgt;
-
     if (!player_ptr || !player_ptr->inventory_list) {
         return;
     }
 
-    term_get_size(&wid, &hgt);
-
+    const auto [wid, hgt] = term_get_size();
     for (i = 0; i < INVEN_PACK; i++) {
         auto o_ptr = &player_ptr->inventory_list[i];
         if (!o_ptr->is_valid()) {
@@ -172,7 +168,7 @@ void display_inventory(PlayerType *player_ptr, const ItemTester &item_tester)
         }
 
         int cur_col = 3;
-        term_erase(cur_col, i, 255);
+        term_erase(cur_col, i);
         term_putstr(0, i, cur_col, TERM_WHITE, tmp_val);
         const auto item_name = describe_flavor(player_ptr, o_ptr, 0);
         attr = tval_to_attr[enum2i(o_ptr->bi_key.tval()) % 128];
@@ -203,6 +199,6 @@ void display_inventory(PlayerType *player_ptr, const ItemTester &item_tester)
     }
 
     for (i = z; i < hgt; i++) {
-        term_erase(0, i, 255);
+        term_erase(0, i);
     }
 }
index 99adb48..ba3b08b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 272d20d..2cefd41 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-lore-attacks.h"
+#include "view/display-lore-attacks.h"
 #include "locale/japanese.h"
 #include "lore/combat-types-setter.h"
 #include "lore/lore-calculator.h"
index bee4580..146dff8 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct lore_type;
 void display_monster_blows(lore_type *lore_ptr);
index f6aae39..f381124 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-lore-drops.h"
+#include "view/display-lore-drops.h"
 #include "lore/lore-util.h"
 #include "monster-race/race-flags1.h"
 #include "util/bit-flags-calculator.h"
index c311543..febbf16 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct lore_type;
 void display_monster_drop_quantity(lore_type *lore_ptr);
index 11b851c..d4bc6c9 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-lore-magics.h"
+#include "view/display-lore-magics.h"
 #include "lore/lore-util.h"
 #include "monster-race/race-flags2.h"
 #include "system/monster-race-info.h"
index 8b0b786..c398c70 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct lore_type;
 void display_monster_breath(lore_type *lore_ptr);
index ac9b224..475320a 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-lore-status.h"
+#include "view/display-lore-status.h"
 #include "locale/japanese.h"
 #include "lore/lore-calculator.h"
 #include "lore/lore-util.h"
index a798d04..4d0e21b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct lore_type;
 void display_monster_hp_ac(lore_type *lore_ptr);
index e275942..b66d85f 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief モンスターの思い出を表示する処理
  * @date 2020/06/09
  * @author Hourier
@@ -49,7 +49,7 @@ void roff_top(MonsterRaceId r_idx)
     TERM_COLOR a1 = r_ptr->d_attr;
     TERM_COLOR a2 = r_ptr->x_attr;
 
-    term_erase(0, 0, 255);
+    term_erase(0, 0);
     term_gotoxy(0, 0);
 
 #ifdef JP
@@ -85,7 +85,7 @@ void roff_top(MonsterRaceId r_idx)
 void screen_roff(PlayerType *player_ptr, MonsterRaceId r_idx, monster_lore_mode mode)
 {
     msg_erase();
-    term_erase(0, 1, 255);
+    term_erase(0, 1);
     hook_c_roff = c_roff;
     process_monster_lore(player_ptr, r_idx, mode);
     roff_top(r_idx);
@@ -99,7 +99,7 @@ void screen_roff(PlayerType *player_ptr, MonsterRaceId r_idx, monster_lore_mode
 void display_roff(PlayerType *player_ptr)
 {
     for (int y = 0; y < game_term->hgt; y++) {
-        term_erase(0, y, 255);
+        term_erase(0, y);
     }
 
     term_gotoxy(0, 1);
index 5126c9f..c02d7d3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "lore/lore-util.h"
 #include "system/angband.h"
index 81ea646..ba9029c 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-map.h"
+#include "view/display-map.h"
 #include "autopick/autopick-finder.h"
 #include "autopick/autopick-methods-table.h"
 #include "autopick/autopick-util.h"
index c69d4bd..4c73653 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 6d9c561..36a94af 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-messages.h"
+#include "view/display-messages.h"
 #include "core/window-redrawer.h"
 #include "game-option/cheat-options.h"
 #include "game-option/input-options.h"
@@ -253,7 +253,7 @@ static void msg_flush(PlayerType *player_ptr, int x)
         }
     }
 
-    term_erase(0, 0, 255);
+    term_erase(0, 0);
 }
 
 void msg_erase(void)
@@ -331,7 +331,7 @@ void msg_print(std::string_view msg)
     }
 
     if (!msg_flag) {
-        term_erase(0, 0, 255);
+        term_erase(0, 0);
         msg_head_pos = 0;
     }
 
@@ -380,7 +380,7 @@ void msg_print(std::nullptr_t)
     }
 
     if (!msg_flag) {
-        term_erase(0, 0, 255);
+        term_erase(0, 0);
         msg_head_pos = 0;
     }
 
index af761aa..2559271 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <concepts>
index 91a2ca5..91451ec 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-monster-status.h"
+#include "view/display-monster-status.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
 #include "monster/monster-flag-types.h"
index 09848ee..2460173 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string>
index c3f8896..263ebbe 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-player-middle.h"
+#include "view/display-player-middle.h"
 #include "combat/shoot.h"
 #include "game-option/birth-options.h"
 #include "game-option/special-options.h"
index d41e8d8..a40a40d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void display_player_middle(PlayerType *player_ptr);
index 2ff1084..f9bd017 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-player-misc-info.h"
+#include "view/display-player-misc-info.h"
 #include "player-info/class-info.h"
 #include "player-info/mimic-info-table.h"
 #include "player/player-personality.h"
@@ -27,12 +27,11 @@ void display_player_name(PlayerType *player_ptr, bool name_only)
     constexpr std::string_view header = _("名前  : ", "Name  : ");
     const auto length = header.length() + display_name.length();
 
-    int w, h;
-    term_get_size(&w, &h);
-    const auto center_col = (w - length) / 2 - 4; // ヘッダがあるぶん少し左に寄せたほうが見やすい
+    const auto [wid, hgt] = term_get_size();
+    const auto center_col = (wid - length) / 2 - 4; // ヘッダがあるぶん少し左に寄せたほうが見やすい
     constexpr auto row = 1;
 
-    term_erase(0, row, 255);
+    term_erase(0, row);
     term_putstr(center_col, row, -1, TERM_WHITE, header);
     term_putstr(center_col + header.length(), row, -1, TERM_L_BLUE, display_name);
 }
index d9505cb..71f84cc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void display_player_name(PlayerType *player_ptr, bool name_only = false);
index a51e2f4..f0a848a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーの耐性と能力値を表示する
  * @date 2020/02/27
  * @author Hourier
index 6103578..5350f14 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void display_player_stat_info(PlayerType *player_ptr);
index c9d88e8..8d21429 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤーのステータス表示メインルーチン群
  * @date 2020/02/25
  * @author Hourier
index 02531f4..82b2a84 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <optional>
index 18a3522..f125f55 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-scores.h"
+#include "view/display-scores.h"
 #include "core/score-util.h"
 #include "io/files-util.h"
 #include "io/input-key-acceptor.h"
index 78202ad..b9f372a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 struct high_score;
 void display_scores(int from, int to, int note, high_score *score);
index 12f848a..48c6e72 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-self-info.h"
+#include "view/display-self-info.h"
 #include "avatar/avatar.h"
 #include "io/input-key-acceptor.h"
 #include "player-info/alignment.h"
index c54c2de..b86b8dc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 struct self_info_type;
index 7f17a00..186f9f4 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-store.h"
+#include "view/display-store.h"
 #include "flavor/flavor-describer.h"
 #include "game-option/birth-options.h"
 #include "game-option/special-options.h"
index d3f2069..564b945 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 enum class StoreSaleType;
 class PlayerType;
index 71a9d59..262fea9 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/display-util.h"
+#include "view/display-util.h"
 #include "term/screen-processor.h"
 #include "term/term-color-types.h"
 #include "util/buffer-shaper.h"
index 629ddfc..d36ce24 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 6e17106..28af8d6 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/object-describer.h"
+#include "view/object-describer.h"
 #include "cmd-action/cmd-spell.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
@@ -71,7 +71,7 @@ void display_koff(PlayerType *player_ptr)
     }
 
     for (auto y = 0; y < game_term->hgt; y++) {
-        term_erase(0, y, 255);
+        term_erase(0, y);
     }
 
     ItemEntity item;
index b0ab659..37f7884 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 class PlayerType;
index c09d562..58059d4 100644 (file)
@@ -1,4 +1,4 @@
-#include "view/status-bars-table.h"
+#include "view/status-bars-table.h"
 #include "term/term-color-types.h"
 
 stat_bar stat_bars[MAX_STAT_BARS] = { { TERM_YELLOW, _("つ", "Ts"), _("つよし", "Tsuyoshi") }, { TERM_VIOLET, _("幻", "Ha"), _("幻覚", "Halluc") },
index 2e508de..f30750a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 74ff216..ec085c3 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @file status-first-page.c
  * @brief キャラ基本情報及び技能値の表示
  * @date 2020/02/23
index 89b7ebb..5063b0d 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #define ENTRY_BARE_HAND 0
 #define ENTRY_TWO_HANDS 1
index 4175d50..6beaa07 100644 (file)
@@ -1,5 +1,4 @@
-#include "window/display-sub-windows.h"
-#include "core/window-redrawer.h"
+#include "window/display-sub-windows.h"
 #include "flavor/flavor-describer.h"
 #include "floor/cave.h"
 #include "game-option/option-flags.h"
@@ -7,7 +6,6 @@
 #include "game-option/text-display-options.h"
 #include "grid/feature.h"
 #include "inventory/inventory-describer.h"
-#include "inventory/inventory-slot-types.h"
 #include "inventory/inventory-util.h"
 #include "locale/japanese.h"
 #include "main/sound-of-music.h"
 #include "mind/mind-sniper.h"
 #include "mind/mind-types.h"
 #include "monster-race/monster-race.h"
-#include "monster-race/race-flags1.h"
 #include "monster/monster-describer.h"
 #include "monster/monster-description-types.h"
-#include "monster/monster-flag-types.h"
-#include "monster/monster-info.h"
-#include "monster/monster-status.h"
 #include "object/item-tester-hooker.h"
 #include "object/object-info.h"
-#include "object/object-mark-types.h"
 #include "player-base/player-class.h"
 #include "player-info/class-info.h"
 #include "player/player-status-flags.h"
 #include "player/player-status-table.h"
 #include "player/player-status.h"
 #include "realm/realm-names-table.h"
-#include "spell-kind/magic-item-recharger.h"
 #include "spell/spells-execution.h"
-#include "spell/technic-info-table.h"
-#include "system/baseitem-info.h"
 #include "system/floor-type-definition.h"
 #include "system/grid-type-definition.h"
 #include "system/item-entity.h"
 #include "system/monster-entity.h"
 #include "system/monster-race-info.h"
-#include "system/player-type-definition.h"
-#include "system/redrawing-flags-updater.h"
 #include "system/terrain-type-definition.h"
-#include "target/target-describer.h"
 #include "target/target-preparation.h"
-#include "target/target-setter.h"
-#include "target/target-types.h"
 #include "term/gameterm.h"
 #include "term/screen-processor.h"
-#include "term/term-color-types.h"
-#include "term/z-form.h"
 #include "timed-effect/player-hallucination.h"
 #include "timed-effect/player-stun.h"
 #include "timed-effect/timed-effects.h"
-#include "util/bit-flags-calculator.h"
 #include "util/int-char-converter.h"
 #include "view/display-lore.h"
 #include "view/display-map.h"
@@ -149,7 +131,7 @@ static void print_monster_line(TERM_LEN x, TERM_LEN y, MonsterEntity *m_ptr, int
     MonsterRaceId r_idx = m_ptr->ap_r_idx;
     auto *r_ptr = &monraces_info[r_idx];
 
-    term_erase(0, y, 255);
+    term_erase(0, y);
     term_gotoxy(x, y);
     if (!r_ptr) {
         return;
@@ -231,7 +213,7 @@ void print_monster_list(FloorType *floor_ptr, const std::vector<MONSTER_IDX> &mo
     }
 
     for (; line < max_lines; line++) {
-        term_erase(0, line, 255);
+        term_erase(0, line);
     }
 }
 
@@ -242,7 +224,7 @@ static void print_pet_list_oneline(PlayerType *player_ptr, const MonsterEntity &
     const auto [bar_color, bar_len] = monster.get_hp_bar_data();
     const auto is_visible = monster.ml && !player_ptr->effects()->hallucination()->is_hallucinated();
 
-    term_erase(0, y, 255);
+    term_erase(0, y);
     if (is_visible) {
         term_putstr(x, y, -1, TERM_WHITE, "[----------]");
         term_putstr(x + 1, y, bar_len, bar_color, "**********");
@@ -268,14 +250,14 @@ static void print_pet_list(PlayerType *player_ptr, const std::vector<MONSTER_IDX
         print_pet_list_oneline(player_ptr, monster, x, line, width);
 
         if ((line == height - 2) && (n < pets.size() - 2)) {
-            term_erase(0, line + 1, 255);
+            term_erase(0, line + 1);
             term_putstr(x, line + 1, -1, TERM_WHITE, "-- and more --");
             break;
         }
     }
 
     for (int n = pets.size(); n < height; ++n) {
-        term_erase(0, y + n, 255);
+        term_erase(0, y + n);
     }
 }
 
@@ -290,10 +272,9 @@ void fix_monster_list(PlayerType *player_ptr)
 
     display_sub_windows(SubWindowRedrawingFlag::SIGHT_MONSTERS,
         [player_ptr, &once] {
-            int w, h;
-            term_get_size(&w, &h);
+            const auto [wid, hgt] = term_get_size();
             std::call_once(once, target_sensing_monsters_prepare, player_ptr, monster_list);
-            print_monster_list(player_ptr->current_floor_ptr, monster_list, 0, 0, h);
+            print_monster_list(player_ptr->current_floor_ptr, monster_list, 0, 0, hgt);
         });
 
     if (use_music && has_monster_music) {
@@ -309,10 +290,9 @@ void fix_pet_list(PlayerType *player_ptr)
 {
     display_sub_windows(SubWindowRedrawingFlag::PETS,
         [player_ptr] {
-            int w, h;
-            term_get_size(&w, &h);
+            const auto [wid, hgt] = term_get_size();
             const auto pets = target_pets_prepare(player_ptr);
-            print_pet_list(player_ptr, pets, 0, 0, w, h);
+            print_pet_list(player_ptr, pets, 0, 0, wid, hgt);
         });
 }
 
@@ -326,8 +306,7 @@ static void display_equipment(PlayerType *player_ptr, const ItemTester &item_tes
         return;
     }
 
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     byte attr = TERM_WHITE;
     for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
         int cur_row = i - INVEN_MAIN_HAND;
@@ -345,7 +324,7 @@ static void display_equipment(PlayerType *player_ptr, const ItemTester &item_tes
         }
 
         int cur_col = 3;
-        term_erase(cur_col, cur_row, 255);
+        term_erase(cur_col, cur_row);
         term_putstr(0, cur_row, cur_col, TERM_WHITE, tmp_val);
 
         std::string item_name;
@@ -389,7 +368,7 @@ static void display_equipment(PlayerType *player_ptr, const ItemTester &item_tes
     }
 
     for (int i = INVEN_TOTAL - INVEN_MAIN_HAND; i < hgt; i++) {
-        term_erase(0, i, 255);
+        term_erase(0, i);
     }
 }
 
@@ -429,13 +408,12 @@ void fix_message(void)
 {
     display_sub_windows(SubWindowRedrawingFlag::MESSAGE,
         [] {
-            TERM_LEN w, h;
-            term_get_size(&w, &h);
-            for (short i = 0; i < h; i++) {
-                term_putstr(0, (h - 1) - i, -1, (byte)((i < now_message) ? TERM_WHITE : TERM_SLATE), *message_str(i));
+            const auto [wid, hgt] = term_get_size();
+            for (short i = 0; i < hgt; i++) {
+                term_putstr(0, (hgt - 1) - i, -1, (byte)((i < now_message) ? TERM_WHITE : TERM_SLATE), *message_str(i));
                 TERM_LEN x, y;
                 term_locate(&x, &y);
-                term_erase(x, y, 255);
+                term_erase(x, y);
             }
         });
 }
@@ -452,8 +430,7 @@ void fix_overhead(PlayerType *player_ptr)
 {
     display_sub_windows(SubWindowRedrawingFlag::OVERHEAD,
         [player_ptr] {
-            TERM_LEN wid, hgt;
-            term_get_size(&wid, &hgt);
+            const auto [wid, hgt] = term_get_size();
             if (wid > COL_MAP + 2 && hgt > ROW_MAP + 2) {
                 int cy, cx;
                 display_map(player_ptr, &cy, &cx);
@@ -570,13 +547,8 @@ static const MonsterEntity *monster_on_floor_items(FloorType *floor_ptr, const g
  */
 static void display_floor_item_list(PlayerType *player_ptr, const int y, const int x)
 {
-    // Term の行数を取得。
-    TERM_LEN term_h;
-    {
-        TERM_LEN term_w;
-        term_get_size(&term_w, &term_h);
-    }
-    if (term_h <= 0) {
+    const auto [wid, hgt] = term_get_size();
+    if (hgt <= 0) {
         return;
     }
 
@@ -624,7 +596,7 @@ static void display_floor_item_list(PlayerType *player_ptr, const int y, const i
         }
 
         // 途中で行数が足りなくなったら最終行にその旨追記して終了。
-        if (term_y >= term_h) {
+        if (term_y >= hgt) {
             term_addstr(-1, TERM_WHITE, "-- more --");
             break;
         }
@@ -660,12 +632,8 @@ void fix_floor_item_list(PlayerType *player_ptr, const int y, const int x)
  */
 static void display_found_item_list(PlayerType *player_ptr)
 {
-    // Term の行数を取得。
-    TERM_LEN term_h;
-    TERM_LEN term_w;
-    term_get_size(&term_w, &term_h);
-
-    if (term_h <= 0) {
+    const auto [wid, hgt] = term_get_size();
+    if (hgt <= 0) {
         return;
     }
 
@@ -703,7 +671,7 @@ static void display_found_item_list(PlayerType *player_ptr)
     TERM_LEN term_y = 1;
     for (auto item : found_item_list) {
         // 途中で行数が足りなくなったら終了。
-        if (term_y >= term_h) {
+        if (term_y >= hgt) {
             break;
         }
 
@@ -721,7 +689,7 @@ static void display_found_item_list(PlayerType *player_ptr)
 
         // アイテム座標表示
         const auto item_location = format("(X:%3d Y:%3d)", item->ix, item->iy);
-        prt(item_location, term_y, term_w - item_location.length() - 1);
+        prt(item_location, term_y, wid - item_location.length() - 1);
 
         ++term_y;
     }
index d8e9729..08cdc64 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0eb3bf9..c1f1413 100644 (file)
@@ -1,4 +1,4 @@
-#include "window/main-window-equipments.h"
+#include "window/main-window-equipments.h"
 #include "flavor/flavor-describer.h"
 #include "game-option/special-options.h"
 #include "game-option/text-display-options.h"
@@ -35,15 +35,14 @@ COMMAND_CODE show_equipment(PlayerType *player_ptr, int target_item, BIT_FLAGS m
     int j, k, l;
     ItemEntity *o_ptr;
     char tmp_val[80];
-    COMMAND_CODE out_index[23];
-    TERM_COLOR out_color[23];
+    COMMAND_CODE out_index[23]{};
+    TERM_COLOR out_color[23]{};
     std::array<std::string, 23> out_desc{};
     COMMAND_CODE target_item_label = 0;
-    TERM_LEN wid, hgt;
     char equip_label[52 + 1];
-    int col = command_gap;
-    term_get_size(&wid, &hgt);
-    int len = wid - col - 1;
+    auto col = command_gap;
+    const auto [wid, hgt] = term_get_size();
+    auto len = wid - col - 1;
     for (k = 0, i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
         o_ptr = &player_ptr->inventory_list[i];
         auto only_slot = !(player_ptr->select_ring_slot ? is_ring_slot(i) : (item_tester.okay(o_ptr) || any_bits(mode, USE_FULL)));
index bc6260a..0d4dcc9 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "object/tval-types.h"
 
index 1dcab16..ae688a9 100644 (file)
@@ -1,4 +1,4 @@
-#include "window/main-window-left-frame.h"
+#include "window/main-window-left-frame.h"
 #include "game-option/special-options.h"
 #include "game-option/text-display-options.h"
 #include "market/arena-info-table.h"
@@ -174,9 +174,7 @@ void print_gold(PlayerType *player_ptr)
 void print_depth(PlayerType *player_ptr)
 {
     TERM_COLOR attr = TERM_WHITE;
-
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
+    const auto [wid, hgt] = term_get_size();
     TERM_LEN col_depth = wid + COL_DEPTH;
     TERM_LEN row_depth = hgt + ROW_DEPTH;
 
@@ -371,11 +369,9 @@ void print_health(PlayerType *player_ptr, bool riding)
         col = COL_INFO;
     }
 
-    const int max_width = 12; // 表示幅
-
-    TERM_LEN width, height;
-    term_get_size(&width, &height);
-    const auto extra_line_count = riding ? 0 : height - MAIN_TERM_MIN_ROWS;
+    const auto max_width = 12; // 表示幅
+    const auto [wid, hgt] = term_get_size();
+    const auto extra_line_count = riding ? 0 : hgt - MAIN_TERM_MIN_ROWS;
     for (auto y = row; y < row + extra_line_count + 1; ++y) {
         term_erase(col, y, max_width);
     }
index 35b8493..055fbcc 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void print_title(PlayerType *player_ptr);
index 87942a6..5103f19 100644 (file)
@@ -1,4 +1,4 @@
-#include "window/main-window-row-column.h"
+#include "window/main-window-row-column.h"
 #include "locale/language-switcher.h"
 
 const std::map<monster_timed_effect_type, std::string> effect_type_to_label = {
index 13b1efb..80e5149 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "monster/monster-timed-effect-types.h"
 #include <map>
index 9957ae2..f684b05 100644 (file)
@@ -1,4 +1,4 @@
-#include "window/main-window-stat-poster.h"
+#include "window/main-window-stat-poster.h"
 #include "io/input-key-requester.h"
 #include "mind/stances-table.h"
 #include "monster/monster-status.h"
@@ -255,10 +255,9 @@ void print_state(PlayerType *player_ptr)
  */
 void print_speed(PlayerType *player_ptr)
 {
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-    TERM_LEN col_speed = wid + COL_SPEED;
-    TERM_LEN row_speed = hgt + ROW_SPEED;
+    const auto [wid, hgt] = term_get_size();
+    auto col_speed = wid + COL_SPEED;
+    auto row_speed = hgt + ROW_SPEED;
 
     const auto speed = player_ptr->pspeed - STANDARD_SPEED;
     auto *floor_ptr = player_ptr->current_floor_ptr;
@@ -317,11 +316,9 @@ void print_speed(PlayerType *player_ptr)
  */
 void print_study(PlayerType *player_ptr)
 {
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-    TERM_LEN col_study = wid + COL_STUDY;
-    TERM_LEN row_study = hgt + ROW_STUDY;
-
+    const auto [wid, hgt] = term_get_size();
+    const auto col_study = wid + COL_STUDY;
+    const auto row_study = hgt + ROW_STUDY;
     if (player_ptr->new_spells) {
         put_str(_("学習", "Stud"), row_study, col_study);
     } else {
@@ -335,11 +332,9 @@ void print_study(PlayerType *player_ptr)
  */
 void print_imitation(PlayerType *player_ptr)
 {
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-    TERM_LEN col_study = wid + COL_STUDY;
-    TERM_LEN row_study = hgt + ROW_STUDY;
-
+    const auto [wid, hgt] = term_get_size();
+    const auto col_study = wid + COL_STUDY;
+    const auto row_study = hgt + ROW_STUDY;
     PlayerClass pc(player_ptr);
     if (!pc.equals(PlayerClassType::IMITATOR)) {
         return;
@@ -450,16 +445,11 @@ static void add_hex_status_flags(PlayerType *player_ptr, BIT_FLAGS *bar_flags)
  */
 void print_status(PlayerType *player_ptr)
 {
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-    TERM_LEN row_statbar = hgt + ROW_STATBAR;
-    TERM_LEN max_col_statbar = wid + MAX_COL_STATBAR;
-
+    const auto [wid, hgt] = term_get_size();
+    const auto row_statbar = hgt + ROW_STATBAR;
+    const auto max_col_statbar = wid + MAX_COL_STATBAR;
     term_erase(0, row_statbar, max_col_statbar);
-
-    BIT_FLAGS bar_flags[3];
-    bar_flags[0] = bar_flags[1] = bar_flags[2] = 0L;
-
+    BIT_FLAGS bar_flags[3]{};
     auto effects = player_ptr->effects();
     if (player_ptr->tsuyoshi) {
         ADD_BAR_FLAG(BAR_TSUYOSHI);
index 13bab0f..78a3075 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void print_stat(PlayerType *player_ptr, int stat);
index d7e5d0c..11e44ab 100644 (file)
@@ -1,4 +1,4 @@
-#include "window/main-window-util.h"
+#include "window/main-window-util.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "floor/cave.h"
@@ -71,9 +71,7 @@ void print_field(concptr info, TERM_LEN row, TERM_LEN col)
  */
 void print_map(PlayerType *player_ptr)
 {
-    TERM_LEN wid, hgt;
-    term_get_size(&wid, &hgt);
-
+    auto [wid, hgt] = term_get_size();
     wid -= COL_MAP + 2;
     hgt -= ROW_MAP + 2;
 
@@ -180,9 +178,8 @@ void display_map(PlayerType *player_ptr, int *cy, int *cx)
     bool old_view_special_lite = view_special_lite;
     bool old_view_granite_lite = view_granite_lite;
 
-    TERM_LEN border_width = use_bigtile ? 2 : 1; //!< @note 枠線幅
-    TERM_LEN hgt, wid, yrat, xrat;
-    term_get_size(&wid, &hgt);
+    auto border_width = use_bigtile ? 2 : 1; //!< @note 枠線幅
+    auto [wid, hgt] = term_get_size();
     hgt -= 2;
     wid -= 12 + border_width * 2; //!< @note 描画桁数(枠線抜)
     if (use_bigtile) {
@@ -190,8 +187,8 @@ void display_map(PlayerType *player_ptr, int *cy, int *cx)
     }
 
     auto *floor_ptr = player_ptr->current_floor_ptr;
-    yrat = (floor_ptr->height + hgt - 1) / hgt;
-    xrat = (floor_ptr->width + wid - 1) / wid;
+    const auto yrat = (floor_ptr->height + hgt - 1) / hgt;
+    const auto xrat = (floor_ptr->width + wid - 1) / wid;
     view_special_lite = false;
     view_granite_lite = false;
 
index 3196536..5acfee3 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 5944e1c..8639afb 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/artifact-analyzer.h"
+#include "wizard/artifact-analyzer.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "locale/japanese.h"
 #include "util/enum-range.h"
 #include "util/string-processor.h"
 #include "wizard/spoiler-util.h"
-
-/*!
- * @brief
- * @param art_flags 出力するアーティファクトの特性一覧
- * @param definitions 表記対象の特性一覧
- * @return 表記すべき特性一覧
- */
-static std::vector<std::string> extract_spoiler_flags(const TrFlags &art_flags, const std::vector<flag_desc> definitions)
-{
-    std::vector<std::string> descriptions{};
-    for (const auto &definition : definitions) {
-        if (art_flags.has(definition.flag)) {
-            descriptions.push_back(definition.desc);
-        }
-    }
-
-    return descriptions;
-}
-
-/*!
- * @brief アーティファクトの特性一覧を出力する /
- * Write a line to the spoiler file and then "underline" it with hypens
- * @param art_flags アーティファクトのフラグ群
- * @param flag_ptr フラグ記述情報の参照ポインタ
- * @param desc_ptr 記述内容を返すための文字列参照ポインタ
- * @param n_elmnts フラグの要素数
- * @return desc_ptrと同じアドレス
- * @details
- * <pre>
- * This function does most of the actual "analysis". Given a set of bit flags
- * (which will be from one of the flags fields from the object in question),
- * a "flag description structure", a "description list", and the number of
- * elements in the "flag description structure", this function sets the
- * "description list" members to the appropriate descriptions contained in
- * the "flag description structure".
- * The possibly updated description pointer is returned.
- * </pre>
- */
-static concptr *spoiler_flag_aux(const TrFlags &art_flags, const flag_desc *flag_ptr, concptr *desc_ptr, const int n_elmnts)
-{
-    for (int i = 0; i < n_elmnts; ++i) {
-        if (art_flags.has(flag_ptr[i].flag)) {
-            *desc_ptr++ = flag_ptr[i].desc;
-        }
-    }
-
-    return desc_ptr;
-}
+#include <sstream>
 
 /*!
  * @brief アイテムの特定記述内容を返す /
@@ -70,50 +23,21 @@ static concptr *spoiler_flag_aux(const TrFlags &art_flags, const flag_desc *flag
  * @param o_ptr 記述を得たいオブジェクトの参照ポインタ
  * @param desc_ptr 記述内容を返すための文字列参照ポインタ
  */
-static std::string analyze_general(PlayerType *player_ptr, ItemEntity *o_ptr)
+static std::string analyze_general(PlayerType *player_ptr, const ItemEntity *o_ptr)
 {
     return describe_flavor(player_ptr, o_ptr, OD_NAME_AND_ENCHANT | OD_STORE | OD_DEBUG);
 }
 
 /*!
- * @brief アーティファクトがプレイヤーに与えるpval修正を構造体に収める /
- * List "player traits" altered by an artifact's pval. These include stats,
- * speed, infravision, tunneling, stealth, searching, and extra attacks.
- * @param o_ptr オブジェクト構造体の参照ポインタ
- * @param pi_ptr pval修正構造体の参照ポインタ
- */
-static void analyze_pval(ItemEntity *o_ptr, pval_info_type *pi_ptr)
-{
-    concptr *affects_list;
-    if (!o_ptr->pval) {
-        pi_ptr->pval_desc[0] = '\0';
-        return;
-    }
-
-    auto flags = object_flags(o_ptr);
-    affects_list = pi_ptr->pval_affects;
-    strnfmt(pi_ptr->pval_desc, sizeof(pi_ptr->pval_desc), "%s%d", o_ptr->pval >= 0 ? "+" : "", o_ptr->pval);
-    if (flags.has_all_of(EnumRange(TR_STR, TR_CHR))) {
-        *affects_list++ = _("全能力", "All stats");
-    } else if (flags.has_any_of(EnumRange(TR_STR, TR_CHR))) {
-        affects_list = spoiler_flag_aux(flags, stat_flags_desc, affects_list, N_ELEMENTS(stat_flags_desc));
-    }
-
-    affects_list = spoiler_flag_aux(flags, pval_flags1_desc, affects_list, N_ELEMENTS(pval_flags1_desc));
-    *affects_list = nullptr;
-}
-
-/*!
  * @brief アーティファクトの種族スレイ特性を構造体に収める /
  * Note the slaying specialties of a weapon
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param slay_list 種族スレイ構造体の参照ポインタ
  */
-static void analyze_slay(ItemEntity *o_ptr, concptr *slay_list)
+static std::vector<std::string> analyze_slay(const ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
-    slay_list = spoiler_flag_aux(flags, slay_flags_desc, slay_list, N_ELEMENTS(slay_flags_desc));
-    *slay_list = nullptr;
+    return extract_spoiler_flags(flags, slay_flags_desc);
 }
 
 /*!
@@ -122,11 +46,10 @@ static void analyze_slay(ItemEntity *o_ptr, concptr *slay_list)
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param brand_list 属性ブランド構造体の参照ポインタ
  */
-static void analyze_brand(ItemEntity *o_ptr, concptr *brand_list)
+static std::vector<std::string> analyze_brand(const ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
-    brand_list = spoiler_flag_aux(flags, brand_flags_desc, brand_list, N_ELEMENTS(brand_flags_desc));
-    *brand_list = nullptr;
+    return extract_spoiler_flags(flags, brand_flags_desc);
 }
 
 /*!
@@ -135,11 +58,10 @@ static void analyze_brand(ItemEntity *o_ptr, concptr *brand_list)
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param resist_list 通常耐性構造体の参照ポインタ
  */
-static void analyze_resist(ItemEntity *o_ptr, concptr *resist_list)
+static std::vector<std::string> analyze_resist(const ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
-    resist_list = spoiler_flag_aux(flags, resist_flags_desc, resist_list, N_ELEMENTS(resist_flags_desc));
-    *resist_list = nullptr;
+    return extract_spoiler_flags(flags, resist_flags_desc);
 }
 
 /*!
@@ -148,11 +70,10 @@ static void analyze_resist(ItemEntity *o_ptr, concptr *resist_list)
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param immune_list 免疫構造体の参照ポインタ
  */
-static void analyze_immune(ItemEntity *o_ptr, concptr *immune_list)
+static std::vector<std::string> analyze_immune(const ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
-    immune_list = spoiler_flag_aux(flags, immune_flags_desc, immune_list, N_ELEMENTS(immune_flags_desc));
-    *immune_list = nullptr;
+    return extract_spoiler_flags(flags, immune_flags_desc);
 }
 
 /*!
@@ -161,11 +82,10 @@ static void analyze_immune(ItemEntity *o_ptr, concptr *immune_list)
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param immune_list 弱点構造体の参照ポインタ
  */
-static void analyze_vulnerable(ItemEntity *o_ptr, concptr *vulnerable_list)
+static std::vector<std::string> analyze_vulnerable(const ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
-    vulnerable_list = spoiler_flag_aux(flags, vulnerable_flags_desc, vulnerable_list, N_ELEMENTS(vulnerable_flags_desc));
-    *vulnerable_list = nullptr;
+    return extract_spoiler_flags(flags, vulnerable_flags_desc);
 }
 
 /*!
@@ -174,16 +94,18 @@ static void analyze_vulnerable(ItemEntity *o_ptr, concptr *vulnerable_list)
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param sustain_list 維持特性構造体の参照ポインタ
  */
-static void analyze_sustains(ItemEntity *o_ptr, concptr *sustain_list)
+static std::vector<std::string> analyze_sustains(const ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
     if (flags.has_all_of(EnumRange(TR_SUST_STR, TR_SUST_CHR))) {
-        *sustain_list++ = _("全能力", "All stats");
-    } else if (flags.has_any_of(EnumRange(TR_SUST_STR, TR_SUST_CHR))) {
-        sustain_list = spoiler_flag_aux(flags, sustain_flags_desc, sustain_list, N_ELEMENTS(sustain_flags_desc));
+        return { _("全能力", "All stats") };
+    }
+
+    if (flags.has_any_of(EnumRange(TR_SUST_STR, TR_SUST_CHR))) {
+        return extract_spoiler_flags(flags, sustain_flags_desc);
     }
 
-    *sustain_list = nullptr;
+    return {};
 }
 
 /*!
@@ -193,7 +115,7 @@ static void analyze_sustains(ItemEntity *o_ptr, concptr *sustain_list)
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param misc_list その他の特性構造体の参照ポインタ
  */
-static std::vector<std::string> analyze_misc_magic(ItemEntity *o_ptr)
+static std::vector<std::string> analyze_misc_magic(const ItemEntity *o_ptr)
 {
     std::vector<std::string> descriptions{};
     auto flags = object_flags(o_ptr);
@@ -277,33 +199,36 @@ static std::vector<std::string> analyze_misc_magic(ItemEntity *o_ptr)
  * @param addition 追加ランダム耐性構造体の参照ポインタ
  * @param addition_sz addition に書き込めるバイト数
  */
-static void analyze_addition(ItemEntity *o_ptr, char *addition, size_t addition_sz)
+static std::string analyze_addition(const ItemEntity *o_ptr)
 {
     const auto &artifact = o_ptr->get_fixed_artifact();
-    strcpy(addition, "");
-
+    std::stringstream ss;
     if (artifact.gen_flags.has_all_of({ ItemGenerationTraitType::XTRA_POWER, ItemGenerationTraitType::XTRA_H_RES })) {
-        angband_strcat(addition, _("能力and耐性", "Ability and Resistance"), addition_sz);
+        ss << _("能力and耐性", "Ability and Resistance");
     } else if (artifact.gen_flags.has(ItemGenerationTraitType::XTRA_POWER)) {
-        angband_strcat(addition, _("能力", "Ability"), addition_sz);
+        ss << _("能力", "Ability");
         if (artifact.gen_flags.has(ItemGenerationTraitType::XTRA_RES_OR_POWER)) {
-            angband_strcat(addition, _("(1/2でand耐性)", "(plus Resistance about 1/2)"), addition_sz);
+            ss << _("(1/2でand耐性)", "(plus Resistance about 1/2)");
         }
     } else if (artifact.gen_flags.has(ItemGenerationTraitType::XTRA_H_RES)) {
-        angband_strcat(addition, _("耐性", "Resistance"), addition_sz);
+        ss << _("耐性", "Resistance");
         if (artifact.gen_flags.has(ItemGenerationTraitType::XTRA_RES_OR_POWER)) {
-            angband_strcat(addition, _("(1/2でand能力)", "(plus Ability about 1/2)"), addition_sz);
+            ss << _("(1/2でand能力)", "(plus Ability about 1/2)");
         }
     } else if (artifact.gen_flags.has(ItemGenerationTraitType::XTRA_RES_OR_POWER)) {
-        angband_strcat(addition, _("能力or耐性", "Ability or Resistance"), addition_sz);
+        ss << _("能力or耐性", "Ability or Resistance");
     }
 
-    if (artifact.gen_flags.has(ItemGenerationTraitType::XTRA_DICE)) {
-        if (strlen(addition) > 0) {
-            angband_strcat(addition, _("、", ", "), addition_sz);
-        }
-        angband_strcat(addition, _("ダイス数", "Dice number"), addition_sz);
+    if (artifact.gen_flags.has_not(ItemGenerationTraitType::XTRA_DICE)) {
+        return ss.str();
     }
+
+    if (ss.tellp() > 0) {
+        ss << _("、", ", ");
+    }
+
+    ss << _("ダイス数", "Dice number");
+    return ss.str();
 }
 
 /*!
@@ -314,57 +239,57 @@ static void analyze_addition(ItemEntity *o_ptr, char *addition, size_t addition_
  * @param misc_desc 基本情報を収める文字列参照ポインタ
  * @param misc_desc_sz misc_desc に書き込めるバイト数
  */
-static void analyze_misc(ItemEntity *o_ptr, char *misc_desc, size_t misc_desc_sz)
+static std::string analyze_misc(const ItemEntity *o_ptr)
 {
     const auto &artifact = o_ptr->get_fixed_artifact();
-    const auto *mes = _("レベル %d, 希少度 %u, %d.%d kg, $%ld", "Level %d, Rarity %u, %d.%d lbs, %ld Gold");
-    strnfmt(misc_desc, misc_desc_sz, mes, (int)artifact.level, artifact.rarity,
-        _(lb_to_kg_integer(artifact.weight), artifact.weight / 10), _(lb_to_kg_fraction(artifact.weight), artifact.weight % 10), (long int)artifact.cost);
+    constexpr auto fmt = _("レベル %d, 希少度 %u, %d.%d kg, $%d", "Level %d, Rarity %u, %d.%d lbs, %d Gold");
+    const auto weight_integer = _(lb_to_kg_integer(artifact.weight), artifact.weight / 10);
+    const auto weight_fraction = _(lb_to_kg_fraction(artifact.weight), artifact.weight % 10);
+    return format(fmt, artifact.level, artifact.rarity, weight_integer, weight_fraction, artifact.cost);
 }
 
 /*!
- * @brief アーティファクトの情報全体を構造体に収める /
- * Fill in an object description structure for a given object
- * and its value in gold pieces
+ * @brief アーティファクトの情報全体を構造体に収める
  * @param player_ptr プレイヤーへの参照ポインタ
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param desc_ptr 全アーティファクト情報を収める文字列参照ポインタ
  */
-void object_analyze(PlayerType *player_ptr, ItemEntity *o_ptr, obj_desc_list *desc_ptr)
+void object_analyze(PlayerType *player_ptr, const ItemEntity *o_ptr, obj_desc_list *desc_ptr)
 {
-    angband_strcpy(desc_ptr->description, analyze_general(player_ptr, o_ptr), MAX_NLEN);
-    analyze_pval(o_ptr, &desc_ptr->pval_info);
-    analyze_brand(o_ptr, desc_ptr->brands);
-    analyze_slay(o_ptr, desc_ptr->slays);
-    analyze_immune(o_ptr, desc_ptr->immunities);
-    analyze_resist(o_ptr, desc_ptr->resistances);
-    analyze_vulnerable(o_ptr, desc_ptr->vulnerables);
-    analyze_sustains(o_ptr, desc_ptr->sustains);
+    desc_ptr->description = analyze_general(player_ptr, o_ptr);
+    desc_ptr->pval_info.analyze(*o_ptr);
+    desc_ptr->brands = analyze_brand(o_ptr);
+    desc_ptr->slays = analyze_slay(o_ptr);
+    desc_ptr->immunities = analyze_immune(o_ptr);
+    desc_ptr->resistances = analyze_resist(o_ptr);
+    desc_ptr->vulnerabilities = analyze_vulnerable(o_ptr);
+    desc_ptr->sustenances = analyze_sustains(o_ptr);
     desc_ptr->misc_magic = analyze_misc_magic(o_ptr);
-    analyze_addition(o_ptr, desc_ptr->addition, sizeof(desc_ptr->addition));
-    analyze_misc(o_ptr, desc_ptr->misc_desc, sizeof(desc_ptr->misc_desc));
+    desc_ptr->addition = analyze_addition(o_ptr);
+    desc_ptr->misc_desc = analyze_misc(o_ptr);
     desc_ptr->activation = activation_explanation(o_ptr);
 }
 
 /*!
- * @brief ランダムアーティファクト1件を解析する /
- * Fill in an object description structure for a given object
+ * @brief ランダムアーティファクト1件を解析する
  * @param player_ptr プレイヤーへの参照ポインタ
  * @param o_ptr ランダムアーティファクトのオブジェクト構造体参照ポインタ
  * @param desc_ptr 記述内容を収める構造体参照ポインタ
  */
-void random_artifact_analyze(PlayerType *player_ptr, ItemEntity *o_ptr, obj_desc_list *desc_ptr)
+void random_artifact_analyze(PlayerType *player_ptr, const ItemEntity *o_ptr, obj_desc_list *desc_ptr)
 {
-    angband_strcpy(desc_ptr->description, analyze_general(player_ptr, o_ptr), MAX_NLEN);
-    analyze_pval(o_ptr, &desc_ptr->pval_info);
-    analyze_brand(o_ptr, desc_ptr->brands);
-    analyze_slay(o_ptr, desc_ptr->slays);
-    analyze_immune(o_ptr, desc_ptr->immunities);
-    analyze_resist(o_ptr, desc_ptr->resistances);
-    analyze_vulnerable(o_ptr, desc_ptr->vulnerables);
-    analyze_sustains(o_ptr, desc_ptr->sustains);
+    desc_ptr->description = analyze_general(player_ptr, o_ptr);
+    desc_ptr->pval_info.analyze(*o_ptr);
+    desc_ptr->brands = analyze_brand(o_ptr);
+    desc_ptr->slays = analyze_slay(o_ptr);
+    desc_ptr->immunities = analyze_immune(o_ptr);
+    desc_ptr->resistances = analyze_resist(o_ptr);
+    desc_ptr->vulnerabilities = analyze_vulnerable(o_ptr);
+    desc_ptr->sustenances = analyze_sustains(o_ptr);
     desc_ptr->misc_magic = analyze_misc_magic(o_ptr);
     desc_ptr->activation = activation_explanation(o_ptr);
-    strnfmt(desc_ptr->misc_desc, sizeof(desc_ptr->misc_desc), _("重さ %d.%d kg", "Weight %d.%d lbs"), _(lb_to_kg_integer(o_ptr->weight), o_ptr->weight / 10),
-        _(lb_to_kg_fraction(o_ptr->weight), o_ptr->weight % 10));
+    constexpr auto weight_mes = _("重さ %d.%d kg", "Weight %d.%d lbs");
+    const auto weight_integer = _(lb_to_kg_integer(o_ptr->weight), o_ptr->weight / 10);
+    const auto weight_fraction = _(lb_to_kg_fraction(o_ptr->weight), o_ptr->weight % 10);
+    desc_ptr->misc_desc = format(weight_mes, weight_integer, weight_fraction);
 }
index 4c5ad17..86e511b 100644 (file)
@@ -1,7 +1,7 @@
-#pragma once
+#pragma once
 
 class ItemEntity;
 struct obj_desc_list;
 class PlayerType;
-void object_analyze(PlayerType *player_ptr, ItemEntity *o_ptr, obj_desc_list *desc_ptr);
-void random_artifact_analyze(PlayerType *player_ptr, ItemEntity *o_ptr, obj_desc_list *desc_ptr);
+void object_analyze(PlayerType *player_ptr, const ItemEntity *o_ptr, obj_desc_list *desc_ptr);
+void random_artifact_analyze(PlayerType *player_ptr, const ItemEntity *o_ptr, obj_desc_list *desc_ptr);
index 66e2ca6..54820eb 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/artifact-bias-table.h"
+#include "wizard/artifact-bias-table.h"
 
 /*!
  * @brief ランダムアーティファクトのバイアス名称テーブル
index 0fb1d03..7141e6b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "artifact/random-art-bias-types.h"
 #include "system/angband.h"
index ea57e49..c8f2227 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief デバッグコマンドの分岐実装
  * @date 2020/08/01
  * @author Hourier
@@ -293,13 +293,11 @@ bool exe_cmd_debug(PlayerType *player_ptr, char cmd)
  */
 void do_cmd_debug(PlayerType *player_ptr)
 {
-    TERM_LEN hgt, wid;
-    term_get_size(&wid, &hgt);
-
-    size_t max_line = debug_menu_table.size();
-    int page_size = hgt - 5;
-    int max_page = max_line / page_size + 1;
-    int page = 0;
+    const auto [wid, hgt] = term_get_size();
+    const auto max_line = debug_menu_table.size();
+    const auto page_size = hgt - 5;
+    const auto max_page = max_line / page_size + 1;
+    auto page = 0;
     while (true) {
         screen_save();
         display_debug_menu(page, max_page, page_size, max_line);
index b6be59a..c4be183 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void do_cmd_debug(PlayerType *player_ptr);
index 927c5a9..67adea9 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/fixed-artifacts-spoiler.h"
+#include "wizard/fixed-artifacts-spoiler.h"
 #include "io/files-util.h"
 #include "object/object-kind-hook.h"
 #include "system/angband-version.h"
@@ -10,6 +10,7 @@
 #include "view/display-messages.h"
 #include "wizard/artifact-analyzer.h"
 #include "wizard/spoiler-util.h"
+#include <sstream>
 
 /*!
  * @brief フラグ名称を出力する汎用関数
@@ -17,7 +18,7 @@
  * @param descriptions フラグ名リスト
  * @param separator フラグ表示の区切り記号
  */
-void spoiler_outlist(std::string_view header, std::vector<std::string> &descriptions, char separator)
+void spoiler_outlist(std::string_view header, const std::vector<std::string> &descriptions, char separator, std::ofstream &ofs)
 {
     if (descriptions.empty()) {
         return;
@@ -28,6 +29,9 @@ void spoiler_outlist(std::string_view header, std::vector<std::string> &descript
         line.append(header).append(" ");
     }
 
+    std::stringstream ss;
+    ss << list_separator << ' ';
+    const auto last_separator = ss.str();
     for (size_t i = 0; i < descriptions.size(); i++) {
         auto elem = descriptions[i];
         if (i < descriptions.size() - 1) {
@@ -40,100 +44,41 @@ void spoiler_outlist(std::string_view header, std::vector<std::string> &descript
             continue;
         }
 
-        if (line.length() > 1 && line[line.length() - 1] == ' ' && line[line.length() - 2] == list_separator) {
-            line[line.length() - 2] = '\0';
-            fprintf(spoiler_file, "%s\n", line.data());
+        if (line.length() > 1 && line.ends_with(last_separator)) {
+            ofs << std::string_view(line).substr(0, line.length() - 2) << '\n';
             line = spoiler_indent;
             line.append(elem);
         } else {
-            fprintf(spoiler_file, "%s\n", line.data());
+            ofs << line << '\n';
             line = "      ";
             line.append(elem);
         }
     }
 
-    fprintf(spoiler_file, "%s\n", line.data());
+    ofs << line << '\n';
 }
 
 /*!
- * @brief フラグ名称を出力する汎用関数
- * @param header ヘッダに出力するフラグ群の名前
- * @param list フラグ名リスト
- * @param separator フラグ表示の区切り記号
- * @todo 固定アーティファクトとランダムアーティファクトで共用、ここに置くべきかは要調整.
- * @todo いずれ上で定義したオーバーロードに吸収合併させてこれは消滅させる予定
- */
-void spoiler_outlist(concptr header, concptr *list, char separator)
-{
-    if (*list == nullptr) {
-        return;
-    }
-
-    std::string line = spoiler_indent;
-    if (header && (header[0])) {
-        line.append(header).append(" ");
-    }
-
-    while (true) {
-        std::string elem = *list;
-        if (list[1]) {
-            elem.push_back(separator);
-            elem.push_back(' ');
-        }
-
-        if (line.length() + elem.length() <= MAX_LINE_LEN) {
-            line.append(elem);
-        } else {
-            if (line.length() > 1 && line[line.length() - 1] == ' ' && line[line.length() - 2] == list_separator) {
-                line[line.length() - 2] = '\0';
-                fprintf(spoiler_file, "%s\n", line.data());
-                line = spoiler_indent;
-                line.append(elem);
-            } else {
-                fprintf(spoiler_file, "%s\n", line.data());
-                line = "      ";
-                line.append(elem);
-            }
-        }
-
-        if (!*++list) {
-            break;
-        }
-    }
-
-    fprintf(spoiler_file, "%s\n", line.data());
-}
-
-/*!
- * @brief アーティファクト情報を出力するためにダミー生成を行う /
- * Hack -- Create a "forged" artifact
- * @param o_ptr 一時生成先を保管するオブジェクト構造体
+ * @brief アーティファクト情報を出力するためにダミー生成を行う
  * @param fixed_artifact_idx 生成するアーティファクトID
- * @return ç\94\9fæ\88\90ã\81\8cæ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88TRUEã\82\92è¿\94ã\81\99
+ * @return ç\94\9fæ\88\90ã\81\97ã\81\9fã\82¢ã\83¼ã\83\86ã\82£ã\83\95ã\82¡ã\82¯ã\83\88 (é\80£ç\95ªã\81§å\9f\8bã\81¾ã\81£ã\81¦ã\81\84ã\82\8bã\81®ã\81§ä¸\8då­\98å\9c¨ä¾\8bå¤\96ã\81¯å\90\90ã\81\8bã\81ªã\81\84)
  */
-static bool make_fake_artifact(ItemEntity *o_ptr, FixedArtifactId fixed_artifact_idx)
+static ItemEntity make_fake_artifact(FixedArtifactId fixed_artifact_idx)
 {
     const auto &artifact = ArtifactsInfo::get_instance().get_artifact(fixed_artifact_idx);
-    if (artifact.name.empty()) {
-        return false;
-    }
-
     const auto bi_id = lookup_baseitem_id(artifact.bi_key);
-    if (bi_id == 0) {
-        return false;
-    }
-
-    o_ptr->prep(bi_id);
-    o_ptr->fixed_artifact_idx = fixed_artifact_idx;
-    o_ptr->pval = artifact.pval;
-    o_ptr->ac = artifact.ac;
-    o_ptr->dd = artifact.dd;
-    o_ptr->ds = artifact.ds;
-    o_ptr->to_a = artifact.to_a;
-    o_ptr->to_h = artifact.to_h;
-    o_ptr->to_d = artifact.to_d;
-    o_ptr->weight = artifact.weight;
-    return true;
+    ItemEntity item;
+    item.prep(bi_id);
+    item.fixed_artifact_idx = fixed_artifact_idx;
+    item.pval = artifact.pval;
+    item.ac = artifact.ac;
+    item.dd = artifact.dd;
+    item.ds = artifact.ds;
+    item.to_a = artifact.to_a;
+    item.to_h = artifact.to_h;
+    item.to_d = artifact.to_d;
+    item.weight = artifact.weight;
+    return item;
 }
 
 /*!
@@ -141,51 +86,54 @@ static bool make_fake_artifact(ItemEntity *o_ptr, FixedArtifactId fixed_artifact
  * Create a spoiler file entry for an artifact
  * @param art_ptr アーティファクト情報をまとめた構造体の参照ポインタ
  */
-static void spoiler_print_art(obj_desc_list *art_ptr)
+static void spoiler_print_art(obj_desc_list *art_ptr, std::ofstream &ofs)
 {
-    pval_info_type *pval_ptr = &art_ptr->pval_info;
-    fprintf(spoiler_file, "%s\n", art_ptr->description);
-    if (pval_ptr->pval_desc[0]) {
-        spoiler_outlist(std::string(pval_ptr->pval_desc).append(_("の修正:", " to")).data(), pval_ptr->pval_affects, item_separator);
+    const auto *pval_ptr = &art_ptr->pval_info;
+    ofs << art_ptr->description << '\n';
+    if (!pval_ptr->pval_desc.empty()) {
+        std::stringstream ss;
+        ss << pval_ptr->pval_desc << _("の修正:", " to");
+        spoiler_outlist(ss.str(), pval_ptr->pval_affects, item_separator, ofs);
     }
 
-    spoiler_outlist(_("対:", "Slay"), art_ptr->slays, item_separator);
-    spoiler_outlist(_("武器属性:", ""), art_ptr->brands, list_separator);
-    spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, item_separator);
-    spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, item_separator);
-    spoiler_outlist(_("弱点:", "Vulnerable"), art_ptr->vulnerables, item_separator);
-    spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustains, item_separator);
-    spoiler_outlist("", art_ptr->misc_magic, list_separator);
+    spoiler_outlist(_("対:", "Slay"), art_ptr->slays, item_separator, ofs);
+    spoiler_outlist(_("武器属性:", ""), art_ptr->brands, list_separator, ofs);
+    spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, item_separator, ofs);
+    spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, item_separator, ofs);
+    spoiler_outlist(_("弱点:", "Vulnerable"), art_ptr->vulnerabilities, item_separator, ofs);
+    spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustenances, item_separator, ofs);
+    spoiler_outlist("", art_ptr->misc_magic, list_separator, ofs);
 
-    if (art_ptr->addition[0]) {
-        fprintf(spoiler_file, _("%s追加: %s\n", "%sAdditional %s\n"), spoiler_indent, art_ptr->addition);
+    if (!art_ptr->addition.empty()) {
+        ofs << format(_("%s追加: %s\n", "%sAdditional %s\n"), spoiler_indent.data(), art_ptr->addition.data());
     }
 
-    if (art_ptr->activation) {
-        fprintf(spoiler_file, _("%s発動: %s\n", "%sActivates for %s\n"), spoiler_indent, art_ptr->activation);
+    if (!art_ptr->activation.empty()) {
+        ofs << format(_("%s発動: %s\n", "%sActivates for %s\n"), spoiler_indent.data(), art_ptr->activation.data());
     }
 
-    fprintf(spoiler_file, "%s%s\n\n", spoiler_indent, art_ptr->misc_desc);
+    ofs << format("%s%s\n\n", spoiler_indent.data(), art_ptr->misc_desc.data());
 }
 
 /*!
- * @brief アーティファクト情報のスポイラー出力を行うメインルーチン /
- * Create a spoiler file for artifacts
- * @param fname 生成ファイル名
+ * @brief アーティファクト情報のスポイラー出力を行うメインルーチン
+ * @details エラーコードと実際のエラー処理が不一致だが、後でまとめて修正する.
  */
-SpoilerOutputResultType spoil_fixed_artifact(concptr fname)
+SpoilerOutputResultType spoil_fixed_artifact()
 {
-    const auto &path = path_build(ANGBAND_DIR_USER, fname);
-    spoiler_file = angband_fopen(path, FileOpenMode::WRITE);
-    if (!spoiler_file) {
+    const auto &path = path_build(ANGBAND_DIR_USER, "artifact.txt");
+    std::ofstream ofs(path);
+    if (!ofs) {
         return SpoilerOutputResultType::FILE_OPEN_FAILED;
     }
 
-    spoiler_underline(std::string("Artifact Spoilers for Hengband Version ").append(get_version()).data());
+    std::stringstream ss;
+    ss << "Artifact Spoilers for Hengband Version " << get_version();
+    spoiler_underline(ss.str(), ofs);
     for (const auto &[tval_list, name] : group_artifact_list) {
-        spoiler_blanklines(2);
-        spoiler_underline(name);
-        spoiler_blanklines(1);
+        spoiler_blanklines(2, ofs);
+        spoiler_underline(name, ofs);
+        spoiler_blanklines(1, ofs);
 
         for (auto tval : tval_list) {
             for (const auto &[a_idx, artifact] : artifacts_info) {
@@ -193,19 +141,14 @@ SpoilerOutputResultType spoil_fixed_artifact(concptr fname)
                     continue;
                 }
 
-                ItemEntity item;
-                if (!make_fake_artifact(&item, a_idx)) {
-                    continue;
-                }
-
+                const auto item = make_fake_artifact(a_idx);
                 PlayerType dummy;
                 obj_desc_list artifact_descriptions;
                 object_analyze(&dummy, &item, &artifact_descriptions);
-                spoiler_print_art(&artifact_descriptions);
+                spoiler_print_art(&artifact_descriptions, ofs);
             }
         }
     }
 
-    return ferror(spoiler_file) || angband_fclose(spoiler_file) ? SpoilerOutputResultType::FILE_CLOSE_FAILED
-                                                                : SpoilerOutputResultType::SUCCESSFUL;
+    return ofs.good() ? SpoilerOutputResultType::SUCCESSFUL : SpoilerOutputResultType::FILE_CLOSE_FAILED;
 }
index e24ad63..079ba8c 100644 (file)
@@ -1,8 +1,10 @@
-#pragma once
+#pragma once
 
-#include "system/angband.h"
-#include "wizard/spoiler-util.h"
+#include <fstream>
+#include <string>
+#include <string_view>
+#include <vector>
 
-void spoiler_outlist(std::string_view header, std::vector<std::string> &descriptions, char seperator);
-void spoiler_outlist(concptr header, concptr *list, char separator);
-SpoilerOutputResultType spoil_fixed_artifact(concptr fname);
+enum class SpoilerOutputResultType;
+void spoiler_outlist(std::string_view header, const std::vector<std::string> &descriptions, char seperator, std::ofstream &ofs);
+SpoilerOutputResultType spoil_fixed_artifact();
index b2c6125..239acf6 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/items-spoiler.h"
+#include "wizard/items-spoiler.h"
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "io/files-util.h"
@@ -113,21 +113,19 @@ static ItemEntity prepare_item_for_obj_desc(short bi_id)
 }
 
 /*!
- * @brief 各ベースアイテムの情報を一行毎に記述する /
- * Create a spoiler file for items
- * @param fname ファイル名
+ * @brief 各ベースアイテムの情報を一行毎に記述する
  */
-SpoilerOutputResultType spoil_obj_desc(concptr fname)
+SpoilerOutputResultType spoil_obj_desc()
 {
-    const auto &path = path_build(ANGBAND_DIR_USER, fname);
-    spoiler_file = angband_fopen(path, FileOpenMode::WRITE);
-    if (!spoiler_file) {
+    const auto &path = path_build(ANGBAND_DIR_USER, "obj-desc.txt");
+    std::ofstream ofs(path);
+    if (!ofs) {
         return SpoilerOutputResultType::FILE_OPEN_FAILED;
     }
 
-    fprintf(spoiler_file, "Spoiler File -- Basic Items (%s)\n\n\n", get_version().data());
-    fprintf(spoiler_file, "%-37s%8s%7s%5s %40s%9s\n", "Description", "Dam/AC", "Wgt", "Lev", "Chance", "Cost");
-    fprintf(spoiler_file, "%-37s%8s%7s%5s %40s%9s\n", "-------------------------------------", "------", "---", "---", "----------------", "----");
+    ofs << format("Spoiler File -- Basic Items (%s)\n\n\n", get_version().data());
+    ofs << format("%-37s%8s%7s%5s %40s%9s\n", "Description", "Dam/AC", "Wgt", "Lev", "Chance", "Cost");
+    ofs << format("%-37s%8s%7s%5s %40s%9s\n", "-------------------------------------", "------", "---", "---", "----------------", "----");
 
     for (const auto &[tval_list, name] : group_item_list) {
         std::vector<short> whats;
@@ -150,7 +148,8 @@ SpoilerOutputResultType spoil_obj_desc(concptr fname)
             return (price1 != price2) ? price1 < price2 : depth1 < depth2;
         });
 
-        fprintf(spoiler_file, "\n\n%s\n\n", name);
+        ofs << "\n\n"
+            << name << "\n\n";
         for (const auto &bi_id : whats) {
             PlayerType dummy;
             const auto item = prepare_item_for_obj_desc(bi_id);
@@ -159,12 +158,9 @@ SpoilerOutputResultType spoil_obj_desc(concptr fname)
             const auto dam_or_ac = describe_dam_or_ac(item);
             const auto weight = describe_weight(item);
             const auto chance = describe_chance(item);
-            fprintf(spoiler_file, "  %-35s%8s%7s%5d %-40s%9ld\n", item_name.data(),
-                dam_or_ac.data(), weight.data(), static_cast<int>(depth), chance.data(),
-                static_cast<long>(price));
+            ofs << format("  %-35s%8s%7s%5d %-40s%9d\n", item_name.data(), dam_or_ac.data(), weight.data(), depth, chance.data(), price);
         }
     }
 
-    return ferror(spoiler_file) || angband_fclose(spoiler_file) ? SpoilerOutputResultType::FILE_CLOSE_FAILED
-                                                                : SpoilerOutputResultType::SUCCESSFUL;
+    return ofs.good() ? SpoilerOutputResultType::SUCCESSFUL : SpoilerOutputResultType::FILE_CLOSE_FAILED;
 }
index 59e503b..e7236d7 100644 (file)
@@ -1,6 +1,4 @@
-#pragma once
+#pragma once
 
-#include "system/angband.h"
-#include "wizard/spoiler-util.h"
-
-SpoilerOutputResultType spoil_obj_desc(concptr fname);
+enum class SpoilerOutputResultType;
+SpoilerOutputResultType spoil_obj_desc();
index a123d7a..47eee47 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/monster-info-spoiler.h"
+#include "wizard/monster-info-spoiler.h"
 #include "io/files-util.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
index a9670c4..b86f8c5 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "wizard/spoiler-util.h"
index 6bbda31..7fcbbea 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/spoiler-table.h"
+#include "wizard/spoiler-table.h"
 
 /* The basic items categorized by type */
 const std::vector<grouper> group_item_list = {
@@ -67,15 +67,15 @@ const std::vector<grouper> group_artifact_list = {
     { { ItemKindType::RING }, _("指輪", "Rings") },
 };
 
-flag_desc stat_flags_desc[MAX_STAT_FLAGS_DESCRIPTION] = { { TR_STR, _("腕力", "STR") }, { TR_INT, _("知能", "INT") }, { TR_WIS, _("賢さ", "WIS") },
+const std::vector<flag_desc> stat_flags_desc = { { TR_STR, _("腕力", "STR") }, { TR_INT, _("知能", "INT") }, { TR_WIS, _("賢さ", "WIS") },
     { TR_DEX, _("器用さ", "DEX") },
     { TR_CON, _("耐久力", "CON") }, { TR_CHR, _("魅力", "CHR") } };
 
-flag_desc pval_flags1_desc[MAX_PVAL_FLAGS_DESCRIPTION] = { { TR_MAGIC_MASTERY, _("魔法道具使用能力", "Magic Mastery") }, { TR_STEALTH, _("隠密", "Stealth") },
+const std::vector<flag_desc> pval_flags1_desc = { { TR_MAGIC_MASTERY, _("魔法道具使用能力", "Magic Mastery") }, { TR_STEALTH, _("隠密", "Stealth") },
     { TR_SEARCH, _("探索", "Searching") }, { TR_INFRA, _("赤外線視力", "Infravision") }, { TR_TUNNEL, _("採掘", "Tunneling") },
     { TR_BLOWS, _("攻撃回数", "Attacks") }, { TR_SPEED, _("スピード", "Speed") } };
 
-flag_desc slay_flags_desc[MAX_SLAY_FLAGS_DESCRIPTION] = {
+const std::vector<flag_desc> slay_flags_desc = {
     { TR_SLAY_ANIMAL, _("動物", "Animal") },
     { TR_KILL_ANIMAL, _("*動物*", "XAnimal") },
     { TR_SLAY_EVIL, _("邪悪", "Evil") },
@@ -99,7 +99,7 @@ flag_desc slay_flags_desc[MAX_SLAY_FLAGS_DESCRIPTION] = {
 };
 
 /* Elemental brands for weapons */
-flag_desc brand_flags_desc[MAX_BRAND_FLAGS_DESCRIPTION] = {
+const std::vector<flag_desc> brand_flags_desc = {
     { TR_BRAND_ACID, _("溶解", "Acid Brand") },
     { TR_BRAND_ELEC, _("電撃", "Lightning Brand") },
     { TR_BRAND_FIRE, _("焼棄", "Flame Tongue") },
@@ -114,7 +114,7 @@ flag_desc brand_flags_desc[MAX_BRAND_FLAGS_DESCRIPTION] = {
     { TR_IMPACT, _("強撃", "Smash hit") },
 };
 
-const flag_desc resist_flags_desc[MAX_RESISTANCE_FLAGS_DESCRIPTION] = {
+const std::vector<flag_desc> resist_flags_desc = {
     { TR_RES_ACID, _("酸", "Acid") },
     { TR_RES_ELEC, _("電撃", "Lightning") },
     { TR_RES_FIRE, _("火炎", "Fire") },
@@ -136,7 +136,7 @@ const flag_desc resist_flags_desc[MAX_RESISTANCE_FLAGS_DESCRIPTION] = {
     { TR_RES_CURSE, _("呪力", "Curse") },
 };
 
-const flag_desc vulnerable_flags_desc[MAX_VULNERABLE_FLAGS_DESCRIPTION] = {
+const std::vector<flag_desc> vulnerable_flags_desc = {
     { TR_VUL_ACID, _("酸", "Acid") },
     { TR_VUL_ELEC, _("電撃", "Lightning") },
     { TR_VUL_FIRE, _("火炎", "Fire") },
@@ -146,7 +146,7 @@ const flag_desc vulnerable_flags_desc[MAX_VULNERABLE_FLAGS_DESCRIPTION] = {
 };
 
 /* Elemental immunities (along with poison) */
-const flag_desc immune_flags_desc[MAX_IMMUNITY_FLAGS_DESCRIPTION] = {
+const std::vector<flag_desc> immune_flags_desc = {
     { TR_IM_ACID, _("酸", "Acid") },
     { TR_IM_ELEC, _("電撃", "Lightning") },
     { TR_IM_FIRE, _("火炎", "Fire") },
@@ -154,7 +154,7 @@ const flag_desc immune_flags_desc[MAX_IMMUNITY_FLAGS_DESCRIPTION] = {
 };
 
 /* Sustain stats -  these are given their "own" line in the spoiler file, mainly for simplicity */
-const flag_desc sustain_flags_desc[MAX_SUSTAINER_FLAGS_DESCRIPTION] = {
+const std::vector<flag_desc> sustain_flags_desc = {
     { TR_SUST_STR, _("腕力", "STR") },
     { TR_SUST_INT, _("知能", "INT") },
     { TR_SUST_WIS, _("賢さ", "WIS") },
index 72f51eb..5b4387a 100644 (file)
@@ -1,20 +1,10 @@
-#pragma once
+#pragma once
 
 #include "object-enchant/tr-types.h"
 #include "object/tval-types.h"
 #include "system/angband.h"
-
 #include <vector>
 
-#define MAX_STAT_FLAGS_DESCRIPTION 6
-#define MAX_PVAL_FLAGS_DESCRIPTION 7
-#define MAX_SLAY_FLAGS_DESCRIPTION 20
-#define MAX_BRAND_FLAGS_DESCRIPTION 12
-#define MAX_RESISTANCE_FLAGS_DESCRIPTION 19
-#define MAX_VULNERABLE_FLAGS_DESCRIPTION 6
-#define MAX_IMMUNITY_FLAGS_DESCRIPTION 4
-#define MAX_SUSTAINER_FLAGS_DESCRIPTION 6
-
 /* A tval grouper */
 struct grouper {
     std::vector<ItemKindType> tval_set;
@@ -34,13 +24,13 @@ struct flag_desc {
 
 extern const std::vector<grouper> group_item_list;
 extern const std::vector<grouper> group_artifact_list;
-extern flag_desc stat_flags_desc[MAX_STAT_FLAGS_DESCRIPTION];
-extern flag_desc pval_flags1_desc[MAX_PVAL_FLAGS_DESCRIPTION];
-extern flag_desc slay_flags_desc[MAX_SLAY_FLAGS_DESCRIPTION];
-extern flag_desc brand_flags_desc[MAX_BRAND_FLAGS_DESCRIPTION];
-extern const flag_desc resist_flags_desc[MAX_RESISTANCE_FLAGS_DESCRIPTION];
-extern const flag_desc vulnerable_flags_desc[MAX_VULNERABLE_FLAGS_DESCRIPTION];
-extern const flag_desc immune_flags_desc[MAX_IMMUNITY_FLAGS_DESCRIPTION];
-extern const flag_desc sustain_flags_desc[MAX_SUSTAINER_FLAGS_DESCRIPTION];
+extern const std::vector<flag_desc> stat_flags_desc;
+extern const std::vector<flag_desc> pval_flags1_desc;
+extern const std::vector<flag_desc> slay_flags_desc;
+extern const std::vector<flag_desc> brand_flags_desc;
+extern const std::vector<flag_desc> resist_flags_desc;
+extern const std::vector<flag_desc> vulnerable_flags_desc;
+extern const std::vector<flag_desc> immune_flags_desc;
+extern const std::vector<flag_desc> sustain_flags_desc;
 extern const std::vector<flag_desc> misc_flags2_desc;
 extern const std::vector<flag_desc> misc_flags3_desc;
index e04e6e3..27dd440 100644 (file)
@@ -1,23 +1,44 @@
-#include "wizard/spoiler-util.h"
+#include "wizard/spoiler-util.h"
+#include "object/object-flags.h"
+#include "system/item-entity.h"
+#include <fstream>
 
 const char item_separator = ',';
 const char list_separator = _(',', ';');
 const int max_evolution_depth = 64;
-concptr spoiler_indent = "    ";
+const std::string spoiler_indent = "    ";
 
 /* The spoiler file being created */
 FILE *spoiler_file = nullptr;
 
 /*!
+ * @brief 特性フラグ定義から表記すべき特性を抽出する
+ * @param art_flags 出力するアーティファクトの特性一覧
+ * @param definitions 表記対象の特性一覧
+ * @return 表記すべき特性一覧
+ */
+std::vector<std::string> extract_spoiler_flags(const TrFlags &art_flags, const std::vector<flag_desc> &definitions)
+{
+    std::vector<std::string> descriptions{};
+    for (const auto &definition : definitions) {
+        if (art_flags.has(definition.flag)) {
+            descriptions.push_back(definition.desc);
+        }
+    }
+
+    return descriptions;
+}
+
+/*!
  * @brief ファイルポインタ先に同じ文字を複数出力する /
  * Write out `n' of the character `c' to the spoiler file
  * @param n 出力する数
  * @param c 出力するキャラクタ
  */
-static void spoiler_out_n_chars(int n, char c)
+static void spoiler_out_n_chars(int n, char c, std::ofstream &ofs)
 {
-    while (--n >= 0) {
-        fputc(c, spoiler_file);
+    for (auto i = 0; i < n; i++) {
+        ofs << c;
     }
 }
 
@@ -26,9 +47,9 @@ static void spoiler_out_n_chars(int n, char c)
  * Write out `n' blank lines to the spoiler file
  * @param n 改行を出力する数
  */
-void spoiler_blanklines(int n)
+void spoiler_blanklines(int n, std::ofstream &ofs)
 {
-    spoiler_out_n_chars(n, '\n');
+    spoiler_out_n_chars(n, '\n', ofs);
 }
 
 /*!
@@ -36,11 +57,11 @@ void spoiler_blanklines(int n)
  * Write a line to the spoiler file and then "underline" it with hypens
  * @param str 出力したい文字列
  */
-void spoiler_underline(concptr str)
+void spoiler_underline(std::string_view str, std::ofstream &ofs)
 {
-    fprintf(spoiler_file, "%s\n", str);
-    spoiler_out_n_chars(strlen(str), '-');
-    fprintf(spoiler_file, "\n");
+    ofs << str.data() << '\n';
+    spoiler_out_n_chars(str.length(), '-', ofs);
+    ofs << '\n';
 }
 
 /*!
@@ -222,3 +243,22 @@ void spoil_out(std::string_view sv, bool flush_buffer)
         *roff_p++ = ch;
     }
 }
+
+void ParameterValueInfo::analyze(const ItemEntity &item)
+{
+    if (item.pval == 0) {
+        return;
+    }
+
+    auto flags = object_flags(&item);
+    this->pval_desc = format("%+d", item.pval);
+    if (flags.has_all_of(EnumRange(TR_STR, TR_CHR))) {
+        this->pval_affects.push_back(_("全能力", "All stats"));
+    } else if (flags.has_any_of(EnumRange(TR_STR, TR_CHR))) {
+        const auto descriptions_stat = extract_spoiler_flags(flags, stat_flags_desc);
+        this->pval_affects.insert(this->pval_affects.end(), descriptions_stat.begin(), descriptions_stat.end());
+    }
+
+    const auto descriptions_pval1 = extract_spoiler_flags(flags, pval_flags1_desc);
+    this->pval_affects.insert(this->pval_affects.end(), descriptions_pval1.begin(), descriptions_pval1.end());
+}
index b6cbb56..ce7f97f 100644 (file)
@@ -1,7 +1,9 @@
-#pragma once
+#pragma once
 
+#include "object-enchant/tr-flags.h"
 #include "system/angband.h"
 #include "wizard/spoiler-table.h"
+#include <fstream>
 #include <string>
 #include <string_view>
 #include <vector>
@@ -9,9 +11,6 @@
 /* MAX_LINE_LEN specifies when a line should wrap. */
 #define MAX_LINE_LEN 75
 
-/* Given an array, determine how many elements are in the array */
-#define N_ELEMENTS(a) (sizeof(a) / sizeof((a)[0]))
-
 enum class SpoilerOutputResultType {
     CANCELED,
     SUCCESSFUL,
@@ -19,36 +18,43 @@ enum class SpoilerOutputResultType {
     FILE_CLOSE_FAILED,
 };
 
-/* A special type used just for deailing with pvals */
-struct pval_info_type {
-    char pval_desc[12]; /* This will contain a string such as "+2", "-10", etc. */
+class ItemEntity;
+class ParameterValueInfo {
+public:
+    ParameterValueInfo() = default;
+
+    std::string pval_desc = ""; /* This will contain a string such as "+2", "-10", etc. */
 
     /* A list of various player traits affected by an object's pval such as stats, speed, stealth, etc. */
-    concptr pval_affects[N_ELEMENTS(stat_flags_desc) - 1 + N_ELEMENTS(pval_flags1_desc) + 1];
+    std::vector<std::string> pval_affects{};
+
+    void analyze(const ItemEntity &item);
 };
 
 struct obj_desc_list {
-    char description[MAX_NLEN]{}; /* "The Longsword Dragonsmiter (6d4) (+20, +25)" */
-    pval_info_type pval_info{}; /* Description of what is affected by an object's pval */
-    concptr slays[N_ELEMENTS(slay_flags_desc) + 1]{}; /* A list of an object's slaying preferences */
-    concptr brands[N_ELEMENTS(brand_flags_desc) + 1]{}; /* A list if an object's elemental brands */
-    concptr immunities[N_ELEMENTS(immune_flags_desc) + 1]{}; /* A list of immunities granted by an object */
-    concptr resistances[N_ELEMENTS(resist_flags_desc) + 1]{}; /* A list of resistances granted by an object */
-    concptr vulnerables[N_ELEMENTS(vulnerable_flags_desc) + 1]{}; /* A list of resistances granted by an object */
-    concptr sustains[N_ELEMENTS(sustain_flags_desc) - 1 + 1]{}; /* A list of stats sustained by an object */
+    std::string description = ""; /* "The Longsword Dragonsmiter (6d4) (+20, +25)" */
+    ParameterValueInfo pval_info{}; /* Description of what is affected by an object's pval */
+    std::vector<std::string> slays{}; /* A list of an object's slaying preferences */
+    std::vector<std::string> brands{}; /* A list if an object's elemental brands */
+    std::vector<std::string> immunities{}; /* A list of immunities granted by an object */
+    std::vector<std::string> resistances{}; /* A list of resistances granted by an object */
+    std::vector<std::string> vulnerabilities{}; /* A list of resistances granted by an object */
+    std::vector<std::string> sustenances{}; /* A list of stats sustained by an object */
     std::vector<std::string> misc_magic{}; // その他の特性 (呪い、光源範囲等)
 
-    char addition[80] = ""; /* Additional ability or resistance */
-    concptr activation = ""; /* A string describing an artifact's activation */
-    char misc_desc[80] = ""; /* "Level 20, Rarity 30, 3.0 lbs, 20000 Gold" */
+    std::string addition = ""; /* Additional ability or resistance */
+    std::string activation = ""; /* A string describing an artifact's activation */
+    std::string misc_desc = ""; /* "Level 20, Rarity 30, 3.0 lbs, 20000 Gold" */
 };
 
 extern const char item_separator;
 extern const char list_separator;
 extern const int max_evolution_depth;
-extern concptr spoiler_indent;
+extern const std::string spoiler_indent;
 extern FILE *spoiler_file;
 
-void spoiler_blanklines(int n);
-void spoiler_underline(concptr str);
+struct flag_desc;
+std::vector<std::string> extract_spoiler_flags(const TrFlags &art_flags, const std::vector<flag_desc> &definitions);
+void spoiler_blanklines(int n, std::ofstream &ofs);
+void spoiler_underline(std::string_view str, std::ofstream &ofs);
 void spoil_out(std::string_view sv, bool flush_buffer = false);
index 0b57c44..d025f5c 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/tval-descriptions-table.h"
+#include "wizard/tval-descriptions-table.h"
 #include "object/tval-types.h"
 
 /*!
index 0a2a2ce..32e3828 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <vector>
index 62e9ca0..df69d12 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ゲーム属性を変更するデバッグコマンド
  * @date 2021/03/07
  */
index 4fa26f0..5d15e26 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void wizard_game_modifier(PlayerType *player_ptr);
index f048045..357a280 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/wizard-item-modifier.h"
+#include "wizard/wizard-item-modifier.h"
 #include "artifact/fixed-art-generator.h"
 #include "artifact/fixed-art-types.h"
 #include "artifact/random-art-effects.h"
index 1748419..14029ae 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 09a27da..cf70a8b 100644 (file)
@@ -1,4 +1,4 @@
-#include "wizard/wizard-messages.h"
+#include "wizard/wizard-messages.h"
 #include "game-option/cheat-options.h"
 #include "game-option/cheat-types.h"
 #include "io/write-diary.h"
index b15de93..c58ffef 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include <string_view>
index 2ff91e3..0cebb6a 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief プレイヤー属性を変更するデバッグコマンド
  * @date 2021/03/07
  */
index 5f0b764..9f6f03a 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void wizard_player_modifier(PlayerType *player_ptr);
index aa2797f..3b9c5cd 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ウィザードモードの処理(特別処理中心) / Wizard commands
  * @date 2014/09/07
  * @author
@@ -92,6 +92,7 @@
 #include "term/z-form.h"
 #include "util/angband-files.h"
 #include "util/bit-flags-calculator.h"
+#include "util/candidate-selector.h"
 #include "util/enum-converter.h"
 #include "util/finalizer.h"
 #include "util/int-char-converter.h"
@@ -285,53 +286,11 @@ static std::string wiz_make_named_artifact_desc(PlayerType *player_ptr, FixedArt
  */
 static std::optional<FixedArtifactId> wiz_select_named_artifact(PlayerType *player_ptr, const std::vector<FixedArtifactId> &a_idx_list)
 {
-    constexpr auto MAX_PER_PAGE = 20UL;
-    const auto page_max = (a_idx_list.size() - 1) / MAX_PER_PAGE + 1;
-    auto current_page = 0UL;
-
-    screen_save();
-
-    std::optional<FixedArtifactId> selected_a_idx;
-
-    while (!selected_a_idx.has_value()) {
-        const auto page_base_idx = current_page * MAX_PER_PAGE;
-        for (auto i = 0U; i < MAX_PER_PAGE + 1; ++i) {
-            term_erase(14, i + 1, 255);
-        }
-        const auto page_item_count = std::min(MAX_PER_PAGE, a_idx_list.size() - page_base_idx);
-        for (auto i = 0U; i < page_item_count; ++i) {
-            std::stringstream ss;
-            ss << I2A(i) << ") " << wiz_make_named_artifact_desc(player_ptr, a_idx_list[page_base_idx + i]);
-            put_str(ss.str(), i + 1, 15);
-        }
-        if (page_max > 1) {
-            put_str(format("-- more (%lu/%lu) --", current_page + 1, page_max), page_item_count + 1, 15);
-        }
+    CandidateSelector cs("Which artifact: ", 15);
 
-        const auto command = input_command("Which artifact: ");
-        const auto cmd = command.value_or(ESCAPE);
-        switch (cmd) {
-        case ESCAPE:
-            screen_load();
-            return selected_a_idx;
-        case ' ':
-            current_page++;
-            if (current_page >= page_max) {
-                current_page = 0;
-            }
-            break;
-        default:
-            const auto select_idx = A2I(cmd) + page_base_idx;
-            if (select_idx < a_idx_list.size()) {
-                selected_a_idx = a_idx_list[select_idx];
-            }
-            break;
-        }
-    }
-
-    screen_load();
-
-    return selected_a_idx;
+    auto describe_artifact = [player_ptr](FixedArtifactId a_idx) { return wiz_make_named_artifact_desc(player_ptr, a_idx); };
+    const auto it = cs.select(a_idx_list, describe_artifact);
+    return (it != a_idx_list.end()) ? std::make_optional(*it) : std::nullopt;
 }
 
 /**
@@ -365,26 +324,25 @@ void wiz_create_named_art(PlayerType *player_ptr)
         const auto &[tval_lit, name] = group_artifact_list[i];
         std::stringstream ss;
         ss << I2A(i) << ") " << name;
-        term_erase(14, i + 1, 255);
+        term_erase(14, i + 1);
         put_str(ss.str(), i + 1, 15);
     }
 
     std::optional<FixedArtifactId> create_a_idx;
-    while (!create_a_idx.has_value()) {
+    while (!create_a_idx) {
         const auto command = input_command("Kind of artifact: ");
-        const auto cmd = command.value_or(ESCAPE);
-        switch (cmd) {
-        case ESCAPE:
+        if (!command) {
             screen_load();
             return;
-        default:
-            if (auto idx = A2I(cmd); idx < group_artifact_list.size()) {
-                const auto &a_idx_list = wiz_collect_group_a_idx(group_artifact_list[idx]);
-                create_a_idx = wiz_select_named_artifact(player_ptr, a_idx_list);
-            }
+        }
 
-            break;
+        const auto idx = A2I(*command);
+        if (idx >= group_artifact_list.size()) {
+            continue;
         }
+
+        const auto a_idx_list = wiz_collect_group_a_idx(group_artifact_list[idx]);
+        create_a_idx = wiz_select_named_artifact(player_ptr, a_idx_list);
     }
 
     screen_load();
index 41d2ae3..b6f056b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 0e5c187..2cc39f1 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief ウィザードモード専用のスペル処理
  * @date 2020/06/27
  * @author Hourier
index e09014b..cfe5513 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "effect/attribute-types.h"
 #include "system/angband.h"
index 802a2c5..9332e47 100644 (file)
@@ -1,4 +1,4 @@
-/*!
+/*!
  * @brief スポイラー出力処理 (行数の都合でモンスター進化ツリーもここに入っている)
  * @date 2014/02/17
  * @author
@@ -47,6 +47,7 @@
 #include <set>
 #include <sstream>
 #include <string>
+#include <string_view>
 
 static constexpr std::array<std::string_view, 6> wiz_spell_stat = { {
     _("腕力", "STR"),
@@ -62,7 +63,7 @@ static constexpr std::array<std::string_view, 6> wiz_spell_stat = { {
  *
  * @return 進化ツリーの一番根元となるモンスターのIDのリスト(std::setで、evol_root_sortによりソートされている)
  */
-static auto get_mon_evol_roots(void)
+static auto get_mon_evol_roots()
 {
     std::set<MonsterRaceId> evol_parents;
     std::set<MonsterRaceId> evol_children;
@@ -93,13 +94,12 @@ static auto get_mon_evol_roots(void)
 }
 
 /*!
- * @brief 進化ツリーをスポイラー出力するメインルーチン /
- * Print monsters' evolution information to file
- * @param fname 出力ファイル名
+ * @brief 進化ツリーをスポイラー出力するメインルーチン
+ * @param filename 出力ファイル名
  */
-static SpoilerOutputResultType spoil_mon_evol(concptr fname)
+static SpoilerOutputResultType spoil_mon_evol(std::string_view filename)
 {
-    const auto &path = path_build(ANGBAND_DIR_USER, fname);
+    const auto &path = path_build(ANGBAND_DIR_USER, filename);
     spoiler_file = angband_fopen(path, FileOpenMode::WRITE);
     if (!spoiler_file) {
         return SpoilerOutputResultType::FILE_OPEN_FAILED;
@@ -252,10 +252,10 @@ void exe_output_spoilers(void)
             screen_load();
             return;
         case '1':
-            status = spoil_obj_desc("obj-desc.txt");
+            status = spoil_obj_desc();
             break;
         case '2':
-            status = spoil_fixed_artifact("artifact.txt");
+            status = spoil_fixed_artifact();
             break;
         case '3':
             status = spoil_mon_desc("mon-desc.txt");
@@ -299,14 +299,14 @@ void exe_output_spoilers(void)
  * Create Spoiler files -BEN-
  * @return 成功時SPOILER_OUTPUT_SUCCESS / 失敗時エラー状態
  */
-SpoilerOutputResultType output_all_spoilers(void)
+SpoilerOutputResultType output_all_spoilers()
 {
-    auto status = spoil_obj_desc("obj-desc.txt");
+    auto status = spoil_obj_desc();
     if (status != SpoilerOutputResultType::SUCCESSFUL) {
         return status;
     }
 
-    status = spoil_fixed_artifact("artifact.txt");
+    status = spoil_fixed_artifact();
     if (status != SpoilerOutputResultType::SUCCESSFUL) {
         return status;
     }
index db8d56b..106afa7 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index ef47ea8..5615016 100644 (file)
@@ -1,4 +1,4 @@
-#include "world/world-movement-processor.h"
+#include "world/world-movement-processor.h"
 #include "cmd-io/cmd-save.h"
 #include "core/disturbance.h"
 #include "dungeon/quest.h"
index 9f4cb7e..177c15b 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 void check_random_quest_auto_failure(PlayerType *player_ptr);
index 99d2ecb..34351dc 100644 (file)
@@ -1,4 +1,4 @@
-#include "world/world-object.h"
+#include "world/world-object.h"
 #include "dungeon/dungeon-flag-types.h"
 #include "object-enchant/item-apply-magic.h"
 #include "object/tval-types.h"
index 75e4e93..9448d29 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 
index 74a4760..e983e8e 100644 (file)
@@ -1,4 +1,4 @@
-#include "world/world-turn-processor.h"
+#include "world/world-turn-processor.h"
 #include "cmd-building/cmd-building.h"
 #include "cmd-io/cmd-save.h"
 #include "core/disturbance.h"
@@ -103,9 +103,8 @@ void WorldTurnProcessor::process_world()
  */
 void WorldTurnProcessor::print_time()
 {
-    TERM_LEN width, height;
-    term_get_size(&width, &height);
-    const auto row = height + ROW_DAY;
+    const auto [wid, hgt] = term_get_size();
+    const auto row = hgt + ROW_DAY;
 
     int day;
     c_put_str(TERM_WHITE, "             ", row, COL_DAY);
index 9e6cda9..f8318cf 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 class PlayerType;
 class WorldTurnProcessor {
index 6dda5ae..efc9418 100644 (file)
@@ -1,4 +1,4 @@
-#include "world/world.h"
+#include "world/world.h"
 #include "player-info/race-types.h"
 #include "system/player-type-definition.h"
 #include "util/bit-flags-calculator.h"
index 2e873d2..eda5c04 100644 (file)
@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "market/bounty-type-definition.h"
 #include "player-info/class-types.h"