1 /* NetHack 3.6 extern.h $NHDT-Date: 1451955077 2016/01/05 00:51:17 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.530 $ */
2 /* Copyright (c) Steve Creps, 1988. */
3 /* NetHack may be freely redistributed. See license for details. */
13 E
long *FDECL(alloc
, (unsigned int));
15 E
char *FDECL(fmt_ptr
, (const genericptr
));
17 /* This next pre-processor directive covers almost the entire file,
18 * interrupted only occasionally to pick up specific functions as needed. */
19 #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
21 /* ### allmain.c ### */
23 E
void FDECL(moveloop
, (BOOLEAN_P
));
24 E
void NDECL(stop_occupation
);
25 E
void NDECL(display_gamewindows
);
26 E
void NDECL(newgame
);
27 E
void FDECL(welcome
, (BOOLEAN_P
));
28 E
time_t NDECL(get_realtime
);
35 E
int FDECL(jump
, (int));
36 E
int NDECL(number_leashed
);
37 E
void FDECL(o_unleash
, (struct obj
*));
38 E
void FDECL(m_unleash
, (struct monst
*, BOOLEAN_P
));
39 E
void NDECL(unleash_all
);
40 E boolean
NDECL(next_to_u
);
41 E
struct obj
*FDECL(get_mleash
, (struct monst
*));
42 E
const char *NDECL(beautiful
);
43 E
void FDECL(check_leash
, (XCHAR_P
, XCHAR_P
));
44 E boolean
FDECL(um_dist
, (XCHAR_P
, XCHAR_P
, XCHAR_P
));
45 E boolean
FDECL(snuff_candle
, (struct obj
*));
46 E boolean
FDECL(snuff_lit
, (struct obj
*));
47 E boolean
FDECL(catch_lit
, (struct obj
*));
48 E
void FDECL(use_unicorn_horn
, (struct obj
*));
49 E boolean
FDECL(tinnable
, (struct obj
*));
50 E
void NDECL(reset_trapset
);
51 E
void FDECL(fig_transform
, (ANY_P
*, long));
52 E
int FDECL(unfixable_trouble_count
, (BOOLEAN_P
));
54 /* ### artifact.c ### */
56 E
void NDECL(init_artifacts
);
57 E
void FDECL(save_artifacts
, (int));
58 E
void FDECL(restore_artifacts
, (int));
59 E
const char *FDECL(artiname
, (int));
60 E
struct obj
*FDECL(mk_artifact
, (struct obj
*, ALIGNTYP_P
));
61 E
const char *FDECL(artifact_name
, (const char *, short *));
62 E boolean
FDECL(exist_artifact
, (int, const char *));
63 E
void FDECL(artifact_exists
, (struct obj
*, const char *, BOOLEAN_P
));
64 E
int NDECL(nartifact_exist
);
65 E boolean
FDECL(arti_immune
, (struct obj
*, int));
66 E boolean
FDECL(spec_ability
, (struct obj
*, unsigned long));
67 E boolean
FDECL(confers_luck
, (struct obj
*));
68 E boolean
FDECL(arti_reflects
, (struct obj
*));
69 E boolean
FDECL(shade_glare
, (struct obj
*));
70 E boolean
FDECL(restrict_name
, (struct obj
*, const char *));
71 E boolean
FDECL(defends
, (int, struct obj
*));
72 E boolean
FDECL(defends_when_carried
, (int, struct obj
*));
73 E boolean
FDECL(protects
, (struct obj
*, BOOLEAN_P
));
74 E
void FDECL(set_artifact_intrinsic
, (struct obj
*, BOOLEAN_P
, long));
75 E
int FDECL(touch_artifact
, (struct obj
*, struct monst
*));
76 E
int FDECL(spec_abon
, (struct obj
*, struct monst
*));
77 E
int FDECL(spec_dbon
, (struct obj
*, struct monst
*, int));
78 E
void FDECL(discover_artifact
, (XCHAR_P
));
79 E boolean
FDECL(undiscovered_artifact
, (XCHAR_P
));
80 E
int FDECL(disp_artifact_discoveries
, (winid
));
81 E boolean
FDECL(artifact_hit
,
82 (struct monst
*, struct monst
*, struct obj
*, int *, int));
83 E
int NDECL(doinvoke
);
84 E boolean
FDECL(finesse_ahriman
, (struct obj
*));
85 E
void FDECL(arti_speak
, (struct obj
*));
86 E boolean
FDECL(artifact_light
, (struct obj
*));
87 E
long FDECL(spec_m2
, (struct obj
*));
88 E boolean
FDECL(artifact_has_invprop
, (struct obj
*, UCHAR_P
));
89 E
long FDECL(arti_cost
, (struct obj
*));
90 E
struct obj
*FDECL(what_gives
, (long *));
91 E
const char *FDECL(glow_color
, (int));
92 E
void FDECL(Sting_effects
, (int));
93 E
int FDECL(retouch_object
, (struct obj
**, BOOLEAN_P
));
94 E
void FDECL(retouch_equipment
, (int));
96 /* ### attrib.c ### */
98 E boolean
FDECL(adjattrib
, (int, int, int));
99 E
void FDECL(gainstr
, (struct obj
*, int, BOOLEAN_P
));
100 E
void FDECL(losestr
, (int));
101 E
void FDECL(poisontell
, (int, BOOLEAN_P
));
102 E
void FDECL(poisoned
, (const char *, int, const char *, int, BOOLEAN_P
));
103 E
void FDECL(change_luck
, (SCHAR_P
));
104 E
int FDECL(stone_luck
, (BOOLEAN_P
));
105 E
void NDECL(set_moreluck
);
106 E
void NDECL(restore_attrib
);
107 E
void FDECL(exercise
, (int, BOOLEAN_P
));
108 E
void NDECL(exerchk
);
109 E
void FDECL(init_attr
, (int));
110 E
void NDECL(redist_attr
);
111 E
void FDECL(adjabil
, (int, int));
113 E schar
FDECL(acurr
, (int));
114 E schar
NDECL(acurrstr
);
115 E boolean
FDECL(extremeattr
, (int));
116 E
void FDECL(adjalign
, (int));
117 E
int FDECL(is_innate
, (int));
118 E
char *FDECL(from_what
, (int));
119 E
void FDECL(uchangealign
, (int, int));
123 E
void FDECL(ballrelease
, (BOOLEAN_P
));
124 E
void NDECL(ballfall
);
125 E
void NDECL(placebc
);
126 E
void NDECL(unplacebc
);
127 E
void FDECL(set_bc
, (int));
128 E
void FDECL(move_bc
, (int, int, XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
));
129 E boolean
FDECL(drag_ball
, (XCHAR_P
, XCHAR_P
, int *, xchar
*, xchar
*,
130 xchar
*, xchar
*, boolean
*, BOOLEAN_P
));
131 E
void FDECL(drop_ball
, (XCHAR_P
, XCHAR_P
));
132 E
void NDECL(drag_down
);
134 /* ### bones.c ### */
136 E
void FDECL(sanitize_name
, (char *));
137 E
void FDECL(drop_upon_death
, (struct monst
*, struct obj
*, int, int));
138 E boolean
NDECL(can_make_bones
);
139 E
void FDECL(savebones
, (int, time_t, struct obj
*));
140 E
int NDECL(getbones
);
144 E
int FDECL(xlev_to_rank
, (int));
145 E
int FDECL(title_to_mon
, (const char *, int *, int *));
146 E
void NDECL(max_rank_sz
);
148 E
long NDECL(botl_score
);
150 E
int FDECL(describe_level
, (char *));
151 E
const char *FDECL(rank_of
, (int, SHORT_P
, BOOLEAN_P
));
153 #ifdef STATUS_VIA_WINDOWPORT
154 E
void FDECL(status_initialize
, (BOOLEAN_P
));
155 E
void NDECL(status_finish
);
156 E
void FDECL(status_notify_windowport
, (BOOLEAN_P
));
157 #ifdef STATUS_HILITES
158 E boolean
FDECL(set_status_hilites
, (char *op
, BOOLEAN_P
));
159 E
void FDECL(clear_status_hilites
, (BOOLEAN_P
));
160 E
char *FDECL(get_status_hilites
, (char *, int));
161 E boolean
NDECL(status_hilite_menu
);
167 E boolean
FDECL(redraw_cmd
, (CHAR_P
));
169 E
int NDECL(doextcmd
);
170 E
int NDECL(domonability
);
171 E
int NDECL(doprev_message
);
172 E
int NDECL(timed_occupation
);
173 E
int NDECL(doattributes
);
174 E
int NDECL(wiz_detect
);
175 E
int NDECL(wiz_genesis
);
176 E
int NDECL(wiz_identify
);
177 E
int NDECL(wiz_level_tele
);
178 E
int NDECL(wiz_map
);
179 E
int NDECL(wiz_where
);
180 E
int NDECL(wiz_wish
);
181 #endif /* USE_TRAMPOLI */
182 E
void NDECL(reset_occupations
);
183 E
void FDECL(set_occupation
, (int (*)(void), const char *, int));
184 E
char NDECL(pgetchar
);
185 E
void FDECL(pushch
, (CHAR_P
));
186 E
void FDECL(savech
, (CHAR_P
));
187 E
void NDECL(add_debug_extended_commands
);
188 E
void FDECL(reset_commands
, (BOOLEAN_P
));
189 E
void FDECL(rhack
, (char *));
190 E
int NDECL(doextlist
);
191 E
int NDECL(extcmd_via_menu
);
192 E
int NDECL(enter_explore_mode
);
193 E
void FDECL(enlightenment
, (int, int));
194 E
void FDECL(youhiding
, (BOOLEAN_P
, int));
195 E
void FDECL(show_conduct
, (int));
196 E
int FDECL(xytod
, (SCHAR_P
, SCHAR_P
));
197 E
void FDECL(dtoxy
, (coord
*, int));
198 E
int FDECL(movecmd
, (CHAR_P
));
199 E
int NDECL(dxdy_moveok
);
200 E
int FDECL(getdir
, (const char *));
201 E
void NDECL(confdir
);
202 E
const char *FDECL(directionname
, (int));
203 E
int FDECL(isok
, (int, int));
204 E
int FDECL(get_adjacent_loc
,
205 (const char *, const char *, XCHAR_P
, XCHAR_P
, coord
*));
206 E
const char *FDECL(click_to_cmd
, (int, int, int));
207 #ifdef HANGUPHANDLING
208 E
void FDECL(hangup
, (int));
209 E
void NDECL(end_of_input
);
211 E
char NDECL(readchar
);
212 E
void NDECL(sanity_check
);
213 E
char FDECL(yn_function
, (const char *, const char *, CHAR_P
));
214 E boolean
FDECL(paranoid_query
, (BOOLEAN_P
, const char *));
216 /* ### dbridge.c ### */
218 E boolean
FDECL(is_pool
, (int, int));
219 E boolean
FDECL(is_lava
, (int, int));
220 E boolean
FDECL(is_pool_or_lava
, (int, int));
221 E boolean
FDECL(is_ice
, (int, int));
222 E boolean
FDECL(is_moat
, (int, int));
223 E schar
FDECL(db_under_typ
, (int));
224 E
int FDECL(is_drawbridge_wall
, (int, int));
225 E boolean
FDECL(is_db_wall
, (int, int));
226 E boolean
FDECL(find_drawbridge
, (int *, int *));
227 E boolean
FDECL(create_drawbridge
, (int, int, int, BOOLEAN_P
));
228 E
void FDECL(open_drawbridge
, (int, int));
229 E
void FDECL(close_drawbridge
, (int, int));
230 E
void FDECL(destroy_drawbridge
, (int, int));
234 E
void NDECL(decl_init
);
236 /* ### detect.c ### */
238 E
struct obj
*FDECL(o_in
, (struct obj
*, CHAR_P
));
239 E
struct obj
*FDECL(o_material
, (struct obj
*, unsigned));
240 E
int FDECL(gold_detect
, (struct obj
*));
241 E
int FDECL(food_detect
, (struct obj
*));
242 E
int FDECL(object_detect
, (struct obj
*, int));
243 E
int FDECL(monster_detect
, (struct obj
*, int));
244 E
int FDECL(trap_detect
, (struct obj
*));
245 E
const char *FDECL(level_distance
, (d_level
*));
246 E
void FDECL(use_crystal_ball
, (struct obj
**));
247 E
void NDECL(do_mapping
);
248 E
void NDECL(do_vicinity_map
);
249 E
void FDECL(cvt_sdoor_to_door
, (struct rm
*));
251 E
void FDECL(findone
, (int, int, genericptr_t
));
252 E
void FDECL(openone
, (int, int, genericptr_t
));
256 E boolean
FDECL(detecting
, (void (*)(int, int, genericptr
)));
257 E
void FDECL(find_trap
, (struct trap
*));
258 E
int FDECL(dosearch0
, (int));
259 E
int NDECL(dosearch
);
260 E
void NDECL(sokoban_detect
);
261 E
void FDECL(reveal_terrain
, (int, int));
265 E
int FDECL(dig_typ
, (struct obj
*, XCHAR_P
, XCHAR_P
));
266 E boolean
NDECL(is_digging
);
270 E
int NDECL(holetime
);
271 E boolean
FDECL(dig_check
, (struct monst
*, BOOLEAN_P
, int, int));
272 E
void FDECL(digactualhole
, (int, int, struct monst
*, int));
273 E boolean
FDECL(dighole
, (BOOLEAN_P
, BOOLEAN_P
, coord
*));
274 E
int FDECL(use_pick_axe
, (struct obj
*));
275 E
int FDECL(use_pick_axe2
, (struct obj
*));
276 E boolean
FDECL(mdig_tunnel
, (struct monst
*));
277 E
void FDECL(draft_message
, (BOOLEAN_P
));
278 E
void FDECL(watch_dig
, (struct monst
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
279 E
void NDECL(zap_dig
);
280 E
struct obj
*FDECL(bury_an_obj
, (struct obj
*, boolean
*));
281 E
void FDECL(bury_objs
, (int, int));
282 E
void FDECL(unearth_objs
, (int, int));
283 E
void FDECL(rot_organic
, (ANY_P
*, long));
284 E
void FDECL(rot_corpse
, (ANY_P
*, long));
285 E
struct obj
*FDECL(buried_ball
, (coord
*));
286 E
void NDECL(buried_ball_to_punishment
);
287 E
void NDECL(buried_ball_to_freedom
);
288 E schar
FDECL(fillholetyp
, (int, int, BOOLEAN_P
));
289 E
void FDECL(liquid_flow
,
290 (XCHAR_P
, XCHAR_P
, SCHAR_P
, struct trap
*, const char *));
291 E boolean
FDECL(conjoined_pits
, (struct trap
*, struct trap
*, BOOLEAN_P
));
293 E
void FDECL(bury_monst
, (struct monst
*));
294 E
void NDECL(bury_you
);
295 E
void NDECL(unearth_you
);
296 E
void NDECL(escape_tomb
);
297 E
void FDECL(bury_obj
, (struct obj
*));
300 /* ### display.c ### */
302 E
void FDECL(magic_map_background
, (XCHAR_P
, XCHAR_P
, int));
303 E
void FDECL(map_background
, (XCHAR_P
, XCHAR_P
, int));
304 E
void FDECL(map_trap
, (struct trap
*, int));
305 E
void FDECL(map_object
, (struct obj
*, int));
306 E
void FDECL(map_invisible
, (XCHAR_P
, XCHAR_P
));
307 E
void FDECL(unmap_object
, (int, int));
308 E
void FDECL(map_location
, (int, int, int));
309 E
void FDECL(feel_newsym
, (XCHAR_P
, XCHAR_P
));
310 E
void FDECL(feel_location
, (XCHAR_P
, XCHAR_P
));
311 E
void FDECL(newsym
, (int, int));
312 E
void FDECL(shieldeff
, (XCHAR_P
, XCHAR_P
));
313 E
void FDECL(tmp_at
, (int, int));
314 E
void FDECL(swallowed
, (int));
315 E
void FDECL(under_ground
, (int));
316 E
void FDECL(under_water
, (int));
317 E
void NDECL(see_monsters
);
318 E
void NDECL(set_mimic_blocking
);
319 E
void NDECL(see_objects
);
320 E
void NDECL(see_traps
);
321 E
void NDECL(curs_on_u
);
322 E
int NDECL(doredraw
);
324 E
void FDECL(show_glyph
, (int, int, int));
325 E
void NDECL(clear_glyph_buffer
);
326 E
void FDECL(row_refresh
, (int, int, int));
328 E
void FDECL(flush_screen
, (int));
329 E
int FDECL(back_to_glyph
, (XCHAR_P
, XCHAR_P
));
330 E
int FDECL(zapdir_to_glyph
, (int, int, int));
331 E
int FDECL(glyph_at
, (XCHAR_P
, XCHAR_P
));
332 E
void NDECL(set_wall_state
);
333 E
void FDECL(unset_seenv
, (struct rm
*, int, int, int, int));
338 E
int FDECL(drop
, (struct obj
*));
339 E
int NDECL(wipeoff
);
342 E boolean
FDECL(boulder_hits_pool
, (struct obj
*, int, int, BOOLEAN_P
));
343 E boolean
FDECL(flooreffects
, (struct obj
*, int, int, const char *));
344 E
void FDECL(doaltarobj
, (struct obj
*));
345 E boolean
FDECL(canletgo
, (struct obj
*, const char *));
346 E
void FDECL(dropx
, (struct obj
*));
347 E
void FDECL(dropy
, (struct obj
*));
348 E
void FDECL(dropz
, (struct obj
*, BOOLEAN_P
));
349 E
void FDECL(obj_no_longer_held
, (struct obj
*));
350 E
int NDECL(doddrop
);
354 E
void NDECL(save_currentstate
);
356 E
void FDECL(goto_level
, (d_level
*, BOOLEAN_P
, BOOLEAN_P
, BOOLEAN_P
));
357 E
void FDECL(schedule_goto
, (d_level
*, BOOLEAN_P
, BOOLEAN_P
, int,
358 const char *, const char *));
359 E
void NDECL(deferred_goto
);
360 E boolean
FDECL(revive_corpse
, (struct obj
*));
361 E
void FDECL(revive_mon
, (ANY_P
*, long));
364 E
void FDECL(set_wounded_legs
, (long, int));
365 E
void NDECL(heal_legs
);
367 /* ### do_name.c ### */
369 E
int FDECL(getpos
, (coord
*, BOOLEAN_P
, const char *));
370 E
void FDECL(getpos_sethilite
, (void (*f
)(int)));
371 E
void FDECL(new_mname
, (struct monst
*, int));
372 E
void FDECL(free_mname
, (struct monst
*));
373 E
void FDECL(new_oname
, (struct obj
*, int));
374 E
void FDECL(free_oname
, (struct obj
*));
375 E
const char *FDECL(safe_oname
, (struct obj
*));
376 E
struct monst
*FDECL(christen_monst
, (struct monst
*, const char *));
377 E
struct obj
*FDECL(oname
, (struct obj
*, const char *));
378 E boolean
FDECL(objtyp_is_callable
, (int));
379 E
int NDECL(docallcmd
);
380 E
void FDECL(docall
, (struct obj
*));
381 E
const char *NDECL(rndghostname
);
382 E
char *FDECL(x_monnam
, (struct monst
*, int, const char *, int, BOOLEAN_P
));
383 E
char *FDECL(l_monnam
, (struct monst
*));
384 E
char *FDECL(mon_nam
, (struct monst
*));
385 E
char *FDECL(noit_mon_nam
, (struct monst
*));
386 E
char *FDECL(Monnam
, (struct monst
*));
387 E
char *FDECL(noit_Monnam
, (struct monst
*));
388 E
char *FDECL(m_monnam
, (struct monst
*));
389 E
char *FDECL(y_monnam
, (struct monst
*));
390 E
char *FDECL(Adjmonnam
, (struct monst
*, const char *));
391 E
char *FDECL(Amonnam
, (struct monst
*));
392 E
char *FDECL(a_monnam
, (struct monst
*));
393 E
char *FDECL(distant_monnam
, (struct monst
*, int, char *));
394 E
char *FDECL(rndmonnam
, (char *));
395 E
const char *FDECL(hcolor
, (const char *));
396 E
const char *NDECL(rndcolor
);
397 E
const char *NDECL(roguename
);
398 E
struct obj
*FDECL(realloc_obj
,
399 (struct obj
*, int, genericptr_t
, int, const char *));
400 E
char *FDECL(coyotename
, (struct monst
*, char *));
401 E
const char *FDECL(noveltitle
, (int *));
402 E
const char *FDECL(lookup_novel
, (const char *, int *));
404 /* ### do_wear.c ### */
407 E
int NDECL(Armor_on
);
408 E
int NDECL(Boots_on
);
409 E
int NDECL(Gloves_on
);
410 E
int NDECL(Helmet_on
);
411 E
int FDECL(select_off
, (struct obj
*));
412 E
int NDECL(take_off
);
414 E
void FDECL(off_msg
, (struct obj
*));
415 E
void FDECL(set_wear
, (struct obj
*));
416 E boolean
FDECL(donning
, (struct obj
*));
417 E boolean
FDECL(doffing
, (struct obj
*));
418 E
void NDECL(cancel_don
);
419 E
int FDECL(stop_donning
, (struct obj
*));
420 E
int NDECL(Armor_off
);
421 E
int NDECL(Armor_gone
);
422 E
int NDECL(Helmet_off
);
423 E
int NDECL(Gloves_off
);
424 E
int NDECL(Boots_off
);
425 E
int NDECL(Cloak_off
);
426 E
int NDECL(Shield_off
);
427 E
int NDECL(Shirt_off
);
428 E
void NDECL(Amulet_off
);
429 E
void FDECL(Ring_on
, (struct obj
*));
430 E
void FDECL(Ring_off
, (struct obj
*));
431 E
void FDECL(Ring_gone
, (struct obj
*));
432 E
void FDECL(Blindf_on
, (struct obj
*));
433 E
void FDECL(Blindf_off
, (struct obj
*));
434 E
int NDECL(dotakeoff
);
435 E
int NDECL(doremring
);
436 E
int FDECL(cursed
, (struct obj
*));
437 E
int FDECL(armoroff
, (struct obj
*));
438 E
int FDECL(canwearobj
, (struct obj
*, long *, BOOLEAN_P
));
440 E
int NDECL(doputon
);
441 E
void NDECL(find_ac
);
443 E
struct obj
*FDECL(some_armor
, (struct monst
*));
444 E
struct obj
*FDECL(stuck_ring
, (struct obj
*, int));
445 E
struct obj
*NDECL(unchanger
);
446 E
void NDECL(reset_remarm
);
447 E
int NDECL(doddoremarm
);
448 E
int FDECL(destroy_arm
, (struct obj
*));
449 E
void FDECL(adj_abon
, (struct obj
*, SCHAR_P
));
451 FDECL(inaccessible_equipment
, (struct obj
*, const char *, BOOLEAN_P
));
455 E
void FDECL(newedog
, (struct monst
*));
456 E
void FDECL(free_edog
, (struct monst
*));
457 E
void FDECL(initedog
, (struct monst
*));
458 E
struct monst
*FDECL(make_familiar
,
459 (struct obj
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
460 E
struct monst
*NDECL(makedog
);
461 E
void NDECL(update_mlstmv
);
462 E
void NDECL(losedogs
);
463 E
void FDECL(mon_arrive
, (struct monst
*, BOOLEAN_P
));
464 E
void FDECL(mon_catchup_elapsed_time
, (struct monst
*, long));
465 E
void FDECL(keepdogs
, (BOOLEAN_P
));
466 E
void FDECL(migrate_to_level
, (struct monst
*, XCHAR_P
, XCHAR_P
, coord
*));
467 E
int FDECL(dogfood
, (struct monst
*, struct obj
*));
468 E boolean
FDECL(tamedog
, (struct monst
*, struct obj
*));
469 E
void FDECL(abuse_dog
, (struct monst
*));
470 E
void FDECL(wary_dog
, (struct monst
*, BOOLEAN_P
));
472 /* ### dogmove.c ### */
474 E
struct obj
*FDECL(droppables
, (struct monst
*));
475 E
int FDECL(dog_nutrition
, (struct monst
*, struct obj
*));
476 E
int FDECL(dog_eat
, (struct monst
*, struct obj
*, int, int, BOOLEAN_P
));
477 E
int FDECL(dog_move
, (struct monst
*, int));
479 E
void FDECL(wantdoor
, (int, int, genericptr_t
));
481 E
void FDECL(finish_meating
, (struct monst
*));
483 /* ### dokick.c ### */
485 E boolean
FDECL(ghitm
, (struct monst
*, struct obj
*));
486 E
void FDECL(container_impact_dmg
, (struct obj
*, XCHAR_P
, XCHAR_P
));
488 E boolean
FDECL(ship_object
, (struct obj
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
489 E
void FDECL(obj_delivery
, (BOOLEAN_P
));
490 E schar
FDECL(down_gate
, (XCHAR_P
, XCHAR_P
));
491 E
void FDECL(impact_drop
, (struct obj
*, XCHAR_P
, XCHAR_P
, XCHAR_P
));
493 /* ### dothrow.c ### */
495 E
int NDECL(dothrow
);
497 E
void FDECL(endmultishot
, (BOOLEAN_P
));
498 E
void FDECL(hitfloor
, (struct obj
*));
499 E
void FDECL(hurtle
, (int, int, int, BOOLEAN_P
));
500 E
void FDECL(mhurtle
, (struct monst
*, int, int, int));
501 E
void FDECL(throwit
, (struct obj
*, long, BOOLEAN_P
));
502 E
int FDECL(omon_adj
, (struct monst
*, struct obj
*, BOOLEAN_P
));
503 E
int FDECL(thitmonst
, (struct monst
*, struct obj
*));
504 E
int FDECL(hero_breaks
, (struct obj
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
505 E
int FDECL(breaks
, (struct obj
*, XCHAR_P
, XCHAR_P
));
506 E
void FDECL(release_camera_demon
, (struct obj
*, XCHAR_P
, XCHAR_P
));
507 E
void FDECL(breakobj
,
508 (struct obj
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
, BOOLEAN_P
));
509 E boolean
FDECL(breaktest
, (struct obj
*));
510 E boolean
FDECL(walk_path
, (coord
*, coord
*,
511 boolean (*)(genericptr
, int, int), genericptr_t
));
512 E boolean
FDECL(hurtle_step
, (genericptr_t
, int, int));
514 /* ### drawing.c ### */
515 #endif /* !MAKEDEFS_C && !LEV_LEX_C */
516 E
int FDECL(def_char_to_objclass
, (CHAR_P
));
517 E
int FDECL(def_char_to_monclass
, (CHAR_P
));
518 #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
519 E
void FDECL(switch_symbols
, (int));
520 E
void FDECL(assign_graphics
, (int));
521 E
void NDECL(init_r_symbols
);
522 E
void NDECL(init_symbols
);
523 E
void NDECL(update_bouldersym
);
524 E
void NDECL(init_showsyms
);
525 E
void NDECL(init_l_symbols
);
526 E
void FDECL(clear_symsetentry
, (int, BOOLEAN_P
));
527 E
void FDECL(update_l_symset
, (struct symparse
*, int));
528 E
void FDECL(update_r_symset
, (struct symparse
*, int));
529 E boolean
FDECL(cursed_object_at
, (int, int));
531 /* ### dungeon.c ### */
533 E
void FDECL(save_dungeon
, (int, BOOLEAN_P
, BOOLEAN_P
));
534 E
void FDECL(restore_dungeon
, (int));
535 E
void FDECL(insert_branch
, (branch
*, BOOLEAN_P
));
536 E
void NDECL(init_dungeons
);
537 E s_level
*FDECL(find_level
, (const char *));
538 E s_level
*FDECL(Is_special
, (d_level
*));
539 E branch
*FDECL(Is_branchlev
, (d_level
*));
540 E boolean
FDECL(builds_up
, (d_level
*));
541 E xchar
FDECL(ledger_no
, (d_level
*));
542 E xchar
NDECL(maxledgerno
);
543 E schar
FDECL(depth
, (d_level
*));
544 E xchar
FDECL(dunlev
, (d_level
*));
545 E xchar
FDECL(dunlevs_in_dungeon
, (d_level
*));
546 E xchar
FDECL(ledger_to_dnum
, (XCHAR_P
));
547 E xchar
FDECL(ledger_to_dlev
, (XCHAR_P
));
548 E xchar
FDECL(deepest_lev_reached
, (BOOLEAN_P
));
549 E boolean
FDECL(on_level
, (d_level
*, d_level
*));
550 E
void FDECL(next_level
, (BOOLEAN_P
));
551 E
void FDECL(prev_level
, (BOOLEAN_P
));
552 E
void FDECL(u_on_newpos
, (int, int));
553 E
void FDECL(u_on_rndspot
, (int));
554 E
void FDECL(u_on_sstairs
, (int));
555 E
void NDECL(u_on_upstairs
);
556 E
void NDECL(u_on_dnstairs
);
557 E boolean
FDECL(On_stairs
, (XCHAR_P
, XCHAR_P
));
558 E
void FDECL(get_level
, (d_level
*, int));
559 E boolean
FDECL(Is_botlevel
, (d_level
*));
560 E boolean
FDECL(Can_fall_thru
, (d_level
*));
561 E boolean
FDECL(Can_dig_down
, (d_level
*));
562 E boolean
FDECL(Can_rise_up
, (int, int, d_level
*));
563 E boolean
FDECL(has_ceiling
, (d_level
*));
564 E boolean
FDECL(In_quest
, (d_level
*));
565 E boolean
FDECL(In_mines
, (d_level
*));
566 E branch
*FDECL(dungeon_branch
, (const char *));
567 E boolean
FDECL(at_dgn_entrance
, (const char *));
568 E boolean
FDECL(In_hell
, (d_level
*));
569 E boolean
FDECL(In_V_tower
, (d_level
*));
570 E boolean
FDECL(On_W_tower_level
, (d_level
*));
571 E boolean
FDECL(In_W_tower
, (int, int, d_level
*));
572 E
void FDECL(find_hell
, (d_level
*));
573 E
void FDECL(goto_hell
, (BOOLEAN_P
, BOOLEAN_P
));
574 E
void FDECL(assign_level
, (d_level
*, d_level
*));
575 E
void FDECL(assign_rnd_level
, (d_level
*, d_level
*, int));
576 E
int FDECL(induced_align
, (int));
577 E boolean
FDECL(Invocation_lev
, (d_level
*));
578 E xchar
NDECL(level_difficulty
);
579 E schar
FDECL(lev_by_name
, (const char *));
580 E schar
FDECL(print_dungeon
, (BOOLEAN_P
, schar
*, xchar
*));
581 E
char *FDECL(get_annotation
, (d_level
*));
582 E
int NDECL(donamelevel
);
583 E
int NDECL(dooverview
);
584 E
void FDECL(show_overview
, (int, int));
585 E
void FDECL(forget_mapseen
, (int));
586 E
void FDECL(init_mapseen
, (d_level
*));
587 E
void NDECL(recalc_mapseen
);
588 E
void FDECL(mapseen_temple
, (struct monst
*));
589 E
void FDECL(room_discovered
, (int));
590 E
void FDECL(recbranch_mapseen
, (d_level
*, d_level
*));
591 E
void FDECL(remdun_mapseen
, (int));
596 E
int NDECL(eatmdone
);
597 E
int NDECL(eatfood
);
598 E
int NDECL(opentin
);
599 E
int NDECL(unfaint
);
601 E
void NDECL(eatmupdate
);
602 E boolean
FDECL(is_edible
, (struct obj
*));
603 E
void NDECL(init_uhunger
);
604 E
int NDECL(Hear_again
);
605 E
void NDECL(reset_eat
);
607 E
int FDECL(use_tin_opener
, (struct obj
*));
608 E
void NDECL(gethungry
);
609 E
void FDECL(morehungry
, (int));
610 E
void FDECL(lesshungry
, (int));
611 E boolean
NDECL(is_fainted
);
612 E
void NDECL(reset_faint
);
613 E
void NDECL(violated_vegetarian
);
614 E
void FDECL(newuhs
, (BOOLEAN_P
));
615 E
struct obj
*FDECL(floorfood
, (const char *, int));
617 E
int FDECL(eaten_stat
, (int, struct obj
*));
618 E
void FDECL(food_disappears
, (struct obj
*));
619 E
void FDECL(food_substitution
, (struct obj
*, struct obj
*));
620 E
void FDECL(eating_conducts
, (struct permonst
*));
621 E
int FDECL(eat_brains
, (struct monst
*, struct monst
*, BOOLEAN_P
, int *));
622 E
void NDECL(fix_petrification
);
623 E
void FDECL(consume_oeaten
, (struct obj
*, int));
624 E boolean
FDECL(maybe_finished_meal
, (BOOLEAN_P
));
625 E
void FDECL(set_tin_variety
, (struct obj
*, int));
626 E
int FDECL(tin_variety_txt
, (char *, int *));
627 E
void FDECL(tin_details
, (struct obj
*, int, char *));
628 E boolean
FDECL(Popeye
, (int));
632 E
void FDECL(done1
, (int));
635 E
void FDECL(done_intr
, (int));
637 E
void FDECL(done_in_by
, (struct monst
*, int));
638 #endif /* !MAKEDEFS_C && !LEV_LEX_C */
639 E
void VDECL(panic
, (const char *, ...)) PRINTF_F(1, 2) NORETURN
;
640 #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
641 E
void FDECL(done
, (int));
642 E
void FDECL(container_contents
, (struct obj
*, BOOLEAN_P
,
643 BOOLEAN_P
, BOOLEAN_P
));
644 E
void FDECL(terminate
, (int)) NORETURN
;
645 E
int NDECL(dovanquished
);
646 E
int NDECL(num_genocides
);
647 E
void FDECL(delayed_killer
, (int, int, const char *));
648 E
struct kinfo
*FDECL(find_delayed_killer
, (int));
649 E
void FDECL(dealloc_killer
, (struct kinfo
*));
650 E
void FDECL(save_killers
, (int, int));
651 E
void FDECL(restore_killers
, (int));
652 E
char *FDECL(build_english_list
, (char *));
653 #if defined(PANICTRACE) && !defined(NO_SIGNAL)
654 E
void FDECL(panictrace_setsignals
, (BOOLEAN_P
));
657 /* ### engrave.c ### */
659 E
char *FDECL(random_engraving
, (char *));
660 E
void FDECL(wipeout_text
, (char *, int, unsigned));
661 E boolean
FDECL(can_reach_floor
, (BOOLEAN_P
));
662 E
void FDECL(cant_reach_floor
, (int, int, BOOLEAN_P
, BOOLEAN_P
));
663 E
const char *FDECL(surface
, (int, int));
664 E
const char *FDECL(ceiling
, (int, int));
665 E
struct engr
*FDECL(engr_at
, (XCHAR_P
, XCHAR_P
));
666 E
int FDECL(sengr_at
, (const char *, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
667 E
void FDECL(u_wipe_engr
, (int));
668 E
void FDECL(wipe_engr_at
, (XCHAR_P
, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
669 E
void FDECL(read_engr_at
, (int, int));
670 E
void FDECL(make_engr_at
, (int, int, const char *, long, XCHAR_P
));
671 E
void FDECL(del_engr_at
, (int, int));
672 E
int NDECL(freehand
);
673 E
int NDECL(doengrave
);
674 E
void NDECL(sanitize_engravings
);
675 E
void FDECL(save_engravings
, (int, int));
676 E
void FDECL(rest_engravings
, (int));
677 E
void FDECL(del_engr
, (struct engr
*));
678 E
void FDECL(rloc_engr
, (struct engr
*));
679 E
void FDECL(make_grave
, (int, int, const char *));
681 /* ### exper.c ### */
684 E
int FDECL(experience
, (struct monst
*, int));
685 E
void FDECL(more_experienced
, (int, int));
686 E
void FDECL(losexp
, (const char *));
687 E
void NDECL(newexplevel
);
688 E
void FDECL(pluslvl
, (BOOLEAN_P
));
689 E
long FDECL(rndexp
, (BOOLEAN_P
));
691 /* ### explode.c ### */
693 E
void FDECL(explode
, (int, int, int, int, CHAR_P
, int));
694 E
long FDECL(scatter
, (int, int, int, unsigned int, struct obj
*));
695 E
void FDECL(splatter_burning_oil
, (int, int));
696 E
void FDECL(explode_oil
, (struct obj
*, int, int));
698 /* ### extralev.c ### */
700 E
void NDECL(makeroguerooms
);
701 E
void FDECL(corr
, (int, int));
702 E
void NDECL(makerogueghost
);
704 /* ### files.c ### */
706 E
char *FDECL(fname_encode
, (const char *, CHAR_P
, char *, char *, int));
707 E
char *FDECL(fname_decode
, (CHAR_P
, char *, char *, int));
708 E
const char *FDECL(fqname
, (const char *, int, int));
709 E
FILE *FDECL(fopen_datafile
, (const char *, const char *, int));
711 E
void NDECL(set_lock_and_bones
);
713 E
void FDECL(set_levelfile_name
, (char *, int));
714 E
int FDECL(create_levelfile
, (int, char *));
715 E
int FDECL(open_levelfile
, (int, char *));
716 E
void FDECL(delete_levelfile
, (int));
717 E
void NDECL(clearlocks
);
718 E
int FDECL(create_bonesfile
, (d_level
*, char **, char *));
720 E
void NDECL(cancel_bonesfile
);
722 E
void FDECL(commit_bonesfile
, (d_level
*));
723 E
int FDECL(open_bonesfile
, (d_level
*, char **));
724 E
int FDECL(delete_bonesfile
, (d_level
*));
725 E
void NDECL(compress_bonesfile
);
726 E
void FDECL(set_savefile_name
, (BOOLEAN_P
));
728 E
void FDECL(save_savefile_name
, (int));
731 E
void NDECL(set_error_savefile
);
733 E
int NDECL(create_savefile
);
734 E
int NDECL(open_savefile
);
735 E
int NDECL(delete_savefile
);
736 E
int NDECL(restore_saved_game
);
737 E
void FDECL(nh_compress
, (const char *));
738 E
void FDECL(nh_uncompress
, (const char *));
739 E boolean
FDECL(lock_file
, (const char *, int, int));
740 E
void FDECL(unlock_file
, (const char *));
742 E boolean
FDECL(can_read_file
, (const char *));
744 E boolean
FDECL(read_config_file
, (const char *, int));
745 E
void FDECL(check_recordfile
, (const char *));
746 E
void NDECL(read_wizkit
);
747 E
int FDECL(read_sym_file
, (int));
748 E
int FDECL(parse_sym_line
, (char *, int));
749 E
void FDECL(paniclog
, (const char *, const char *));
750 E
int FDECL(validate_prefix_locations
, (char *));
752 E
char *FDECL(plname_from_file
, (const char *));
754 E
char **NDECL(get_saved_games
);
755 E
void FDECL(free_saved_games
, (char **));
757 E boolean
NDECL(recover_savefile
);
760 E
void NDECL(assure_syscf_file
);
762 E
int FDECL(nhclose
, (int));
763 #ifdef HOLD_LOCKFILE_OPEN
764 E
void NDECL(really_close
);
767 E boolean
FDECL(debugcore
, (const char *, BOOLEAN_P
));
769 E boolean
FDECL(read_tribute
, (const char *, const char *, int,
770 char *, int, unsigned));
771 E boolean
FDECL(Death_quote
, (char *, int));
773 /* ### fountain.c ### */
775 E
void FDECL(floating_above
, (const char *));
776 E
void FDECL(dogushforth
, (int));
778 E
void FDECL(gush
, (int, int, genericptr_t
));
780 E
void FDECL(dryup
, (XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
781 E
void NDECL(drinkfountain
);
782 E
void FDECL(dipfountain
, (struct obj
*));
783 E
void FDECL(breaksink
, (int, int));
784 E
void NDECL(drinksink
);
788 E anything
*FDECL(uint_to_any
, (unsigned));
789 E anything
*FDECL(long_to_any
, (long));
790 E anything
*FDECL(monst_to_any
, (struct monst
*));
791 E anything
*FDECL(obj_to_any
, (struct obj
*));
792 E boolean
FDECL(revive_nasty
, (int, int, const char *));
793 E
void FDECL(movobj
, (struct obj
*, XCHAR_P
, XCHAR_P
));
794 E boolean
FDECL(may_dig
, (XCHAR_P
, XCHAR_P
));
795 E boolean
FDECL(may_passwall
, (XCHAR_P
, XCHAR_P
));
796 E boolean
FDECL(bad_rock
, (struct permonst
*, XCHAR_P
, XCHAR_P
));
797 E
int FDECL(cant_squeeze_thru
, (struct monst
*));
798 E boolean
FDECL(invocation_pos
, (XCHAR_P
, XCHAR_P
));
799 E boolean
FDECL(test_move
, (int, int, int, int, int));
801 E
int NDECL(wiz_debug_cmd_traveldisplay
);
803 E boolean
NDECL(u_rooted
);
804 E
void NDECL(domove
);
805 E boolean
NDECL(overexertion
);
806 E
void NDECL(invocation_message
);
807 E boolean
FDECL(pooleffects
, (BOOLEAN_P
));
808 E
void FDECL(spoteffects
, (BOOLEAN_P
));
809 E
char *FDECL(in_rooms
, (XCHAR_P
, XCHAR_P
, int));
810 E boolean
FDECL(in_town
, (int, int));
811 E
void FDECL(check_special_room
, (BOOLEAN_P
));
812 E
int NDECL(dopickup
);
813 E
void NDECL(lookaround
);
814 E boolean
FDECL(crawl_destination
, (int, int));
815 E
int NDECL(monster_nearby
);
816 E
void FDECL(nomul
, (int));
817 E
void FDECL(unmul
, (const char *));
818 E
void FDECL(losehp
, (int, const char *, BOOLEAN_P
));
819 E
int NDECL(weight_cap
);
820 E
int NDECL(inv_weight
);
821 E
int NDECL(near_capacity
);
822 E
int FDECL(calc_capacity
, (int));
823 E
int NDECL(max_capacity
);
824 E boolean
FDECL(check_capacity
, (const char *));
825 E
int FDECL(inv_cnt
, (BOOLEAN_P
));
826 E
long FDECL(money_cnt
, (struct obj
*));
828 /* ### hacklib.c ### */
830 E boolean
FDECL(digit
, (CHAR_P
));
831 E boolean
FDECL(letter
, (CHAR_P
));
832 E
char FDECL(highc
, (CHAR_P
));
833 E
char FDECL(lowc
, (CHAR_P
));
834 E
char *FDECL(lcase
, (char *));
835 E
char *FDECL(ucase
, (char *));
836 E
char *FDECL(upstart
, (char *));
837 E
char *FDECL(mungspaces
, (char *));
838 E
char *FDECL(strip_newline
, (char *));
839 E
char *FDECL(eos
, (char *));
840 E boolean
FDECL(str_end_is
, (const char *, const char *));
841 E
char *FDECL(strkitten
, (char *, CHAR_P
));
842 E
void FDECL(copynchars
, (char *, const char *, int));
843 E
char FDECL(chrcasecpy
, (int, int));
844 E
char *FDECL(strcasecpy
, (char *, const char *));
845 E
char *FDECL(s_suffix
, (const char *));
846 E
char *FDECL(ing_suffix
, (const char *));
847 E
char *FDECL(xcrypt
, (const char *, char *));
848 E boolean
FDECL(onlyspace
, (const char *));
849 E
char *FDECL(tabexpand
, (char *));
850 E
char *FDECL(visctrl
, (CHAR_P
));
851 E
char *FDECL(strsubst
, (char *, const char *, const char *));
852 E
const char *FDECL(ordin
, (int));
853 E
char *FDECL(sitoa
, (int));
854 E
int FDECL(sgn
, (int));
855 E
int FDECL(rounddiv
, (long, int));
856 E
int FDECL(dist2
, (int, int, int, int));
857 E
int FDECL(isqrt
, (int));
858 E
int FDECL(distmin
, (int, int, int, int));
859 E boolean
FDECL(online2
, (int, int, int, int));
860 E boolean
FDECL(pmatch
, (const char *, const char *));
861 E boolean
FDECL(pmatchi
, (const char *, const char *));
862 E boolean
FDECL(pmatchz
, (const char *, const char *));
864 E
int FDECL(strncmpi
, (const char *, const char *, int));
867 E
char *FDECL(strstri
, (const char *, const char *));
870 FDECL(fuzzymatch
, (const char *, const char *, const char *, BOOLEAN_P
));
871 E
void NDECL(setrandom
);
872 E
time_t NDECL(getnow
);
873 E
int NDECL(getyear
);
875 E
char *FDECL(yymmdd
, (time_t));
877 E
long FDECL(yyyymmdd
, (time_t));
878 E
long FDECL(hhmmss
, (time_t));
879 E
char *FDECL(yyyymmddhhmmss
, (time_t));
880 E
time_t FDECL(time_from_yyyymmddhhmmss
, (char *));
881 E
int NDECL(phase_of_the_moon
);
882 E boolean
NDECL(friday_13th
);
884 E
int NDECL(midnight
);
886 /* ### invent.c ### */
888 E
struct obj
**FDECL(objarr_init
, (int));
889 E
void FDECL(objarr_set
, (struct obj
*, int, struct obj
**, BOOLEAN_P
));
890 E
void FDECL(assigninvlet
, (struct obj
*));
891 E
struct obj
*FDECL(merge_choice
, (struct obj
*, struct obj
*));
892 E
int FDECL(merged
, (struct obj
**, struct obj
**));
894 E
int FDECL(ckunpaid
, (struct obj
*));
896 E
void FDECL(addinv_core1
, (struct obj
*));
897 E
void FDECL(addinv_core2
, (struct obj
*));
898 E
struct obj
*FDECL(addinv
, (struct obj
*));
899 E
struct obj
*FDECL(hold_another_object
,
900 (struct obj
*, const char *, const char *, const char *));
901 E
void FDECL(useupall
, (struct obj
*));
902 E
void FDECL(useup
, (struct obj
*));
903 E
void FDECL(consume_obj_charge
, (struct obj
*, BOOLEAN_P
));
904 E
void FDECL(freeinv_core
, (struct obj
*));
905 E
void FDECL(freeinv
, (struct obj
*));
906 E
void FDECL(delallobj
, (int, int));
907 E
void FDECL(delobj
, (struct obj
*));
908 E
struct obj
*FDECL(sobj_at
, (int, int, int));
909 E
struct obj
*FDECL(nxtobj
, (struct obj
*, int, BOOLEAN_P
));
910 E
struct obj
*FDECL(carrying
, (int));
911 E boolean
NDECL(have_lizard
);
912 E
struct obj
*NDECL(u_have_novel
);
913 E
struct obj
*FDECL(o_on
, (unsigned int, struct obj
*));
914 E boolean
FDECL(obj_here
, (struct obj
*, int, int));
915 E boolean
NDECL(wearing_armor
);
916 E boolean
FDECL(is_worn
, (struct obj
*));
917 E
struct obj
*FDECL(g_at
, (int, int));
918 E
struct obj
*FDECL(getobj
, (const char *, const char *));
919 E
int FDECL(ggetobj
, (const char *, int (*)(OBJ_P
), int,
920 BOOLEAN_P
, unsigned *));
921 E
int FDECL(askchain
, (struct obj
**, const char *, int, int (*)(OBJ_P
),
922 int (*)(OBJ_P
), int, const char *));
923 E
void FDECL(fully_identify_obj
, (struct obj
*));
924 E
int FDECL(identify
, (struct obj
*));
925 E
void FDECL(identify_pack
, (int, BOOLEAN_P
));
926 E
void NDECL(learn_unseen_invent
);
927 E
void FDECL(prinv
, (const char *, struct obj
*, long));
928 E
char *FDECL(xprname
,
929 (struct obj
*, const char *, CHAR_P
, BOOLEAN_P
, long, long));
931 E
char FDECL(display_inventory
, (const char *, BOOLEAN_P
));
932 E
int FDECL(display_binventory
, (int, int, BOOLEAN_P
));
933 E
struct obj
*FDECL(display_cinventory
, (struct obj
*));
934 E
struct obj
*FDECL(display_minventory
, (struct monst
*, int, char *));
935 E
int NDECL(dotypeinv
);
936 E
const char *FDECL(dfeature_at
, (int, int, char *));
937 E
int FDECL(look_here
, (int, BOOLEAN_P
));
939 E boolean
FDECL(will_feel_cockatrice
, (struct obj
*, BOOLEAN_P
));
940 E
void FDECL(feel_cockatrice
, (struct obj
*, BOOLEAN_P
));
941 E
void FDECL(stackobj
, (struct obj
*));
942 E
int NDECL(doprgold
);
943 E
int NDECL(doprwep
);
944 E
int NDECL(doprarm
);
945 E
int NDECL(doprring
);
946 E
int NDECL(dopramulet
);
947 E
int NDECL(doprtool
);
948 E
int NDECL(doprinuse
);
949 E
void FDECL(useupf
, (struct obj
*, long));
950 E
char *FDECL(let_to_name
, (CHAR_P
, BOOLEAN_P
, BOOLEAN_P
));
951 E
void NDECL(free_invbuf
);
952 E
void NDECL(reassign
);
953 E
int NDECL(doorganize
);
954 E
void NDECL(free_pickinv_cache
);
955 E
int FDECL(count_unpaid
, (struct obj
*));
956 E
int FDECL(count_buc
, (struct obj
*, int));
957 E
long FDECL(count_contents
, (struct obj
*, BOOLEAN_P
, BOOLEAN_P
, BOOLEAN_P
));
958 E
void FDECL(carry_obj_effects
, (struct obj
*));
959 E
const char *FDECL(currency
, (long));
960 E
void FDECL(silly_thing
, (const char *, struct obj
*));
962 /* ### ioctl.c ### */
964 #if defined(UNIX) || defined(__BEOS__)
965 E
void NDECL(getwindowsz
);
966 E
void NDECL(getioctls
);
967 E
void NDECL(setioctls
);
969 E
int NDECL(dosuspend
);
971 #endif /* UNIX || __BEOS__ */
973 /* ### light.c ### */
975 E
void FDECL(new_light_source
, (XCHAR_P
, XCHAR_P
, int, int, ANY_P
*));
976 E
void FDECL(del_light_source
, (int, ANY_P
*));
977 E
void FDECL(do_light_sources
, (char **));
978 E
struct monst
*FDECL(find_mid
, (unsigned, unsigned));
979 E
void FDECL(save_light_sources
, (int, int, int));
980 E
void FDECL(restore_light_sources
, (int));
981 E
void FDECL(relink_light_sources
, (BOOLEAN_P
));
982 E
void NDECL(light_sources_sanity_check
);
983 E
void FDECL(obj_move_light_source
, (struct obj
*, struct obj
*));
984 E boolean
NDECL(any_light_source
);
985 E
void FDECL(snuff_light_source
, (int, int));
986 E boolean
FDECL(obj_sheds_light
, (struct obj
*));
987 E boolean
FDECL(obj_is_burning
, (struct obj
*));
988 E
void FDECL(obj_split_light_source
, (struct obj
*, struct obj
*));
989 E
void FDECL(obj_merge_light_sources
, (struct obj
*, struct obj
*));
990 E
void FDECL(obj_adjust_light_radius
, (struct obj
*, int));
991 E
int FDECL(candle_light_range
, (struct obj
*));
992 E
int FDECL(arti_light_radius
, (struct obj
*));
993 E
const char *FDECL(arti_light_description
, (struct obj
*));
994 E
int NDECL(wiz_light_sources
);
999 E
int NDECL(forcelock
);
1000 E
int NDECL(picklock
);
1002 E boolean
FDECL(picking_lock
, (int *, int *));
1003 E boolean
FDECL(picking_at
, (int, int));
1004 E
void FDECL(breakchestlock
, (struct obj
*, BOOLEAN_P
));
1005 E
void NDECL(reset_pick
);
1006 E
int FDECL(pick_lock
, (struct obj
*));
1007 E
int NDECL(doforce
);
1008 E boolean
FDECL(boxlock
, (struct obj
*, struct obj
*));
1009 E boolean
FDECL(doorlock
, (struct obj
*, int, int));
1010 E
int NDECL(doopen
);
1011 E boolean
FDECL(stumble_on_door_mimic
, (int, int));
1012 E
int FDECL(doopen_indir
, (int, int));
1013 E
int NDECL(doclose
);
1016 /* These declarations are here because the main code calls them. */
1018 /* ### macfile.c ### */
1020 E
int FDECL(maccreat
, (const char *, long));
1021 E
int FDECL(macopen
, (const char *, int, long));
1022 E
int FDECL(macclose
, (int));
1023 E
int FDECL(macread
, (int, void *, unsigned));
1024 E
int FDECL(macwrite
, (int, void *, unsigned));
1025 E
long FDECL(macseek
, (int, long, short));
1026 E
int FDECL(macunlink
, (const char *));
1028 /* ### macmain.c ### */
1030 E boolean
NDECL(authorize_wizard_mode
);
1032 /* ### macsnd.c ### */
1034 E
void FDECL(mac_speaker
, (struct obj
*, char *));
1036 /* ### macunix.c ### */
1038 E
void FDECL(regularize
, (char *));
1039 E
void NDECL(getlock
);
1041 /* ### macwin.c ### */
1043 E
void FDECL(lock_mouse_cursor
, (Boolean
));
1044 E
int NDECL(SanePositions
);
1046 /* ### mttymain.c ### */
1048 E
void FDECL(getreturn
, (char *));
1049 E
void VDECL(msmsg
, (const char *, ...));
1050 E
void NDECL(gettty
);
1051 E
void NDECL(setftty
);
1052 E
void FDECL(settty
, (const char *));
1053 E
int NDECL(tgetch
);
1054 E
void FDECL(cmov
, (int x
, int y
));
1055 E
void FDECL(nocmov
, (int x
, int y
));
1059 /* ### mail.c ### */
1063 E
void NDECL(getmailstatus
);
1064 E
void NDECL(ck_server_admin_msg
);
1066 E
void NDECL(ckmailstatus
);
1067 E
void FDECL(readmail
, (struct obj
*));
1070 /* ### makemon.c ### */
1072 E
void FDECL(dealloc_monst
, (struct monst
*));
1073 E boolean
FDECL(is_home_elemental
, (struct permonst
*));
1074 E
struct monst
*FDECL(clone_mon
, (struct monst
*, XCHAR_P
, XCHAR_P
));
1075 E
int FDECL(monhp_per_lvl
, (struct monst
*));
1076 E
void FDECL(newmonhp
, (struct monst
*, int));
1077 E
struct mextra
*NDECL(newmextra
);
1078 E
void FDECL(copy_mextra
, (struct monst
*, struct monst
*));
1079 E
void FDECL(dealloc_mextra
, (struct monst
*));
1080 E
struct monst
*FDECL(makemon
, (struct permonst
*, int, int, int));
1081 E boolean
FDECL(create_critters
, (int, struct permonst
*, BOOLEAN_P
));
1082 E
struct permonst
*NDECL(rndmonst
);
1083 E
void FDECL(reset_rndmonst
, (int));
1084 E
struct permonst
*FDECL(mkclass
, (CHAR_P
, int));
1085 E
int FDECL(mkclass_poly
, (int));
1086 E
int FDECL(adj_lev
, (struct permonst
*));
1087 E
struct permonst
*FDECL(grow_up
, (struct monst
*, struct monst
*));
1088 E
int FDECL(mongets
, (struct monst
*, int));
1089 E
int FDECL(golemhp
, (int));
1090 E boolean
FDECL(peace_minded
, (struct permonst
*));
1091 E
void FDECL(set_malign
, (struct monst
*));
1092 E
void FDECL(newmcorpsenm
, (struct monst
*));
1093 E
void FDECL(freemcorpsenm
, (struct monst
*));
1094 E
void FDECL(set_mimic_sym
, (struct monst
*));
1095 E
int FDECL(mbirth_limit
, (int));
1096 E
void FDECL(mimic_hit_msg
, (struct monst
*, SHORT_P
));
1097 E
void FDECL(mkmonmoney
, (struct monst
*, long));
1098 E
int FDECL(bagotricks
, (struct obj
*, BOOLEAN_P
, int *));
1099 E boolean
FDECL(propagate
, (int, BOOLEAN_P
, BOOLEAN_P
));
1100 E boolean
FDECL(usmellmon
, (struct permonst
*));
1102 /* ### mapglyph.c ### */
1104 E
int FDECL(mapglyph
, (int, int *, int *, unsigned *, int, int));
1105 E
char *FDECL(encglyph
, (int));
1106 E
void FDECL(genl_putmixed
, (winid
, int, const char *));
1108 /* ### mcastu.c ### */
1110 E
int FDECL(castmu
, (struct monst
*, struct attack
*, BOOLEAN_P
, BOOLEAN_P
));
1111 E
int FDECL(buzzmu
, (struct monst
*, struct attack
*));
1113 /* ### mhitm.c ### */
1115 E
int FDECL(fightm
, (struct monst
*));
1116 E
int FDECL(mattackm
, (struct monst
*, struct monst
*));
1117 E boolean
FDECL(engulf_target
, (struct monst
*, struct monst
*));
1118 E
int FDECL(mdisplacem
, (struct monst
*, struct monst
*, BOOLEAN_P
));
1119 E
void FDECL(paralyze_monst
, (struct monst
*, int));
1120 E
int FDECL(sleep_monst
, (struct monst
*, int, int));
1121 E
void FDECL(slept_monst
, (struct monst
*));
1122 E
void FDECL(xdrainenergym
, (struct monst
*, BOOLEAN_P
));
1123 E
long FDECL(attk_protection
, (int));
1124 E
void FDECL(rustm
, (struct monst
*, struct obj
*));
1126 /* ### mhitu.c ### */
1128 E
const char *FDECL(mpoisons_subj
, (struct monst
*, struct attack
*));
1129 E
void NDECL(u_slow_down
);
1130 E
struct monst
*NDECL(cloneu
);
1131 E
void FDECL(expels
, (struct monst
*, struct permonst
*, BOOLEAN_P
));
1132 E
struct attack
*FDECL(getmattk
,
1133 (struct permonst
*, int, int *, struct attack
*));
1134 E
int FDECL(mattacku
, (struct monst
*));
1135 E
int FDECL(magic_negation
, (struct monst
*));
1136 E boolean
NDECL(gulp_blnd_check
);
1137 E
int FDECL(gazemu
, (struct monst
*, struct attack
*));
1138 E
void FDECL(mdamageu
, (struct monst
*, int));
1139 E
int FDECL(could_seduce
, (struct monst
*, struct monst
*, struct attack
*));
1140 E
int FDECL(doseduce
, (struct monst
*));
1142 /* ### minion.c ### */
1144 E
void FDECL(newemin
, (struct monst
*));
1145 E
void FDECL(free_emin
, (struct monst
*));
1146 E
int FDECL(monster_census
, (BOOLEAN_P
));
1147 E
int FDECL(msummon
, (struct monst
*));
1148 E
void FDECL(summon_minion
, (ALIGNTYP_P
, BOOLEAN_P
));
1149 E
int FDECL(demon_talk
, (struct monst
*));
1150 E
long FDECL(bribe
, (struct monst
*));
1151 E
int FDECL(dprince
, (ALIGNTYP_P
));
1152 E
int FDECL(dlord
, (ALIGNTYP_P
));
1154 E
int FDECL(ndemon
, (ALIGNTYP_P
));
1155 E
int NDECL(lminion
);
1156 E
void FDECL(lose_guardian_angel
, (struct monst
*));
1157 E
void NDECL(gain_guardian_angel
);
1159 /* ### mklev.c ### */
1162 E
int FDECL(do_comp
, (genericptr_t
, genericptr_t
));
1164 E
void NDECL(sort_rooms
);
1165 E
void FDECL(add_room
, (int, int, int, int, BOOLEAN_P
, SCHAR_P
, BOOLEAN_P
));
1166 E
void FDECL(add_subroom
, (struct mkroom
*, int, int, int, int, BOOLEAN_P
,
1167 SCHAR_P
, BOOLEAN_P
));
1168 E
void NDECL(makecorridors
);
1169 E
void FDECL(add_door
, (int, int, struct mkroom
*));
1170 E
void NDECL(mklev
);
1171 #ifdef SPECIALIZATION
1172 E
void FDECL(topologize
, (struct mkroom
*, BOOLEAN_P
));
1174 E
void FDECL(topologize
, (struct mkroom
*));
1176 E
void FDECL(place_branch
, (branch
*, XCHAR_P
, XCHAR_P
));
1177 E boolean
FDECL(occupied
, (XCHAR_P
, XCHAR_P
));
1178 E
int FDECL(okdoor
, (XCHAR_P
, XCHAR_P
));
1179 E
void FDECL(dodoor
, (int, int, struct mkroom
*));
1180 E
void FDECL(mktrap
, (int, int, struct mkroom
*, coord
*));
1181 E
void FDECL(mkstairs
, (XCHAR_P
, XCHAR_P
, CHAR_P
, struct mkroom
*));
1182 E
void NDECL(mkinvokearea
);
1183 E
void FDECL(mineralize
, (int, int, int, int, BOOLEAN_P
));
1185 /* ### mkmap.c ### */
1187 E
void FDECL(flood_fill_rm
, (int, int, int, BOOLEAN_P
, BOOLEAN_P
));
1188 E
void FDECL(remove_rooms
, (int, int, int, int));
1189 /* E void FDECL(mkmap, (lev_init *)); -- need sp_lev.h for lev_init */
1191 /* ### mkmaze.c ### */
1193 E
void FDECL(wallification
, (int, int, int, int));
1194 E
void FDECL(fix_wall_spines
, (int, int, int, int));
1195 E
void FDECL(walkfrom
, (int, int, SCHAR_P
));
1196 E
void FDECL(makemaz
, (const char *));
1197 E
void FDECL(mazexy
, (coord
*));
1198 E
void NDECL(bound_digging
);
1199 E
void FDECL(mkportal
, (XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
));
1200 E boolean
FDECL(bad_location
, (XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
,
1202 E
void FDECL(place_lregion
, (XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
,
1203 XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
, d_level
*));
1204 E
void NDECL(fumaroles
);
1205 E
void NDECL(movebubbles
);
1206 E
void NDECL(water_friction
);
1207 E
void FDECL(save_waterlevel
, (int, int));
1208 E
void FDECL(restore_waterlevel
, (int));
1209 E
const char *FDECL(waterbody_name
, (XCHAR_P
, XCHAR_P
));
1211 /* ### mkobj.c ### */
1213 E
struct oextra
*NDECL(newoextra
);
1214 E
void FDECL(copy_oextra
, (struct obj
*, struct obj
*));
1215 E
void FDECL(dealloc_oextra
, (struct obj
*));
1216 E
void FDECL(newomonst
, (struct obj
*));
1217 E
void FDECL(free_omonst
, (struct obj
*));
1218 E
void FDECL(newomid
, (struct obj
*));
1219 E
void FDECL(free_omid
, (struct obj
*));
1220 E
void FDECL(newolong
, (struct obj
*));
1221 E
void FDECL(free_olong
, (struct obj
*));
1222 E
void FDECL(new_omailcmd
, (struct obj
*, const char *));
1223 E
void FDECL(free_omailcmd
, (struct obj
*));
1224 E
struct obj
*FDECL(mkobj_at
, (CHAR_P
, int, int, BOOLEAN_P
));
1225 E
struct obj
*FDECL(mksobj_at
, (int, int, int, BOOLEAN_P
, BOOLEAN_P
));
1226 E
struct obj
*FDECL(mkobj
, (CHAR_P
, BOOLEAN_P
));
1227 E
int NDECL(rndmonnum
);
1228 E boolean
FDECL(bogon_is_pname
, (CHAR_P
));
1229 E
struct obj
*FDECL(splitobj
, (struct obj
*, long));
1230 E
struct obj
*FDECL(unsplitobj
, (struct obj
*));
1231 E
void NDECL(clear_splitobjs
);
1232 E
void FDECL(replace_object
, (struct obj
*, struct obj
*));
1233 E
void FDECL(bill_dummy_object
, (struct obj
*));
1234 E
void FDECL(costly_alteration
, (struct obj
*, int));
1235 E
struct obj
*FDECL(mksobj
, (int, BOOLEAN_P
, BOOLEAN_P
));
1236 E
int FDECL(bcsign
, (struct obj
*));
1237 E
int FDECL(weight
, (struct obj
*));
1238 E
struct obj
*FDECL(mkgold
, (long, int, int));
1239 E
struct obj
*FDECL(mkcorpstat
, (int, struct monst
*, struct permonst
*, int,
1241 E
int FDECL(corpse_revive_type
, (struct obj
*));
1242 E
struct obj
*FDECL(obj_attach_mid
, (struct obj
*, unsigned));
1243 E
struct monst
*FDECL(get_mtraits
, (struct obj
*, BOOLEAN_P
));
1244 E
struct obj
*FDECL(mk_tt_object
, (int, int, int));
1245 E
struct obj
*FDECL(mk_named_object
,
1246 (int, struct permonst
*, int, int, const char *));
1247 E
struct obj
*FDECL(rnd_treefruit_at
, (int, int));
1248 E
void FDECL(set_corpsenm
, (struct obj
*, int));
1249 E
void FDECL(start_corpse_timeout
, (struct obj
*));
1250 E
void FDECL(bless
, (struct obj
*));
1251 E
void FDECL(unbless
, (struct obj
*));
1252 E
void FDECL(curse
, (struct obj
*));
1253 E
void FDECL(uncurse
, (struct obj
*));
1254 E
void FDECL(blessorcurse
, (struct obj
*, int));
1255 E boolean
FDECL(is_flammable
, (struct obj
*));
1256 E boolean
FDECL(is_rottable
, (struct obj
*));
1257 E
void FDECL(place_object
, (struct obj
*, int, int));
1258 E
void FDECL(remove_object
, (struct obj
*));
1259 E
void FDECL(discard_minvent
, (struct monst
*));
1260 E
void FDECL(obj_extract_self
, (struct obj
*));
1261 E
void FDECL(extract_nobj
, (struct obj
*, struct obj
**));
1262 E
void FDECL(extract_nexthere
, (struct obj
*, struct obj
**));
1263 E
int FDECL(add_to_minv
, (struct monst
*, struct obj
*));
1264 E
struct obj
*FDECL(add_to_container
, (struct obj
*, struct obj
*));
1265 E
void FDECL(add_to_migration
, (struct obj
*));
1266 E
void FDECL(add_to_buried
, (struct obj
*));
1267 E
void FDECL(dealloc_obj
, (struct obj
*));
1268 E
void FDECL(obj_ice_effects
, (int, int, BOOLEAN_P
));
1269 E
long FDECL(peek_at_iced_corpse_age
, (struct obj
*));
1270 E
int FDECL(hornoplenty
, (struct obj
*, BOOLEAN_P
));
1271 E
void NDECL(obj_sanity_check
);
1272 E
struct obj
*FDECL(obj_nexto
, (struct obj
*));
1273 E
struct obj
*FDECL(obj_nexto_xy
, (int, int, int, unsigned));
1274 E
struct obj
*FDECL(obj_absorb
, (struct obj
**, struct obj
**));
1275 E
struct obj
*FDECL(obj_meld
, (struct obj
**, struct obj
**));
1277 /* ### mkroom.c ### */
1279 E
void FDECL(mkroom
, (int));
1280 E
void FDECL(fill_zoo
, (struct mkroom
*));
1281 E
struct permonst
*NDECL(antholemon
);
1282 E boolean
FDECL(nexttodoor
, (int, int));
1283 E boolean
FDECL(has_dnstairs
, (struct mkroom
*));
1284 E boolean
FDECL(has_upstairs
, (struct mkroom
*));
1285 E
int FDECL(somex
, (struct mkroom
*));
1286 E
int FDECL(somey
, (struct mkroom
*));
1287 E boolean
FDECL(inside_room
, (struct mkroom
*, XCHAR_P
, XCHAR_P
));
1288 E boolean
FDECL(somexy
, (struct mkroom
*, coord
*));
1289 E
void FDECL(mkundead
, (coord
*, BOOLEAN_P
, int));
1290 E
struct permonst
*NDECL(courtmon
);
1291 E
void FDECL(save_rooms
, (int));
1292 E
void FDECL(rest_rooms
, (int));
1293 E
struct mkroom
*FDECL(search_special
, (SCHAR_P
));
1294 E
int FDECL(cmap_to_type
, (int));
1298 E
void NDECL(mon_sanity_check
);
1299 E
int FDECL(undead_to_corpse
, (int));
1300 E
int FDECL(genus
, (int, int));
1301 E
int FDECL(pm_to_cham
, (int));
1302 E
int FDECL(minliquid
, (struct monst
*));
1303 E
int NDECL(movemon
);
1304 E
int FDECL(meatmetal
, (struct monst
*));
1305 E
int FDECL(meatobj
, (struct monst
*));
1306 E
void FDECL(mpickgold
, (struct monst
*));
1307 E boolean
FDECL(mpickstuff
, (struct monst
*, const char *));
1308 E
int FDECL(curr_mon_load
, (struct monst
*));
1309 E
int FDECL(max_mon_load
, (struct monst
*));
1310 E
int FDECL(can_carry
, (struct monst
*, struct obj
*));
1311 E
int FDECL(mfndpos
, (struct monst
*, coord
*, long *, long));
1312 E boolean
FDECL(monnear
, (struct monst
*, int, int));
1313 E
void NDECL(dmonsfree
);
1314 E
int FDECL(mcalcmove
, (struct monst
*));
1315 E
void NDECL(mcalcdistress
);
1316 E
void FDECL(replmon
, (struct monst
*, struct monst
*));
1317 E
void FDECL(relmon
, (struct monst
*, struct monst
**));
1318 E
struct obj
*FDECL(mlifesaver
, (struct monst
*));
1319 E boolean
FDECL(corpse_chance
, (struct monst
*, struct monst
*, BOOLEAN_P
));
1320 E
void FDECL(mondead
, (struct monst
*));
1321 E
void FDECL(mondied
, (struct monst
*));
1322 E
void FDECL(mongone
, (struct monst
*));
1323 E
void FDECL(monstone
, (struct monst
*));
1324 E
void FDECL(monkilled
, (struct monst
*, const char *, int));
1325 E
void FDECL(unstuck
, (struct monst
*));
1326 E
void FDECL(killed
, (struct monst
*));
1327 E
void FDECL(xkilled
, (struct monst
*, int));
1328 E
void FDECL(mon_to_stone
, (struct monst
*));
1329 E
void FDECL(mnexto
, (struct monst
*));
1330 E
void FDECL(maybe_mnexto
, (struct monst
*));
1331 E boolean
FDECL(mnearto
, (struct monst
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
1332 E
void FDECL(m_respond
, (struct monst
*));
1333 E
void FDECL(setmangry
, (struct monst
*));
1334 E
void FDECL(wakeup
, (struct monst
*));
1335 E
void NDECL(wake_nearby
);
1336 E
void FDECL(wake_nearto
, (int, int, int));
1337 E
void FDECL(seemimic
, (struct monst
*));
1338 E
void NDECL(rescham
);
1339 E
void NDECL(restartcham
);
1340 E
void FDECL(restore_cham
, (struct monst
*));
1341 E boolean
FDECL(hideunder
, (struct monst
*));
1342 E
void FDECL(hide_monst
, (struct monst
*));
1343 E
void FDECL(mon_animal_list
, (BOOLEAN_P
));
1344 E
int FDECL(select_newcham_form
, (struct monst
*));
1345 E
void FDECL(mgender_from_permonst
, (struct monst
*, struct permonst
*));
1346 E
int FDECL(newcham
,
1347 (struct monst
*, struct permonst
*, BOOLEAN_P
, BOOLEAN_P
));
1348 E
int FDECL(can_be_hatched
, (int));
1349 E
int FDECL(egg_type_from_parent
, (int, BOOLEAN_P
));
1350 E boolean
FDECL(dead_species
, (int, BOOLEAN_P
));
1351 E
void NDECL(kill_genocided_monsters
);
1352 E
void FDECL(golemeffects
, (struct monst
*, int, int));
1353 E boolean
FDECL(angry_guards
, (BOOLEAN_P
));
1354 E
void NDECL(pacify_guards
);
1355 E
void FDECL(decide_to_shapeshift
, (struct monst
*, int));
1356 E boolean
FDECL(vamp_stone
, (struct monst
*));
1358 /* ### mondata.c ### */
1360 E
void FDECL(set_mon_data
, (struct monst
*, struct permonst
*, int));
1361 E
struct attack
*FDECL(attacktype_fordmg
, (struct permonst
*, int, int));
1362 E boolean
FDECL(attacktype
, (struct permonst
*, int));
1363 E boolean
FDECL(noattacks
, (struct permonst
*));
1364 E boolean
FDECL(poly_when_stoned
, (struct permonst
*));
1365 E boolean
FDECL(resists_drli
, (struct monst
*));
1366 E boolean
FDECL(resists_magm
, (struct monst
*));
1367 E boolean
FDECL(resists_blnd
, (struct monst
*));
1369 FDECL(can_blnd
, (struct monst
*, struct monst
*, UCHAR_P
, struct obj
*));
1370 E boolean
FDECL(ranged_attk
, (struct permonst
*));
1371 E boolean
FDECL(hates_silver
, (struct permonst
*));
1372 E boolean
FDECL(mon_hates_silver
, (struct monst
*));
1373 E boolean
FDECL(passes_bars
, (struct permonst
*));
1374 E boolean
FDECL(can_blow
, (struct monst
*));
1375 E boolean
FDECL(can_be_strangled
, (struct monst
*));
1376 E boolean
FDECL(can_track
, (struct permonst
*));
1377 E boolean
FDECL(breakarm
, (struct permonst
*));
1378 E boolean
FDECL(sliparm
, (struct permonst
*));
1379 E boolean
FDECL(sticks
, (struct permonst
*));
1380 E boolean
FDECL(cantvomit
, (struct permonst
*));
1381 E
int FDECL(num_horns
, (struct permonst
*));
1382 /* E boolean FDECL(canseemon, (struct monst *)); */
1383 E
struct attack
*FDECL(dmgtype_fromattack
, (struct permonst
*, int, int));
1384 E boolean
FDECL(dmgtype
, (struct permonst
*, int));
1385 E
int FDECL(max_passive_dmg
, (struct monst
*, struct monst
*));
1386 E boolean
FDECL(same_race
, (struct permonst
*, struct permonst
*));
1387 E
int FDECL(monsndx
, (struct permonst
*));
1388 E
int FDECL(name_to_mon
, (const char *));
1389 E
int FDECL(name_to_monclass
, (const char *, int *));
1390 E
int FDECL(gender
, (struct monst
*));
1391 E
int FDECL(pronoun_gender
, (struct monst
*));
1392 E boolean
FDECL(levl_follower
, (struct monst
*));
1393 E
int FDECL(little_to_big
, (int));
1394 E
int FDECL(big_to_little
, (int));
1395 E
const char *FDECL(locomotion
, (const struct permonst
*, const char *));
1396 E
const char *FDECL(stagger
, (const struct permonst
*, const char *));
1397 E
const char *FDECL(on_fire
, (struct permonst
*, struct attack
*));
1398 E
const struct permonst
*FDECL(raceptr
, (struct monst
*));
1399 E boolean
FDECL(olfaction
, (struct permonst
*));
1401 /* ### monmove.c ### */
1403 E boolean
FDECL(itsstuck
, (struct monst
*));
1404 E boolean
FDECL(mb_trapped
, (struct monst
*));
1405 E boolean
FDECL(monhaskey
, (struct monst
*, BOOLEAN_P
));
1406 E
void FDECL(mon_regen
, (struct monst
*, BOOLEAN_P
));
1407 E
int FDECL(dochugw
, (struct monst
*));
1408 E boolean
FDECL(onscary
, (int, int, struct monst
*));
1409 E
void FDECL(monflee
, (struct monst
*, int, BOOLEAN_P
, BOOLEAN_P
));
1410 E
void FDECL(mon_yells
, (struct monst
*, const char *));
1411 E
int FDECL(dochug
, (struct monst
*));
1412 E
int FDECL(m_move
, (struct monst
*, int));
1413 E
void FDECL(dissolve_bars
, (int, int));
1414 E boolean
FDECL(closed_door
, (int, int));
1415 E boolean
FDECL(accessible
, (int, int));
1416 E
void FDECL(set_apparxy
, (struct monst
*));
1417 E boolean
FDECL(can_ooze
, (struct monst
*));
1418 E boolean
FDECL(can_fog
, (struct monst
*));
1419 E boolean
FDECL(should_displace
,
1420 (struct monst
*, coord
*, long *, int, XCHAR_P
, XCHAR_P
));
1421 E boolean
FDECL(undesirable_disp
, (struct monst
*, XCHAR_P
, XCHAR_P
));
1423 /* ### monst.c ### */
1425 E
void NDECL(monst_init
);
1427 /* ### monstr.c ### */
1429 E
void NDECL(monstr_init
);
1431 /* ### mplayer.c ### */
1433 E
struct monst
*FDECL(mk_mplayer
,
1434 (struct permonst
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
1435 E
void FDECL(create_mplayers
, (int, BOOLEAN_P
));
1436 E
void FDECL(mplayer_talk
, (struct monst
*));
1438 #if defined(MICRO) || defined(WIN32)
1440 /* ### msdos.c,os2.c,tos.c,winnt.c ### */
1443 E
int NDECL(tgetch
);
1446 E
char NDECL(switchar
);
1449 E
long FDECL(freediskspace
, (char *));
1451 E
int FDECL(findfirst_file
, (char *));
1452 E
int NDECL(findnext_file
);
1453 E
long FDECL(filesize_nh
, (char *));
1455 E
int FDECL(findfirst
, (char *));
1456 E
int NDECL(findnext
);
1457 E
long FDECL(filesize
, (char *));
1459 E
char *NDECL(foundfile_buffer
);
1460 #endif /* __GO32__ */
1461 E
void FDECL(chdrive
, (char *));
1463 E
void NDECL(disable_ctrlP
);
1464 E
void NDECL(enable_ctrlP
);
1466 #if defined(MICRO) && !defined(WINNT)
1467 E
void NDECL(get_scr_size
);
1469 E
void FDECL(gotoxy
, (int, int));
1473 E
int FDECL(_copyfile
, (char *, char *));
1475 E
void NDECL(set_colors
);
1476 E
void NDECL(restore_colors
);
1478 E
int NDECL(dosuspend
);
1482 E
char *FDECL(get_username
, (int *));
1483 E
void FDECL(nt_regularize
, (char *));
1484 E
int NDECL((*nt_kbhit
));
1485 E
void FDECL(Delay
, (int));
1487 #endif /* MICRO || WIN32 */
1489 /* ### mthrowu.c ### */
1491 E
int FDECL(thitu
, (int, int, struct obj
*, const char *));
1492 E
int FDECL(ohitmon
, (struct monst
*, struct obj
*, int, BOOLEAN_P
));
1493 E
void FDECL(thrwmu
, (struct monst
*));
1494 E
int FDECL(spitmu
, (struct monst
*, struct attack
*));
1495 E
int FDECL(breamu
, (struct monst
*, struct attack
*));
1496 E boolean
FDECL(linedup
, (XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
, int));
1497 E boolean
FDECL(lined_up
, (struct monst
*));
1498 E
struct obj
*FDECL(m_carrying
, (struct monst
*, int));
1499 E
void FDECL(m_useupall
, (struct monst
*, struct obj
*));
1500 E
void FDECL(m_useup
, (struct monst
*, struct obj
*));
1501 E
void FDECL(m_throw
,
1502 (struct monst
*, int, int, int, int, int, struct obj
*));
1503 E boolean
FDECL(hits_bars
, (struct obj
**, int, int, int, int));
1505 /* ### muse.c ### */
1507 E boolean
FDECL(find_defensive
, (struct monst
*));
1508 E
int FDECL(use_defensive
, (struct monst
*));
1509 E
int FDECL(rnd_defensive_item
, (struct monst
*));
1510 E boolean
FDECL(find_offensive
, (struct monst
*));
1512 E
int FDECL(mbhitm
, (struct monst
*, struct obj
*));
1514 E
int FDECL(use_offensive
, (struct monst
*));
1515 E
int FDECL(rnd_offensive_item
, (struct monst
*));
1516 E boolean
FDECL(find_misc
, (struct monst
*));
1517 E
int FDECL(use_misc
, (struct monst
*));
1518 E
int FDECL(rnd_misc_item
, (struct monst
*));
1519 E boolean
FDECL(searches_for_item
, (struct monst
*, struct obj
*));
1520 E boolean
FDECL(mon_reflects
, (struct monst
*, const char *));
1521 E boolean
FDECL(ureflects
, (const char *, const char *));
1522 E boolean
FDECL(munstone
, (struct monst
*, BOOLEAN_P
));
1523 E boolean
FDECL(munslime
, (struct monst
*, BOOLEAN_P
));
1525 /* ### music.c ### */
1527 E
void FDECL(awaken_soldiers
, (struct monst
*));
1528 E
int FDECL(do_play_instrument
, (struct obj
*));
1530 /* ### nhlan.c ### */
1532 E
void NDECL(init_lan_features
);
1533 E
char *NDECL(lan_username
);
1536 /* ### nhregex.c ### */
1537 E
struct nhregex
*NDECL(regex_init
);
1538 E boolean
FDECL(regex_compile
, (const char *, struct nhregex
*));
1539 E
const char *FDECL(regex_error_desc
, (struct nhregex
*));
1540 E boolean
FDECL(regex_match
, (const char *, struct nhregex
*));
1541 E
void FDECL(regex_free
, (struct nhregex
*));
1543 /* ### nttty.c ### */
1546 E
void NDECL(get_scr_size
);
1547 E
int NDECL(nttty_kbhit
);
1548 E
void FDECL(nttty_open
, (int));
1549 E
void NDECL(nttty_rubout
);
1550 E
int NDECL(tgetch
);
1551 E
int FDECL(ntposkey
, (int *, int *, int *));
1552 E
void FDECL(set_output_mode
, (int));
1553 E
void NDECL(synch_cursor
);
1556 /* ### o_init.c ### */
1558 E
void NDECL(init_objects
);
1559 E
void FDECL(obj_shuffle_range
, (int, int *, int *));
1560 E
int NDECL(find_skates
);
1561 E
void NDECL(oinit
);
1562 E
void FDECL(savenames
, (int, int));
1563 E
void FDECL(restnames
, (int));
1564 E
void FDECL(discover_object
, (int, BOOLEAN_P
, BOOLEAN_P
));
1565 E
void FDECL(undiscover_object
, (int));
1566 E
int NDECL(dodiscovered
);
1567 E
int NDECL(doclassdisco
);
1568 E
void NDECL(rename_disco
);
1570 /* ### objects.c ### */
1572 E
void NDECL(objects_init
);
1574 /* ### objnam.c ### */
1576 E
char *FDECL(obj_typename
, (int));
1577 E
char *FDECL(simple_typename
, (int));
1578 E boolean
FDECL(obj_is_pname
, (struct obj
*));
1579 E
char *FDECL(distant_name
, (struct obj
*, char *(*)(OBJ_P
)));
1580 E
char *FDECL(fruitname
, (BOOLEAN_P
));
1581 E
char *FDECL(xname
, (struct obj
*));
1582 E
char *FDECL(mshot_xname
, (struct obj
*));
1583 E boolean
FDECL(the_unique_obj
, (struct obj
*));
1584 E boolean
FDECL(the_unique_pm
, (struct permonst
*));
1585 E
char *FDECL(doname
, (struct obj
*));
1586 E
char *FDECL(doname_with_price
, (struct obj
*));
1587 E boolean
FDECL(not_fully_identified
, (struct obj
*));
1588 E
char *FDECL(corpse_xname
, (struct obj
*, const char *, unsigned));
1589 E
char *FDECL(cxname
, (struct obj
*));
1590 E
char *FDECL(cxname_singular
, (struct obj
*));
1591 E
char *FDECL(killer_xname
, (struct obj
*));
1592 E
char *FDECL(short_oname
,
1593 (struct obj
*, char *(*)(OBJ_P
), char *(*)(OBJ_P
), unsigned));
1594 E
const char *FDECL(singular
, (struct obj
*, char *(*)(OBJ_P
)));
1595 E
char *FDECL(an
, (const char *));
1596 E
char *FDECL(An
, (const char *));
1597 E
char *FDECL(The
, (const char *));
1598 E
char *FDECL(the
, (const char *));
1599 E
char *FDECL(aobjnam
, (struct obj
*, const char *));
1600 E
char *FDECL(yobjnam
, (struct obj
*, const char *));
1601 E
char *FDECL(Yobjnam2
, (struct obj
*, const char *));
1602 E
char *FDECL(Tobjnam
, (struct obj
*, const char *));
1603 E
char *FDECL(otense
, (struct obj
*, const char *));
1604 E
char *FDECL(vtense
, (const char *, const char *));
1605 E
char *FDECL(Doname2
, (struct obj
*));
1606 E
char *FDECL(yname
, (struct obj
*));
1607 E
char *FDECL(Yname2
, (struct obj
*));
1608 E
char *FDECL(ysimple_name
, (struct obj
*));
1609 E
char *FDECL(Ysimple_name2
, (struct obj
*));
1610 E
char *FDECL(simpleonames
, (struct obj
*));
1611 E
char *FDECL(ansimpleoname
, (struct obj
*));
1612 E
char *FDECL(thesimpleoname
, (struct obj
*));
1613 E
char *FDECL(bare_artifactname
, (struct obj
*));
1614 E
char *FDECL(makeplural
, (const char *));
1615 E
char *FDECL(makesingular
, (const char *));
1616 E
struct obj
*FDECL(readobjnam
, (char *, struct obj
*));
1617 E
int FDECL(rnd_class
, (int, int));
1618 E
const char *FDECL(suit_simple_name
, (struct obj
*));
1619 E
const char *FDECL(cloak_simple_name
, (struct obj
*));
1620 E
const char *FDECL(helm_simple_name
, (struct obj
*));
1621 E
const char *FDECL(mimic_obj_name
, (struct monst
*));
1622 E
char *FDECL(safe_qbuf
, (char *, const char *, const char *, struct obj
*,
1623 char *(*)(OBJ_P
), char *(*)(OBJ_P
), const char *));
1625 /* ### options.c ### */
1627 E
void NDECL(reglyph_darkroom
);
1628 E boolean
FDECL(match_optname
, (const char *, const char *, int, BOOLEAN_P
));
1629 E
void NDECL(initoptions
);
1630 E
void NDECL(initoptions_init
);
1631 E
void NDECL(initoptions_finish
);
1632 E
void FDECL(parseoptions
, (char *, BOOLEAN_P
, BOOLEAN_P
));
1634 E
int NDECL(dotogglepickup
);
1635 E
void NDECL(option_help
);
1636 E
void FDECL(next_opt
, (winid
, const char *));
1637 E
int FDECL(fruitadd
, (char *, struct fruit
*));
1638 E
int FDECL(choose_classes_menu
,
1639 (const char *, int, BOOLEAN_P
, char *, char *));
1640 E
void FDECL(add_menu_cmd_alias
, (CHAR_P
, CHAR_P
));
1641 E
char FDECL(map_menu_cmd
, (CHAR_P
));
1642 E
void FDECL(assign_warnings
, (uchar
*));
1643 E
char *FDECL(nh_getenv
, (const char *));
1644 E
void FDECL(set_duplicate_opt_detection
, (int));
1645 E
void FDECL(set_wc_option_mod_status
, (unsigned long, int));
1646 E
void FDECL(set_wc2_option_mod_status
, (unsigned long, int));
1647 E
void FDECL(set_option_mod_status
, (const char *, int));
1648 E
int FDECL(add_autopickup_exception
, (const char *));
1649 E
void NDECL(free_autopickup_exceptions
);
1650 E
int FDECL(load_symset
, (const char *, int));
1651 E
void NDECL(free_symsets
);
1652 E boolean
FDECL(parsesymbols
, (char *));
1653 E
struct symparse
*FDECL(match_sym
, (char *));
1654 E
void NDECL(set_playmode
);
1655 E
int FDECL(sym_val
, (char *));
1656 E
const char *FDECL(clr2colorname
, (int));
1657 E boolean
FDECL(add_menu_coloring
, (char *));
1658 E boolean
FDECL(get_menu_coloring
, (char *, int *, int *));
1659 E
void NDECL(free_menu_coloring
);
1660 E boolean
FDECL(msgtype_parse_add
, (char *));
1661 E
int FDECL(msgtype_type
, (const char *));
1662 E
void NDECL(msgtype_free
);
1664 /* ### pager.c ### */
1666 E
char *FDECL(self_lookat
, (char *));
1667 E boolean
FDECL(object_from_map
, (int,int,int,struct obj
**));
1668 E
int NDECL(dowhatis
);
1669 E
int NDECL(doquickwhatis
);
1670 E
int NDECL(doidtrap
);
1671 E
int NDECL(dowhatdoes
);
1672 E
char *FDECL(dowhatdoes_core
, (CHAR_P
, char *));
1673 E
int NDECL(dohelp
);
1674 E
int NDECL(dohistory
);
1675 E
int FDECL(do_screen_description
,
1676 (coord
, BOOLEAN_P
, int, char *, const char **));
1677 E
int FDECL(do_look
, (int, coord
*));
1679 /* ### pcmain.c ### */
1681 #if defined(MICRO) || defined(WIN32)
1683 E
void FDECL(chdirx
, (char *, BOOLEAN_P
));
1685 E boolean
NDECL(authorize_wizard_mode
);
1686 #endif /* MICRO || WIN32 */
1688 /* ### pcsys.c ### */
1690 #if defined(MICRO) || defined(WIN32)
1691 E
void NDECL(flushout
);
1694 E
void FDECL(eraseall
, (const char *, const char *));
1695 E
void FDECL(copybones
, (int));
1696 E
void NDECL(playwoRAMdisk
);
1697 E
int FDECL(saveDiskPrompt
, (int));
1698 E
void NDECL(gameDiskPrompt
);
1700 E
void FDECL(append_slash
, (char *));
1701 E
void FDECL(getreturn
, (const char *));
1703 E
void VDECL(msmsg
, (const char *, ...));
1705 E
FILE *FDECL(fopenp
, (const char *, const char *));
1706 #endif /* MICRO || WIN32 */
1708 /* ### pctty.c ### */
1710 #if defined(MICRO) || defined(WIN32)
1711 E
void NDECL(gettty
);
1712 E
void FDECL(settty
, (const char *));
1713 E
void NDECL(setftty
);
1714 E
void VDECL(error
, (const char *, ...));
1715 #if defined(TIMED_DELAY) && defined(_MSC_VER)
1716 E
void FDECL(msleep
, (unsigned));
1718 #endif /* MICRO || WIN32 */
1720 /* ### pcunix.c ### */
1723 E
void FDECL(regularize
, (char *));
1725 #if defined(PC_LOCKING)
1726 E
void NDECL(getlock
);
1729 /* ### pickup.c ### */
1731 E
int FDECL(collect_obj_classes
, (char *, struct obj
*, BOOLEAN_P
,
1732 boolean
FDECL((*), (OBJ_P
)), int *));
1733 E boolean
FDECL(rider_corpse_revival
, (struct obj
*, BOOLEAN_P
));
1734 E
void FDECL(add_valid_menu_class
, (int));
1735 E boolean
FDECL(allow_all
, (struct obj
*));
1736 E boolean
FDECL(allow_category
, (struct obj
*));
1737 E boolean
FDECL(is_worn_by_type
, (struct obj
*));
1738 E
int FDECL(ck_bag
, (struct obj
*));
1740 E
int FDECL(in_container
, (struct obj
*));
1741 E
int FDECL(out_container
, (struct obj
*));
1743 E
int FDECL(pickup
, (int));
1744 E
int FDECL(pickup_object
, (struct obj
*, long, BOOLEAN_P
));
1745 E
int FDECL(query_category
,
1746 (const char *, struct obj
*, int, menu_item
**, int));
1747 E
int FDECL(query_objlist
, (const char *, struct obj
*, int, menu_item
**,
1748 int, boolean (*)(OBJ_P
)));
1749 E
struct obj
*FDECL(pick_obj
, (struct obj
*));
1750 E
int NDECL(encumber_msg
);
1751 E
int NDECL(doloot
);
1752 E boolean
FDECL(container_gone
, (int (*)(OBJ_P
)));
1753 E boolean
NDECL(u_handsy
);
1754 E
int FDECL(use_container
, (struct obj
**, int));
1755 E
int FDECL(loot_mon
, (struct monst
*, int *, boolean
*));
1757 E boolean
FDECL(is_autopickup_exception
, (struct obj
*, BOOLEAN_P
));
1759 /* ### pline.c ### */
1761 E
void VDECL(pline
, (const char *, ...)) PRINTF_F(1, 2);
1762 E
void VDECL(Norep
, (const char *, ...)) PRINTF_F(1, 2);
1763 E
void NDECL(free_youbuf
);
1764 E
void VDECL(You
, (const char *, ...)) PRINTF_F(1, 2);
1765 E
void VDECL(Your
, (const char *, ...)) PRINTF_F(1, 2);
1766 E
void VDECL(You_feel
, (const char *, ...)) PRINTF_F(1, 2);
1767 E
void VDECL(You_cant
, (const char *, ...)) PRINTF_F(1, 2);
1768 E
void VDECL(You_hear
, (const char *, ...)) PRINTF_F(1, 2);
1769 E
void VDECL(You_see
, (const char *, ...)) PRINTF_F(1, 2);
1770 E
void VDECL(pline_The
, (const char *, ...)) PRINTF_F(1, 2);
1771 E
void VDECL(There
, (const char *, ...)) PRINTF_F(1, 2);
1772 E
void VDECL(verbalize
, (const char *, ...)) PRINTF_F(1, 2);
1773 E
void VDECL(raw_printf
, (const char *, ...)) PRINTF_F(1, 2);
1774 E
void VDECL(impossible
, (const char *, ...)) PRINTF_F(1, 2);
1775 E
const char *FDECL(align_str
, (ALIGNTYP_P
));
1776 E
void FDECL(mstatusline
, (struct monst
*));
1777 E
void NDECL(ustatusline
);
1778 E
void NDECL(self_invis_message
);
1779 E
void FDECL(pudding_merge_message
, (struct obj
*, struct obj
*));
1781 /* ### polyself.c ### */
1783 E
void NDECL(set_uasmon
);
1784 E
void NDECL(float_vs_flight
);
1785 E
void NDECL(change_sex
);
1786 E
void FDECL(polyself
, (int));
1787 E
int FDECL(polymon
, (int));
1788 E
void NDECL(rehumanize
);
1789 E
int NDECL(dobreathe
);
1790 E
int NDECL(dospit
);
1791 E
int NDECL(doremove
);
1792 E
int NDECL(dospinweb
);
1793 E
int NDECL(dosummon
);
1794 E
int NDECL(dogaze
);
1795 E
int NDECL(dohide
);
1796 E
int NDECL(dopoly
);
1797 E
int NDECL(domindblast
);
1798 E
void FDECL(skinback
, (BOOLEAN_P
));
1799 E
const char *FDECL(mbodypart
, (struct monst
*, int));
1800 E
const char *FDECL(body_part
, (int));
1801 E
int NDECL(poly_gender
);
1802 E
void FDECL(ugolemeffects
, (int, int));
1804 /* ### potion.c ### */
1806 E
void FDECL(set_itimeout
, (long *, long));
1807 E
void FDECL(incr_itimeout
, (long *, int));
1808 E
void FDECL(make_confused
, (long, BOOLEAN_P
));
1809 E
void FDECL(make_stunned
, (long, BOOLEAN_P
));
1810 E
void FDECL(make_blinded
, (long, BOOLEAN_P
));
1811 E
void FDECL(make_sick
, (long, const char *, BOOLEAN_P
, int));
1812 E
void FDECL(make_slimed
, (long, const char *));
1813 E
void FDECL(make_stoned
, (long, const char *, int, const char *));
1814 E
void FDECL(make_vomiting
, (long, BOOLEAN_P
));
1815 E boolean
FDECL(make_hallucinated
, (long, BOOLEAN_P
, long));
1816 E
void FDECL(make_deaf
, (long, BOOLEAN_P
));
1817 E
int NDECL(dodrink
);
1818 E
int FDECL(dopotion
, (struct obj
*));
1819 E
int FDECL(peffects
, (struct obj
*));
1820 E
void FDECL(healup
, (int, int, BOOLEAN_P
, BOOLEAN_P
));
1821 E
void FDECL(strange_feeling
, (struct obj
*, const char *));
1822 E
void FDECL(potionhit
, (struct monst
*, struct obj
*, BOOLEAN_P
));
1823 E
void FDECL(potionbreathe
, (struct obj
*));
1825 E
void FDECL(mongrantswish
, (struct monst
**));
1826 E
void FDECL(djinni_from_bottle
, (struct obj
*));
1827 E
struct monst
*FDECL(split_mon
, (struct monst
*, struct monst
*));
1828 E
const char *NDECL(bottlename
);
1830 /* ### pray.c ### */
1832 E boolean
FDECL(critically_low_hp
, (BOOLEAN_P
));
1834 E
int NDECL(prayer_done
);
1836 E
int NDECL(dosacrifice
);
1837 E boolean
FDECL(can_pray
, (BOOLEAN_P
));
1838 E
int NDECL(dopray
);
1839 E
const char *NDECL(u_gname
);
1840 E
int NDECL(doturn
);
1841 E
const char *NDECL(a_gname
);
1842 E
const char *FDECL(a_gname_at
, (XCHAR_P x
, XCHAR_P y
));
1843 E
const char *FDECL(align_gname
, (ALIGNTYP_P
));
1844 E
const char *FDECL(halu_gname
, (ALIGNTYP_P
));
1845 E
const char *FDECL(align_gtitle
, (ALIGNTYP_P
));
1846 E
void FDECL(altar_wrath
, (int, int));
1848 /* ### priest.c ### */
1850 E
int FDECL(move_special
, (struct monst
*, BOOLEAN_P
, SCHAR_P
, BOOLEAN_P
,
1851 BOOLEAN_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
));
1852 E
char FDECL(temple_occupied
, (char *));
1853 E boolean
FDECL(inhistemple
, (struct monst
*));
1854 E
int FDECL(pri_move
, (struct monst
*));
1855 E
void FDECL(priestini
, (d_level
*, struct mkroom
*, int, int, BOOLEAN_P
));
1856 E aligntyp
FDECL(mon_aligntyp
, (struct monst
*));
1857 E
char *FDECL(priestname
, (struct monst
*, char *));
1858 E boolean
FDECL(p_coaligned
, (struct monst
*));
1859 E
struct monst
*FDECL(findpriest
, (CHAR_P
));
1860 E
void FDECL(intemple
, (int));
1861 E
void FDECL(forget_temple_entry
, (struct monst
*));
1862 E
void FDECL(priest_talk
, (struct monst
*));
1863 E
struct monst
*FDECL(mk_roamer
, (struct permonst
*, ALIGNTYP_P
, XCHAR_P
,
1864 XCHAR_P
, BOOLEAN_P
));
1865 E
void FDECL(reset_hostility
, (struct monst
*));
1866 E boolean
FDECL(in_your_sanctuary
, (struct monst
*, XCHAR_P
, XCHAR_P
));
1867 E
void FDECL(ghod_hitsu
, (struct monst
*));
1868 E
void NDECL(angry_priest
);
1869 E
void NDECL(clearpriests
);
1870 E
void FDECL(restpriest
, (struct monst
*, BOOLEAN_P
));
1871 E
void FDECL(newepri
, (struct monst
*));
1872 E
void FDECL(free_epri
, (struct monst
*));
1874 /* ### quest.c ### */
1876 E
void NDECL(onquest
);
1877 E
void NDECL(nemdead
);
1878 E
void FDECL(artitouch
, (struct obj
*));
1879 E boolean
NDECL(ok_to_quest
);
1880 E
void FDECL(leader_speaks
, (struct monst
*));
1881 E
void NDECL(nemesis_speaks
);
1882 E
void FDECL(quest_chat
, (struct monst
*));
1883 E
void FDECL(quest_talk
, (struct monst
*));
1884 E
void FDECL(quest_stat_check
, (struct monst
*));
1885 E
void FDECL(finish_quest
, (struct obj
*));
1887 /* ### questpgr.c ### */
1889 E
void NDECL(load_qtlist
);
1890 E
void NDECL(unload_qtlist
);
1891 E
short FDECL(quest_info
, (int));
1892 E
const char *NDECL(ldrname
);
1893 E boolean
FDECL(is_quest_artifact
, (struct obj
*));
1894 E
void FDECL(com_pager
, (int));
1895 E
void FDECL(qt_pager
, (int));
1896 E
struct permonst
*NDECL(qt_montype
);
1897 E
void NDECL(deliver_splev_message
);
1899 /* ### random.c ### */
1901 #if defined(RANDOM) && !defined(__GO32__) /* djgpp has its own random */
1902 E
void FDECL(srandom
, (unsigned));
1903 E
char *FDECL(initstate
, (unsigned, char *, int));
1904 E
char *FDECL(setstate
, (char *));
1905 E
long NDECL(random
);
1908 /* ### read.c ### */
1910 E
void FDECL(learnscroll
, (struct obj
*));
1911 E
char *FDECL(tshirt_text
, (struct obj
*, char *));
1912 E
int NDECL(doread
);
1913 E boolean
FDECL(is_chargeable
, (struct obj
*));
1914 E
void FDECL(recharge
, (struct obj
*, int));
1915 E
void FDECL(forget_objects
, (int));
1916 E
void FDECL(forget_levels
, (int));
1917 E
void NDECL(forget_traps
);
1918 E
void FDECL(forget_map
, (int));
1919 E
int FDECL(seffects
, (struct obj
*));
1920 E
void FDECL(drop_boulder_on_player
,
1921 (BOOLEAN_P
, BOOLEAN_P
, BOOLEAN_P
, BOOLEAN_P
));
1922 E boolean
FDECL(drop_boulder_on_monster
, (int, int, BOOLEAN_P
, BOOLEAN_P
));
1923 E
void FDECL(wand_explode
, (struct obj
*, int));
1925 E
void FDECL(set_lit
, (int, int, genericptr_t
));
1927 E
void FDECL(litroom
, (BOOLEAN_P
, struct obj
*));
1928 E
void FDECL(do_genocide
, (int));
1929 E
void FDECL(punish
, (struct obj
*));
1930 E
void NDECL(unpunish
);
1931 E boolean
FDECL(cant_revive
, (int *, BOOLEAN_P
, struct obj
*));
1932 E boolean
NDECL(create_particular
);
1934 /* ### rect.c ### */
1936 E
void NDECL(init_rect
);
1937 E NhRect
*FDECL(get_rect
, (NhRect
*));
1938 E NhRect
*NDECL(rnd_rect
);
1939 E
void FDECL(remove_rect
, (NhRect
*));
1940 E
void FDECL(add_rect
, (NhRect
*));
1941 E
void FDECL(split_rects
, (NhRect
*, NhRect
*));
1943 /* ## region.c ### */
1944 E
void NDECL(clear_regions
);
1945 E
void NDECL(run_regions
);
1946 E boolean
FDECL(in_out_region
, (XCHAR_P
, XCHAR_P
));
1947 E boolean
FDECL(m_in_out_region
, (struct monst
*, XCHAR_P
, XCHAR_P
));
1948 E
void NDECL(update_player_regions
);
1949 E
void FDECL(update_monster_region
, (struct monst
*));
1950 E NhRegion
*FDECL(visible_region_at
, (XCHAR_P
, XCHAR_P
));
1951 E
void FDECL(show_region
, (NhRegion
*, XCHAR_P
, XCHAR_P
));
1952 E
void FDECL(save_regions
, (int, int));
1953 E
void FDECL(rest_regions
, (int, BOOLEAN_P
));
1954 E NhRegion
*FDECL(create_gas_cloud
, (XCHAR_P
, XCHAR_P
, int, int));
1955 E boolean
NDECL(region_danger
);
1956 E
void NDECL(region_safety
);
1958 /* ### restore.c ### */
1960 E
void FDECL(inven_inuse
, (BOOLEAN_P
));
1961 E
int FDECL(dorecover
, (int));
1962 E
void FDECL(restcemetery
, (int, struct cemetery
**));
1963 E
void FDECL(trickery
, (char *));
1964 E
void FDECL(getlev
, (int, int, XCHAR_P
, BOOLEAN_P
));
1965 E
void FDECL(get_plname_from_file
, (int, char *));
1967 E
int FDECL(restore_menu
, (winid
));
1969 E
void NDECL(minit
);
1970 E boolean
FDECL(lookup_id_mapping
, (unsigned, unsigned *));
1971 E
void FDECL(mread
, (int, genericptr_t
, unsigned int));
1972 E
int FDECL(validate
, (int, const char *));
1973 E
void NDECL(reset_restpref
);
1974 E
void FDECL(set_restpref
, (const char *));
1975 E
void FDECL(set_savepref
, (const char *));
1979 E
void FDECL(genl_outrip
, (winid
, int, time_t));
1983 E
int FDECL(rn2
, (int));
1984 E
int FDECL(rnl
, (int));
1985 E
int FDECL(rnd
, (int));
1986 E
int FDECL(d
, (int, int));
1987 E
int FDECL(rne
, (int));
1988 E
int FDECL(rnz
, (int));
1990 /* ### role.c ### */
1992 E boolean
FDECL(validrole
, (int));
1993 E boolean
FDECL(validrace
, (int, int));
1994 E boolean
FDECL(validgend
, (int, int, int));
1995 E boolean
FDECL(validalign
, (int, int, int));
1996 E
int NDECL(randrole
);
1997 E
int FDECL(randrace
, (int));
1998 E
int FDECL(randgend
, (int, int));
1999 E
int FDECL(randalign
, (int, int));
2000 E
int FDECL(str2role
, (const char *));
2001 E
int FDECL(str2race
, (const char *));
2002 E
int FDECL(str2gend
, (const char *));
2003 E
int FDECL(str2align
, (const char *));
2004 E boolean
FDECL(ok_role
, (int, int, int, int));
2005 E
int FDECL(pick_role
, (int, int, int, int));
2006 E boolean
FDECL(ok_race
, (int, int, int, int));
2007 E
int FDECL(pick_race
, (int, int, int, int));
2008 E boolean
FDECL(ok_gend
, (int, int, int, int));
2009 E
int FDECL(pick_gend
, (int, int, int, int));
2010 E boolean
FDECL(ok_align
, (int, int, int, int));
2011 E
int FDECL(pick_align
, (int, int, int, int));
2012 E
void NDECL(rigid_role_checks
);
2013 E boolean
FDECL(setrolefilter
, (const char *));
2014 E boolean
NDECL(gotrolefilter
);
2015 E
void NDECL(clearrolefilter
);
2016 E
char *FDECL(build_plselection_prompt
, (char *, int, int, int, int, int));
2017 E
char *FDECL(root_plselection_prompt
, (char *, int, int, int, int, int));
2018 E
void NDECL(plnamesuffix
);
2019 E
void FDECL(role_selection_prolog
, (int, winid
));
2020 E
void FDECL(role_menu_extra
, (int, winid
));
2021 E
void NDECL(role_init
);
2022 E
const char *FDECL(Hello
, (struct monst
*));
2023 E
const char *NDECL(Goodbye
);
2025 /* ### rumors.c ### */
2027 E
char *FDECL(getrumor
, (int, char *, BOOLEAN_P
));
2028 E
char *FDECL(get_rnd_text
, (const char *, char *));
2029 E
void FDECL(outrumor
, (int, int));
2030 E
void FDECL(outoracle
, (BOOLEAN_P
, BOOLEAN_P
));
2031 E
void FDECL(save_oracles
, (int, int));
2032 E
void FDECL(restore_oracles
, (int));
2033 E
int FDECL(doconsult
, (struct monst
*));
2034 E
void NDECL(rumor_check
);
2036 /* ### save.c ### */
2038 E
int NDECL(dosave
);
2039 E
int NDECL(dosave0
);
2040 E boolean
FDECL(tricked_fileremoved
, (int, char *));
2042 E
void NDECL(savestateinlock
);
2045 E boolean
FDECL(savelev
, (int, XCHAR_P
, int));
2046 E boolean
FDECL(swapin_file
, (int));
2047 E
void NDECL(co_false
);
2049 E
void FDECL(savelev
, (int, XCHAR_P
, int));
2051 E genericptr_t
FDECL(mon_to_buffer
, (struct monst
*, int *));
2052 E
void FDECL(bufon
, (int));
2053 E
void FDECL(bufoff
, (int));
2054 E
void FDECL(bflush
, (int));
2055 E
void FDECL(bwrite
, (int, genericptr_t
, unsigned int));
2056 E
void FDECL(bclose
, (int));
2057 E
void FDECL(def_bclose
, (int));
2058 #if defined(ZEROCOMP)
2059 E
void FDECL(zerocomp_bclose
, (int));
2061 E
void FDECL(savecemetery
, (int, int, struct cemetery
**));
2062 E
void FDECL(savefruitchn
, (int, int));
2063 E
void FDECL(store_plname_in_file
, (int));
2064 E
void NDECL(free_dungeons
);
2065 E
void NDECL(freedynamicdata
);
2066 E
void FDECL(store_savefileinfo
, (int));
2070 E
long FDECL(money2mon
, (struct monst
*, long));
2071 E
void FDECL(money2u
, (struct monst
*, long));
2072 E
void FDECL(shkgone
, (struct monst
*));
2073 E
void FDECL(set_residency
, (struct monst
*, BOOLEAN_P
));
2074 E
void FDECL(replshk
, (struct monst
*, struct monst
*));
2075 E
void FDECL(restshk
, (struct monst
*, BOOLEAN_P
));
2076 E
char FDECL(inside_shop
, (XCHAR_P
, XCHAR_P
));
2077 E
void FDECL(u_left_shop
, (char *, BOOLEAN_P
));
2078 E
void FDECL(remote_burglary
, (XCHAR_P
, XCHAR_P
));
2079 E
void FDECL(u_entered_shop
, (char *));
2080 E
void FDECL(pick_pick
, (struct obj
*));
2081 E boolean
FDECL(same_price
, (struct obj
*, struct obj
*));
2082 E
void NDECL(shopper_financial_report
);
2083 E
int FDECL(inhishop
, (struct monst
*));
2084 E
struct monst
*FDECL(shop_keeper
, (CHAR_P
));
2085 E boolean
FDECL(tended_shop
, (struct mkroom
*));
2086 E boolean
FDECL(is_unpaid
, (struct obj
*));
2087 E
void FDECL(delete_contents
, (struct obj
*));
2088 E
void FDECL(obfree
, (struct obj
*, struct obj
*));
2089 E
void FDECL(home_shk
, (struct monst
*, BOOLEAN_P
));
2090 E
void FDECL(make_happy_shk
, (struct monst
*, BOOLEAN_P
));
2091 E
void FDECL(make_happy_shoppers
, (BOOLEAN_P
));
2092 E
void FDECL(hot_pursuit
, (struct monst
*));
2093 E
void FDECL(make_angry_shk
, (struct monst
*, XCHAR_P
, XCHAR_P
));
2095 E boolean
FDECL(paybill
, (int));
2096 E
void NDECL(finish_paybill
);
2097 E
struct obj
*FDECL(find_oid
, (unsigned));
2098 E
long FDECL(contained_cost
,
2099 (struct obj
*, struct monst
*, long, BOOLEAN_P
, BOOLEAN_P
));
2100 E
long FDECL(contained_gold
, (struct obj
*));
2101 E
void FDECL(picked_container
, (struct obj
*));
2102 E
void FDECL(alter_cost
, (struct obj
*, long));
2103 E
long FDECL(unpaid_cost
, (struct obj
*, BOOLEAN_P
));
2104 E boolean
FDECL(billable
, (struct monst
**, struct obj
*, CHAR_P
, BOOLEAN_P
));
2105 E
void FDECL(addtobill
, (struct obj
*, BOOLEAN_P
, BOOLEAN_P
, BOOLEAN_P
));
2106 E
void FDECL(splitbill
, (struct obj
*, struct obj
*));
2107 E
void FDECL(subfrombill
, (struct obj
*, struct monst
*));
2108 E
long FDECL(stolen_value
,
2109 (struct obj
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
, BOOLEAN_P
));
2110 E
void FDECL(sellobj_state
, (int));
2111 E
void FDECL(sellobj
, (struct obj
*, XCHAR_P
, XCHAR_P
));
2112 E
int FDECL(doinvbill
, (int));
2113 E
struct monst
*FDECL(shkcatch
, (struct obj
*, XCHAR_P
, XCHAR_P
));
2114 E
void FDECL(add_damage
, (XCHAR_P
, XCHAR_P
, long));
2115 E
int FDECL(repair_damage
, (struct monst
*, struct damage
*, BOOLEAN_P
));
2116 E
int FDECL(shk_move
, (struct monst
*));
2117 E
void FDECL(after_shk_move
, (struct monst
*));
2118 E boolean
FDECL(is_fshk
, (struct monst
*));
2119 E
void FDECL(shopdig
, (int));
2120 E
void FDECL(pay_for_damage
, (const char *, BOOLEAN_P
));
2121 E boolean
FDECL(costly_spot
, (XCHAR_P
, XCHAR_P
));
2122 E
struct obj
*FDECL(shop_object
, (XCHAR_P
, XCHAR_P
));
2123 E
void FDECL(price_quote
, (struct obj
*));
2124 E
void FDECL(shk_chat
, (struct monst
*));
2125 E
void FDECL(check_unpaid_usage
, (struct obj
*, BOOLEAN_P
));
2126 E
void FDECL(check_unpaid
, (struct obj
*));
2127 E
void FDECL(costly_gold
, (XCHAR_P
, XCHAR_P
, long));
2128 E
long FDECL(get_cost_of_shop_item
, (struct obj
*));
2129 E boolean
FDECL(block_door
, (XCHAR_P
, XCHAR_P
));
2130 E boolean
FDECL(block_entry
, (XCHAR_P
, XCHAR_P
));
2131 E
char *FDECL(shk_your
, (char *, struct obj
*));
2132 E
char *FDECL(Shk_Your
, (char *, struct obj
*));
2134 /* ### shknam.c ### */
2136 E
void FDECL(neweshk
, (struct monst
*));
2137 E
void FDECL(free_eshk
, (struct monst
*));
2138 E
void FDECL(stock_room
, (int, struct mkroom
*));
2139 E boolean
FDECL(saleable
, (struct monst
*, struct obj
*));
2140 E
int FDECL(get_shop_item
, (int));
2141 E
const char *FDECL(shkname
, (struct monst
*));
2142 E boolean
FDECL(shkname_is_pname
, (struct monst
*));
2143 E boolean
FDECL(is_izchak
, (struct monst
*, BOOLEAN_P
));
2147 E
void NDECL(take_gold
);
2149 E
void NDECL(rndcurse
);
2150 E
void NDECL(attrcurse
);
2152 /* ### sounds.c ### */
2154 E
void NDECL(dosounds
);
2155 E
const char *FDECL(growl_sound
, (struct monst
*));
2156 E
void FDECL(growl
, (struct monst
*));
2157 E
void FDECL(yelp
, (struct monst
*));
2158 E
void FDECL(whimper
, (struct monst
*));
2159 E
void FDECL(beg
, (struct monst
*));
2160 E
int NDECL(dotalk
);
2162 E
int FDECL(add_sound_mapping
, (const char *));
2163 E
void FDECL(play_sound_for_message
, (const char *));
2168 E
void NDECL(sys_early_init
);
2169 E
void NDECL(sysopt_release
);
2170 E
void FDECL(sysopt_seduce_set
, (int));
2172 /* ### sys/msdos/sound.c ### */
2175 E
int FDECL(assign_soundcard
, (char *));
2178 /* ### sp_lev.c ### */
2180 E boolean
FDECL(check_room
, (xchar
*, xchar
*, xchar
*, xchar
*, BOOLEAN_P
));
2181 E boolean
FDECL(create_room
, (XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
, XCHAR_P
,
2182 XCHAR_P
, XCHAR_P
, XCHAR_P
));
2183 E
void FDECL(create_secret_door
, (struct mkroom
*, XCHAR_P
));
2185 FDECL(dig_corridor
, (coord
*, coord
*, BOOLEAN_P
, SCHAR_P
, SCHAR_P
));
2186 E
void FDECL(fill_room
, (struct mkroom
*, BOOLEAN_P
));
2187 E boolean
FDECL(load_special
, (const char *));
2189 /* ### spell.c ### */
2194 E
int FDECL(study_book
, (struct obj
*));
2195 E
void FDECL(book_disappears
, (struct obj
*));
2196 E
void FDECL(book_substitution
, (struct obj
*, struct obj
*));
2197 E
void NDECL(age_spells
);
2198 E
int NDECL(docast
);
2199 E
int FDECL(spell_skilltype
, (int));
2200 E
int FDECL(spelleffects
, (int, BOOLEAN_P
));
2201 E
void NDECL(losespells
);
2202 E
int NDECL(dovspell
);
2203 E
void FDECL(initialspell
, (struct obj
*));
2205 /* ### steal.c ### */
2208 E
int NDECL(stealarm
);
2210 E
long FDECL(somegold
, (long));
2211 E
void FDECL(stealgold
, (struct monst
*));
2212 E
void FDECL(remove_worn_item
, (struct obj
*, BOOLEAN_P
));
2213 E
int FDECL(steal
, (struct monst
*, char *));
2214 E
int FDECL(mpickobj
, (struct monst
*, struct obj
*));
2215 E
void FDECL(stealamulet
, (struct monst
*));
2216 E
void FDECL(maybe_absorb_item
, (struct monst
*, struct obj
*, int, int));
2217 E
void FDECL(mdrop_obj
, (struct monst
*, struct obj
*, BOOLEAN_P
));
2218 E
void FDECL(mdrop_special_objs
, (struct monst
*));
2219 E
void FDECL(relobj
, (struct monst
*, int, BOOLEAN_P
));
2220 E
struct obj
*FDECL(findgold
, (struct obj
*));
2222 /* ### steed.c ### */
2224 E
void NDECL(rider_cant_reach
);
2225 E boolean
FDECL(can_saddle
, (struct monst
*));
2226 E
int FDECL(use_saddle
, (struct obj
*));
2227 E boolean
FDECL(can_ride
, (struct monst
*));
2228 E
int NDECL(doride
);
2229 E boolean
FDECL(mount_steed
, (struct monst
*, BOOLEAN_P
));
2230 E
void NDECL(exercise_steed
);
2231 E
void NDECL(kick_steed
);
2232 E
void FDECL(dismount_steed
, (int));
2233 E
void FDECL(place_monster
, (struct monst
*, int, int));
2234 E boolean
FDECL(stucksteed
, (BOOLEAN_P
));
2236 /* ### teleport.c ### */
2238 E boolean
FDECL(goodpos
, (int, int, struct monst
*, unsigned));
2239 E boolean
FDECL(enexto
, (coord
*, XCHAR_P
, XCHAR_P
, struct permonst
*));
2241 FDECL(enexto_core
, (coord
*, XCHAR_P
, XCHAR_P
, struct permonst
*, unsigned));
2242 E
void FDECL(teleds
, (int, int, BOOLEAN_P
));
2243 E boolean
FDECL(safe_teleds
, (BOOLEAN_P
));
2244 E boolean
FDECL(teleport_pet
, (struct monst
*, BOOLEAN_P
));
2246 E boolean
FDECL(scrolltele
, (struct obj
*));
2247 E
int NDECL(dotele
);
2248 E
void NDECL(level_tele
);
2249 E
void FDECL(domagicportal
, (struct trap
*));
2250 E
void FDECL(tele_trap
, (struct trap
*));
2251 E
void FDECL(level_tele_trap
, (struct trap
*));
2252 E
void FDECL(rloc_to
, (struct monst
*, int, int));
2253 E boolean
FDECL(rloc
, (struct monst
*, BOOLEAN_P
));
2254 E boolean
FDECL(tele_restrict
, (struct monst
*));
2255 E
void FDECL(mtele_trap
, (struct monst
*, struct trap
*, int));
2256 E
int FDECL(mlevel_tele_trap
,
2257 (struct monst
*, struct trap
*, BOOLEAN_P
, int));
2258 E boolean
FDECL(rloco
, (struct obj
*));
2259 E
int NDECL(random_teleport_level
);
2260 E boolean
FDECL(u_teleport_mon
, (struct monst
*, BOOLEAN_P
));
2262 /* ### tile.c ### */
2264 E
void FDECL(substitute_tiles
, (d_level
*));
2267 /* ### timeout.c ### */
2269 E
void NDECL(burn_away_slime
);
2270 E
void NDECL(nh_timeout
);
2271 E
void FDECL(fall_asleep
, (int, BOOLEAN_P
));
2272 E
void FDECL(attach_egg_hatch_timeout
, (struct obj
*, long));
2273 E
void FDECL(attach_fig_transform_timeout
, (struct obj
*));
2274 E
void FDECL(kill_egg
, (struct obj
*));
2275 E
void FDECL(hatch_egg
, (ANY_P
*, long));
2276 E
void FDECL(learn_egg_type
, (int));
2277 E
void FDECL(burn_object
, (ANY_P
*, long));
2278 E
void FDECL(begin_burn
, (struct obj
*, BOOLEAN_P
));
2279 E
void FDECL(end_burn
, (struct obj
*, BOOLEAN_P
));
2280 E
void NDECL(do_storms
);
2281 E boolean
FDECL(start_timer
, (long, SHORT_P
, SHORT_P
, ANY_P
*));
2282 E
long FDECL(stop_timer
, (SHORT_P
, ANY_P
*));
2283 E
long FDECL(peek_timer
, (SHORT_P
, ANY_P
*));
2284 E
void NDECL(run_timers
);
2285 E
void FDECL(obj_move_timers
, (struct obj
*, struct obj
*));
2286 E
void FDECL(obj_split_timers
, (struct obj
*, struct obj
*));
2287 E
void FDECL(obj_stop_timers
, (struct obj
*));
2288 E boolean
FDECL(obj_has_timer
, (struct obj
*, SHORT_P
));
2289 E
void FDECL(spot_stop_timers
, (XCHAR_P
, XCHAR_P
, SHORT_P
));
2290 E
long FDECL(spot_time_expires
, (XCHAR_P
, XCHAR_P
, SHORT_P
));
2291 E
long FDECL(spot_time_left
, (XCHAR_P
, XCHAR_P
, SHORT_P
));
2292 E boolean
FDECL(obj_is_local
, (struct obj
*));
2293 E
void FDECL(save_timers
, (int, int, int));
2294 E
void FDECL(restore_timers
, (int, int, BOOLEAN_P
, long));
2295 E
void FDECL(relink_timers
, (BOOLEAN_P
));
2296 E
int NDECL(wiz_timeout_queue
);
2297 E
void NDECL(timer_sanity_check
);
2299 /* ### topten.c ### */
2301 E
void FDECL(formatkiller
, (char *, unsigned, int, BOOLEAN_P
));
2302 E
void FDECL(topten
, (int, time_t));
2303 E
void FDECL(prscore
, (int, char **));
2304 E
struct toptenentry
*NDECL(get_rnd_toptenentry
);
2305 E
struct obj
*FDECL(tt_oname
, (struct obj
*));
2307 /* ### track.c ### */
2309 E
void NDECL(initrack
);
2310 E
void NDECL(settrack
);
2311 E coord
*FDECL(gettrack
, (int, int));
2313 /* ### trap.c ### */
2315 E boolean
FDECL(burnarmor
, (struct monst
*));
2316 E
int FDECL(erode_obj
, (struct obj
*, const char *, int, int));
2317 E boolean
FDECL(grease_protect
, (struct obj
*, const char *, struct monst
*));
2318 E
struct trap
*FDECL(maketrap
, (int, int, int));
2319 E
void FDECL(fall_through
, (BOOLEAN_P
));
2320 E
struct monst
*FDECL(animate_statue
,
2321 (struct obj
*, XCHAR_P
, XCHAR_P
, int, int *));
2322 E
struct monst
*FDECL(activate_statue_trap
,
2323 (struct trap
*, XCHAR_P
, XCHAR_P
, BOOLEAN_P
));
2324 E
void FDECL(dotrap
, (struct trap
*, unsigned));
2325 E
void FDECL(seetrap
, (struct trap
*));
2326 E
void FDECL(feeltrap
, (struct trap
*));
2327 E
int FDECL(mintrap
, (struct monst
*));
2328 E
void FDECL(instapetrify
, (const char *));
2329 E
void FDECL(minstapetrify
, (struct monst
*, BOOLEAN_P
));
2330 E
void FDECL(selftouch
, (const char *));
2331 E
void FDECL(mselftouch
, (struct monst
*, const char *, BOOLEAN_P
));
2332 E
void NDECL(float_up
);
2333 E
void FDECL(fill_pit
, (int, int));
2334 E
int FDECL(float_down
, (long, long));
2335 E
void NDECL(climb_pit
);
2336 E boolean
FDECL(fire_damage
, (struct obj
*, BOOLEAN_P
, XCHAR_P
, XCHAR_P
));
2337 E
int FDECL(fire_damage_chain
,
2338 (struct obj
*, BOOLEAN_P
, BOOLEAN_P
, XCHAR_P
, XCHAR_P
));
2339 E
void acid_damage(struct obj
*);
2340 E
int FDECL(water_damage
, (struct obj
*, const char *, BOOLEAN_P
));
2341 E
void FDECL(water_damage_chain
, (struct obj
*, BOOLEAN_P
));
2342 E boolean
NDECL(drown
);
2343 E
void FDECL(drain_en
, (int));
2344 E
int NDECL(dountrap
);
2345 E
void FDECL(cnv_trap_obj
, (int, int, struct trap
*, BOOLEAN_P
));
2346 E
int FDECL(untrap
, (BOOLEAN_P
));
2347 E boolean
FDECL(openholdingtrap
, (struct monst
*, boolean
*));
2348 E boolean
FDECL(closeholdingtrap
, (struct monst
*, boolean
*));
2349 E boolean
FDECL(openfallingtrap
, (struct monst
*, BOOLEAN_P
, boolean
*));
2350 E boolean
FDECL(chest_trap
, (struct obj
*, int, BOOLEAN_P
));
2351 E
void FDECL(deltrap
, (struct trap
*));
2352 E boolean
FDECL(delfloortrap
, (struct trap
*));
2353 E
struct trap
*FDECL(t_at
, (int, int));
2354 E
void FDECL(b_trapped
, (const char *, int));
2355 E boolean
NDECL(unconscious
);
2356 E
void FDECL(blow_up_landmine
, (struct trap
*));
2357 E
int FDECL(launch_obj
, (SHORT_P
, int, int, int, int, int));
2358 E boolean
NDECL(launch_in_progress
);
2359 E
void NDECL(force_launch_placement
);
2360 E boolean
FDECL(uteetering_at_seen_pit
, (struct trap
*));
2361 E boolean
NDECL(lava_effects
);
2362 E
void NDECL(sink_into_lava
);
2363 E
void NDECL(sokoban_guilt
);
2365 /* ### u_init.c ### */
2367 E
void NDECL(u_init
);
2369 /* ### uhitm.c ### */
2371 E
void FDECL(erode_armor
, (struct monst
*, int));
2372 E boolean
FDECL(attack_checks
, (struct monst
*, struct obj
*));
2373 E
void FDECL(check_caitiff
, (struct monst
*));
2374 E
int FDECL(find_roll_to_hit
,
2375 (struct monst
*, UCHAR_P
, struct obj
*, int *, int *));
2376 E boolean
FDECL(attack
, (struct monst
*));
2377 E boolean
FDECL(hmon
, (struct monst
*, struct obj
*, int));
2378 E
int FDECL(damageum
, (struct monst
*, struct attack
*));
2379 E
void FDECL(missum
, (struct monst
*, struct attack
*, BOOLEAN_P
));
2380 E
int FDECL(passive
, (struct monst
*, BOOLEAN_P
, int, UCHAR_P
, BOOLEAN_P
));
2381 E
void FDECL(passive_obj
, (struct monst
*, struct obj
*, struct attack
*));
2382 E
void FDECL(stumble_onto_mimic
, (struct monst
*));
2383 E
int FDECL(flash_hits_mon
, (struct monst
*, struct obj
*));
2384 E
void FDECL(light_hits_gremlin
, (struct monst
*, int));
2386 /* ### unixmain.c ### */
2390 E
void NDECL(port_help
);
2392 E
void FDECL(sethanguphandler
, (void (*)(int)));
2393 E boolean
NDECL(authorize_wizard_mode
);
2394 E boolean
FDECL(check_user_string
, (char *));
2397 /* ### unixtty.c ### */
2399 #if defined(UNIX) || defined(__BEOS__)
2400 E
void NDECL(gettty
);
2401 E
void FDECL(settty
, (const char *));
2402 E
void NDECL(setftty
);
2403 E
void NDECL(intron
);
2404 E
void NDECL(introff
);
2405 E
void VDECL(error
, (const char *, ...)) PRINTF_F(1, 2);
2406 #endif /* UNIX || __BEOS__ */
2408 /* ### unixunix.c ### */
2411 E
void NDECL(getlock
);
2412 E
void FDECL(regularize
, (char *));
2413 #if defined(TIMED_DELAY) && !defined(msleep) && defined(SYSV)
2414 E
void FDECL(msleep
, (unsigned));
2419 #if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
2420 E
int FDECL(child
, (int));
2423 E boolean
FDECL(file_exists
, (const char *));
2427 /* ### unixres.c ### */
2430 #ifdef GNOME_GRAPHICS
2431 E
int FDECL(hide_privileges
, (BOOLEAN_P
));
2435 /* ### vault.c ### */
2437 E
void FDECL(newegd
, (struct monst
*));
2438 E
void FDECL(free_egd
, (struct monst
*));
2439 E boolean
FDECL(grddead
, (struct monst
*));
2440 E
char FDECL(vault_occupied
, (char *));
2441 E
void NDECL(invault
);
2442 E
int FDECL(gd_move
, (struct monst
*));
2443 E
void NDECL(paygd
);
2444 E
long NDECL(hidden_gold
);
2445 E boolean
NDECL(gd_sound
);
2446 E
void FDECL(vault_gd_watching
, (unsigned int));
2448 /* ### version.c ### */
2450 E
char *FDECL(version_string
, (char *));
2451 E
char *FDECL(getversionstring
, (char *));
2452 E
int NDECL(doversion
);
2453 E
int NDECL(doextversion
);
2455 E boolean
FDECL(comp_times
, (long));
2458 FDECL(check_version
, (struct version_info
*, const char *, BOOLEAN_P
));
2459 E boolean
FDECL(uptodate
, (int, const char *));
2460 E
void FDECL(store_version
, (int));
2461 E
unsigned long FDECL(get_feature_notice_ver
, (char *));
2462 E
unsigned long NDECL(get_current_feature_ver
);
2463 E
const char *FDECL(copyright_banner_line
, (int));
2465 #ifdef RUNTIME_PORT_ID
2466 E
void FDECL(append_port_id
, (char *));
2469 /* ### video.c ### */
2472 E
int FDECL(assign_video
, (char *));
2474 E
void NDECL(gr_init
);
2475 E
void NDECL(gr_finish
);
2477 E
void FDECL(tileview
, (BOOLEAN_P
));
2480 E
int FDECL(assign_videoshades
, (char *));
2481 E
int FDECL(assign_videocolors
, (char *));
2484 /* ### vis_tab.c ### */
2486 #ifdef VISION_TABLES
2487 E
void NDECL(vis_tab_init
);
2490 /* ### vision.c ### */
2492 E
void NDECL(vision_init
);
2493 E
int FDECL(does_block
, (int, int, struct rm
*));
2494 E
void NDECL(vision_reset
);
2495 E
void FDECL(vision_recalc
, (int));
2496 E
void FDECL(block_point
, (int, int));
2497 E
void FDECL(unblock_point
, (int, int));
2498 E boolean
FDECL(clear_path
, (int, int, int, int));
2499 E
void FDECL(do_clear_area
, (int, int, int,
2500 void (*)(int, int, genericptr
), genericptr_t
));
2501 E
unsigned FDECL(howmonseen
, (struct monst
*));
2505 /* ### vmsfiles.c ### */
2507 E
int FDECL(vms_link
, (const char *, const char *));
2508 E
int FDECL(vms_unlink
, (const char *));
2509 E
int FDECL(vms_creat
, (const char *, unsigned int));
2510 E
int FDECL(vms_open
, (const char *, int, unsigned int));
2511 E boolean
FDECL(same_dir
, (const char *, const char *));
2512 E
int FDECL(c__translate
, (int));
2513 E
char *FDECL(vms_basename
, (const char *));
2515 /* ### vmsmail.c ### */
2517 E
unsigned long NDECL(init_broadcast_trapping
);
2518 E
unsigned long NDECL(enable_broadcast_trapping
);
2519 E
unsigned long NDECL(disable_broadcast_trapping
);
2521 E
struct mail_info
*NDECL(parse_next_broadcast
);
2524 /* ### vmsmain.c ### */
2526 E
int FDECL(main
, (int, char **));
2528 E
void FDECL(chdirx
, (const char *, BOOLEAN_P
));
2530 E
void FDECL(sethanguphandler
, (void (*)(int)));
2531 E boolean
NDECL(authorize_wizard_mode
);
2533 /* ### vmsmisc.c ### */
2535 E
void NDECL(vms_abort
) NORETURN
;
2536 E
void FDECL(vms_exit
, (int)) NORETURN
;
2538 E
void FDECL(vms_traceback
, (int));
2541 /* ### vmstty.c ### */
2543 E
int NDECL(vms_getchar
);
2544 E
void NDECL(gettty
);
2545 E
void FDECL(settty
, (const char *));
2546 E
void FDECL(shuttty
, (const char *));
2547 E
void NDECL(setftty
);
2548 E
void NDECL(intron
);
2549 E
void NDECL(introff
);
2550 E
void VDECL(error
, (const char *, ...)) PRINTF_F(1, 2);
2552 E
void FDECL(msleep
, (unsigned));
2555 /* ### vmsunix.c ### */
2557 E
void NDECL(getlock
);
2558 E
void FDECL(regularize
, (char *));
2559 E
int NDECL(vms_getuid
);
2560 E boolean
FDECL(file_is_stmlf
, (int));
2561 E
int FDECL(vms_define
, (const char *, const char *, int));
2562 E
int FDECL(vms_putenv
, (const char *));
2563 E
char *NDECL(verify_termcap
);
2564 #if defined(CHDIR) || defined(SHELL) || defined(SECURE)
2565 E
void NDECL(privoff
);
2566 E
void NDECL(privon
);
2571 #if defined(SHELL) || defined(MAIL)
2572 E
int FDECL(vms_doshell
, (const char *, BOOLEAN_P
));
2575 E
int NDECL(dosuspend
);
2578 E
int FDECL(vms_get_saved_games
, (const char *, char ***));
2583 /* ### weapon.c ### */
2585 E
const char *FDECL(weapon_descr
, (struct obj
*));
2586 E
int FDECL(hitval
, (struct obj
*, struct monst
*));
2587 E
int FDECL(dmgval
, (struct obj
*, struct monst
*));
2588 E
struct obj
*FDECL(select_rwep
, (struct monst
*));
2589 E
struct obj
*FDECL(select_hwep
, (struct monst
*));
2590 E
void FDECL(possibly_unwield
, (struct monst
*, BOOLEAN_P
));
2591 E
void FDECL(mwepgone
, (struct monst
*));
2592 E
int FDECL(mon_wield_item
, (struct monst
*));
2595 E
void FDECL(wet_a_towel
, (struct obj
*, int, BOOLEAN_P
));
2596 E
void FDECL(dry_a_towel
, (struct obj
*, int, BOOLEAN_P
));
2597 E
int NDECL(enhance_weapon_skill
);
2598 E
void FDECL(unrestrict_weapon_skill
, (int));
2599 E
void FDECL(use_skill
, (int, int));
2600 E
void FDECL(add_weapon_skill
, (int));
2601 E
void FDECL(lose_weapon_skill
, (int));
2602 E
int FDECL(weapon_type
, (struct obj
*));
2603 E
int NDECL(uwep_skill_type
);
2604 E
int FDECL(weapon_hit_bonus
, (struct obj
*));
2605 E
int FDECL(weapon_dam_bonus
, (struct obj
*));
2606 E
void FDECL(skill_init
, (const struct def_skill
*));
2608 /* ### were.c ### */
2610 E
void FDECL(were_change
, (struct monst
*));
2611 E
int FDECL(counter_were
, (int));
2612 E
int FDECL(were_beastie
, (int));
2613 E
void FDECL(new_were
, (struct monst
*));
2614 E
int FDECL(were_summon
, (struct permonst
*, BOOLEAN_P
, int *, char *));
2615 E
void NDECL(you_were
);
2616 E
void FDECL(you_unwere
, (BOOLEAN_P
));
2617 E
void FDECL(set_ulycn
, (int));
2619 /* ### wield.c ### */
2621 E
void FDECL(setuwep
, (struct obj
*));
2622 E
void FDECL(setuqwep
, (struct obj
*));
2623 E
void FDECL(setuswapwep
, (struct obj
*));
2624 E
int NDECL(dowield
);
2625 E
int NDECL(doswapweapon
);
2626 E
int NDECL(dowieldquiver
);
2627 E boolean
FDECL(wield_tool
, (struct obj
*, const char *));
2628 E
int NDECL(can_twoweapon
);
2629 E
void NDECL(drop_uswapwep
);
2630 E
int NDECL(dotwoweapon
);
2631 E
void NDECL(uwepgone
);
2632 E
void NDECL(uswapwepgone
);
2633 E
void NDECL(uqwepgone
);
2634 E
void NDECL(untwoweapon
);
2635 E
int FDECL(chwepon
, (struct obj
*, int));
2636 E
int FDECL(welded
, (struct obj
*));
2637 E
void FDECL(weldmsg
, (struct obj
*));
2638 E
void FDECL(setmnotwielded
, (struct monst
*, struct obj
*));
2639 E boolean
FDECL(mwelded
, (struct obj
*));
2641 /* ### windows.c ### */
2643 E
void FDECL(choose_windows
, (const char *));
2645 void FDECL(addto_windowchain
, (const char *s
));
2646 void NDECL(commit_windowchain
);
2648 E boolean
NDECL(genl_can_suspend_no
);
2649 E boolean
NDECL(genl_can_suspend_yes
);
2650 E
char FDECL(genl_message_menu
, (CHAR_P
, int, const char *));
2651 E
void FDECL(genl_preference_update
, (const char *));
2652 E
char *FDECL(genl_getmsghistory
, (BOOLEAN_P
));
2653 E
void FDECL(genl_putmsghistory
, (const char *, BOOLEAN_P
));
2654 #ifdef HANGUPHANDLING
2655 E
void NDECL(nhwindows_hangup
);
2657 #ifdef STATUS_VIA_WINDOWPORT
2658 E
void NDECL(genl_status_init
);
2659 E
void NDECL(genl_status_finish
);
2660 E
void FDECL(genl_status_enablefield
,
2661 (int, const char *, const char *, BOOLEAN_P
));
2662 E
void FDECL(genl_status_update
, (int, genericptr_t
, int, int));
2663 #ifdef STATUS_HILITES
2664 E
void FDECL(genl_status_threshold
, (int, int, anything
, int, int, int));
2668 /* ### wizard.c ### */
2670 E
void NDECL(amulet
);
2671 E
int FDECL(mon_has_amulet
, (struct monst
*));
2672 E
int FDECL(mon_has_special
, (struct monst
*));
2673 E
int FDECL(tactics
, (struct monst
*));
2674 E
void NDECL(aggravate
);
2675 E
void NDECL(clonewiz
);
2676 E
int NDECL(pick_nasty
);
2677 E
int FDECL(nasty
, (struct monst
*));
2678 E
void NDECL(resurrect
);
2679 E
void NDECL(intervene
);
2680 E
void NDECL(wizdead
);
2681 E
void FDECL(cuss
, (struct monst
*));
2683 /* ### worm.c ### */
2685 E
int NDECL(get_wormno
);
2686 E
void FDECL(initworm
, (struct monst
*, int));
2687 E
void FDECL(worm_move
, (struct monst
*));
2688 E
void FDECL(worm_nomove
, (struct monst
*));
2689 E
void FDECL(wormgone
, (struct monst
*));
2690 E
void FDECL(wormhitu
, (struct monst
*));
2691 E
void FDECL(cutworm
, (struct monst
*, XCHAR_P
, XCHAR_P
, struct obj
*));
2692 E
void FDECL(see_wsegs
, (struct monst
*));
2693 E
void FDECL(detect_wsegs
, (struct monst
*, BOOLEAN_P
));
2694 E
void FDECL(save_worm
, (int, int));
2695 E
void FDECL(rest_worm
, (int));
2696 E
void FDECL(place_wsegs
, (struct monst
*));
2697 E
void FDECL(remove_worm
, (struct monst
*));
2698 E
void FDECL(place_worm_tail_randomly
, (struct monst
*, XCHAR_P
, XCHAR_P
));
2699 E
int FDECL(count_wsegs
, (struct monst
*));
2700 E boolean
FDECL(worm_known
, (struct monst
*));
2701 E boolean
FDECL(worm_cross
, (int, int, int, int));
2703 /* ### worn.c ### */
2705 E
void FDECL(setworn
, (struct obj
*, long));
2706 E
void FDECL(setnotworn
, (struct obj
*));
2707 E
long FDECL(wearslot
, (struct obj
*));
2708 E
void FDECL(mon_set_minvis
, (struct monst
*));
2709 E
void FDECL(mon_adjust_speed
, (struct monst
*, int, struct obj
*));
2710 E
void FDECL(update_mon_intrinsics
,
2711 (struct monst
*, struct obj
*, BOOLEAN_P
, BOOLEAN_P
));
2712 E
int FDECL(find_mac
, (struct monst
*));
2713 E
void FDECL(m_dowear
, (struct monst
*, BOOLEAN_P
));
2714 E
struct obj
*FDECL(which_armor
, (struct monst
*, long));
2715 E
void FDECL(mon_break_armor
, (struct monst
*, BOOLEAN_P
));
2716 E
void FDECL(bypass_obj
, (struct obj
*));
2717 E
void NDECL(clear_bypasses
);
2718 E
void FDECL(bypass_objlist
, (struct obj
*, BOOLEAN_P
));
2719 E
struct obj
*FDECL(nxt_unbypassed_obj
, (struct obj
*));
2720 E
int FDECL(racial_exception
, (struct monst
*, struct obj
*));
2722 /* ### write.c ### */
2724 E
int FDECL(dowrite
, (struct obj
*));
2728 E
void FDECL(learnwand
, (struct obj
*));
2729 E
int FDECL(bhitm
, (struct monst
*, struct obj
*));
2730 E
void FDECL(probe_monster
, (struct monst
*));
2731 E boolean
FDECL(get_obj_location
, (struct obj
*, xchar
*, xchar
*, int));
2732 E boolean
FDECL(get_mon_location
, (struct monst
*, xchar
*, xchar
*, int));
2733 E
struct monst
*FDECL(get_container_location
,
2734 (struct obj
* obj
, int *, int *));
2735 E
struct monst
*FDECL(montraits
, (struct obj
*, coord
*));
2736 E
struct monst
*FDECL(revive
, (struct obj
*, BOOLEAN_P
));
2737 E
int FDECL(unturn_dead
, (struct monst
*));
2738 E
void FDECL(cancel_item
, (struct obj
*));
2739 E boolean
FDECL(drain_item
, (struct obj
*));
2740 E
struct obj
*FDECL(poly_obj
, (struct obj
*, int));
2741 E boolean
FDECL(obj_resists
, (struct obj
*, int, int));
2742 E boolean
FDECL(obj_shudders
, (struct obj
*));
2743 E
void FDECL(do_osshock
, (struct obj
*));
2744 E
int FDECL(bhito
, (struct obj
*, struct obj
*));
2745 E
int FDECL(bhitpile
,
2746 (struct obj
*, int (*)(OBJ_P
, OBJ_P
), int, int, SCHAR_P
));
2747 E
int FDECL(zappable
, (struct obj
*));
2748 E
void FDECL(zapnodir
, (struct obj
*));
2750 E
int FDECL(zapyourself
, (struct obj
*, BOOLEAN_P
));
2751 E
void FDECL(ubreatheu
, (struct attack
*));
2752 E
int FDECL(lightdamage
, (struct obj
*, BOOLEAN_P
, int));
2753 E boolean
FDECL(flashburn
, (long));
2754 E boolean
FDECL(cancel_monst
, (struct monst
*, struct obj
*, BOOLEAN_P
,
2755 BOOLEAN_P
, BOOLEAN_P
));
2756 E
void NDECL(zapsetup
);
2757 E
void NDECL(zapwrapup
);
2758 E
void FDECL(weffects
, (struct obj
*));
2759 E
int FDECL(spell_damage_bonus
, (int));
2760 E
const char *FDECL(exclam
, (int force
));
2761 E
void FDECL(hit
, (const char *, struct monst
*, const char *));
2762 E
void FDECL(miss
, (const char *, struct monst
*));
2763 E
struct monst
*FDECL(bhit
, (int, int, int, int, int (*)(MONST_P
, OBJ_P
),
2764 int (*)(OBJ_P
, OBJ_P
), struct obj
**));
2765 E
struct monst
*FDECL(boomhit
, (struct obj
*, int, int));
2766 E
int FDECL(zhitm
, (struct monst
*, int, int, struct obj
**));
2767 E
int FDECL(burn_floor_objects
, (int, int, BOOLEAN_P
, BOOLEAN_P
));
2768 E
void FDECL(buzz
, (int, int, XCHAR_P
, XCHAR_P
, int, int));
2769 E
void FDECL(melt_ice
, (XCHAR_P
, XCHAR_P
, const char *));
2770 E
void FDECL(start_melt_ice_timeout
, (XCHAR_P
, XCHAR_P
, long));
2771 E
void FDECL(melt_ice_away
, (ANY_P
*, long));
2772 E
int FDECL(zap_over_floor
, (XCHAR_P
, XCHAR_P
, int, boolean
*, SHORT_P
));
2773 E
void FDECL(fracture_rock
, (struct obj
*));
2774 E boolean
FDECL(break_statue
, (struct obj
*));
2775 E
void FDECL(destroy_item
, (int, int));
2776 E
int FDECL(destroy_mitem
, (struct monst
*, int, int));
2777 E
int FDECL(resist
, (struct monst
*, CHAR_P
, int, int));
2778 E
void NDECL(makewish
);
2780 #endif /* !MAKEDEFS_C && !LEV_LEX_C */
2784 #endif /* EXTERN_H */