6 typedef struct owner_type owner_type;
10 concptr owner_name; /* Name */
11 PRICE max_cost; /* Purse limit */
12 byte max_inflate; /* Inflation (max) */
13 byte min_inflate; /* Inflation (min) */
14 byte haggle_per; /* Haggle unit */
15 byte insult_max; /* Insult limit */
16 byte owner_race; /* Owner race */
21 * A store, with an owner, various state flags, a current stock
22 * of items, and a table of items that are often purchased.
24 typedef struct store_type store_type;
28 byte type; /* Store type */
30 byte owner; /* Owner index */
31 byte extra; /* Unused for now */
33 s16b insult_cur; /* Insult counter */
35 s16b good_buy; /* Number of "good" buys */
36 s16b bad_buy; /* Number of "bad" buys */
38 s32b store_open; /* Closed until this turn */
40 s32b last_visit; /* Last visited on this turn */
42 s16b table_num; /* Table -- Number of entries */
43 s16b table_size; /* Table -- Total Size of Array */
44 s16b *table; /* Table -- Legal item kinds */
46 s16b stock_num; /* Stock -- Number of entries */
47 s16b stock_size; /* Stock -- Total Size of Array */
48 object_type *stock; /* Stock -- Actual stock items */
54 #define STORE_GENERAL 0 /*!< 店舗の種類: 雑貨屋 */
55 #define STORE_ARMOURY 1 /*!< 店舗の種類: 防具屋 */
56 #define STORE_WEAPON 2 /*!< 店舗の種類: 武器屋 */
57 #define STORE_TEMPLE 3 /*!< 店舗の種類: 寺院 */
58 #define STORE_ALCHEMIST 4 /*!< 店舗の種類: 錬金術の店 */
59 #define STORE_MAGIC 5 /*!< 店舗の種類: 魔道具屋 */
60 #define STORE_BLACK 6 /*!< 店舗の種類: ブラック・マーケット */
61 #define STORE_HOME 7 /*!< 店舗の種類: 我が家 */
62 #define STORE_BOOK 8 /*!< 店舗の種類: 書店 */
63 #define STORE_MUSEUM 9 /*!< 店舗の種類: 博物館 */
64 #define MAX_STORES 10 /*!< store.c用の店舗の種類最大数 / Total number of stores (see "store.c", etc) */
66 #define MAX_OWNERS 32 /*!< 各店舗毎の店主定義最大数 / Total number of owners per store (see "store.c", etc) */
71 #define STORE_INVEN_MAX 24 /* Max number of discrete objs in inven */
72 #define STORE_CHOICES 48 /* Number of items to choose stock from */
73 #define STORE_OBJ_LEVEL 5 /* Magic Level for normal stores */
74 #define STORE_TURNOVER 9 /* Normal shop turnover, per day */
75 #define STORE_MIN_KEEP 6 /* Min slots to "always" keep full */
76 #define STORE_MAX_KEEP 18 /* Max slots to "always" keep full */
77 #define STORE_SHUFFLE 21 /* 1/Chance (per day) of an owner changing */
78 #define STORE_TICKS 1000 /* Number of ticks between turnovers */
81 extern bool combine_and_reorder_home(int store_num);
82 extern void do_cmd_store(player_type *player_ptr);
83 extern void store_shuffle(player_type *player_ptr, int which);
84 extern void store_maint(player_type *player_ptr, int town_num, int store_num);
85 extern void store_init(int town_num, int store_num);
87 extern const owner_type owners[MAX_STORES][MAX_OWNERS];
88 extern byte store_table[MAX_STORES][STORE_CHOICES][2];