3 #include "system/angband.h"
6 #define STORE_OBJ_LEVEL 5 //!< 通常店舗の階層レベル / Magic Level for normal stores
9 STORE_GENERAL = 0, //!< 店舗の種類: 雑貨屋
10 STORE_ARMOURY = 1, //!< 店舗の種類: 防具屋
11 STORE_WEAPON = 2, //!< 店舗の種類: 武器屋
12 STORE_TEMPLE = 3, //!< 店舗の種類: 寺院
13 STORE_ALCHEMIST = 4, //!< 店舗の種類: 錬金術の店
14 STORE_MAGIC = 5, //!< 店舗の種類: 魔道具屋
15 STORE_BLACK = 6, //!< 店舗の種類: ブラック・マーケット
16 STORE_HOME = 7, //!< 店舗の種類: 我が家
17 STORE_BOOK = 8, //!< 店舗の種類: 書店
18 STORE_MUSEUM = 9, //!< 店舗の種類: 博物館
22 using store_k_idx = std::vector<KIND_OBJECT_IDX>;
28 byte type{}; //!< Store type
29 byte owner{}; //!< Owner index
30 byte extra{}; //!< Unused for now
31 s16b insult_cur{}; //!< Insult counter
32 s16b good_buy{}; //!< Number of "good" buys (3.0.0で廃止)
33 s16b bad_buy{}; //!< Number of "bad" buys (3.0.0で廃止)
34 s32b store_open{}; //!< Closed until this turn
35 s32b last_visit{}; //!< Last visited on this turn
36 store_k_idx regular{}; //!< Table -- Legal regular item kinds
37 store_k_idx table{}; //!< Table -- Legal item kinds
38 s16b stock_num{}; //!< Stock -- Number of entries
39 s16b stock_size{}; //!< Stock -- Total Size of Array
40 object_type *stock{}; //!< Stock -- Actual stock items
43 extern int cur_store_num;
44 extern store_type *st_ptr;
46 typedef bool (*black_market_crap_pf)(player_type *, object_type *);
47 typedef bool (*store_will_buy_pf)(player_type *, object_type *);
48 typedef void (*mass_produce_pf)(player_type *, object_type *);
49 void store_delete(void);
50 void store_create(player_type *player_ptr, KIND_OBJECT_IDX k_idx, black_market_crap_pf black_market_crap, store_will_buy_pf store_will_buy, mass_produce_pf mass_produce);
51 void store_item_increase(INVENTORY_IDX item, ITEM_NUMBER num);
52 void store_item_optimize(INVENTORY_IDX item);
53 int store_carry(player_type *player_ptr, object_type *o_ptr);
54 bool store_object_similar(object_type *o_ptr, object_type *j_ptr);