4 * Hack -- Prepare to use the "Secure" routines
6 #if defined(SET_UID) && defined(SECURE)
8 # define getuid() PlayerUID
9 # define geteuid() PlayerUID
12 #define KEYMAP_MODE_ORIG 0 /*!<
\83I
\83\8a\83W
\83i
\83\8b\83L
\81[
\94z
\92u / Mode for original keyset commands */
13 #define KEYMAP_MODE_ROGUE 1 /*!<
\83\8d\81[
\83O
\83\89\83C
\83N
\83L
\81[
\94z
\92u / Mode for roguelike keyset commands */
14 #define KEYMAP_MODES 2 /*!<
\83L
\81[
\94z
\92u
\82Ì
\90\94 / Number of keymap modes */
16 #define SCREEN_BUF_MAX_SIZE (4 * 65536) /*!< Max size of screen dump buffer */
21 typedef struct tag_type tag_type;
30 * An entry for the object/monster allocation functions
32 * Pass 1 is determined from allocation information
33 * Pass 2 is determined from allocation restriction
34 * Pass 3 is determined from allocation calculation
37 typedef struct alloc_entry alloc_entry;
41 KIND_OBJECT_IDX index; /* The actual index */
43 DEPTH level; /* Base dungeon level */
44 PROB prob1; /* Probability, pass 1 */
45 PROB prob2; /* Probability, pass 2 */
46 PROB prob3; /* Probability, pass 3 */
48 u16b total; /* Unused for now */
51 extern u32b message__next;
52 extern u32b message__last;
53 extern u32b message__head;
54 extern u32b message__tail;
55 extern u32b *message__ptr;
56 extern char *message__buf;
60 extern s16b macro__num;
61 extern concptr *macro__pat;
62 extern concptr *macro__act;
63 extern bool *macro__cmd;
64 extern char *macro__buf;
66 extern bool get_com_no_macros;
68 extern bool inkey_base;
69 extern bool inkey_xtra;
70 extern bool inkey_scan;
71 extern bool inkey_flag;
74 * Automatically generated "variable" declarations
76 extern int max_macrotrigger;
77 extern concptr macro_template;
78 extern concptr macro_modifier_chr;
79 extern concptr macro_modifier_name[MAX_MACRO_MOD];
80 extern concptr macro_trigger_name[MAX_MACRO_TRIG];
81 extern concptr macro_trigger_keycode[2][MAX_MACRO_TRIG];
83 extern COMMAND_CODE command_cmd;
84 extern COMMAND_ARG command_arg;
85 extern s16b command_rep;
86 extern DIRECTION command_dir;
87 extern s16b command_see;
88 extern TERM_LEN command_gap;
89 extern s16b command_wrk;
90 extern s16b command_new;
92 extern concptr keymap_act[KEYMAP_MODES][256];
94 /*** Music constants ***/
96 #define MUSIC_BASIC_DEFAULT 0
97 #define MUSIC_BASIC_GAMEOVER 1
98 #define MUSIC_BASIC_EXIT 2
99 #define MUSIC_BASIC_TOWN 3
100 #define MUSIC_BASIC_FIELD1 4
101 #define MUSIC_BASIC_FIELD2 5
102 #define MUSIC_BASIC_FIELD3 6
103 #define MUSIC_BASIC_DUN_LOW 7
104 #define MUSIC_BASIC_DUN_MED 8
105 #define MUSIC_BASIC_DUN_HIGH 9
106 #define MUSIC_BASIC_DUN_FEEL1 10
107 #define MUSIC_BASIC_DUN_FEEL2 11
108 #define MUSIC_BASIC_WINNER 12
109 #define MUSIC_BASIC_BUILD 13
110 #define MUSIC_BASIC_WILD 14
111 #define MUSIC_BASIC_QUEST 15
112 #define MUSIC_BASIC_ARENA 16
113 #define MUSIC_BASIC_BATTLE 17
114 #define MUSIC_BASIC_QUEST_CLEAR 18
115 #define MUSIC_BASIC_FINAL_QUEST_CLEAR 19
116 #define MUSIC_BASIC_AMBUSH 20
117 #define MUSIC_BASIC_MAX 21 /*!< BGM
\92è
\8b`
\82Ì
\8dÅ
\91å
\90\94 */
119 /*** Sound constants ***/
122 * Mega-Hack -- some primitive sound support (see "main-win.c")
124 * Some "sound" constants for "Term_xtra(TERM_XTRA_SOUND, val)"
131 #define SOUND_LEVEL 6
132 #define SOUND_DEATH 7
133 #define SOUND_STUDY 8
134 #define SOUND_TELEPORT 9
135 #define SOUND_SHOOT 10
136 #define SOUND_QUAFF 11
138 #define SOUND_WALK 13
139 #define SOUND_TPOTHER 14
140 #define SOUND_HITWALL 15
142 #define SOUND_STORE1 17
143 #define SOUND_STORE2 18
144 #define SOUND_STORE3 19
145 #define SOUND_STORE4 20
147 #define SOUND_OPENDOOR 22
148 #define SOUND_SHUTDOOR 23
149 #define SOUND_TPLEVEL 24
150 #define SOUND_SCROLL 25
152 #define SOUND_SELL 27
153 #define SOUND_WARN 28
154 #define SOUND_ROCKET 29 /*!< Somebody's shooting rockets */
155 #define SOUND_N_KILL 30 /*!< The player kills a non-living/undead monster */
156 #define SOUND_U_KILL 31 /*!< The player kills a unique */
157 #define SOUND_QUEST 32 /*!< The player has just completed a quest */
158 #define SOUND_HEAL 33 /*!< The player was healed a little bit */
159 #define SOUND_X_HEAL 34 /*!< The player was healed full health */
160 #define SOUND_BITE 35 /*!< A monster bites you */
161 #define SOUND_CLAW 36 /*!< A monster claws you */
162 #define SOUND_M_SPELL 37 /*!< A monster casts a miscellaneous spell */
163 #define SOUND_SUMMON 38 /*!< A monster casts a summoning spell */
164 #define SOUND_BREATH 39 /*!< A monster breathes */
165 #define SOUND_BALL 40 /*!< A monster casts a ball / bolt spell */
166 #define SOUND_M_HEAL 41 /*!< A monster heals itself somehow */
167 #define SOUND_ATK_SPELL 42 /*!< A monster casts a misc. offensive spell */
168 #define SOUND_EVIL 43 /*!< Something nasty has just happened! */
169 #define SOUND_TOUCH 44 /*!< A monster touches you */
170 #define SOUND_STING 45 /*!< A monster stings you */
171 #define SOUND_CRUSH 46 /*!< A monster crushes / envelopes you */
172 #define SOUND_SLIME 47 /*!< A monster drools/spits/etc on you */
173 #define SOUND_WAIL 48 /*!< A monster wails */
174 #define SOUND_WINNER 49 /*!< Just won the game! */
175 #define SOUND_FIRE 50 /*!< An item was burned */
176 #define SOUND_ACID 51 /*!< An item was destroyed by acid */
177 #define SOUND_ELEC 52 /*!< An item was destroyed by electricity */
178 #define SOUND_COLD 53 /*!< An item was shattered */
179 #define SOUND_ILLEGAL 54 /*!< Illegal command attempted */
180 #define SOUND_FAIL 55 /*!< Fail to get a spell off / activate an item */
181 #define SOUND_WAKEUP 56 /*!< A monster wakes up */
182 #define SOUND_INVULN 57 /*!< Invulnerability! */
183 #define SOUND_FALL 58 /*!< Falling through a trapdoor... */
184 #define SOUND_PAIN 59 /*!< A monster is in pain! */
185 #define SOUND_DESTITEM 60 /*!< An item was destroyed by misc. means */
186 #define SOUND_MOAN 61 /*!< A monster makes a moan/beg/insult attack */
187 #define SOUND_SHOW 62 /*!< A monster makes a "show" attack */
188 #define SOUND_UNUSED 63 /*!< (no sound for gaze attacks) */
189 #define SOUND_EXPLODE 64 /*!< Something (or somebody) explodes */
190 #define SOUND_GLASS 65 /*!< A glass feature was crashed */
191 #define SOUND_REFLECT 66 /*!< A bolt was reflected */
194 * Mega-Hack -- maximum known sounds
196 #define SOUND_MAX 67 /*!<
\8cø
\89Ê
\89¹
\92è
\8b`
\82Ì
\8dÅ
\91å
\90\94 */
200 * Hack -- The main "screen"
202 #define term_screen (angband_term[0])
205 * Hack -- conditional (or "bizarre") externs
209 extern void user_name(char *buf, int id);
214 extern int stricmp(concptr a, concptr b);
219 extern int usleep(huge usecs);
222 extern const char hexsym[16];
225 extern errr path_parse(char *buf, int max, concptr file);
226 extern errr path_build(char *buf, int max, concptr path, concptr file);
227 extern FILE *my_fopen(concptr file, concptr mode);
228 extern FILE *my_fopen_temp(char *buf, int max);
229 extern errr my_fgets(FILE *fff, char *buf, huge n);
230 extern errr my_fputs(FILE *fff, concptr buf, huge n);
231 extern errr my_fclose(FILE *fff);
232 extern errr fd_kill(concptr file);
233 extern errr fd_move(concptr file, concptr what);
234 extern errr fd_copy(concptr file, concptr what);
235 extern int fd_make(concptr file, BIT_FLAGS mode);
236 extern int fd_open(concptr file, int flags);
237 extern errr fd_lock(int fd, int what);
238 extern errr fd_seek(int fd, huge n);
239 extern errr fd_chop(int fd, huge n);
240 extern errr fd_read(int fd, char *buf, huge n);
241 extern errr fd_write(int fd, concptr buf, huge n);
242 extern errr fd_close(int fd);
243 extern void flush(void);
244 extern void bell(void);
245 extern errr play_music(int type, int num);
246 extern void select_floor_music(void);
247 extern void sound(int num);
248 extern void move_cursor(int row, int col);
249 extern void text_to_ascii(char *buf, concptr str);
250 extern void ascii_to_text(char *buf, concptr str);
251 extern errr macro_add(concptr pat, concptr act);
252 extern sint macro_find_exact(concptr pat);
253 extern char inkey(void);
254 extern concptr quark_str(STR_OFFSET num);
255 extern void quark_init(void);
256 extern u16b quark_add(concptr str);
257 extern s32b message_num(void);
258 extern concptr message_str(int age);
259 extern void message_add(concptr msg);
260 extern void msg_erase(void);
261 extern void msg_print(concptr msg);
262 extern void msg_print_wizard(int cheat_type, concptr msg);
264 extern void msg_format(concptr fmt, ...);
265 extern void msg_format_wizard(int cheat_type, concptr fmt, ...);
267 extern void screen_save(void);
268 extern void screen_load(void);
269 extern void c_put_str(TERM_COLOR attr, concptr str, TERM_LEN row, TERM_LEN col);
270 extern void put_str(concptr str, TERM_LEN row, TERM_LEN col);
271 extern void c_prt(TERM_COLOR attr, concptr str, TERM_LEN row, TERM_LEN col);
272 extern void prt(concptr str, TERM_LEN row, TERM_LEN col);
273 extern void c_roff(TERM_COLOR attr, concptr str);
274 extern void roff(concptr str);
275 extern void clear_from(int row);
276 extern bool askfor_aux(char *buf, int len, bool numpad_cursor);
277 extern bool askfor(char *buf, int len);
278 extern bool get_string(concptr prompt, char *buf, int len);
281 * Bit flags for control of get_check_strict()
283 #define CHECK_OKAY_CANCEL 0x01
284 #define CHECK_NO_ESCAPE 0x02
285 #define CHECK_NO_HISTORY 0x04
286 #define CHECK_DEFAULT_Y 0x08
287 extern bool get_check(concptr prompt);
288 extern bool get_check_strict(concptr prompt, BIT_FLAGS mode);
290 extern bool get_com(concptr prompt, char *command, bool z_escape);
291 extern QUANTITY get_quantity(concptr prompt, QUANTITY max);
292 extern void pause_line(int row);
293 extern void request_command(int shopping);
294 extern bool is_a_vowel(int ch);
295 extern int get_keymap_dir(char ch);
296 extern errr type_string(concptr str, uint len);
297 extern void roff_to_buf(concptr str, int wlen, char *tbuf, size_t bufsize);
300 extern void tag_sort(tag_type elements[], int number);
301 #endif /* SORT_R_INFO */
304 extern byte gamma_table[256];
305 extern void build_gamma_table(int gamma);
306 #endif /* SUPPORT_GAMMA */
308 extern size_t my_strcpy(char *buf, concptr src, size_t bufsize);
309 extern size_t my_strcat(char *buf, concptr src, size_t bufsize);
310 extern char *my_strstr(concptr haystack, concptr needle);
311 extern char *my_strchr(concptr ptr, char ch);
312 extern void str_tolower(char *str);
315 * Special key code used for inkey_special()
317 #define SKEY_MOD_MASK 0x0f00
318 #define SKEY_MOD_SHIFT 0x0100
319 #define SKEY_MOD_CONTROL 0x0200
321 #define SKEY_MASK 0xf000
322 #define SKEY_DOWN 0xf001
323 #define SKEY_LEFT 0xf002
324 #define SKEY_RIGHT 0xf003
325 #define SKEY_UP 0xf004
326 #define SKEY_PGUP 0xf005
327 #define SKEY_PGDOWN 0xf006
328 #define SKEY_TOP 0xf007
329 #define SKEY_BOTTOM 0xf008
330 extern int inkey_special(bool numpad_cursor);
333 extern void repeat_push(COMMAND_CODE what);
334 extern bool repeat_pull(COMMAND_CODE *what);
335 extern void repeat_check(void);