Source:NetHack 3.3.0/extern.h

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to extern.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/extern.h#line123]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

1.    /*	SCCS Id: @(#)extern.h	3.3	1999/12/06	*/
2.    /* Copyright (c) Steve Creps, 1988.				  */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    #ifndef EXTERN_H
6.    #define EXTERN_H
7.    
8.    #define E extern
9.    
10.   /* ### alloc.c ### */
11.   
12.   #if 0
13.   E long *FDECL(alloc, (unsigned int));
14.   #endif
15.   E char *FDECL(fmt_ptr, (const genericptr,char *));
16.   
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)
20.   
21.   /* ### allmain.c ### */
22.   
23.   E void NDECL(moveloop);
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.   
29.   /* ### amiwbench.c ### */
30.   
31.   #ifdef AMIGA
32.   E void NDECL(ami_wbench_init);
33.   E void NDECL(ami_wbench_args);
34.   E int FDECL(ami_wbench_getsave, (int));
35.   E void FDECL(ami_wbench_unlink, (char *));
36.   E int FDECL(ami_wbench_iconsize, (char *));
37.   E void FDECL(ami_wbench_iconwrite, (char *));
38.   E int FDECL(ami_wbench_badopt, (const char *));
39.   E void NDECL(ami_wbench_cleanup);
40.   E void FDECL(getlind, (const char *,char *,const char *));
41.   #endif /* AMIGA */
42.   
43.   /* ### apply.c ### */
44.   
45.   E int NDECL(doapply);
46.   E int NDECL(dorub);
47.   E int NDECL(dojump);
48.   E int FDECL(jump, (int));
49.   E int NDECL(number_leashed);
50.   E void FDECL(o_unleash, (struct obj *));
51.   E void FDECL(m_unleash, (struct monst *));
52.   E void NDECL(unleash_all);
53.   E boolean NDECL(next_to_u);
54.   E struct obj *FDECL(get_mleash, (struct monst *));
55.   E void FDECL(check_leash, (XCHAR_P,XCHAR_P));
56.   E boolean FDECL(wield_tool, (struct obj *));
57.   E boolean FDECL(um_dist, (XCHAR_P,XCHAR_P,XCHAR_P));
58.   E boolean FDECL(snuff_candle, (struct obj *));
59.   E boolean FDECL(snuff_lit, (struct obj *));
60.   E void FDECL(use_unicorn_horn, (struct obj *));
61.   E boolean FDECL(tinnable, (struct obj *));
62.   E void NDECL(reset_trapset);
63.   E void FDECL(fig_transform, (genericptr_t, long));
64.   
65.   /* ### artifact.c ### */
66.   
67.   E void NDECL(init_artifacts);
68.   E void FDECL(save_artifacts, (int));
69.   E void FDECL(restore_artifacts, (int));
70.   E const char *FDECL(artiname, (int));
71.   E struct obj *FDECL(mk_artifact, (struct obj *,ALIGNTYP_P));
72.   E const char *FDECL(artifact_name, (const char *,short *));
73.   E boolean FDECL(exist_artifact, (int,const char *));
74.   E void FDECL(artifact_exists, (struct obj *,const char *,BOOLEAN_P));
75.   E int NDECL(nartifact_exist);
76.   E boolean FDECL(spec_ability, (struct obj *,unsigned long));
77.   E boolean FDECL(restrict_name, (struct obj *,const char *));
78.   E boolean FDECL(defends, (int,struct obj *));
79.   E boolean FDECL(protects, (int,struct obj *));
80.   E void FDECL(set_artifact_intrinsic, (struct obj *,BOOLEAN_P,long));
81.   E int FDECL(touch_artifact, (struct obj *,struct monst *));
82.   E int FDECL(spec_abon, (struct obj *,struct monst *));
83.   E int FDECL(spec_dbon, (struct obj *,struct monst *,int));
84.   E void FDECL(discover_artifact, (XCHAR_P));
85.   E int FDECL(disp_artifact_discoveries, (winid));
86.   E boolean FDECL(artifact_hit, (struct monst *,struct monst *,
87.   				struct obj *,int *,int));
88.   E int NDECL(doinvoke);
89.   E void FDECL(arti_speak, (struct obj *));
90.   
91.   /* ### attrib.c ### */
92.   
93.   E boolean FDECL(adjattrib, (int,int,int));
94.   E void FDECL(change_luck, (SCHAR_P));
95.   E int FDECL(stone_luck, (BOOLEAN_P));
96.   E void NDECL(set_moreluck);
97.   E void FDECL(gainstr, (struct obj *,int));
98.   E void FDECL(losestr, (int));
99.   E void NDECL(restore_attrib);
100.  E void FDECL(exercise, (int,BOOLEAN_P));
101.  E void NDECL(exerchk);
102.  E void NDECL(reset_attribute_clock);
103.  E void FDECL(init_attr, (int));
104.  E void NDECL(redist_attr);
105.  E void FDECL(adjabil, (int,int));
106.  E int NDECL(newhp);
107.  E schar FDECL(acurr, (int));
108.  E schar NDECL(acurrstr);
109.  E void FDECL(adjalign, (int));
110.  
111.  /* ### ball.c ### */
112.  
113.  E void NDECL(ballfall);
114.  E void NDECL(placebc);
115.  E void NDECL(unplacebc);
116.  E void FDECL(set_bc, (int));
117.  E void FDECL(move_bc, (int,int,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
118.  E boolean FDECL(drag_ball, (XCHAR_P,XCHAR_P,
119.  		    int *,xchar *,xchar *,xchar *,xchar *, boolean *));
120.  E void FDECL(drop_ball, (XCHAR_P,XCHAR_P));
121.  E void NDECL(drag_down);
122.  
123.  /* ### bones.c ### */
124.  
125.  E boolean NDECL(can_make_bones);
126.  E void NDECL(savebones);
127.  E int NDECL(getbones);
128.  
129.  /* ### botl.c ### */
130.  
131.  E int FDECL(xlev_to_rank, (int));
132.  E int FDECL(title_to_mon, (const char *,int *,int *));
133.  E void NDECL(max_rank_sz);
134.  #ifdef SCORE_ON_BOTL
135.  E long NDECL(botl_score);
136.  #endif
137.  E const char *FDECL(rank_of, (int,SHORT_P,BOOLEAN_P));
138.  E void NDECL(bot);
139.  
140.  /* ### cmd.c ### */
141.  
142.  #ifdef USE_TRAMPOLI
143.  E int NDECL(doextcmd);
144.  E int NDECL(domonability);
145.  E int NDECL(doprev_message);
146.  E int NDECL(timed_occupation);
147.  E int NDECL(wiz_attributes);
148.  E int NDECL(enter_explore_mode);
149.  # ifdef WIZARD
150.  E int NDECL(wiz_detect);
151.  E int NDECL(wiz_genesis);
152.  E int NDECL(wiz_identify);
153.  E int NDECL(wiz_level_tele);
154.  E int NDECL(wiz_map);
155.  E int NDECL(wiz_where);
156.  E int NDECL(wiz_wish);
157.  # endif /* WIZARD */
158.  #endif /* USE_TRAMPOLI */
159.  E void NDECL(reset_occupations);
160.  E void FDECL(set_occupation, (int (*)(void),const char *,int));
161.  #ifdef REDO
162.  E char NDECL(pgetchar);
163.  E void FDECL(pushch, (CHAR_P));
164.  E void FDECL(savech, (CHAR_P));
165.  #endif
166.  #ifdef WIZARD
167.  E void NDECL(add_debug_extended_commands);
168.  #endif /* WIZARD */
169.  E void FDECL(rhack, (char *));
170.  E int NDECL(doextlist);
171.  E int NDECL(extcmd_via_menu);
172.  E void FDECL(enlightenment, (int));
173.  E void FDECL(show_conduct, (int));
174.  E int FDECL(xytod, (SCHAR_P,SCHAR_P));
175.  E void FDECL(dtoxy, (coord *,int));
176.  E int FDECL(movecmd, (CHAR_P));
177.  E int FDECL(getdir, (const char *));
178.  E void NDECL(confdir);
179.  E int FDECL(isok, (int,int));
180.  E int FDECL(click_to_cmd, (int,int,int));
181.  E char NDECL(readchar);
182.  #ifdef WIZARD
183.  E void NDECL(sanity_check);
184.  #endif
185.  
186.  /* ### dbridge.c ### */
187.  
188.  E boolean FDECL(is_pool, (int,int));
189.  E boolean FDECL(is_lava, (int,int));
190.  E boolean FDECL(is_ice, (int,int));
191.  E int FDECL(is_drawbridge_wall, (int,int));
192.  E boolean FDECL(is_db_wall, (int,int));
193.  E boolean FDECL(find_drawbridge, (int *,int*));
194.  E boolean FDECL(create_drawbridge, (int,int,int,BOOLEAN_P));
195.  E void FDECL(open_drawbridge, (int,int));
196.  E void FDECL(close_drawbridge, (int,int));
197.  E void FDECL(destroy_drawbridge, (int,int));
198.  
199.  /* ### decl.c ### */
200.  
201.  E void NDECL(decl_init);
202.  
203.  /* ### detect.c ### */
204.  
205.  E struct obj *FDECL(o_in, (struct obj*,CHAR_P));
206.  E int FDECL(gold_detect, (struct obj *));
207.  E int FDECL(food_detect, (struct obj *));
208.  E int FDECL(object_detect, (struct obj *,int));
209.  E int FDECL(monster_detect, (struct obj *,int));
210.  E int FDECL(trap_detect, (struct obj *));
211.  E const char *FDECL(level_distance, (d_level *));
212.  E void FDECL(use_crystal_ball, (struct obj *));
213.  E void NDECL(do_mapping);
214.  E void NDECL(do_vicinity_map);
215.  E void FDECL(cvt_sdoor_to_door, (struct rm *));
216.  #ifdef USE_TRAMPOLI
217.  E void FDECL(findone, (int,int,genericptr_t));
218.  E void FDECL(openone, (int,int,genericptr_t));
219.  #endif
220.  E int NDECL(findit);
221.  E int NDECL(openit);
222.  E void FDECL(find_trap, (struct trap *));
223.  E int FDECL(dosearch0, (int));
224.  E int NDECL(dosearch);
225.  E void NDECL(sokoban_detect);
226.  
227.  /* ### dig.c ### */
228.  
229.  #ifdef USE_TRAMPOLI
230.  E int NDECL(dig);
231.  #endif
232.  E int NDECL(holetime);
233.  E boolean FDECL(dig_check, (struct monst *, BOOLEAN_P, int, int));
234.  E void FDECL(digactualhole, (int,int,struct monst *,int));
235.  E boolean FDECL(dighole, (BOOLEAN_P));
236.  E int FDECL(use_pick_axe, (struct obj *));
237.  E boolean FDECL(mdig_tunnel, (struct monst *));
238.  E void NDECL(zap_dig);
239.  E struct obj *FDECL(bury_an_obj, (struct obj *));
240.  E void FDECL(bury_objs, (int,int));
241.  E void FDECL(unearth_objs, (int,int));
242.  E void FDECL(rot_organic, (genericptr_t, long));
243.  E void FDECL(rot_corpse, (genericptr_t, long));
244.  #if 0
245.  E void FDECL(bury_monst, (struct monst *));
246.  E void NDECL(bury_you);
247.  E void NDECL(unearth_you);
248.  E void NDECL(escape_tomb);
249.  E void FDECL(bury_obj, (struct obj *));
250.  #endif
251.  
252.  /* ### display.c ### */
253.  
254.  #ifdef INVISIBLE_OBJECTS
255.  E struct obj * FDECL(vobj_at, (XCHAR_P,XCHAR_P));
256.  #endif /* INVISIBLE_OBJECTS */
257.  E void FDECL(map_background, (XCHAR_P,XCHAR_P,int));
258.  E void FDECL(map_trap, (struct trap *,int));
259.  E void FDECL(map_object, (struct obj *,int));
260.  E void FDECL(map_invisible, (XCHAR_P,XCHAR_P));
261.  E void FDECL(unmap_object, (int,int));
262.  E void FDECL(map_location, (int,int,int));
263.  E void FDECL(feel_location, (XCHAR_P,XCHAR_P));
264.  E void FDECL(newsym, (int,int));
265.  E void FDECL(shieldeff, (XCHAR_P,XCHAR_P));
266.  E void FDECL(tmp_at, (int,int));
267.  E void FDECL(swallowed, (int));
268.  E void FDECL(under_ground, (int));
269.  E void FDECL(under_water, (int));
270.  E void NDECL(see_monsters);
271.  E void NDECL(set_mimic_blocking);
272.  E void NDECL(see_objects);
273.  E void NDECL(see_traps);
274.  E void NDECL(curs_on_u);
275.  E int NDECL(doredraw);
276.  E void NDECL(docrt);
277.  E void FDECL(show_glyph, (int,int,int));
278.  E void NDECL(clear_glyph_buffer);
279.  E void FDECL(row_refresh, (int,int,int));
280.  E void NDECL(cls);
281.  E void FDECL(flush_screen, (int));
282.  E int FDECL(back_to_glyph, (XCHAR_P,XCHAR_P));
283.  E int FDECL(zapdir_to_glyph, (int,int,int));
284.  E int FDECL(glyph_at, (XCHAR_P,XCHAR_P));
285.  E void NDECL(set_wall_state);
286.  
287.  /* ### do.c ### */
288.  
289.  #ifdef USE_TRAMPOLI
290.  E int FDECL(drop, (struct obj *));
291.  E int NDECL(wipeoff);
292.  #endif
293.  E int NDECL(dodrop);
294.  E boolean FDECL(boulder_hits_pool, (struct obj *,int,int,BOOLEAN_P));
295.  E boolean FDECL(flooreffects, (struct obj *,int,int,const char *));
296.  E void FDECL(doaltarobj, (struct obj *));
297.  E boolean FDECL(canletgo, (struct obj *,const char *));
298.  E void FDECL(dropx, (struct obj *));
299.  E void FDECL(dropy, (struct obj *));
300.  E int NDECL(doddrop);
301.  E int NDECL(dodown);
302.  E int NDECL(doup);
303.  #ifdef INSURANCE
304.  E void NDECL(save_currentstate);
305.  #endif
306.  E void FDECL(goto_level, (d_level *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
307.  E void FDECL(schedule_goto, (d_level *,BOOLEAN_P,BOOLEAN_P,int,
308.  			     const char *,const char *));
309.  E void NDECL(deferred_goto);
310.  E boolean FDECL(revive_corpse, (struct obj *));
311.  E void FDECL(revive_mon, (genericptr_t, long));
312.  E int NDECL(donull);
313.  E int NDECL(dowipe);
314.  E void FDECL(set_wounded_legs, (long,int));
315.  E void NDECL(heal_legs);
316.  
317.  /* ### do_name.c ### */
318.  
319.  E int FDECL(getpos, (coord *,BOOLEAN_P,const char *));
320.  E struct monst *FDECL(christen_monst, (struct monst *,const char *));
321.  E int NDECL(do_mname);
322.  E struct obj *FDECL(oname, (struct obj *,const char *));
323.  E int NDECL(ddocall);
324.  E void FDECL(docall, (struct obj *));
325.  E const char *NDECL(rndghostname);
326.  E char *FDECL(x_monnam, (struct monst *,int,const char *,int));
327.  E char *FDECL(l_monnam, (struct monst *));
328.  E char *FDECL(mon_nam, (struct monst *));
329.  E char *FDECL(Monnam, (struct monst *));
330.  E char *FDECL(m_monnam, (struct monst *));
331.  E char *FDECL(y_monnam, (struct monst *));
332.  E char *FDECL(Adjmonnam, (struct monst *,const char *));
333.  E char *FDECL(Amonnam, (struct monst *));
334.  E char *FDECL(a_monnam, (struct monst *));
335.  E const char *NDECL(rndmonnam);
336.  E const char *FDECL(hcolor, (const char *));
337.  E char *FDECL(self_pronoun, (const char *,const char *));
338.  #ifdef REINCARNATION
339.  E const char *NDECL(roguename);
340.  #endif
341.  E struct obj *FDECL(realloc_obj,
342.  		(struct obj *, int, genericptr_t, int, const char *));
343.  E char *FDECL(coyotename, (char *));
344.  
345.  /* ### do_wear.c ### */
346.  
347.  #ifdef USE_TRAMPOLI
348.  E int NDECL(Armor_on);
349.  E int NDECL(Boots_on);
350.  E int NDECL(Gloves_on);
351.  E int NDECL(Helmet_on);
352.  E int FDECL(select_off, (struct obj *));
353.  E int NDECL(take_off);
354.  #endif
355.  E void FDECL(off_msg, (struct obj *));
356.  E void NDECL(set_wear);
357.  E boolean FDECL(donning, (struct obj *));
358.  E void NDECL(cancel_don);
359.  E int NDECL(Armor_off);
360.  E int NDECL(Armor_gone);
361.  E int NDECL(Helmet_off);
362.  E int NDECL(Gloves_off);
363.  E int NDECL(Boots_off);
364.  E int NDECL(Cloak_off);
365.  E int NDECL(Shield_off);
366.  E void NDECL(Amulet_off);
367.  E void FDECL(Ring_on, (struct obj *));
368.  E void FDECL(Ring_off, (struct obj *));
369.  E void FDECL(Ring_gone, (struct obj *));
370.  E void FDECL(Blindf_on, (struct obj *));
371.  E void FDECL(Blindf_off, (struct obj *));
372.  E int NDECL(dotakeoff);
373.  E int NDECL(doremring);
374.  E int FDECL(cursed, (struct obj *));
375.  E int FDECL(armoroff, (struct obj *));
376.  E int FDECL(canwearobj, (struct obj *, long *, BOOLEAN_P));
377.  E int NDECL(dowear);
378.  E int NDECL(doputon);
379.  E void NDECL(find_ac);
380.  E void NDECL(glibr);
381.  E struct obj *FDECL(some_armor,(struct monst *));
382.  E void FDECL(erode_armor, (struct monst *,BOOLEAN_P));
383.  E void NDECL(reset_remarm);
384.  E int NDECL(doddoremarm);
385.  E int FDECL(destroy_arm, (struct obj *));
386.  E void FDECL(adj_abon, (struct obj *,SCHAR_P));
387.  
388.  /* ### dog.c ### */
389.  
390.  E void FDECL(initedog, (struct monst *));
391.  E struct monst *FDECL(make_familiar, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
392.  E struct monst *NDECL(makedog);
393.  E void NDECL(update_mlstmv);
394.  E void NDECL(losedogs);
395.  E void FDECL(mon_arrive, (struct monst *,BOOLEAN_P));
396.  E void FDECL(mon_catchup_elapsed_time, (struct monst *,long));
397.  E void FDECL(keepdogs, (BOOLEAN_P));
398.  E void FDECL(migrate_to_level, (struct monst *,XCHAR_P,XCHAR_P,coord *));
399.  E int FDECL(dogfood, (struct monst *,struct obj *));
400.  E struct monst *FDECL(tamedog, (struct monst *,struct obj *));
401.  E void FDECL(abuse_dog, (struct monst *));
402.  E void FDECL(wary_dog, (struct monst *, BOOLEAN_P));
403.  
404.  /* ### dogmove.c ### */
405.  
406.  E int FDECL(dog_nutrition, (struct monst *,struct obj *));
407.  E int FDECL(dog_eat, (struct monst *,struct obj *,int,int,BOOLEAN_P));
408.  E int FDECL(dog_move, (struct monst *,int));
409.  #ifdef USE_TRAMPOLI
410.  E void FDECL(wantdoor, (int,int,genericptr_t));
411.  #endif
412.  
413.  /* ### dokick.c ### */
414.  
415.  E boolean FDECL(ghitm, (struct monst *,struct obj *));
416.  E int NDECL(dokick);
417.  E boolean FDECL(ship_object, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
418.  E void NDECL(obj_delivery);
419.  E schar FDECL(down_gate, (XCHAR_P,XCHAR_P));
420.  E void FDECL(impact_drop, (struct obj *,XCHAR_P,XCHAR_P,XCHAR_P));
421.  
422.  /* ### dothrow.c ### */
423.  
424.  E int NDECL(dothrow);
425.  E int NDECL(dofire);
426.  E void FDECL(hitfloor, (struct obj *));
427.  E void FDECL(hurtle, (int,int,int,BOOLEAN_P));
428.  E void FDECL(throwit, (struct obj *));
429.  E int FDECL(omon_adj, (struct monst *,struct obj *,BOOLEAN_P));
430.  E int FDECL(thitmonst, (struct monst *,struct obj *));
431.  E int FDECL(hero_breaks, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
432.  E int FDECL(breaks, (struct obj *,XCHAR_P,XCHAR_P));
433.  E boolean FDECL(breaktest, (struct obj *));
434.  
435.  /* ### drawing.c ### */
436.  #endif /* !MAKEDEFS_C && !LEV_LEX_C */
437.  E int FDECL(def_char_to_objclass, (CHAR_P));
438.  E int FDECL(def_char_to_monclass, (CHAR_P));
439.  #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
440.  E void FDECL(assign_graphics, (uchar *,int,int,int));
441.  E void FDECL(switch_graphics, (int));
442.  #ifdef REINCARNATION
443.  E void FDECL(assign_rogue_graphics, (BOOLEAN_P));
444.  #endif
445.  
446.  /* ### dungeon.c ### */
447.  
448.  E void FDECL(save_dungeon, (int,BOOLEAN_P,BOOLEAN_P));
449.  E void FDECL(restore_dungeon, (int));
450.  E void FDECL(insert_branch, (branch *,BOOLEAN_P));
451.  E void NDECL(init_dungeons);
452.  E s_level *FDECL(find_level, (const char *));
453.  E s_level *FDECL(Is_special, (d_level *));
454.  E branch *FDECL(Is_branchlev, (d_level *));
455.  E xchar FDECL(ledger_no, (d_level *));
456.  E xchar NDECL(maxledgerno);
457.  E schar FDECL(depth, (d_level *));
458.  E xchar FDECL(dunlev, (d_level *));
459.  E xchar FDECL(dunlevs_in_dungeon, (d_level *));
460.  E xchar FDECL(ledger_to_dnum, (XCHAR_P));
461.  E xchar FDECL(ledger_to_dlev, (XCHAR_P));
462.  E xchar FDECL(deepest_lev_reached, (BOOLEAN_P));
463.  E boolean FDECL(on_level, (d_level *,d_level *));
464.  E void FDECL(next_level, (BOOLEAN_P));
465.  E void FDECL(prev_level, (BOOLEAN_P));
466.  E void FDECL(u_on_newpos, (int,int));
467.  E void NDECL(u_on_sstairs);
468.  E void NDECL(u_on_upstairs);
469.  E void NDECL(u_on_dnstairs);
470.  E boolean FDECL(On_stairs, (XCHAR_P,XCHAR_P));
471.  E void FDECL(get_level, (d_level *,int));
472.  E boolean FDECL(Is_botlevel, (d_level *));
473.  E boolean FDECL(Can_fall_thru, (d_level *));
474.  E boolean FDECL(Can_dig_down, (d_level *));
475.  E boolean FDECL(Can_rise_up, (int,int,d_level *));
476.  E boolean FDECL(In_quest, (d_level *));
477.  E boolean FDECL(In_mines, (d_level *));
478.  E branch *FDECL(dungeon_branch, (const char *));
479.  E boolean FDECL(at_dgn_entrance, (const char *));
480.  E boolean FDECL(In_hell, (d_level *));
481.  E boolean FDECL(In_V_tower, (d_level *));
482.  E boolean FDECL(On_W_tower_level, (d_level *));
483.  E boolean FDECL(In_W_tower, (int,int,d_level *));
484.  E void FDECL(find_hell, (d_level *));
485.  E void FDECL(goto_hell, (BOOLEAN_P,BOOLEAN_P));
486.  E void FDECL(assign_level, (d_level *,d_level *));
487.  E void FDECL(assign_rnd_level, (d_level *,d_level *,int));
488.  E int FDECL(induced_align, (int));
489.  E boolean FDECL(Invocation_lev, (d_level *));
490.  E xchar NDECL(level_difficulty);
491.  E schar FDECL(lev_by_name, (const char *));
492.  #ifdef WIZARD
493.  E void NDECL(print_dungeon);
494.  #endif
495.  
496.  /* ### eat.c ### */
497.  
498.  #ifdef USE_TRAMPOLI
499.  E int NDECL(eatmdone);
500.  E int NDECL(eatfood);
501.  E int NDECL(opentin);
502.  E int NDECL(unfaint);
503.  #endif
504.  E boolean FDECL(is_edible, (struct obj *));
505.  E void NDECL(init_uhunger);
506.  E int NDECL(Hear_again);
507.  E void NDECL(reset_eat);
508.  E int NDECL(doeat);
509.  E void NDECL(gethungry);
510.  E void FDECL(morehungry, (int));
511.  E void FDECL(lesshungry, (int));
512.  E boolean NDECL(is_fainted);
513.  E void NDECL(reset_faint);
514.  #if 0
515.  E void NDECL(sync_hunger);
516.  #endif
517.  E void FDECL(newuhs, (BOOLEAN_P));
518.  E struct obj *FDECL(floorfood, (const char *,int));
519.  E void NDECL(vomit);
520.  E int FDECL(eaten_stat, (int,struct obj *));
521.  E void FDECL(food_disappears, (struct obj *));
522.  E void FDECL(food_substitution, (struct obj *,struct obj *));
523.  E void NDECL(fix_petrification);
524.  
525.  /* ### end.c ### */
526.  
527.  E void FDECL(done1, (int));
528.  E int NDECL(done2);
529.  #ifdef USE_TRAMPOLI
530.  E void FDECL(done_intr, (int));
531.  #endif
532.  E void FDECL(done_in_by, (struct monst *));
533.  #endif /* !MAKEDEFS_C && !LEV_LEX_C */
534.  E void VDECL(panic, (const char *,...)) PRINTF_F(1,2);
535.  #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
536.  E void FDECL(done, (int));
537.  E void FDECL(container_contents, (struct obj *,BOOLEAN_P,BOOLEAN_P));
538.  E void FDECL(terminate, (int));
539.  E int NDECL(num_genocides);
540.  
541.  /* ### engrave.c ### */
542.  
543.  E char *FDECL(random_engraving, (char *));
544.  E void FDECL(wipeout_text, (char *,int,unsigned));
545.  E boolean NDECL(can_reach_floor);
546.  E const char *FDECL(surface, (int,int));
547.  E const char *FDECL(ceiling, (int,int));
548.  E struct engr *FDECL(engr_at, (XCHAR_P,XCHAR_P));
549.  #ifdef ELBERETH
550.  E int FDECL(sengr_at, (const char *,XCHAR_P,XCHAR_P));
551.  #endif
552.  E void FDECL(u_wipe_engr, (int));
553.  E void FDECL(wipe_engr_at, (XCHAR_P,XCHAR_P,XCHAR_P));
554.  E void FDECL(read_engr_at, (int,int));
555.  E void FDECL(make_engr_at, (int,int,const char *,long,XCHAR_P));
556.  E void FDECL(del_engr_at, (int,int));
557.  E int NDECL(freehand);
558.  E int NDECL(doengrave);
559.  E void FDECL(save_engravings, (int,int));
560.  E void FDECL(rest_engravings, (int));
561.  E void FDECL(del_engr, (struct engr *));
562.  E void FDECL(rloc_engr, (struct engr *));
563.  
564.  /* ### exper.c ### */
565.  
566.  E int FDECL(experience, (struct monst *,int));
567.  E void FDECL(more_experienced, (int,int));
568.  E void NDECL(losexp);
569.  E void NDECL(newexplevel);
570.  E void FDECL(pluslvl, (BOOLEAN_P));
571.  E long NDECL(rndexp);
572.  
573.  /* ### explode.c ### */
574.  
575.  E void FDECL(explode, (int,int,int,int,CHAR_P));
576.  E void FDECL(scatter, (int, int, int, unsigned int, struct obj *));
577.  E void FDECL(splatter_burning_oil, (int, int));
578.  
579.  /* ### extralev.c ### */
580.  
581.  #ifdef REINCARNATION
582.  E void NDECL(makeroguerooms);
583.  E void FDECL(corr, (int,int));
584.  E void NDECL(makerogueghost);
585.  #endif
586.  
587.  /* ### files.c ### */
588.  
589.  E FILE *FDECL(fopen_datafile, (const char *,const char *));
590.  E boolean FDECL(uptodate, (int,const char *));
591.  E void FDECL(store_version, (int));
592.  #ifdef MFLOPPY
593.  E void NDECL(set_lock_and_bones);
594.  #endif
595.  E void FDECL(set_levelfile_name, (char *,int));
596.  E int FDECL(create_levelfile, (int));
597.  E int FDECL(open_levelfile, (int));
598.  E void FDECL(delete_levelfile, (int));
599.  E void NDECL(clearlocks);
600.  E int FDECL(create_bonesfile, (d_level*,char **));
601.  #ifdef MFLOPPY
602.  E void NDECL(cancel_bonesfile);
603.  #endif
604.  E void FDECL(commit_bonesfile, (d_level *));
605.  E int FDECL(open_bonesfile, (d_level*,char **));
606.  E int FDECL(delete_bonesfile, (d_level*));
607.  E void NDECL(compress_bonesfile);
608.  E void NDECL(set_savefile_name);
609.  #ifdef INSURANCE
610.  E void FDECL(save_savefile_name, (int));
611.  #endif
612.  #if defined(WIZARD) && !defined(MICRO)
613.  E void NDECL(set_error_savefile);
614.  #endif
615.  E int NDECL(create_savefile);
616.  E int NDECL(open_savefile);
617.  E int NDECL(delete_savefile);
618.  E int NDECL(restore_saved_game);
619.  E void FDECL(compress, (const char *));
620.  E void FDECL(uncompress, (const char *));
621.  E boolean FDECL(lock_file, (const char *,int));
622.  E void FDECL(unlock_file, (const char *));
623.  E void FDECL(read_config_file, (const char *));
624.  E void FDECL(check_recordfile, (const char *));
625.  
626.  /* ### fountain.c ### */
627.  
628.  E void FDECL(floating_above, (const char *));
629.  E void FDECL(dogushforth, (int));
630.  # ifdef USE_TRAMPOLI
631.  E void FDECL(gush, (int,int,genericptr_t));
632.  # endif
633.  E void FDECL(dryup, (XCHAR_P,XCHAR_P));
634.  E void NDECL(drinkfountain);
635.  E void FDECL(dipfountain, (struct obj *));
636.  #ifdef SINKS
637.  E void FDECL(breaksink, (int,int));
638.  E void NDECL(drinksink);
639.  #endif
640.  
641.  /* ### hack.c ### */
642.  
643.  E boolean FDECL(revive_nasty, (int,int,const char*));
644.  E void FDECL(movobj, (struct obj *,XCHAR_P,XCHAR_P));
645.  E boolean FDECL(may_dig, (XCHAR_P,XCHAR_P));
646.  E boolean FDECL(may_passwall, (XCHAR_P,XCHAR_P));
647.  E boolean FDECL(bad_rock, (struct permonst *,XCHAR_P,XCHAR_P));
648.  E boolean FDECL(invocation_pos, (XCHAR_P,XCHAR_P));
649.  E void NDECL(domove);
650.  E void NDECL(invocation_message);
651.  E void NDECL(spoteffects);
652.  E char *FDECL(in_rooms, (XCHAR_P,XCHAR_P,int));
653.  E void FDECL(check_special_room, (BOOLEAN_P));
654.  E int NDECL(dopickup);
655.  E void NDECL(lookaround);
656.  E int NDECL(monster_nearby);
657.  E void FDECL(nomul, (int));
658.  E void FDECL(unmul, (const char *));
659.  E void FDECL(losehp, (int,const char *,BOOLEAN_P));
660.  E int NDECL(weight_cap);
661.  E int NDECL(inv_weight);
662.  E int NDECL(near_capacity);
663.  E int FDECL(calc_capacity, (int));
664.  E int NDECL(max_capacity);
665.  E boolean FDECL(check_capacity, (const char *));
666.  E int NDECL(inv_cnt);
667.  
668.  /* ### hacklib.c ### */
669.  
670.  E boolean FDECL(digit, (CHAR_P));
671.  E boolean FDECL(letter, (CHAR_P));
672.  E char FDECL(highc, (CHAR_P));
673.  E char FDECL(lowc, (CHAR_P));
674.  E char *FDECL(lcase, (char *));
675.  E char *FDECL(mungspaces, (char *));
676.  E char *FDECL(eos, (char *));
677.  E char *FDECL(s_suffix, (const char *));
678.  E char *FDECL(xcrypt, (const char *,char *));
679.  E boolean FDECL(onlyspace, (const char *));
680.  E char *FDECL(tabexpand, (char *));
681.  E char *FDECL(visctrl, (CHAR_P));
682.  E const char *FDECL(ordin, (int));
683.  E char *FDECL(sitoa, (int));
684.  E int FDECL(sgn, (int));
685.  E int FDECL(rounddiv, (long,int));
686.  E int FDECL(dist2, (int,int,int,int));
687.  E int FDECL(distmin, (int,int,int,int));
688.  E boolean FDECL(online2, (int,int,int,int));
689.  E boolean FDECL(pmatch, (const char *,const char *));
690.  #ifndef STRNCMPI
691.  E int FDECL(strncmpi, (const char *,const char *,int));
692.  #endif
693.  #ifndef STRSTRI
694.  E char *FDECL(strstri, (const char *,const char *));
695.  #endif
696.  E boolean FDECL(fuzzymatch, (const char *,const char *,const char *,BOOLEAN_P));
697.  E void NDECL(setrandom);
698.  E int NDECL(getyear);
699.  E char *FDECL(yymmdd, (time_t));
700.  E long FDECL(yyyymmdd, (time_t));
701.  E int NDECL(phase_of_the_moon);
702.  E boolean NDECL(friday_13th);
703.  E int NDECL(night);
704.  E int NDECL(midnight);
705.  
706.  /* ### invent.c ### */
707.  
708.  E void FDECL(assigninvlet, (struct obj *));
709.  E struct obj *FDECL(merge_choice, (struct obj *,struct obj *));
710.  E int FDECL(merged, (struct obj **,struct obj **));
711.  #ifdef USE_TRAMPOLI
712.  E int FDECL(ckunpaid, (struct obj *));
713.  #endif
714.  E void FDECL(addinv_core1, (struct obj *));
715.  E void FDECL(addinv_core2, (struct obj *));
716.  E struct obj *FDECL(addinv, (struct obj *));
717.  E struct obj *FDECL(hold_another_object,
718.  			(struct obj *,const char *,const char *,const char *));
719.  E void FDECL(useupall, (struct obj *));
720.  E void FDECL(useup, (struct obj *));
721.  E void FDECL(freeinv_core, (struct obj *));
722.  E void FDECL(freeinv, (struct obj *));
723.  E void FDECL(delallobj, (int,int));
724.  E void FDECL(delobj, (struct obj *));
725.  E struct obj *FDECL(sobj_at, (int,int,int));
726.  E struct obj *FDECL(carrying, (int));
727.  E boolean NDECL(have_lizard);
728.  E struct obj *FDECL(o_on, (unsigned int,struct obj *));
729.  E boolean FDECL(obj_here, (struct obj *,int,int));
730.  E boolean NDECL(wearing_armor);
731.  E boolean FDECL(is_worn, (struct obj *));
732.  E struct obj *FDECL(g_at, (int,int));
733.  E struct obj *FDECL(mkgoldobj, (long));
734.  E struct obj *FDECL(getobj, (const char *,const char *));
735.  E int FDECL(ggetobj, (const char *,int (*)(OBJ_P),int,BOOLEAN_P));
736.  E void FDECL(fully_identify_obj, (struct obj *));
737.  E int FDECL(identify, (struct obj *));
738.  E void FDECL(identify_pack, (int));
739.  E int FDECL(askchain, (struct obj **,const char *,int,int (*)(OBJ_P),
740.  			int (*)(OBJ_P),int,const char *));
741.  E void FDECL(prinv, (const char *,struct obj *,long));
742.  E char *FDECL(xprname, (struct obj *,const char *,CHAR_P,BOOLEAN_P,long));
743.  E int NDECL(ddoinv);
744.  E char FDECL(display_inventory, (const char *,BOOLEAN_P));
745.  E int FDECL(display_binventory, (int,int,BOOLEAN_P));
746.  E struct obj *FDECL(display_cinventory,(struct obj *));
747.  E struct obj *FDECL(display_minventory,(struct monst *,int));
748.  E int NDECL(dotypeinv);
749.  E const char *FDECL(dfeature_at, (int,int,char *));
750.  E int FDECL(look_here, (int,BOOLEAN_P));
751.  E int NDECL(dolook);
752.  E void FDECL(feel_cockatrice, (struct obj *,BOOLEAN_P));
753.  E void FDECL(stackobj, (struct obj *));
754.  E int NDECL(doprgold);
755.  E int NDECL(doprwep);
756.  E int NDECL(doprarm);
757.  E int NDECL(doprring);
758.  E int NDECL(dopramulet);
759.  E int NDECL(doprtool);
760.  E int NDECL(doprinuse);
761.  E void FDECL(useupf, (struct obj *,long));
762.  E char *FDECL(let_to_name, (CHAR_P,BOOLEAN_P));
763.  E void NDECL(free_invbuf);
764.  E void NDECL(reassign);
765.  E int NDECL(doorganize);
766.  E int FDECL(count_unpaid, (struct obj *));
767.  E void FDECL(carry_obj_effects, (struct obj *));
768.  
769.  /* ### ioctl.c ### */
770.  
771.  #if defined(UNIX) || defined(__BEOS__)
772.  E void NDECL(getwindowsz);
773.  E void NDECL(getioctls);
774.  E void NDECL(setioctls);
775.  # ifdef SUSPEND
776.  E int NDECL(dosuspend);
777.  # endif /* SUSPEND */
778.  #endif /* UNIX || __BEOS__ */
779.  
780.  /* ### light.c ### */
781.  
782.  E void FDECL(new_light_source, (XCHAR_P, XCHAR_P, int, int, genericptr_t));
783.  E void FDECL(del_light_source, (int, genericptr_t));
784.  E void FDECL(do_light_sources, (char **));
785.  E void FDECL(save_light_sources, (int, int, int));
786.  E void FDECL(restore_light_sources, (int));
787.  E void FDECL(relink_light_sources, (BOOLEAN_P));
788.  E void FDECL(obj_move_light_source, (struct obj *, struct obj *));
789.  E boolean NDECL(any_light_source);
790.  E void FDECL(snuff_light_source, (int, int));
791.  E boolean FDECL(obj_sheds_light, (struct obj *));
792.  E boolean FDECL(obj_is_burning, (struct obj *));
793.  E void FDECL(obj_split_light_source, (struct obj *, struct obj *));
794.  E void FDECL(obj_merge_light_sources, (struct obj *,struct obj *));
795.  E int FDECL(candle_light_range, (struct obj *));
796.  #ifdef WIZARD
797.  E int NDECL(wiz_light_sources);
798.  #endif
799.  
800.  /* ### lock.c ### */
801.  
802.  #ifdef USE_TRAMPOLI
803.  E int NDECL(forcelock);
804.  E int NDECL(picklock);
805.  #endif
806.  E boolean FDECL(picking_lock, (int *,int *));
807.  E boolean FDECL(picking_at, (int,int));
808.  E void NDECL(reset_pick);
809.  E int FDECL(pick_lock, (struct obj *));
810.  E int NDECL(doforce);
811.  E boolean FDECL(boxlock, (struct obj *,struct obj *));
812.  E boolean FDECL(doorlock, (struct obj *,int,int));
813.  E int NDECL(doopen);
814.  E int NDECL(doclose);
815.  
816.  #ifdef MAC
817.  /* These declarations are here because the main code calls them. */
818.  
819.  /* ### macfile.c ### */
820.  
821.  E int FDECL(maccreat, (const char *,long));
822.  E int FDECL(macopen, (const char *,int,long));
823.  E int FDECL(macclose, (int));
824.  E int FDECL(macread, (int,void *,unsigned));
825.  E int FDECL(macwrite, (int,void *,unsigned));
826.  E long FDECL(macseek, (int,long,short));
827.  
828.  /* ### macsnd.c ### */
829.  
830.  E void FDECL(mac_speaker, (struct obj *,char *));
831.  
832.  /* ### macunix.c ### */
833.  
834.  E void FDECL(regularize, (char *));
835.  E void NDECL(getlock);
836.  
837.  /* ### macwin.c ### */
838.  
839.  E void FDECL(lock_mouse_cursor, (Boolean));
840.  E int NDECL(SanePositions);
841.  
842.  /* ### mttymain.c ### */
843.  
844.  E void FDECL(getreturn, (char *));
845.  E void VDECL(msmsg, (const char *,...));
846.  E void NDECL(gettty);
847.  E void NDECL(setftty);
848.  E void FDECL(settty, (const char *));
849.  E int NDECL(tgetch);
850.  E void FDECL(cmov, (int x, int y));
851.  E void FDECL(nocmov, (int x, int y));
852.  
853.  #endif /* MAC */
854.  
855.  /* ### mail.c ### */
856.  
857.  #ifdef MAIL
858.  # ifdef UNIX
859.  E void NDECL(getmailstatus);
860.  # endif
861.  E void NDECL(ckmailstatus);
862.  E void FDECL(readmail, (struct obj *));
863.  #endif /* MAIL */
864.  
865.  /* ### makemon.c ### */
866.  
867.  E boolean FDECL(is_home_elemental, (struct permonst *));
868.  E struct monst *FDECL(clone_mon, (struct monst *));
869.  E struct monst *FDECL(makemon, (struct permonst *,int,int,int));
870.  E boolean FDECL(create_critters, (int,struct permonst *));
871.  E struct permonst *NDECL(rndmonst);
872.  E void FDECL(reset_rndmonst, (int));
873.  E struct permonst *FDECL(mkclass, (CHAR_P,int));
874.  E int FDECL(adj_lev, (struct permonst *));
875.  E struct permonst *FDECL(grow_up, (struct monst *,struct monst *));
876.  E int FDECL(mongets, (struct monst *,int));
877.  E int FDECL(golemhp, (int));
878.  E boolean FDECL(peace_minded, (struct permonst *));
879.  E void FDECL(set_malign, (struct monst *));
880.  E void FDECL(set_mimic_sym, (struct monst *));
881.  
882.  /* ### mcastu.c ### */
883.  
884.  E int FDECL(castmu, (struct monst *,struct attack *));
885.  E int FDECL(buzzmu, (struct monst *,struct attack *));
886.  
887.  /* ### mhitm.c ### */
888.  
889.  E int FDECL(fightm, (struct monst *));
890.  E int FDECL(mattackm, (struct monst *,struct monst *));
891.  E int FDECL(noattacks, (struct permonst *));
892.  E int FDECL(sleep_monst, (struct monst *,int,int));
893.  E void FDECL(slept_monst, (struct monst *));
894.  
895.  /* ### mhitu.c ### */
896.  
897.  E const char *FDECL(mpoisons_subj, (struct monst *,struct attack *));
898.  E void NDECL(u_slow_down);
899.  E struct monst *NDECL(cloneu);
900.  E void FDECL(expels, (struct monst *,struct permonst *,BOOLEAN_P));
901.  E int FDECL(mattacku, (struct monst *));
902.  E int FDECL(gazemu, (struct monst *,struct attack *));
903.  E void FDECL(mdamageu, (struct monst *,int));
904.  E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *));
905.  #ifdef SEDUCE
906.  E int FDECL(doseduce, (struct monst *));
907.  #endif
908.  
909.  /* ### minion.c ### */
910.  
911.  E void FDECL(msummon, (struct permonst *));
912.  E void FDECL(summon_minion, (ALIGNTYP_P,BOOLEAN_P));
913.  E int FDECL(demon_talk, (struct monst *));
914.  E long FDECL(bribe, (struct monst *));
915.  E int FDECL(dprince, (ALIGNTYP_P));
916.  E int FDECL(dlord, (ALIGNTYP_P));
917.  E int NDECL(llord);
918.  E int FDECL(ndemon, (ALIGNTYP_P));
919.  E int NDECL(lminion);
920.  
921.  /* ### mklev.c ### */
922.  
923.  #ifdef USE_TRAMPOLI
924.  E int FDECL(do_comp, (genericptr_t,genericptr_t));
925.  #endif
926.  E void NDECL(sort_rooms);
927.  E void FDECL(add_room, (int,int,int,int,BOOLEAN_P,SCHAR_P,BOOLEAN_P));
928.  E void FDECL(add_subroom, (struct mkroom *,int,int,int,int,
929.  			   BOOLEAN_P,SCHAR_P,BOOLEAN_P));
930.  E void NDECL(makecorridors);
931.  E void FDECL(add_door, (int,int,struct mkroom *));
932.  E void NDECL(mklev);
933.  #ifdef SPECIALIZATION
934.  E void FDECL(topologize, (struct mkroom *,BOOLEAN_P));
935.  #else
936.  E void FDECL(topologize, (struct mkroom *));
937.  #endif
938.  E void FDECL(place_branch, (branch *,XCHAR_P,XCHAR_P));
939.  E boolean FDECL(occupied, (XCHAR_P,XCHAR_P));
940.  E int FDECL(okdoor, (XCHAR_P,XCHAR_P));
941.  E void FDECL(dodoor, (int,int,struct mkroom *));
942.  E void FDECL(mktrap, (int,int,struct mkroom *,coord*));
943.  E void FDECL(mkstairs, (XCHAR_P,XCHAR_P,CHAR_P,struct mkroom *));
944.  E void NDECL(mkinvokearea);
945.  
946.  /* ### mkmap.c ### */
947.  
948.  void FDECL(flood_fill_rm, (int,int,int,BOOLEAN_P,BOOLEAN_P));
949.  
950.  /* ### mkmaze.c ### */
951.  
952.  E void FDECL(wallification, (int,int,int,int));
953.  E void FDECL(walkfrom, (int,int));
954.  E void FDECL(makemaz, (const char *));
955.  E void FDECL(mazexy, (coord *));
956.  E void NDECL(bound_digging);
957.  E void FDECL(mkportal, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
958.  E boolean FDECL(bad_location, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
959.  E void FDECL(place_lregion, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
960.  			     XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
961.  			     XCHAR_P,d_level *));
962.  E void NDECL(movebubbles);
963.  E void NDECL(water_friction);
964.  E void FDECL(save_waterlevel, (int,int));
965.  E void FDECL(restore_waterlevel, (int));
966.  
967.  /* ### mkobj.c ### */
968.  
969.  E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
970.  E struct obj *FDECL(mksobj_at, (int,int,int,BOOLEAN_P));
971.  E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
972.  E int NDECL(rndmonnum);
973.  E struct obj *FDECL(splitobj, (struct obj *,long));
974.  E void FDECL(bill_dummy_object, (struct obj *));
975.  E struct obj *FDECL(mksobj, (int,BOOLEAN_P,BOOLEAN_P));
976.  E int FDECL(bcsign, (struct obj *));
977.  E int FDECL(weight, (struct obj *));
978.  E struct obj *FDECL(mkgold, (long,int,int));
979.  E struct obj *FDECL(mkcorpstat,
980.  		(int,struct monst *,struct permonst *,int,int,BOOLEAN_P));
981.  E struct monst *FDECL(get_mtraits, (struct obj *, BOOLEAN_P));
982.  E struct obj *FDECL(mk_tt_object, (int,int,int));
983.  E struct obj *FDECL(mk_named_object,
984.  			(int,struct permonst *,int,int,const char *));
985.  E struct obj *FDECL(rnd_treefruit_at, (int, int));
986.  E void FDECL(start_corpse_timeout, (struct obj *));
987.  E void FDECL(bless, (struct obj *));
988.  E void FDECL(unbless, (struct obj *));
989.  E void FDECL(curse, (struct obj *));
990.  E void FDECL(uncurse, (struct obj *));
991.  E void FDECL(blessorcurse, (struct obj *,int));
992.  E boolean FDECL(is_flammable, (struct obj *));
993.  E void FDECL(place_object, (struct obj *,int,int));
994.  E void FDECL(remove_object, (struct obj *));
995.  E void FDECL(discard_minvent, (struct monst *));
996.  E void FDECL(obj_extract_self, (struct obj *));
997.  E void FDECL(extract_nobj, (struct obj *, struct obj **));
998.  E void FDECL(extract_nexthere, (struct obj *, struct obj **));
999.  E void FDECL(add_to_minv, (struct monst *, struct obj *));
1000. E void FDECL(add_to_container, (struct obj *, struct obj *));
1001. E void FDECL(add_to_migration, (struct obj *));
1002. E void FDECL(add_to_buried, (struct obj *));
1003. E void FDECL(dealloc_obj, (struct obj *));
1004. E void FDECL(obj_ice_effects, (int, int, BOOLEAN_P));
1005. E long FDECL(peek_at_iced_corpse_age, (struct obj *));
1006. #ifdef WIZARD
1007. E void NDECL(obj_sanity_check);
1008. #endif
1009. 
1010. /* ### mkroom.c ### */
1011. 
1012. E void FDECL(mkroom, (int));
1013. E void FDECL(fill_zoo, (struct mkroom *));
1014. E boolean FDECL(nexttodoor, (int,int));
1015. E boolean FDECL(has_dnstairs, (struct mkroom *));
1016. E boolean FDECL(has_upstairs, (struct mkroom *));
1017. E int FDECL(somex, (struct mkroom *));
1018. E int FDECL(somey, (struct mkroom *));
1019. E boolean FDECL(inside_room, (struct mkroom *,XCHAR_P,XCHAR_P));
1020. E boolean FDECL(somexy, (struct mkroom *,coord *));
1021. E void FDECL(mkundead, (coord *,BOOLEAN_P,int));
1022. E struct permonst *NDECL(courtmon);
1023. E void FDECL(save_rooms, (int));
1024. E void FDECL(rest_rooms, (int));
1025. E struct mkroom *FDECL(search_special, (SCHAR_P));
1026. 
1027. /* ### mon.c ### */
1028. 
1029. E int FDECL(undead_to_corpse, (int));
1030. E int FDECL(pm_to_cham, (int));
1031. E int FDECL(minwater, (struct monst *));
1032. E int NDECL(movemon);
1033. E int FDECL(meatgold, (struct monst *));
1034. E int FDECL(meatobj, (struct monst *));
1035. E void FDECL(mpickgold, (struct monst *));
1036. E boolean FDECL(mpickstuff, (struct monst *,const char *));
1037. E int FDECL(curr_mon_load, (struct monst *));
1038. E int FDECL(max_mon_load, (struct monst *));
1039. E boolean FDECL(can_carry, (struct monst *,struct obj *));
1040. E int FDECL(mfndpos, (struct monst *,coord *,long *,long));
1041. E boolean FDECL(monnear, (struct monst *,int,int));
1042. E void NDECL(dmonsfree);
1043. E void FDECL(mcalcmove, (struct monst*));
1044. E void NDECL(mcalcdistress);
1045. E void FDECL(replmon, (struct monst *,struct monst *));
1046. E void FDECL(relmon, (struct monst *));
1047. E struct obj *FDECL(mlifesaver, (struct monst *));
1048. E void FDECL(mondead, (struct monst *));
1049. E void FDECL(mondied, (struct monst *));
1050. E void FDECL(mongone, (struct monst *));
1051. E void FDECL(monstone, (struct monst *));
1052. E void FDECL(monkilled, (struct monst *,const char *,int));
1053. E void FDECL(unstuck, (struct monst *));
1054. E void FDECL(killed, (struct monst *));
1055. E void FDECL(xkilled, (struct monst *,int));
1056. E void FDECL(mon_to_stone, (struct monst*));
1057. E void FDECL(mnexto, (struct monst *));
1058. E boolean FDECL(mnearto, (struct monst *,XCHAR_P,XCHAR_P,BOOLEAN_P));
1059. E void FDECL(poisontell, (int));
1060. E void FDECL(poisoned, (const char *,int,const char *,int));
1061. E void FDECL(m_respond, (struct monst *));
1062. E void FDECL(setmangry, (struct monst *));
1063. E void FDECL(wakeup, (struct monst *));
1064. E void NDECL(wake_nearby);
1065. E void FDECL(wake_nearto, (int,int,int));
1066. E void FDECL(seemimic, (struct monst *));
1067. E void NDECL(rescham);
1068. E void NDECL(restartcham);
1069. E void FDECL(restore_cham, (struct monst *));
1070. E void FDECL(mon_animal_list, (BOOLEAN_P));
1071. E int FDECL(newcham, (struct monst *,struct permonst *));
1072. E int FDECL(can_be_hatched, (int));
1073. E int FDECL(egg_type_from_parent, (int,BOOLEAN_P));
1074. E boolean FDECL(dead_species, (int,BOOLEAN_P));
1075. E void NDECL(kill_genocided_monsters);
1076. E void FDECL(golemeffects, (struct monst *,int,int));
1077. E boolean FDECL(angry_guards, (BOOLEAN_P));
1078. E void NDECL(pacify_guards);
1079. 
1080. /* ### mondata.c ### */
1081. 
1082. E void FDECL(set_mon_data, (struct monst *,struct permonst *,int));
1083. E boolean FDECL(attacktype, (struct permonst *,int));
1084. E boolean FDECL(poly_when_stoned, (struct permonst *));
1085. E boolean FDECL(resists_drli, (struct monst *));
1086. E boolean FDECL(resists_magm, (struct monst *));
1087. E boolean FDECL(resists_blnd, (struct monst *));
1088. E boolean FDECL(ranged_attk, (struct permonst *));
1089. E boolean FDECL(hates_silver, (struct permonst *));
1090. E boolean FDECL(can_track, (struct permonst *));
1091. E boolean FDECL(breakarm, (struct permonst *));
1092. E boolean FDECL(sliparm, (struct permonst *));
1093. E boolean FDECL(sticks, (struct permonst *));
1094. /* E boolean FDECL(canseemon, (struct monst *)); */
1095. E boolean FDECL(dmgtype, (struct permonst *,int));
1096. E int FDECL(max_passive_dmg, (struct monst *,struct monst *));
1097. E int FDECL(monsndx, (struct permonst *));
1098. E int FDECL(name_to_mon, (const char *));
1099. E boolean FDECL(webmaker, (struct permonst *));
1100. E int FDECL(gender, (struct monst *));
1101. E int FDECL(pronoun_gender, (struct monst *));
1102. E boolean FDECL(levl_follower, (struct monst *));
1103. E int FDECL(little_to_big, (int));
1104. E int FDECL(big_to_little, (int));
1105. E const char *FDECL(locomotion, (const struct permonst *,const char *));
1106. 
1107. /* ### monmove.c ### */
1108. 
1109. E boolean FDECL(itsstuck, (struct monst *));
1110. E boolean FDECL(mb_trapped, (struct monst *));
1111. E void FDECL(mon_regen, (struct monst *,BOOLEAN_P));
1112. E int FDECL(dochugw, (struct monst *));
1113. E boolean FDECL(onscary, (int,int,struct monst *));
1114. E int FDECL(dochug, (struct monst *));
1115. E int FDECL(m_move, (struct monst *,int));
1116. E boolean FDECL(closed_door, (int,int));
1117. E boolean FDECL(accessible, (int,int));
1118. E void FDECL(set_apparxy, (struct monst *));
1119. E boolean FDECL(can_ooze, (struct monst *));
1120. 
1121. /* ### monst.c ### */
1122. 
1123. E void NDECL(monst_init);
1124. 
1125. /* ### monstr.c ### */
1126. 
1127. E void NDECL(monstr_init);
1128. 
1129. /* ### mplayer.c ### */
1130. 
1131. E struct monst *FDECL(mk_mplayer, (struct permonst *,XCHAR_P,
1132. 				   XCHAR_P,BOOLEAN_P));
1133. E void FDECL(create_mplayers, (int,BOOLEAN_P));
1134. E void FDECL(mplayer_talk, (struct monst *));
1135. 
1136. #ifdef MICRO
1137. 
1138. /* ### msdos.c,os2.c,tos.c,winnt.c ### */
1139. 
1140. #  ifndef WIN32
1141. E int NDECL(tgetch);
1142. #  endif
1143. #  ifndef TOS
1144. E char NDECL(switchar);
1145. #  endif
1146. # ifndef __GO32__
1147. E long FDECL(freediskspace, (char *));
1148. #  ifdef MSDOS
1149. E int FDECL(findfirst_file, (char *));
1150. E int NDECL(findnext_file);
1151. E long FDECL(filesize_nh, (char *));
1152. #  else
1153. E int FDECL(findfirst, (char *));
1154. E int NDECL(findnext);
1155. E long FDECL(filesize, (char *));
1156. #  endif /* MSDOS */
1157. E char *NDECL(foundfile_buffer);
1158. # endif /* __GO32__ */
1159. E void FDECL(chdrive, (char *));
1160. # ifndef TOS
1161. E void NDECL(disable_ctrlP);
1162. E void NDECL(enable_ctrlP);
1163. # endif
1164. # if defined(MICRO) && !defined(WINNT)
1165. E void NDECL(get_scr_size);
1166. #  ifndef TOS
1167. E void FDECL(gotoxy, (int,int));
1168. #  endif
1169. # endif
1170. # ifdef TOS
1171. E int FDECL(_copyfile, (char *,char *));
1172. E int NDECL(kbhit);
1173. E void NDECL(set_colors);
1174. E void NDECL(restore_colors);
1175. #  ifdef SUSPEND
1176. E int NDECL(dosuspend);
1177. #  endif
1178. # endif /* TOS */
1179. # ifdef WIN32
1180. E char *FDECL(get_username, (int *));
1181. E void FDECL(nt_regularize, (char *));
1182. E int NDECL((*nt_kbhit));
1183. E void FDECL(Delay, (int));
1184. # endif /* WIN32 */
1185. 
1186. #endif /* MICRO */
1187. 
1188. /* ### mthrowu.c ### */
1189. 
1190. E int FDECL(thitu, (int,int,struct obj *,const char *));
1191. E int FDECL(ohitmon, (struct monst *,struct obj *,int,BOOLEAN_P));
1192. E void FDECL(thrwmu, (struct monst *));
1193. E int FDECL(spitmu, (struct monst *,struct attack *));
1194. E int FDECL(breamu, (struct monst *,struct attack *));
1195. E boolean FDECL(linedup, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
1196. E boolean FDECL(lined_up, (struct monst *));
1197. E struct obj *FDECL(m_carrying, (struct monst *,int));
1198. E void FDECL(m_useup, (struct monst *,struct obj *));
1199. E void FDECL(m_throw, (struct monst *,int,int,int,int,int,struct obj *));
1200. 
1201. /* ### muse.c ### */
1202. 
1203. E boolean FDECL(find_defensive, (struct monst *));
1204. E int FDECL(use_defensive, (struct monst *));
1205. E int FDECL(rnd_defensive_item, (struct monst *));
1206. E boolean FDECL(find_offensive, (struct monst *));
1207. #ifdef USE_TRAMPOLI
1208. E int FDECL(mbhitm, (struct monst *,struct obj *));
1209. #endif
1210. E int FDECL(use_offensive, (struct monst *));
1211. E int FDECL(rnd_offensive_item, (struct monst *));
1212. E boolean FDECL(find_misc, (struct monst *));
1213. E int FDECL(use_misc, (struct monst *));
1214. E int FDECL(rnd_misc_item, (struct monst *));
1215. E boolean FDECL(searches_for_item, (struct monst *,struct obj *));
1216. E boolean FDECL(mon_reflects, (struct monst *,const char *));
1217. E boolean FDECL(ureflects, (const char *,const char *));
1218. E boolean FDECL(munstone, (struct monst *,BOOLEAN_P));
1219. 
1220. /* ### music.c ### */
1221. 
1222. E void NDECL(awaken_soldiers);
1223. E int FDECL(do_play_instrument, (struct obj *));
1224. 
1225. /* ### nhlan.c ### */
1226. #ifdef LAN_FEATURES
1227. E void NDECL(init_lan_features);
1228. E char *NDECL(lan_username);
1229. # ifdef LAN_MAIL
1230. E boolean NDECL(lan_mail_check);
1231. E void FDECL(lan_mail_read, (struct obj *));
1232. E void NDECL(lan_mail_init);
1233. E void NDECL(lan_mail_finish);
1234. E void NDECL(lan_mail_terminate);
1235. # endif
1236. #endif
1237. 
1238. /* ### nttty.c ### */
1239. 
1240. #ifdef WIN32CON
1241. E void NDECL(get_scr_size);
1242. E int NDECL(nttty_kbhit);
1243. E void NDECL(nttty_open);
1244. E void NDECL(nttty_rubout);
1245. E int NDECL(tgetch);
1246. E int FDECL(ntposkey,(int *, int *, int *));
1247. #endif
1248. 
1249. /* ### o_init.c ### */
1250. 
1251. E void NDECL(init_objects);
1252. E int NDECL(find_skates);
1253. E void NDECL(oinit);
1254. E void FDECL(savenames, (int,int));
1255. E void FDECL(restnames, (int));
1256. E void FDECL(discover_object, (int,BOOLEAN_P,BOOLEAN_P));
1257. E void FDECL(undiscover_object, (int));
1258. E int NDECL(dodiscovered);
1259. 
1260. /* ### objects.c ### */
1261. 
1262. E void NDECL(objects_init);
1263. 
1264. /* ### objnam.c ### */
1265. 
1266. E char *FDECL(obj_typename, (int));
1267. E boolean FDECL(obj_is_pname, (struct obj *));
1268. E char *FDECL(distant_name, (struct obj *,char *(*)(OBJ_P)));
1269. E char *FDECL(xname, (struct obj *));
1270. E char *FDECL(doname, (struct obj *));
1271. E boolean FDECL(not_fully_identified, (struct obj *));
1272. E const char *FDECL(corpse_xname, (struct obj *,BOOLEAN_P));
1273. E const char *FDECL(singular, (struct obj *,char *(*)(OBJ_P)));
1274. E char *FDECL(an, (const char *));
1275. E char *FDECL(An, (const char *));
1276. E char *FDECL(The, (const char *));
1277. E char *FDECL(the, (const char *));
1278. E char *FDECL(aobjnam, (struct obj *,const char *));
1279. E char *FDECL(Doname2, (struct obj *));
1280. E char *FDECL(yname, (struct obj *));
1281. E char *FDECL(Yname2, (struct obj *));
1282. E char *FDECL(makeplural, (const char *));
1283. E char *FDECL(makesingular, (const char *));
1284. E struct obj *FDECL(readobjnam, (char *));
1285. E int FDECL(rnd_class, (int,int));
1286. 
1287. /* ### options.c ### */
1288. 
1289. E boolean FDECL(match_optname, (const char *,const char *,int,BOOLEAN_P));
1290. E void NDECL(initoptions);
1291. E void FDECL(parseoptions, (char *,BOOLEAN_P,BOOLEAN_P));
1292. E int NDECL(doset);
1293. E int NDECL(dotogglepickup);
1294. E void NDECL(option_help);
1295. E void FDECL(next_opt, (winid,const char *));
1296. E int FDECL(fruitadd, (char *));
1297. E int FDECL(choose_classes_menu, (const char *,int,BOOLEAN_P,char *,char *));
1298. E void FDECL(add_menu_cmd_alias, (CHAR_P, CHAR_P));
1299. E char FDECL(map_menu_cmd, (CHAR_P));
1300. 
1301. /* ### pager.c ### */
1302. 
1303. E int NDECL(dowhatis);
1304. E int NDECL(doquickwhatis);
1305. E int NDECL(doidtrap);
1306. E int NDECL(dowhatdoes);
1307. E int NDECL(dohelp);
1308. E int NDECL(dohistory);
1309. 
1310. /* ### pcmain.c ### */
1311. 
1312. #if defined(MICRO)
1313. # ifdef CHDIR
1314. E void FDECL(chdirx, (char *,BOOLEAN_P));
1315. # endif /* CHDIR */
1316. #endif /* MICRO */
1317. 
1318. /* ### pcsys.c ### */
1319. 
1320. #ifdef MICRO
1321. E void NDECL(flushout);
1322. E int NDECL(dosh);
1323. # ifdef MFLOPPY
1324. E void FDECL(eraseall, (const char *,const char *));
1325. E void FDECL(copybones, (int));
1326. E void NDECL(playwoRAMdisk);
1327. E int FDECL(saveDiskPrompt, (int));
1328. E void NDECL(gameDiskPrompt);
1329. # endif
1330. E void FDECL(append_slash, (char *));
1331. E void FDECL(getreturn, (const char *));
1332. # ifndef AMIGA
1333. E void VDECL(msmsg, (const char *,...));
1334. # endif
1335. E FILE *FDECL(fopenp, (const char *,const char *));
1336. #endif /* MICRO */
1337. 
1338. /* ### pctty.c ### */
1339. 
1340. #if defined(MICRO)
1341. E void NDECL(gettty);
1342. E void FDECL(settty, (const char *));
1343. E void NDECL(setftty);
1344. E void VDECL(error, (const char *,...));
1345. #if defined(TIMED_DELAY) && defined(_MSC_VER)
1346. E void FDECL(msleep, (unsigned));
1347. #endif
1348. #endif /* MICRO */
1349. 
1350. /* ### pcunix.c ### */
1351. 
1352. #if defined(MICRO)
1353. E void FDECL(gethdate, (char *));
1354. E void FDECL(regularize, (char *));
1355. #endif /* MICRO */
1356. #if defined(WIN32) || defined(MSDOS)
1357. E void NDECL(getlock);
1358. #endif
1359. 
1360. /* ### pickup.c ### */
1361. 
1362. E int FDECL(collect_obj_classes,
1363. 	(char *,struct obj *,BOOLEAN_P,BOOLEAN_P,boolean FDECL((*),(OBJ_P))));
1364. E void FDECL(add_valid_menu_class, (int));
1365. E boolean FDECL(allow_all, (struct obj *));
1366. E boolean FDECL(allow_category, (struct obj *));
1367. E boolean FDECL(is_worn_by_type, (struct obj *));
1368. #ifdef USE_TRAMPOLI
1369. E int FDECL(ck_bag, (struct obj *));
1370. E int FDECL(in_container, (struct obj *));
1371. E int FDECL(out_container, (struct obj *));
1372. #endif
1373. E void FDECL(pickup, (int));
1374. E int FDECL(pickup_object, (struct obj *, long, BOOLEAN_P));
1375. E int FDECL(query_category, (const char *, struct obj *, int,
1376. 				menu_item **, int));
1377. E int FDECL(query_objlist, (const char *, struct obj *, int,
1378. 				menu_item **, int, boolean (*)(OBJ_P)));
1379. E struct obj *FDECL(pick_obj, (struct obj *));
1380. E int NDECL(encumber_msg);
1381. E int NDECL(doloot);
1382. E int FDECL(use_container, (struct obj *,int));
1383. 
1384. /* ### pline.c ### */
1385. 
1386. E void VDECL(pline, (const char *,...)) PRINTF_F(1,2);
1387. E void VDECL(Norep, (const char *,...)) PRINTF_F(1,2);
1388. E void NDECL(free_youbuf);
1389. E void VDECL(You, (const char *,...)) PRINTF_F(1,2);
1390. E void VDECL(Your, (const char *,...)) PRINTF_F(1,2);
1391. E void VDECL(You_feel, (const char *,...)) PRINTF_F(1,2);
1392. E void VDECL(You_cant, (const char *,...)) PRINTF_F(1,2);
1393. E void VDECL(You_hear, (const char *,...)) PRINTF_F(1,2);
1394. E void VDECL(pline_The, (const char *,...)) PRINTF_F(1,2);
1395. E void VDECL(verbalize, (const char *,...)) PRINTF_F(1,2);
1396. E void VDECL(raw_printf, (const char *,...)) PRINTF_F(1,2);
1397. E void VDECL(impossible, (const char *,...)) PRINTF_F(1,2);
1398. E const char *FDECL(align_str, (ALIGNTYP_P));
1399. E void FDECL(mstatusline, (struct monst *));
1400. E void NDECL(ustatusline);
1401. E void NDECL(self_invis_message);
1402. 
1403. /* ### polyself.c ### */
1404. 
1405. E void NDECL(set_uasmon);
1406. E void NDECL(change_sex);
1407. E void NDECL(polyself);
1408. E int FDECL(polymon, (int));
1409. E void NDECL(rehumanize);
1410. E int NDECL(dobreathe);
1411. E int NDECL(dospit);
1412. E int NDECL(doremove);
1413. E int NDECL(dospinweb);
1414. E int NDECL(dosummon);
1415. E int NDECL(doconfuse);
1416. E int NDECL(dohide);
1417. E int NDECL(domindblast);
1418. E const char *FDECL(mbodypart, (struct monst *,int));
1419. E const char *FDECL(body_part, (int));
1420. E int NDECL(poly_gender);
1421. E void FDECL(ugolemeffects, (int,int));
1422. 
1423. /* ### potion.c ### */
1424. 
1425. E void FDECL(set_itimeout, (long *,long));
1426. E void FDECL(incr_itimeout, (long *,int));
1427. E void FDECL(make_confused, (long,BOOLEAN_P));
1428. E void FDECL(make_stunned, (long,BOOLEAN_P));
1429. E void FDECL(make_blinded, (long,BOOLEAN_P));
1430. E void FDECL(make_sick, (long, const char *, BOOLEAN_P,int));
1431. E void FDECL(make_vomiting, (long,BOOLEAN_P));
1432. E void FDECL(make_hallucinated, (long,BOOLEAN_P,long));
1433. E int NDECL(dodrink);
1434. E int FDECL(dopotion, (struct obj *));
1435. E int FDECL(peffects, (struct obj *));
1436. E void FDECL(healup, (int,int,BOOLEAN_P,BOOLEAN_P));
1437. E void FDECL(strange_feeling, (struct obj *,const char *));
1438. E void FDECL(potionhit, (struct monst *,struct obj *,BOOLEAN_P));
1439. E void FDECL(potionbreathe, (struct obj *));
1440. E boolean FDECL(get_wet, (struct obj *));
1441. E int NDECL(dodip);
1442. E void FDECL(djinni_from_bottle, (struct obj *));
1443. E struct monst *FDECL(split_mon, (struct monst *,struct monst *));
1444. 
1445. /* ### pray.c ### */
1446. 
1447. #ifdef USE_TRAMPOLI
1448. E int NDECL(prayer_done);
1449. #endif
1450. E int NDECL(dosacrifice);
1451. E boolean FDECL(can_pray, (BOOLEAN_P));
1452. E int NDECL(dopray);
1453. E const char *NDECL(u_gname);
1454. E int NDECL(doturn);
1455. E const char *NDECL(a_gname);
1456. E const char *FDECL(a_gname_at, (XCHAR_P x,XCHAR_P y));
1457. E const char *FDECL(align_gname, (ALIGNTYP_P));
1458. E const char *FDECL(halu_gname, (ALIGNTYP_P));
1459. E const char *FDECL(align_gtitle, (ALIGNTYP_P));
1460. E void FDECL(altar_wrath, (int,int));
1461. 
1462. 
1463. /* ### priest.c ### */
1464. 
1465. E int FDECL(move_special, (struct monst *,BOOLEAN_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P,
1466. 			   XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
1467. E char FDECL(temple_occupied, (char *));
1468. E int FDECL(pri_move, (struct monst *));
1469. E void FDECL(priestini, (d_level *,struct mkroom *,int,int,BOOLEAN_P));
1470. E char *FDECL(priestname, (struct monst *,char *));
1471. E boolean FDECL(p_coaligned, (struct monst *));
1472. E struct monst *FDECL(findpriest, (CHAR_P));
1473. E void FDECL(intemple, (int));
1474. E void FDECL(priest_talk, (struct monst *));
1475. E struct monst *FDECL(mk_roamer, (struct permonst *,ALIGNTYP_P,
1476. 				  XCHAR_P,XCHAR_P,BOOLEAN_P));
1477. E void FDECL(reset_hostility, (struct monst *));
1478. E boolean FDECL(in_your_sanctuary, (struct monst *,XCHAR_P,XCHAR_P));
1479. E void FDECL(ghod_hitsu, (struct monst *));
1480. E void NDECL(angry_priest);
1481. E void NDECL(clearpriests);
1482. E void FDECL(restpriest, (struct monst *,BOOLEAN_P));
1483. 
1484. /* ### quest.c ### */
1485. 
1486. E void NDECL(onquest);
1487. E void NDECL(nemdead);
1488. E void NDECL(artitouch);
1489. E boolean NDECL(ok_to_quest);
1490. E void FDECL(leader_speaks, (struct monst *));
1491. E void NDECL(nemesis_speaks);
1492. E void FDECL(quest_chat, (struct monst *));
1493. E void FDECL(quest_talk, (struct monst *));
1494. E void FDECL(quest_stat_check, (struct monst *));
1495. E void FDECL(finish_quest, (struct obj *));
1496. 
1497. /* ### questpgr.c ### */
1498. 
1499. E void NDECL(load_qtlist);
1500. E void NDECL(unload_qtlist);
1501. E short FDECL(quest_info, (int));
1502. E const char *NDECL(ldrname);
1503. E boolean FDECL(is_quest_artifact, (struct obj*));
1504. E boolean NDECL(leaderless);
1505. E void FDECL(com_pager, (int));
1506. E void FDECL(qt_pager, (int));
1507. E struct permonst *NDECL(qt_montype);
1508. 
1509. /* ### random.c ### */
1510. 
1511. #if defined(RANDOM) && !defined(__GO32__) /* djgpp has its own random */
1512. E void FDECL(srandom, (unsigned));
1513. E char *FDECL(initstate, (unsigned,char *,int));
1514. E char *FDECL(setstate, (char *));
1515. E long NDECL(random);
1516. #endif /* RANDOM */
1517. 
1518. /* ### read.c ### */
1519. 
1520. E int NDECL(doread);
1521. E boolean FDECL(is_chargeable, (struct obj *));
1522. E void FDECL(recharge, (struct obj *,int));
1523. E void FDECL(forget_objects, (int));
1524. E void FDECL(forget_levels, (int));
1525. E void NDECL(forget_traps);
1526. E void FDECL(forget_map, (int));
1527. E int FDECL(seffects, (struct obj *));
1528. #ifdef USE_TRAMPOLI
1529. E void FDECL(set_lit, (int,int,genericptr_t));
1530. #endif
1531. E void FDECL(litroom, (BOOLEAN_P,struct obj *));
1532. E void FDECL(do_genocide, (int));
1533. E void FDECL(punish, (struct obj *));
1534. E void NDECL(unpunish);
1535. E boolean FDECL(cant_create, (int *, BOOLEAN_P));
1536. #ifdef WIZARD
1537. E boolean NDECL(create_particular);
1538. #endif
1539. 
1540. /* ### rect.c ### */
1541. 
1542. E void NDECL(init_rect);
1543. E NhRect *FDECL(get_rect, (NhRect *));
1544. E NhRect *NDECL(rnd_rect);
1545. E void FDECL(remove_rect, (NhRect *));
1546. E void FDECL(add_rect, (NhRect *));
1547. E void FDECL(split_rects, (NhRect *,NhRect *));
1548. 
1549. /* ## region.c ### */
1550. E void NDECL(clear_regions);
1551. E void NDECL(run_regions);
1552. E boolean FDECL(in_out_region, (XCHAR_P,XCHAR_P));
1553. E boolean FDECL(m_in_out_region, (struct monst *,XCHAR_P,XCHAR_P));
1554. E void NDECL(update_player_regions);
1555. E void FDECL(update_monster_region, (struct monst *));
1556. E NhRegion *FDECL(visible_region_at, (XCHAR_P,XCHAR_P));
1557. E void FDECL(show_region, (NhRegion*, XCHAR_P, XCHAR_P));
1558. E void FDECL(save_regions, (int,int));
1559. E void FDECL(rest_regions, (int));
1560. E NhRegion* FDECL(create_gas_cloud, (XCHAR_P, XCHAR_P, int, int));
1561. 
1562. /* ### restore.c ### */
1563. 
1564. E void FDECL(inven_inuse, (BOOLEAN_P));
1565. E int FDECL(dorecover, (int));
1566. E void NDECL(trickery);
1567. E void FDECL(getlev, (int,int,XCHAR_P,BOOLEAN_P));
1568. E void NDECL(minit);
1569. E boolean FDECL(lookup_id_mapping, (unsigned, unsigned *));
1570. #ifdef ZEROCOMP
1571. E int FDECL(mread, (int,genericptr_t,unsigned int));
1572. #else
1573. E void FDECL(mread, (int,genericptr_t,unsigned int));
1574. #endif
1575. 
1576. /* ### rip.c ### */
1577. 
1578. E void FDECL(genl_outrip, (winid,int));
1579. 
1580. /* ### rnd.c ### */
1581. 
1582. E int FDECL(rn2, (int));
1583. E int FDECL(rnl, (int));
1584. E int FDECL(rnd, (int));
1585. E int FDECL(d, (int,int));
1586. E int FDECL(rne, (int));
1587. E int FDECL(rnz, (int));
1588. 
1589. /* ### role.c ### */
1590. 
1591. E boolean FDECL(validrole, (int));
1592. E boolean FDECL(validrace, (int, int));
1593. E boolean FDECL(validgend, (int, int, int));
1594. E boolean FDECL(validalign, (int, int, int));
1595. E int NDECL(randrole);
1596. E int FDECL(randrace, (int));
1597. E int FDECL(randgend, (int, int));
1598. E int FDECL(randalign, (int, int));
1599. E int FDECL(str2role, (char *));
1600. E int FDECL(str2race, (char *));
1601. E int FDECL(str2gend, (char *));
1602. E int FDECL(str2align, (char *));
1603. E void NDECL(role_init);
1604. E void NDECL(plnamesuffix);
1605. E const char *NDECL(Hello);
1606. E const char *NDECL(Goodbye);
1607. 
1608. /* ### rumors.c ### */
1609. 
1610. E char *FDECL(getrumor, (int,char *));
1611. E void FDECL(outrumor, (int,int));
1612. E void FDECL(outoracle, (BOOLEAN_P, BOOLEAN_P));
1613. E void FDECL(save_oracles, (int,int));
1614. E void FDECL(restore_oracles, (int));
1615. E int FDECL(doconsult, (struct monst *));
1616. 
1617. /* ### save.c ### */
1618. 
1619. E int NDECL(dosave);
1620. #if defined(UNIX) || defined(VMS) || defined(__EMX__)
1621. E void FDECL(hangup, (int));
1622. #endif
1623. E int NDECL(dosave0);
1624. #ifdef INSURANCE
1625. E void NDECL(savestateinlock);
1626. #endif
1627. #ifdef MFLOPPY
1628. E boolean FDECL(savelev, (int,XCHAR_P,int));
1629. E boolean FDECL(swapin_file, (int));
1630. E void NDECL(co_false);
1631. #else
1632. E void FDECL(savelev, (int,XCHAR_P,int));
1633. #endif
1634. E void FDECL(bufon, (int));
1635. E void FDECL(bufoff, (int));
1636. E void FDECL(bflush, (int));
1637. E void FDECL(bwrite, (int,genericptr_t,unsigned int));
1638. E void FDECL(bclose, (int));
1639. E void FDECL(savefruitchn, (int,int));
1640. E void NDECL(free_dungeons);
1641. E void NDECL(freedynamicdata);
1642. 
1643. /* ### shk.c ### */
1644. 
1645. E char *FDECL(shkname, (struct monst *));
1646. E void FDECL(shkgone, (struct monst *));
1647. E void FDECL(set_residency, (struct monst *,BOOLEAN_P));
1648. E void FDECL(replshk, (struct monst *,struct monst *));
1649. E void FDECL(restshk, (struct monst *,BOOLEAN_P));
1650. E char FDECL(inside_shop, (XCHAR_P,XCHAR_P));
1651. E void FDECL(u_left_shop, (char *,BOOLEAN_P));
1652. E void FDECL(u_entered_shop, (char *));
1653. E boolean FDECL(same_price, (struct obj *,struct obj *));
1654. E void NDECL(shopper_financial_report);
1655. E int FDECL(inhishop, (struct monst *));
1656. E struct monst *FDECL(shop_keeper, (CHAR_P));
1657. E boolean FDECL(tended_shop, (struct mkroom *));
1658. E void FDECL(delete_contents, (struct obj *));
1659. E void FDECL(obfree, (struct obj *,struct obj *));
1660. E void FDECL(home_shk, (struct monst *,BOOLEAN_P));
1661. E void FDECL(make_happy_shk, (struct monst *,BOOLEAN_P));
1662. E void FDECL(hot_pursuit, (struct monst *));
1663. E void FDECL(make_angry_shk, (struct monst *,XCHAR_P,XCHAR_P));
1664. E int NDECL(dopay);
1665. E boolean FDECL(paybill, (BOOLEAN_P));
1666. E void NDECL(finish_paybill);
1667. E struct obj *FDECL(find_oid, (unsigned));
1668. E long FDECL(contained_cost, (struct obj *,struct monst *,long,BOOLEAN_P));
1669. E long FDECL(contained_gold, (struct obj *));
1670. E void FDECL(picked_container, (struct obj *));
1671. E long FDECL(unpaid_cost, (struct obj *));
1672. E void FDECL(addtobill, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
1673. E void FDECL(splitbill, (struct obj *,struct obj *));
1674. E void FDECL(subfrombill, (struct obj *,struct monst *));
1675. E long FDECL(stolen_value, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P,BOOLEAN_P));
1676. E void FDECL(sellobj_state, (BOOLEAN_P));
1677. E void FDECL(sellobj, (struct obj *,XCHAR_P,XCHAR_P));
1678. E int FDECL(doinvbill, (int));
1679. E int FDECL(shkcatch, (struct obj *,XCHAR_P,XCHAR_P));
1680. E void FDECL(add_damage, (XCHAR_P,XCHAR_P,long));
1681. E int FDECL(repair_damage, (struct monst *,struct damage *,BOOLEAN_P));
1682. E int FDECL(shk_move, (struct monst *));
1683. E boolean FDECL(is_fshk, (struct monst *));
1684. E void FDECL(shopdig, (int));
1685. E void FDECL(pay_for_damage, (const char *));
1686. E boolean FDECL(costly_spot, (XCHAR_P,XCHAR_P));
1687. E struct obj *FDECL(shop_object, (XCHAR_P,XCHAR_P));
1688. E void FDECL(price_quote, (struct obj *));
1689. E void FDECL(shk_chat, (struct monst *));
1690. E void FDECL(check_unpaid_usage, (struct obj *,BOOLEAN_P));
1691. E void FDECL(check_unpaid, (struct obj *));
1692. E void FDECL(costly_gold, (XCHAR_P,XCHAR_P,long));
1693. E boolean FDECL(block_door, (XCHAR_P,XCHAR_P));
1694. E boolean FDECL(block_entry, (XCHAR_P,XCHAR_P));
1695. E char *FDECL(shk_your, (char *,struct obj *));
1696. E char *FDECL(Shk_Your, (char *,struct obj *));
1697. 
1698. /* ### shknam.c ### */
1699. 
1700. E void FDECL(stock_room, (int,struct mkroom *));
1701. E boolean FDECL(saleable, (struct monst *,struct obj *));
1702. E int FDECL(get_shop_item, (int));
1703. 
1704. /* ### sit.c ### */
1705. 
1706. E void NDECL(take_gold);
1707. E int NDECL(dosit);
1708. E void NDECL(rndcurse);
1709. E void NDECL(attrcurse);
1710. 
1711. /* ### sounds.c ### */
1712. 
1713. E void NDECL(dosounds);
1714. E const char *FDECL(growl_sound, (struct monst *));
1715. E void FDECL(growl, (struct monst *));
1716. E void FDECL(yelp, (struct monst *));
1717. E void FDECL(whimper, (struct monst *));
1718. E void FDECL(beg, (struct monst *));
1719. E int NDECL(dotalk);
1720. 
1721. 
1722. /* ### sys/msdos/sound.c ### */
1723. 
1724. #ifdef MSDOS
1725. E int FDECL(assign_soundcard, (char *));
1726. #endif
1727. 
1728. /* ### sp_lev.c ### */
1729. 
1730. E boolean FDECL(check_room, (xchar *,xchar *,xchar *,xchar *,BOOLEAN_P));
1731. E boolean FDECL(create_room, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
1732. 			      XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
1733. E void FDECL(create_secret_door, (struct mkroom *,XCHAR_P));
1734. E boolean FDECL(dig_corridor, (coord *,coord *,BOOLEAN_P,SCHAR_P,SCHAR_P));
1735. E void FDECL(fill_room, (struct mkroom *,BOOLEAN_P));
1736. E boolean FDECL(load_special, (const char *));
1737. 
1738. /* ### spell.c ### */
1739. 
1740. #ifdef USE_TRAMPOLI
1741. E int NDECL(learn);
1742. #endif
1743. E int FDECL(study_book, (struct obj *));
1744. E void FDECL(book_substitution, (struct obj *,struct obj *));
1745. E void NDECL(age_spells);
1746. E int NDECL(docast);
1747. E int FDECL(spell_skilltype, (int));
1748. E int FDECL(spelleffects, (int,BOOLEAN_P));
1749. E void NDECL(losespells);
1750. E int NDECL(dovspell);
1751. E void FDECL(initialspell, (struct obj *));
1752. 
1753. /* ### steal.c ### */
1754. 
1755. #ifdef USE_TRAMPOLI
1756. E int NDECL(stealarm);
1757. #endif
1758. E long NDECL(somegold);
1759. E void FDECL(stealgold, (struct monst *));
1760. E void FDECL(remove_worn_item, (struct obj *));
1761. E int FDECL(steal, (struct monst *));
1762. E void FDECL(mpickobj, (struct monst *,struct obj *));
1763. E void FDECL(stealamulet, (struct monst *));
1764. E void FDECL(relobj, (struct monst *,int,BOOLEAN_P));
1765. 
1766. /* ### steed.c ### */
1767. 
1768. #ifdef STEED
1769. E boolean FDECL(can_saddle, (struct monst *));
1770. E int FDECL(use_saddle, (struct obj *));
1771. E boolean FDECL(can_ride, (struct monst *));
1772. E int NDECL(doride);
1773. E boolean FDECL(mount_steed, (struct monst *, BOOLEAN_P));
1774. E void NDECL(exercise_steed);
1775. E void NDECL(kick_steed);
1776. E void FDECL(dismount_steed, (int));
1777. #endif
1778. 
1779. /* ### teleport.c ### */
1780. 
1781. E boolean FDECL(goodpos, (int,int,struct monst *));
1782. E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
1783. E void FDECL(teleds, (int,int));
1784. E boolean NDECL(safe_teleds);
1785. E boolean FDECL(teleport_pet, (struct monst *,BOOLEAN_P));
1786. E void NDECL(tele);
1787. E int NDECL(dotele);
1788. E void NDECL(level_tele);
1789. E void FDECL(domagicportal, (struct trap *));
1790. E void FDECL(tele_trap, (struct trap *));
1791. E void FDECL(level_tele_trap, (struct trap *));
1792. E void FDECL(rloc_to, (struct monst *,int,int));
1793. E void FDECL(rloc, (struct monst *));
1794. E boolean FDECL(tele_restrict, (struct monst *));
1795. E void FDECL(mtele_trap, (struct monst *, struct trap *,int));
1796. E int FDECL(mlevel_tele_trap, (struct monst *, struct trap *,BOOLEAN_P,int));
1797. E void FDECL(rloco, (struct obj *));
1798. E int NDECL(random_teleport_level);
1799. E boolean FDECL(u_teleport_mon, (struct monst *,BOOLEAN_P));
1800. 
1801. /* ### tile.c ### */
1802. #ifdef USE_TILES
1803. E void FDECL(substitute_tiles, (d_level *));
1804. #endif
1805. 
1806. /* ### timeout.c ### */
1807. 
1808. E void NDECL(burn_away_slime);
1809. E void NDECL(nh_timeout);
1810. E void FDECL(fall_asleep, (int, BOOLEAN_P));
1811. E void FDECL(attach_egg_hatch_timeout, (struct obj *));
1812. E void FDECL(attach_fig_transform_timeout, (struct obj *));
1813. E void FDECL(kill_egg, (struct obj *));
1814. E void FDECL(hatch_egg, (genericptr_t, long));
1815. E void FDECL(learn_egg_type, (int));
1816. E void FDECL(burn_object, (genericptr_t, long));
1817. E void FDECL(begin_burn, (struct obj *, BOOLEAN_P));
1818. E void FDECL(end_burn, (struct obj *, BOOLEAN_P));
1819. E void NDECL(do_storms);
1820. E boolean FDECL(start_timer, (long, SHORT_P, SHORT_P, genericptr_t));
1821. E long FDECL(stop_timer, (SHORT_P, genericptr_t));
1822. E void NDECL(run_timers);
1823. E void FDECL(obj_move_timers, (struct obj *, struct obj *));
1824. E void FDECL(obj_split_timers, (struct obj *, struct obj *));
1825. E void FDECL(obj_stop_timers, (struct obj *));
1826. E boolean FDECL(obj_is_local, (struct obj *));
1827. E void FDECL(save_timers, (int,int,int));
1828. E void FDECL(restore_timers, (int,int,BOOLEAN_P,long));
1829. E void FDECL(relink_timers, (BOOLEAN_P));
1830. #ifdef WIZARD
1831. E int NDECL(wiz_timeout_queue);
1832. E void NDECL(timer_sanity_check);
1833. #endif
1834. 
1835. /* ### topten.c ### */
1836. 
1837. E void FDECL(topten, (int));
1838. E void FDECL(prscore, (int,char **));
1839. E struct obj *FDECL(tt_oname, (struct obj *));
1840. 
1841. /* ### track.c ### */
1842. 
1843. E void NDECL(initrack);
1844. E void NDECL(settrack);
1845. E coord *FDECL(gettrack, (int,int));
1846. 
1847. /* ### trap.c ### */
1848. 
1849. E boolean FDECL(burnarmor,(struct monst *));
1850. E boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P,struct monst *));
1851. E void FDECL(grease_protect, (struct obj *,const char *,BOOLEAN_P,struct monst *));
1852. E struct trap *FDECL(maketrap, (int,int,int));
1853. E void FDECL(fall_through, (BOOLEAN_P));
1854. E struct monst *FDECL(animate_statue, (struct obj *,XCHAR_P,XCHAR_P,int,int *));
1855. E struct monst *FDECL(activate_statue_trap,
1856. 			(struct trap *,XCHAR_P,XCHAR_P,BOOLEAN_P));
1857. E void FDECL(dotrap, (struct trap *));
1858. E void FDECL(seetrap, (struct trap *));
1859. E int FDECL(mintrap, (struct monst *));
1860. E void FDECL(instapetrify, (const char *));
1861. E void FDECL(minstapetrify, (struct monst *,BOOLEAN_P));
1862. E void FDECL(selftouch, (const char *));
1863. E void FDECL(mselftouch, (struct monst *,const char *,BOOLEAN_P));
1864. E void NDECL(float_up);
1865. E void FDECL(fill_pit, (int,int));
1866. E int FDECL(float_down, (long, long));
1867. E void FDECL(water_damage, (struct obj *,BOOLEAN_P,BOOLEAN_P));
1868. E boolean NDECL(drown);
1869. E void FDECL(drain_en, (int));
1870. E int NDECL(dountrap);
1871. E int FDECL(untrap, (BOOLEAN_P));
1872. E boolean FDECL(chest_trap, (struct obj *,int,BOOLEAN_P));
1873. E void FDECL(deltrap, (struct trap *));
1874. E boolean FDECL(delfloortrap, (struct trap *));
1875. E struct trap *FDECL(t_at, (int,int));
1876. E void FDECL(b_trapped, (const char *,int));
1877. E boolean NDECL(unconscious);
1878. E boolean NDECL(lava_effects);
1879. E int FDECL(launch_obj,(SHORT_P,int,int,int,int,int));
1880. 
1881. /* ### u_init.c ### */
1882. 
1883. E void NDECL(u_init);
1884. 
1885. /* ### uhitm.c ### */
1886. 
1887. E void FDECL(hurtmarmor,(struct permonst *,struct monst *,int));
1888. E boolean FDECL(attack_checks, (struct monst *,struct obj *));
1889. E schar FDECL(find_roll_to_hit, (struct monst *));
1890. E boolean FDECL(attack, (struct monst *));
1891. E boolean FDECL(hmon, (struct monst *,struct obj *,int));
1892. E int FDECL(damageum, (struct monst *,struct attack *));
1893. E void FDECL(missum, (struct monst *,struct attack *));
1894. E int FDECL(passive, (struct monst *,BOOLEAN_P,int,UCHAR_P));
1895. E void FDECL(stumble_onto_mimic, (struct monst *));
1896. E int FDECL(flash_hits_mon, (struct monst *,struct obj *));
1897. 
1898. /* ### unixmain.c ### */
1899. 
1900. #ifdef UNIX
1901. # ifdef PORT_HELP
1902. E void NDECL(port_help);
1903. # endif
1904. #endif /* UNIX */
1905. 
1906. 
1907. /* ### unixtty.c ### */
1908. 
1909. #if defined(UNIX) || defined(__BEOS__)
1910. E void NDECL(gettty);
1911. E void FDECL(settty, (const char *));
1912. E void NDECL(setftty);
1913. E void NDECL(intron);
1914. E void NDECL(introff);
1915. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
1916. #endif /* UNIX || __BEOS__ */
1917. 
1918. /* ### unixunix.c ### */
1919. 
1920. #ifdef UNIX
1921. E void FDECL(gethdate, (const char *));
1922. E void NDECL(getlock);
1923. E void FDECL(regularize, (char *));
1924. # ifdef SHELL
1925. E int NDECL(dosh);
1926. # endif /* SHELL */
1927. # if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
1928. E int FDECL(child, (int));
1929. # endif
1930. #endif /* UNIX */
1931. 
1932. /* ### vault.c ### */
1933. 
1934. E boolean FDECL(grddead, (struct monst *));
1935. E char FDECL(vault_occupied, (char *));
1936. E void NDECL(invault);
1937. E int FDECL(gd_move, (struct monst *));
1938. E void NDECL(paygd);
1939. E long NDECL(hidden_gold);
1940. E boolean NDECL(gd_sound);
1941. 
1942. /* ### version.c ### */
1943. 
1944. E char *FDECL(getversionstring, (char *));
1945. E int NDECL(doversion);
1946. E int NDECL(doextversion);
1947. #ifdef MICRO
1948. E boolean FDECL(comp_times, (long));
1949. #endif
1950. E boolean FDECL(check_version, (struct version_info *,
1951. 				const char *,BOOLEAN_P));
1952. E unsigned long FDECL(get_feature_notice_ver, (char *));
1953. E unsigned long NDECL(get_current_feature_ver);
1954. 
1955. /* ### video.c ### */
1956. 
1957. #ifdef MSDOS
1958. E int FDECL(assign_video, (char *));
1959. # ifdef NO_TERMS
1960. E void NDECL(gr_init);
1961. E void NDECL(gr_finish);
1962. # endif
1963. E void FDECL(tileview,(BOOLEAN_P));
1964. #endif
1965. #ifdef VIDEOSHADES
1966. E int FDECL(assign_videoshades, (char *));
1967. E int FDECL(assign_videocolors, (char *));
1968. #endif
1969. 
1970. /* ### vis_tab.c ### */
1971. 
1972. #ifdef VISION_TABLES
1973. E void NDECL(vis_tab_init);
1974. #endif
1975. 
1976. /* ### vision.c ### */
1977. 
1978. E void NDECL(vision_init);
1979. E int FDECL(does_block, (int,int,struct rm*));
1980. E void NDECL(vision_reset);
1981. E void FDECL(vision_recalc, (int));
1982. E void FDECL(block_point, (int,int));
1983. E void FDECL(unblock_point, (int,int));
1984. E boolean FDECL(clear_path, (int,int,int,int));
1985. E void FDECL(do_clear_area, (int,int,int,
1986. 			     void (*)(int,int,genericptr_t),genericptr_t));
1987. 
1988. #ifdef VMS
1989. 
1990. /* ### vmsfiles.c ### */
1991. 
1992. E int FDECL(vms_link, (const char *,const char *));
1993. E int FDECL(vms_unlink, (const char *));
1994. E int FDECL(vms_creat, (const char *,unsigned int));
1995. E int FDECL(vms_open, (const char *,int,unsigned int));
1996. E boolean FDECL(same_dir, (const char *,const char *));
1997. E int FDECL(c__translate, (int));
1998. E char *FDECL(vms_basename, (const char *));
1999. 
2000. /* ### vmsmail.c ### */
2001. 
2002. E unsigned long NDECL(init_broadcast_trapping);
2003. E unsigned long NDECL(enable_broadcast_trapping);
2004. E unsigned long NDECL(disable_broadcast_trapping);
2005. # if 0
2006. E struct mail_info *NDECL(parse_next_broadcast);
2007. # endif /*0*/
2008. 
2009. /* ### vmsmain.c ### */
2010. 
2011. E int FDECL(main, (int, char **));
2012. # ifdef CHDIR
2013. E void FDECL(chdirx, (const char *,BOOLEAN_P));
2014. # endif /* CHDIR */
2015. 
2016. /* ### vmsmisc.c ### */
2017. 
2018. E void NDECL(vms_abort);
2019. E void FDECL(vms_exit, (int));
2020. 
2021. /* ### vmstty.c ### */
2022. 
2023. E int NDECL(vms_getchar);
2024. E void NDECL(gettty);
2025. E void FDECL(settty, (const char *));
2026. E void FDECL(shuttty, (const char *));
2027. E void NDECL(setftty);
2028. E void NDECL(intron);
2029. E void NDECL(introff);
2030. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
2031. #ifdef TIMED_DELAY
2032. E void FDECL(msleep, (unsigned));
2033. #endif
2034. 
2035. /* ### vmsunix.c ### */
2036. 
2037. E void FDECL(gethdate, (const char *));
2038. E void NDECL(getlock);
2039. E void FDECL(regularize, (char *));
2040. E int NDECL(vms_getuid);
2041. E boolean FDECL(file_is_stmlf, (int));
2042. E int FDECL(vms_define, (const char *,const char *,int));
2043. E int FDECL(vms_putenv, (const char *));
2044. E char *NDECL(verify_termcap);
2045. # if defined(CHDIR) || defined(SHELL) || defined(SECURE)
2046. E void NDECL(privoff);
2047. E void NDECL(privon);
2048. # endif
2049. # ifdef SHELL
2050. E int NDECL(dosh);
2051. # endif
2052. # if defined(SHELL) || defined(MAIL)
2053. E int FDECL(vms_doshell, (const char *,BOOLEAN_P));
2054. # endif
2055. # ifdef SUSPEND
2056. E int NDECL(dosuspend);
2057. # endif
2058. 
2059. #endif /* VMS */
2060. 
2061. /* ### weapon.c ### */
2062. 
2063. E int FDECL(hitval, (struct obj *,struct monst *));
2064. E int FDECL(dmgval, (struct obj *,struct monst *));
2065. E struct obj *FDECL(select_rwep, (struct monst *));
2066. E struct obj *FDECL(select_hwep, (struct monst *));
2067. E void FDECL(possibly_unwield, (struct monst *));
2068. E int FDECL(mon_wield_item, (struct monst *));
2069. E int NDECL(abon);
2070. E int NDECL(dbon);
2071. E int NDECL(enhance_weapon_skill);
2072. E void FDECL(unrestrict_weapon_skill, (int));
2073. E void FDECL(use_skill, (int,int));
2074. E void FDECL(add_weapon_skill, (int));
2075. E void FDECL(lose_weapon_skill, (int));
2076. E int FDECL(weapon_type, (struct obj *));
2077. E int FDECL(weapon_hit_bonus, (struct obj *));
2078. E int FDECL(weapon_dam_bonus, (struct obj *));
2079. E void FDECL(skill_init, (struct def_skill *));
2080. 
2081. /* ### were.c ### */
2082. 
2083. E void FDECL(were_change, (struct monst *));
2084. E void FDECL(new_were, (struct monst *));
2085. E boolean FDECL(were_summon, (struct permonst *,BOOLEAN_P));
2086. E void NDECL(you_were);
2087. E void FDECL(you_unwere, (BOOLEAN_P));
2088. 
2089. /* ### wield.c ### */
2090. 
2091. E void FDECL(setuwep, (struct obj *));
2092. E void FDECL(setuqwep, (struct obj *));
2093. E void FDECL(setuswapwep, (struct obj *));
2094. E int NDECL(dowield);
2095. E int NDECL(doswapweapon);
2096. E int NDECL(dowieldquiver);
2097. E int NDECL(dotwoweapon);
2098. E int NDECL(can_twoweapon);
2099. E void NDECL(untwoweapon);
2100. E void NDECL(uwepgone);
2101. E void NDECL(uswapwepgone);
2102. E void NDECL(uqwepgone);
2103. E void FDECL(erode_weapon, (struct monst *,BOOLEAN_P));
2104. E int FDECL(chwepon, (struct obj *,int));
2105. E int FDECL(welded, (struct obj *));
2106. E void FDECL(weldmsg, (struct obj *));
2107. 
2108. /* ### windows.c ### */
2109. 
2110. E void FDECL(choose_windows, (const char *));
2111. E char FDECL(genl_message_menu, (CHAR_P,int,const char *));
2112. 
2113. /* ### wizard.c ### */
2114. 
2115. E void NDECL(amulet);
2116. E int FDECL(mon_has_amulet, (struct monst *));
2117. E int FDECL(mon_has_special, (struct monst *));
2118. E int FDECL(tactics, (struct monst *));
2119. E void NDECL(aggravate);
2120. E void NDECL(clonewiz);
2121. E int NDECL(pick_nasty);
2122. E void FDECL(nasty, (struct monst*));
2123. E void NDECL(resurrect);
2124. E void NDECL(intervene);
2125. E void NDECL(wizdead);
2126. E void FDECL(cuss, (struct monst *));
2127. 
2128. /* ### worm.c ### */
2129. 
2130. E int NDECL(get_wormno);
2131. E void FDECL(initworm, (struct monst *,int));
2132. E void FDECL(worm_move, (struct monst *));
2133. E void FDECL(worm_nomove, (struct monst *));
2134. E void FDECL(wormgone, (struct monst *));
2135. E void FDECL(wormhitu, (struct monst *));
2136. E void FDECL(cutworm, (struct monst *,XCHAR_P,XCHAR_P,struct obj *));
2137. E void FDECL(see_wsegs, (struct monst *));
2138. E void FDECL(save_worm, (int,int));
2139. E void FDECL(rest_worm, (int));
2140. E void FDECL(place_wsegs, (struct monst *));
2141. E void FDECL(remove_worm, (struct monst *));
2142. E void FDECL(place_worm_tail_randomly, (struct monst *,XCHAR_P,XCHAR_P));
2143. E int FDECL(count_wsegs, (struct monst *));
2144. E boolean FDECL(worm_known, (struct monst *));
2145. 
2146. /* ### worn.c ### */
2147. 
2148. E void FDECL(setworn, (struct obj *,long));
2149. E void FDECL(setnotworn, (struct obj *));
2150. E void FDECL(mon_set_minvis, (struct monst *));
2151. E void FDECL(mon_adjust_speed, (struct monst *,int));
2152. E void FDECL(update_mon_intrinsics, (struct monst *,struct obj *,BOOLEAN_P));
2153. E int FDECL(find_mac, (struct monst *));
2154. E void FDECL(m_dowear, (struct monst *,BOOLEAN_P));
2155. E struct obj *FDECL(which_armor, (struct monst *,long));
2156. E void FDECL(mon_break_armor, (struct monst *));
2157. 
2158. /* ### write.c ### */
2159. 
2160. E int FDECL(dowrite, (struct obj *));
2161. 
2162. /* ### zap.c ### */
2163. 
2164. E int FDECL(bhitm, (struct monst *,struct obj *));
2165. E void FDECL(probe_monster, (struct monst *));
2166. E boolean FDECL(get_obj_location, (struct obj *,xchar *,xchar *,int));
2167. E boolean FDECL(get_mon_location, (struct monst *,xchar *,xchar *,int));
2168. E struct monst *FDECL(revive, (struct obj *));
2169. E int FDECL(unturn_dead, (struct monst *));
2170. E void FDECL(cancel_item, (struct obj *));
2171. E boolean FDECL(drain_item, (struct obj *));
2172. E void FDECL(poly_obj, (struct obj *, int));
2173. E boolean FDECL(obj_resists, (struct obj *,int,int));
2174. E boolean FDECL(obj_shudders, (struct obj *));
2175. E void FDECL(do_osshock, (struct obj *));
2176. E void FDECL(replace_object, (struct obj *, struct obj *));
2177. E int FDECL(bhito, (struct obj *,struct obj *));
2178. E int FDECL(bhitpile, (struct obj *,int (*)(OBJ_P,OBJ_P),int,int));
2179. E int FDECL(zappable, (struct obj *));
2180. E void FDECL(zapnodir, (struct obj *));
2181. E int NDECL(dozap);
2182. E int FDECL(zapyourself, (struct obj *,BOOLEAN_P));
2183. E void FDECL(cancel_monst, (struct monst *,struct obj *,
2184. 			    BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
2185. E void FDECL(weffects, (struct obj *));
2186. E int NDECL(spell_damage_bonus);
2187. E const char *FDECL(exclam, (int force));
2188. E void FDECL(hit, (const char *,struct monst *,const char *));
2189. E void FDECL(miss, (const char *,struct monst *));
2190. E struct monst *FDECL(bhit, (int,int,int,int,int (*)(MONST_P,OBJ_P),
2191. 			     int (*)(OBJ_P,OBJ_P),struct obj *));
2192. E struct monst *FDECL(boomhit, (int,int));
2193. E int FDECL(burn_floor_paper, (int,int,BOOLEAN_P));
2194. E void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int));
2195. E void FDECL(melt_ice, (XCHAR_P,XCHAR_P));
2196. E int FDECL(zap_over_floor, (XCHAR_P,XCHAR_P,int,boolean *));
2197. E void FDECL(fracture_rock, (struct obj *));
2198. E boolean FDECL(break_statue, (struct obj *));
2199. E void FDECL(destroy_item, (int,int));
2200. E int FDECL(destroy_mitem, (struct monst *,int,int));
2201. E int FDECL(resist, (struct monst *,CHAR_P,int,int));
2202. E void NDECL(makewish);
2203. 
2204. #endif /* !MAKEDEFS_C && !LEV_LEX_C */
2205. 
2206. #undef E
2207. 
2208. #endif /* EXTERN_H */