<ClCompile Include="..\..\src\mind\racial-samurai.c" />\r
<ClCompile Include="..\..\src\mind\samurai-slaying.c" />\r
<ClCompile Include="..\..\src\mind\surprise-attack.c" />\r
+ <ClCompile Include="..\..\src\object\object-appraiser.c" />\r
<ClCompile Include="..\..\src\pet\pet-fall-off.c" />\r
<ClCompile Include="..\..\src\mspell\mspell-floor.c" />\r
<ClCompile Include="..\..\src\mspell\mspell-particularity.c" />\r
<ClInclude Include="..\..\src\mind\racial-samurai.h" />\r
<ClInclude Include="..\..\src\mind\samurai-slaying.h" />\r
<ClInclude Include="..\..\src\mind\surprise-attack.h" />\r
+ <ClInclude Include="..\..\src\object\object-appraiser.h" />\r
<ClInclude Include="..\..\src\pet\pet-fall-off.h" />\r
<ClInclude Include="..\..\src\pet\pet-util.h" />\r
<ClInclude Include="..\..\src\mspell\assign-monster-spell.h" />\r
<ClCompile Include="..\..\src\view\object-describer.c">
<Filter>view</Filter>
</ClCompile>
+ <ClCompile Include="..\..\src\object\object-appraiser.c">
+ <Filter>object</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\cmd\cmd-basic.h">
<ClInclude Include="..\..\src\view\object-describer.h">
<Filter>view</Filter>
</ClInclude>
+ <ClInclude Include="..\..\src\object\object-appraiser.h">
+ <Filter>object</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\src\wall.bmp" />
object/death-scythe.c object/death-scythe.h \
object/object1.c object/object1.h \
object/object2.c object/object2.h \
+ object/object-appraiser.c object/object-appraiser.h \
object/object-boost.c object/object-boost.h \
object/object-broken.c object/object-broken.h \
object/object-curse.c object/object-curse.h \
#include "birth/initial-equipments-table.h"
#include "monster/monster-race-hook.h"
#include "object/item-apply-magic.h"
+#include "object/object-appraiser.h"
#include "object/object-ego.h"
#include "object/object-kind.h"
#include "object/object2.h"
#include "inventory/player-inventory.h"
#include "main/sound-definitions-table.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
#include "main/sound-definitions-table.h"
#include "mutation/mutation.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-broken.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
#include "main/sound-definitions-table.h"
#include "object/artifact.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
*/
#include "cmd-item/cmd-smith.h"
-#include "util/util.h"
-#include "term/gameterm.h"
+#include "autopick/autopick.h"
+#include "cmd/cmd-basic.h"
+#include "inventory/player-inventory.h"
#include "object/item-use-flags.h"
-#include "object/object2.h"
+#include "object/object-appraiser.h"
+#include "object/object-ego.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
-#include "object/object-ego.h"
+#include "object/object2.h"
#include "object/special-object-flags.h"
-#include "player/player-status.h"
-#include "cmd/cmd-basic.h"
-#include "autopick/autopick.h"
-#include "inventory/player-inventory.h"
#include "object/tr-types.h"
#include "object/trc-types.h"
+#include "player/player-status.h"
+#include "term/gameterm.h"
+#include "util/util.h"
#include "view/display-main-window.h"
/*!
#include "inventory/player-inventory.h"
#include "main/sound-definitions-table.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
#include "object/object2.h"
#include "io/targeting.h"
#include "main/sound-definitions-table.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
-#include "object/object2.h"
#include "object/special-object-flags.h"
#include "object/sv-other-types.h"
#include "object/sv-rod-types.h"
#include "io/targeting.h"
#include "main/sound-definitions-table.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
#include "object/object2.h"
-#include "system/angband.h"
-#include "effect-item.h"
-#include "object/object2.h"
+#include "effect-item.h"
+#include "autopick/autopick.h"
+#include "object/object-appraiser.h"
+#include "object/object-broken.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
-#include "object/object-broken.h"
+#include "object/object-mark-types.h"
+#include "object/object2.h"
#include "object/sv-other-types.h"
#include "object/sv-scroll-types.h"
-#include "autopick/autopick.h"
+#include "object/tr-types.h"
#include "spell/spells-type.h"
#include "spell/spells3.h"
-#include "object/tr-types.h"
-#include "object/object-mark-types.h"
/*!
* @brief 汎用的なビーム/ボルト/ボール系によるアイテムオブジェクトへの効果処理 / Handle a beam/bolt/ball causing damage to a monster.
#pragma once
+#include "system/angband.h"
+
bool affect_item(player_type *caster_ptr, MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ);
#include "floor/floor.h"
#include "object/artifact.h"
#include "object/item-apply-magic.h"
+#include "object/object-appraiser.h"
#include "object/object-flavor.h"
#include "object/object-kind-hook.h"
#include "object/object-kind.h"
-#include "system/angband.h"
-#include "market/bounty.h"
-#include "world/world.h"
-#include "player/avatar.h"
-#include "market/bounty-prize-table.h"
-#include "object/item-apply-magic.h"
-#include "object/object2.h"
-#include "object/object-flavor.h"
+#include "market/bounty.h"
#include "autopick/autopick.h"
#include "core/stuff-handler.h"
-#include "term/gameterm.h"
-#include "market/building-util.h"
#include "dungeon/dungeon.h"
+#include "market/bounty-prize-table.h"
+#include "market/building-util.h"
#include "monster/monster-race-hook.h"
+#include "object/item-apply-magic.h"
+#include "object/object-appraiser.h"
+#include "object/object-flavor.h"
+#include "object/object2.h"
#include "object/sv-other-types.h"
+#include "player/avatar.h"
+#include "term/gameterm.h"
+#include "world/world.h"
/*!
* @brief 賞金首の引き換え処理 / Get prize
#pragma once
+#include "system/angband.h"
+
bool exchange_cash(player_type *player_ptr);
void today_target(player_type *player_ptr);
void tsuchinoko(void);
#include "grid/grid.h"
#include "io/files-util.h"
#include "monster/monster.h"
+#include "object/object-appraiser.h"
#include "object/object-boost.h"
#include "object/object-curse.h"
#include "object/object-ego.h"
#include "grid/trap.h"
#include "main/sound-definitions-table.h"
#include "object/item-apply-magic.h"
+#include "object/object-appraiser.h"
#include "object/object2.h"
#include "object/sv-other-types.h"
#include "player/player-class.h"
--- /dev/null
+#include "object/object-appraiser.h"
+#include "io/write-diary.h"
+#include "object/artifact.h"
+#include "object/item-feeling.h"
+#include "object/object-flavor.h"
+#include "object/object-hook.h" // 暫定、このファイルへ引っ越す.
+#include "object/object-kind.h"
+#include "object/object2.h" // 暫定、相互参照している.
+#include "object/special-object-flags.h"
+
+/*!
+ * @brief オブジェクトを鑑定済にする /
+ * Known is true when the "attributes" of an object are "known".
+ * @param o_ptr 鑑定済にするオブジェクトの構造体参照ポインタ
+ * @return なし
+ * These include tohit, todam, toac, cost, and pval (charges).\n
+ *\n
+ * Note that "knowing" an object gives you everything that an "awareness"\n
+ * gives you, and much more. In fact, the player is always "aware" of any\n
+ * item of which he has full "knowledge".\n
+ *\n
+ * But having full knowledge of, say, one "wand of wonder", does not, by\n
+ * itself, give you knowledge, or even awareness, of other "wands of wonder".\n
+ * It happens that most "identify" routines (including "buying from a shop")\n
+ * will make the player "aware" of the object as well as fully "know" it.\n
+ *\n
+ * This routine also removes any inscriptions generated by "feelings".\n
+ */
+void object_known(object_type *o_ptr)
+{
+ o_ptr->feeling = FEEL_NONE;
+ o_ptr->ident &= ~(IDENT_SENSE);
+ o_ptr->ident &= ~(IDENT_EMPTY);
+ o_ptr->ident |= (IDENT_KNOWN);
+}
+
+/*!
+ * @brief オブジェクトを*鑑定*済にする /
+ * The player is now aware of the effects of the given object.
+ * @param owner_ptr プレーヤーへの参照ポインタ
+ * @param o_ptr *鑑定*済にするオブジェクトの構造体参照ポインタ
+ * @return なし
+ */
+void object_aware(player_type *owner_ptr, object_type *o_ptr)
+{
+ k_info[o_ptr->k_idx].aware = TRUE;
+
+ bool mihanmei = !object_is_aware(o_ptr);
+ bool is_undefined = mihanmei && !(k_info[o_ptr->k_idx].gen_flags & TRG_INSTA_ART) && record_ident && !owner_ptr->is_dead
+ && ((o_ptr->tval >= TV_AMULET && o_ptr->tval <= TV_POTION) || (o_ptr->tval == TV_FOOD));
+ if (!is_undefined)
+ return;
+
+ object_type forge;
+ object_type *q_ptr;
+ GAME_TEXT o_name[MAX_NLEN];
+
+ q_ptr = &forge;
+ object_copy(q_ptr, o_ptr);
+
+ q_ptr->number = 1;
+ object_desc(owner_ptr, o_name, q_ptr, OD_NAME_ONLY);
+
+ exe_write_diary(owner_ptr, DIARY_FOUND, 0, o_name);
+}
+
+/*!
+ * @brief オブジェクトを試行済にする /
+ * Something has been "sampled"
+ * @param o_ptr 試行済にするオブジェクトの構造体参照ポインタ
+ * @return なし
+ */
+void object_tried(object_type *o_ptr) { k_info[o_ptr->k_idx].tried = TRUE; }
--- /dev/null
+#pragma once
+
+#include "system/angband.h"
+
+void object_known(object_type *o_ptr);
+void object_aware(player_type *owner_ptr, object_type *o_ptr);
+void object_tried(object_type *o_ptr);
#include "object/artifact.h"
#include "object/item-apply-magic.h"
#include "object/item-feeling.h"
+#include "object/object-appraiser.h" // 暫定、相互参照している.
#include "object/object-boost.h"
#include "object/object-curse.h"
#include "object/object-ego.h"
/*!
- * @brief オブジェクトを鑑定済にする /
- * Known is true when the "attributes" of an object are "known".
- * @param o_ptr 鑑定済にするオブジェクトの構造体参照ポインタ
- * @return なし
- * These include tohit, todam, toac, cost, and pval (charges).\n
- *\n
- * Note that "knowing" an object gives you everything that an "awareness"\n
- * gives you, and much more. In fact, the player is always "aware" of any\n
- * item of which he has full "knowledge".\n
- *\n
- * But having full knowledge of, say, one "wand of wonder", does not, by\n
- * itself, give you knowledge, or even awareness, of other "wands of wonder".\n
- * It happens that most "identify" routines (including "buying from a shop")\n
- * will make the player "aware" of the object as well as fully "know" it.\n
- *\n
- * This routine also removes any inscriptions generated by "feelings".\n
- */
-void object_known(object_type *o_ptr)
-{
- o_ptr->feeling = FEEL_NONE;
- o_ptr->ident &= ~(IDENT_SENSE);
- o_ptr->ident &= ~(IDENT_EMPTY);
- o_ptr->ident |= (IDENT_KNOWN);
-}
-
-
-/*!
- * @brief オブジェクトを*鑑定*済にする /
- * The player is now aware of the effects of the given object.
- * @param owner_ptr プレーヤーへの参照ポインタ
- * @param o_ptr *鑑定*済にするオブジェクトの構造体参照ポインタ
- * @return なし
- */
-void object_aware(player_type *owner_ptr, object_type *o_ptr)
-{
- k_info[o_ptr->k_idx].aware = TRUE;
-
- bool mihanmei = !object_is_aware(o_ptr);
- bool is_undefined = mihanmei && !(k_info[o_ptr->k_idx].gen_flags & TRG_INSTA_ART) && record_ident &&
- !owner_ptr->is_dead && ((o_ptr->tval >= TV_AMULET && o_ptr->tval <= TV_POTION) || (o_ptr->tval == TV_FOOD));
- if (!is_undefined) return;
-
- object_type forge;
- object_type *q_ptr;
- GAME_TEXT o_name[MAX_NLEN];
-
- q_ptr = &forge;
- object_copy(q_ptr, o_ptr);
-
- q_ptr->number = 1;
- object_desc(owner_ptr, o_name, q_ptr, OD_NAME_ONLY);
-
- exe_write_diary(owner_ptr, DIARY_FOUND, 0, o_name);
-}
-
-
-/*!
- * @brief オブジェクトを試行済にする /
- * Something has been "sampled"
- * @param o_ptr 試行済にするオブジェクトの構造体参照ポインタ
- * @return なし
- */
-void object_tried(object_type *o_ptr)
-{
- k_info[o_ptr->k_idx].tried = TRUE;
-}
-
-
-/*!
* @brief 重度擬似鑑定の判断処理 / Return a "feeling" (or NULL) about an item. Method 1 (Heavy).
* @param o_ptr 擬似鑑定を行うオブジェクトの参照ポインタ。
* @return 擬似鑑定結果のIDを返す。
OBJECT_IDX o_pop(floor_type *floor_ptr);
OBJECT_IDX get_obj_num(player_type *o_ptr, DEPTH level, BIT_FLAGS mode);
-void object_known(object_type *o_ptr);
-void object_aware(player_type *owner_ptr, object_type *o_ptr);
-void object_tried(object_type *o_ptr);
byte value_check_aux1(object_type *o_ptr);
byte value_check_aux2(object_type *o_ptr);
#include "monster/monster.h"
#include "mspell/monster-spell.h"
#include "object/artifact.h"
+#include "object/object-appraiser.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
#include "object/object-mark-types.h"
*/
#include "process-death.h"
-#include "world/world.h"
+#include "core/stuff-handler.h"
#include "floor/floor-town.h"
#include "inventory/player-inventory.h"
#include "object/item-use-flags.h"
-#include "object/object2.h"
+#include "object/object-appraiser.h"
#include "object/object-flavor.h"
+#include "object/object2.h"
#include "store/store-util.h"
#include "store/store.h"
#include "term/gameterm.h"
-#include "core/stuff-handler.h"
+#include "world/world.h"
#define GRAVE_LINE_WIDTH 31
#include "object/item-apply-magic.h"
#include "object/item-feeling.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-boost.h"
#include "object/object-ego.h"
#include "object/object-flavor.h"
#include "object/artifact.h"
#include "object/item-feeling.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-boost.h"
#include "object/object-ego.h"
#include "object/object-flavor.h"
#include "store/store-util.h"
#include "object/item-apply-magic.h"
#include "object/item-feeling.h"
+#include "object/object-appraiser.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
#include "object/object2.h"
#include "mind/mind.h"
#include "object/item-feeling.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
#include "object/object-kind.h"
#include "object/artifact.h"
#include "object/item-apply-magic.h"
#include "object/item-use-flags.h"
+#include "object/object-appraiser.h"
#include "object/object-flavor.h"
#include "object/object-hook.h"
#include "object/object-kind.h"