OSDN Git Service

ff2a1e82447873f9cc66f28d1fb3aabc3553ad6c
[hengband/hengband.git] / src / store / store-util.h
1 #pragma once
2
3 #include "system/angband.h"
4
5 #define STORE_OBJ_LEVEL 5 /* Magic Level for normal stores */
6
7 #define STORE_GENERAL   0 /*!< 店舗の種類: 雑貨屋 */
8 #define STORE_ARMOURY   1 /*!< 店舗の種類: 防具屋 */
9 #define STORE_WEAPON    2 /*!< 店舗の種類: 武器屋 */
10 #define STORE_TEMPLE    3 /*!< 店舗の種類: 寺院 */
11 #define STORE_ALCHEMIST 4 /*!< 店舗の種類: 錬金術の店 */
12 #define STORE_MAGIC     5 /*!< 店舗の種類: 魔道具屋 */
13 #define STORE_BLACK     6 /*!< 店舗の種類: ブラック・マーケット */
14 #define STORE_HOME      7 /*!< 店舗の種類: 我が家 */
15 #define STORE_BOOK      8 /*!< 店舗の種類: 書店 */
16 #define STORE_MUSEUM    9 /*!< 店舗の種類: 博物館 */
17
18 typedef struct store_type
19 {
20         byte type;                              /* Store type */
21
22         byte owner;                             /* Owner index */
23         byte extra;                             /* Unused for now */
24
25         s16b insult_cur;                /* Insult counter */
26
27         s16b good_buy;                  /* Number of "good" buys */
28         s16b bad_buy;                   /* Number of "bad" buys */
29
30         s32b store_open;                /* Closed until this turn */
31
32         s32b last_visit;                /* Last visited on this turn */
33
34         s16b table_num;                 /* Table -- Number of entries */
35         s16b table_size;                /* Table -- Total Size of Array */
36         s16b *table;                    /* Table -- Legal item kinds */
37
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 */
41 } store_type;
42
43 extern int cur_store_num;
44 extern store_type *st_ptr;
45
46 void store_delete(void);
47 void store_create(player_type *player_ptr, bool(*black_market_crap)(player_type*, object_type*));
48 void store_item_increase(INVENTORY_IDX item, int num);
49 void store_item_optimize(INVENTORY_IDX item);
50 bool store_will_buy(object_type *o_ptr);
51 int store_carry(object_type *o_ptr);
52 bool store_object_similar(object_type *o_ptr, object_type *j_ptr);