1 #include "market/building-initializer.h"
2 #include "floor/floor-town.h"
3 #include "market/articles-on-sale.h"
4 #include "object/object-kind.h"
5 #include "store/store-owners.h"
6 #include "store/store-util.h"
7 #include "store/store.h"
8 #include "system/building-type-definition.h"
9 #include "system/object-type-definition.h"
12 * @brief 町情報読み込みのメインルーチン /
13 * Initialize town array
18 C_MAKE(town_info, max_towns, town_type);
19 for (int i = 1; i < max_towns; i++) {
20 C_MAKE(town_info[i].store, MAX_STORES, store_type);
21 for (int j = 0; j < MAX_STORES; j++) {
22 store_type *store_ptr = &town_info[i].store[j];
23 if ((i > 1) && (j == STORE_MUSEUM || j == STORE_HOME))
27 * 我が家が 20 ページまで使える隠し機能のための準備。
28 * オプションが有効でもそうでなくても一応スペースを作っておく。
30 if (j == STORE_HOME) {
31 store_ptr->stock_size = STORE_INVEN_MAX * 10;
32 } else if (j == STORE_MUSEUM) {
33 store_ptr->stock_size = STORE_INVEN_MAX * 50;
35 store_ptr->stock_size = STORE_INVEN_MAX;
38 C_MAKE(store_ptr->stock, store_ptr->stock_size, object_type);
39 if ((j == STORE_BLACK) || (j == STORE_HOME) || (j == STORE_MUSEUM))
42 store_ptr->table_size = STORE_CHOICES;
43 C_MAKE(store_ptr->table, store_ptr->table_size, s16b);
44 for (int k = 0; k < STORE_CHOICES; k++) {
45 KIND_OBJECT_IDX k_idx;
46 int tv = store_table[j][k][0];
47 int sv = store_table[j][k][1];
48 for (k_idx = 1; k_idx < max_k_idx; k_idx++) {
49 object_kind *k_ptr = &k_info[k_idx];
50 if ((k_ptr->tval == tv) && (k_ptr->sval == sv))
54 if (k_idx == max_k_idx)
57 store_ptr->table[store_ptr->table_num++] = k_idx;
66 * @brief 店情報初期化のメインルーチン /
67 * Initialize buildings
70 errr init_buildings(void)
72 for (int i = 0; i < MAX_BLDG; i++) {
73 building[i].name[0] = '\0';
74 building[i].owner_name[0] = '\0';
75 building[i].owner_race[0] = '\0';
77 for (int j = 0; j < 8; j++) {
78 building[i].act_names[j][0] = '\0';
79 building[i].member_costs[j] = 0;
80 building[i].other_costs[j] = 0;
81 building[i].letters[j] = 0;
82 building[i].actions[j] = 0;
83 building[i].action_restr[j] = 0;
86 for (int j = 0; j < MAX_CLASS; j++)
87 building[i].member_class[j] = 0;
89 for (int j = 0; j < MAX_RACES; j++)
90 building[i].member_race[j] = 0;
92 for (int j = 0; j < MAX_MAGIC + 1; j++)
93 building[i].member_realm[j] = 0;