OSDN Git Service

[Refactor] #37353 angband_term_name と angband_color_table を term.c/h へ移動.
[hengband/hengband.git] / src / variable.c
1 /*!
2  * @file variable.c
3  * @brief グローバル変数定義 / Angband variables
4  * @date 2014/10/05
5  * @author
6  * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke<br>
7  * <br>
8  * This software may be copied and distributed for educational, research,<br>
9  * and not for profit purposes provided that this copyright and statement<br>
10  * are included in all such copies.  Other copyrights may also apply.<br>
11  */
12
13 #include "angband.h"
14 #include "geometry.h"
15
16 s16b command_cmd;               /* Current "Angband Command" */
17
18 COMMAND_ARG command_arg;        /*!< 各種コマンドの汎用的な引数として扱う / Gives argument of current command */
19 COMMAND_NUM command_rep;        /*!< 各種コマンドの汎用的なリピート数として扱う / Gives repetition of current command */
20 DIRECTION command_dir;          /*!< 各種コマンドの汎用的な方向値処理として扱う/ Gives direction of current command */
21
22 s16b command_see;               /* See "object1.c" */
23 s16b command_wrk;               /* See "object1.c" */
24
25 TERM_LEN command_gap = 999;         /* See "object1.c" */
26
27 s16b command_new;               /* Command chaining from inven/equip view */
28
29 bool msg_flag;                  /* Used in msg_print() for "buffering" */
30
31 s16b running;                   /* Current counter for running, if any */
32
33 GAME_TURN old_battle;
34
35 s16b signal_count;              /* Hack -- Count interupts */
36
37 bool inkey_base;                /* See the "inkey()" function */
38 bool inkey_xtra;                /* See the "inkey()" function */
39 bool inkey_scan;                /* See the "inkey()" function */
40 bool inkey_flag;                /* See the "inkey()" function */
41 bool get_com_no_macros = FALSE; /* Expand macros in "get_com" or not */
42
43 OBJECT_SUBTYPE_VALUE coin_type; /* Hack -- force coin type */
44
45 bool repair_monsters;   /* Hack -- optimize detect monsters */
46 bool repair_objects;    /* Hack -- optimize detect objects */
47
48 MONSTER_IDX hack_m_idx = 0;     /* Hack -- see "process_monsters()" */
49 MONSTER_IDX hack_m_idx_ii = 0;
50
51 bool multi_rew = FALSE;
52
53 int total_friends = 0;
54 int leaving_quest = 0;
55 bool reinit_wilderness = FALSE;
56
57 /*
58  * Dungeon size info
59  */
60
61 POSITION panel_row_min, panel_row_max;
62 POSITION panel_col_min, panel_col_max;
63 POSITION panel_col_prt, panel_row_prt;
64
65
66 /*
67  * Targetting variables
68  */
69 MONSTER_IDX target_who;
70 POSITION target_col;
71 POSITION target_row;
72
73
74 /*
75  * User info
76  */
77 int player_uid;
78 int player_euid;
79 int player_egid;
80
81 /*
82  * Stripped version of "player_name"
83  */
84 char player_base[32];
85
86
87 /*
88  * Buffer to hold the current savefile name
89  * 'savefile' holds full path name. 'savefile_base' holds only base name.
90  */
91 char savefile[1024];
92 char savefile_base[40];
93
94
95 pos_list tmp_pos;
96
97
98 /*
99  * Number of active macros.
100  */
101 s16b macro__num;
102
103 /*
104  * Array of macro patterns [MACRO_MAX]
105  */
106 concptr *macro__pat;
107
108 /*
109  * Array of macro actions [MACRO_MAX]
110  */
111 concptr *macro__act;
112
113 /*
114  * Array of macro types [MACRO_MAX]
115  */
116 bool *macro__cmd;
117
118 /*
119  * Current macro action [1024]
120  */
121 char *macro__buf;
122
123
124 /*
125  * The number of quarks
126  */
127 STR_OFFSET quark__num;
128
129 /*
130  * The pointers to the quarks [QUARK_MAX]
131  */
132 concptr *quark__str;
133
134 /*
135  * The array of window pointers
136  */
137 term *angband_term[8];
138
139 /*
140  * Number of floor_id used from birth
141  */
142 FLOOR_IDX max_floor_id;
143
144 /*
145  * Sign for current process used in temporal files.
146  * Actually it is the start time of current process.
147  */
148 u32b saved_floor_file_sign;
149
150
151 /*
152  * Keymaps for each "mode" associated with each keypress.
153  */
154 concptr keymap_act[KEYMAP_MODES][256];
155
156
157
158 /*** Player information ***/
159
160 /*
161  * Static player info record
162  */
163 player_type p_body;
164
165 /*
166  * Pointer to the player info
167  */
168 player_type *p_ptr = &p_body;
169
170
171 /*
172  * Here is a "pseudo-hook" used during calls to "get_item()" and
173  * "show_inven()" and "show_equip()", and the choice window routines.
174  */
175 OBJECT_TYPE_VALUE item_tester_tval;
176
177
178 /*
179  * Here is a "hook" used during calls to "get_item()" and
180  * "show_inven()" and "show_equip()", and the choice window routines.
181  */
182 bool (*item_tester_hook)(object_type*);
183
184
185
186
187 /*
188  * Hack -- function hooks to restrict "get_mon_num_prep()" function
189  */
190 monsterrace_hook_type get_mon_num_hook;
191 monsterrace_hook_type get_mon_num2_hook;
192
193
194 /*
195  * Hack -- function hook to restrict "get_obj_num_prep()" function
196  */
197 bool (*get_obj_num_hook)(KIND_OBJECT_IDX k_idx);
198
199 /*
200  * Flags for initialization
201  */
202 int init_flags;
203
204
205 /*
206  * The "highscore" file descriptor, if available.
207  */
208 int highscore_fd = -1;
209
210 bool can_save = FALSE;        /* Game can be saved */
211
212
213 MONSTER_IDX pet_t_m_idx;
214 MONSTER_IDX riding_t_m_idx;
215
216 MONSTER_IDX today_mon;
217
218 u32b start_time;
219
220 bool sukekaku;
221 bool new_mane;
222
223 /*
224  * Which dungeon ?
225  */
226 DEPTH *max_dlv;
227
228 COMMAND_CODE now_message;
229 bool use_menu;
230
231 #ifdef CHUUKEI
232 bool chuukei_server;
233 bool chuukei_client;
234 char *server_name;
235 int server_port;
236 #endif
237
238 /* for movie */
239 bool browsing_movie;
240
241
242 /* for snipers */
243 bool reset_concent = FALSE;   /* Concentration reset flag */
244
245