Source:NetHack 3.1.0/extern.h

From NetHackWiki
Revision as of 06:28, 4 March 2008 by Kernigh bot (talk | contribs) (NetHack 3.1.0/extern.h moved to Source:NetHack 3.1.0/extern.h: Robot: moved page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

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

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

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

1.    /*	SCCS Id: @(#)extern.h	3.1	93/01/24	*/
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.   E long *FDECL(alloc, (unsigned int));
13.   
14.   #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
15.   
16.   /* ### allmain.c ### */
17.   
18.   E void NDECL(moveloop);
19.   E void NDECL(stop_occupation);
20.   E void NDECL(display_gamewindows);
21.   E void NDECL(newgame);
22.   
23.   /* ### amiwbench.c ### */
24.   
25.   #ifdef AMIGA
26.   E void NDECL(ami_wbench_init);
27.   E void NDECL(ami_wbench_args);
28.   E int FDECL(ami_wbench_getsave, (int));
29.   E void FDECL(ami_wbench_unlink, (char *));
30.   E int FDECL(ami_wbench_iconsize, (char *));
31.   E void FDECL(ami_wbench_iconwrite, (char *));
32.   E int FDECL(ami_wbench_badopt, (const char *));
33.   E void NDECL(ami_wbench_cleanup);
34.   E void FDECL(getlind, (const char *,char *,const char *));
35.   #endif /* AMIGA */
36.   
37.   /* ### apply.c ### */
38.   
39.   #ifdef OVERLAY
40.   E int NDECL(dig);
41.   #endif
42.   E int NDECL(doapply);
43.   E int NDECL(holetime);
44.   E void NDECL(dighole);
45.   E int NDECL(dorub);
46.   E int NDECL(dojump);
47.   #ifdef WALKIES
48.   E int NDECL(number_leashed);
49.   E void FDECL(o_unleash, (struct obj *));
50.   E void FDECL(m_unleash, (struct monst *));
51.   E void NDECL(unleash_all);
52.   E boolean NDECL(next_to_u);
53.   E struct obj *FDECL(get_mleash, (struct monst *));
54.   E void FDECL(check_leash, (XCHAR_P,XCHAR_P));
55.   #endif
56.   E boolean FDECL(um_dist, (XCHAR_P,XCHAR_P,XCHAR_P));
57.   E boolean FDECL(snuff_candle, (struct obj *));
58.   E boolean FDECL(snuff_lit, (struct obj *));
59.   E void NDECL(check_lamps);
60.   E void FDECL(use_unicorn_horn, (struct obj *));
61.   
62.   /* ### artifact.c ### */
63.   
64.   E void NDECL(init_artifacts);
65.   E void FDECL(save_artifacts, (int));
66.   E void FDECL(restore_artifacts, (int));
67.   E const char *FDECL(artiname, (int));
68.   E struct obj *FDECL(mk_artifact, (struct obj *,ALIGNTYP_P));
69.   E const char *FDECL(artifact_name, (const char *,short *));
70.   E boolean FDECL(exist_artifact, (int,const char *));
71.   E void FDECL(artifact_exists, (struct obj *,const char *,BOOLEAN_P));
72.   E int NDECL(nartifact_exist);
73.   E boolean FDECL(spec_ability, (struct obj *,unsigned));
74.   E boolean FDECL(restrict_name, (struct obj *,const char *));
75.   E boolean FDECL(defends, (int,struct obj *));
76.   E void FDECL(set_artifact_intrinsic, (struct obj *,BOOLEAN_P,long));
77.   E int FDECL(touch_artifact, (struct obj *,struct monst *));
78.   E int FDECL(spec_abon, (struct obj *,struct permonst *));
79.   E int FDECL(spec_dbon, (struct obj *,struct permonst *,int));
80.   E boolean FDECL(artifact_hit, (struct monst *,struct monst *,
81.   				struct obj *,int *,int));
82.   E int NDECL(doinvoke);
83.   
84.   /* ### attrib.c ### */
85.   
86.   E boolean FDECL(adjattrib, (int,int,int));
87.   E void FDECL(change_luck, (SCHAR_P));
88.   E int FDECL(stone_luck, (BOOLEAN_P));
89.   E void FDECL(gainstr, (struct obj *,int));
90.   E void FDECL(losestr, (int));
91.   E void NDECL(restore_attrib);
92.   E void FDECL(exercise, (int,BOOLEAN_P));
93.   E void NDECL(exerchk);
94.   E void FDECL(init_attr, (int));
95.   E void NDECL(redist_attr);
96.   E void FDECL(adjabil, (int,int));
97.   E int NDECL(newhp);
98.   E schar FDECL(acurr, (int));
99.   E schar NDECL(acurrstr);
100.  E void FDECL(adjalign, (int));
101.  
102.  /* ### ball.c ### */
103.  
104.  E void NDECL(ballfall);
105.  E void NDECL(placebc);
106.  E void NDECL(unplacebc);
107.  E int NDECL(bc_order);
108.  E void FDECL(set_bc, (int));
109.  E void FDECL(move_bc, (int,int,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
110.  E boolean FDECL(drag_ball, (XCHAR_P,XCHAR_P,
111.  			    int *,xchar *,xchar *,xchar *,xchar *));
112.  E void FDECL(drop_ball, (XCHAR_P,XCHAR_P));
113.  E void NDECL(drag_down);
114.  
115.  /* ### bones.c ### */
116.  
117.  E void NDECL(savebones);
118.  E int NDECL(getbones);
119.  
120.  /* ### botl.c ### */
121.  
122.  E int FDECL(xlev_to_rank, (int));
123.  E int FDECL(title_to_mon, (const char *,int *,int *));
124.  E void NDECL(max_rank_sz);
125.  E const char *FDECL(rank_of, (unsigned,CHAR_P,BOOLEAN_P));
126.  E void NDECL(bot);
127.  
128.  /* ### cmd.c ### */
129.  
130.  #ifdef OVERLAY
131.  E int NDECL(doextcmd);
132.  #ifdef POLYSELF
133.  E int NDECL(domonability);
134.  #endif /* POLYSELF */
135.  E int NDECL(doprev_message);
136.  E int NDECL(timed_occupation);
137.  #if defined(WIZARD) || defined(EXPLORE_MODE)
138.  E int NDECL(wiz_attributes);
139.  #endif /* WIZARD */
140.  # ifdef EXPLORE_MODE
141.  E int NDECL(enter_explore_mode);
142.  # endif /* EXPLORE_MODE */
143.  #ifdef WIZARD
144.  E int NDECL(wiz_detect);
145.  E int NDECL(wiz_genesis);
146.  E int NDECL(wiz_identify);
147.  E int NDECL(wiz_level_tele);
148.  E int NDECL(wiz_map);
149.  E int NDECL(wiz_where);
150.  E int NDECL(wiz_wish);
151.  #endif /* WIZARD */
152.  #endif /* OVERLAY */
153.  E void NDECL(reset_occupations);
154.  E void FDECL(set_occupation, (int (*)(void),const char *,int));
155.  #ifdef REDO
156.  E char NDECL(pgetchar);
157.  E void FDECL(pushch, (CHAR_P));
158.  E void FDECL(savech, (CHAR_P));
159.  #endif
160.  E void FDECL(rhack, (char *));
161.  E int NDECL(doextlist);
162.  E void FDECL(enlightenment, (BOOLEAN_P));
163.  E int FDECL(xytod, (SCHAR_P,SCHAR_P));
164.  #ifdef WALKIES
165.  E void FDECL(dtoxy, (coord *,int));
166.  #endif
167.  E int FDECL(movecmd, (CHAR_P));
168.  E int FDECL(getdir, (const char *));
169.  E void NDECL(confdir);
170.  E int FDECL(isok, (int,int));
171.  E char NDECL(readchar);
172.  
173.  /* ### dbridge.c ### */
174.  
175.  E boolean FDECL(is_pool, (int,int));
176.  E boolean FDECL(is_lava, (int,int));
177.  E boolean FDECL(is_ice, (int,int));
178.  E int FDECL(is_drawbridge_wall, (int,int));
179.  E boolean FDECL(is_db_wall, (int,int));
180.  E boolean FDECL(find_drawbridge, (int *,int*));
181.  E boolean FDECL(create_drawbridge, (int,int,int,BOOLEAN_P));
182.  E void FDECL(open_drawbridge, (int,int));
183.  E void FDECL(close_drawbridge, (int,int));
184.  E void FDECL(destroy_drawbridge, (int,int));
185.  
186.  /* ### decl.c ### */
187.  
188.  E void NDECL(decl_init);
189.  
190.  /* ### detect.c ### */
191.  
192.  E struct obj *FDECL(o_in, (struct obj*,CHAR_P));
193.  E int FDECL(gold_detect, (struct obj *));
194.  E int FDECL(food_detect, (struct obj *));
195.  E int FDECL(object_detect, (struct obj *,int));
196.  E int FDECL(monster_detect, (struct obj *,int));
197.  E int FDECL(trap_detect, (struct obj *));
198.  E const char *FDECL(level_distance, (d_level *));
199.  E void FDECL(use_crystal_ball, (struct obj *));
200.  E void NDECL(do_mapping);
201.  E void NDECL(do_vicinity_map);
202.  #ifdef OVERLAY
203.  E void FDECL(findone, (int,int,genericptr_t));
204.  E void FDECL(openone, (int,int,genericptr_t));
205.  #endif /* OVERLAY */
206.  E int NDECL(findit);
207.  E int NDECL(openit);
208.  E int FDECL(dosearch0, (int));
209.  E int NDECL(dosearch);
210.  
211.  /* ### display.c ### */
212.  
213.  #ifdef INVISIBLE_OBJECTS
214.  E struct obj * FDECL(vobj_at, (XCHAR_P,XCHAR_P));
215.  #endif /* INVISIBLE_OBJECTS */
216.  E void FDECL(map_background, (XCHAR_P,XCHAR_P,int));
217.  E void FDECL(map_trap, (struct trap *,int));
218.  E void FDECL(map_object, (struct obj *,int));
219.  E void FDECL(unmap_object, (int,int));
220.  E void FDECL(feel_location, (XCHAR_P,XCHAR_P));
221.  E void FDECL(newsym, (XCHAR_P,XCHAR_P));
222.  E void FDECL(shieldeff, (XCHAR_P,XCHAR_P));
223.  E void FDECL(tmp_at, (int,int));
224.  E void FDECL(swallowed, (int));
225.  E void FDECL(under_water, (int));
226.  E void NDECL(see_monsters);
227.  E void NDECL(set_mimic_blocking);
228.  E void NDECL(see_objects);
229.  E void NDECL(curs_on_u);
230.  E int NDECL(doredraw);
231.  E void NDECL(docrt);
232.  E void FDECL(show_glyph, (XCHAR_P,XCHAR_P,int));
233.  E void NDECL(clear_glyph_buffer);
234.  E void FDECL(row_refresh, (int,int,int));
235.  E void NDECL(cls);
236.  E void FDECL(flush_screen, (int));
237.  E int FDECL(back_to_glyph, (XCHAR_P,XCHAR_P));
238.  E int FDECL(zapdir_to_glyph, (int,int,int));
239.  E int FDECL(glyph_at, (XCHAR_P,XCHAR_P));
240.  
241.  /* ### do.c ### */
242.  
243.  #ifdef OVERLAY
244.  E int FDECL(drop, (struct obj *));
245.  E int NDECL(wipeoff);
246.  #endif
247.  E int NDECL(dodrop);
248.  E boolean FDECL(boulder_hits_pool, (struct obj *,int,int,BOOLEAN_P));
249.  E boolean FDECL(flooreffects, (struct obj *,int,int,const char *));
250.  E void FDECL(doaltarobj, (struct obj *));
251.  E boolean FDECL(canletgo, (struct obj *,const char *));
252.  E void FDECL(dropx, (struct obj *));
253.  E void FDECL(dropy, (struct obj *));
254.  E int NDECL(doddrop);
255.  E int NDECL(dodown);
256.  E int NDECL(doup);
257.  #ifdef INSURANCE
258.  E void NDECL(save_currentstate);
259.  #endif
260.  E void FDECL(goto_level, (d_level *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
261.  E void NDECL(deferred_goto);
262.  E void FDECL(revive_corpse, (struct obj *,int,BOOLEAN_P));
263.  E void FDECL(remove_cadavers, (struct obj **));
264.  E int NDECL(donull);
265.  E int NDECL(dowipe);
266.  E struct obj *FDECL(splitobj, (struct obj *,long));
267.  E void FDECL(set_wounded_legs, (long,int));
268.  E void NDECL(heal_legs);
269.  
270.  /* ### do_name.c ### */
271.  
272.  E void FDECL(getpos, (coord *,BOOLEAN_P,const char *));
273.  E struct monst *FDECL(christen_monst, (struct monst *,const char *));
274.  E int NDECL(do_mname);
275.  E struct obj *FDECL(oname, (struct obj *,const char *,int));
276.  E int NDECL(ddocall);
277.  E void FDECL(docall, (struct obj *));
278.  E char *FDECL(x_monnam, (struct monst *,int,const char *,int));
279.  E char *FDECL(l_monnam, (struct monst *));
280.  E char *FDECL(mon_nam, (struct monst *));
281.  E char *FDECL(Monnam, (struct monst *));
282.  E char *FDECL(Adjmonnam, (struct monst *,const char *));
283.  E char *FDECL(Amonnam, (struct monst *));
284.  E char *FDECL(a_monnam, (struct monst *));
285.  E const char *NDECL(rndmonnam);
286.  E const char *NDECL(hcolor);
287.  E char *FDECL(self_pronoun, (const char *,const char *));
288.  #ifdef REINCARNATION
289.  E const char *NDECL(roguename);
290.  #endif
291.  
292.  /* ### do_wear.c ### */
293.  
294.  #ifdef OVERLAY
295.  E int NDECL(Armor_on);
296.  E int NDECL(Boots_on);
297.  E int NDECL(Gloves_on);
298.  E int NDECL(Helmet_on);
299.  E int FDECL(select_off, (struct obj *));
300.  E int NDECL(take_off);
301.  #endif
302.  E void FDECL(off_msg, (struct obj *));
303.  E boolean FDECL(is_helmet, (struct obj *));
304.  E boolean FDECL(is_gloves, (struct obj *));
305.  E boolean FDECL(is_boots, (struct obj *));
306.  E boolean FDECL(is_cloak, (struct obj *));
307.  E boolean FDECL(is_shield, (struct obj *));
308.  E void NDECL(set_wear);
309.  E boolean FDECL(donning, (struct obj *));
310.  E void NDECL(cancel_don);
311.  E int NDECL(Armor_off);
312.  E int NDECL(Armor_gone);
313.  E int NDECL(Helmet_off);
314.  E int NDECL(Gloves_off);
315.  E int NDECL(Boots_off);
316.  E int NDECL(Cloak_off);
317.  E int NDECL(Shield_off);
318.  E void NDECL(Amulet_off);
319.  E void FDECL(Ring_on, (struct obj *));
320.  E void FDECL(Ring_off, (struct obj *));
321.  E void FDECL(Ring_gone, (struct obj *));
322.  E void FDECL(Blindf_on, (struct obj *));
323.  E void FDECL(Blindf_off, (struct obj *));
324.  E int NDECL(dotakeoff);
325.  E int NDECL(doremring);
326.  E int FDECL(cursed, (struct obj *));
327.  E int FDECL(armoroff, (struct obj *));
328.  E int NDECL(dowear);
329.  E int NDECL(doputon);
330.  E void NDECL(find_ac);
331.  E void NDECL(glibr);
332.  E struct obj *NDECL(some_armor);
333.  E void FDECL(erode_armor, (BOOLEAN_P));
334.  E void NDECL(reset_remarm);
335.  E int NDECL(doddoremarm);
336.  E int FDECL(destroy_arm, (struct obj *));
337.  E void FDECL(adj_abon, (struct obj *,SCHAR_P));
338.  
339.  /* ### dog.c ### */
340.  
341.  E void FDECL(initedog, (struct monst *));
342.  E void FDECL(make_familiar, (struct obj *,XCHAR_P,XCHAR_P));
343.  E struct monst *NDECL(makedog);
344.  E void NDECL(losedogs);
345.  E void NDECL(keepdogs);
346.  E void FDECL(migrate_to_level, (struct monst *,XCHAR_P,XCHAR_P));
347.  E int FDECL(dogfood, (struct monst *,struct obj *));
348.  E struct monst *FDECL(tamedog, (struct monst *,struct obj *));
349.  
350.  /* ### dogmove.c ### */
351.  
352.  E int FDECL(dog_move, (struct monst *,int));
353.  #ifdef OVERLAY
354.  E void FDECL(wantdoor, (int,int,genericptr_t));
355.  #endif
356.  
357.  /* ### dokick.c ### */
358.  
359.  E boolean FDECL(ghitm, (struct monst *,struct obj *));
360.  E int NDECL(dokick);
361.  E boolean FDECL(ship_object, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
362.  E void NDECL(obj_delivery);
363.  E xchar FDECL(down_gate, (XCHAR_P,XCHAR_P));
364.  E void FDECL(impact_drop, (struct obj *,XCHAR_P,XCHAR_P,XCHAR_P));
365.  
366.  /* ### dothrow.c ### */
367.  
368.  E int NDECL(dothrow);
369.  E void FDECL(hurtle, (int,int,int));
370.  E int FDECL(throwit, (struct obj *));
371.  E int FDECL(thitmonst, (struct monst *,struct obj *));
372.  E int FDECL(breaks, (struct obj *,BOOLEAN_P));
373.  
374.  
375.  /* ### drawing.c ### */
376.  
377.  E int FDECL(def_char_to_objclass, (CHAR_P));
378.  E int FDECL(def_char_to_monclass, (CHAR_P));
379.  E void FDECL(assign_graphics, (uchar *,int));
380.  E void FDECL(switch_graphics, (int));
381.  #ifdef REINCARNATION
382.  E void FDECL(assign_rogue_graphics, (BOOLEAN_P));
383.  #endif
384.  
385.  
386.  /* ### dungeon.c ### */
387.  
388.  E void FDECL(save_dungeon, (int));
389.  E void FDECL(restore_dungeon, (int));
390.  E void FDECL(insert_branch, (branch *,BOOLEAN_P));
391.  E void NDECL(init_dungeons);
392.  E s_level *FDECL(find_level, (const char *));
393.  E s_level *FDECL(Is_special, (d_level *));
394.  E branch *FDECL(Is_branchlev, (d_level *));
395.  E xchar FDECL(ledger_no, (d_level *));
396.  E xchar NDECL(maxledgerno);
397.  E xchar FDECL(depth, (d_level *));
398.  E xchar FDECL(dunlev, (d_level *));
399.  E xchar FDECL(dunlevs_in_dungeon, (d_level *));
400.  E xchar FDECL(ledger_to_dnum, (XCHAR_P));
401.  E xchar FDECL(ledger_to_dlev, (XCHAR_P));
402.  E xchar FDECL(deepest_lev_reached, (BOOLEAN_P));
403.  E boolean FDECL(on_level, (d_level *,d_level *));
404.  E void FDECL(next_level, (BOOLEAN_P));
405.  E void FDECL(prev_level, (BOOLEAN_P));
406.  E void NDECL(u_on_sstairs);
407.  E void NDECL(u_on_upstairs);
408.  E void NDECL(u_on_dnstairs);
409.  E boolean FDECL(On_stairs, (XCHAR_P,XCHAR_P));
410.  E void FDECL(get_level, (d_level *,int));
411.  E boolean FDECL(Is_botlevel, (d_level *));
412.  E boolean FDECL(Can_fall_thru, (d_level *));
413.  E boolean FDECL(Can_dig_down, (d_level *));
414.  E boolean FDECL(Can_rise_up, (d_level *));
415.  #ifdef MULDGN
416.  E boolean FDECL(In_quest, (d_level *));
417.  E boolean FDECL(In_mines, (d_level *));
418.  E branch *FDECL(dungeon_branch, (const char *));
419.  E boolean FDECL(at_dgn_entrance, (const char *));
420.  #endif
421.  E boolean FDECL(In_hell, (d_level *));
422.  E boolean FDECL(In_tower, (d_level *));
423.  E void FDECL(goto_hell, (BOOLEAN_P,BOOLEAN_P));
424.  E void FDECL(assign_level, (d_level *,d_level *));
425.  E void FDECL(assign_rnd_level, (d_level *,d_level *,int));
426.  E int FDECL(induced_align, (int));
427.  E boolean FDECL(Invocation_lev, (d_level *));
428.  E xchar NDECL(level_difficulty);
429.  #ifdef WIZARD
430.  E void NDECL(print_dungeon);
431.  #endif
432.  
433.  /* ### eat.c ### */
434.  
435.  #ifdef OVERLAY
436.  E int NDECL(eatmdone);
437.  E int NDECL(eatfood);
438.  E int NDECL(opentin);
439.  E int NDECL(unfaint);
440.  #endif
441.  #ifdef POLYSELF
442.  E boolean FDECL(is_edible, (struct obj *));
443.  #endif
444.  E void NDECL(init_uhunger);
445.  E int NDECL(Hear_again);
446.  E void NDECL(reset_eat);
447.  E void FDECL(bill_dummy_object, (struct obj *));
448.  E int NDECL(doeat);
449.  E void NDECL(gethungry);
450.  E void FDECL(morehungry, (int));
451.  E void FDECL(lesshungry, (int));
452.  E boolean NDECL(is_fainted);
453.  E void NDECL(reset_faint);
454.  #if 0
455.  E void NDECL(sync_hunger);
456.  #endif
457.  E void FDECL(newuhs, (BOOLEAN_P));
458.  E struct obj *FDECL(floorfood, (const char *,BOOLEAN_P));
459.  E void NDECL(vomit);
460.  E int FDECL(eaten_stat, (int,struct obj *));
461.  E void FDECL(food_disappears, (struct obj *));
462.  
463.  /* ### end.c ### */
464.  
465.  E int NDECL(done1);
466.  E int NDECL(done2);
467.  #ifdef OVERLAY
468.  E int NDECL(done_intr);
469.  #endif
470.  E void FDECL(done_in_by, (struct monst *));
471.  E void VDECL(panic, (const char *,...)) PRINTF_F(1,2);
472.  E void FDECL(done, (int));
473.  #ifdef NOSAVEONHANGUP
474.  E void NDECL(hangup);
475.  #endif
476.  E void FDECL(container_contents, (struct obj *,BOOLEAN_P,BOOLEAN_P));
477.  E void FDECL(terminate, (int));
478.  
479.  /* ### engrave.c ### */
480.  
481.  E const char *NDECL(random_engraving);
482.  #ifdef ELBERETH
483.  E int FDECL(sengr_at, (const char *,XCHAR_P,XCHAR_P));
484.  #endif
485.  E struct engr *FDECL(engr_at, (XCHAR_P,XCHAR_P));
486.  E void FDECL(u_wipe_engr, (int));
487.  E void FDECL(wipe_engr_at, (XCHAR_P,XCHAR_P,XCHAR_P));
488.  E void FDECL(read_engr_at, (int,int));
489.  E void FDECL(make_engr_at, (int,int,const char *,long,XCHAR_P));
490.  E int NDECL(freehand);
491.  E int NDECL(doengrave);
492.  E void FDECL(save_engravings, (int,int));
493.  E void FDECL(rest_engravings, (int));
494.  
495.  /* ### exper.c ### */
496.  
497.  E long FDECL(newuexp, (unsigned));
498.  E int FDECL(experience, (struct monst *,int));
499.  E void FDECL(more_experienced, (int,int));
500.  E void NDECL(losexp);
501.  E void NDECL(newexplevel);
502.  E void NDECL(pluslvl);
503.  E long NDECL(rndexp);
504.  
505.  /* ### explode.c ### */
506.  
507.  E void FDECL(explode, (int,int,int,int,CHAR_P));
508.  
509.  /* ### extralev.c ### */
510.  
511.  #ifdef REINCARNATION
512.  E void NDECL(makeroguerooms);
513.  E void FDECL(corr, (int,int));
514.  E void NDECL(makerogueghost);
515.  #endif
516.  
517.  /* ### files.c ### */
518.  
519.  E FILE *FDECL(fopen_datafile, (const char *,const char *));
520.  #ifdef MFLOPPY
521.  E void NDECL(set_lock_and_bones);
522.  #endif
523.  E void FDECL(set_levelfile_name, (char *,int));
524.  E int FDECL(create_levelfile, (int));
525.  E int FDECL(open_levelfile, (int));
526.  E void FDECL(delete_levelfile, (int));
527.  E void NDECL(clearlocks);
528.  E int FDECL(create_bonesfile, (d_level*,char **));
529.  E int FDECL(open_bonesfile, (d_level*,char **));
530.  E int FDECL(delete_bonesfile, (d_level*));
531.  E void NDECL(compress_bonesfile);
532.  E void NDECL(set_savefile_name);
533.  #ifdef INSURANCE
534.  E void FDECL(save_savefile_name, (int));
535.  #endif
536.  #if defined(WIZARD) && !defined(MICRO)
537.  E void NDECL(set_error_savefile);
538.  #endif
539.  E int NDECL(create_savefile);
540.  E int NDECL(open_savefile);
541.  E int NDECL(delete_savefile);
542.  E void FDECL(compress, (const char *));
543.  E void FDECL(uncompress, (const char *));
544.  E boolean FDECL(lock_file, (const char *,int));
545.  E void FDECL(unlock_file, (const char *));
546.  E void FDECL(read_config_file, (const char *));
547.  E void FDECL(check_recordfile, (const char *));
548.  
549.  /* ### fountain.c ### */
550.  
551.  E void FDECL(dogushforth, (int));
552.  # ifdef OVERLAY
553.  E void FDECL(gush, (int,int,genericptr_t));
554.  # endif /* OVERLAY */
555.  E void FDECL(dryup, (XCHAR_P,XCHAR_P));
556.  E void NDECL(drinkfountain);
557.  E void FDECL(dipfountain, (struct obj *));
558.  #ifdef SINKS
559.  E void FDECL(breaksink, (int,int));
560.  E void NDECL(drinksink);
561.  #endif
562.  
563.  /* ### hack.c ### */
564.  
565.  E boolean FDECL(revive_nasty, (int,int,const char*));
566.  E void FDECL(movobj, (struct obj *,XCHAR_P,XCHAR_P));
567.  E boolean FDECL(may_dig, (XCHAR_P,XCHAR_P));
568.  E boolean FDECL(invocation_pos, (XCHAR_P,XCHAR_P));
569.  E void NDECL(domove);
570.  E void NDECL(spoteffects);
571.  E char *FDECL(in_rooms, (XCHAR_P,XCHAR_P,int));
572.  E void FDECL(check_special_room, (BOOLEAN_P));
573.  E int NDECL(dopickup);
574.  E void NDECL(lookaround);
575.  E int NDECL(monster_nearby);
576.  E void FDECL(nomul, (int));
577.  E void FDECL(losehp, (int,const char *,BOOLEAN_P));
578.  E int NDECL(weight_cap);
579.  E int NDECL(inv_weight);
580.  E int NDECL(near_capacity);
581.  E int NDECL(max_capacity);
582.  E boolean FDECL(check_capacity, (const char *));
583.  E int NDECL(inv_cnt);
584.  E int FDECL(identify, (struct obj *));
585.  
586.  /* ### hacklib.c ### */
587.  
588.  E boolean FDECL(digit, (CHAR_P));
589.  E boolean FDECL(letter, (CHAR_P));
590.  E char FDECL(highc, (CHAR_P));
591.  E char FDECL(lowc, (CHAR_P));
592.  E char *FDECL(lcase, (char *));
593.  E char *FDECL(eos, (char *));
594.  E char *FDECL(s_suffix, (const char *));
595.  E char *FDECL(xcrypt, (const char *));
596.  E boolean FDECL(onlyspace, (const char *));
597.  E char *FDECL(tabexpand, (char *));
598.  E char *FDECL(visctrl, (CHAR_P));
599.  E const char *FDECL(ordin, (int));
600.  E char *FDECL(sitoa, (int));
601.  E int FDECL(sgn, (int));
602.  E int FDECL(rounddiv, (long,int));
603.  E int FDECL(dist2, (int,int,int,int));
604.  E int FDECL(distmin, (int,int,int,int));
605.  E boolean FDECL(online2, (int,int,int,int));
606.  E boolean FDECL(pmatch, (const char *,const char *));
607.  #ifndef STRNCMPI
608.  E int FDECL(strncmpi, (const char *,const char *,int));
609.  #endif
610.  #ifndef STRSTRI
611.  # ifndef GCC_WARN
612.  E  char *FDECL(strstri, (const char *,const char *));
613.  # else
614.  E  char *FDECL(strstri, (char *,const char *));
615.  # endif
616.  #endif
617.  E void NDECL(setrandom);
618.  E int NDECL(getyear);
619.  E char *NDECL(get_date);
620.  E int NDECL(phase_of_the_moon);
621.  E boolean NDECL(friday_13th);
622.  E int NDECL(night);
623.  E int NDECL(midnight);
624.  
625.  /* ### invent.c ### */
626.  
627.  #ifdef OVERLAY
628.  E int FDECL(ckunpaid, (struct obj *));
629.  #endif
630.  E struct obj *FDECL(addinv, (struct obj *));
631.  E struct obj *FDECL(hold_another_object,
632.  			(struct obj *,const char *,const char *,const char *));
633.  E void FDECL(useup, (struct obj *));
634.  E void FDECL(freeinv, (struct obj *));
635.  E void FDECL(delallobj, (int,int));
636.  E void FDECL(delobj, (struct obj *));
637.  E void FDECL(freeobj, (struct obj *));
638.  E struct obj *FDECL(sobj_at, (int,int,int));
639.  E int FDECL(carried, (struct obj *));
640.  E struct obj *FDECL(carrying, (int));
641.  E boolean NDECL(have_lizard);
642.  E struct obj *FDECL(o_on, (unsigned int,struct obj *));
643.  E boolean FDECL(obj_here, (struct obj *,int,int));
644.  E struct obj *FDECL(g_at, (int,int));
645.  E struct obj *FDECL(mkgoldobj, (long));
646.  E struct obj *FDECL(getobj, (const char *,const char *));
647.  E int FDECL(ggetobj, (const char *,int (*)(OBJ_P),int));
648.  E int FDECL(askchain, (struct obj **,const char *,int,int (*)(OBJ_P),
649.  			int (*)(OBJ_P),int,const char *));
650.  E void FDECL(prinv, (const char *,struct obj *,long));
651.  E char *FDECL(xprname, (struct obj *,CHAR_P,BOOLEAN_P,long));
652.  E int NDECL(ddoinv);
653.  E char FDECL(display_inventory, (const char *,BOOLEAN_P));
654.  E int NDECL(dotypeinv);
655.  E int NDECL(dolook);
656.  E void FDECL(stackobj, (struct obj *));
657.  E int NDECL(doprgold);
658.  E int NDECL(doprwep);
659.  E int NDECL(doprarm);
660.  E int NDECL(doprring);
661.  E int NDECL(dopramulet);
662.  E int NDECL(doprtool);
663.  E void FDECL(useupf, (struct obj *));
664.  E char *FDECL(let_to_name, (CHAR_P,BOOLEAN_P));
665.  E void NDECL(reassign);
666.  E int NDECL(doorganize);
667.  E int FDECL(count_unpaid, (struct obj *));
668.  
669.  /* ### ioctl.c ### */
670.  
671.  #ifdef UNIX
672.  E void NDECL(getwindowsz);
673.  E void NDECL(getioctls);
674.  E void NDECL(setioctls);
675.  # ifdef SUSPEND
676.  E int NDECL(dosuspend);
677.  # endif /* SUSPEND */
678.  #endif /* UNIX */
679.  
680.  /* ### lock.c ### */
681.  
682.  #ifdef OVERLAY
683.  E int NDECL(forcelock);
684.  E int NDECL(picklock);
685.  #endif
686.  E boolean FDECL(picking_at, (int,int));
687.  E void NDECL(reset_pick);
688.  E int FDECL(pick_lock, (struct obj *));
689.  E int NDECL(doforce);
690.  E boolean FDECL(boxlock, (struct obj *,struct obj *));
691.  E boolean FDECL(doorlock, (struct obj *,int,int));
692.  E int NDECL(doopen);
693.  E int NDECL(doclose);
694.  
695.  #ifdef MAC
696.  
697.  /* ### macerrs.c ### */
698.  
699.  E void FDECL(comment, (char *,long));
700.  E void FDECL(showerror, (char *,const char *));
701.  E Boolean FDECL(itworked, (short));
702.  E void FDECL(mustwork, (short));
703.  E void FDECL(attemptingto, (char *));
704.  E void FDECL(pushattemptingto, (char *));
705.  E void NDECL(popattempt);
706.  
707.  /* ### macfile.c ### */
708.  
709.  E int FDECL(maccreat, (const char *,long));
710.  E int FDECL(macopen, (const char *,int,long));
711.  E int FDECL(macclose, (int));
712.  E int FDECL(macread, (int,void *,unsigned));
713.  E int FDECL(macwrite, (int,void *,unsigned));
714.  E long FDECL(macseek, (int,long,short));
715.  
716.  /* ### macmain.c ### */
717.  
718.  E void NDECL(UnloadAllSegments);
719.  
720.  /* ### macsnd.c ### */
721.  
722.  E void FDECL(mac_speaker, (struct obj *,char *));
723.  
724.  /* ### mactopl.c ### */
725.  
726.  E void FDECL(addtopl, (const char *));
727.  E void FDECL(update_topl, (const char *));
728.  
729.  /* ### macunix.c ### */
730.  
731.  E int FDECL(uptodate, (int));
732.  E void FDECL(regularize, (char *));
733.  E void NDECL(getlock);
734.  
735.  /* ### macwin.c ### */
736.  
737.  E void FDECL(addToKeyQueue, (int,Boolean));
738.  
739.  /* ### maccurs.c ### */
740.  
741.  E int FDECL(clickSector, (int,int,int,int));
742.  
743.  
744.  #endif /* MAC */
745.  
746.  /* ### mail.c ### */
747.  
748.  #ifdef MAIL
749.  # ifdef UNIX
750.  E void NDECL(getmailstatus);
751.  # endif
752.  E void NDECL(ckmailstatus);
753.  E void FDECL(readmail, (struct obj *));
754.  #endif /* MAIL */
755.  
756.  /* ### makemon.c ### */
757.  
758.  E struct monst *FDECL(makemon, (struct permonst *,int,int));
759.  E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
760.  E int FDECL(goodpos, (int,int,struct monst *,struct permonst *));
761.  E void FDECL(rloc, (struct monst *));
762.  E void FDECL(rloc_to, (struct monst *,int,int));
763.  E void FDECL(rloc_shk, (struct monst *));
764.  E void FDECL(vloc, (struct monst *));
765.  E struct permonst *NDECL(rndmonst);
766.  E struct permonst *FDECL(mkclass, (CHAR_P,int));
767.  E int FDECL(adj_lev, (struct permonst *));
768.  E struct permonst *FDECL(grow_up, (struct monst *,struct monst *));
769.  E int FDECL(mongets, (struct monst *,int));
770.  E int FDECL(golemhp, (int));
771.  E boolean FDECL(peace_minded, (struct permonst *));
772.  E void FDECL(set_malign, (struct monst *));
773.  E void FDECL(set_mimic_sym, (struct monst *));
774.  
775.  /* ### mcastu.c ### */
776.  
777.  E int FDECL(castmu, (struct monst *,struct attack *));
778.  E int FDECL(buzzmu, (struct monst *,struct attack *));
779.  
780.  /* ### mhitm.c ### */
781.  
782.  E int FDECL(fightm, (struct monst *));
783.  E int FDECL(mattackm, (struct monst *,struct monst *));
784.  E int FDECL(noattacks, (struct permonst *));
785.  
786.  /* ### mhitu.c ### */
787.  
788.  #ifdef POLYSELF
789.  E struct monst *NDECL(cloneu);
790.  #endif
791.  E void FDECL(expels, (struct monst *,struct permonst *,BOOLEAN_P));
792.  E int FDECL(mattacku, (struct monst *));
793.  E void FDECL(mdamageu, (struct monst *,int));
794.  E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *));
795.  #ifdef SEDUCE
796.  E int FDECL(doseduce, (struct monst *));
797.  #endif
798.  
799.  /* ### minion.c ### */
800.  
801.  E void FDECL(msummon, (struct permonst *));
802.  E void FDECL(summon_minion, (ALIGNTYP_P,BOOLEAN_P));
803.  E int FDECL(demon_talk, (struct monst *));
804.  E long FDECL(bribe, (struct monst *));
805.  E int NDECL(dprince);
806.  E int NDECL(dlord);
807.  E int NDECL(llord);
808.  E int NDECL(ndemon);
809.  E int NDECL(lminion);
810.  
811.  /* ### mklev.c ### */
812.  
813.  #ifdef OVERLAY
814.  E int FDECL(do_comp, (genericptr_t,genericptr_t));
815.  #endif
816.  E void NDECL(sort_rooms);
817.  E void FDECL(add_room, (int,int,int,int,BOOLEAN_P,SCHAR_P,BOOLEAN_P));
818.  E void FDECL(add_subroom, (struct mkroom *,int,int,int,int,
819.  			   BOOLEAN_P,SCHAR_P,BOOLEAN_P));
820.  E void NDECL(makecorridors);
821.  E void FDECL(add_door, (int,int,struct mkroom *));
822.  E void NDECL(mklev);
823.  #ifdef SPECIALIZATION
824.  E void FDECL(topologize, (struct mkroom *,BOOLEAN_P));
825.  #else
826.  E void FDECL(topologize, (struct mkroom *));
827.  #endif
828.  E void FDECL(place_branch, (branch *,XCHAR_P,XCHAR_P));
829.  E boolean FDECL(occupied, (XCHAR_P,XCHAR_P));
830.  E int FDECL(okdoor, (XCHAR_P,XCHAR_P));
831.  E void FDECL(dodoor, (int,int,struct mkroom *));
832.  E void FDECL(mktrap, (int,int,struct mkroom *,coord*));
833.  E void FDECL(mkstairs, (XCHAR_P,XCHAR_P,CHAR_P,struct mkroom *));
834.  E void NDECL(mkinvokearea);
835.  
836.  /* ### mkmap.c ### */
837.  
838.  void FDECL(flood_fill_rm, (int,int,int,BOOLEAN_P,BOOLEAN_P));
839.  
840.  /* ### mkmaze.c ### */
841.  
842.  E void FDECL(wallification, (int,int,int,int));
843.  E void FDECL(walkfrom, (int,int));
844.  E void FDECL(makemaz, (const char *));
845.  E void FDECL(move, (int *,int *,int));
846.  E void FDECL(mazexy, (coord *));
847.  E void NDECL(bound_digging);
848.  E void FDECL(mkportal, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
849.  E boolean FDECL(bad_location, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
850.  E void FDECL(place_lregion, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
851.  			     XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
852.  			     XCHAR_P,d_level *));
853.  E void NDECL(movebubbles);
854.  E void NDECL(water_friction);
855.  E void FDECL(save_waterlevel, (int));
856.  E void FDECL(restore_waterlevel, (int));
857.  
858.  /* ### mkobj.c ### */
859.  
860.  E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
861.  E struct obj *FDECL(mksobj_at, (int,int,int,BOOLEAN_P));
862.  E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
863.  E int NDECL(rndmonnum);
864.  E struct obj *FDECL(mksobj, (int,BOOLEAN_P,BOOLEAN_P));
865.  E int FDECL(weight, (struct obj *));
866.  E void FDECL(mkgold, (long,int,int));
867.  E struct obj *FDECL(mkcorpstat, (int,struct permonst *,int,int,BOOLEAN_P));
868.  E struct obj *FDECL(mk_tt_object, (int,int,int));
869.  E struct obj *FDECL(mk_named_object, (int,struct permonst *,int,int,char *,int));
870.  E void FDECL(bless, (struct obj *));
871.  E void FDECL(unbless, (struct obj *));
872.  E void FDECL(curse, (struct obj *));
873.  E void FDECL(uncurse, (struct obj *));
874.  E void FDECL(blessorcurse, (struct obj *,int));
875.  E boolean FDECL(is_flammable, (struct obj *));
876.  E void FDECL(place_object, (struct obj *,int,int));
877.  E void FDECL(move_object, (struct obj *,int,int));
878.  E void FDECL(remove_object, (struct obj *));
879.  E int FDECL(bcsign, (struct obj *));
880.  
881.  /* ### mkroom.c ### */
882.  
883.  E void FDECL(mkroom, (int));
884.  E void FDECL(fill_zoo, (struct mkroom *));
885.  E boolean FDECL(nexttodoor, (int,int));
886.  E boolean FDECL(has_dnstairs, (struct mkroom *));
887.  E boolean FDECL(has_upstairs, (struct mkroom *));
888.  E int FDECL(somex, (struct mkroom *));
889.  E int FDECL(somey, (struct mkroom *));
890.  E boolean FDECL(inside_room, (struct mkroom *,XCHAR_P,XCHAR_P));
891.  E boolean FDECL(somexy, (struct mkroom *,coord *));
892.  E void FDECL(mkundead, (coord *));
893.  E struct permonst *NDECL(courtmon);
894.  E void FDECL(save_rooms, (int));
895.  E void FDECL(rest_rooms, (int));
896.  E struct mkroom *FDECL(search_special, (SCHAR_P));
897.  
898.  /* ### mon.c ### */
899.  
900.  E int FDECL(minwater, (struct monst *));
901.  E void NDECL(movemon);
902.  E void FDECL(meatgold, (struct monst *));
903.  E void FDECL(meatobj, (struct monst *));
904.  E void FDECL(mpickgold, (struct monst *));
905.  E void FDECL(mpickgems, (struct monst *));
906.  E void FDECL(mpickstuff, (struct monst *,const char *));
907.  E int FDECL(curr_mon_load, (struct monst *));
908.  E int FDECL(max_mon_load, (struct monst *));
909.  E boolean FDECL(can_carry, (struct monst *,struct obj *));
910.  E int FDECL(mfndpos, (struct monst *,coord *,long *,long));
911.  E boolean FDECL(monnear, (struct monst *,int,int));
912.  E void FDECL(monfree, (struct monst *));
913.  E void FDECL(replmon, (struct monst *,struct monst *));
914.  E void FDECL(relmon, (struct monst *));
915.  E void FDECL(mondead, (struct monst *));
916.  E void FDECL(mondied, (struct monst *));
917.  E void FDECL(mongone, (struct monst *));
918.  E void FDECL(monstone, (struct monst *));
919.  E void FDECL(monkilled, (struct monst *,const char *,UCHAR_P));
920.  E void FDECL(unstuck, (struct monst *));
921.  E void FDECL(killed, (struct monst *));
922.  E void FDECL(xkilled, (struct monst *,int));
923.  E void FDECL(mon_to_stone, (struct monst*));
924.  E void FDECL(mnexto, (struct monst *));
925.  E boolean FDECL(mnearto, (struct monst *,XCHAR_P,XCHAR_P,BOOLEAN_P));
926.  E void FDECL(poisontell, (int));
927.  E void FDECL(poisoned, (const char *,int,const char *,int));
928.  E void FDECL(m_respond, (struct monst *));
929.  E void FDECL(setmangry, (struct monst *));
930.  E void FDECL(wakeup, (struct monst *));
931.  E void NDECL(wake_nearby);
932.  E void FDECL(seemimic, (struct monst *));
933.  E void NDECL(rescham);
934.  E void NDECL(restartcham);
935.  E int FDECL(newcham, (struct monst *,struct permonst *));
936.  E void FDECL(golemeffects, (struct monst *,int,int));
937.  E boolean FDECL(angry_guards, (BOOLEAN_P));
938.  E void NDECL(pacify_guards);
939.  
940.  /* ### mondata.c ### */
941.  
942.  E boolean FDECL(attacktype, (struct permonst *,int));
943.  E boolean FDECL(poly_when_stoned, (struct permonst *));
944.  E boolean FDECL(resists_drli, (struct permonst *));
945.  E boolean FDECL(ranged_attk, (struct permonst *));
946.  E boolean FDECL(hates_silver, (struct permonst *));
947.  E boolean FDECL(can_track, (struct permonst *));
948.  #ifdef POLYSELF
949.  E boolean FDECL(breakarm, (struct permonst *));
950.  E boolean FDECL(sliparm, (struct permonst *));
951.  #endif
952.  E boolean FDECL(sticks, (struct permonst *));
953.  /* E boolean FDECL(canseemon, (struct monst *)); */
954.  E boolean FDECL(dmgtype, (struct permonst *,int));
955.  E int FDECL(max_passive_dmg, (struct monst *,struct monst *));
956.  E int FDECL(monsndx, (struct permonst *));
957.  E int FDECL(name_to_mon, (char *));
958.  #ifdef POLYSELF
959.  E boolean FDECL(webmaker, (struct permonst *));
960.  #endif
961.  E int FDECL(gender, (struct monst *));
962.  E boolean FDECL(levl_follower, (struct monst *));
963.  E struct permonst *NDECL(player_mon);
964.  E int FDECL(little_to_big, (int));
965.  E int FDECL(big_to_little, (int));
966.  E const char *FDECL(locomotion, (const struct permonst *,const char *));
967.  
968.  /* ### monmove.c ### */
969.  
970.  # ifdef POLYSELF
971.  E boolean FDECL(itsstuck, (struct monst *));
972.  # endif
973.  E boolean FDECL(mb_trapped, (struct monst *));
974.  E int FDECL(dochugw, (struct monst *));
975.  E boolean FDECL(onscary, (int,int,struct monst *));
976.  E int FDECL(dochug, (struct monst *));
977.  E int FDECL(m_move, (struct monst *,int));
978.  E boolean FDECL(closed_door, (int,int));
979.  E boolean FDECL(accessible, (int,int));
980.  E void FDECL(set_apparxy, (struct monst *));
981.  
982.  /* ### monst.c ### */
983.  
984.  E void NDECL(monst_init);
985.  
986.  /* ### monstr.c ### */
987.  
988.  E void NDECL(monstr_init);
989.  
990.  /* ### mplayer.c ### */
991.  
992.  E struct monst *FDECL(mk_mplayer, (struct permonst *,XCHAR_P,
993.  				   XCHAR_P,BOOLEAN_P));
994.  E void FDECL(create_mplayers, (int,BOOLEAN_P));
995.  E void FDECL(mplayer_talk, (struct monst *));
996.  
997.  #ifdef MICRO
998.  
999.  /* ### msdos.c,os2.c,tos.c ### */
1000. 
1001. E int NDECL(tgetch);
1002. #  ifndef TOS
1003. E char NDECL(switchar);
1004. #  endif
1005. # ifndef __GO32__
1006. E long FDECL(freediskspace, (char *));
1007. E int FDECL(findfirst, (char *));
1008. E int NDECL(findnext);
1009. E char *NDECL(foundfile_buffer);
1010. E long FDECL(filesize, (char *));
1011. # endif /* __GO32__ */
1012. E void FDECL(chdrive, (char *));
1013. # ifndef TOS
1014. E void NDECL(disable_ctrlP);
1015. E void NDECL(enable_ctrlP);
1016. # endif
1017. # if defined(MICRO) && !defined(AMIGA)
1018. E void NDECL(get_scr_size);
1019. #  ifndef TOS
1020. E void FDECL(gotoxy, (int,int));
1021. #  endif
1022. # endif
1023. # ifdef TOS
1024. E int FDECL(_copyfile, (char *,char *));
1025. E int NDECL(kbhit);
1026. E void NDECL(set_colors);
1027. E void NDECL(restore_colors);
1028. #  ifdef SUSPEND
1029. E int NDECL(dosuspend);
1030. #  endif
1031. # endif /* TOS */
1032. 
1033. #endif /* MICRO */
1034. 
1035. /* ### mthrowu.c ### */
1036. 
1037. E int FDECL(thitu, (int,int,struct obj *,const char *));
1038. E void FDECL(thrwmu, (struct monst *));
1039. E int FDECL(spitmu, (struct monst *,struct attack *));
1040. E int FDECL(breamu, (struct monst *,struct attack *));
1041. E boolean FDECL(linedup, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
1042. E boolean FDECL(lined_up, (struct monst *));
1043. E struct obj *FDECL(m_carrying, (struct monst *,int));
1044. E void FDECL(m_useup, (struct monst *,struct obj *));
1045. #ifdef MUSE
1046. E void FDECL(m_throw, (struct monst *,int,int,int,int,int,struct obj *));
1047. #endif
1048. 
1049. /* ### muse.c ### */
1050. 
1051. #ifdef MUSE
1052. E boolean FDECL(find_defensive, (struct monst *));
1053. E int FDECL(use_defensive, (struct monst *));
1054. E int FDECL(rnd_defensive_item, (struct monst *));
1055. E boolean FDECL(find_offensive, (struct monst *));
1056. E int FDECL(use_offensive, (struct monst *));
1057. E int FDECL(rnd_offensive_item, (struct monst *));
1058. E boolean FDECL(find_misc, (struct monst *));
1059. E int FDECL(use_misc, (struct monst *));
1060. E int FDECL(rnd_misc_item, (struct monst *));
1061. E boolean FDECL(searches_for_item, (struct monst *,struct obj *));
1062. #endif
1063. 
1064. /* ### music.c ### */
1065. 
1066. E void NDECL(awaken_soldiers);
1067. E int FDECL(do_play_instrument, (struct obj *));
1068. 
1069. /* ### o_init.c ### */
1070. 
1071. E int FDECL(letindex, (CHAR_P));
1072. E void NDECL(init_objects);
1073. E int NDECL(find_skates);
1074. E void NDECL(oinit);
1075. E void FDECL(savenames, (int));
1076. E void FDECL(restnames, (int));
1077. E void FDECL(discover_object, (int,BOOLEAN_P));
1078. E void FDECL(undiscover_object, (int));
1079. E int NDECL(dodiscovered);
1080. 
1081. /* ### objects.c ### */
1082. 
1083. E void NDECL(objects_init);
1084. 
1085. /* ### objnam.c ### */
1086. 
1087. E char *FDECL(typename, (int));
1088. E boolean FDECL(obj_is_pname, (struct obj *));
1089. E char *FDECL(distant_name, (struct obj *,char *(*)(OBJ_P)));
1090. E char *FDECL(xname, (struct obj *));
1091. E char *FDECL(doname, (struct obj *));
1092. E char *FDECL(singular, (struct obj *,char *(*)(OBJ_P)));
1093. E char *FDECL(an, (const char *));
1094. E char *FDECL(An, (const char *));
1095. E char *FDECL(The, (const char *));
1096. E char *FDECL(the, (const char *));
1097. E char *FDECL(aobjnam, (struct obj *,const char *));
1098. E char *FDECL(Doname2, (struct obj *));
1099. E char *FDECL(makeplural, (const char *));
1100. E char *FDECL(makesingular, (const char *));
1101. E struct obj *FDECL(readobjnam, (char *));
1102. E int FDECL(rnd_class, (int,int));
1103. 
1104. /* ### options.c ### */
1105. 
1106. E void NDECL(initoptions);
1107. E void FDECL(parseoptions, (char *,BOOLEAN_P,BOOLEAN_P));
1108. E int NDECL(doset);
1109. E int NDECL(dotogglepickup);
1110. E void NDECL(option_help);
1111. E void FDECL(next_opt, (winid,const char *));
1112. #ifdef TUTTI_FRUTTI
1113. E int FDECL(fruitadd, (char *));
1114. #endif
1115. 
1116. /* ### pager.c ### */
1117. 
1118. E int NDECL(dowhatis);
1119. E int NDECL(doquickwhatis);
1120. E int NDECL(doidtrap);
1121. E int NDECL(dowhatdoes);
1122. E int NDECL(dohelp);
1123. E int NDECL(dohistory);
1124. 
1125. /* ### pcmain.c ### */
1126. 
1127. #if defined(MICRO)
1128. # ifdef CHDIR
1129. E void FDECL(chdirx, (char *,BOOLEAN_P));
1130. # endif /* CHDIR */
1131. #endif /* MICRO */
1132. 
1133. /* ### pcsys.c ### */
1134. 
1135. #ifdef MICRO
1136. E void NDECL(flushout);
1137. E int NDECL(dosh);
1138. # ifdef MFLOPPY
1139. E void FDECL(eraseall, (const char *,const char *));
1140. E void FDECL(copybones, (int));
1141. E void NDECL(playwoRAMdisk);
1142. E int FDECL(saveDiskPrompt, (int));
1143. E void NDECL(gameDiskPrompt);
1144. # endif
1145. E void FDECL(append_slash, (char *));
1146. E void FDECL(getreturn, (const char *));
1147. E void VDECL(msmsg, (const char *,...));
1148. E FILE *FDECL(fopenp, (const char *,const char *));
1149. E void FDECL(msexit, (int));
1150. #endif /* MICRO */
1151. 
1152. /* ### pctty.c ### */
1153. 
1154. #if defined(MICRO)
1155. E void NDECL(gettty);
1156. E void FDECL(settty, (const char *));
1157. E void NDECL(setftty);
1158. E void VDECL(error, (const char *,...));
1159. #endif /* MICRO */
1160. 
1161. /* ### pcunix.c ### */
1162. 
1163. #if defined(MICRO)
1164. E void FDECL(gethdate, (char *));
1165. E int FDECL(uptodate, (int));
1166. E void FDECL(regularize, (char *));
1167. #endif /* MICRO */
1168. 
1169. /* ### pickup.c ### */
1170. 
1171. E int FDECL(collect_obj_classes, (char *,struct obj *,BOOLEAN_P,BOOLEAN_P));
1172. #ifdef OVERLAY
1173. E int FDECL(ck_bag, (struct obj *));
1174. E int FDECL(in_container, (struct obj *));
1175. E int FDECL(out_container, (struct obj *));
1176. #endif
1177. E void FDECL(pickup, (int));
1178. E struct obj *FDECL(pick_obj, (struct obj *));
1179. E int NDECL(encumber_msg);
1180. E int NDECL(doloot);
1181. E int FDECL(use_container, (struct obj *,int));
1182. 
1183. /* ### pline.c ### */
1184. 
1185. E void VDECL(pline, (const char *,...)) PRINTF_F(1,2);
1186. E void VDECL(Norep, (const char *,...)) PRINTF_F(1,2);
1187. E void VDECL(You, (const char *,...)) PRINTF_F(1,2);
1188. E void VDECL(Your, (const char *,...)) PRINTF_F(1,2);
1189. E void VDECL(verbalize, (const char *,...)) PRINTF_F(1,2);
1190. E void VDECL(raw_printf, (const char *,...)) PRINTF_F(1,2);
1191. E void VDECL(impossible, (const char *,...)) PRINTF_F(1,2);
1192. E const char *FDECL(align_str, (ALIGNTYP_P));
1193. E void FDECL(mstatusline, (struct monst *));
1194. E void NDECL(ustatusline);
1195. 
1196. /* ### polyself.c ### */
1197. 
1198. E void NDECL(change_sex);
1199. E void NDECL(newman);
1200. #ifdef POLYSELF
1201. E void NDECL(polyself);
1202. E int FDECL(polymon, (int));
1203. E void NDECL(rehumanize);
1204. E int NDECL(dobreathe);
1205. E int NDECL(dospit);
1206. E int NDECL(doremove);
1207. E int NDECL(dospinweb);
1208. E int NDECL(dosummon);
1209. E int NDECL(doconfuse);
1210. E int NDECL(dohide);
1211. E int NDECL(domindblast);
1212. #endif
1213. E const char *FDECL(body_part, (int));
1214. E int NDECL(poly_gender);
1215. #ifdef POLYSELF
1216. E void FDECL(ugolemeffects, (int,int));
1217. #endif
1218. 
1219. /* ### potion.c ### */
1220. 
1221. E void FDECL(make_confused, (long,BOOLEAN_P));
1222. E void FDECL(make_stunned, (long,BOOLEAN_P));
1223. E void FDECL(make_blinded, (long,BOOLEAN_P));
1224. E void FDECL(make_sick, (long,BOOLEAN_P));
1225. E void FDECL(make_vomiting, (long,BOOLEAN_P));
1226. E void FDECL(make_hallucinated, (long,BOOLEAN_P,long));
1227. E int NDECL(dodrink);
1228. E int FDECL(dopotion, (struct obj *));
1229. E int FDECL(peffects, (struct obj *));
1230. E void FDECL(healup, (int,int,BOOLEAN_P,BOOLEAN_P));
1231. E void FDECL(strange_feeling, (struct obj *,const char *));
1232. E void FDECL(potionhit, (struct monst *,struct obj *));
1233. E void FDECL(potionbreathe, (struct obj *));
1234. E boolean FDECL(get_wet, (struct obj *));
1235. E int NDECL(dodip);
1236. E void FDECL(djinni_from_bottle, (struct obj *));
1237. 
1238. /* ### pray.c ### */
1239. 
1240. #ifdef OVERLAY
1241. E int NDECL(prayer_done);
1242. #endif
1243. E int NDECL(dosacrifice);
1244. E int NDECL(dopray);
1245. E const char *NDECL(u_gname);
1246. E int NDECL(doturn);
1247. E const char *NDECL(a_gname);
1248. E const char *FDECL(a_gname_at, (XCHAR_P x,XCHAR_P y));
1249. E const char *FDECL(align_gname, (ALIGNTYP_P));
1250. E void FDECL(altar_wrath, (int,int));
1251. 
1252. 
1253. /* ### priest.c ### */
1254. 
1255. E int FDECL(move_special, (struct monst *,BOOLEAN_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P,
1256. 			   XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
1257. E char FDECL(temple_occupied, (char *));
1258. E int FDECL(pri_move, (struct monst *));
1259. E void FDECL(priestini, (d_level *,struct mkroom *,int,int,BOOLEAN_P));
1260. E char *FDECL(priestname, (struct monst *));
1261. E boolean FDECL(p_coaligned, (struct monst *));
1262. E struct monst *FDECL(findpriest, (CHAR_P));
1263. E void FDECL(intemple, (int));
1264. E void FDECL(priest_talk, (struct monst *));
1265. E struct monst *FDECL(mk_roamer, (struct permonst *,ALIGNTYP_P,
1266. 				  XCHAR_P,XCHAR_P,BOOLEAN_P));
1267. E void FDECL(reset_hostility, (struct monst *));
1268. E boolean FDECL(in_your_sanctuary, (XCHAR_P,XCHAR_P));
1269. E void FDECL(ghod_hitsu, (struct monst *));
1270. E void NDECL(angry_priest);
1271. 
1272. #ifdef MULDGN
1273. /* ### quest.c ### */
1274. 
1275. E void NDECL(quest_init);
1276. E void NDECL(onquest);
1277. E void NDECL(nemdead);
1278. E void NDECL(artitouch);
1279. E boolean NDECL(ok_to_quest);
1280. E void FDECL(leader_speaks, (struct monst *));
1281. E void NDECL(nemesis_speaks);
1282. E void FDECL(quest_chat, (struct monst *));
1283. E void FDECL(quest_talk, (struct monst *));
1284. E void FDECL(quest_stat_check, (struct monst *));
1285. 
1286. /* ### questpgr.c ### */
1287. 
1288. E void NDECL(load_qtlist);
1289. E boolean FDECL(is_quest_artifact, (struct obj*));
1290. E void FDECL(com_pager, (int));
1291. E void FDECL(qt_pager, (int));
1292. E struct permonst *NDECL(qt_montype);
1293. E const char *NDECL(ldrname);
1294. E boolean NDECL(leaderless);
1295. #endif
1296. 
1297. /* ### random.c ### */
1298. 
1299. #if defined(RANDOM) && !defined(__GO32__) /* djgpp has its own random */
1300. E void FDECL(srandom, (unsigned));
1301. E char *FDECL(initstate, (unsigned,char *,int));
1302. E char *FDECL(setstate, (char *));
1303. E long NDECL(random);
1304. #endif /* RANDOM */
1305. 
1306. /* ### read.c ### */
1307. 
1308. E int NDECL(doread);
1309. E void FDECL(recharge, (struct obj *,int));
1310. E int FDECL(seffects, (struct obj *));
1311. #ifdef OVERLAY
1312. E void FDECL(set_lit, (int,int,genericptr_t));
1313. #endif /* OVERLAY */
1314. E void FDECL(litroom, (BOOLEAN_P,struct obj *));
1315. E void FDECL(do_genocide, (int));
1316. E void FDECL(punish, (struct obj *));
1317. E void NDECL(unpunish);
1318. E boolean FDECL(cant_create, (int *));
1319. #if defined(WIZARD) || defined(EXPLORE_MODE)
1320. E boolean NDECL(create_particular);
1321. #endif
1322. 
1323. /* ### rect.c ### */
1324. 
1325. E void NDECL(init_rect);
1326. E NhRect *FDECL(get_rect, (NhRect *));
1327. E NhRect *NDECL(rnd_rect);
1328. E void FDECL(remove_rect, (NhRect *));
1329. E void FDECL(add_rect, (NhRect *));
1330. E void FDECL(split_rects, (NhRect *,NhRect *));
1331. 
1332. /* ### restore.c ### */
1333. 
1334. E int FDECL(dorecover, (int));
1335. E void NDECL(trickery);
1336. E void FDECL(getlev, (int,int,XCHAR_P,BOOLEAN_P));
1337. E void NDECL(minit);
1338. #ifdef ZEROCOMP
1339. E int FDECL(mread, (int,genericptr_t,unsigned int));
1340. #else
1341. E void FDECL(mread, (int,genericptr_t,unsigned int));
1342. #endif
1343. 
1344. /* ### rip.c ### */
1345. 
1346. E void FDECL(outrip, (int,winid));
1347. 
1348. /* ### rnd.c ### */
1349. 
1350. E int FDECL(rn2, (int));
1351. E int FDECL(rnl, (int));
1352. E int FDECL(rnd, (int));
1353. E int FDECL(d, (int,int));
1354. E int FDECL(rne, (int));
1355. E int FDECL(rnz, (int));
1356. 
1357. /* ### rumors.c ### */
1358. 
1359. E char *FDECL(getrumor, (int));
1360. E void FDECL(outrumor, (int,BOOLEAN_P));
1361. E void FDECL(save_oracles, (int));
1362. E void FDECL(restore_oracles, (int));
1363. E int FDECL(doconsult, (struct monst *));
1364. 
1365. /* ### save.c ### */
1366. 
1367. E int NDECL(dosave);
1368. #ifndef NOSAVEONHANGUP
1369. E int NDECL(hangup);
1370. #endif /* NOSAVEONHANGUP */
1371. E int NDECL(dosave0);
1372. #ifdef INSURANCE
1373. E void NDECL(savestateinlock);
1374. #endif
1375. #ifdef MFLOPPY
1376. E boolean FDECL(savelev, (int,XCHAR_P,int));
1377. E boolean FDECL(swapin_file, (int));
1378. E void NDECL(co_false);
1379. #else
1380. E void FDECL(savelev, (int,XCHAR_P,int));
1381. #endif
1382. E void FDECL(bufon, (int));
1383. E void FDECL(bflush, (int));
1384. E void FDECL(bwrite, (int,genericptr_t,unsigned int));
1385. E void FDECL(bclose, (int));
1386. #ifdef TUTTI_FRUTTI
1387. E void FDECL(savefruitchn, (int,int));
1388. #endif
1389. 
1390. /* ### shk.c ### */
1391. 
1392. E char *FDECL(shkname, (struct monst *));
1393. E void FDECL(shkgone, (struct monst *));
1394. E void FDECL(set_residency, (struct monst *,BOOLEAN_P));
1395. E void FDECL(replshk, (struct monst *,struct monst *));
1396. E void FDECL(restshk, (struct monst *));
1397. E int FDECL(inhishop, (struct monst *));
1398. #ifdef SOUNDS
1399. E boolean FDECL(tended_shop, (struct mkroom *));
1400. #endif
1401. E struct monst *FDECL(shop_keeper, (CHAR_P));
1402. E void FDECL(delete_contents, (struct obj *));
1403. E void FDECL(obfree, (struct obj *,struct obj *));
1404. E int NDECL(dopay);
1405. E void FDECL(home_shk, (struct monst *,BOOLEAN_P));
1406. E void FDECL(hot_pursuit, (struct monst *));
1407. E void FDECL(make_happy_shk, (struct monst *,BOOLEAN_P));
1408. E void FDECL(make_angry_shk, (struct monst *,XCHAR_P,XCHAR_P));
1409. E boolean FDECL(paybill, (BOOLEAN_P));
1410. E void FDECL(u_left_shop, (char *,BOOLEAN_P));
1411. E void FDECL(u_entered_shop, (char *));
1412. E void FDECL(pay_for_damage, (const char *));
1413. E long FDECL(unpaid_cost, (struct obj *));
1414. E long FDECL(contained_cost, (struct obj *,struct monst *,long,BOOLEAN_P));
1415. E long FDECL(contained_gold, (struct obj *));
1416. E void FDECL(picked_container, (struct obj *));
1417. E void FDECL(addtobill, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
1418. E void FDECL(splitbill, (struct obj *,struct obj *));
1419. E void FDECL(subfrombill, (struct obj *,struct monst *));
1420. E long FDECL(stolen_value, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P,BOOLEAN_P));
1421. E void FDECL(sellobj_state, (BOOLEAN_P));
1422. E void FDECL(sellobj, (struct obj *,XCHAR_P,XCHAR_P));
1423. E int FDECL(doinvbill, (int));
1424. E int FDECL(shkcatch, (struct obj *,XCHAR_P,XCHAR_P));
1425. E void FDECL(add_damage, (XCHAR_P,XCHAR_P,long));
1426. E char FDECL(repair_damage, (struct monst *,struct damage *));
1427. E int FDECL(shk_move, (struct monst *));
1428. E boolean FDECL(is_fshk, (struct monst *));
1429. E void FDECL(shopdig, (int));
1430. E char FDECL(inside_shop, (XCHAR_P,XCHAR_P));
1431. E boolean FDECL(costly_spot, (XCHAR_P,XCHAR_P));
1432. E struct obj *FDECL(shop_object, (XCHAR_P,XCHAR_P));
1433. E void FDECL(price_quote, (struct obj *));
1434. E void FDECL(check_unpaid, (struct obj *));
1435. E void FDECL(costly_gold, (XCHAR_P,XCHAR_P,long));
1436. E boolean FDECL(block_door, (XCHAR_P,XCHAR_P));
1437. E boolean FDECL(block_entry, (XCHAR_P,XCHAR_P));
1438. 
1439. /* ### shknam.c ### */
1440. 
1441. E void FDECL(stock_room, (int,struct mkroom *));
1442. E boolean FDECL(saleable, (int,struct obj *));
1443. E int FDECL(get_shop_item, (int));
1444. 
1445. /* ### sit.c ### */
1446. 
1447. E void NDECL(take_gold);
1448. E int NDECL(dosit);
1449. E void NDECL(rndcurse);
1450. E void NDECL(attrcurse);
1451. 
1452. /* ### sounds.c ### */
1453. 
1454. #ifdef SOUNDS
1455. E void NDECL(dosounds);
1456. E void FDECL(growl, (struct monst *));
1457. E void FDECL(yelp, (struct monst *));
1458. E void FDECL(whimper, (struct monst *));
1459. #endif
1460. E int NDECL(dotalk);
1461. 
1462. /* ### sp_lev.c ### */
1463. 
1464. E boolean FDECL(check_room, (xchar *,xchar *,xchar *,xchar *,BOOLEAN_P));
1465. E boolean FDECL(create_room, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
1466. 			      XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
1467. E void FDECL(create_secret_door, (struct mkroom *,XCHAR_P));
1468. E boolean FDECL(dig_corridor, (coord,coord,BOOLEAN_P,SCHAR_P,SCHAR_P));
1469. E void FDECL(fill_room, (struct mkroom *,BOOLEAN_P));
1470. E boolean FDECL(load_special, (const char *));
1471. 
1472. /* ### spell.c ### */
1473. 
1474. #ifdef OVERLAY
1475. E int NDECL(learn);
1476. #endif
1477. E int FDECL(study_book, (struct obj *));
1478. E int NDECL(docast);
1479. E int FDECL(spelleffects, (int,BOOLEAN_P));
1480. E void NDECL(losespells);
1481. E int NDECL(dovspell);
1482. 
1483. /* ### steal.c ### */
1484. 
1485. #ifdef OVERLAY
1486. E int NDECL(stealarm);
1487. #endif
1488. E long NDECL(somegold);
1489. E void FDECL(stealgold, (struct monst *));
1490. E int FDECL(steal, (struct monst *));
1491. E void FDECL(mpickobj, (struct monst *,struct obj *));
1492. E void FDECL(stealamulet, (struct monst *));
1493. E void FDECL(relobj, (struct monst *,int,BOOLEAN_P));
1494. 
1495. /* ### timeout.c ### */
1496. 
1497. E void NDECL(nh_timeout);
1498. E void NDECL(hatch_eggs);
1499. E void NDECL(burn_lamps);
1500. E void NDECL(do_storms);
1501. 
1502. 
1503. /* ### topten.c ### */
1504. 
1505. E void FDECL(topten, (int));
1506. E void FDECL(prscore, (int,char **));
1507. E struct obj *FDECL(tt_oname, (struct obj *));
1508. 
1509. /* ### track.c ### */
1510. 
1511. E void NDECL(initrack);
1512. E void NDECL(settrack);
1513. E coord *FDECL(gettrack, (int,int));
1514. 
1515. /* ### trap.c ### */
1516. 
1517. E boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P));
1518. E void FDECL(grease_protect, (struct obj *,const char *,BOOLEAN_P));
1519. E struct trap *FDECL(maketrap, (int,int,int));
1520. E boolean NDECL(safe_teleds);
1521. E void FDECL(fall_through, (BOOLEAN_P));
1522. E void FDECL(dotrap, (struct trap *));
1523. E void FDECL(seetrap, (struct trap *));
1524. E int FDECL(mintrap, (struct monst *));
1525. E void FDECL(selftouch, (const char *));
1526. E void NDECL(float_up);
1527. E void FDECL(fill_pit, (int,int));
1528. E int NDECL(float_down);
1529. E void NDECL(tele);
1530. E void FDECL(teleds, (int,int));
1531. E int NDECL(dotele);
1532. E void NDECL(level_tele);
1533. E void FDECL(water_damage, (struct obj *,BOOLEAN_P));
1534. E boolean NDECL(drown);
1535. E void FDECL(drain_en, (int));
1536. E int NDECL(dountrap);
1537. E int FDECL(untrap, (BOOLEAN_P));
1538. E boolean FDECL(chest_trap, (struct obj *,int,BOOLEAN_P));
1539. E void FDECL(deltrap, (struct trap *));
1540. E struct trap *FDECL(t_at, (int,int));
1541. E void FDECL(b_trapped, (const char *));
1542. E boolean NDECL(unconscious);
1543. E boolean NDECL(lava_effects);
1544. 
1545. /* ### u_init.c ### */
1546. 
1547. E void NDECL(u_init);
1548. E void NDECL(plnamesuffix);
1549. 
1550. /* ### uhitm.c ### */
1551. 
1552. E struct monst *FDECL(clone_mon, (struct monst *));
1553. E boolean FDECL(special_case, (struct monst *));
1554. E schar FDECL(find_roll_to_hit, (struct monst *));
1555. E boolean FDECL(attack, (struct monst *));
1556. E boolean FDECL(hmon, (struct monst *,struct obj *,int));
1557. #ifdef POLYSELF
1558. E int FDECL(damageum, (struct monst *,struct attack *));
1559. E void FDECL(missum, (struct monst *,struct attack *));
1560. #endif
1561. E int FDECL(passive, (struct monst *,BOOLEAN_P,int,BOOLEAN_P));
1562. E void FDECL(stumble_onto_mimic, (struct monst *));
1563. 
1564. #ifdef UNIX
1565. 
1566. /* ### unixmain.c ### */
1567. # ifdef PORT_HELP
1568. E void NDECL(port_help);
1569. # endif
1570. 
1571. /* ### unixtty.c ### */
1572. 
1573. E void NDECL(gettty);
1574. E void FDECL(settty, (const char *));
1575. E void NDECL(setftty);
1576. E void NDECL(intron);
1577. E void NDECL(introff);
1578. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
1579. 
1580. /* ### unixunix.c ### */
1581. 
1582. E void FDECL(gethdate, (const char *));
1583. E int FDECL(uptodate, (int));
1584. E void NDECL(getlock);
1585. E void FDECL(regularize, (char *));
1586. # ifdef SHELL
1587. E int NDECL(dosh);
1588. # endif /* SHELL */
1589. # if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
1590. E int FDECL(child, (int));
1591. # endif
1592. 
1593. #endif /* UNIX */
1594. 
1595. /* ### vault.c ### */
1596. 
1597. E boolean FDECL(grddead, (struct monst *));
1598. E char FDECL(vault_occupied, (char *));
1599. E void NDECL(invault);
1600. E int FDECL(gd_move, (struct monst *));
1601. E void NDECL(paygd);
1602. E long NDECL(hidden_gold);
1603. #ifdef SOUNDS
1604. E boolean NDECL(gd_sound);
1605. #endif
1606. 
1607. /* ### version.c ### */
1608. 
1609. E int NDECL(doversion);
1610. E int NDECL(doextversion);
1611. #ifdef MICRO
1612. E boolean FDECL(comp_times, (long));
1613. #endif
1614. 
1615. /* ### vis_tab.c ### */
1616. 
1617. #ifdef VISION_TABLES
1618. E void NDECL(vis_tab_init);
1619. #endif
1620. 
1621. /* ### vision.c ### */
1622. 
1623. E void NDECL(vision_init);
1624. E int FDECL(does_block, (int,int,struct rm*));
1625. E void NDECL(vision_reset);
1626. E void FDECL(vision_recalc, (int));
1627. E void FDECL(block_point, (int,int));
1628. E void FDECL(unblock_point, (int,int));
1629. E boolean FDECL(clear_path, (int,int,int,int));
1630. E void FDECL(do_clear_area, (int,int,int,
1631. 			     void (*)(int,int,genericptr_t),genericptr_t));
1632. 
1633. #ifdef VMS
1634. 
1635. /* ### vmsfiles.c ### */
1636. 
1637. E int FDECL(vms_link, (const char *,const char *));
1638. E int FDECL(vms_unlink, (const char *));
1639. E int FDECL(vms_creat, (const char *,unsigned int));
1640. E int FDECL(vms_open, (const char *,int,unsigned int));
1641. E boolean FDECL(same_dir, (const char *,const char *));
1642. E int FDECL(c__translate, (int));
1643. 
1644. /* ### vmsmail.c ### */
1645. 
1646. E unsigned long NDECL(init_broadcast_trapping);
1647. E unsigned long NDECL(enable_broadcast_trapping);
1648. E unsigned long NDECL(disable_broadcast_trapping);
1649. # if 0
1650. E struct mail_info *NDECL(parse_next_broadcast);
1651. # endif /*0*/
1652. 
1653. /* ### vmsmain.c ### */
1654. 
1655. E int FDECL(main, (int, char **));
1656. # ifdef CHDIR
1657. E void FDECL(chdirx, (char *,BOOLEAN_P));
1658. # endif /* CHDIR */
1659. 
1660. /* ### vmsmisc.c ### */
1661. 
1662. E void NDECL(vms_abort);
1663. E void FDECL(vms_exit, (int));
1664. 
1665. /* ### vmstty.c ### */
1666. 
1667. E int NDECL(vms_getchar);
1668. E void NDECL(gettty);
1669. E void FDECL(settty, (const char *));
1670. E void FDECL(shuttty, (const char *));
1671. E void NDECL(setftty);
1672. E void NDECL(intron);
1673. E void NDECL(introff);
1674. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
1675. 
1676. /* ### vmsunix.c ### */
1677. 
1678. E void FDECL(gethdate, (const char *));
1679. E boolean FDECL(uptodate, (int));
1680. E void NDECL(getlock);
1681. E void FDECL(regularize, (char *));
1682. E int NDECL(vms_getuid);
1683. E char *FDECL(basename, (const char *));
1684. E boolean FDECL(file_is_stmlf, (int));
1685. E char *NDECL(verify_termcap);
1686. # if defined(CHDIR) || defined(SHELL) || defined(SECURE)
1687. E void NDECL(privoff);
1688. E void NDECL(privon);
1689. # endif
1690. # ifdef SHELL
1691. E int NDECL(dosh);
1692. # endif
1693. # if defined(SHELL) || defined(MAIL)
1694. E int FDECL(vms_doshell, (const char *,BOOLEAN_P));
1695. # endif
1696. # ifdef SUSPEND
1697. E int NDECL(dosuspend);
1698. # endif
1699. 
1700. #endif /* VMS */
1701. 
1702. /* ### weapon.c ### */
1703. 
1704. E int FDECL(hitval, (struct obj *,struct permonst *));
1705. E int FDECL(dmgval, (struct obj *,struct permonst *));
1706. E void NDECL(set_uasmon);
1707. E struct obj *FDECL(select_rwep, (struct monst *));
1708. E struct obj *FDECL(select_hwep, (struct monst *));
1709. #ifdef MUSE
1710. E void FDECL(possibly_unwield, (struct monst *));
1711. E int FDECL(mon_wield_item, (struct monst *));
1712. E void FDECL(sort_mwep, (struct monst *));
1713. #endif
1714. E int NDECL(abon);
1715. E int NDECL(dbon);
1716. 
1717. /* ### were.c ### */
1718. 
1719. E void FDECL(were_change, (struct monst *));
1720. E void FDECL(new_were, (struct monst *));
1721. E boolean FDECL(were_summon, (struct permonst *,BOOLEAN_P));
1722. #ifdef POLYSELF
1723. E void NDECL(you_were);
1724. #endif /* POLYSELF */
1725. 
1726. /* ### wield.c ### */
1727. 
1728. E void FDECL(setuwep, (struct obj *));
1729. E void NDECL(uwepgone);
1730. E int NDECL(dowield);
1731. E void FDECL(erode_weapon, (BOOLEAN_P));
1732. E int FDECL(chwepon, (struct obj *,int));
1733. E int FDECL(welded, (struct obj *));
1734. E void FDECL(weldmsg, (struct obj *,BOOLEAN_P));
1735. 
1736. /* ### windows.c ### */
1737. 
1738. E void FDECL(choose_windows, (const char *));
1739. 
1740. /* ### wizard.c ### */
1741. 
1742. E void NDECL(amulet);
1743. E int FDECL(mon_has_amulet, (struct monst *));
1744. E int FDECL(mon_has_special, (struct monst *));
1745. E int FDECL(tactics, (struct monst *));
1746. E void NDECL(aggravate);
1747. E void NDECL(clonewiz);
1748. E void FDECL(nasty, (struct monst*));
1749. E void NDECL(resurrect);
1750. E void NDECL(intervene);
1751. E void FDECL(wizdead, (struct monst *));
1752. E void FDECL(cuss, (struct monst *));
1753. 
1754. /* ### worm.c ### */
1755. 
1756. E int NDECL(get_wormno);
1757. E void FDECL(initworm, (struct monst *,int));
1758. E void FDECL(worm_move, (struct monst *));
1759. E void FDECL(worm_nomove, (struct monst *));
1760. E void FDECL(wormgone, (struct monst *));
1761. E void FDECL(wormhitu, (struct monst *));
1762. E void FDECL(cutworm, (struct monst *,XCHAR_P,XCHAR_P,struct obj *));
1763. E void FDECL(see_wsegs, (struct monst *));
1764. E void FDECL(save_worm, (int,int));
1765. E void FDECL(rest_worm, (int));
1766. E void FDECL(place_wsegs, (struct monst *));
1767. E void FDECL(remove_worm, (struct monst *));
1768. E void FDECL(place_worm_tail_randomly, (struct monst *,XCHAR_P,XCHAR_P));
1769. E int FDECL(count_wsegs, (struct monst *));
1770. 
1771. /* ### worn.c ### */
1772. 
1773. E void FDECL(setworn, (struct obj *,long));
1774. E void FDECL(setnotworn, (struct obj *));
1775. E int FDECL(find_mac, (struct monst *));
1776. E void FDECL(m_dowear, (struct monst *,BOOLEAN_P));
1777. E struct obj *FDECL(which_armor, (struct monst *,long));
1778. E void FDECL(mon_break_armor, (struct monst *));
1779. 
1780. /* ### write.c ### */
1781. 
1782. E int FDECL(dowrite, (struct obj *));
1783. 
1784. /* ### zap.c ### */
1785. 
1786. #if defined(OVERLAY) || defined(MUSE)
1787. E int FDECL(bhito, (struct obj *,struct obj *));
1788. #endif
1789. E struct monst *FDECL(revive, (struct obj *,BOOLEAN_P));
1790. E int FDECL(zappable, (struct obj *));
1791. E void FDECL(zapnodir, (struct obj *));
1792. E int NDECL(dozap);
1793. E int FDECL(zapyourself, (struct obj *));
1794. E void FDECL(cancel_monst, (struct monst *,struct obj *,
1795. 			    BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
1796. E void FDECL(weffects, (struct obj *));
1797. E const char *FDECL(exclam, (int force));
1798. E void FDECL(hit, (const char *,struct monst *,const char *));
1799. E void FDECL(miss, (const char *,struct monst *));
1800. E struct monst *FDECL(bhit, (int,int,int,int,int (*)(MONST_P,OBJ_P),
1801. 			     int (*)(OBJ_P,OBJ_P),struct obj *));
1802. E struct monst *FDECL(boomhit, (int,int));
1803. E void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int));
1804. E int FDECL(zap_over_floor, (XCHAR_P,XCHAR_P,int,boolean *));
1805. E void FDECL(rloco, (struct obj *));
1806. E void FDECL(fracture_rock, (struct obj *));
1807. E boolean FDECL(break_statue, (struct obj *));
1808. E void FDECL(destroy_item, (int,int));
1809. E int FDECL(destroy_mitem, (struct monst *,int,int));
1810. E int FDECL(resist, (struct monst *,CHAR_P,int,int));
1811. E void NDECL(makewish);
1812. 
1813. #endif /* !MAKEDEFS_C && !LEV_LEX_C */
1814. 
1815. #undef E
1816. 
1817. #endif /* EXTERN_H */