OSDN Git Service

[Refactor] #37353 max_*_idx をいくつか整理.
[hengband/hengband.git] / src / externs.h
1 /*!
2  * @file externs.h
3  * @brief Angband(変愚蛮怒)基本関数、グローバル変数ヘッダファイル / 
4  * extern declarations (variables and functions)
5  * @date 2014/08/08
6  * @author
7  * Copyright (c) 1997 Ben Harrison
8  * @details
9  * This software may be copied and distributed for educational, research,
10  * and not for profit purposes provided that this copyright and statement
11  * are included in all such copies.
12  * Note that some files have their own header files
13  * (z-virt.h, z-util.h, z-form.h, term.h, random.h)
14  */
15 #include "geometry.h"
16 #include "grid.h"
17 #include "floor-save.h"
18 #include "monster.h"
19 #include "monsterrace.h"
20 #include "object.h"
21 #include "player-status.h"
22
23 /*
24  * Automatically generated "variable" declarations
25  */
26 extern int max_macrotrigger;
27 extern concptr macro_template;
28 extern concptr macro_modifier_chr;
29 extern concptr macro_modifier_name[MAX_MACRO_MOD];
30 extern concptr macro_trigger_name[MAX_MACRO_TRIG];
31 extern concptr macro_trigger_keycode[2][MAX_MACRO_TRIG];
32
33 extern int level_up;
34
35
36 /* tables.c */
37 extern const POSITION ddd[9];
38 extern const POSITION ddx[10];
39 extern const POSITION ddy[10];
40 extern const POSITION ddx_ddd[9];
41 extern const POSITION ddy_ddd[9];
42 extern const POSITION cdd[8];
43 extern const POSITION ddx_cdd[8];
44 extern const POSITION ddy_cdd[8];
45 extern const char hexsym[16];
46 extern const char listsym[];
47 extern const concptr color_char;
48 extern const byte adj_mag_study[];
49 extern const byte adj_mag_mana[];
50 extern const byte adj_mag_fail[];
51 extern const byte adj_mag_stat[];
52 extern const byte adj_chr_gold[];
53 extern const byte adj_int_dev[];
54 extern const byte adj_wis_sav[];
55 extern const byte adj_dex_dis[];
56 extern const byte adj_int_dis[];
57 extern const byte adj_dex_ta[];
58 extern const byte adj_str_td[];
59 extern const byte adj_dex_th[];
60 extern const byte adj_str_th[];
61 extern const byte adj_str_wgt[];
62 extern const byte adj_str_hold[];
63 extern const byte adj_str_dig[];
64 extern const byte adj_str_blow[];
65 extern const byte adj_dex_blow[];
66 extern const byte adj_dex_safe[];
67 extern const byte adj_con_fix[];
68 extern const byte adj_con_mhp[];
69 extern const byte adj_chr_chm[];
70 extern const byte blows_table[12][12];
71 extern const byte extract_energy[200];
72
73 extern const u32b fake_spell_flags[4];
74 extern const concptr realm_names[];
75 #ifdef JP
76 extern const concptr E_realm_names[];
77 #endif
78 extern const concptr spell_names[VALID_REALM][32];
79 extern const concptr player_title[MAX_CLASS][PY_MAX_LEVEL/5];
80 extern const concptr color_names[16];
81 extern const concptr stat_names[6];
82 extern const concptr stat_names_reduced[6];
83 extern const concptr window_flag_desc[32];
84
85 extern const concptr game_inscriptions[];
86
87 extern const concptr ident_info[];
88 extern const byte feature_action_flags[FF_FLAG_MAX];
89
90 /* variable.c */
91 extern const concptr copyright[5];
92 extern byte h_ver_major;
93 extern byte h_ver_minor;
94 extern byte h_ver_patch;
95 extern byte h_ver_extra;
96 extern byte sf_extra;
97 extern u32b sf_system;
98 extern byte z_major;
99 extern byte z_minor;
100 extern byte z_patch;
101 extern u32b sf_when;
102 extern u16b sf_lives;
103 extern u16b sf_saves;
104 extern bool arg_fiddle;
105 extern bool arg_wizard;
106 extern bool arg_music;
107 extern bool arg_sound;
108 extern byte arg_graphics;
109 extern bool arg_monochrome;
110 extern bool arg_force_original;
111 extern bool arg_force_roguelike;
112 extern bool arg_bigtile;
113 extern bool character_generated;
114 extern bool character_dungeon;
115 extern bool character_loaded;
116 extern bool character_saved;
117 extern bool character_icky;
118 extern bool character_xtra;
119 extern bool creating_savefile;
120 extern COMMAND_CODE command_cmd;
121 extern COMMAND_ARG command_arg;
122 extern s16b command_rep;
123 extern DIRECTION command_dir;
124 extern s16b command_see;
125 extern TERM_LEN command_gap;
126 extern s16b command_wrk;
127 extern s16b command_new;
128 extern bool msg_flag;
129 extern s16b running;
130 extern bool invoking_midnight_curse;
131 extern GAME_TURN old_battle;
132 extern bool use_sound;
133 extern bool use_music;
134 extern bool use_graphics;
135 extern bool use_bigtile;
136 extern s16b signal_count;
137 extern bool inkey_base;
138 extern bool inkey_xtra;
139 extern bool inkey_scan;
140 extern bool inkey_flag;
141 extern bool get_com_no_macros;
142 extern OBJECT_SUBTYPE_VALUE coin_type;
143 extern bool opening_chest;
144 extern bool shimmer_monsters;
145 extern bool shimmer_objects;
146 extern bool repair_monsters;
147 extern bool repair_objects;
148 extern MONSTER_IDX hack_m_idx;
149 extern MONSTER_IDX hack_m_idx_ii;
150 extern int total_friends;
151 extern int leaving_quest;
152 extern bool reinit_wilderness;
153 extern bool multi_rew;
154 extern char summon_kin_type;
155 extern bool is_loading_now;
156 extern bool reset_concent;
157 extern bool is_fired;
158
159
160
161 /*
162  * Software options (set via the '=' command).  See "tables.c"
163  */
164
165
166 extern char record_o_name[MAX_NLEN];
167 extern GAME_TURN record_turn;
168 extern POSITION panel_row_min, panel_row_max;
169 extern POSITION panel_col_min, panel_col_max;
170 extern POSITION panel_col_prt, panel_row_prt;
171 extern MONSTER_IDX target_who;
172 extern POSITION target_col;
173 extern POSITION target_row;
174 extern int player_uid;
175 extern int player_euid;
176 extern int player_egid;
177 extern char player_base[32];
178 extern char savefile[1024];
179 extern char savefile_base[40];
180 extern pos_list tmp_pos;
181 extern s16b macro__num;
182 extern concptr *macro__pat;
183 extern concptr *macro__act;
184 extern bool *macro__cmd;
185 extern char *macro__buf;
186 extern STR_OFFSET quark__num;
187 extern concptr *quark__str;
188 extern u32b message__next;
189 extern u32b message__last;
190 extern u32b message__head;
191 extern u32b message__tail;
192 extern u32b *message__ptr;
193 extern char *message__buf;
194 extern BIT_FLAGS option_flag[8];
195 extern BIT_FLAGS option_mask[8];
196 extern BIT_FLAGS window_flag[8];
197 extern BIT_FLAGS window_mask[8];
198 extern term *angband_term[8];
199 extern const char angband_term_name[8][16];
200 extern byte angband_color_table[256][4];
201 extern const concptr angband_sound_name[SOUND_MAX];
202 extern const concptr angband_music_basic_name[MUSIC_BASIC_MAX];
203 extern FLOOR_IDX max_floor_id;
204 extern u32b saved_floor_file_sign;
205 extern TERM_COLOR misc_to_attr[256];
206 extern SYMBOL_CODE misc_to_char[256];
207 extern TERM_COLOR tval_to_attr[128];
208 extern SYMBOL_CODE tval_to_char[128];
209 extern concptr keymap_act[KEYMAP_MODES][256];
210 extern player_type *p_ptr;
211 extern char *f_name;
212 extern char *f_tag;
213
214 extern concptr ANGBAND_SYS;
215 extern concptr ANGBAND_KEYBOARD;
216 extern concptr ANGBAND_GRAF;
217 extern concptr ANGBAND_DIR;
218 extern concptr ANGBAND_DIR_APEX;
219 extern concptr ANGBAND_DIR_BONE;
220 extern concptr ANGBAND_DIR_DATA;
221 extern concptr ANGBAND_DIR_EDIT;
222 extern concptr ANGBAND_DIR_SCRIPT;
223 extern concptr ANGBAND_DIR_FILE;
224 extern concptr ANGBAND_DIR_HELP;
225 extern concptr ANGBAND_DIR_INFO;
226 extern concptr ANGBAND_DIR_PREF;
227 extern concptr ANGBAND_DIR_SAVE;
228 extern concptr ANGBAND_DIR_USER;
229 extern concptr ANGBAND_DIR_XTRA;
230 extern OBJECT_TYPE_VALUE item_tester_tval;
231 extern bool (*item_tester_hook)(object_type *o_ptr);
232 extern monsterrace_hook_type get_mon_num_hook;
233 extern monsterrace_hook_type get_mon_num2_hook;
234 extern bool (*get_obj_num_hook)(KIND_OBJECT_IDX k_idx);
235
236
237 extern VAULT_IDX max_v_idx;
238 extern FEAT_IDX max_f_idx;
239
240 extern EGO_IDX max_e_idx;
241 extern DUNGEON_IDX max_d_idx;
242 extern char quest_text[10][80];
243 extern int quest_text_line;
244 extern int init_flags;
245 extern int highscore_fd;
246 extern bool can_save;
247 extern int cap_mon;
248 extern int cap_mspeed;
249 extern HIT_POINT cap_hp;
250 extern HIT_POINT cap_maxhp;
251 extern STR_OFFSET cap_nickname;
252 extern MONRACE_IDX battle_mon[4];
253 extern int sel_monster;
254 extern int battle_odds;
255 extern PRICE kakekin;
256 extern u32b mon_odds[4];
257 extern MONSTER_IDX pet_t_m_idx;
258 extern MONSTER_IDX riding_t_m_idx;
259 extern MONRACE_IDX today_mon;
260 extern bool write_level;
261 extern u32b start_time;
262 extern bool sukekaku;
263 extern bool new_mane;
264 extern bool mon_fight;
265 extern bool generate_encounter;
266 extern concptr screen_dump;
267
268
269 extern DEPTH *max_dlv;
270 extern FEAT_IDX feat_wall_outer;
271 extern FEAT_IDX feat_wall_inner;
272 extern FEAT_IDX feat_wall_solid;
273 extern FEAT_IDX feat_ground_type[100], feat_wall_type[100];
274 extern COMMAND_CODE now_message;
275 extern bool use_menu;
276
277
278 /* dungeon.c */
279 extern void play_game(bool new_game);
280 extern s32b turn_real(s32b hoge);
281 extern void prevent_turn_overflow(void);
282 extern void close_game(void);
283
284 /* load.c */
285 extern errr rd_savefile_new(void);
286 extern bool load_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode);
287
288 /* racial.c */
289 extern void do_cmd_racial_power(void);
290
291 /* save.c */
292 extern bool save_player(void);
293 extern bool load_player(void);
294 extern void remove_loc(void);
295 extern bool save_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode);
296
297 /* xtra1.c */
298 extern void handle_stuff(void);
299 extern void update_output(void);
300 extern void print_monster_list(TERM_LEN x, TERM_LEN y, TERM_LEN max_lines);
301 extern void update_playtime(void);
302
303 /* xtra2.c */
304 extern void panel_bounds_center(void);
305 extern void verify_panel(void);
306 extern bool target_able(MONSTER_IDX m_idx);
307 extern bool target_okay(void);
308 extern bool target_set(BIT_FLAGS mode);
309 extern void target_set_prepare_look(void);
310 extern bool get_aim_dir(DIRECTION *dp);
311 extern bool get_hack_dir(DIRECTION *dp);
312 extern bool get_direction(DIRECTION *dp, bool allow_under, bool with_steed);
313 extern bool get_rep_dir(DIRECTION *dp, bool under);
314 extern bool tgt_pt(POSITION *x, POSITION *y);
315
316 /*
317  * Hack -- conditional (or "bizarre") externs
318  */
319
320 #ifdef SET_UID
321 /* util.c */
322 extern void user_name(char *buf, int id);
323 #endif
324
325 #if 0
326 #ifndef HAS_STRICMP
327 /* util.c */
328 extern int stricmp(concptr a, concptr b);
329 #endif
330 #endif
331
332 #ifndef HAVE_USLEEP
333 /* util.c */
334 extern int usleep(huge usecs);
335 #endif
336
337 #ifdef MACINTOSH
338 /* main-mac.c */
339 /* extern void main(void); */
340 #endif
341
342 #if defined(MAC_MPW) || defined(MACH_O_CARBON)
343 /* Globals needed */
344 extern  u32b _ftype;
345 extern  u32b _fcreator;
346 #endif
347
348 #if defined(MAC_MPW) && defined(CARBON)
349 extern void convert_pathname(char *path);
350 #endif
351
352 #if defined(MACH_O_CARBON)
353 extern void fsetfileinfo(concptr path, u32b fcreator, u32b ftype);
354 #endif
355
356 #ifdef WINDOWS
357 /* main-win.c */
358 /* extern int FAR PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, ...); */
359 #endif
360
361 /* util.c */
362 extern void repeat_push(COMMAND_CODE what);
363 extern bool repeat_pull(COMMAND_CODE *what);
364 extern void repeat_check(void);
365
366 extern bool easy_disarm;
367 extern bool easy_floor;
368 extern bool easy_open;
369
370
371 /* object1.c */
372 extern ITEM_NUMBER scan_floor(OBJECT_IDX *items, POSITION y, POSITION x, BIT_FLAGS mode);
373 extern COMMAND_CODE show_floor(int target_item, POSITION y, POSITION x, TERM_LEN *min_width);
374 extern bool get_item_floor(COMMAND_CODE *cp, concptr pmt, concptr str, BIT_FLAGS mode);
375 extern void py_pickup_floor(bool pickup);
376
377 /* wizard1.c */
378 extern void spoil_random_artifact(concptr fname);
379
380 /* wizard2.c */
381 extern void strip_name(char *buf, KIND_OBJECT_IDX k_idx);
382 extern void cheat_death(player_type *creature_ptr);
383
384
385 #ifdef JP
386 /* japanese.c */
387 extern void sindarin_to_kana(char *kana, concptr sindarin);
388 extern void jverb( concptr in , char *out , int flag);
389 extern void sjis2euc(char *str);
390 extern void euc2sjis(char *str);
391 extern byte codeconv(char *str);
392 extern bool iskanji2(concptr s, int x);
393 extern void guess_convert_to_system_encoding(char* strbuf, int buflen);
394 #endif
395
396 #ifdef WORLD_SCORE
397 /* report.c */
398 extern errr report_score(void);
399 extern concptr make_screen_dump(void);
400 #endif
401
402 /* inet.c */
403 extern int soc_write(int sd, char *buf, size_t sz);
404 extern int soc_read(int sd, char *buf, size_t sz);
405 extern void set_proxy(char *default_url, int default_port);
406 extern int connect_server(int timeout, concptr host, int port);
407 extern int disconnect_server(int sd);
408 extern concptr soc_err(void);
409
410 extern void prepare_movie_hooks(void);
411 extern void prepare_browse_movie_aux(concptr filename);
412 extern void prepare_browse_movie(concptr filename);
413 extern void browse_movie(void);
414 extern bool browsing_movie;
415
416 extern void kamaenaoshi(INVENTORY_IDX item);