Wikia

Wikihack

Source:SLASH'EM 0.0.7E7F2/extern.h

2,032pages on
this wiki
Talk0

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 [[SLASH'EM 0.0.7E7F2/extern.h#line123]], for example.

The latest source code for vanilla NetHack is at Source code.


The NetHack General Public License applies to screenshots, source code and other content from NetHack.
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 */

Around Wikia's network

Random Wiki