Wikihack
Advertisement

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

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