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