Source:NetHack 3.6.1/include/extern.h

From NetHackWiki
(Redirected from Source:Extern.h)
Jump to: navigation, search

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

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.  /* NetHack 3.6	extern.h	$NHDT-Date: 1518053385 2018/02/08 01:29:45 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.625 $ */
  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));
  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 FDECL(moveloop, (BOOLEAN_P));
  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.  E time_t NDECL(get_realtime);
  29.  E boolean FDECL(argcheck, (int, char **, enum earlyarg));
  30.  
  31.  /* ### apply.c ### */
  32.  
  33.  E int NDECL(doapply);
  34.  E int NDECL(dorub);
  35.  E int NDECL(dojump);
  36.  E int FDECL(jump, (int));
  37.  E int NDECL(number_leashed);
  38.  E void FDECL(o_unleash, (struct obj *));
  39.  E void FDECL(m_unleash, (struct monst *, BOOLEAN_P));
  40.  E void NDECL(unleash_all);
  41.  E boolean NDECL(next_to_u);
  42.  E struct obj *FDECL(get_mleash, (struct monst *));
  43.  E const char *NDECL(beautiful);
  44.  E void FDECL(check_leash, (XCHAR_P, XCHAR_P));
  45.  E boolean FDECL(um_dist, (XCHAR_P, XCHAR_P, XCHAR_P));
  46.  E boolean FDECL(snuff_candle, (struct obj *));
  47.  E boolean FDECL(snuff_lit, (struct obj *));
  48.  E boolean FDECL(catch_lit, (struct obj *));
  49.  E void FDECL(use_unicorn_horn, (struct obj *));
  50.  E boolean FDECL(tinnable, (struct obj *));
  51.  E void NDECL(reset_trapset);
  52.  E void FDECL(fig_transform, (ANY_P *, long));
  53.  E int FDECL(unfixable_trouble_count, (BOOLEAN_P));
  54.  
  55.  /* ### artifact.c ### */
  56.  
  57.  E void NDECL(init_artifacts);
  58.  E void FDECL(save_artifacts, (int));
  59.  E void FDECL(restore_artifacts, (int));
  60.  E const char *FDECL(artiname, (int));
  61.  E struct obj *FDECL(mk_artifact, (struct obj *, ALIGNTYP_P));
  62.  E const char *FDECL(artifact_name, (const char *, short *));
  63.  E boolean FDECL(exist_artifact, (int, const char *));
  64.  E void FDECL(artifact_exists, (struct obj *, const char *, BOOLEAN_P));
  65.  E int NDECL(nartifact_exist);
  66.  E boolean FDECL(arti_immune, (struct obj *, int));
  67.  E boolean FDECL(spec_ability, (struct obj *, unsigned long));
  68.  E boolean FDECL(confers_luck, (struct obj *));
  69.  E boolean FDECL(arti_reflects, (struct obj *));
  70.  E boolean FDECL(shade_glare, (struct obj *));
  71.  E boolean FDECL(restrict_name, (struct obj *, const char *));
  72.  E boolean FDECL(defends, (int, struct obj *));
  73.  E boolean FDECL(defends_when_carried, (int, struct obj *));
  74.  E boolean FDECL(protects, (struct obj *, BOOLEAN_P));
  75.  E void FDECL(set_artifact_intrinsic, (struct obj *, BOOLEAN_P, long));
  76.  E int FDECL(touch_artifact, (struct obj *, struct monst *));
  77.  E int FDECL(spec_abon, (struct obj *, struct monst *));
  78.  E int FDECL(spec_dbon, (struct obj *, struct monst *, int));
  79.  E void FDECL(discover_artifact, (XCHAR_P));
  80.  E boolean FDECL(undiscovered_artifact, (XCHAR_P));
  81.  E int FDECL(disp_artifact_discoveries, (winid));
  82.  E boolean FDECL(artifact_hit, (struct monst *, struct monst *, struct obj *,
  83.                                 int *, int));
  84.  E int NDECL(doinvoke);
  85.  E boolean FDECL(finesse_ahriman, (struct obj *));
  86.  E void FDECL(arti_speak, (struct obj *));
  87.  E boolean FDECL(artifact_light, (struct obj *));
  88.  E long FDECL(spec_m2, (struct obj *));
  89.  E boolean FDECL(artifact_has_invprop, (struct obj *, UCHAR_P));
  90.  E long FDECL(arti_cost, (struct obj *));
  91.  E struct obj *FDECL(what_gives, (long *));
  92.  E const char *FDECL(glow_color, (int));
  93.  E void FDECL(Sting_effects, (int));
  94.  E int FDECL(retouch_object, (struct obj **, BOOLEAN_P));
  95.  E void FDECL(retouch_equipment, (int));
  96.  E void NDECL(mkot_trap_warn);
  97.  E boolean FDECL(is_magic_key, (struct monst *, struct obj *));
  98.  E struct obj *FDECL(has_magic_key, (struct monst *));
  99.  
  100.  /* ### attrib.c ### */
  101.  
  102.  E boolean FDECL(adjattrib, (int, int, int));
  103.  E void FDECL(gainstr, (struct obj *, int, BOOLEAN_P));
  104.  E void FDECL(losestr, (int));
  105.  E void FDECL(poisontell, (int, BOOLEAN_P));
  106.  E void FDECL(poisoned, (const char *, int, const char *, int, BOOLEAN_P));
  107.  E void FDECL(change_luck, (SCHAR_P));
  108.  E int FDECL(stone_luck, (BOOLEAN_P));
  109.  E void NDECL(set_moreluck);
  110.  E void NDECL(restore_attrib);
  111.  E void FDECL(exercise, (int, BOOLEAN_P));
  112.  E void NDECL(exerchk);
  113.  E void FDECL(init_attr, (int));
  114.  E void NDECL(redist_attr);
  115.  E void FDECL(adjabil, (int, int));
  116.  E int NDECL(newhp);
  117.  E schar FDECL(acurr, (int));
  118.  E schar NDECL(acurrstr);
  119.  E boolean FDECL(extremeattr, (int));
  120.  E void FDECL(adjalign, (int));
  121.  E int FDECL(is_innate, (int));
  122.  E char *FDECL(from_what, (int));
  123.  E void FDECL(uchangealign, (int, int));
  124.  
  125.  /* ### ball.c ### */
  126.  
  127.  E void FDECL(ballrelease, (BOOLEAN_P));
  128.  E void NDECL(ballfall);
  129.  E void NDECL(placebc);
  130.  E void NDECL(unplacebc);
  131.  E void FDECL(set_bc, (int));
  132.  E void FDECL(move_bc, (int, int, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P));
  133.  E boolean FDECL(drag_ball, (XCHAR_P, XCHAR_P, int *, xchar *, xchar *,
  134.                              xchar *, xchar *, boolean *, BOOLEAN_P));
  135.  E void FDECL(drop_ball, (XCHAR_P, XCHAR_P));
  136.  E void NDECL(drag_down);
  137.  
  138.  /* ### bones.c ### */
  139.  
  140.  E void FDECL(sanitize_name, (char *));
  141.  E void FDECL(drop_upon_death, (struct monst *, struct obj *, int, int));
  142.  E boolean NDECL(can_make_bones);
  143.  E void FDECL(savebones, (int, time_t, struct obj *));
  144.  E int NDECL(getbones);
  145.  
  146.  /* ### botl.c ### */
  147.  
  148.  E char *NDECL(do_statusline1);
  149.  E void NDECL(check_gold_symbol);
  150.  E char *NDECL(do_statusline2);
  151.  E int FDECL(xlev_to_rank, (int));
  152.  E int FDECL(title_to_mon, (const char *, int *, int *));
  153.  E void NDECL(max_rank_sz);
  154.  #ifdef SCORE_ON_BOTL
  155.  E long NDECL(botl_score);
  156.  #endif
  157.  E int FDECL(describe_level, (char *));
  158.  E const char *FDECL(rank_of, (int, SHORT_P, BOOLEAN_P));
  159.  E void NDECL(bot);
  160.  E void FDECL(status_initialize, (BOOLEAN_P));
  161.  E void NDECL(status_finish);
  162.  E void FDECL(status_notify_windowport, (BOOLEAN_P));
  163.  E void NDECL(status_eval_next_unhilite);
  164.  #ifdef STATUS_HILITES
  165.  E boolean FDECL(parse_status_hl1, (char *op, BOOLEAN_P));
  166.  E void NDECL(clear_status_hilites);
  167.  E void NDECL(reset_status_hilites);
  168.  E int NDECL(count_status_hilites);
  169.  E boolean NDECL(status_hilite_menu);
  170.  #endif
  171.  
  172.  /* ### cmd.c ### */
  173.  
  174.  E int NDECL(doconduct);
  175.  E int NDECL(domonability);
  176.  E char FDECL(cmd_from_func, (int NDECL((*))));
  177.  E boolean FDECL(redraw_cmd, (CHAR_P));
  178.  #ifdef USE_TRAMPOLI
  179.  E int NDECL(doextcmd);
  180.  E int NDECL(domonability);
  181.  E int NDECL(doprev_message);
  182.  E int NDECL(timed_occupation);
  183.  E int NDECL(doattributes);
  184.  E int NDECL(wiz_detect);
  185.  E int NDECL(wiz_genesis);
  186.  E int NDECL(wiz_identify);
  187.  E int NDECL(wiz_level_tele);
  188.  E int NDECL(wiz_map);
  189.  E int NDECL(wiz_where);
  190.  E int NDECL(wiz_wish);
  191.  #endif /* USE_TRAMPOLI */
  192.  E void NDECL(reset_occupations);
  193.  E void FDECL(set_occupation, (int (*)(void), const char *, int));
  194.  E char NDECL(pgetchar);
  195.  E void FDECL(pushch, (CHAR_P));
  196.  E void FDECL(savech, (CHAR_P));
  197.  E const char *FDECL(key2extcmddesc, (UCHAR_P));
  198.  E boolean FDECL(bind_specialkey, (UCHAR_P, const char *));
  199.  E char FDECL(txt2key, (char *));
  200.  E void FDECL(parseautocomplete, (char *, BOOLEAN_P));
  201.  E void FDECL(reset_commands, (BOOLEAN_P));
  202.  E void FDECL(rhack, (char *));
  203.  E int NDECL(doextlist);
  204.  E int NDECL(extcmd_via_menu);
  205.  E int NDECL(enter_explore_mode);
  206.  E void FDECL(enlightenment, (int, int));
  207.  E void FDECL(youhiding, (BOOLEAN_P, int));
  208.  E void FDECL(show_conduct, (int));
  209.  E boolean FDECL(bind_key, (UCHAR_P, const char *));
  210.  E void NDECL(dokeylist);
  211.  E int FDECL(xytod, (SCHAR_P, SCHAR_P));
  212.  E void FDECL(dtoxy, (coord *, int));
  213.  E int FDECL(movecmd, (CHAR_P));
  214.  E int NDECL(dxdy_moveok);
  215.  E int FDECL(getdir, (const char *));
  216.  E void NDECL(confdir);
  217.  E const char *FDECL(directionname, (int));
  218.  E int FDECL(isok, (int, int));
  219.  E int FDECL(get_adjacent_loc,
  220.              (const char *, const char *, XCHAR_P, XCHAR_P, coord *));
  221.  E const char *FDECL(click_to_cmd, (int, int, int));
  222.  E char FDECL(get_count, (char *, CHAR_P, long, long *, BOOLEAN_P));
  223.  #ifdef HANGUPHANDLING
  224.  E void FDECL(hangup, (int));
  225.  E void NDECL(end_of_input);
  226.  #endif
  227.  E char NDECL(readchar);
  228.  E void NDECL(sanity_check);
  229.  E char* FDECL(key2txt, (UCHAR_P, char *));
  230.  E char FDECL(yn_function, (const char *, const char *, CHAR_P));
  231.  E boolean FDECL(paranoid_query, (BOOLEAN_P, const char *));
  232.  
  233.  /* ### dbridge.c ### */
  234.  
  235.  E boolean FDECL(is_pool, (int, int));
  236.  E boolean FDECL(is_lava, (int, int));
  237.  E boolean FDECL(is_pool_or_lava, (int, int));
  238.  E boolean FDECL(is_ice, (int, int));
  239.  E boolean FDECL(is_moat, (int, int));
  240.  E schar FDECL(db_under_typ, (int));
  241.  E int FDECL(is_drawbridge_wall, (int, int));
  242.  E boolean FDECL(is_db_wall, (int, int));
  243.  E boolean FDECL(find_drawbridge, (int *, int *));
  244.  E boolean FDECL(create_drawbridge, (int, int, int, BOOLEAN_P));
  245.  E void FDECL(open_drawbridge, (int, int));
  246.  E void FDECL(close_drawbridge, (int, int));
  247.  E void FDECL(destroy_drawbridge, (int, int));
  248.  
  249.  /* ### decl.c ### */
  250.  
  251.  E void NDECL(decl_init);
  252.  
  253.  /* ### detect.c ### */
  254.  
  255.  E boolean FDECL(trapped_chest_at, (int, int, int));
  256.  E boolean FDECL(trapped_door_at, (int, int, int));
  257.  E struct obj *FDECL(o_in, (struct obj *, CHAR_P));
  258.  E struct obj *FDECL(o_material, (struct obj *, unsigned));
  259.  E int FDECL(gold_detect, (struct obj *));
  260.  E int FDECL(food_detect, (struct obj *));
  261.  E int FDECL(object_detect, (struct obj *, int));
  262.  E int FDECL(monster_detect, (struct obj *, int));
  263.  E int FDECL(trap_detect, (struct obj *));
  264.  E const char *FDECL(level_distance, (d_level *));
  265.  E void FDECL(use_crystal_ball, (struct obj **));
  266.  E void NDECL(do_mapping);
  267.  E void FDECL(do_vicinity_map, (struct obj *));
  268.  E void FDECL(cvt_sdoor_to_door, (struct rm *));
  269.  #ifdef USE_TRAMPOLI
  270.  E void FDECL(findone, (int, int, genericptr_t));
  271.  E void FDECL(openone, (int, int, genericptr_t));
  272.  #endif
  273.  E int NDECL(findit);
  274.  E int NDECL(openit);
  275.  E boolean FDECL(detecting, (void (*)(int, int, genericptr)));
  276.  E void FDECL(find_trap, (struct trap *));
  277.  E void NDECL(warnreveal);
  278.  E int FDECL(dosearch0, (int));
  279.  E int NDECL(dosearch);
  280.  E void NDECL(sokoban_detect);
  281.  #ifdef DUMPLOG
  282.  E void NDECL(dump_map);
  283.  #endif
  284.  E void FDECL(reveal_terrain, (int, int));
  285.  
  286.  /* ### dig.c ### */
  287.  
  288.  E int FDECL(dig_typ, (struct obj *, XCHAR_P, XCHAR_P));
  289.  E boolean NDECL(is_digging);
  290.  #ifdef USE_TRAMPOLI
  291.  E int NDECL(dig);
  292.  #endif
  293.  E int NDECL(holetime);
  294.  E boolean FDECL(dig_check, (struct monst *, BOOLEAN_P, int, int));
  295.  E void FDECL(digactualhole, (int, int, struct monst *, int));
  296.  E boolean FDECL(dighole, (BOOLEAN_P, BOOLEAN_P, coord *));
  297.  E int FDECL(use_pick_axe, (struct obj *));
  298.  E int FDECL(use_pick_axe2, (struct obj *));
  299.  E boolean FDECL(mdig_tunnel, (struct monst *));
  300.  E void FDECL(draft_message, (BOOLEAN_P));
  301.  E void FDECL(watch_dig, (struct monst *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  302.  E void NDECL(zap_dig);
  303.  E struct obj *FDECL(bury_an_obj, (struct obj *, boolean *));
  304.  E void FDECL(bury_objs, (int, int));
  305.  E void FDECL(unearth_objs, (int, int));
  306.  E void FDECL(rot_organic, (ANY_P *, long));
  307.  E void FDECL(rot_corpse, (ANY_P *, long));
  308.  E struct obj *FDECL(buried_ball, (coord *));
  309.  E void NDECL(buried_ball_to_punishment);
  310.  E void NDECL(buried_ball_to_freedom);
  311.  E schar FDECL(fillholetyp, (int, int, BOOLEAN_P));
  312.  E void FDECL(liquid_flow,
  313.               (XCHAR_P, XCHAR_P, SCHAR_P, struct trap *, const char *));
  314.  E boolean FDECL(conjoined_pits, (struct trap *, struct trap *, BOOLEAN_P));
  315.  #if 0
  316.  E void FDECL(bury_monst, (struct monst *));
  317.  E void NDECL(bury_you);
  318.  E void NDECL(unearth_you);
  319.  E void NDECL(escape_tomb);
  320.  E void FDECL(bury_obj, (struct obj *));
  321.  #endif
  322.  
  323.  /* ### display.c ### */
  324.  
  325.  E void FDECL(magic_map_background, (XCHAR_P, XCHAR_P, int));
  326.  E void FDECL(map_background, (XCHAR_P, XCHAR_P, int));
  327.  E void FDECL(map_trap, (struct trap *, int));
  328.  E void FDECL(map_object, (struct obj *, int));
  329.  E void FDECL(map_invisible, (XCHAR_P, XCHAR_P));
  330.  E boolean FDECL(unmap_invisible, (int, int));
  331.  E void FDECL(unmap_object, (int, int));
  332.  E void FDECL(map_location, (int, int, int));
  333.  E void FDECL(feel_newsym, (XCHAR_P, XCHAR_P));
  334.  E void FDECL(feel_location, (XCHAR_P, XCHAR_P));
  335.  E void FDECL(newsym, (int, int));
  336.  E void FDECL(newsym_force, (int, int));
  337.  E void FDECL(shieldeff, (XCHAR_P, XCHAR_P));
  338.  E void FDECL(tmp_at, (int, int));
  339.  E void FDECL(swallowed, (int));
  340.  E void FDECL(under_ground, (int));
  341.  E void FDECL(under_water, (int));
  342.  E void NDECL(see_monsters);
  343.  E void NDECL(set_mimic_blocking);
  344.  E void NDECL(see_objects);
  345.  E void NDECL(see_traps);
  346.  E void NDECL(curs_on_u);
  347.  E int NDECL(doredraw);
  348.  E void NDECL(docrt);
  349.  E void FDECL(show_glyph, (int, int, int));
  350.  E void NDECL(clear_glyph_buffer);
  351.  E void FDECL(row_refresh, (int, int, int));
  352.  E void NDECL(cls);
  353.  E void FDECL(flush_screen, (int));
  354.  E int FDECL(back_to_glyph, (XCHAR_P, XCHAR_P));
  355.  E int FDECL(zapdir_to_glyph, (int, int, int));
  356.  E int FDECL(glyph_at, (XCHAR_P, XCHAR_P));
  357.  E void NDECL(set_wall_state);
  358.  E void FDECL(unset_seenv, (struct rm *, int, int, int, int));
  359.  E int FDECL(warning_of, (struct monst *));
  360.  
  361.  /* ### do.c ### */
  362.  
  363.  #ifdef USE_TRAMPOLI
  364.  E int FDECL(drop, (struct obj *));
  365.  E int NDECL(wipeoff);
  366.  #endif
  367.  E int NDECL(dodrop);
  368.  E boolean FDECL(boulder_hits_pool, (struct obj *, int, int, BOOLEAN_P));
  369.  E boolean FDECL(flooreffects, (struct obj *, int, int, const char *));
  370.  E void FDECL(doaltarobj, (struct obj *));
  371.  E boolean FDECL(canletgo, (struct obj *, const char *));
  372.  E void FDECL(dropx, (struct obj *));
  373.  E void FDECL(dropy, (struct obj *));
  374.  E void FDECL(dropz, (struct obj *, BOOLEAN_P));
  375.  E void FDECL(obj_no_longer_held, (struct obj *));
  376.  E int NDECL(doddrop);
  377.  E int NDECL(dodown);
  378.  E int NDECL(doup);
  379.  #ifdef INSURANCE
  380.  E void NDECL(save_currentstate);
  381.  #endif
  382.  E void FDECL(goto_level, (d_level *, BOOLEAN_P, BOOLEAN_P, BOOLEAN_P));
  383.  E void FDECL(schedule_goto, (d_level *, BOOLEAN_P, BOOLEAN_P, int,
  384.                               const char *, const char *));
  385.  E void NDECL(deferred_goto);
  386.  E boolean FDECL(revive_corpse, (struct obj *));
  387.  E void FDECL(revive_mon, (ANY_P *, long));
  388.  E int NDECL(donull);
  389.  E int NDECL(dowipe);
  390.  E void FDECL(set_wounded_legs, (long, int));
  391.  E void NDECL(heal_legs);
  392.  
  393.  /* ### do_name.c ### */
  394.  
  395.  E char *FDECL(coord_desc, (int, int, char *, CHAR_P));
  396.  E boolean FDECL(getpos_menu, (coord *, int));
  397.  E int FDECL(getpos, (coord *, BOOLEAN_P, const char *));
  398.  E void FDECL(getpos_sethilite, (void (*f)(int), boolean (*d)(int,int)));
  399.  E void FDECL(new_mname, (struct monst *, int));
  400.  E void FDECL(free_mname, (struct monst *));
  401.  E void FDECL(new_oname, (struct obj *, int));
  402.  E void FDECL(free_oname, (struct obj *));
  403.  E const char *FDECL(safe_oname, (struct obj *));
  404.  E struct monst *FDECL(christen_monst, (struct monst *, const char *));
  405.  E struct obj *FDECL(oname, (struct obj *, const char *));
  406.  E boolean FDECL(objtyp_is_callable, (int));
  407.  E int NDECL(docallcmd);
  408.  E void FDECL(docall, (struct obj *));
  409.  E const char *NDECL(rndghostname);
  410.  E char *FDECL(x_monnam, (struct monst *, int, const char *, int, BOOLEAN_P));
  411.  E char *FDECL(l_monnam, (struct monst *));
  412.  E char *FDECL(mon_nam, (struct monst *));
  413.  E char *FDECL(noit_mon_nam, (struct monst *));
  414.  E char *FDECL(Monnam, (struct monst *));
  415.  E char *FDECL(noit_Monnam, (struct monst *));
  416.  E char *FDECL(noname_monnam, (struct monst *, int));
  417.  E char *FDECL(m_monnam, (struct monst *));
  418.  E char *FDECL(y_monnam, (struct monst *));
  419.  E char *FDECL(Adjmonnam, (struct monst *, const char *));
  420.  E char *FDECL(Amonnam, (struct monst *));
  421.  E char *FDECL(a_monnam, (struct monst *));
  422.  E char *FDECL(distant_monnam, (struct monst *, int, char *));
  423.  E char *FDECL(rndmonnam, (char *));
  424.  E const char *FDECL(hcolor, (const char *));
  425.  E const char *NDECL(rndcolor);
  426.  E const char *FDECL(hliquid, (const char *));
  427.  E const char *NDECL(roguename);
  428.  E struct obj *FDECL(realloc_obj,
  429.                      (struct obj *, int, genericptr_t, int, const char *));
  430.  E char *FDECL(coyotename, (struct monst *, char *));
  431.  E const char *FDECL(noveltitle, (int *));
  432.  E const char *FDECL(lookup_novel, (const char *, int *));
  433.  
  434.  /* ### do_wear.c ### */
  435.  
  436.  #ifdef USE_TRAMPOLI
  437.  E int NDECL(Armor_on);
  438.  E int NDECL(Boots_on);
  439.  E int NDECL(Gloves_on);
  440.  E int NDECL(Helmet_on);
  441.  E int FDECL(select_off, (struct obj *));
  442.  E int NDECL(take_off);
  443.  #endif
  444.  E void FDECL(off_msg, (struct obj *));
  445.  E void FDECL(set_wear, (struct obj *));
  446.  E boolean FDECL(donning, (struct obj *));
  447.  E boolean FDECL(doffing, (struct obj *));
  448.  E void FDECL(cancel_doff, (struct obj *, long));
  449.  E void NDECL(cancel_don);
  450.  E int FDECL(stop_donning, (struct obj *));
  451.  E int NDECL(Armor_off);
  452.  E int NDECL(Armor_gone);
  453.  E int NDECL(Helmet_off);
  454.  E int NDECL(Gloves_off);
  455.  E int NDECL(Boots_on);
  456.  E int NDECL(Boots_off);
  457.  E int NDECL(Cloak_off);
  458.  E int NDECL(Shield_off);
  459.  E int NDECL(Shirt_off);
  460.  E void NDECL(Amulet_off);
  461.  E void FDECL(Ring_on, (struct obj *));
  462.  E void FDECL(Ring_off, (struct obj *));
  463.  E void FDECL(Ring_gone, (struct obj *));
  464.  E void FDECL(Blindf_on, (struct obj *));
  465.  E void FDECL(Blindf_off, (struct obj *));
  466.  E int NDECL(dotakeoff);
  467.  E int NDECL(doremring);
  468.  E int FDECL(cursed, (struct obj *));
  469.  E int FDECL(armoroff, (struct obj *));
  470.  E int FDECL(canwearobj, (struct obj *, long *, BOOLEAN_P));
  471.  E int NDECL(dowear);
  472.  E int NDECL(doputon);
  473.  E void NDECL(find_ac);
  474.  E void NDECL(glibr);
  475.  E struct obj *FDECL(some_armor, (struct monst *));
  476.  E struct obj *FDECL(stuck_ring, (struct obj *, int));
  477.  E struct obj *NDECL(unchanger);
  478.  E void NDECL(reset_remarm);
  479.  E int NDECL(doddoremarm);
  480.  E int FDECL(destroy_arm, (struct obj *));
  481.  E void FDECL(adj_abon, (struct obj *, SCHAR_P));
  482.  E boolean
  483.  FDECL(inaccessible_equipment, (struct obj *, const char *, BOOLEAN_P));
  484.  
  485.  /* ### dog.c ### */
  486.  
  487.  E void FDECL(newedog, (struct monst *));
  488.  E void FDECL(free_edog, (struct monst *));
  489.  E void FDECL(initedog, (struct monst *));
  490.  E struct monst *FDECL(make_familiar,
  491.                        (struct obj *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  492.  E struct monst *NDECL(makedog);
  493.  E void NDECL(update_mlstmv);
  494.  E void NDECL(losedogs);
  495.  E void FDECL(mon_arrive, (struct monst *, BOOLEAN_P));
  496.  E void FDECL(mon_catchup_elapsed_time, (struct monst *, long));
  497.  E void FDECL(keepdogs, (BOOLEAN_P));
  498.  E void FDECL(migrate_to_level, (struct monst *, XCHAR_P, XCHAR_P, coord *));
  499.  E int FDECL(dogfood, (struct monst *, struct obj *));
  500.  E boolean FDECL(tamedog, (struct monst *, struct obj *));
  501.  E void FDECL(abuse_dog, (struct monst *));
  502.  E void FDECL(wary_dog, (struct monst *, BOOLEAN_P));
  503.  
  504.  /* ### dogmove.c ### */
  505.  
  506.  E struct obj *FDECL(droppables, (struct monst *));
  507.  E int FDECL(dog_nutrition, (struct monst *, struct obj *));
  508.  E int FDECL(dog_eat, (struct monst *, struct obj *, int, int, BOOLEAN_P));
  509.  E int FDECL(dog_move, (struct monst *, int));
  510.  #ifdef USE_TRAMPOLI
  511.  E void FDECL(wantdoor, (int, int, genericptr_t));
  512.  #endif
  513.  E void FDECL(finish_meating, (struct monst *));
  514.  
  515.  /* ### dokick.c ### */
  516.  
  517.  E boolean FDECL(ghitm, (struct monst *, struct obj *));
  518.  E void FDECL(container_impact_dmg, (struct obj *, XCHAR_P, XCHAR_P));
  519.  E int NDECL(dokick);
  520.  E boolean FDECL(ship_object, (struct obj *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  521.  E void FDECL(obj_delivery, (BOOLEAN_P));
  522.  E schar FDECL(down_gate, (XCHAR_P, XCHAR_P));
  523.  E void FDECL(impact_drop, (struct obj *, XCHAR_P, XCHAR_P, XCHAR_P));
  524.  
  525.  /* ### dothrow.c ### */
  526.  
  527.  E int NDECL(dothrow);
  528.  E int NDECL(dofire);
  529.  E void FDECL(endmultishot, (BOOLEAN_P));
  530.  E void FDECL(hitfloor, (struct obj *));
  531.  E void FDECL(hurtle, (int, int, int, BOOLEAN_P));
  532.  E void FDECL(mhurtle, (struct monst *, int, int, int));
  533.  E boolean FDECL(throwing_weapon, (struct obj *));
  534.  E void FDECL(throwit, (struct obj *, long, BOOLEAN_P));
  535.  E int FDECL(omon_adj, (struct monst *, struct obj *, BOOLEAN_P));
  536.  E int FDECL(thitmonst, (struct monst *, struct obj *));
  537.  E int FDECL(hero_breaks, (struct obj *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  538.  E int FDECL(breaks, (struct obj *, XCHAR_P, XCHAR_P));
  539.  E void FDECL(release_camera_demon, (struct obj *, XCHAR_P, XCHAR_P));
  540.  E void FDECL(breakobj, (struct obj *, XCHAR_P, XCHAR_P, BOOLEAN_P, BOOLEAN_P));
  541.  E boolean FDECL(breaktest, (struct obj *));
  542.  E boolean FDECL(walk_path, (coord *, coord *,
  543.                              boolean (*)(genericptr, int, int), genericptr_t));
  544.  E boolean FDECL(hurtle_jump, (genericptr_t, int, int));
  545.  E boolean FDECL(hurtle_step, (genericptr_t, int, int));
  546.  
  547.  /* ### drawing.c ### */
  548.  #endif /* !MAKEDEFS_C && !LEV_LEX_C */
  549.  E int FDECL(def_char_to_objclass, (CHAR_P));
  550.  E int FDECL(def_char_to_monclass, (CHAR_P));
  551.  #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
  552.  E void FDECL(switch_symbols, (int));
  553.  E void FDECL(assign_graphics, (int));
  554.  E void NDECL(init_r_symbols);
  555.  E void NDECL(init_symbols);
  556.  E void NDECL(update_bouldersym);
  557.  E void NDECL(init_showsyms);
  558.  E void NDECL(init_l_symbols);
  559.  E void FDECL(clear_symsetentry, (int, BOOLEAN_P));
  560.  E void FDECL(update_l_symset, (struct symparse *, int));
  561.  E void FDECL(update_r_symset, (struct symparse *, int));
  562.  E boolean FDECL(cursed_object_at, (int, int));
  563.  
  564.  /* ### dungeon.c ### */
  565.  
  566.  E void FDECL(save_dungeon, (int, BOOLEAN_P, BOOLEAN_P));
  567.  E void FDECL(restore_dungeon, (int));
  568.  E void FDECL(insert_branch, (branch *, BOOLEAN_P));
  569.  E void NDECL(init_dungeons);
  570.  E s_level *FDECL(find_level, (const char *));
  571.  E s_level *FDECL(Is_special, (d_level *));
  572.  E branch *FDECL(Is_branchlev, (d_level *));
  573.  E boolean FDECL(builds_up, (d_level *));
  574.  E xchar FDECL(ledger_no, (d_level *));
  575.  E xchar NDECL(maxledgerno);
  576.  E schar FDECL(depth, (d_level *));
  577.  E xchar FDECL(dunlev, (d_level *));
  578.  E xchar FDECL(dunlevs_in_dungeon, (d_level *));
  579.  E xchar FDECL(ledger_to_dnum, (XCHAR_P));
  580.  E xchar FDECL(ledger_to_dlev, (XCHAR_P));
  581.  E xchar FDECL(deepest_lev_reached, (BOOLEAN_P));
  582.  E boolean FDECL(on_level, (d_level *, d_level *));
  583.  E void FDECL(next_level, (BOOLEAN_P));
  584.  E void FDECL(prev_level, (BOOLEAN_P));
  585.  E void FDECL(u_on_newpos, (int, int));
  586.  E void FDECL(u_on_rndspot, (int));
  587.  E void FDECL(u_on_sstairs, (int));
  588.  E void NDECL(u_on_upstairs);
  589.  E void NDECL(u_on_dnstairs);
  590.  E boolean FDECL(On_stairs, (XCHAR_P, XCHAR_P));
  591.  E void FDECL(get_level, (d_level *, int));
  592.  E boolean FDECL(Is_botlevel, (d_level *));
  593.  E boolean FDECL(Can_fall_thru, (d_level *));
  594.  E boolean FDECL(Can_dig_down, (d_level *));
  595.  E boolean FDECL(Can_rise_up, (int, int, d_level *));
  596.  E boolean FDECL(has_ceiling, (d_level *));
  597.  E boolean FDECL(In_quest, (d_level *));
  598.  E boolean FDECL(In_mines, (d_level *));
  599.  E branch *FDECL(dungeon_branch, (const char *));
  600.  E boolean FDECL(at_dgn_entrance, (const char *));
  601.  E boolean FDECL(In_hell, (d_level *));
  602.  E boolean FDECL(In_V_tower, (d_level *));
  603.  E boolean FDECL(On_W_tower_level, (d_level *));
  604.  E boolean FDECL(In_W_tower, (int, int, d_level *));
  605.  E void FDECL(find_hell, (d_level *));
  606.  E void FDECL(goto_hell, (BOOLEAN_P, BOOLEAN_P));
  607.  E void FDECL(assign_level, (d_level *, d_level *));
  608.  E void FDECL(assign_rnd_level, (d_level *, d_level *, int));
  609.  E int FDECL(induced_align, (int));
  610.  E boolean FDECL(Invocation_lev, (d_level *));
  611.  E xchar NDECL(level_difficulty);
  612.  E schar FDECL(lev_by_name, (const char *));
  613.  E schar FDECL(print_dungeon, (BOOLEAN_P, schar *, xchar *));
  614.  E char *FDECL(get_annotation, (d_level *));
  615.  E int NDECL(donamelevel);
  616.  E int NDECL(dooverview);
  617.  E void FDECL(show_overview, (int, int));
  618.  E void FDECL(forget_mapseen, (int));
  619.  E void FDECL(rm_mapseen, (int));
  620.  E void FDECL(init_mapseen, (d_level *));
  621.  E void NDECL(recalc_mapseen);
  622.  E void FDECL(mapseen_temple, (struct monst *));
  623.  E void FDECL(room_discovered, (int));
  624.  E void FDECL(recbranch_mapseen, (d_level *, d_level *));
  625.  E void FDECL(overview_stats, (winid, const char *, long *, long *));
  626.  E void FDECL(remdun_mapseen, (int));
  627.  
  628.  /* ### eat.c ### */
  629.  
  630.  #ifdef USE_TRAMPOLI
  631.  E int NDECL(eatmdone);
  632.  E int NDECL(eatfood);
  633.  E int NDECL(opentin);
  634.  E int NDECL(unfaint);
  635.  #endif
  636.  E void NDECL(eatmupdate);
  637.  E boolean FDECL(is_edible, (struct obj *));
  638.  E void NDECL(init_uhunger);
  639.  E int NDECL(Hear_again);
  640.  E void NDECL(reset_eat);
  641.  E int NDECL(doeat);
  642.  E int FDECL(use_tin_opener, (struct obj *));
  643.  E void NDECL(gethungry);
  644.  E void FDECL(morehungry, (int));
  645.  E void FDECL(lesshungry, (int));
  646.  E boolean NDECL(is_fainted);
  647.  E void NDECL(reset_faint);
  648.  E void NDECL(violated_vegetarian);
  649.  E void FDECL(newuhs, (BOOLEAN_P));
  650.  E struct obj *FDECL(floorfood, (const char *, int));
  651.  E void NDECL(vomit);
  652.  E int FDECL(eaten_stat, (int, struct obj *));
  653.  E void FDECL(food_disappears, (struct obj *));
  654.  E void FDECL(food_substitution, (struct obj *, struct obj *));
  655.  E void FDECL(eating_conducts, (struct permonst *));
  656.  E int FDECL(eat_brains, (struct monst *, struct monst *, BOOLEAN_P, int *));
  657.  E void NDECL(fix_petrification);
  658.  E void FDECL(consume_oeaten, (struct obj *, int));
  659.  E boolean FDECL(maybe_finished_meal, (BOOLEAN_P));
  660.  E void FDECL(set_tin_variety, (struct obj *, int));
  661.  E int FDECL(tin_variety_txt, (char *, int *));
  662.  E void FDECL(tin_details, (struct obj *, int, char *));
  663.  E boolean FDECL(Popeye, (int));
  664.  
  665.  /* ### end.c ### */
  666.  
  667.  E void FDECL(done1, (int));
  668.  E int NDECL(done2);
  669.  #ifdef USE_TRAMPOLI
  670.  E void FDECL(done_intr, (int));
  671.  #endif
  672.  E void FDECL(done_in_by, (struct monst *, int));
  673.  #endif /* !MAKEDEFS_C && !LEV_LEX_C */
  674.  E void VDECL(panic, (const char *, ...)) PRINTF_F(1, 2) NORETURN;
  675.  #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
  676.  E void FDECL(done, (int));
  677.  E void FDECL(container_contents, (struct obj *, BOOLEAN_P,
  678.                                    BOOLEAN_P, BOOLEAN_P));
  679.  E void FDECL(nh_terminate, (int)) NORETURN;
  680.  E int NDECL(dovanquished);
  681.  E int NDECL(num_genocides);
  682.  E void FDECL(delayed_killer, (int, int, const char *));
  683.  E struct kinfo *FDECL(find_delayed_killer, (int));
  684.  E void FDECL(dealloc_killer, (struct kinfo *));
  685.  E void FDECL(save_killers, (int, int));
  686.  E void FDECL(restore_killers, (int));
  687.  E char *FDECL(build_english_list, (char *));
  688.  #if defined(PANICTRACE) && !defined(NO_SIGNAL)
  689.  E void FDECL(panictrace_setsignals, (BOOLEAN_P));
  690.  #endif
  691.  
  692.  /* ### engrave.c ### */
  693.  
  694.  E char *FDECL(random_engraving, (char *));
  695.  E void FDECL(wipeout_text, (char *, int, unsigned));
  696.  E boolean FDECL(can_reach_floor, (BOOLEAN_P));
  697.  E void FDECL(cant_reach_floor, (int, int, BOOLEAN_P, BOOLEAN_P));
  698.  E const char *FDECL(surface, (int, int));
  699.  E const char *FDECL(ceiling, (int, int));
  700.  E struct engr *FDECL(engr_at, (XCHAR_P, XCHAR_P));
  701.  E int FDECL(sengr_at, (const char *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  702.  E void FDECL(u_wipe_engr, (int));
  703.  E void FDECL(wipe_engr_at, (XCHAR_P, XCHAR_P, XCHAR_P, BOOLEAN_P));
  704.  E void FDECL(read_engr_at, (int, int));
  705.  E void FDECL(make_engr_at, (int, int, const char *, long, XCHAR_P));
  706.  E void FDECL(del_engr_at, (int, int));
  707.  E int NDECL(freehand);
  708.  E int NDECL(doengrave);
  709.  E void NDECL(sanitize_engravings);
  710.  E void FDECL(save_engravings, (int, int));
  711.  E void FDECL(rest_engravings, (int));
  712.  E void FDECL(engr_stats, (const char *, char *, long *, long *));
  713.  E void FDECL(del_engr, (struct engr *));
  714.  E void FDECL(rloc_engr, (struct engr *));
  715.  E void FDECL(make_grave, (int, int, const char *));
  716.  
  717.  /* ### exper.c ### */
  718.  
  719.  E int NDECL(newpw);
  720.  E int FDECL(experience, (struct monst *, int));
  721.  E void FDECL(more_experienced, (int, int));
  722.  E void FDECL(losexp, (const char *));
  723.  E void NDECL(newexplevel);
  724.  E void FDECL(pluslvl, (BOOLEAN_P));
  725.  E long FDECL(rndexp, (BOOLEAN_P));
  726.  
  727.  /* ### explode.c ### */
  728.  
  729.  E void FDECL(explode, (int, int, int, int, CHAR_P, int));
  730.  E long FDECL(scatter, (int, int, int, unsigned int, struct obj *));
  731.  E void FDECL(splatter_burning_oil, (int, int));
  732.  E void FDECL(explode_oil, (struct obj *, int, int));
  733.  
  734.  /* ### extralev.c ### */
  735.  
  736.  E void NDECL(makeroguerooms);
  737.  E void FDECL(corr, (int, int));
  738.  E void NDECL(makerogueghost);
  739.  
  740.  /* ### files.c ### */
  741.  
  742.  E char *FDECL(fname_encode, (const char *, CHAR_P, char *, char *, int));
  743.  E char *FDECL(fname_decode, (CHAR_P, char *, char *, int));
  744.  E const char *FDECL(fqname, (const char *, int, int));
  745.  E FILE *FDECL(fopen_datafile, (const char *, const char *, int));
  746.  #ifdef MFLOPPY
  747.  E void NDECL(set_lock_and_bones);
  748.  #endif
  749.  E void FDECL(set_levelfile_name, (char *, int));
  750.  E int FDECL(create_levelfile, (int, char *));
  751.  E int FDECL(open_levelfile, (int, char *));
  752.  E void FDECL(delete_levelfile, (int));
  753.  E void NDECL(clearlocks);
  754.  E int FDECL(create_bonesfile, (d_level *, char **, char *));
  755.  #ifdef MFLOPPY
  756.  E void NDECL(cancel_bonesfile);
  757.  #endif
  758.  E void FDECL(commit_bonesfile, (d_level *));
  759.  E int FDECL(open_bonesfile, (d_level *, char **));
  760.  E int FDECL(delete_bonesfile, (d_level *));
  761.  E void NDECL(compress_bonesfile);
  762.  E void FDECL(set_savefile_name, (BOOLEAN_P));
  763.  #ifdef INSURANCE
  764.  E void FDECL(save_savefile_name, (int));
  765.  #endif
  766.  #ifndef MICRO
  767.  E void NDECL(set_error_savefile);
  768.  #endif
  769.  E int NDECL(create_savefile);
  770.  E int NDECL(open_savefile);
  771.  E int NDECL(delete_savefile);
  772.  E int NDECL(restore_saved_game);
  773.  E void FDECL(nh_compress, (const char *));
  774.  E void FDECL(nh_uncompress, (const char *));
  775.  E boolean FDECL(lock_file, (const char *, int, int));
  776.  E void FDECL(unlock_file, (const char *));
  777.  #ifdef USER_SOUNDS
  778.  E boolean FDECL(can_read_file, (const char *));
  779.  #endif
  780.  E void FDECL(config_error_init, (BOOLEAN_P, const char *, BOOLEAN_P));
  781.  E void FDECL(config_error_add, (const char *, ...)) PRINTF_F(1, 2);
  782.  E int NDECL(config_error_done);
  783.  E boolean FDECL(read_config_file, (const char *, int));
  784.  E void FDECL(check_recordfile, (const char *));
  785.  E void NDECL(read_wizkit);
  786.  E int FDECL(read_sym_file, (int));
  787.  E int FDECL(parse_sym_line, (char *, int));
  788.  E void FDECL(paniclog, (const char *, const char *));
  789.  E int FDECL(validate_prefix_locations, (char *));
  790.  #ifdef SELECTSAVED
  791.  E char *FDECL(plname_from_file, (const char *));
  792.  #endif
  793.  E char **NDECL(get_saved_games);
  794.  E void FDECL(free_saved_games, (char **));
  795.  #ifdef SELF_RECOVER
  796.  E boolean NDECL(recover_savefile);
  797.  #endif
  798.  #ifdef SYSCF_FILE
  799.  E void NDECL(assure_syscf_file);
  800.  #endif
  801.  E int FDECL(nhclose, (int));
  802.  #ifdef HOLD_LOCKFILE_OPEN
  803.  E void NDECL(really_close);
  804.  #endif
  805.  #ifdef DEBUG
  806.  E boolean FDECL(debugcore, (const char *, BOOLEAN_P));
  807.  #endif
  808.  E boolean FDECL(read_tribute, (const char *, const char *, int,
  809.                                 char *, int, unsigned));
  810.  E boolean FDECL(Death_quote, (char *, int));
  811.  
  812.  /* ### fountain.c ### */
  813.  
  814.  E void FDECL(floating_above, (const char *));
  815.  E void FDECL(dogushforth, (int));
  816.  #ifdef USE_TRAMPOLI
  817.  E void FDECL(gush, (int, int, genericptr_t));
  818.  #endif
  819.  E void FDECL(dryup, (XCHAR_P, XCHAR_P, BOOLEAN_P));
  820.  E void NDECL(drinkfountain);
  821.  E void FDECL(dipfountain, (struct obj *));
  822.  E void FDECL(breaksink, (int, int));
  823.  E void NDECL(drinksink);
  824.  
  825.  /* ### hack.c ### */
  826.  
  827.  E boolean FDECL(is_valid_travelpt, (int,int));
  828.  E anything *FDECL(uint_to_any, (unsigned));
  829.  E anything *FDECL(long_to_any, (long));
  830.  E anything *FDECL(monst_to_any, (struct monst *));
  831.  E anything *FDECL(obj_to_any, (struct obj *));
  832.  E boolean FDECL(revive_nasty, (int, int, const char *));
  833.  E void FDECL(movobj, (struct obj *, XCHAR_P, XCHAR_P));
  834.  E boolean FDECL(may_dig, (XCHAR_P, XCHAR_P));
  835.  E boolean FDECL(may_passwall, (XCHAR_P, XCHAR_P));
  836.  E boolean FDECL(bad_rock, (struct permonst *, XCHAR_P, XCHAR_P));
  837.  E int FDECL(cant_squeeze_thru, (struct monst *));
  838.  E boolean FDECL(invocation_pos, (XCHAR_P, XCHAR_P));
  839.  E boolean FDECL(test_move, (int, int, int, int, int));
  840.  #ifdef DEBUG
  841.  E int NDECL(wiz_debug_cmd_traveldisplay);
  842.  #endif
  843.  E boolean NDECL(u_rooted);
  844.  E void NDECL(domove);
  845.  E boolean NDECL(overexertion);
  846.  E void NDECL(invocation_message);
  847.  E boolean FDECL(pooleffects, (BOOLEAN_P));
  848.  E void FDECL(spoteffects, (BOOLEAN_P));
  849.  E char *FDECL(in_rooms, (XCHAR_P, XCHAR_P, int));
  850.  E boolean FDECL(in_town, (int, int));
  851.  E void FDECL(check_special_room, (BOOLEAN_P));
  852.  E int NDECL(dopickup);
  853.  E void NDECL(lookaround);
  854.  E boolean FDECL(crawl_destination, (int, int));
  855.  E int NDECL(monster_nearby);
  856.  E void FDECL(nomul, (int));
  857.  E void FDECL(unmul, (const char *));
  858.  E void FDECL(losehp, (int, const char *, BOOLEAN_P));
  859.  E int NDECL(weight_cap);
  860.  E int NDECL(inv_weight);
  861.  E int NDECL(near_capacity);
  862.  E int FDECL(calc_capacity, (int));
  863.  E int NDECL(max_capacity);
  864.  E boolean FDECL(check_capacity, (const char *));
  865.  E int FDECL(inv_cnt, (BOOLEAN_P));
  866.  E long FDECL(money_cnt, (struct obj *));
  867.  
  868.  /* ### hacklib.c ### */
  869.  
  870.  E boolean FDECL(digit, (CHAR_P));
  871.  E boolean FDECL(letter, (CHAR_P));
  872.  E char FDECL(highc, (CHAR_P));
  873.  E char FDECL(lowc, (CHAR_P));
  874.  E char *FDECL(lcase, (char *));
  875.  E char *FDECL(ucase, (char *));
  876.  E char *FDECL(upstart, (char *));
  877.  E char *FDECL(mungspaces, (char *));
  878.  E char *FDECL(trimspaces, (char *));
  879.  E char *FDECL(strip_newline, (char *));
  880.  E char *FDECL(stripchars, (char *, const char *, const char *));
  881.  E char *FDECL(eos, (char *));
  882.  E boolean FDECL(str_end_is, (const char *, const char *));
  883.  E char *FDECL(strkitten, (char *, CHAR_P));
  884.  E void FDECL(copynchars, (char *, const char *, int));
  885.  E char FDECL(chrcasecpy, (int, int));
  886.  E char *FDECL(strcasecpy, (char *, const char *));
  887.  E char *FDECL(s_suffix, (const char *));
  888.  E char *FDECL(ing_suffix, (const char *));
  889.  E char *FDECL(xcrypt, (const char *, char *));
  890.  E boolean FDECL(onlyspace, (const char *));
  891.  E char *FDECL(tabexpand, (char *));
  892.  E char *FDECL(visctrl, (CHAR_P));
  893.  E char *FDECL(strsubst, (char *, const char *, const char *));
  894.  E int FDECL(strNsubst, (char *, const char *, const char *, int));
  895.  E const char *FDECL(ordin, (int));
  896.  E char *FDECL(sitoa, (int));
  897.  E int FDECL(sgn, (int));
  898.  E int FDECL(rounddiv, (long, int));
  899.  E int FDECL(dist2, (int, int, int, int));
  900.  E int FDECL(isqrt, (int));
  901.  E int FDECL(distmin, (int, int, int, int));
  902.  E boolean FDECL(online2, (int, int, int, int));
  903.  E boolean FDECL(pmatch, (const char *, const char *));
  904.  E boolean FDECL(pmatchi, (const char *, const char *));
  905.  E boolean FDECL(pmatchz, (const char *, const char *));
  906.  #ifndef STRNCMPI
  907.  E int FDECL(strncmpi, (const char *, const char *, int));
  908.  #endif
  909.  #ifndef STRSTRI
  910.  E char *FDECL(strstri, (const char *, const char *));
  911.  #endif
  912.  E boolean
  913.  FDECL(fuzzymatch, (const char *, const char *, const char *, BOOLEAN_P));
  914.  E void NDECL(setrandom);
  915.  E time_t NDECL(getnow);
  916.  E int NDECL(getyear);
  917.  #if 0
  918.  E char *FDECL(yymmdd, (time_t));
  919.  #endif
  920.  E long FDECL(yyyymmdd, (time_t));
  921.  E long FDECL(hhmmss, (time_t));
  922.  E char *FDECL(yyyymmddhhmmss, (time_t));
  923.  E time_t FDECL(time_from_yyyymmddhhmmss, (char *));
  924.  E int NDECL(phase_of_the_moon);
  925.  E boolean NDECL(friday_13th);
  926.  E int NDECL(night);
  927.  E int NDECL(midnight);
  928.  E void FDECL(strbuf_init, (strbuf_t *));
  929.  E void FDECL(strbuf_append, (strbuf_t *, const char *));
  930.  E void FDECL(strbuf_reserve, (strbuf_t *, int));
  931.  E void FDECL(strbuf_empty, (strbuf_t *));
  932.  E void FDECL(strbuf_nl_to_crlf, (strbuf_t *));
  933.  
  934.  /* ### invent.c ### */
  935.  
  936.  E void FDECL(sortloot, (struct obj **, unsigned, BOOLEAN_P));
  937.  E void FDECL(assigninvlet, (struct obj *));
  938.  E struct obj *FDECL(merge_choice, (struct obj *, struct obj *));
  939.  E int FDECL(merged, (struct obj **, struct obj **));
  940.  #ifdef USE_TRAMPOLI
  941.  E int FDECL(ckunpaid, (struct obj *));
  942.  #endif
  943.  E void FDECL(addinv_core1, (struct obj *));
  944.  E void FDECL(addinv_core2, (struct obj *));
  945.  E struct obj *FDECL(addinv, (struct obj *));
  946.  E struct obj *FDECL(hold_another_object,
  947.                      (struct obj *, const char *, const char *, const char *));
  948.  E void FDECL(useupall, (struct obj *));
  949.  E void FDECL(useup, (struct obj *));
  950.  E void FDECL(consume_obj_charge, (struct obj *, BOOLEAN_P));
  951.  E void FDECL(freeinv_core, (struct obj *));
  952.  E void FDECL(freeinv, (struct obj *));
  953.  E void FDECL(delallobj, (int, int));
  954.  E void FDECL(delobj, (struct obj *));
  955.  E struct obj *FDECL(sobj_at, (int, int, int));
  956.  E struct obj *FDECL(nxtobj, (struct obj *, int, BOOLEAN_P));
  957.  E struct obj *FDECL(carrying, (int));
  958.  E boolean NDECL(have_lizard);
  959.  E struct obj *NDECL(u_have_novel);
  960.  E struct obj *FDECL(o_on, (unsigned int, struct obj *));
  961.  E boolean FDECL(obj_here, (struct obj *, int, int));
  962.  E boolean NDECL(wearing_armor);
  963.  E boolean FDECL(is_worn, (struct obj *));
  964.  E struct obj *FDECL(g_at, (int, int));
  965.  E boolean FDECL(splittable, (struct obj *));
  966.  E struct obj *FDECL(getobj, (const char *, const char *));
  967.  E int FDECL(ggetobj, (const char *, int (*)(OBJ_P), int,
  968.                        BOOLEAN_P, unsigned *));
  969.  E int FDECL(askchain, (struct obj **, const char *, int, int (*)(OBJ_P),
  970.                         int (*)(OBJ_P), int, const char *));
  971.  E void FDECL(fully_identify_obj, (struct obj *));
  972.  E int FDECL(identify, (struct obj *));
  973.  E void FDECL(identify_pack, (int, BOOLEAN_P));
  974.  E void NDECL(learn_unseen_invent);
  975.  E void FDECL(prinv, (const char *, struct obj *, long));
  976.  E char *FDECL(xprname,
  977.                (struct obj *, const char *, CHAR_P, BOOLEAN_P, long, long));
  978.  E int NDECL(ddoinv);
  979.  E char FDECL(display_inventory, (const char *, BOOLEAN_P));
  980.  E int FDECL(display_binventory, (int, int, BOOLEAN_P));
  981.  E struct obj *FDECL(display_cinventory, (struct obj *));
  982.  E struct obj *FDECL(display_minventory, (struct monst *, int, char *));
  983.  E int NDECL(dotypeinv);
  984.  E const char *FDECL(dfeature_at, (int, int, char *));
  985.  E int FDECL(look_here, (int, BOOLEAN_P));
  986.  E int NDECL(dolook);
  987.  E boolean FDECL(will_feel_cockatrice, (struct obj *, BOOLEAN_P));
  988.  E void FDECL(feel_cockatrice, (struct obj *, BOOLEAN_P));
  989.  E void FDECL(stackobj, (struct obj *));
  990.  E boolean FDECL(mergable, (struct obj *, struct obj *));
  991.  E int NDECL(doprgold);
  992.  E int NDECL(doprwep);
  993.  E int NDECL(doprarm);
  994.  E int NDECL(doprring);
  995.  E int NDECL(dopramulet);
  996.  E int NDECL(doprtool);
  997.  E int NDECL(doprinuse);
  998.  E void FDECL(useupf, (struct obj *, long));
  999.  E char *FDECL(let_to_name, (CHAR_P, BOOLEAN_P, BOOLEAN_P));
  1000.  E void NDECL(free_invbuf);
  1001.  E void NDECL(reassign);
  1002.  E int NDECL(doorganize);
  1003.  E void NDECL(free_pickinv_cache);
  1004.  E int FDECL(count_unpaid, (struct obj *));
  1005.  E int FDECL(count_buc, (struct obj *, int, boolean (*)(OBJ_P)));
  1006.  E void FDECL(tally_BUCX, (struct obj *, BOOLEAN_P,
  1007.                            int *, int *, int *, int *, int *));
  1008.  E long FDECL(count_contents, (struct obj *, BOOLEAN_P, BOOLEAN_P, BOOLEAN_P));
  1009.  E void FDECL(carry_obj_effects, (struct obj *));
  1010.  E const char *FDECL(currency, (long));
  1011.  E void FDECL(silly_thing, (const char *, struct obj *));
  1012.  
  1013.  /* ### ioctl.c ### */
  1014.  
  1015.  #if defined(UNIX) || defined(__BEOS__)
  1016.  E void NDECL(getwindowsz);
  1017.  E void NDECL(getioctls);
  1018.  E void NDECL(setioctls);
  1019.  #ifdef SUSPEND
  1020.  E int NDECL(dosuspend);
  1021.  #endif /* SUSPEND */
  1022.  #endif /* UNIX || __BEOS__ */
  1023.  
  1024.  /* ### light.c ### */
  1025.  
  1026.  E void FDECL(new_light_source, (XCHAR_P, XCHAR_P, int, int, ANY_P *));
  1027.  E void FDECL(del_light_source, (int, ANY_P *));
  1028.  E void FDECL(do_light_sources, (char **));
  1029.  E struct monst *FDECL(find_mid, (unsigned, unsigned));
  1030.  E void FDECL(save_light_sources, (int, int, int));
  1031.  E void FDECL(restore_light_sources, (int));
  1032.  E void FDECL(light_stats, (const char *, char *, long *, long *));
  1033.  E void FDECL(relink_light_sources, (BOOLEAN_P));
  1034.  E void NDECL(light_sources_sanity_check);
  1035.  E void FDECL(obj_move_light_source, (struct obj *, struct obj *));
  1036.  E boolean NDECL(any_light_source);
  1037.  E void FDECL(snuff_light_source, (int, int));
  1038.  E boolean FDECL(obj_sheds_light, (struct obj *));
  1039.  E boolean FDECL(obj_is_burning, (struct obj *));
  1040.  E void FDECL(obj_split_light_source, (struct obj *, struct obj *));
  1041.  E void FDECL(obj_merge_light_sources, (struct obj *, struct obj *));
  1042.  E void FDECL(obj_adjust_light_radius, (struct obj *, int));
  1043.  E int FDECL(candle_light_range, (struct obj *));
  1044.  E int FDECL(arti_light_radius, (struct obj *));
  1045.  E const char *FDECL(arti_light_description, (struct obj *));
  1046.  E int NDECL(wiz_light_sources);
  1047.  
  1048.  /* ### lock.c ### */
  1049.  
  1050.  #ifdef USE_TRAMPOLI
  1051.  E int NDECL(forcelock);
  1052.  E int NDECL(picklock);
  1053.  #endif
  1054.  E boolean FDECL(picking_lock, (int *, int *));
  1055.  E boolean FDECL(picking_at, (int, int));
  1056.  E void FDECL(breakchestlock, (struct obj *, BOOLEAN_P));
  1057.  E void NDECL(reset_pick);
  1058.  E void NDECL(maybe_reset_pick);
  1059.  E int FDECL(pick_lock, (struct obj *));
  1060.  E int NDECL(doforce);
  1061.  E boolean FDECL(boxlock, (struct obj *, struct obj *));
  1062.  E boolean FDECL(doorlock, (struct obj *, int, int));
  1063.  E int NDECL(doopen);
  1064.  E boolean FDECL(stumble_on_door_mimic, (int, int));
  1065.  E int FDECL(doopen_indir, (int, int));
  1066.  E int NDECL(doclose);
  1067.  
  1068.  #ifdef MAC
  1069.  /* These declarations are here because the main code calls them. */
  1070.  
  1071.  /* ### macfile.c ### */
  1072.  
  1073.  E int FDECL(maccreat, (const char *, long));
  1074.  E int FDECL(macopen, (const char *, int, long));
  1075.  E int FDECL(macclose, (int));
  1076.  E int FDECL(macread, (int, void *, unsigned));
  1077.  E int FDECL(macwrite, (int, void *, unsigned));
  1078.  E long FDECL(macseek, (int, long, short));
  1079.  E int FDECL(macunlink, (const char *));
  1080.  
  1081.  /* ### macmain.c ### */
  1082.  
  1083.  E boolean NDECL(authorize_wizard_mode);
  1084.  
  1085.  /* ### macsnd.c ### */
  1086.  
  1087.  E void FDECL(mac_speaker, (struct obj *, char *));
  1088.  
  1089.  /* ### macunix.c ### */
  1090.  
  1091.  E void FDECL(regularize, (char *));
  1092.  E void NDECL(getlock);
  1093.  
  1094.  /* ### macwin.c ### */
  1095.  
  1096.  E void FDECL(lock_mouse_cursor, (Boolean));
  1097.  E int NDECL(SanePositions);
  1098.  
  1099.  /* ### mttymain.c ### */
  1100.  
  1101.  E void FDECL(getreturn, (char *));
  1102.  E void VDECL(msmsg, (const char *, ...));
  1103.  E void NDECL(gettty);
  1104.  E void NDECL(setftty);
  1105.  E void FDECL(settty, (const char *));
  1106.  E int NDECL(tgetch);
  1107.  E void FDECL(cmov, (int x, int y));
  1108.  E void FDECL(nocmov, (int x, int y));
  1109.  
  1110.  #endif /* MAC */
  1111.  
  1112.  /* ### mail.c ### */
  1113.  
  1114.  #ifdef MAIL
  1115.  #ifdef UNIX
  1116.  E void NDECL(free_maildata);
  1117.  E void NDECL(getmailstatus);
  1118.  E void NDECL(ck_server_admin_msg);
  1119.  #endif
  1120.  E void NDECL(ckmailstatus);
  1121.  E void FDECL(readmail, (struct obj *));
  1122.  #endif /* MAIL */
  1123.  
  1124.  /* ### makemon.c ### */
  1125.  
  1126.  E void FDECL(dealloc_monst, (struct monst *));
  1127.  E boolean FDECL(is_home_elemental, (struct permonst *));
  1128.  E struct monst *FDECL(clone_mon, (struct monst *, XCHAR_P, XCHAR_P));
  1129.  E int FDECL(monhp_per_lvl, (struct monst *));
  1130.  E void FDECL(newmonhp, (struct monst *, int));
  1131.  E struct mextra *NDECL(newmextra);
  1132.  E void FDECL(copy_mextra, (struct monst *, struct monst *));
  1133.  E void FDECL(dealloc_mextra, (struct monst *));
  1134.  E struct monst *FDECL(makemon, (struct permonst *, int, int, int));
  1135.  E boolean FDECL(create_critters, (int, struct permonst *, BOOLEAN_P));
  1136.  E struct permonst *NDECL(rndmonst);
  1137.  E void FDECL(reset_rndmonst, (int));
  1138.  E struct permonst *FDECL(mkclass, (CHAR_P, int));
  1139.  E int FDECL(mkclass_poly, (int));
  1140.  E int FDECL(adj_lev, (struct permonst *));
  1141.  E struct permonst *FDECL(grow_up, (struct monst *, struct monst *));
  1142.  E int FDECL(mongets, (struct monst *, int));
  1143.  E int FDECL(golemhp, (int));
  1144.  E boolean FDECL(peace_minded, (struct permonst *));
  1145.  E void FDECL(set_malign, (struct monst *));
  1146.  E void FDECL(newmcorpsenm, (struct monst *));
  1147.  E void FDECL(freemcorpsenm, (struct monst *));
  1148.  E void FDECL(set_mimic_sym, (struct monst *));
  1149.  E int FDECL(mbirth_limit, (int));
  1150.  E void FDECL(mimic_hit_msg, (struct monst *, SHORT_P));
  1151.  E void FDECL(mkmonmoney, (struct monst *, long));
  1152.  E int FDECL(bagotricks, (struct obj *, BOOLEAN_P, int *));
  1153.  E boolean FDECL(propagate, (int, BOOLEAN_P, BOOLEAN_P));
  1154.  E boolean FDECL(usmellmon, (struct permonst *));
  1155.  
  1156.  /* ### mapglyph.c ### */
  1157.  
  1158.  E int FDECL(mapglyph, (int, int *, int *, unsigned *, int, int));
  1159.  E char *FDECL(encglyph, (int));
  1160.  E void FDECL(genl_putmixed, (winid, int, const char *));
  1161.  
  1162.  /* ### mcastu.c ### */
  1163.  
  1164.  E int FDECL(castmu, (struct monst *, struct attack *, BOOLEAN_P, BOOLEAN_P));
  1165.  E int FDECL(buzzmu, (struct monst *, struct attack *));
  1166.  
  1167.  /* ### mhitm.c ### */
  1168.  
  1169.  E int FDECL(fightm, (struct monst *));
  1170.  E int FDECL(mattackm, (struct monst *, struct monst *));
  1171.  E boolean FDECL(engulf_target, (struct monst *, struct monst *));
  1172.  E int FDECL(mdisplacem, (struct monst *, struct monst *, BOOLEAN_P));
  1173.  E void FDECL(paralyze_monst, (struct monst *, int));
  1174.  E int FDECL(sleep_monst, (struct monst *, int, int));
  1175.  E void FDECL(slept_monst, (struct monst *));
  1176.  E void FDECL(xdrainenergym, (struct monst *, BOOLEAN_P));
  1177.  E long FDECL(attk_protection, (int));
  1178.  E void FDECL(rustm, (struct monst *, struct obj *));
  1179.  
  1180.  /* ### mhitu.c ### */
  1181.  
  1182.  E const char *FDECL(mpoisons_subj, (struct monst *, struct attack *));
  1183.  E void NDECL(u_slow_down);
  1184.  E struct monst *NDECL(cloneu);
  1185.  E void FDECL(expels, (struct monst *, struct permonst *, BOOLEAN_P));
  1186.  E struct attack *FDECL(getmattk, (struct monst *, struct monst *,
  1187.                                    int, int *, struct attack *));
  1188.  E int FDECL(mattacku, (struct monst *));
  1189.  E int FDECL(magic_negation, (struct monst *));
  1190.  E boolean NDECL(gulp_blnd_check);
  1191.  E int FDECL(gazemu, (struct monst *, struct attack *));
  1192.  E void FDECL(mdamageu, (struct monst *, int));
  1193.  E int FDECL(could_seduce, (struct monst *, struct monst *, struct attack *));
  1194.  E int FDECL(doseduce, (struct monst *));
  1195.  
  1196.  /* ### minion.c ### */
  1197.  
  1198.  E void FDECL(newemin, (struct monst *));
  1199.  E void FDECL(free_emin, (struct monst *));
  1200.  E int FDECL(monster_census, (BOOLEAN_P));
  1201.  E int FDECL(msummon, (struct monst *));
  1202.  E void FDECL(summon_minion, (ALIGNTYP_P, BOOLEAN_P));
  1203.  E int FDECL(demon_talk, (struct monst *));
  1204.  E long FDECL(bribe, (struct monst *));
  1205.  E int FDECL(dprince, (ALIGNTYP_P));
  1206.  E int FDECL(dlord, (ALIGNTYP_P));
  1207.  E int NDECL(llord);
  1208.  E int FDECL(ndemon, (ALIGNTYP_P));
  1209.  E int NDECL(lminion);
  1210.  E void FDECL(lose_guardian_angel, (struct monst *));
  1211.  E void NDECL(gain_guardian_angel);
  1212.  
  1213.  /* ### mklev.c ### */
  1214.  
  1215.  #ifdef USE_TRAMPOLI
  1216.  E int FDECL(do_comp, (genericptr_t, genericptr_t));
  1217.  #endif
  1218.  E void NDECL(sort_rooms);
  1219.  E void FDECL(add_room, (int, int, int, int, BOOLEAN_P, SCHAR_P, BOOLEAN_P));
  1220.  E void FDECL(add_subroom, (struct mkroom *, int, int, int, int, BOOLEAN_P,
  1221.                             SCHAR_P, BOOLEAN_P));
  1222.  E void NDECL(makecorridors);
  1223.  E void FDECL(add_door, (int, int, struct mkroom *));
  1224.  E void NDECL(mklev);
  1225.  #ifdef SPECIALIZATION
  1226.  E void FDECL(topologize, (struct mkroom *, BOOLEAN_P));
  1227.  #else
  1228.  E void FDECL(topologize, (struct mkroom *));
  1229.  #endif
  1230.  E void FDECL(place_branch, (branch *, XCHAR_P, XCHAR_P));
  1231.  E boolean FDECL(occupied, (XCHAR_P, XCHAR_P));
  1232.  E int FDECL(okdoor, (XCHAR_P, XCHAR_P));
  1233.  E void FDECL(dodoor, (int, int, struct mkroom *));
  1234.  E void FDECL(mktrap, (int, int, struct mkroom *, coord *));
  1235.  E void FDECL(mkstairs, (XCHAR_P, XCHAR_P, CHAR_P, struct mkroom *));
  1236.  E void NDECL(mkinvokearea);
  1237.  E void FDECL(mineralize, (int, int, int, int, BOOLEAN_P));
  1238.  
  1239.  /* ### mkmap.c ### */
  1240.  
  1241.  E void FDECL(flood_fill_rm, (int, int, int, BOOLEAN_P, BOOLEAN_P));
  1242.  E void FDECL(remove_rooms, (int, int, int, int));
  1243.  /* E void FDECL(mkmap, (lev_init *)); -- need sp_lev.h for lev_init */
  1244.  
  1245.  /* ### mkmaze.c ### */
  1246.  
  1247.  E void FDECL(wallification, (int, int, int, int));
  1248.  E void FDECL(fix_wall_spines, (int, int, int, int));
  1249.  E void FDECL(walkfrom, (int, int, SCHAR_P));
  1250.  E void FDECL(makemaz, (const char *));
  1251.  E void FDECL(mazexy, (coord *));
  1252.  E void NDECL(bound_digging);
  1253.  E void FDECL(mkportal, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P));
  1254.  E boolean FDECL(bad_location, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P,
  1255.                                 XCHAR_P, XCHAR_P));
  1256.  E void FDECL(place_lregion, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P,
  1257.                               XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, d_level *));
  1258.  E void NDECL(fixup_special);
  1259.  E void NDECL(fumaroles);
  1260.  E void NDECL(movebubbles);
  1261.  E void NDECL(water_friction);
  1262.  E void FDECL(save_waterlevel, (int, int));
  1263.  E void FDECL(restore_waterlevel, (int));
  1264.  E const char *FDECL(waterbody_name, (XCHAR_P, XCHAR_P));
  1265.  
  1266.  /* ### mkobj.c ### */
  1267.  
  1268.  E struct oextra *NDECL(newoextra);
  1269.  E void FDECL(copy_oextra, (struct obj *, struct obj *));
  1270.  E void FDECL(dealloc_oextra, (struct obj *));
  1271.  E void FDECL(newomonst, (struct obj *));
  1272.  E void FDECL(free_omonst, (struct obj *));
  1273.  E void FDECL(newomid, (struct obj *));
  1274.  E void FDECL(free_omid, (struct obj *));
  1275.  E void FDECL(newolong, (struct obj *));
  1276.  E void FDECL(free_olong, (struct obj *));
  1277.  E void FDECL(new_omailcmd, (struct obj *, const char *));
  1278.  E void FDECL(free_omailcmd, (struct obj *));
  1279.  E struct obj *FDECL(mkobj_at, (CHAR_P, int, int, BOOLEAN_P));
  1280.  E struct obj *FDECL(mksobj_at, (int, int, int, BOOLEAN_P, BOOLEAN_P));
  1281.  E struct obj *FDECL(mkobj, (CHAR_P, BOOLEAN_P));
  1282.  E int NDECL(rndmonnum);
  1283.  E boolean FDECL(bogon_is_pname, (CHAR_P));
  1284.  E struct obj *FDECL(splitobj, (struct obj *, long));
  1285.  E struct obj *FDECL(unsplitobj, (struct obj *));
  1286.  E void NDECL(clear_splitobjs);
  1287.  E void FDECL(replace_object, (struct obj *, struct obj *));
  1288.  E struct obj *FDECL(unknwn_contnr_contents, (struct obj *));
  1289.  E void FDECL(bill_dummy_object, (struct obj *));
  1290.  E void FDECL(costly_alteration, (struct obj *, int));
  1291.  E struct obj *FDECL(mksobj, (int, BOOLEAN_P, BOOLEAN_P));
  1292.  E int FDECL(bcsign, (struct obj *));
  1293.  E int FDECL(weight, (struct obj *));
  1294.  E struct obj *FDECL(mkgold, (long, int, int));
  1295.  E struct obj *FDECL(mkcorpstat, (int, struct monst *, struct permonst *, int,
  1296.                                   int, unsigned));
  1297.  E int FDECL(corpse_revive_type, (struct obj *));
  1298.  E struct obj *FDECL(obj_attach_mid, (struct obj *, unsigned));
  1299.  E struct monst *FDECL(get_mtraits, (struct obj *, BOOLEAN_P));
  1300.  E struct obj *FDECL(mk_tt_object, (int, int, int));
  1301.  E struct obj *FDECL(mk_named_object,
  1302.                      (int, struct permonst *, int, int, const char *));
  1303.  E struct obj *FDECL(rnd_treefruit_at, (int, int));
  1304.  E void FDECL(set_corpsenm, (struct obj *, int));
  1305.  E void FDECL(start_corpse_timeout, (struct obj *));
  1306.  E void FDECL(bless, (struct obj *));
  1307.  E void FDECL(unbless, (struct obj *));
  1308.  E void FDECL(curse, (struct obj *));
  1309.  E void FDECL(uncurse, (struct obj *));
  1310.  E void FDECL(blessorcurse, (struct obj *, int));
  1311.  E boolean FDECL(is_flammable, (struct obj *));
  1312.  E boolean FDECL(is_rottable, (struct obj *));
  1313.  E void FDECL(place_object, (struct obj *, int, int));
  1314.  E void FDECL(remove_object, (struct obj *));
  1315.  E void FDECL(discard_minvent, (struct monst *));
  1316.  E void FDECL(obj_extract_self, (struct obj *));
  1317.  E void FDECL(extract_nobj, (struct obj *, struct obj **));
  1318.  E void FDECL(extract_nexthere, (struct obj *, struct obj **));
  1319.  E int FDECL(add_to_minv, (struct monst *, struct obj *));
  1320.  E struct obj *FDECL(add_to_container, (struct obj *, struct obj *));
  1321.  E void FDECL(add_to_migration, (struct obj *));
  1322.  E void FDECL(add_to_buried, (struct obj *));
  1323.  E void FDECL(dealloc_obj, (struct obj *));
  1324.  E void FDECL(obj_ice_effects, (int, int, BOOLEAN_P));
  1325.  E long FDECL(peek_at_iced_corpse_age, (struct obj *));
  1326.  E int FDECL(hornoplenty, (struct obj *, BOOLEAN_P));
  1327.  E void NDECL(obj_sanity_check);
  1328.  E struct obj *FDECL(obj_nexto, (struct obj *));
  1329.  E struct obj *FDECL(obj_nexto_xy, (struct obj *, int, int, BOOLEAN_P));
  1330.  E struct obj *FDECL(obj_absorb, (struct obj **, struct obj **));
  1331.  E struct obj *FDECL(obj_meld, (struct obj **, struct obj **));
  1332.  E void FDECL(pudding_merge_message, (struct obj *, struct obj *));
  1333.  
  1334.  /* ### mkroom.c ### */
  1335.  
  1336.  E void FDECL(mkroom, (int));
  1337.  E void FDECL(fill_zoo, (struct mkroom *));
  1338.  E struct permonst *NDECL(antholemon);
  1339.  E boolean FDECL(nexttodoor, (int, int));
  1340.  E boolean FDECL(has_dnstairs, (struct mkroom *));
  1341.  E boolean FDECL(has_upstairs, (struct mkroom *));
  1342.  E int FDECL(somex, (struct mkroom *));
  1343.  E int FDECL(somey, (struct mkroom *));
  1344.  E boolean FDECL(inside_room, (struct mkroom *, XCHAR_P, XCHAR_P));
  1345.  E boolean FDECL(somexy, (struct mkroom *, coord *));
  1346.  E void FDECL(mkundead, (coord *, BOOLEAN_P, int));
  1347.  E struct permonst *NDECL(courtmon);
  1348.  E void FDECL(save_rooms, (int));
  1349.  E void FDECL(rest_rooms, (int));
  1350.  E struct mkroom *FDECL(search_special, (SCHAR_P));
  1351.  E int FDECL(cmap_to_type, (int));
  1352.  
  1353.  /* ### mon.c ### */
  1354.  
  1355.  E void NDECL(mon_sanity_check);
  1356.  E int FDECL(undead_to_corpse, (int));
  1357.  E int FDECL(genus, (int, int));
  1358.  E int FDECL(pm_to_cham, (int));
  1359.  E int FDECL(minliquid, (struct monst *));
  1360.  E int NDECL(movemon);
  1361.  E int FDECL(meatmetal, (struct monst *));
  1362.  E int FDECL(meatobj, (struct monst *));
  1363.  E void FDECL(mpickgold, (struct monst *));
  1364.  E boolean FDECL(mpickstuff, (struct monst *, const char *));
  1365.  E int FDECL(curr_mon_load, (struct monst *));
  1366.  E int FDECL(max_mon_load, (struct monst *));
  1367.  E int FDECL(can_carry, (struct monst *, struct obj *));
  1368.  E int FDECL(mfndpos, (struct monst *, coord *, long *, long));
  1369.  E boolean FDECL(monnear, (struct monst *, int, int));
  1370.  E void NDECL(dmonsfree);
  1371.  E int FDECL(mcalcmove, (struct monst *));
  1372.  E void NDECL(mcalcdistress);
  1373.  E void FDECL(replmon, (struct monst *, struct monst *));
  1374.  E void FDECL(relmon, (struct monst *, struct monst **));
  1375.  E struct obj *FDECL(mlifesaver, (struct monst *));
  1376.  E boolean FDECL(corpse_chance, (struct monst *, struct monst *, BOOLEAN_P));
  1377.  E void FDECL(mondead, (struct monst *));
  1378.  E void FDECL(mondied, (struct monst *));
  1379.  E void FDECL(mongone, (struct monst *));
  1380.  E void FDECL(monstone, (struct monst *));
  1381.  E void FDECL(monkilled, (struct monst *, const char *, int));
  1382.  E void FDECL(unstuck, (struct monst *));
  1383.  E void FDECL(killed, (struct monst *));
  1384.  E void FDECL(xkilled, (struct monst *, int));
  1385.  E void FDECL(mon_to_stone, (struct monst *));
  1386.  E void FDECL(m_into_limbo, (struct monst *));
  1387.  E void FDECL(mnexto, (struct monst *));
  1388.  E void FDECL(maybe_mnexto, (struct monst *));
  1389.  E boolean FDECL(mnearto, (struct monst *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  1390.  E void FDECL(m_respond, (struct monst *));
  1391.  E void FDECL(setmangry, (struct monst *, BOOLEAN_P));
  1392.  E void FDECL(wakeup, (struct monst *, BOOLEAN_P));
  1393.  E void NDECL(wake_nearby);
  1394.  E void FDECL(wake_nearto, (int, int, int));
  1395.  E void FDECL(seemimic, (struct monst *));
  1396.  E void NDECL(rescham);
  1397.  E void NDECL(restartcham);
  1398.  E void FDECL(restore_cham, (struct monst *));
  1399.  E boolean FDECL(hideunder, (struct monst *));
  1400.  E void FDECL(hide_monst, (struct monst *));
  1401.  E void FDECL(mon_animal_list, (BOOLEAN_P));
  1402.  E boolean FDECL(validvamp, (struct monst *, int *, int));
  1403.  E int FDECL(select_newcham_form, (struct monst *));
  1404.  E void FDECL(mgender_from_permonst, (struct monst *, struct permonst *));
  1405.  E int FDECL(newcham,
  1406.              (struct monst *, struct permonst *, BOOLEAN_P, BOOLEAN_P));
  1407.  E int FDECL(can_be_hatched, (int));
  1408.  E int FDECL(egg_type_from_parent, (int, BOOLEAN_P));
  1409.  E boolean FDECL(dead_species, (int, BOOLEAN_P));
  1410.  E void NDECL(kill_genocided_monsters);
  1411.  E void FDECL(golemeffects, (struct monst *, int, int));
  1412.  E boolean FDECL(angry_guards, (BOOLEAN_P));
  1413.  E void NDECL(pacify_guards);
  1414.  E void FDECL(decide_to_shapeshift, (struct monst *, int));
  1415.  E boolean FDECL(vamp_stone, (struct monst *));
  1416.  
  1417.  /* ### mondata.c ### */
  1418.  
  1419.  E void FDECL(set_mon_data, (struct monst *, struct permonst *, int));
  1420.  E struct attack *FDECL(attacktype_fordmg, (struct permonst *, int, int));
  1421.  E boolean FDECL(attacktype, (struct permonst *, int));
  1422.  E boolean FDECL(noattacks, (struct permonst *));
  1423.  E boolean FDECL(poly_when_stoned, (struct permonst *));
  1424.  E boolean FDECL(resists_drli, (struct monst *));
  1425.  E boolean FDECL(resists_magm, (struct monst *));
  1426.  E boolean FDECL(resists_blnd, (struct monst *));
  1427.  E boolean
  1428.  FDECL(can_blnd, (struct monst *, struct monst *, UCHAR_P, struct obj *));
  1429.  E boolean FDECL(ranged_attk, (struct permonst *));
  1430.  E boolean FDECL(hates_silver, (struct permonst *));
  1431.  E boolean FDECL(mon_hates_silver, (struct monst *));
  1432.  E boolean FDECL(passes_bars, (struct permonst *));
  1433.  E boolean FDECL(can_blow, (struct monst *));
  1434.  E boolean FDECL(can_chant, (struct monst *));
  1435.  E boolean FDECL(can_be_strangled, (struct monst *));
  1436.  E boolean FDECL(can_track, (struct permonst *));
  1437.  E boolean FDECL(breakarm, (struct permonst *));
  1438.  E boolean FDECL(sliparm, (struct permonst *));
  1439.  E boolean FDECL(sticks, (struct permonst *));
  1440.  E boolean FDECL(cantvomit, (struct permonst *));
  1441.  E int FDECL(num_horns, (struct permonst *));
  1442.  /* E boolean FDECL(canseemon, (struct monst *)); */
  1443.  E struct attack *FDECL(dmgtype_fromattack, (struct permonst *, int, int));
  1444.  E boolean FDECL(dmgtype, (struct permonst *, int));
  1445.  E int FDECL(max_passive_dmg, (struct monst *, struct monst *));
  1446.  E boolean FDECL(same_race, (struct permonst *, struct permonst *));
  1447.  E int FDECL(monsndx, (struct permonst *));
  1448.  E int FDECL(name_to_mon, (const char *));
  1449.  E int FDECL(name_to_monclass, (const char *, int *));
  1450.  E int FDECL(gender, (struct monst *));
  1451.  E int FDECL(pronoun_gender, (struct monst *));
  1452.  E boolean FDECL(levl_follower, (struct monst *));
  1453.  E int FDECL(little_to_big, (int));
  1454.  E int FDECL(big_to_little, (int));
  1455.  E boolean FDECL(big_little_match, (int, int));
  1456.  E const char *FDECL(locomotion, (const struct permonst *, const char *));
  1457.  E const char *FDECL(stagger, (const struct permonst *, const char *));
  1458.  E const char *FDECL(on_fire, (struct permonst *, struct attack *));
  1459.  E const struct permonst *FDECL(raceptr, (struct monst *));
  1460.  E boolean FDECL(olfaction, (struct permonst *));
  1461.  
  1462.  /* ### monmove.c ### */
  1463.  
  1464.  E boolean FDECL(itsstuck, (struct monst *));
  1465.  E boolean FDECL(mb_trapped, (struct monst *));
  1466.  E boolean FDECL(monhaskey, (struct monst *, BOOLEAN_P));
  1467.  E void FDECL(mon_regen, (struct monst *, BOOLEAN_P));
  1468.  E int FDECL(dochugw, (struct monst *));
  1469.  E boolean FDECL(onscary, (int, int, struct monst *));
  1470.  E void FDECL(monflee, (struct monst *, int, BOOLEAN_P, BOOLEAN_P));
  1471.  E void FDECL(mon_yells, (struct monst *, const char *));
  1472.  E int FDECL(dochug, (struct monst *));
  1473.  E boolean FDECL(m_digweapon_check, (struct monst *, XCHAR_P, XCHAR_P));
  1474.  E int FDECL(m_move, (struct monst *, int));
  1475.  E void FDECL(dissolve_bars, (int, int));
  1476.  E boolean FDECL(closed_door, (int, int));
  1477.  E boolean FDECL(accessible, (int, int));
  1478.  E void FDECL(set_apparxy, (struct monst *));
  1479.  E boolean FDECL(can_ooze, (struct monst *));
  1480.  E boolean FDECL(can_fog, (struct monst *));
  1481.  E boolean FDECL(should_displace,
  1482.                  (struct monst *, coord *, long *, int, XCHAR_P, XCHAR_P));
  1483.  E boolean FDECL(undesirable_disp, (struct monst *, XCHAR_P, XCHAR_P));
  1484.  
  1485.  /* ### monst.c ### */
  1486.  
  1487.  E void NDECL(monst_init);
  1488.  
  1489.  /* ### monstr.c ### */
  1490.  
  1491.  E void NDECL(monstr_init);
  1492.  
  1493.  /* ### mplayer.c ### */
  1494.  
  1495.  E struct monst *FDECL(mk_mplayer,
  1496.                        (struct permonst *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  1497.  E void FDECL(create_mplayers, (int, BOOLEAN_P));
  1498.  E void FDECL(mplayer_talk, (struct monst *));
  1499.  
  1500.  #if defined(MICRO) || defined(WIN32)
  1501.  
  1502.  /* ### msdos.c,os2.c,tos.c,winnt.c ### */
  1503.  
  1504.  #ifndef WIN32
  1505.  E int NDECL(tgetch);
  1506.  #endif
  1507.  #ifndef TOS
  1508.  E char NDECL(switchar);
  1509.  #endif
  1510.  #ifndef __GO32__
  1511.  E long FDECL(freediskspace, (char *));
  1512.  #ifdef MSDOS
  1513.  E int FDECL(findfirst_file, (char *));
  1514.  E int NDECL(findnext_file);
  1515.  E long FDECL(filesize_nh, (char *));
  1516.  #else
  1517.  E int FDECL(findfirst, (char *));
  1518.  E int NDECL(findnext);
  1519.  E long FDECL(filesize, (char *));
  1520.  #endif /* MSDOS */
  1521.  E char *NDECL(foundfile_buffer);
  1522.  #endif /* __GO32__ */
  1523.  E void FDECL(chdrive, (char *));
  1524.  #ifndef TOS
  1525.  E void NDECL(disable_ctrlP);
  1526.  E void NDECL(enable_ctrlP);
  1527.  #endif
  1528.  #if defined(MICRO) && !defined(WINNT)
  1529.  E void NDECL(get_scr_size);
  1530.  #ifndef TOS
  1531.  E void FDECL(gotoxy, (int, int));
  1532.  #endif
  1533.  #endif
  1534.  #ifdef TOS
  1535.  E int FDECL(_copyfile, (char *, char *));
  1536.  E int NDECL(kbhit);
  1537.  E void NDECL(set_colors);
  1538.  E void NDECL(restore_colors);
  1539.  #ifdef SUSPEND
  1540.  E int NDECL(dosuspend);
  1541.  #endif
  1542.  #endif /* TOS */
  1543.  #ifdef WIN32
  1544.  E char *FDECL(get_username, (int *));
  1545.  E void FDECL(nt_regularize, (char *));
  1546.  E int NDECL((*nt_kbhit));
  1547.  E void FDECL(Delay, (int));
  1548.  #endif /* WIN32 */
  1549.  #endif /* MICRO || WIN32 */
  1550.  
  1551.  /* ### mthrowu.c ### */
  1552.  
  1553.  E int FDECL(thitu, (int, int, struct obj **, const char *));
  1554.  E int FDECL(ohitmon, (struct monst *, struct obj *, int, BOOLEAN_P));
  1555.  E void FDECL(thrwmu, (struct monst *));
  1556.  E int FDECL(spitmu, (struct monst *, struct attack *));
  1557.  E int FDECL(breamu, (struct monst *, struct attack *));
  1558.  E boolean FDECL(linedup, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, int));
  1559.  E boolean FDECL(lined_up, (struct monst *));
  1560.  E struct obj *FDECL(m_carrying, (struct monst *, int));
  1561.  E int FDECL(thrwmm, (struct monst *, struct monst *));
  1562.  E int FDECL(spitmm, (struct monst *, struct attack *, struct monst *));
  1563.  E int FDECL(breamm, (struct monst *, struct attack *, struct monst *));
  1564.  E void FDECL(m_useupall, (struct monst *, struct obj *));
  1565.  E void FDECL(m_useup, (struct monst *, struct obj *));
  1566.  E void FDECL(m_throw, (struct monst *, int, int, int, int, int, struct obj *));
  1567.  E void FDECL(hit_bars, (struct obj **, int, int, int, int,
  1568.                          BOOLEAN_P, BOOLEAN_P));
  1569.  E boolean FDECL(hits_bars, (struct obj **, int, int, int, int, int, int));
  1570.  
  1571.  /* ### muse.c ### */
  1572.  
  1573.  E boolean FDECL(find_defensive, (struct monst *));
  1574.  E int FDECL(use_defensive, (struct monst *));
  1575.  E int FDECL(rnd_defensive_item, (struct monst *));
  1576.  E boolean FDECL(find_offensive, (struct monst *));
  1577.  #ifdef USE_TRAMPOLI
  1578.  E int FDECL(mbhitm, (struct monst *, struct obj *));
  1579.  #endif
  1580.  E int FDECL(use_offensive, (struct monst *));
  1581.  E int FDECL(rnd_offensive_item, (struct monst *));
  1582.  E boolean FDECL(find_misc, (struct monst *));
  1583.  E int FDECL(use_misc, (struct monst *));
  1584.  E int FDECL(rnd_misc_item, (struct monst *));
  1585.  E boolean FDECL(searches_for_item, (struct monst *, struct obj *));
  1586.  E boolean FDECL(mon_reflects, (struct monst *, const char *));
  1587.  E boolean FDECL(ureflects, (const char *, const char *));
  1588.  E void FDECL(mcureblindness, (struct monst *, BOOLEAN_P));
  1589.  E boolean FDECL(munstone, (struct monst *, BOOLEAN_P));
  1590.  E boolean FDECL(munslime, (struct monst *, BOOLEAN_P));
  1591.  
  1592.  /* ### music.c ### */
  1593.  
  1594.  E void FDECL(awaken_soldiers, (struct monst *));
  1595.  E int FDECL(do_play_instrument, (struct obj *));
  1596.  
  1597.  /* ### nhlan.c ### */
  1598.  #ifdef LAN_FEATURES
  1599.  E void NDECL(init_lan_features);
  1600.  E char *NDECL(lan_username);
  1601.  #endif
  1602.  
  1603.  /* ### nhregex.c ### */
  1604.  E struct nhregex *NDECL(regex_init);
  1605.  E boolean FDECL(regex_compile, (const char *, struct nhregex *));
  1606.  E const char *FDECL(regex_error_desc, (struct nhregex *));
  1607.  E boolean FDECL(regex_match, (const char *, struct nhregex *));
  1608.  E void FDECL(regex_free, (struct nhregex *));
  1609.  
  1610.  /* ### nttty.c ### */
  1611.  
  1612.  #ifdef WIN32
  1613.  E void NDECL(get_scr_size);
  1614.  E int NDECL(nttty_kbhit);
  1615.  E void FDECL(nttty_open, (int));
  1616.  E void NDECL(nttty_rubout);
  1617.  E int NDECL(tgetch);
  1618.  E int FDECL(ntposkey, (int *, int *, int *));
  1619.  E void FDECL(set_output_mode, (int));
  1620.  E void NDECL(synch_cursor);
  1621.  #endif
  1622.  
  1623.  /* ### o_init.c ### */
  1624.  
  1625.  E void NDECL(init_objects);
  1626.  E void FDECL(obj_shuffle_range, (int, int *, int *));
  1627.  E int NDECL(find_skates);
  1628.  E void NDECL(oinit);
  1629.  E void FDECL(savenames, (int, int));
  1630.  E void FDECL(restnames, (int));
  1631.  E void FDECL(discover_object, (int, BOOLEAN_P, BOOLEAN_P));
  1632.  E void FDECL(undiscover_object, (int));
  1633.  E int NDECL(dodiscovered);
  1634.  E int NDECL(doclassdisco);
  1635.  E void NDECL(rename_disco);
  1636.  
  1637.  /* ### objects.c ### */
  1638.  
  1639.  E void NDECL(objects_init);
  1640.  
  1641.  /* ### objnam.c ### */
  1642.  
  1643.  E char *FDECL(obj_typename, (int));
  1644.  E char *FDECL(simple_typename, (int));
  1645.  E boolean FDECL(obj_is_pname, (struct obj *));
  1646.  E char *FDECL(distant_name, (struct obj *, char *(*)(OBJ_P)));
  1647.  E char *FDECL(fruitname, (BOOLEAN_P));
  1648.  E struct fruit *FDECL(fruit_from_indx, (int));
  1649.  E struct fruit *FDECL(fruit_from_name, (const char *, BOOLEAN_P, int *));
  1650.  E void FDECL(reorder_fruit, (BOOLEAN_P));
  1651.  E char *FDECL(xname, (struct obj *));
  1652.  E char *FDECL(mshot_xname, (struct obj *));
  1653.  E boolean FDECL(the_unique_obj, (struct obj *));
  1654.  E boolean FDECL(the_unique_pm, (struct permonst *));
  1655.  E boolean FDECL(erosion_matters, (struct obj *));
  1656.  E char *FDECL(doname, (struct obj *));
  1657.  E char *FDECL(doname_with_price, (struct obj *));
  1658.  E char *FDECL(doname_vague_quan, (struct obj *));
  1659.  E boolean FDECL(not_fully_identified, (struct obj *));
  1660.  E char *FDECL(corpse_xname, (struct obj *, const char *, unsigned));
  1661.  E char *FDECL(cxname, (struct obj *));
  1662.  E char *FDECL(cxname_singular, (struct obj *));
  1663.  E char *FDECL(killer_xname, (struct obj *));
  1664.  E char *FDECL(short_oname,
  1665.                (struct obj *, char *(*)(OBJ_P), char *(*)(OBJ_P), unsigned));
  1666.  E const char *FDECL(singular, (struct obj *, char *(*)(OBJ_P)));
  1667.  E char *FDECL(an, (const char *));
  1668.  E char *FDECL(An, (const char *));
  1669.  E char *FDECL(The, (const char *));
  1670.  E char *FDECL(the, (const char *));
  1671.  E char *FDECL(aobjnam, (struct obj *, const char *));
  1672.  E char *FDECL(yobjnam, (struct obj *, const char *));
  1673.  E char *FDECL(Yobjnam2, (struct obj *, const char *));
  1674.  E char *FDECL(Tobjnam, (struct obj *, const char *));
  1675.  E char *FDECL(otense, (struct obj *, const char *));
  1676.  E char *FDECL(vtense, (const char *, const char *));
  1677.  E char *FDECL(Doname2, (struct obj *));
  1678.  E char *FDECL(yname, (struct obj *));
  1679.  E char *FDECL(Yname2, (struct obj *));
  1680.  E char *FDECL(ysimple_name, (struct obj *));
  1681.  E char *FDECL(Ysimple_name2, (struct obj *));
  1682.  E char *FDECL(simpleonames, (struct obj *));
  1683.  E char *FDECL(ansimpleoname, (struct obj *));
  1684.  E char *FDECL(thesimpleoname, (struct obj *));
  1685.  E char *FDECL(bare_artifactname, (struct obj *));
  1686.  E char *FDECL(makeplural, (const char *));
  1687.  E char *FDECL(makesingular, (const char *));
  1688.  E struct obj *FDECL(readobjnam, (char *, struct obj *));
  1689.  E int FDECL(rnd_class, (int, int));
  1690.  E const char *FDECL(suit_simple_name, (struct obj *));
  1691.  E const char *FDECL(cloak_simple_name, (struct obj *));
  1692.  E const char *FDECL(helm_simple_name, (struct obj *));
  1693.  E const char *FDECL(mimic_obj_name, (struct monst *));
  1694.  E char *FDECL(safe_qbuf, (char *, const char *, const char *, struct obj *,
  1695.                            char *(*)(OBJ_P), char *(*)(OBJ_P), const char *));
  1696.  
  1697.  /* ### options.c ### */
  1698.  
  1699.  E void NDECL(reglyph_darkroom);
  1700.  E boolean FDECL(match_optname, (const char *, const char *, int, BOOLEAN_P));
  1701.  E void NDECL(initoptions);
  1702.  E void NDECL(initoptions_init);
  1703.  E void NDECL(initoptions_finish);
  1704.  E boolean FDECL(parseoptions, (char *, BOOLEAN_P, BOOLEAN_P));
  1705.  E int NDECL(doset);
  1706.  E int NDECL(dotogglepickup);
  1707.  E void NDECL(option_help);
  1708.  E void FDECL(next_opt, (winid, const char *));
  1709.  E int FDECL(fruitadd, (char *, struct fruit *));
  1710.  E int FDECL(choose_classes_menu, (const char *, int, BOOLEAN_P,
  1711.                                    char *, char *));
  1712.  E boolean FDECL(parsebindings, (char *));
  1713.  E void FDECL(add_menu_cmd_alias, (CHAR_P, CHAR_P));
  1714.  E char FDECL(get_menu_cmd_key, (CHAR_P));
  1715.  E char FDECL(map_menu_cmd, (CHAR_P));
  1716.  E void FDECL(show_menu_controls, (winid, BOOLEAN_P));
  1717.  E void FDECL(assign_warnings, (uchar *));
  1718.  E char *FDECL(nh_getenv, (const char *));
  1719.  E void FDECL(set_duplicate_opt_detection, (int));
  1720.  E void FDECL(set_wc_option_mod_status, (unsigned long, int));
  1721.  E void FDECL(set_wc2_option_mod_status, (unsigned long, int));
  1722.  E void FDECL(set_option_mod_status, (const char *, int));
  1723.  E int FDECL(add_autopickup_exception, (const char *));
  1724.  E void NDECL(free_autopickup_exceptions);
  1725.  E int FDECL(load_symset, (const char *, int));
  1726.  E void NDECL(free_symsets);
  1727.  E boolean FDECL(parsesymbols, (char *));
  1728.  E struct symparse *FDECL(match_sym, (char *));
  1729.  E void NDECL(set_playmode);
  1730.  E int FDECL(sym_val, (const char *));
  1731.  E int FDECL(query_color, (const char *));
  1732.  E int FDECL(query_attr, (const char *));
  1733.  E const char *FDECL(clr2colorname, (int));
  1734.  E int FDECL(match_str2clr, (char *));
  1735.  E int FDECL(match_str2attr, (const char *, BOOLEAN_P));
  1736.  E boolean FDECL(add_menu_coloring, (char *));
  1737.  E boolean FDECL(get_menu_coloring, (const char *, int *, int *));
  1738.  E void NDECL(free_menu_coloring);
  1739.  E boolean FDECL(msgtype_parse_add, (char *));
  1740.  E int FDECL(msgtype_type, (const char *, BOOLEAN_P));
  1741.  E void FDECL(hide_unhide_msgtypes, (BOOLEAN_P, int));
  1742.  E void NDECL(msgtype_free);
  1743.  
  1744.  /* ### pager.c ### */
  1745.  
  1746.  E char *FDECL(self_lookat, (char *));
  1747.  E void FDECL(mhidden_description, (struct monst *, BOOLEAN_P, char *));
  1748.  E boolean FDECL(object_from_map, (int,int,int,struct obj **));
  1749.  E int FDECL(do_screen_description, (coord, BOOLEAN_P, int, char *,
  1750.                                      const char **));
  1751.  E int FDECL(do_look, (int, coord *));
  1752.  E int NDECL(dowhatis);
  1753.  E int NDECL(doquickwhatis);
  1754.  E int NDECL(doidtrap);
  1755.  E int NDECL(dowhatdoes);
  1756.  E char *FDECL(dowhatdoes_core, (CHAR_P, char *));
  1757.  E int NDECL(dohelp);
  1758.  E int NDECL(dohistory);
  1759.  
  1760.  /* ### pcmain.c ### */
  1761.  
  1762.  #if defined(MICRO) || defined(WIN32)
  1763.  #ifdef CHDIR
  1764.  E void FDECL(chdirx, (char *, BOOLEAN_P));
  1765.  #endif /* CHDIR */
  1766.  E boolean NDECL(authorize_wizard_mode);
  1767.  #endif /* MICRO || WIN32 */
  1768.  
  1769.  /* ### pcsys.c ### */
  1770.  
  1771.  #if defined(MICRO) || defined(WIN32)
  1772.  E void NDECL(flushout);
  1773.  E int NDECL(dosh);
  1774.  #ifdef MFLOPPY
  1775.  E void FDECL(eraseall, (const char *, const char *));
  1776.  E void FDECL(copybones, (int));
  1777.  E void NDECL(playwoRAMdisk);
  1778.  E int FDECL(saveDiskPrompt, (int));
  1779.  E void NDECL(gameDiskPrompt);
  1780.  #endif
  1781.  E void FDECL(append_slash, (char *));
  1782.  E void FDECL(getreturn, (const char *));
  1783.  #ifndef AMIGA
  1784.  E void VDECL(msmsg, (const char *, ...));
  1785.  #endif
  1786.  E FILE *FDECL(fopenp, (const char *, const char *));
  1787.  #endif /* MICRO || WIN32 */
  1788.  
  1789.  /* ### pctty.c ### */
  1790.  
  1791.  #if defined(MICRO) || defined(WIN32)
  1792.  E void NDECL(gettty);
  1793.  E void FDECL(settty, (const char *));
  1794.  E void NDECL(setftty);
  1795.  E void VDECL(error, (const char *, ...));
  1796.  #if defined(TIMED_DELAY) && defined(_MSC_VER)
  1797.  E void FDECL(msleep, (unsigned));
  1798.  #endif
  1799.  #endif /* MICRO || WIN32 */
  1800.  
  1801.  /* ### pcunix.c ### */
  1802.  
  1803.  #if defined(MICRO)
  1804.  E void FDECL(regularize, (char *));
  1805.  #endif /* MICRO */
  1806.  #if defined(PC_LOCKING)
  1807.  E void NDECL(getlock);
  1808.  #endif
  1809.  
  1810.  /* ### pickup.c ### */
  1811.  
  1812.  E int FDECL(collect_obj_classes, (char *, struct obj *, BOOLEAN_P,
  1813.                                    boolean FDECL((*), (OBJ_P)), int *));
  1814.  E boolean FDECL(rider_corpse_revival, (struct obj *, BOOLEAN_P));
  1815.  E boolean FDECL(menu_class_present, (int));
  1816.  E void FDECL(add_valid_menu_class, (int));
  1817.  E boolean FDECL(allow_all, (struct obj *));
  1818.  E boolean FDECL(allow_category, (struct obj *));
  1819.  E boolean FDECL(is_worn_by_type, (struct obj *));
  1820.  E int FDECL(ck_bag, (struct obj *));
  1821.  #ifdef USE_TRAMPOLI
  1822.  E int FDECL(in_container, (struct obj *));
  1823.  E int FDECL(out_container, (struct obj *));
  1824.  #endif
  1825.  E int FDECL(pickup, (int));
  1826.  E int FDECL(pickup_object, (struct obj *, long, BOOLEAN_P));
  1827.  E int FDECL(query_category, (const char *, struct obj *, int,
  1828.                               menu_item **, int));
  1829.  E int FDECL(query_objlist, (const char *, struct obj **, int,
  1830.                              menu_item **, int, boolean (*)(OBJ_P)));
  1831.  E struct obj *FDECL(pick_obj, (struct obj *));
  1832.  E int NDECL(encumber_msg);
  1833.  E int FDECL(container_at, (int, int, BOOLEAN_P));
  1834.  E int NDECL(doloot);
  1835.  E boolean FDECL(container_gone, (int (*)(OBJ_P)));
  1836.  E boolean NDECL(u_handsy);
  1837.  E int FDECL(use_container, (struct obj **, int, BOOLEAN_P));
  1838.  E int FDECL(loot_mon, (struct monst *, int *, boolean *));
  1839.  E int NDECL(dotip);
  1840.  E boolean FDECL(is_autopickup_exception, (struct obj *, BOOLEAN_P));
  1841.  E boolean FDECL(autopick_testobj, (struct obj *, BOOLEAN_P));
  1842.  
  1843.  /* ### pline.c ### */
  1844.  
  1845.  #ifdef DUMPLOG
  1846.  E void FDECL(dumplogmsg, (const char *));
  1847.  E void NDECL(dumplogfreemessages);
  1848.  #endif
  1849.  E void VDECL(pline, (const char *, ...)) PRINTF_F(1, 2);
  1850.  E void VDECL(custompline, (unsigned, const char *, ...)) PRINTF_F(2, 3);
  1851.  E void VDECL(Norep, (const char *, ...)) PRINTF_F(1, 2);
  1852.  E void NDECL(free_youbuf);
  1853.  E void VDECL(You, (const char *, ...)) PRINTF_F(1, 2);
  1854.  E void VDECL(Your, (const char *, ...)) PRINTF_F(1, 2);
  1855.  E void VDECL(You_feel, (const char *, ...)) PRINTF_F(1, 2);
  1856.  E void VDECL(You_cant, (const char *, ...)) PRINTF_F(1, 2);
  1857.  E void VDECL(You_hear, (const char *, ...)) PRINTF_F(1, 2);
  1858.  E void VDECL(You_see, (const char *, ...)) PRINTF_F(1, 2);
  1859.  E void VDECL(pline_The, (const char *, ...)) PRINTF_F(1, 2);
  1860.  E void VDECL(There, (const char *, ...)) PRINTF_F(1, 2);
  1861.  E void VDECL(verbalize, (const char *, ...)) PRINTF_F(1, 2);
  1862.  E void VDECL(raw_printf, (const char *, ...)) PRINTF_F(1, 2);
  1863.  E void VDECL(impossible, (const char *, ...)) PRINTF_F(1, 2);
  1864.  
  1865.  /* ### polyself.c ### */
  1866.  
  1867.  E void NDECL(set_uasmon);
  1868.  E void NDECL(float_vs_flight);
  1869.  E void NDECL(change_sex);
  1870.  E void FDECL(polyself, (int));
  1871.  E int FDECL(polymon, (int));
  1872.  E void NDECL(rehumanize);
  1873.  E int NDECL(dobreathe);
  1874.  E int NDECL(dospit);
  1875.  E int NDECL(doremove);
  1876.  E int NDECL(dospinweb);
  1877.  E int NDECL(dosummon);
  1878.  E int NDECL(dogaze);
  1879.  E int NDECL(dohide);
  1880.  E int NDECL(dopoly);
  1881.  E int NDECL(domindblast);
  1882.  E void FDECL(skinback, (BOOLEAN_P));
  1883.  E const char *FDECL(mbodypart, (struct monst *, int));
  1884.  E const char *FDECL(body_part, (int));
  1885.  E int NDECL(poly_gender);
  1886.  E void FDECL(ugolemeffects, (int, int));
  1887.  E boolean NDECL(ugenocided);
  1888.  E const char *NDECL(udeadinside);
  1889.  
  1890.  /* ### potion.c ### */
  1891.  
  1892.  E void FDECL(set_itimeout, (long *, long));
  1893.  E void FDECL(incr_itimeout, (long *, int));
  1894.  E void FDECL(make_confused, (long, BOOLEAN_P));
  1895.  E void FDECL(make_stunned, (long, BOOLEAN_P));
  1896.  E void FDECL(make_blinded, (long, BOOLEAN_P));
  1897.  E void FDECL(make_sick, (long, const char *, BOOLEAN_P, int));
  1898.  E void FDECL(make_slimed, (long, const char *));
  1899.  E void FDECL(make_stoned, (long, const char *, int, const char *));
  1900.  E void FDECL(make_vomiting, (long, BOOLEAN_P));
  1901.  E boolean FDECL(make_hallucinated, (long, BOOLEAN_P, long));
  1902.  E void FDECL(make_deaf, (long, BOOLEAN_P));
  1903.  E void NDECL(self_invis_message);
  1904.  E int NDECL(dodrink);
  1905.  E int FDECL(dopotion, (struct obj *));
  1906.  E int FDECL(peffects, (struct obj *));
  1907.  E void FDECL(healup, (int, int, BOOLEAN_P, BOOLEAN_P));
  1908.  E void FDECL(strange_feeling, (struct obj *, const char *));
  1909.  E void FDECL(potionhit, (struct monst *, struct obj *, int));
  1910.  E void FDECL(potionbreathe, (struct obj *));
  1911.  E int NDECL(dodip);
  1912.  E void FDECL(mongrantswish, (struct monst **));
  1913.  E void FDECL(djinni_from_bottle, (struct obj *));
  1914.  E struct monst *FDECL(split_mon, (struct monst *, struct monst *));
  1915.  E const char *NDECL(bottlename);
  1916.  
  1917.  /* ### pray.c ### */
  1918.  
  1919.  E boolean FDECL(critically_low_hp, (BOOLEAN_P));
  1920.  E boolean NDECL(stuck_in_wall);
  1921.  #ifdef USE_TRAMPOLI
  1922.  E int NDECL(prayer_done);
  1923.  #endif
  1924.  E int NDECL(dosacrifice);
  1925.  E boolean FDECL(can_pray, (BOOLEAN_P));
  1926.  E int NDECL(dopray);
  1927.  E const char *NDECL(u_gname);
  1928.  E int NDECL(doturn);
  1929.  E const char *NDECL(a_gname);
  1930.  E const char *FDECL(a_gname_at, (XCHAR_P x, XCHAR_P y));
  1931.  E const char *FDECL(align_gname, (ALIGNTYP_P));
  1932.  E const char *FDECL(halu_gname, (ALIGNTYP_P));
  1933.  E const char *FDECL(align_gtitle, (ALIGNTYP_P));
  1934.  E void FDECL(altar_wrath, (int, int));
  1935.  
  1936.  /* ### priest.c ### */
  1937.  
  1938.  E int FDECL(move_special, (struct monst *, BOOLEAN_P, SCHAR_P, BOOLEAN_P,
  1939.                             BOOLEAN_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P));
  1940.  E char FDECL(temple_occupied, (char *));
  1941.  E boolean FDECL(inhistemple, (struct monst *));
  1942.  E int FDECL(pri_move, (struct monst *));
  1943.  E void FDECL(priestini, (d_level *, struct mkroom *, int, int, BOOLEAN_P));
  1944.  E aligntyp FDECL(mon_aligntyp, (struct monst *));
  1945.  E char *FDECL(priestname, (struct monst *, char *));
  1946.  E boolean FDECL(p_coaligned, (struct monst *));
  1947.  E struct monst *FDECL(findpriest, (CHAR_P));
  1948.  E void FDECL(intemple, (int));
  1949.  E void FDECL(forget_temple_entry, (struct monst *));
  1950.  E void FDECL(priest_talk, (struct monst *));
  1951.  E struct monst *FDECL(mk_roamer, (struct permonst *, ALIGNTYP_P, XCHAR_P,
  1952.                                    XCHAR_P, BOOLEAN_P));
  1953.  E void FDECL(reset_hostility, (struct monst *));
  1954.  E boolean FDECL(in_your_sanctuary, (struct monst *, XCHAR_P, XCHAR_P));
  1955.  E void FDECL(ghod_hitsu, (struct monst *));
  1956.  E void NDECL(angry_priest);
  1957.  E void NDECL(clearpriests);
  1958.  E void FDECL(restpriest, (struct monst *, BOOLEAN_P));
  1959.  E void FDECL(newepri, (struct monst *));
  1960.  E void FDECL(free_epri, (struct monst *));
  1961.  E const char *FDECL(align_str, (ALIGNTYP_P));
  1962.  E char *FDECL(piousness, (BOOLEAN_P, const char *));
  1963.  E void FDECL(mstatusline, (struct monst *));
  1964.  E void NDECL(ustatusline);
  1965.  
  1966.  /* ### quest.c ### */
  1967.  
  1968.  E void NDECL(onquest);
  1969.  E void NDECL(nemdead);
  1970.  E void FDECL(artitouch, (struct obj *));
  1971.  E boolean NDECL(ok_to_quest);
  1972.  E void FDECL(leader_speaks, (struct monst *));
  1973.  E void NDECL(nemesis_speaks);
  1974.  E void FDECL(quest_chat, (struct monst *));
  1975.  E void FDECL(quest_talk, (struct monst *));
  1976.  E void FDECL(quest_stat_check, (struct monst *));
  1977.  E void FDECL(finish_quest, (struct obj *));
  1978.  
  1979.  /* ### questpgr.c ### */
  1980.  
  1981.  E void NDECL(load_qtlist);
  1982.  E void NDECL(unload_qtlist);
  1983.  E short FDECL(quest_info, (int));
  1984.  E const char *NDECL(ldrname);
  1985.  E boolean FDECL(is_quest_artifact, (struct obj *));
  1986.  E struct obj *FDECL(find_quest_artifact, (unsigned));
  1987.  E void FDECL(com_pager, (int));
  1988.  E void FDECL(qt_pager, (int));
  1989.  E struct permonst *NDECL(qt_montype);
  1990.  E void NDECL(deliver_splev_message);
  1991.  
  1992.  /* ### random.c ### */
  1993.  
  1994.  #if defined(RANDOM) && !defined(__GO32__) /* djgpp has its own random */
  1995.  E void FDECL(srandom, (unsigned));
  1996.  E char *FDECL(initstate, (unsigned, char *, int));
  1997.  E char *FDECL(setstate, (char *));
  1998.  E long NDECL(random);
  1999.  #endif /* RANDOM */
  2000.  
  2001.  /* ### read.c ### */
  2002.  
  2003.  E void FDECL(learnscroll, (struct obj *));
  2004.  E char *FDECL(tshirt_text, (struct obj *, char *));
  2005.  E int NDECL(doread);
  2006.  E boolean FDECL(is_chargeable, (struct obj *));
  2007.  E void FDECL(recharge, (struct obj *, int));
  2008.  E void FDECL(forget_objects, (int));
  2009.  E void FDECL(forget_levels, (int));
  2010.  E void NDECL(forget_traps);
  2011.  E void FDECL(forget_map, (int));
  2012.  E int FDECL(seffects, (struct obj *));
  2013.  E void FDECL(drop_boulder_on_player,
  2014.               (BOOLEAN_P, BOOLEAN_P, BOOLEAN_P, BOOLEAN_P));
  2015.  E boolean FDECL(drop_boulder_on_monster, (int, int, BOOLEAN_P, BOOLEAN_P));
  2016.  E void FDECL(wand_explode, (struct obj *, int));
  2017.  #ifdef USE_TRAMPOLI
  2018.  E void FDECL(set_lit, (int, int, genericptr_t));
  2019.  #endif
  2020.  E void FDECL(litroom, (BOOLEAN_P, struct obj *));
  2021.  E void FDECL(do_genocide, (int));
  2022.  E void FDECL(punish, (struct obj *));
  2023.  E void NDECL(unpunish);
  2024.  E boolean FDECL(cant_revive, (int *, BOOLEAN_P, struct obj *));
  2025.  E boolean NDECL(create_particular);
  2026.  
  2027.  /* ### rect.c ### */
  2028.  
  2029.  E void NDECL(init_rect);
  2030.  E NhRect *FDECL(get_rect, (NhRect *));
  2031.  E NhRect *NDECL(rnd_rect);
  2032.  E void FDECL(remove_rect, (NhRect *));
  2033.  E void FDECL(add_rect, (NhRect *));
  2034.  E void FDECL(split_rects, (NhRect *, NhRect *));
  2035.  
  2036.  /* ## region.c ### */
  2037.  E void NDECL(clear_regions);
  2038.  E void NDECL(run_regions);
  2039.  E boolean FDECL(in_out_region, (XCHAR_P, XCHAR_P));
  2040.  E boolean FDECL(m_in_out_region, (struct monst *, XCHAR_P, XCHAR_P));
  2041.  E void NDECL(update_player_regions);
  2042.  E void FDECL(update_monster_region, (struct monst *));
  2043.  E NhRegion *FDECL(visible_region_at, (XCHAR_P, XCHAR_P));
  2044.  E void FDECL(show_region, (NhRegion *, XCHAR_P, XCHAR_P));
  2045.  E void FDECL(save_regions, (int, int));
  2046.  E void FDECL(rest_regions, (int, BOOLEAN_P));
  2047.  E void FDECL(region_stats, (const char *, char *, long *, long *));
  2048.  E NhRegion *FDECL(create_gas_cloud, (XCHAR_P, XCHAR_P, int, int));
  2049.  E boolean NDECL(region_danger);
  2050.  E void NDECL(region_safety);
  2051.  
  2052.  /* ### restore.c ### */
  2053.  
  2054.  E void FDECL(inven_inuse, (BOOLEAN_P));
  2055.  E int FDECL(dorecover, (int));
  2056.  E void FDECL(restcemetery, (int, struct cemetery **));
  2057.  E void FDECL(trickery, (char *));
  2058.  E void FDECL(getlev, (int, int, XCHAR_P, BOOLEAN_P));
  2059.  E void FDECL(get_plname_from_file, (int, char *));
  2060.  #ifdef SELECTSAVED
  2061.  E int FDECL(restore_menu, (winid));
  2062.  #endif
  2063.  E void NDECL(minit);
  2064.  E boolean FDECL(lookup_id_mapping, (unsigned, unsigned *));
  2065.  E void FDECL(mread, (int, genericptr_t, unsigned int));
  2066.  E int FDECL(validate, (int, const char *));
  2067.  E void NDECL(reset_restpref);
  2068.  E void FDECL(set_restpref, (const char *));
  2069.  E void FDECL(set_savepref, (const char *));
  2070.  
  2071.  /* ### rip.c ### */
  2072.  
  2073.  E void FDECL(genl_outrip, (winid, int, time_t));
  2074.  
  2075.  /* ### rnd.c ### */
  2076.  
  2077.  E int FDECL(rn2, (int));
  2078.  E int FDECL(rnl, (int));
  2079.  E int FDECL(rnd, (int));
  2080.  E int FDECL(d, (int, int));
  2081.  E int FDECL(rne, (int));
  2082.  E int FDECL(rnz, (int));
  2083.  
  2084.  /* ### role.c ### */
  2085.  
  2086.  E boolean FDECL(validrole, (int));
  2087.  E boolean FDECL(validrace, (int, int));
  2088.  E boolean FDECL(validgend, (int, int, int));
  2089.  E boolean FDECL(validalign, (int, int, int));
  2090.  E int NDECL(randrole);
  2091.  E int FDECL(randrace, (int));
  2092.  E int FDECL(randgend, (int, int));
  2093.  E int FDECL(randalign, (int, int));
  2094.  E int FDECL(str2role, (const char *));
  2095.  E int FDECL(str2race, (const char *));
  2096.  E int FDECL(str2gend, (const char *));
  2097.  E int FDECL(str2align, (const char *));
  2098.  E boolean FDECL(ok_role, (int, int, int, int));
  2099.  E int FDECL(pick_role, (int, int, int, int));
  2100.  E boolean FDECL(ok_race, (int, int, int, int));
  2101.  E int FDECL(pick_race, (int, int, int, int));
  2102.  E boolean FDECL(ok_gend, (int, int, int, int));
  2103.  E int FDECL(pick_gend, (int, int, int, int));
  2104.  E boolean FDECL(ok_align, (int, int, int, int));
  2105.  E int FDECL(pick_align, (int, int, int, int));
  2106.  E void NDECL(rigid_role_checks);
  2107.  E boolean FDECL(setrolefilter, (const char *));
  2108.  E boolean NDECL(gotrolefilter);
  2109.  E void NDECL(clearrolefilter);
  2110.  E char *FDECL(build_plselection_prompt, (char *, int, int, int, int, int));
  2111.  E char *FDECL(root_plselection_prompt, (char *, int, int, int, int, int));
  2112.  E void NDECL(plnamesuffix);
  2113.  E void FDECL(role_selection_prolog, (int, winid));
  2114.  E void FDECL(role_menu_extra, (int, winid, BOOLEAN_P));
  2115.  E void NDECL(role_init);
  2116.  E const char *FDECL(Hello, (struct monst *));
  2117.  E const char *NDECL(Goodbye);
  2118.  
  2119.  /* ### rumors.c ### */
  2120.  
  2121.  E char *FDECL(getrumor, (int, char *, BOOLEAN_P));
  2122.  E char *FDECL(get_rnd_text, (const char *, char *));
  2123.  E void FDECL(outrumor, (int, int));
  2124.  E void FDECL(outoracle, (BOOLEAN_P, BOOLEAN_P));
  2125.  E void FDECL(save_oracles, (int, int));
  2126.  E void FDECL(restore_oracles, (int));
  2127.  E int FDECL(doconsult, (struct monst *));
  2128.  E void NDECL(rumor_check);
  2129.  
  2130.  /* ### save.c ### */
  2131.  
  2132.  E int NDECL(dosave);
  2133.  E int NDECL(dosave0);
  2134.  E boolean FDECL(tricked_fileremoved, (int, char *));
  2135.  #ifdef INSURANCE
  2136.  E void NDECL(savestateinlock);
  2137.  #endif
  2138.  #ifdef MFLOPPY
  2139.  E boolean FDECL(savelev, (int, XCHAR_P, int));
  2140.  E boolean FDECL(swapin_file, (int));
  2141.  E void NDECL(co_false);
  2142.  #else
  2143.  E void FDECL(savelev, (int, XCHAR_P, int));
  2144.  #endif
  2145.  E genericptr_t FDECL(mon_to_buffer, (struct monst *, int *));
  2146.  E void FDECL(bufon, (int));
  2147.  E void FDECL(bufoff, (int));
  2148.  E void FDECL(bflush, (int));
  2149.  E void FDECL(bwrite, (int, genericptr_t, unsigned int));
  2150.  E void FDECL(bclose, (int));
  2151.  E void FDECL(def_bclose, (int));
  2152.  #if defined(ZEROCOMP)
  2153.  E void FDECL(zerocomp_bclose, (int));
  2154.  #endif
  2155.  E void FDECL(savecemetery, (int, int, struct cemetery **));
  2156.  E void FDECL(savefruitchn, (int, int));
  2157.  E void FDECL(store_plname_in_file, (int));
  2158.  E void NDECL(free_dungeons);
  2159.  E void NDECL(freedynamicdata);
  2160.  E void FDECL(store_savefileinfo, (int));
  2161.  
  2162.  /* ### shk.c ### */
  2163.  
  2164.  E void FDECL(setpaid, (struct monst *));
  2165.  E long FDECL(money2mon, (struct monst *, long));
  2166.  E void FDECL(money2u, (struct monst *, long));
  2167.  E void FDECL(shkgone, (struct monst *));
  2168.  E void FDECL(set_residency, (struct monst *, BOOLEAN_P));
  2169.  E void FDECL(replshk, (struct monst *, struct monst *));
  2170.  E void FDECL(restshk, (struct monst *, BOOLEAN_P));
  2171.  E char FDECL(inside_shop, (XCHAR_P, XCHAR_P));
  2172.  E void FDECL(u_left_shop, (char *, BOOLEAN_P));
  2173.  E void FDECL(remote_burglary, (XCHAR_P, XCHAR_P));
  2174.  E void FDECL(u_entered_shop, (char *));
  2175.  E void FDECL(pick_pick, (struct obj *));
  2176.  E boolean FDECL(same_price, (struct obj *, struct obj *));
  2177.  E void NDECL(shopper_financial_report);
  2178.  E int FDECL(inhishop, (struct monst *));
  2179.  E struct monst *FDECL(shop_keeper, (CHAR_P));
  2180.  E boolean FDECL(tended_shop, (struct mkroom *));
  2181.  E boolean FDECL(is_unpaid, (struct obj *));
  2182.  E void FDECL(delete_contents, (struct obj *));
  2183.  E void FDECL(obfree, (struct obj *, struct obj *));
  2184.  E void FDECL(home_shk, (struct monst *, BOOLEAN_P));
  2185.  E void FDECL(make_happy_shk, (struct monst *, BOOLEAN_P));
  2186.  E void FDECL(make_happy_shoppers, (BOOLEAN_P));
  2187.  E void FDECL(hot_pursuit, (struct monst *));
  2188.  E void FDECL(make_angry_shk, (struct monst *, XCHAR_P, XCHAR_P));
  2189.  E int NDECL(dopay);
  2190.  E boolean FDECL(paybill, (int));
  2191.  E void NDECL(finish_paybill);
  2192.  E struct obj *FDECL(find_oid, (unsigned));
  2193.  E long FDECL(contained_cost,
  2194.               (struct obj *, struct monst *, long, BOOLEAN_P, BOOLEAN_P));
  2195.  E long FDECL(contained_gold, (struct obj *));
  2196.  E void FDECL(picked_container, (struct obj *));
  2197.  E void FDECL(alter_cost, (struct obj *, long));
  2198.  E long FDECL(unpaid_cost, (struct obj *, BOOLEAN_P));
  2199.  E boolean FDECL(billable, (struct monst **, struct obj *, CHAR_P, BOOLEAN_P));
  2200.  E void FDECL(addtobill, (struct obj *, BOOLEAN_P, BOOLEAN_P, BOOLEAN_P));
  2201.  E void FDECL(splitbill, (struct obj *, struct obj *));
  2202.  E void FDECL(subfrombill, (struct obj *, struct monst *));
  2203.  E long FDECL(stolen_value,
  2204.               (struct obj *, XCHAR_P, XCHAR_P, BOOLEAN_P, BOOLEAN_P));
  2205.  E void FDECL(sellobj_state, (int));
  2206.  E void FDECL(sellobj, (struct obj *, XCHAR_P, XCHAR_P));
  2207.  E int FDECL(doinvbill, (int));
  2208.  E struct monst *FDECL(shkcatch, (struct obj *, XCHAR_P, XCHAR_P));
  2209.  E void FDECL(add_damage, (XCHAR_P, XCHAR_P, long));
  2210.  E int FDECL(repair_damage, (struct monst *, struct damage *, BOOLEAN_P));
  2211.  E int FDECL(shk_move, (struct monst *));
  2212.  E void FDECL(after_shk_move, (struct monst *));
  2213.  E boolean FDECL(is_fshk, (struct monst *));
  2214.  E void FDECL(shopdig, (int));
  2215.  E void FDECL(pay_for_damage, (const char *, BOOLEAN_P));
  2216.  E boolean FDECL(costly_spot, (XCHAR_P, XCHAR_P));
  2217.  E struct obj *FDECL(shop_object, (XCHAR_P, XCHAR_P));
  2218.  E void FDECL(price_quote, (struct obj *));
  2219.  E void FDECL(shk_chat, (struct monst *));
  2220.  E void FDECL(check_unpaid_usage, (struct obj *, BOOLEAN_P));
  2221.  E void FDECL(check_unpaid, (struct obj *));
  2222.  E void FDECL(costly_gold, (XCHAR_P, XCHAR_P, long));
  2223.  E long FDECL(get_cost_of_shop_item, (struct obj *));
  2224.  E boolean FDECL(block_door, (XCHAR_P, XCHAR_P));
  2225.  E boolean FDECL(block_entry, (XCHAR_P, XCHAR_P));
  2226.  E char *FDECL(shk_your, (char *, struct obj *));
  2227.  E char *FDECL(Shk_Your, (char *, struct obj *));
  2228.  
  2229.  /* ### shknam.c ### */
  2230.  
  2231.  E void FDECL(neweshk, (struct monst *));
  2232.  E void FDECL(free_eshk, (struct monst *));
  2233.  E void FDECL(stock_room, (int, struct mkroom *));
  2234.  E boolean FDECL(saleable, (struct monst *, struct obj *));
  2235.  E int FDECL(get_shop_item, (int));
  2236.  E char *FDECL(Shknam, (struct monst *));
  2237.  E char *FDECL(shkname, (struct monst *));
  2238.  E boolean FDECL(shkname_is_pname, (struct monst *));
  2239.  E boolean FDECL(is_izchak, (struct monst *, BOOLEAN_P));
  2240.  
  2241.  /* ### sit.c ### */
  2242.  
  2243.  E void NDECL(take_gold);
  2244.  E int NDECL(dosit);
  2245.  E void NDECL(rndcurse);
  2246.  E void NDECL(attrcurse);
  2247.  
  2248.  /* ### sounds.c ### */
  2249.  
  2250.  E void NDECL(dosounds);
  2251.  E const char *FDECL(growl_sound, (struct monst *));
  2252.  E void FDECL(growl, (struct monst *));
  2253.  E void FDECL(yelp, (struct monst *));
  2254.  E void FDECL(whimper, (struct monst *));
  2255.  E void FDECL(beg, (struct monst *));
  2256.  E int NDECL(dotalk);
  2257.  #ifdef USER_SOUNDS
  2258.  E int FDECL(add_sound_mapping, (const char *));
  2259.  E void FDECL(play_sound_for_message, (const char *));
  2260.  #endif
  2261.  
  2262.  /* ### sys.c ### */
  2263.  
  2264.  E void NDECL(sys_early_init);
  2265.  E void NDECL(sysopt_release);
  2266.  E void FDECL(sysopt_seduce_set, (int));
  2267.  
  2268.  /* ### sys/msdos/sound.c ### */
  2269.  
  2270.  #ifdef MSDOS
  2271.  E int FDECL(assign_soundcard, (char *));
  2272.  #endif
  2273.  
  2274.  /* ### sp_lev.c ### */
  2275.  
  2276.  E boolean FDECL(check_room, (xchar *, xchar *, xchar *, xchar *, BOOLEAN_P));
  2277.  E boolean FDECL(create_room, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P,
  2278.                                XCHAR_P, XCHAR_P, XCHAR_P));
  2279.  E void FDECL(create_secret_door, (struct mkroom *, XCHAR_P));
  2280.  E boolean
  2281.  FDECL(dig_corridor, (coord *, coord *, BOOLEAN_P, SCHAR_P, SCHAR_P));
  2282.  E void FDECL(fill_room, (struct mkroom *, BOOLEAN_P));
  2283.  E boolean FDECL(load_special, (const char *));
  2284.  E xchar FDECL(selection_getpoint, (int, int, struct opvar *));
  2285.  E struct opvar *FDECL(selection_opvar, (char *));
  2286.  E void FDECL(opvar_free_x, (struct opvar *));
  2287.  E void FDECL(set_selection_floodfillchk, (int FDECL((*), (int,int))));
  2288.  E void FDECL(selection_floodfill, (struct opvar *, int, int, BOOLEAN_P));
  2289.  
  2290.  /* ### spell.c ### */
  2291.  
  2292.  E void FDECL(book_cursed, (struct obj *));
  2293.  #ifdef USE_TRAMPOLI
  2294.  E int NDECL(learn);
  2295.  #endif
  2296.  E int FDECL(study_book, (struct obj *));
  2297.  E void FDECL(book_disappears, (struct obj *));
  2298.  E void FDECL(book_substitution, (struct obj *, struct obj *));
  2299.  E void NDECL(age_spells);
  2300.  E int NDECL(docast);
  2301.  E int FDECL(spell_skilltype, (int));
  2302.  E int FDECL(spelleffects, (int, BOOLEAN_P));
  2303.  E void NDECL(losespells);
  2304.  E int NDECL(dovspell);
  2305.  E void FDECL(initialspell, (struct obj *));
  2306.  
  2307.  /* ### steal.c ### */
  2308.  
  2309.  #ifdef USE_TRAMPOLI
  2310.  E int NDECL(stealarm);
  2311.  #endif
  2312.  E long FDECL(somegold, (long));
  2313.  E void FDECL(stealgold, (struct monst *));
  2314.  E void FDECL(remove_worn_item, (struct obj *, BOOLEAN_P));
  2315.  E int FDECL(steal, (struct monst *, char *));
  2316.  E int FDECL(mpickobj, (struct monst *, struct obj *));
  2317.  E void FDECL(stealamulet, (struct monst *));
  2318.  E void FDECL(maybe_absorb_item, (struct monst *, struct obj *, int, int));
  2319.  E void FDECL(mdrop_obj, (struct monst *, struct obj *, BOOLEAN_P));
  2320.  E void FDECL(mdrop_special_objs, (struct monst *));
  2321.  E void FDECL(relobj, (struct monst *, int, BOOLEAN_P));
  2322.  E struct obj *FDECL(findgold, (struct obj *));
  2323.  
  2324.  /* ### steed.c ### */
  2325.  
  2326.  E void NDECL(rider_cant_reach);
  2327.  E boolean FDECL(can_saddle, (struct monst *));
  2328.  E int FDECL(use_saddle, (struct obj *));
  2329.  E void FDECL(put_saddle_on_mon, (struct obj *, struct monst *));
  2330.  E boolean FDECL(can_ride, (struct monst *));
  2331.  E int NDECL(doride);
  2332.  E boolean FDECL(mount_steed, (struct monst *, BOOLEAN_P));
  2333.  E void NDECL(exercise_steed);
  2334.  E void NDECL(kick_steed);
  2335.  E void FDECL(dismount_steed, (int));
  2336.  E void FDECL(place_monster, (struct monst *, int, int));
  2337.  E boolean FDECL(stucksteed, (BOOLEAN_P));
  2338.  
  2339.  /* ### teleport.c ### */
  2340.  
  2341.  E boolean FDECL(goodpos, (int, int, struct monst *, unsigned));
  2342.  E boolean FDECL(enexto, (coord *, XCHAR_P, XCHAR_P, struct permonst *));
  2343.  E boolean FDECL(enexto_core, (coord *, XCHAR_P, XCHAR_P,
  2344.                                struct permonst *, unsigned));
  2345.  E void FDECL(teleds, (int, int, BOOLEAN_P));
  2346.  E boolean FDECL(safe_teleds, (BOOLEAN_P));
  2347.  E boolean FDECL(teleport_pet, (struct monst *, BOOLEAN_P));
  2348.  E void NDECL(tele);
  2349.  E boolean FDECL(scrolltele, (struct obj *));
  2350.  E int NDECL(dotele);
  2351.  E void NDECL(level_tele);
  2352.  E void FDECL(domagicportal, (struct trap *));
  2353.  E void FDECL(tele_trap, (struct trap *));
  2354.  E void FDECL(level_tele_trap, (struct trap *, unsigned));
  2355.  E void FDECL(rloc_to, (struct monst *, int, int));
  2356.  E boolean FDECL(rloc, (struct monst *, BOOLEAN_P));
  2357.  E boolean FDECL(tele_restrict, (struct monst *));
  2358.  E void FDECL(mtele_trap, (struct monst *, struct trap *, int));
  2359.  E int FDECL(mlevel_tele_trap, (struct monst *, struct trap *,
  2360.                                 BOOLEAN_P, int));
  2361.  E boolean FDECL(rloco, (struct obj *));
  2362.  E int NDECL(random_teleport_level);
  2363.  E boolean FDECL(u_teleport_mon, (struct monst *, BOOLEAN_P));
  2364.  
  2365.  /* ### tile.c ### */
  2366.  #ifdef USE_TILES
  2367.  E void FDECL(substitute_tiles, (d_level *));
  2368.  #endif
  2369.  
  2370.  /* ### timeout.c ### */
  2371.  
  2372.  E void NDECL(burn_away_slime);
  2373.  E void NDECL(nh_timeout);
  2374.  E void FDECL(fall_asleep, (int, BOOLEAN_P));
  2375.  E void FDECL(attach_egg_hatch_timeout, (struct obj *, long));
  2376.  E void FDECL(attach_fig_transform_timeout, (struct obj *));
  2377.  E void FDECL(kill_egg, (struct obj *));
  2378.  E void FDECL(hatch_egg, (ANY_P *, long));
  2379.  E void FDECL(learn_egg_type, (int));
  2380.  E void FDECL(burn_object, (ANY_P *, long));
  2381.  E void FDECL(begin_burn, (struct obj *, BOOLEAN_P));
  2382.  E void FDECL(end_burn, (struct obj *, BOOLEAN_P));
  2383.  E void NDECL(do_storms);
  2384.  E boolean FDECL(start_timer, (long, SHORT_P, SHORT_P, ANY_P *));
  2385.  E long FDECL(stop_timer, (SHORT_P, ANY_P *));
  2386.  E long FDECL(peek_timer, (SHORT_P, ANY_P *));
  2387.  E void NDECL(run_timers);
  2388.  E void FDECL(obj_move_timers, (struct obj *, struct obj *));
  2389.  E void FDECL(obj_split_timers, (struct obj *, struct obj *));
  2390.  E void FDECL(obj_stop_timers, (struct obj *));
  2391.  E boolean FDECL(obj_has_timer, (struct obj *, SHORT_P));
  2392.  E void FDECL(spot_stop_timers, (XCHAR_P, XCHAR_P, SHORT_P));
  2393.  E long FDECL(spot_time_expires, (XCHAR_P, XCHAR_P, SHORT_P));
  2394.  E long FDECL(spot_time_left, (XCHAR_P, XCHAR_P, SHORT_P));
  2395.  E boolean FDECL(obj_is_local, (struct obj *));
  2396.  E void FDECL(save_timers, (int, int, int));
  2397.  E void FDECL(restore_timers, (int, int, BOOLEAN_P, long));
  2398.  E void FDECL(timer_stats, (const char *, char *, long *, long *));
  2399.  E void FDECL(relink_timers, (BOOLEAN_P));
  2400.  E int NDECL(wiz_timeout_queue);
  2401.  E void NDECL(timer_sanity_check);
  2402.  
  2403.  /* ### topten.c ### */
  2404.  
  2405.  E void FDECL(formatkiller, (char *, unsigned, int, BOOLEAN_P));
  2406.  E void FDECL(topten, (int, time_t));
  2407.  E void FDECL(prscore, (int, char **));
  2408.  E struct toptenentry *NDECL(get_rnd_toptenentry);
  2409.  E struct obj *FDECL(tt_oname, (struct obj *));
  2410.  
  2411.  /* ### track.c ### */
  2412.  
  2413.  E void NDECL(initrack);
  2414.  E void NDECL(settrack);
  2415.  E coord *FDECL(gettrack, (int, int));
  2416.  
  2417.  /* ### trap.c ### */
  2418.  
  2419.  E boolean FDECL(burnarmor, (struct monst *));
  2420.  E int FDECL(erode_obj, (struct obj *, const char *, int, int));
  2421.  E boolean FDECL(grease_protect, (struct obj *, const char *, struct monst *));
  2422.  E struct trap *FDECL(maketrap, (int, int, int));
  2423.  E void FDECL(fall_through, (BOOLEAN_P));
  2424.  E struct monst *FDECL(animate_statue,
  2425.                        (struct obj *, XCHAR_P, XCHAR_P, int, int *));
  2426.  E struct monst *FDECL(activate_statue_trap,
  2427.                        (struct trap *, XCHAR_P, XCHAR_P, BOOLEAN_P));
  2428.  E void FDECL(dotrap, (struct trap *, unsigned));
  2429.  E void FDECL(seetrap, (struct trap *));
  2430.  E void FDECL(feeltrap, (struct trap *));
  2431.  E int FDECL(mintrap, (struct monst *));
  2432.  E void FDECL(instapetrify, (const char *));
  2433.  E void FDECL(minstapetrify, (struct monst *, BOOLEAN_P));
  2434.  E void FDECL(selftouch, (const char *));
  2435.  E void FDECL(mselftouch, (struct monst *, const char *, BOOLEAN_P));
  2436.  E void NDECL(float_up);
  2437.  E void FDECL(fill_pit, (int, int));
  2438.  E int FDECL(float_down, (long, long));
  2439.  E void NDECL(climb_pit);
  2440.  E boolean FDECL(fire_damage, (struct obj *, BOOLEAN_P, XCHAR_P, XCHAR_P));
  2441.  E int FDECL(fire_damage_chain,
  2442.              (struct obj *, BOOLEAN_P, BOOLEAN_P, XCHAR_P, XCHAR_P));
  2443.  E boolean FDECL(lava_damage, (struct obj *, XCHAR_P, XCHAR_P));
  2444.  E void acid_damage(struct obj *);
  2445.  E int FDECL(water_damage, (struct obj *, const char *, BOOLEAN_P));
  2446.  E void FDECL(water_damage_chain, (struct obj *, BOOLEAN_P));
  2447.  E boolean NDECL(drown);
  2448.  E void FDECL(drain_en, (int));
  2449.  E int NDECL(dountrap);
  2450.  E void FDECL(cnv_trap_obj, (int, int, struct trap *, BOOLEAN_P));
  2451.  E int FDECL(untrap, (BOOLEAN_P));
  2452.  E boolean FDECL(openholdingtrap, (struct monst *, boolean *));
  2453.  E boolean FDECL(closeholdingtrap, (struct monst *, boolean *));
  2454.  E boolean FDECL(openfallingtrap, (struct monst *, BOOLEAN_P, boolean *));
  2455.  E boolean FDECL(chest_trap, (struct obj *, int, BOOLEAN_P));
  2456.  E void FDECL(deltrap, (struct trap *));
  2457.  E boolean FDECL(delfloortrap, (struct trap *));
  2458.  E struct trap *FDECL(t_at, (int, int));
  2459.  E void FDECL(b_trapped, (const char *, int));
  2460.  E boolean NDECL(unconscious);
  2461.  E void FDECL(blow_up_landmine, (struct trap *));
  2462.  E int FDECL(launch_obj, (SHORT_P, int, int, int, int, int));
  2463.  E boolean NDECL(launch_in_progress);
  2464.  E void NDECL(force_launch_placement);
  2465.  E boolean FDECL(uteetering_at_seen_pit, (struct trap *));
  2466.  E boolean NDECL(lava_effects);
  2467.  E void NDECL(sink_into_lava);
  2468.  E void NDECL(sokoban_guilt);
  2469.  
  2470.  /* ### u_init.c ### */
  2471.  
  2472.  E void NDECL(u_init);
  2473.  
  2474.  /* ### uhitm.c ### */
  2475.  
  2476.  E void FDECL(erode_armor, (struct monst *, int));
  2477.  E boolean FDECL(attack_checks, (struct monst *, struct obj *));
  2478.  E void FDECL(check_caitiff, (struct monst *));
  2479.  E int FDECL(find_roll_to_hit, (struct monst *, UCHAR_P, struct obj *,
  2480.                                 int *, int *));
  2481.  E boolean FDECL(attack, (struct monst *));
  2482.  E boolean FDECL(hmon, (struct monst *, struct obj *, int, int));
  2483.  E int FDECL(damageum, (struct monst *, struct attack *));
  2484.  E void FDECL(missum, (struct monst *, struct attack *, BOOLEAN_P));
  2485.  E int FDECL(passive, (struct monst *, struct obj *, BOOLEAN_P, int,
  2486.                        UCHAR_P, BOOLEAN_P));
  2487.  E void FDECL(passive_obj, (struct monst *, struct obj *, struct attack *));
  2488.  E void FDECL(stumble_onto_mimic, (struct monst *));
  2489.  E int FDECL(flash_hits_mon, (struct monst *, struct obj *));
  2490.  E void FDECL(light_hits_gremlin, (struct monst *, int));
  2491.  
  2492.  /* ### unixmain.c ### */
  2493.  
  2494.  #ifdef UNIX
  2495.  #ifdef PORT_HELP
  2496.  E void NDECL(port_help);
  2497.  #endif
  2498.  E void FDECL(sethanguphandler, (void (*)(int)));
  2499.  E boolean NDECL(authorize_wizard_mode);
  2500.  E boolean FDECL(check_user_string, (char *));
  2501.  E char *NDECL(get_login_name);
  2502.  #endif /* UNIX */
  2503.  
  2504.  /* ### unixtty.c ### */
  2505.  
  2506.  #if defined(UNIX) || defined(__BEOS__)
  2507.  E void NDECL(gettty);
  2508.  E void FDECL(settty, (const char *));
  2509.  E void NDECL(setftty);
  2510.  E void NDECL(intron);
  2511.  E void NDECL(introff);
  2512.  E void VDECL(error, (const char *, ...)) PRINTF_F(1, 2);
  2513.  #endif /* UNIX || __BEOS__ */
  2514.  
  2515.  /* ### unixunix.c ### */
  2516.  
  2517.  #ifdef UNIX
  2518.  E void NDECL(getlock);
  2519.  E void FDECL(regularize, (char *));
  2520.  #if defined(TIMED_DELAY) && !defined(msleep) && defined(SYSV)
  2521.  E void FDECL(msleep, (unsigned));
  2522.  #endif
  2523.  #ifdef SHELL
  2524.  E int NDECL(dosh);
  2525.  #endif /* SHELL */
  2526.  #if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
  2527.  E int FDECL(child, (int));
  2528.  #endif
  2529.  #ifdef PANICTRACE
  2530.  E boolean FDECL(file_exists, (const char *));
  2531.  #endif
  2532.  #endif /* UNIX */
  2533.  
  2534.  /* ### unixres.c ### */
  2535.  
  2536.  #ifdef UNIX
  2537.  #ifdef GNOME_GRAPHICS
  2538.  E int FDECL(hide_privileges, (BOOLEAN_P));
  2539.  #endif
  2540.  #endif /* UNIX */
  2541.  
  2542.  /* ### vault.c ### */
  2543.  
  2544.  E void FDECL(newegd, (struct monst *));
  2545.  E void FDECL(free_egd, (struct monst *));
  2546.  E boolean FDECL(grddead, (struct monst *));
  2547.  E void NDECL(vault_summon_gd);
  2548.  E char FDECL(vault_occupied, (char *));
  2549.  E void NDECL(invault);
  2550.  E int FDECL(gd_move, (struct monst *));
  2551.  E void NDECL(paygd);
  2552.  E long NDECL(hidden_gold);
  2553.  E boolean NDECL(gd_sound);
  2554.  E void FDECL(vault_gd_watching, (unsigned int));
  2555.  
  2556.  /* ### version.c ### */
  2557.  
  2558.  E char *FDECL(version_string, (char *));
  2559.  E char *FDECL(getversionstring, (char *));
  2560.  E int NDECL(doversion);
  2561.  E int NDECL(doextversion);
  2562.  #ifdef MICRO
  2563.  E boolean FDECL(comp_times, (long));
  2564.  #endif
  2565.  E boolean
  2566.  FDECL(check_version, (struct version_info *, const char *, BOOLEAN_P));
  2567.  E boolean FDECL(uptodate, (int, const char *));
  2568.  E void FDECL(store_version, (int));
  2569.  E unsigned long FDECL(get_feature_notice_ver, (char *));
  2570.  E unsigned long NDECL(get_current_feature_ver);
  2571.  E const char *FDECL(copyright_banner_line, (int));
  2572.  E void FDECL(early_version_info, (BOOLEAN_P));
  2573.  
  2574.  #ifdef RUNTIME_PORT_ID
  2575.  E char *FDECL(get_port_id, (char *));
  2576.  #endif
  2577.  #ifdef RUNTIME_PASTEBUF_SUPPORT
  2578.  E void FDECL(port_insert_pastebuf, (char *));
  2579.  #endif
  2580.  
  2581.  /* ### video.c ### */
  2582.  
  2583.  #ifdef MSDOS
  2584.  E int FDECL(assign_video, (char *));
  2585.  #ifdef NO_TERMS
  2586.  E void NDECL(gr_init);
  2587.  E void NDECL(gr_finish);
  2588.  #endif
  2589.  E void FDECL(tileview, (BOOLEAN_P));
  2590.  #endif
  2591.  #ifdef VIDEOSHADES
  2592.  E int FDECL(assign_videoshades, (char *));
  2593.  E int FDECL(assign_videocolors, (char *));
  2594.  #endif
  2595.  
  2596.  /* ### vis_tab.c ### */
  2597.  
  2598.  #ifdef VISION_TABLES
  2599.  E void NDECL(vis_tab_init);
  2600.  #endif
  2601.  
  2602.  /* ### vision.c ### */
  2603.  
  2604.  E void NDECL(vision_init);
  2605.  E int FDECL(does_block, (int, int, struct rm *));
  2606.  E void NDECL(vision_reset);
  2607.  E void FDECL(vision_recalc, (int));
  2608.  E void FDECL(block_point, (int, int));
  2609.  E void FDECL(unblock_point, (int, int));
  2610.  E boolean FDECL(clear_path, (int, int, int, int));
  2611.  E void FDECL(do_clear_area, (int, int, int,
  2612.                               void (*)(int, int, genericptr), genericptr_t));
  2613.  E unsigned FDECL(howmonseen, (struct monst *));
  2614.  
  2615.  #ifdef VMS
  2616.  
  2617.  /* ### vmsfiles.c ### */
  2618.  
  2619.  E int FDECL(vms_link, (const char *, const char *));
  2620.  E int FDECL(vms_unlink, (const char *));
  2621.  E int FDECL(vms_creat, (const char *, unsigned int));
  2622.  E int FDECL(vms_open, (const char *, int, unsigned int));
  2623.  E boolean FDECL(same_dir, (const char *, const char *));
  2624.  E int FDECL(c__translate, (int));
  2625.  E char *FDECL(vms_basename, (const char *));
  2626.  
  2627.  /* ### vmsmail.c ### */
  2628.  
  2629.  E unsigned long NDECL(init_broadcast_trapping);
  2630.  E unsigned long NDECL(enable_broadcast_trapping);
  2631.  E unsigned long NDECL(disable_broadcast_trapping);
  2632.  #if 0
  2633.  E struct mail_info *NDECL(parse_next_broadcast);
  2634.  #endif /*0*/
  2635.  
  2636.  /* ### vmsmain.c ### */
  2637.  
  2638.  E int FDECL(main, (int, char **));
  2639.  #ifdef CHDIR
  2640.  E void FDECL(chdirx, (const char *, BOOLEAN_P));
  2641.  #endif /* CHDIR */
  2642.  E void FDECL(sethanguphandler, (void (*)(int)));
  2643.  E boolean NDECL(authorize_wizard_mode);
  2644.  
  2645.  /* ### vmsmisc.c ### */
  2646.  
  2647.  E void NDECL(vms_abort) NORETURN;
  2648.  E void FDECL(vms_exit, (int)) NORETURN;
  2649.  #ifdef PANICTRACE
  2650.  E void FDECL(vms_traceback, (int));
  2651.  #endif
  2652.  
  2653.  /* ### vmstty.c ### */
  2654.  
  2655.  E int NDECL(vms_getchar);
  2656.  E void NDECL(gettty);
  2657.  E void FDECL(settty, (const char *));
  2658.  E void FDECL(shuttty, (const char *));
  2659.  E void NDECL(setftty);
  2660.  E void NDECL(intron);
  2661.  E void NDECL(introff);
  2662.  E void VDECL(error, (const char *, ...)) PRINTF_F(1, 2);
  2663.  #ifdef TIMED_DELAY
  2664.  E void FDECL(msleep, (unsigned));
  2665.  #endif
  2666.  
  2667.  /* ### vmsunix.c ### */
  2668.  
  2669.  E void NDECL(getlock);
  2670.  E void FDECL(regularize, (char *));
  2671.  E int NDECL(vms_getuid);
  2672.  E boolean FDECL(file_is_stmlf, (int));
  2673.  E int FDECL(vms_define, (const char *, const char *, int));
  2674.  E int FDECL(vms_putenv, (const char *));
  2675.  E char *NDECL(verify_termcap);
  2676.  #if defined(CHDIR) || defined(SHELL) || defined(SECURE)
  2677.  E void NDECL(privoff);
  2678.  E void NDECL(privon);
  2679.  #endif
  2680.  #ifdef SHELL
  2681.  E int NDECL(dosh);
  2682.  #endif
  2683.  #if defined(SHELL) || defined(MAIL)
  2684.  E int FDECL(vms_doshell, (const char *, BOOLEAN_P));
  2685.  #endif
  2686.  #ifdef SUSPEND
  2687.  E int NDECL(dosuspend);
  2688.  #endif
  2689.  #ifdef SELECTSAVED
  2690.  E int FDECL(vms_get_saved_games, (const char *, char ***));
  2691.  #endif
  2692.  
  2693.  #endif /* VMS */
  2694.  
  2695.  /* ### weapon.c ### */
  2696.  
  2697.  E const char *FDECL(weapon_descr, (struct obj *));
  2698.  E int FDECL(hitval, (struct obj *, struct monst *));
  2699.  E int FDECL(dmgval, (struct obj *, struct monst *));
  2700.  E struct obj *FDECL(select_rwep, (struct monst *));
  2701.  E struct obj *FDECL(select_hwep, (struct monst *));
  2702.  E void FDECL(possibly_unwield, (struct monst *, BOOLEAN_P));
  2703.  E void FDECL(mwepgone, (struct monst *));
  2704.  E int FDECL(mon_wield_item, (struct monst *));
  2705.  E int NDECL(abon);
  2706.  E int NDECL(dbon);
  2707.  E void FDECL(wet_a_towel, (struct obj *, int, BOOLEAN_P));
  2708.  E void FDECL(dry_a_towel, (struct obj *, int, BOOLEAN_P));
  2709.  E int NDECL(enhance_weapon_skill);
  2710.  E void FDECL(unrestrict_weapon_skill, (int));
  2711.  E void FDECL(use_skill, (int, int));
  2712.  E void FDECL(add_weapon_skill, (int));
  2713.  E void FDECL(lose_weapon_skill, (int));
  2714.  E int FDECL(weapon_type, (struct obj *));
  2715.  E int NDECL(uwep_skill_type);
  2716.  E int FDECL(weapon_hit_bonus, (struct obj *));
  2717.  E int FDECL(weapon_dam_bonus, (struct obj *));
  2718.  E void FDECL(skill_init, (const struct def_skill *));
  2719.  
  2720.  /* ### were.c ### */
  2721.  
  2722.  E void FDECL(were_change, (struct monst *));
  2723.  E int FDECL(counter_were, (int));
  2724.  E int FDECL(were_beastie, (int));
  2725.  E void FDECL(new_were, (struct monst *));
  2726.  E int FDECL(were_summon, (struct permonst *, BOOLEAN_P, int *, char *));
  2727.  E void NDECL(you_were);
  2728.  E void FDECL(you_unwere, (BOOLEAN_P));
  2729.  E void FDECL(set_ulycn, (int));
  2730.  
  2731.  /* ### wield.c ### */
  2732.  
  2733.  E void FDECL(setuwep, (struct obj *));
  2734.  E void FDECL(setuqwep, (struct obj *));
  2735.  E void FDECL(setuswapwep, (struct obj *));
  2736.  E int NDECL(dowield);
  2737.  E int NDECL(doswapweapon);
  2738.  E int NDECL(dowieldquiver);
  2739.  E boolean FDECL(wield_tool, (struct obj *, const char *));
  2740.  E int NDECL(can_twoweapon);
  2741.  E void NDECL(drop_uswapwep);
  2742.  E int NDECL(dotwoweapon);
  2743.  E void NDECL(uwepgone);
  2744.  E void NDECL(uswapwepgone);
  2745.  E void NDECL(uqwepgone);
  2746.  E void NDECL(untwoweapon);
  2747.  E int FDECL(chwepon, (struct obj *, int));
  2748.  E int FDECL(welded, (struct obj *));
  2749.  E void FDECL(weldmsg, (struct obj *));
  2750.  E void FDECL(setmnotwielded, (struct monst *, struct obj *));
  2751.  E boolean FDECL(mwelded, (struct obj *));
  2752.  
  2753.  /* ### windows.c ### */
  2754.  
  2755.  E void FDECL(choose_windows, (const char *));
  2756.  #ifdef WINCHAIN
  2757.  void FDECL(addto_windowchain, (const char *s));
  2758.  void NDECL(commit_windowchain);
  2759.  #endif
  2760.  E boolean NDECL(genl_can_suspend_no);
  2761.  E boolean NDECL(genl_can_suspend_yes);
  2762.  E char FDECL(genl_message_menu, (CHAR_P, int, const char *));
  2763.  E void FDECL(genl_preference_update, (const char *));
  2764.  E char *FDECL(genl_getmsghistory, (BOOLEAN_P));
  2765.  E void FDECL(genl_putmsghistory, (const char *, BOOLEAN_P));
  2766.  #ifdef HANGUPHANDLING
  2767.  E void NDECL(nhwindows_hangup);
  2768.  #endif
  2769.  E void NDECL(genl_status_init);
  2770.  E void NDECL(genl_status_finish);
  2771.  E void FDECL(genl_status_enablefield,
  2772.               (int, const char *, const char *, BOOLEAN_P));
  2773.  E void FDECL(genl_status_update, (int, genericptr_t, int, int, int, unsigned long *));
  2774.  
  2775.  E void FDECL(dump_open_log, (time_t));
  2776.  E void NDECL(dump_close_log);
  2777.  E void FDECL(dump_redirect, (BOOLEAN_P));
  2778.  E void FDECL(dump_forward_putstr, (winid, int, const char*, int));
  2779.  
  2780.  /* ### wizard.c ### */
  2781.  
  2782.  E void NDECL(amulet);
  2783.  E int FDECL(mon_has_amulet, (struct monst *));
  2784.  E int FDECL(mon_has_special, (struct monst *));
  2785.  E int FDECL(tactics, (struct monst *));
  2786.  E boolean FDECL(has_aggravatables, (struct monst *));
  2787.  E void NDECL(aggravate);
  2788.  E void NDECL(clonewiz);
  2789.  E int NDECL(pick_nasty);
  2790.  E int FDECL(nasty, (struct monst *));
  2791.  E void NDECL(resurrect);
  2792.  E void NDECL(intervene);
  2793.  E void NDECL(wizdead);
  2794.  E void FDECL(cuss, (struct monst *));
  2795.  
  2796.  /* ### worm.c ### */
  2797.  
  2798.  E int NDECL(get_wormno);
  2799.  E void FDECL(initworm, (struct monst *, int));
  2800.  E void FDECL(worm_move, (struct monst *));
  2801.  E void FDECL(worm_nomove, (struct monst *));
  2802.  E void FDECL(wormgone, (struct monst *));
  2803.  E void FDECL(wormhitu, (struct monst *));
  2804.  E void FDECL(cutworm, (struct monst *, XCHAR_P, XCHAR_P, struct obj *));
  2805.  E void FDECL(see_wsegs, (struct monst *));
  2806.  E void FDECL(detect_wsegs, (struct monst *, BOOLEAN_P));
  2807.  E void FDECL(save_worm, (int, int));
  2808.  E void FDECL(rest_worm, (int));
  2809.  E void FDECL(place_wsegs, (struct monst *));
  2810.  E void FDECL(sanity_check_worm, (struct monst *));
  2811.  E void FDECL(remove_worm, (struct monst *));
  2812.  E void FDECL(place_worm_tail_randomly, (struct monst *, XCHAR_P, XCHAR_P));
  2813.  E int FDECL(size_wseg, (struct monst *));
  2814.  E int FDECL(count_wsegs, (struct monst *));
  2815.  E boolean FDECL(worm_known, (struct monst *));
  2816.  E boolean FDECL(worm_cross, (int, int, int, int));
  2817.  E int FDECL(wseg_at, (struct monst *, int, int));
  2818.  
  2819.  /* ### worn.c ### */
  2820.  
  2821.  E void FDECL(setworn, (struct obj *, long));
  2822.  E void FDECL(setnotworn, (struct obj *));
  2823.  E long FDECL(wearslot, (struct obj *));
  2824.  E void FDECL(mon_set_minvis, (struct monst *));
  2825.  E void FDECL(mon_adjust_speed, (struct monst *, int, struct obj *));
  2826.  E void FDECL(update_mon_intrinsics,
  2827.               (struct monst *, struct obj *, BOOLEAN_P, BOOLEAN_P));
  2828.  E int FDECL(find_mac, (struct monst *));
  2829.  E void FDECL(m_dowear, (struct monst *, BOOLEAN_P));
  2830.  E struct obj *FDECL(which_armor, (struct monst *, long));
  2831.  E void FDECL(mon_break_armor, (struct monst *, BOOLEAN_P));
  2832.  E void FDECL(bypass_obj, (struct obj *));
  2833.  E void NDECL(clear_bypasses);
  2834.  E void FDECL(bypass_objlist, (struct obj *, BOOLEAN_P));
  2835.  E struct obj *FDECL(nxt_unbypassed_obj, (struct obj *));
  2836.  E int FDECL(racial_exception, (struct monst *, struct obj *));
  2837.  
  2838.  /* ### write.c ### */
  2839.  
  2840.  E int FDECL(dowrite, (struct obj *));
  2841.  
  2842.  /* ### zap.c ### */
  2843.  
  2844.  E void FDECL(learnwand, (struct obj *));
  2845.  E int FDECL(bhitm, (struct monst *, struct obj *));
  2846.  E void FDECL(probe_monster, (struct monst *));
  2847.  E boolean FDECL(get_obj_location, (struct obj *, xchar *, xchar *, int));
  2848.  E boolean FDECL(get_mon_location, (struct monst *, xchar *, xchar *, int));
  2849.  E struct monst *FDECL(get_container_location,
  2850.                        (struct obj * obj, int *, int *));
  2851.  E struct monst *FDECL(montraits, (struct obj *, coord *));
  2852.  E struct monst *FDECL(revive, (struct obj *, BOOLEAN_P));
  2853.  E int FDECL(unturn_dead, (struct monst *));
  2854.  E void FDECL(cancel_item, (struct obj *));
  2855.  E boolean FDECL(drain_item, (struct obj *, BOOLEAN_P));
  2856.  E struct obj *FDECL(poly_obj, (struct obj *, int));
  2857.  E boolean FDECL(obj_resists, (struct obj *, int, int));
  2858.  E boolean FDECL(obj_shudders, (struct obj *));
  2859.  E void FDECL(do_osshock, (struct obj *));
  2860.  E int FDECL(bhito, (struct obj *, struct obj *));
  2861.  E int FDECL(bhitpile,
  2862.              (struct obj *, int (*)(OBJ_P, OBJ_P), int, int, SCHAR_P));
  2863.  E int FDECL(zappable, (struct obj *));
  2864.  E void FDECL(zapnodir, (struct obj *));
  2865.  E int NDECL(dozap);
  2866.  E int FDECL(zapyourself, (struct obj *, BOOLEAN_P));
  2867.  E void FDECL(ubreatheu, (struct attack *));
  2868.  E int FDECL(lightdamage, (struct obj *, BOOLEAN_P, int));
  2869.  E boolean FDECL(flashburn, (long));
  2870.  E boolean FDECL(cancel_monst, (struct monst *, struct obj *, BOOLEAN_P,
  2871.                                 BOOLEAN_P, BOOLEAN_P));
  2872.  E void NDECL(zapsetup);
  2873.  E void NDECL(zapwrapup);
  2874.  E void FDECL(weffects, (struct obj *));
  2875.  E int FDECL(spell_damage_bonus, (int));
  2876.  E const char *FDECL(exclam, (int force));
  2877.  E void FDECL(hit, (const char *, struct monst *, const char *));
  2878.  E void FDECL(miss, (const char *, struct monst *));
  2879.  E struct monst *FDECL(bhit, (int, int, int, int, int (*)(MONST_P, OBJ_P),
  2880.                               int (*)(OBJ_P, OBJ_P), struct obj **));
  2881.  E struct monst *FDECL(boomhit, (struct obj *, int, int));
  2882.  E int FDECL(zhitm, (struct monst *, int, int, struct obj **));
  2883.  E int FDECL(burn_floor_objects, (int, int, BOOLEAN_P, BOOLEAN_P));
  2884.  E void FDECL(buzz, (int, int, XCHAR_P, XCHAR_P, int, int));
  2885.  E void FDECL(dobuzz, (int, int, XCHAR_P, XCHAR_P, int, int, BOOLEAN_P));
  2886.  E void FDECL(melt_ice, (XCHAR_P, XCHAR_P, const char *));
  2887.  E void FDECL(start_melt_ice_timeout, (XCHAR_P, XCHAR_P, long));
  2888.  E void FDECL(melt_ice_away, (ANY_P *, long));
  2889.  E int FDECL(zap_over_floor, (XCHAR_P, XCHAR_P, int, boolean *, SHORT_P));
  2890.  E void FDECL(fracture_rock, (struct obj *));
  2891.  E boolean FDECL(break_statue, (struct obj *));
  2892.  E void FDECL(destroy_item, (int, int));
  2893.  E int FDECL(destroy_mitem, (struct monst *, int, int));
  2894.  E int FDECL(resist, (struct monst *, CHAR_P, int, int));
  2895.  E void NDECL(makewish);
  2896.  
  2897.  #endif /* !MAKEDEFS_C && !LEV_LEX_C */
  2898.  
  2899.  #undef E
  2900.  
  2901.  #endif /* EXTERN_H */