OSDN Git Service

[Refactor] #37353 grid.h の宣言を整理.
[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 extern QUEST_IDX max_q_idx;
237 extern MONRACE_IDX max_r_idx;
238 extern KIND_OBJECT_IDX max_k_idx;
239 extern VAULT_IDX max_v_idx;
240 extern FEAT_IDX max_f_idx;
241 extern ARTIFACT_IDX max_a_idx;
242 extern EGO_IDX max_e_idx;
243 extern DUNGEON_IDX max_d_idx;
244 extern char quest_text[10][80];
245 extern int quest_text_line;
246 extern int init_flags;
247 extern int highscore_fd;
248 extern bool can_save;
249 extern int cap_mon;
250 extern int cap_mspeed;
251 extern HIT_POINT cap_hp;
252 extern HIT_POINT cap_maxhp;
253 extern STR_OFFSET cap_nickname;
254 extern MONRACE_IDX battle_mon[4];
255 extern int sel_monster;
256 extern int battle_odds;
257 extern PRICE kakekin;
258 extern u32b mon_odds[4];
259 extern MONSTER_IDX pet_t_m_idx;
260 extern MONSTER_IDX riding_t_m_idx;
261 extern MONRACE_IDX today_mon;
262 extern bool write_level;
263 extern u32b start_time;
264 extern bool sukekaku;
265 extern bool new_mane;
266 extern bool mon_fight;
267 extern bool generate_encounter;
268 extern concptr screen_dump;
269
270
271 extern DEPTH *max_dlv;
272 extern FEAT_IDX feat_wall_outer;
273 extern FEAT_IDX feat_wall_inner;
274 extern FEAT_IDX feat_wall_solid;
275 extern FEAT_IDX feat_ground_type[100], feat_wall_type[100];
276 extern COMMAND_CODE now_message;
277 extern bool use_menu;
278
279 /* cmd4.c */
280 #ifndef JP
281 extern concptr get_ordinal_number_suffix(int num);
282 #endif
283 extern errr do_cmd_write_nikki(int type, int num, concptr note);
284 extern void do_cmd_nikki(void);
285 extern void do_cmd_redraw(void);
286 extern void do_cmd_change_name(void);
287 extern void do_cmd_message_one(void);
288 extern void do_cmd_messages(int num_now);
289 extern void do_cmd_options_aux(int page, concptr info);
290 extern void do_cmd_options(void);
291 extern void do_cmd_pref(void);
292 extern void do_cmd_reload_autopick(void);
293 extern void do_cmd_macros(void);
294 extern void do_cmd_visuals(void);
295 extern void do_cmd_colors(void);
296 extern void do_cmd_note(void);
297 extern void do_cmd_version(void);
298 extern void do_cmd_feeling(void);
299 extern void do_cmd_load_screen(void);
300 extern void do_cmd_save_screen_html_aux(char *filename, int message);
301 extern void do_cmd_save_screen(void);
302 extern void do_cmd_knowledge_quests_completed(FILE *fff, QUEST_IDX quest_num[]);
303 extern void do_cmd_knowledge_quests_failed(FILE *fff, QUEST_IDX quest_num[]);
304 extern void do_cmd_knowledge(void);
305 extern void plural_aux(char * Name);
306 extern void do_cmd_checkquest(void);
307 extern void do_cmd_time(void);
308 extern void do_cmd_suicide(void);
309
310 /* dungeon.c */
311 extern void play_game(bool new_game);
312 extern s32b turn_real(s32b hoge);
313 extern void prevent_turn_overflow(void);
314 extern void close_game(void);
315
316 /* load.c */
317 extern errr rd_savefile_new(void);
318 extern bool load_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode);
319
320 /* racial.c */
321 extern void do_cmd_racial_power(void);
322
323 /* save.c */
324 extern bool save_player(void);
325 extern bool load_player(void);
326 extern void remove_loc(void);
327 extern bool save_floor(saved_floor_type *sf_ptr, BIT_FLAGS mode);
328
329 /* xtra1.c */
330 extern void handle_stuff(void);
331 extern void update_output(void);
332 extern void print_monster_list(TERM_LEN x, TERM_LEN y, TERM_LEN max_lines);
333 extern void update_playtime(void);
334
335 /* xtra2.c */
336 extern void panel_bounds_center(void);
337 extern void verify_panel(void);
338 extern bool target_able(MONSTER_IDX m_idx);
339 extern bool target_okay(void);
340 extern bool target_set(BIT_FLAGS mode);
341 extern void target_set_prepare_look(void);
342 extern bool get_aim_dir(DIRECTION *dp);
343 extern bool get_hack_dir(DIRECTION *dp);
344 extern bool get_direction(DIRECTION *dp, bool allow_under, bool with_steed);
345 extern bool get_rep_dir(DIRECTION *dp, bool under);
346 extern bool tgt_pt(POSITION *x, POSITION *y);
347
348 /*
349  * Hack -- conditional (or "bizarre") externs
350  */
351
352 #ifdef SET_UID
353 /* util.c */
354 extern void user_name(char *buf, int id);
355 #endif
356
357 #if 0
358 #ifndef HAS_STRICMP
359 /* util.c */
360 extern int stricmp(concptr a, concptr b);
361 #endif
362 #endif
363
364 #ifndef HAVE_USLEEP
365 /* util.c */
366 extern int usleep(huge usecs);
367 #endif
368
369 #ifdef MACINTOSH
370 /* main-mac.c */
371 /* extern void main(void); */
372 #endif
373
374 #if defined(MAC_MPW) || defined(MACH_O_CARBON)
375 /* Globals needed */
376 extern  u32b _ftype;
377 extern  u32b _fcreator;
378 #endif
379
380 #if defined(MAC_MPW) && defined(CARBON)
381 extern void convert_pathname(char *path);
382 #endif
383
384 #if defined(MACH_O_CARBON)
385 extern void fsetfileinfo(concptr path, u32b fcreator, u32b ftype);
386 #endif
387
388 #ifdef WINDOWS
389 /* main-win.c */
390 /* extern int FAR PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, ...); */
391 #endif
392
393 /* util.c */
394 extern void repeat_push(COMMAND_CODE what);
395 extern bool repeat_pull(COMMAND_CODE *what);
396 extern void repeat_check(void);
397
398 extern bool easy_disarm;
399 extern bool easy_floor;
400 extern bool easy_open;
401
402
403 /* object1.c */
404 extern ITEM_NUMBER scan_floor(OBJECT_IDX *items, POSITION y, POSITION x, BIT_FLAGS mode);
405 extern COMMAND_CODE show_floor(int target_item, POSITION y, POSITION x, TERM_LEN *min_width);
406 extern bool get_item_floor(COMMAND_CODE *cp, concptr pmt, concptr str, BIT_FLAGS mode);
407 extern void py_pickup_floor(bool pickup);
408
409 /* wizard1.c */
410 extern void spoil_random_artifact(concptr fname);
411
412 /* wizard2.c */
413 extern void strip_name(char *buf, KIND_OBJECT_IDX k_idx);
414 extern void cheat_death(player_type *creature_ptr);
415
416
417 #ifdef JP
418 /* japanese.c */
419 extern void sindarin_to_kana(char *kana, concptr sindarin);
420 extern void jverb( concptr in , char *out , int flag);
421 extern void sjis2euc(char *str);
422 extern void euc2sjis(char *str);
423 extern byte codeconv(char *str);
424 extern bool iskanji2(concptr s, int x);
425 extern void guess_convert_to_system_encoding(char* strbuf, int buflen);
426 #endif
427
428 #ifdef WORLD_SCORE
429 /* report.c */
430 extern errr report_score(void);
431 extern concptr make_screen_dump(void);
432 #endif
433
434 /* inet.c */
435 extern int soc_write(int sd, char *buf, size_t sz);
436 extern int soc_read(int sd, char *buf, size_t sz);
437 extern void set_proxy(char *default_url, int default_port);
438 extern int connect_server(int timeout, concptr host, int port);
439 extern int disconnect_server(int sd);
440 extern concptr soc_err(void);
441
442 extern void prepare_movie_hooks(void);
443 extern void prepare_browse_movie_aux(concptr filename);
444 extern void prepare_browse_movie(concptr filename);
445 extern void browse_movie(void);
446 extern bool browsing_movie;
447
448 extern void kamaenaoshi(INVENTORY_IDX item);