Source:SLASH'EM 0.0.7E7F2/extern.h

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to extern.h from the source code of SLASH'EM 0.0.7E7F2. To link to a particular line, write [[Source:SLASH'EM 0.0.7E7F2/extern.h#line123]], for example.

Source code for vanilla NetHack is at Source code.


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

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

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