<ClInclude Include="..\..\src\mind\snipe-types.h" />\r
<ClInclude Include="..\..\src\monster-race\race-indice-types.h" />\r
<ClInclude Include="..\..\src\monster\monster-flag-types.h" />\r
+ <ClInclude Include="..\..\src\monster\smart-learn-types.h" />\r
<ClInclude Include="..\..\src\object-enchant\activation-info-table.h" />\r
<ClInclude Include="..\..\src\object-enchant\dragon-breaths-table.h" />\r
<ClInclude Include="..\..\src\object-enchant\random-art-bias-types.h" />\r
<ClInclude Include="..\..\src\mind\snipe-types.h">
<Filter>mind</Filter>
</ClInclude>
+ <ClInclude Include="..\..\src\monster\smart-learn-types.h">
+ <Filter>monster</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\src\wall.bmp" />
monster/monster-process.c monster/monster-process.h \
monster/monster-runaway.c monster/monster-runaway.h \
monster/monster-safety-hiding.c monster/monster-safety-hiding.h \
+ monster/smart-learn-types.h \
monster/monster-status.c monster/monster-status.h \
monster/monster-sweep-grid.c monster/monster-sweep-grid.h \
monster/monster-update.c monster/monster-update.h \
#include "effect/effect-characteristics.h"
#include "main/sound-definitions-table.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object/item-use-flags.h"
#include "player/avatar.h"
#include "player/player-damage.h"
#include "system/angband.h"
#include "core/stuff-handler.h"
#include "util/util.h"
-
#include "io/write-diary.h"
#include "cmd-io/cmd-dump.h"
#include "floor/floor.h"
#include "core/sort.h"
+#include "monster/smart-learn-types.h"
#include "player/player-move.h"
#include "player/player-status.h"
#include "player/player-effects.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
#include "object/object-info.h"
+#include "monster/smart-learn-types.h"
#include "player/avatar.h"
#include "player/player-damage.h"
#include "player/player-effects.h"
#include "main/sound-definitions-table.h"
#include "mind/snipe-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/special-object-flags.h"
#include "object-enchant/tr-types.h"
#include "object/item-use-flags.h"
#include "main/music-definitions-table.h"
#include "monster-race/monster-race-hook.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/artifact.h"
#include "object-enchant/item-apply-magic.h"
#include "object-enchant/trg-types.h"
#include "effect/effect-item.h"
#include "autopick/autopick.h"
#include "floor/floor-object.h"
-#include "perception/object-perception.h"
+#include "monster/smart-learn-types.h"
+#include "object-enchant/tr-types.h"
#include "object/object-broken.h"
#include "object/object-flags.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
#include "object/object-mark-types.h"
-#include "sv-definition/sv-other-types.h"
-#include "sv-definition/sv-scroll-types.h"
-#include "object-enchant/tr-types.h"
+#include "perception/object-perception.h"
#include "spell/spells-type.h"
#include "spell/spells3.h"
+#include "sv-definition/sv-other-types.h"
+#include "sv-definition/sv-scroll-types.h"
/*!
* @brief 汎用的なビーム/ボルト/ボール系によるアイテムオブジェクトへの効果処理 / Handle a beam/bolt/ball causing damage to a monster.
#include "monster-race/race-indice-types.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/trc-types.h"
#include "pet/pet-fall-off.h"
#include "player/avatar.h"
#include "floor/floor.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "player/avatar.h"
// Powerful monsters can resist.
#include "main/sound-definitions-table.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/special-object-flags.h"
#include "object/object-generator.h"
#include "object/object-kind-hook.h"
#include "info-reader/general-parser.h"
#include "info-reader/random-grid-effect-types.h"
#include "io/tokenizer.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/apply-magic.h"
#include "object-enchant/artifact.h"
#include "object-enchant/item-apply-magic.h"
#include "grid/grid.h"
#include "monster/monster-status.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "perception/object-perception.h"
#include "object-enchant/object-ego.h"
#include "object/object-hook.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-status.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/artifact.h"
#include "object/object-hook.h"
#include "pet/pet-util.h"
#include "main/init.h"
#include "monster/monster-status.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "player/player-effects.h"
#include "player/player-status.h"
#include "realm/realm-names-table.h"
#include "main/init.h"
#include "market/arena-info-table.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object/object-flavor.h"
#include "object/object-info.h"
#include "pet/pet-util.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-status.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/object-curse.h"
#include "object/object-flavor.h"
#include "object/object-kind-hook.h"
#include "knowledge/monster-group-table.h"
#include "locale/english.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "term/term-color-types.h"
#include "view/display-main-window.h" // 暫定、後で消す.
#include "world/world.h"
#include "monster-race/monster-race-hook.h"
#include "monster/monster-status.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "pet/pet-fall-off.h"
#include "player/player-class.h"
#include "mind/mind-cavalry.h"
#include "cmd-action/cmd-pet.h"
#include "floor/floor.h"
+#include "monster/smart-learn-types.h"
#include "pet/pet-fall-off.h"
#include "player/player-skill.h"
#include "mind/mind-ninja.h"
#include "mind/mind-samurai.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "pet/pet-fall-off.h"
#include "object/object-hook.h"
#include "player/player-damage.h"
#include "monster/monster-sweep-grid.h"
#include "monster/monster-util.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "pet/pet-util.h"
#include "spell/range-calc.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "player/player-move.h"
#include "spell/spells-type.h"
#include "spell/process-effect.h"
#include "monster/monster-object.h"
#include "floor/floor-object.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/tr-types.h"
#include "object/object-flags.h"
#include "object/object-flavor.h"
#include "monster/monster-update.h"
#include "monster/monster-util.h"
#include "monster/quantum-effect.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object-enchant/trc-types.h"
#include "pet/pet-fall-off.h"
#include "monster/monster-runaway.h"
#include "dungeon/quest.h"
#include "monster-race/race-indice-types.h"
+#include "monster/smart-learn-types.h"
#include "pet/pet-fall-off.h"
#include "player/player-move.h"
#include "autopick/autopick-pref-processor.h"
#include "cmd-io/cmd-dump.h"
#include "cmd/cmd-draw.h"
-#include "monster-attack/monster-attack-effect.h"
-#include "monster-attack/monster-attack-types.h"
#include "core/stuff-handler.h"
#include "dungeon/dungeon.h"
#include "floor/floor.h"
#include "io/report.h"
#include "io/write-diary.h"
#include "main/sound-definitions-table.h"
+#include "monster-attack/monster-attack-effect.h"
+#include "monster-attack/monster-attack-types.h"
+#include "monster-race/monster-race-hook.h"
#include "monster-race/race-indice-types.h"
#include "monster/creature.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-process.h"
-#include "monster-race/monster-race-hook.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object-enchant/object-curse.h"
#include "player/avatar.h"
#include "floor/floor.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-safety-hiding.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
/*!
/* TODO: クローン、ペット、有効化は意義が異なるので別変数に切り離すこと。save/loadのバージョン更新が面倒そうだけど */
BIT_FLAGS smart; /*!< Field for "smart_learn" - Some bit-flags for the "smart" field */
-#define SM_RES_ACID 0x00000001 /*!< モンスターの学習フラグ: プレイヤーに酸耐性あり */
-#define SM_RES_ELEC 0x00000002 /*!< モンスターの学習フラグ: プレイヤーに電撃耐性あり */
-#define SM_RES_FIRE 0x00000004 /*!< モンスターの学習フラグ: プレイヤーに火炎耐性あり */
-#define SM_RES_COLD 0x00000008 /*!< モンスターの学習フラグ: プレイヤーに冷気耐性あり */
-#define SM_RES_POIS 0x00000010 /*!< モンスターの学習フラグ: プレイヤーに毒耐性あり */
-#define SM_RES_NETH 0x00000020 /*!< モンスターの学習フラグ: プレイヤーに地獄耐性あり */
-#define SM_RES_LITE 0x00000040 /*!< モンスターの学習フラグ: プレイヤーに閃光耐性あり */
-#define SM_RES_DARK 0x00000080 /*!< モンスターの学習フラグ: プレイヤーに暗黒耐性あり */
-#define SM_RES_FEAR 0x00000100 /*!< モンスターの学習フラグ: プレイヤーに恐怖耐性あり */
-#define SM_RES_CONF 0x00000200 /*!< モンスターの学習フラグ: プレイヤーに混乱耐性あり */
-#define SM_RES_CHAOS 0x00000400 /*!< モンスターの学習フラグ: プレイヤーにカオス耐性あり */
-#define SM_RES_DISEN 0x00000800 /*!< モンスターの学習フラグ: プレイヤーに劣化耐性あり */
-#define SM_RES_BLIND 0x00001000 /*!< モンスターの学習フラグ: プレイヤーに盲目耐性あり */
-#define SM_RES_NEXUS 0x00002000 /*!< モンスターの学習フラグ: プレイヤーに因果混乱耐性あり */
-#define SM_RES_SOUND 0x00004000 /*!< モンスターの学習フラグ: プレイヤーに轟音耐性あり */
-#define SM_RES_SHARD 0x00008000 /*!< モンスターの学習フラグ: プレイヤーに破片耐性あり */
-#define SM_OPP_ACID 0x00010000 /*!< モンスターの学習フラグ: プレイヤーに二重酸耐性あり */
-#define SM_OPP_ELEC 0x00020000 /*!< モンスターの学習フラグ: プレイヤーに二重電撃耐性あり */
-#define SM_OPP_FIRE 0x00040000 /*!< モンスターの学習フラグ: プレイヤーに二重火炎耐性あり */
-#define SM_OPP_COLD 0x00080000 /*!< モンスターの学習フラグ: プレイヤーに二重冷気耐性あり */
-#define SM_OPP_POIS 0x00100000 /*!< モンスターの学習フラグ: プレイヤーに二重毒耐性あり */
-#define SM_OPP_XXX1 0x00200000 /*!< 未使用 / (unused) */
-#define SM_CLONED 0x00400000 /*!< クローンである / Cloned */
-#define SM_PET 0x00800000 /*!< ペットである / Pet */
-#define SM_IMM_ACID 0x01000000 /*!< モンスターの学習フラグ: プレイヤーに酸免疫あり */
-#define SM_IMM_ELEC 0x02000000 /*!< モンスターの学習フラグ: プレイヤーに電撃免疫あり */
-#define SM_IMM_FIRE 0x04000000 /*!< モンスターの学習フラグ: プレイヤーに火炎免疫あり */
-#define SM_IMM_COLD 0x08000000 /*!< モンスターの学習フラグ: プレイヤーに冷気免疫あり */
-#define SM_FRIENDLY 0x10000000 /*!< 友好的である / Friendly */
-#define SM_IMM_REFLECT 0x20000000 /*!< モンスターの学習フラグ: プレイヤーに反射あり */
-#define SM_IMM_FREE 0x40000000 /*!< モンスターの学習フラグ: プレイヤーに麻痺耐性あり */
-#define SM_IMM_MANA 0x80000000 /*!< モンスターの学習フラグ: プレイヤーにMPがない */
-
MONSTER_IDX parent_m_idx;
} monster_type;
#include "monster-race/monster-race-hook.h"
#include "monster/monster-flag-types.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "mspell/mspell-damage-calculator.h"
#include "mspell/mspell-type.h"
#include "monster-race/monster-race.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object/object-flavor.h"
#include "object/object-generator.h"
#include "quantum-effect.h"
#include "floor/floor.h"
+#include "monster/smart-learn-types.h"
#include "mspell/assign-monster-spell.h"
#include "mspell/monster-spell.h"
#include "spell-kind/spells-teleport.h"
--- /dev/null
+#pragma once
+
+typedef enum smart_learn_type {
+ SM_RES_ACID = 0x00000001, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\8e_\91Ï\90«\82 \82è */
+ SM_RES_ELEC = 0x00000002, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93d\8c\82\91Ï\90«\82 \82è */
+ SM_RES_FIRE = 0x00000004, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\89Î\89\8a\91Ï\90«\82 \82è */
+ SM_RES_COLD = 0x00000008, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\97â\8bC\91Ï\90«\82 \82è */
+ SM_RES_POIS = 0x00000010, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93Å\91Ï\90«\82 \82è */
+ SM_RES_NETH = 0x00000020, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\92n\8d\96\91Ï\90«\82 \82è */
+ SM_RES_LITE = 0x00000040, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\91M\8cõ\91Ï\90«\82 \82è */
+ SM_RES_DARK = 0x00000080, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\88Ã\8d\95\91Ï\90«\82 \82è */
+ SM_RES_FEAR = 0x00000100, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\8b°\95|\91Ï\90«\82 \82è */
+ SM_RES_CONF = 0x00000200, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\8d¬\97\90\91Ï\90«\82 \82è */
+ SM_RES_CHAOS = 0x00000400, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\83J\83I\83X\91Ï\90«\82 \82è */
+ SM_RES_DISEN = 0x00000800, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\97ò\89»\91Ï\90«\82 \82è */
+ SM_RES_BLIND = 0x00001000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\96Ó\96Ú\91Ï\90«\82 \82è */
+ SM_RES_NEXUS = 0x00002000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\88ö\89Ê\8d¬\97\90\91Ï\90«\82 \82è */
+ SM_RES_SOUND = 0x00004000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\8d\8c\89¹\91Ï\90«\82 \82è */
+ SM_RES_SHARD = 0x00008000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\94j\95Ð\91Ï\90«\82 \82è */
+ SM_OPP_ACID = 0x00010000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93ñ\8fd\8e_\91Ï\90«\82 \82è */
+ SM_OPP_ELEC = 0x00020000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93ñ\8fd\93d\8c\82\91Ï\90«\82 \82è */
+ SM_OPP_FIRE = 0x00040000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93ñ\8fd\89Î\89\8a\91Ï\90«\82 \82è */
+ SM_OPP_COLD = 0x00080000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93ñ\8fd\97â\8bC\91Ï\90«\82 \82è */
+ SM_OPP_POIS = 0x00100000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93ñ\8fd\93Å\91Ï\90«\82 \82è */
+ SM_OPP_XXX1 = 0x00200000, /*!< \96¢\8eg\97p / (unused) */
+ SM_CLONED = 0x00400000, /*!< \83N\83\8d\81[\83\93\82Å\82 \82é / Cloned */
+ SM_PET = 0x00800000, /*!< \83y\83b\83g\82Å\82 \82é / Pet */
+ SM_IMM_ACID = 0x01000000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\8e_\96Æ\89u\82 \82è */
+ SM_IMM_ELEC = 0x02000000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\93d\8c\82\96Æ\89u\82 \82è */
+ SM_IMM_FIRE = 0x04000000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\89Î\89\8a\96Æ\89u\82 \82è */
+ SM_IMM_COLD = 0x08000000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\97â\8bC\96Æ\89u\82 \82è */
+ SM_FRIENDLY = 0x10000000, /*!< \97F\8dD\93I\82Å\82 \82é / Friendly */
+ SM_IMM_REFLECT = 0x20000000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\94½\8eË\82 \82è */
+ SM_IMM_FREE = 0x40000000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82É\96\83á\83\91Ï\90«\82 \82è */
+ SM_IMM_MANA = 0x80000000, /*!< \83\82\83\93\83X\83^\81[\82Ì\8aw\8fK\83t\83\89\83O: \83v\83\8c\83C\83\84\81[\82ÉMP\82ª\82È\82¢ */
+} smart_learn_type;
#include "mind/drs-types.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "mspell/mspell-status.h"
#include "mspell/mspell-util.h"
#include "effect/effect-characteristics.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "mspell/mspell-util.h"
#include "player/player-move.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-flag-types.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "spell/spells-type.h"
#include "world/world.h"
*/
#include "system/angband.h"
-#include "util/util.h"
-#include "main/sound-definitions-table.h"
-#include "pet/pet-util.h"
+#include "dungeon/dungeon.h"
+#include "dungeon/quest.h"
#include "effect/effect-characteristics.h"
#include "grid/grid.h"
-#include "dungeon/quest.h"
-#include "player/player-move.h"
-#include "player/player-class.h"
+#include "main/sound-definitions-table.h"
#include "monster-race/race-indice-types.h"
-#include "monster/monster.h"
#include "monster/monster-status.h"
+#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
+#include "mspell/assign-monster-spell.h"
#include "mspell/monster-spell.h"
+#include "pet/pet-util.h"
+#include "player/player-class.h"
+#include "player/player-move.h"
#include "spell-kind/spells-teleport.h"
-#include "spell/spells-type.h"
+#include "spell-realm/spells-hex.h"
#include "spell/range-calc.h"
-#include "dungeon/dungeon.h"
-#include "world/world.h"
+#include "spell/spells-type.h"
+#include "util/util.h"
#include "view/display-main-window.h"
-#include "mspell/assign-monster-spell.h"
-#include "spell-realm/spells-hex.h"
+#include "world/world.h"
/*!
* @brief モンスターが敵対モンスターにビームを当てること可能かを判定する /
#include "mind/mind-warrior.h"
#include "mind/racial-vampire.h"
#include "monster/monster-flag-types.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/item-feeling.h"
#include "object/object-hook.h"
#include "player/avatar.h"
#include "monster-attack/monster-attack-types.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "mspell/mspell-damage-calculator.h"
#include "mspell/mspell-type.h"
#include "main/sound-definitions-table.h"
#include "monster/monster-status.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object-enchant/special-object-flags.h"
#include "object/object-flavor.h"
#include "monster-race/monster-race.h"
#include "monster/monster-status.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "mutation/mutation.h"
#include "object-enchant/object-ego.h"
#include "object-enchant/special-object-flags.h"
#include "floor/floor.h"
#include "io/write-diary.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "player/player-damage.h"
#include "player/player-effects.h"
#include "player/player-move.h"
#include "grid/grid.h"
#include "io/write-diary.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/artifact.h"
-#include "perception/object-perception.h"
+#include "object-enchant/special-object-flags.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
#include "object/object-mark-types.h"
-#include "object-enchant/special-object-flags.h"
+#include "perception/object-perception.h"
#include "player/player-effects.h"
#include "spell-kind/spells-teleport.h"
#include "spell/process-effect.h"
#include "io/write-diary.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "player/avatar.h"
#include "player/player-damage.h"
#include "view/display-main-window.h"
#include "effect/effect-characteristics.h"
#include "floor/floor.h"
#include "io/write-diary.h"
+#include "monster/smart-learn-types.h"
#include "spell/process-effect.h"
#include "spell/spells-type.h"
#include "floor/floor.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "player/avatar.h"
#include "spell/process-effect.h"
#include "spell/spells-type.h"
#include "main/sound-definitions-table.h"
#include "monster/creature.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object-enchant/tr-types.h"
#include "object/object-flags.h"
#include "object/object-hook.h"
#include "inventory/player-inventory.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "object/item-use-flags.h"
#include "object/object-hook.h"
#include "player/avatar.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-process.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object-enchant/artifact.h"
#include "object-enchant/item-feeling.h"
#include "market/arena-info-table.h"
#include "monster/monster-flag-types.h"
#include "monster/monster.h"
+#include "monster/smart-learn-types.h"
#include "object/object-flavor.h"
#include "object/object-kind.h"
#include "object/object-mark-types.h"
#include "io/write-diary.h"
#include "market/arena.h"
#include "monster/monster-status.h"
+#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "mutation/mutation.h"
#include "object-enchant/apply-magic.h"