home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / sources / games / 312 < prev    next >
Encoding:
Internet Message Format  |  1993-01-28  |  58.6 KB

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