home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume16 / nethck31 / part04 < prev    next >
Encoding:
Internet Message Format  |  1993-01-31  |  58.6 KB

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