Source:NetHack 3.4.0/extern.h

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

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

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