Source:NetHack 3.4.3/include/extern.h

From NetHackWiki
Jump to: navigation, search

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

  1. /*	SCCS Id: @(#)extern.h	3.4	2003/03/10	*/
  2. /* Copyright (c) Steve Creps, 1988.				  */
  3. /* NetHack may be freely redistributed.  See license for details. */

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

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

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