From 34601d0e86d64644edd7eb494e7c1a08debef96f Mon Sep 17 00:00:00 2001 From: Hourier Date: Sat, 9 May 2020 15:51:14 +0900 Subject: [PATCH] [Refactor] #39970 Separated simple-appraiser.c/h from core.c --- Hengband/Hengband/Hengband.vcxproj | 2 + Hengband/Hengband/Hengband.vcxproj.filters | 9 + src/Makefile.am | 7 +- src/core.c | 382 +---------------------------- src/inventory/simple-appraiser.c | 374 ++++++++++++++++++++++++++++ src/inventory/simple-appraiser.h | 4 + 6 files changed, 395 insertions(+), 383 deletions(-) create mode 100644 src/inventory/simple-appraiser.c create mode 100644 src/inventory/simple-appraiser.h diff --git a/Hengband/Hengband/Hengband.vcxproj b/Hengband/Hengband/Hengband.vcxproj index 0496dafe4..1eb659017 100644 --- a/Hengband/Hengband/Hengband.vcxproj +++ b/Hengband/Hengband/Hengband.vcxproj @@ -203,6 +203,7 @@ + @@ -399,6 +400,7 @@ + diff --git a/Hengband/Hengband/Hengband.vcxproj.filters b/Hengband/Hengband/Hengband.vcxproj.filters index 165f6612a..0a8092634 100644 --- a/Hengband/Hengband/Hengband.vcxproj.filters +++ b/Hengband/Hengband/Hengband.vcxproj.filters @@ -778,6 +778,9 @@ core + + inventory + @@ -1583,6 +1586,9 @@ core + + inventory + @@ -1649,6 +1655,9 @@ {c2383613-69b3-4973-bb9b-6fce783afa1d} + + {060db85f-39b1-48fd-8b5f-7409eb6209b2} + diff --git a/src/Makefile.am b/src/Makefile.am index 1f19e190d..6000d5bf4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -135,6 +135,8 @@ hengband_SOURCES = \ object/object-kind-hook.c object/object-kind-hook.h \ object-flavor.c object-flavor.h object-ego.c object-ego.h \ \ + inventory/simple-appraiser.c inventory/simple-appraiser.h \ + \ patron.h patron.c \ \ creature.h creature.c \ @@ -264,8 +266,9 @@ CFLAGS += $(XFT_CFLAGS) LIBS += $(XFT_LIBS) COMPILE = $(srcdir)/gcc-wrap $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ - -Iautopick -Ibirth -Icmd -Icombat -Icore -Ieffect -Ifloor -Iio -Iknowledge \ - -Imarket -Imonster -Iobject -Iplayer -Irealm -Iroom -Ispell -Iview + -Iautopick -Ibirth -Icmd -Icombat -Icore -Ieffect -Ifloor -Iinventory -Iio \ + -Iknowledge -Imarket -Imonster -Iobject -Iplayer -Irealm -Iroom -Ispell \ + -Iview install-exec-hook: if SET_GID diff --git a/src/core.c b/src/core.c index 7e73c3aa9..2e53473e9 100644 --- a/src/core.c +++ b/src/core.c @@ -76,7 +76,6 @@ #include "market/store-util.h" #include "quest.h" #include "artifact.h" -#include "avatar.h" #include "view/display-player.h" #include "player/process-name.h" #include "player-move.h" @@ -103,7 +102,6 @@ #include "io/read-pref-file.h" #include "files.h" #include "scores.h" -#include "autopick/autopick.h" #include "autopick/autopick-pref-processor.h" #include "autopick/autopick-reader-writer.h" #include "save.h" @@ -118,6 +116,7 @@ #include "core/game-closer.h" #include "floor/pattern-walk.h" #include "core/turn-compensator.h" +#include "inventory/simple-appraiser.h" /*! * コピーライト情報 / @@ -158,385 +157,6 @@ static int wild_regen = 20; /*!<広域マップ移動時の自然回復処理カ int init_flags; /*! - * @brief 擬似鑑定を実際に行い判定を反映する - * @param slot 擬似鑑定を行うプレイヤーの所持リストID - * @param creature_ptr プレーヤーへの参照ポインタ - * @param heavy 重度の擬似鑑定を行うならばTRUE - * @return なし - */ -static void sense_inventory_aux(player_type *creature_ptr, INVENTORY_IDX slot, bool heavy) -{ - byte feel; - object_type *o_ptr = &creature_ptr->inventory_list[slot]; - GAME_TEXT o_name[MAX_NLEN]; - if (o_ptr->ident & (IDENT_SENSE))return; - if (object_is_known(o_ptr)) return; - - feel = (heavy ? value_check_aux1(o_ptr) : value_check_aux2(o_ptr)); - if (!feel) return; - - if ((creature_ptr->muta3 & MUT3_BAD_LUCK) && !randint0(13)) - { - switch (feel) - { - case FEEL_TERRIBLE: - { - feel = FEEL_SPECIAL; - break; - } - case FEEL_WORTHLESS: - { - feel = FEEL_EXCELLENT; - break; - } - case FEEL_CURSED: - { - if (heavy) - feel = randint0(3) ? FEEL_GOOD : FEEL_AVERAGE; - else - feel = FEEL_UNCURSED; - break; - } - case FEEL_AVERAGE: - { - feel = randint0(2) ? FEEL_CURSED : FEEL_GOOD; - break; - } - case FEEL_GOOD: - { - if (heavy) - feel = randint0(3) ? FEEL_CURSED : FEEL_AVERAGE; - else - feel = FEEL_CURSED; - break; - } - case FEEL_EXCELLENT: - { - feel = FEEL_WORTHLESS; - break; - } - case FEEL_SPECIAL: - { - feel = FEEL_TERRIBLE; - break; - } - } - } - - if (disturb_minor) disturb(creature_ptr, FALSE, FALSE); - - object_desc(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); - if (slot >= INVEN_RARM) - { -#ifdef JP - msg_format("%s%s(%c)は%sという感じがする...", - describe_use(creature_ptr, slot), o_name, index_to_label(slot), game_inscriptions[feel]); -#else - msg_format("You feel the %s (%c) you are %s %s %s...", - o_name, index_to_label(slot), describe_use(creature_ptr, slot), - ((o_ptr->number == 1) ? "is" : "are"), - game_inscriptions[feel]); -#endif - - } - else - { -#ifdef JP - msg_format("ザックの中の%s(%c)は%sという感じがする...", - o_name, index_to_label(slot), game_inscriptions[feel]); -#else - msg_format("You feel the %s (%c) in your pack %s %s...", - o_name, index_to_label(slot), - ((o_ptr->number == 1) ? "is" : "are"), - game_inscriptions[feel]); -#endif - - } - - o_ptr->ident |= (IDENT_SENSE); - o_ptr->feeling = feel; - - autopick_alter_item(creature_ptr, slot, destroy_feeling); - creature_ptr->update |= (PU_COMBINE | PU_REORDER); - creature_ptr->window |= (PW_INVEN | PW_EQUIP); -} - - -/*! - * @brief 1プレイヤーターン毎に武器、防具の擬似鑑定が行われるかを判定する。 - * @return なし - * @details - * Sense the inventory\n - *\n - * Class 0 = Warrior --> fast and heavy\n - * Class 1 = Mage --> slow and light\n - * Class 2 = Priest --> fast but light\n - * Class 3 = Rogue --> okay and heavy\n - * Class 4 = Ranger --> slow but heavy (changed!)\n - * Class 5 = Paladin --> slow but heavy\n - */ -static void sense_inventory1(player_type *creature_ptr) -{ - PLAYER_LEVEL plev = creature_ptr->lev; - bool heavy = FALSE; - object_type *o_ptr; - if (creature_ptr->confused) return; - - switch (creature_ptr->pclass) - { - case CLASS_WARRIOR: - case CLASS_ARCHER: - case CLASS_SAMURAI: - case CLASS_CAVALRY: - { - if (0 != randint0(9000L / (plev * plev + 40))) return; - - heavy = TRUE; - break; - } - case CLASS_SMITH: - { - if (0 != randint0(6000L / (plev * plev + 50))) return; - - heavy = TRUE; - break; - } - case CLASS_MAGE: - case CLASS_HIGH_MAGE: - case CLASS_SORCERER: - case CLASS_MAGIC_EATER: - { - if (0 != randint0(240000L / (plev + 5))) return; - - break; - } - case CLASS_PRIEST: - case CLASS_BARD: - { - if (0 != randint0(10000L / (plev * plev + 40))) return; - - break; - } - case CLASS_ROGUE: - case CLASS_NINJA: - { - if (0 != randint0(20000L / (plev * plev + 40))) return; - - heavy = TRUE; - break; - } - case CLASS_RANGER: - { - if (0 != randint0(95000L / (plev * plev + 40))) return; - - heavy = TRUE; - break; - } - case CLASS_PALADIN: - case CLASS_SNIPER: - { - if (0 != randint0(77777L / (plev * plev + 40))) return; - - heavy = TRUE; - break; - } - case CLASS_WARRIOR_MAGE: - case CLASS_RED_MAGE: - { - if (0 != randint0(75000L / (plev * plev + 40))) return; - - break; - } - case CLASS_MINDCRAFTER: - case CLASS_IMITATOR: - case CLASS_BLUE_MAGE: - case CLASS_MIRROR_MASTER: - { - if (0 != randint0(55000L / (plev * plev + 40))) return; - - break; - } - case CLASS_CHAOS_WARRIOR: - { - if (0 != randint0(80000L / (plev * plev + 40))) return; - - heavy = TRUE; - break; - } - case CLASS_MONK: - case CLASS_FORCETRAINER: - { - if (0 != randint0(20000L / (plev * plev + 40))) return; - - break; - } - case CLASS_TOURIST: - { - if (0 != randint0(20000L / ((plev + 50)*(plev + 50)))) return; - - heavy = TRUE; - break; - } - case CLASS_BEASTMASTER: - { - if (0 != randint0(65000L / (plev * plev + 40))) return; - - break; - } - case CLASS_BERSERKER: - { - heavy = TRUE; - break; - } - } - - if (compare_virtue(creature_ptr, V_KNOWLEDGE, 100, VIRTUE_LARGE)) heavy = TRUE; - - for (INVENTORY_IDX i = 0; i < INVEN_TOTAL; i++) - { - bool okay = FALSE; - - o_ptr = &creature_ptr->inventory_list[i]; - - if (!o_ptr->k_idx) continue; - - switch (o_ptr->tval) - { - case TV_SHOT: - case TV_ARROW: - case TV_BOLT: - case TV_BOW: - case TV_DIGGING: - case TV_HAFTED: - case TV_POLEARM: - case TV_SWORD: - case TV_BOOTS: - case TV_GLOVES: - case TV_HELM: - case TV_CROWN: - case TV_SHIELD: - case TV_CLOAK: - case TV_SOFT_ARMOR: - case TV_HARD_ARMOR: - case TV_DRAG_ARMOR: - case TV_CARD: - { - okay = TRUE; - break; - } - } - - if (!okay) continue; - if ((i < INVEN_RARM) && (0 != randint0(5))) continue; - - if ((creature_ptr->muta3 & MUT3_GOOD_LUCK) && !randint0(13)) - { - heavy = TRUE; - } - - sense_inventory_aux(creature_ptr, i, heavy); - } -} - - -/*! - * @brief 1プレイヤーターン毎に武器、防具以外の擬似鑑定が行われるかを判定する。 - * @return なし - */ -static void sense_inventory2(player_type *creature_ptr) -{ - PLAYER_LEVEL plev = creature_ptr->lev; - object_type *o_ptr; - - if (creature_ptr->confused) return; - - switch (creature_ptr->pclass) - { - case CLASS_WARRIOR: - case CLASS_ARCHER: - case CLASS_SAMURAI: - case CLASS_CAVALRY: - case CLASS_BERSERKER: - case CLASS_SNIPER: - { - return; - } - case CLASS_SMITH: - case CLASS_PALADIN: - case CLASS_CHAOS_WARRIOR: - case CLASS_IMITATOR: - case CLASS_BEASTMASTER: - case CLASS_NINJA: - { - if (0 != randint0(240000L / (plev + 5))) return; - - break; - } - case CLASS_RANGER: - case CLASS_WARRIOR_MAGE: - case CLASS_RED_MAGE: - case CLASS_MONK: - { - if (0 != randint0(95000L / (plev * plev + 40))) return; - - break; - } - case CLASS_PRIEST: - case CLASS_BARD: - case CLASS_ROGUE: - case CLASS_FORCETRAINER: - case CLASS_MINDCRAFTER: - { - if (0 != randint0(20000L / (plev * plev + 40))) return; - - break; - } - case CLASS_MAGE: - case CLASS_HIGH_MAGE: - case CLASS_SORCERER: - case CLASS_MAGIC_EATER: - case CLASS_MIRROR_MASTER: - case CLASS_BLUE_MAGE: - { - if (0 != randint0(9000L / (plev * plev + 40))) return; - - break; - } - case CLASS_TOURIST: - { - if (0 != randint0(20000L / ((plev + 50)*(plev + 50)))) return; - - break; - } - } - - for (INVENTORY_IDX i = 0; i < INVEN_TOTAL; i++) - { - bool okay = FALSE; - o_ptr = &creature_ptr->inventory_list[i]; - if (!o_ptr->k_idx) continue; - - switch (o_ptr->tval) - { - case TV_RING: - case TV_AMULET: - case TV_LITE: - case TV_FIGURINE: - { - okay = TRUE; - break; - } - } - - if (!okay) continue; - if ((i < INVEN_RARM) && (0 != randint0(5))) continue; - - sense_inventory_aux(creature_ptr, i, TRUE); - } -} - - -/*! * @brief プレイヤーのHP自然回復処理 / Regenerate hit points -RAK- * @param percent 回復比率 * @return なし diff --git a/src/inventory/simple-appraiser.c b/src/inventory/simple-appraiser.c new file mode 100644 index 000000000..c18b50246 --- /dev/null +++ b/src/inventory/simple-appraiser.c @@ -0,0 +1,374 @@ +#include "angband.h" +#include "inventory/simple-appraiser.h" +#include "object-flavor.h" +#include "avatar.h" +#include "object-hook.h" +#include "object/object-kind.h" +#include "player-move.h" +#include "player-inventory.h" +#include "autopick/autopick.h" + +/*! + * @brief ‹[Ž—ŠÓ’è‚ðŽÀÛ‚ɍs‚¢”»’è‚𔽉f‚·‚é + * @param slot ‹[Ž—ŠÓ’è‚ðs‚¤ƒvƒŒƒCƒ„[‚̏ŠŽƒŠƒXƒgID + * @param creature_ptr ƒvƒŒ[ƒ„[‚Ö‚ÌŽQÆƒ|ƒCƒ“ƒ^ + * @param heavy d“x‚Ì‹[Ž—ŠÓ’è‚ðs‚¤‚È‚ç‚ÎTRUE + * @return ‚È‚µ + */ +static void sense_inventory_aux(player_type* creature_ptr, INVENTORY_IDX slot, bool heavy) +{ + byte feel; + object_type* o_ptr = &creature_ptr->inventory_list[slot]; + GAME_TEXT o_name[MAX_NLEN]; + if (o_ptr->ident & (IDENT_SENSE)) + return; + if (object_is_known(o_ptr)) + return; + + feel = (heavy ? value_check_aux1(o_ptr) : value_check_aux2(o_ptr)); + if (!feel) + return; + + if ((creature_ptr->muta3 & MUT3_BAD_LUCK) && !randint0(13)) { + switch (feel) { + case FEEL_TERRIBLE: { + feel = FEEL_SPECIAL; + break; + } + case FEEL_WORTHLESS: { + feel = FEEL_EXCELLENT; + break; + } + case FEEL_CURSED: { + if (heavy) + feel = randint0(3) ? FEEL_GOOD : FEEL_AVERAGE; + else + feel = FEEL_UNCURSED; + break; + } + case FEEL_AVERAGE: { + feel = randint0(2) ? FEEL_CURSED : FEEL_GOOD; + break; + } + case FEEL_GOOD: { + if (heavy) + feel = randint0(3) ? FEEL_CURSED : FEEL_AVERAGE; + else + feel = FEEL_CURSED; + break; + } + case FEEL_EXCELLENT: { + feel = FEEL_WORTHLESS; + break; + } + case FEEL_SPECIAL: { + feel = FEEL_TERRIBLE; + break; + } + } + } + + if (disturb_minor) + disturb(creature_ptr, FALSE, FALSE); + + object_desc(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); + if (slot >= INVEN_RARM) { +#ifdef JP + msg_format("%s%s(%c)‚Í%s‚Æ‚¢‚¤Š´‚¶‚ª‚·‚é...", + describe_use(creature_ptr, slot), o_name, index_to_label(slot), game_inscriptions[feel]); +#else + msg_format("You feel the %s (%c) you are %s %s %s...", + o_name, index_to_label(slot), describe_use(creature_ptr, slot), + ((o_ptr->number == 1) ? "is" : "are"), + game_inscriptions[feel]); +#endif + + } else { +#ifdef JP + msg_format("ƒUƒbƒN‚Ì’†‚Ì%s(%c)‚Í%s‚Æ‚¢‚¤Š´‚¶‚ª‚·‚é...", + o_name, index_to_label(slot), game_inscriptions[feel]); +#else + msg_format("You feel the %s (%c) in your pack %s %s...", + o_name, index_to_label(slot), + ((o_ptr->number == 1) ? "is" : "are"), + game_inscriptions[feel]); +#endif + } + + o_ptr->ident |= (IDENT_SENSE); + o_ptr->feeling = feel; + + autopick_alter_item(creature_ptr, slot, destroy_feeling); + creature_ptr->update |= (PU_COMBINE | PU_REORDER); + creature_ptr->window |= (PW_INVEN | PW_EQUIP); +} + +/*! + * @brief 1ƒvƒŒƒCƒ„[ƒ^[ƒ“–ˆ‚É•ŠíA–h‹ï‚Ì‹[Ž—ŠÓ’肪s‚í‚ê‚é‚©‚ð”»’è‚·‚éB + * @return ‚È‚µ + * @details + * Sense the inventory\n + *\n + * Class 0 = Warrior --> fast and heavy\n + * Class 1 = Mage --> slow and light\n + * Class 2 = Priest --> fast but light\n + * Class 3 = Rogue --> okay and heavy\n + * Class 4 = Ranger --> slow but heavy (changed!)\n + * Class 5 = Paladin --> slow but heavy\n + */ +void sense_inventory1(player_type* creature_ptr) +{ + PLAYER_LEVEL plev = creature_ptr->lev; + bool heavy = FALSE; + object_type* o_ptr; + if (creature_ptr->confused) + return; + + switch (creature_ptr->pclass) { + case CLASS_WARRIOR: + case CLASS_ARCHER: + case CLASS_SAMURAI: + case CLASS_CAVALRY: { + if (0 != randint0(9000L / (plev * plev + 40))) + return; + + heavy = TRUE; + break; + } + case CLASS_SMITH: { + if (0 != randint0(6000L / (plev * plev + 50))) + return; + + heavy = TRUE; + break; + } + case CLASS_MAGE: + case CLASS_HIGH_MAGE: + case CLASS_SORCERER: + case CLASS_MAGIC_EATER: { + if (0 != randint0(240000L / (plev + 5))) + return; + + break; + } + case CLASS_PRIEST: + case CLASS_BARD: { + if (0 != randint0(10000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_ROGUE: + case CLASS_NINJA: { + if (0 != randint0(20000L / (plev * plev + 40))) + return; + + heavy = TRUE; + break; + } + case CLASS_RANGER: { + if (0 != randint0(95000L / (plev * plev + 40))) + return; + + heavy = TRUE; + break; + } + case CLASS_PALADIN: + case CLASS_SNIPER: { + if (0 != randint0(77777L / (plev * plev + 40))) + return; + + heavy = TRUE; + break; + } + case CLASS_WARRIOR_MAGE: + case CLASS_RED_MAGE: { + if (0 != randint0(75000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_MINDCRAFTER: + case CLASS_IMITATOR: + case CLASS_BLUE_MAGE: + case CLASS_MIRROR_MASTER: { + if (0 != randint0(55000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_CHAOS_WARRIOR: { + if (0 != randint0(80000L / (plev * plev + 40))) + return; + + heavy = TRUE; + break; + } + case CLASS_MONK: + case CLASS_FORCETRAINER: { + if (0 != randint0(20000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_TOURIST: { + if (0 != randint0(20000L / ((plev + 50) * (plev + 50)))) + return; + + heavy = TRUE; + break; + } + case CLASS_BEASTMASTER: { + if (0 != randint0(65000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_BERSERKER: { + heavy = TRUE; + break; + } + } + + if (compare_virtue(creature_ptr, V_KNOWLEDGE, 100, VIRTUE_LARGE)) + heavy = TRUE; + + for (INVENTORY_IDX i = 0; i < INVEN_TOTAL; i++) { + bool okay = FALSE; + + o_ptr = &creature_ptr->inventory_list[i]; + + if (!o_ptr->k_idx) + continue; + + switch (o_ptr->tval) { + case TV_SHOT: + case TV_ARROW: + case TV_BOLT: + case TV_BOW: + case TV_DIGGING: + case TV_HAFTED: + case TV_POLEARM: + case TV_SWORD: + case TV_BOOTS: + case TV_GLOVES: + case TV_HELM: + case TV_CROWN: + case TV_SHIELD: + case TV_CLOAK: + case TV_SOFT_ARMOR: + case TV_HARD_ARMOR: + case TV_DRAG_ARMOR: + case TV_CARD: { + okay = TRUE; + break; + } + } + + if (!okay) + continue; + if ((i < INVEN_RARM) && (0 != randint0(5))) + continue; + + if ((creature_ptr->muta3 & MUT3_GOOD_LUCK) && !randint0(13)) { + heavy = TRUE; + } + + sense_inventory_aux(creature_ptr, i, heavy); + } +} + +/*! + * @brief 1ƒvƒŒƒCƒ„[ƒ^[ƒ“–ˆ‚É•ŠíA–h‹ïˆÈŠO‚Ì‹[Ž—ŠÓ’肪s‚í‚ê‚é‚©‚ð”»’è‚·‚éB + * @return ‚È‚µ + */ +void sense_inventory2(player_type* creature_ptr) +{ + PLAYER_LEVEL plev = creature_ptr->lev; + object_type* o_ptr; + + if (creature_ptr->confused) + return; + + switch (creature_ptr->pclass) { + case CLASS_WARRIOR: + case CLASS_ARCHER: + case CLASS_SAMURAI: + case CLASS_CAVALRY: + case CLASS_BERSERKER: + case CLASS_SNIPER: { + return; + } + case CLASS_SMITH: + case CLASS_PALADIN: + case CLASS_CHAOS_WARRIOR: + case CLASS_IMITATOR: + case CLASS_BEASTMASTER: + case CLASS_NINJA: { + if (0 != randint0(240000L / (plev + 5))) + return; + + break; + } + case CLASS_RANGER: + case CLASS_WARRIOR_MAGE: + case CLASS_RED_MAGE: + case CLASS_MONK: { + if (0 != randint0(95000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_PRIEST: + case CLASS_BARD: + case CLASS_ROGUE: + case CLASS_FORCETRAINER: + case CLASS_MINDCRAFTER: { + if (0 != randint0(20000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_MAGE: + case CLASS_HIGH_MAGE: + case CLASS_SORCERER: + case CLASS_MAGIC_EATER: + case CLASS_MIRROR_MASTER: + case CLASS_BLUE_MAGE: { + if (0 != randint0(9000L / (plev * plev + 40))) + return; + + break; + } + case CLASS_TOURIST: { + if (0 != randint0(20000L / ((plev + 50) * (plev + 50)))) + return; + + break; + } + } + + for (INVENTORY_IDX i = 0; i < INVEN_TOTAL; i++) { + bool okay = FALSE; + o_ptr = &creature_ptr->inventory_list[i]; + if (!o_ptr->k_idx) + continue; + + switch (o_ptr->tval) { + case TV_RING: + case TV_AMULET: + case TV_LITE: + case TV_FIGURINE: { + okay = TRUE; + break; + } + } + + if (!okay) + continue; + if ((i < INVEN_RARM) && (0 != randint0(5))) + continue; + + sense_inventory_aux(creature_ptr, i, TRUE); + } +} diff --git a/src/inventory/simple-appraiser.h b/src/inventory/simple-appraiser.h new file mode 100644 index 000000000..3d515b0f0 --- /dev/null +++ b/src/inventory/simple-appraiser.h @@ -0,0 +1,4 @@ +#pragma once + +void sense_inventory1(player_type* creature_ptr); +void sense_inventory2(player_type* creature_ptr); -- 2.11.0