From decwrl!wuarchive!mit-eddie!uw-beaver!zephyr.ens.tek.com!tekred!saab!billr Sat Mar 3 17:35:46 PST 1990 Article 834 of comp.sources.games: Path: decwrl!wuarchive!mit-eddie!uw-beaver!zephyr.ens.tek.com!tekred!saab!billr From: billr@saab.CNA.TEK.COM (Bill Randle) Newsgroups: comp.sources.games Subject: v09i024: NetHack3 - display oriented dungeons & dragons (Ver. 3.0), Patch7x Message-ID: <5238@tekred.CNA.TEK.COM> Date: 24 Feb 90 01:07:04 GMT Sender: news@tekred.CNA.TEK.COM Lines: 1985 Approved: billr@saab.CNA.TEK.COM Submitted-by: Izchak Miller Posting-number: Volume 9, Issue 24 Archive-name: NetHack3/Patch7x Patch-To: NetHack3: Volume 7, Issue 56-93 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'include/extern.h' <<'END_OF_FILE' X/* SCCS Id: @(#)extern.h 3.0 89/11/22 X/* Copyright (c) Steve Creps, 1988. */ X/* NetHack may be freely redistributed. See license for details. */ X X#ifndef EXTERN_H X#define EXTERN_H X X#if defined(MSDOS) && defined(MSC) X/* MSC include files do not contain "extern" keyword */ X#define E X#else X#define E extern X#endif X X/* ### allmain.c ### */ X XE int NDECL((*occupation)); XE int NDECL((*afternmv)); XE void NDECL(moveloop); XE void NDECL(stop_occupation); XE void NDECL(newgame); X X/* ### alloc.c ### */ X X#ifndef __TURBOC__ XE long *FDECL(alloc, (unsigned int)); X#endif X X#if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C) X X/* ### amiwbench.c ### */ X X#ifdef AMIGA_WBENCH XE void FDECL(ami_wbench_init,(int,char *[])); XE void NDECL(ami_wbench_args); XE int FDECL(ami_wbench_getsave,(int)); XE void FDECL(ami_wbench_unlink,(char *)); XE int FDECL(ami_wbench_iconsize,(char *)); XE void FDECL(ami_wbench_iconwrite,(char *)); XE int FDECL(ami_wbench_badopt,(char *)); XE void NDECL(ami_wbench_cleanup); X#endif /* AMIGA_WBENCH */ X X/* ### apply.c ### */ X X#ifdef OVERLAY XE int NDECL(dig); X#endif XE int NDECL(doapply); XE int NDECL(holetime); XE void NDECL(dighole); XE int NDECL(dorub); XE int NDECL(dojump); X#ifdef WALKIES XE int NDECL(number_leashed); XE void FDECL(o_unleash, (struct obj *)); XE void FDECL(m_unleash, (struct monst *)); XE void NDECL(unleash_all); XE boolean NDECL(next_to_u); XE struct obj *FDECL(get_mleash, (struct monst *)); XE void FDECL(check_leash, (XCHAR_P,XCHAR_P)); X#endif XE boolean FDECL(um_dist, (XCHAR_P,XCHAR_P,XCHAR_P)); XE int FDECL(use_unicorn_horn, (struct obj *)); X X/* ### artifact.c ### */ X X#ifdef NAMED_ITEMS XE void NDECL(init_exists); XE void FDECL(mkartifact, (struct obj **)); XE boolean FDECL(is_artifact, (struct obj *)); XE boolean FDECL(exist_artifact, (struct obj *,const char *)); XE void FDECL(artifact_exists, (struct obj *,const char *,BOOLEAN_P)); XE boolean FDECL(spec_ability, (struct obj *,unsigned)); XE int FDECL(restr_name, (struct obj *,char *)); X# if defined(THEOLOGY) && defined(ALTARS) XE struct obj *FDECL(mk_aligned_artifact, (unsigned)); X# endif XE int FDECL(defends, (int,struct obj *)); XE int FDECL(spec_abon, (struct obj *,struct permonst *)); XE int FDECL(spec_dbon, (struct obj *,struct permonst *,int)); X#endif X X/* ### attrib.c ### */ X XE void FDECL(adjattrib, (int,int,BOOLEAN_P)); XE void FDECL(change_luck, (SCHAR_P)); XE int FDECL(stone_luck, (BOOLEAN_P)); XE void FDECL(gainstr, (struct obj *,int)); XE void FDECL(losestr, (int)); XE void NDECL(restore_attrib); XE void FDECL(init_attr, (int)); XE void NDECL(redist_attr); XE void FDECL(adjabil, (int,int)); XE int NDECL(newhp); XE schar FDECL(acurr, (int)); XE void FDECL(adjalign, (int)); X X/* ### bones.c ### */ X XE void NDECL(savebones); XE int NDECL(getbones); XE void FDECL(name_file, (char *,int)); X X/* ### cmd.c ### */ X X#ifdef OVERLAY XE int NDECL(doextcmd); X#ifdef POLYSELF XE int NDECL(domonability); X#endif /* POLYSELF */ XE int NDECL(timed_occupation); X#if defined(WIZARD) || defined(EXPLORE_MODE) XE int NDECL(wiz_attributes); X#endif /* WIZARD */ X# ifdef EXPLORE_MODE XE int NDECL(enter_explore_mode); X# endif /* EXPLORE_MODE */ X#ifdef WIZARD XE int NDECL(wiz_detect); XE int NDECL(wiz_genesis); XE int NDECL(wiz_identify); XE int NDECL(wiz_level_tele); XE int NDECL(wiz_map); XE int NDECL(wiz_where); XE int NDECL(wiz_wish); X#endif /* WIZARD */ X#endif /* OVERLAY */ XE void NDECL(reset_occupations); XE void FDECL(set_occupation, (int NDECL((*)),const char *,int)); X#ifdef REDO XE char NDECL(pgetchar); XE void FDECL(pushch, (CHAR_P)); XE void FDECL(savech, (CHAR_P)); X#endif XE void FDECL(rhack, (char *)); XE char FDECL(lowc, (CHAR_P)); XE void NDECL(enlightenment); XE int FDECL(xytod, (SCHAR_P,SCHAR_P)); XE void FDECL(dtoxy, (coord *,int)); XE int FDECL(movecmd, (CHAR_P)); XE int FDECL(getdir, (BOOLEAN_P)); XE void NDECL(confdir); XE int FDECL(isok, (int,int)); XE int NDECL(doextlist); X X/* ### dbridge.c ### */ X XE boolean FDECL(is_pool, (int,int)); X#ifdef STRONGHOLD XE void FDECL(initsym, (int,int)); XE int FDECL(is_drawbridge_wall, (int, int)); XE boolean FDECL(is_db_wall, (int, int)); XE boolean FDECL(find_drawbridge, (int *, int*)); XE boolean FDECL(create_drawbridge, (int, int, int, BOOLEAN_P)); XE void FDECL(open_drawbridge, (int, int)); XE void FDECL(close_drawbridge, (int, int)); XE void FDECL(destroy_drawbridge, (int, int)); X#endif /* STRONGHOLD /**/ X X/* ### decl.c ### */ X X/* ### demon.c ### */ X XE void FDECL(dsummon, (struct permonst *)); XE int FDECL(demon_talk, (struct monst *)); XE long FDECL(bribe, (struct monst *)); XE int NDECL(dprince); XE int NDECL(dlord); XE int NDECL(ndemon); X X/* ### do.c ### */ X X#ifdef OVERLAY XE int FDECL(drop, (struct obj *)); XE int NDECL(wipeoff); X#endif XE int NDECL(dodrop); XE boolean FDECL(flooreffects, (struct obj *,int,int)); XE void FDECL(doaltarobj, (struct obj *)); XE boolean FDECL(canletgo, (struct obj *,const char *)); XE void FDECL(dropx, (struct obj *)); XE void FDECL(dropy, (struct obj *)); XE int NDECL(doddrop); XE int NDECL(dodown); XE int NDECL(doup); XE void FDECL(goto_level, (int,BOOLEAN_P,BOOLEAN_P)); XE int NDECL(donull); XE int NDECL(dowipe); XE struct obj *FDECL(splitobj, (struct obj *,int)); XE void FDECL(set_wounded_legs, (long,int)); XE void NDECL(heal_legs); X X/* ### do_name.c ### */ X XE void FDECL(getpos, (coord *,int,const char *)); XE struct monst *FDECL(christen_monst, (struct monst *,const char *)); XE int NDECL(do_mname); XE struct obj *FDECL(oname, (struct obj *,const char *,int)); XE int NDECL(ddocall); XE void FDECL(docall, (struct obj *)); XE char *FDECL(x_monnam, (struct monst *,int)); XE char *FDECL(lmonnam, (struct monst *)); XE char *FDECL(mon_nam, (struct monst *)); XE char *FDECL(Monnam, (struct monst *)); XE char *FDECL(a_monnam, (struct monst *,const char *)); XE char *FDECL(a2_monnam, (struct monst *,const char *)); XE char *FDECL(Amonnam, (struct monst *,const char *)); XE char *FDECL(Xmonnam, (struct monst *)); XE char *FDECL(defmonnam, (struct monst *)); XE const char *NDECL(rndmonnam); XE char *FDECL(self_pronoun, (const char *,const char *)); X#ifdef REINCARNATION XE const char *NDECL(roguename); X#endif X X/* ### do_wear.c ### */ X X#ifdef OVERLAY XE int NDECL(Armor_on); XE int NDECL(Boots_on); XE int NDECL(Gloves_on); XE int NDECL(Helmet_on); XE int FDECL(select_off, (struct obj *otmp)); XE int NDECL(take_off); X#endif XE void FDECL(off_msg, (struct obj *)); XE boolean FDECL(is_helmet, (struct obj *)); XE boolean FDECL(is_gloves, (struct obj *)); XE boolean FDECL(is_boots, (struct obj *)); XE boolean FDECL(is_cloak, (struct obj *)); XE boolean FDECL(is_shield, (struct obj *)); XE void NDECL(set_wear); XE boolean FDECL(donning, (struct obj *)); XE void NDECL(cancel_don); XE int NDECL(Armor_off); XE int NDECL(Armor_gone); XE int NDECL(Helmet_off); XE int NDECL(Gloves_off); XE int NDECL(Boots_off); XE int NDECL(Cloak_off); XE int NDECL(Shield_off); XE void NDECL(Amulet_off); XE void FDECL(Ring_on, (struct obj *)); XE void FDECL(Ring_off, (struct obj *)); XE void FDECL(Ring_gone, (struct obj *)); XE void FDECL(Blindf_on, (struct obj *)); XE void FDECL(Blindf_off, (struct obj *)); XE int NDECL(dotakeoff); XE int NDECL(doremring); XE int FDECL(cursed, (struct obj *)); XE int FDECL(armoroff, (struct obj *)); XE int NDECL(dowear); XE int NDECL(doputon); XE void NDECL(find_ac); XE void NDECL(glibr); XE struct obj *NDECL(some_armor); XE void NDECL(corrode_armor); XE void NDECL(reset_remarm); XE int NDECL(doddoremarm); XE int FDECL(destroy_arm, (struct obj *)); XE void FDECL(adj_abon, (struct obj *,SCHAR_P)); X X/* ### dog.c ### */ X XE void FDECL(initedog, (struct monst *)); XE void FDECL(make_familiar, (struct obj *)); XE struct monst *NDECL(makedog); XE void NDECL(losedogs); XE void NDECL(keepdogs); XE void FDECL(fall_down, (struct monst *,int)); XE int FDECL(dogfood, (struct monst *,struct obj *)); XE int FDECL(inroom, (XCHAR_P,XCHAR_P)); XE int FDECL(tamedog, (struct monst *,struct obj *)); X X/* ### dogmove.c ### */ X XE int FDECL(dog_move, (struct monst *,int)); X X/* ### dokick.c ### */ X XE boolean FDECL(ghitm, (struct monst *,long)); XE boolean FDECL(bad_kick_throw_pos, (XCHAR_P,XCHAR_P)); XE struct monst *FDECL(ghit, (int,int,int)); XE int NDECL(dokick); X X/* ### dothrow.c ### */ X XE int NDECL(dothrow); XE int FDECL(throwit, (struct obj *)); XE int FDECL(thitmonst, (struct monst *,struct obj *)); XE int FDECL(breaks, (struct obj *,BOOLEAN_P)); X X/* ### eat.c ### */ X X#ifdef OVERLAY XE int NDECL(Meatdone); XE int NDECL(eatfood); XE int NDECL(opentin); XE int NDECL(unfaint); X#endif XE boolean FDECL(is_edible, (struct obj *)); XE void NDECL(init_uhunger); XE int NDECL(Hear_again); XE void NDECL(reset_eat); XE int NDECL(doeat); XE void NDECL(gethungry); XE void FDECL(morehungry, (int)); XE void FDECL(lesshungry, (int)); XE boolean NDECL(is_fainted); XE void NDECL(reset_faint); XE void NDECL(sync_hunger); XE void FDECL(newuhs, (BOOLEAN_P)); XE struct obj *FDECL(floorfood, (const char *,BOOLEAN_P)); XE void NDECL(vomit); XE int FDECL(eaten_stat, (int, struct obj *)); XE void FDECL(food_disappears, (struct obj *)); X X/* ### end.c ### */ X XE int NDECL(done1); XE int NDECL(done2); XE void FDECL(done_in_by, (struct monst *)); XE void VDECL(panic, (const char *,...)); XE void FDECL(done, (int)); XE void NDECL(clearlocks); X#ifdef NOSAVEONHANGUP XE void NDECL(hangup); X#endif X X/* ### engrave.c ### */ X X#ifdef ELBERETH XE int FDECL(sengr_at, (const char *,XCHAR_P,XCHAR_P)); X#endif XE void FDECL(u_wipe_engr, (int)); XE void FDECL(wipe_engr_at, (XCHAR_P,XCHAR_P,XCHAR_P)); XE void FDECL(read_engr_at, (int,int)); XE void FDECL(make_engr_at, (int,int,const char *)); XE int NDECL(freehand); XE int NDECL(doengrave); XE void FDECL(save_engravings, (int)); XE void FDECL(rest_engravings, (int)); X X/* ### exper.c ### */ X XE long FDECL(newuexp, (unsigned)); XE int FDECL(experience, (struct monst *,int)); XE void FDECL(more_experienced, (int,int)); XE void NDECL(losexp); XE void NDECL(newexplevel); XE void NDECL(pluslvl); XE long NDECL(rndexp); X X/* ### extralev.c ### */ X X#ifdef REINCARNATION XE void NDECL(makeroguerooms); XE void FDECL(corr, (int,int)); XE void NDECL(makerogueghost); X#endif X X/* ### fountain.c ### */ X X#ifdef FOUNTAINS XE void NDECL(dryup); XE void NDECL(drinkfountain); XE void FDECL(dipfountain, (struct obj *)); X#endif /* FOUNTAINS */ X#ifdef SINKS XE void NDECL(drinksink); X#endif X X/* ### getline.c ### */ X XE void FDECL(getlin, (char *)); XE void NDECL(getret); XE void FDECL(cgetret, (const char *)); XE void FDECL(xwaitforspace, (const char *)); XE char *NDECL(parse); XE char NDECL(readchar); X#ifdef COM_COMPL XE void FDECL(get_ext_cmd, (char *)); X#endif /* COM_COMPL */ X X/* ### hack.c ### */ X XE void NDECL(unsee); XE void FDECL(seeoff, (int)); XE void FDECL(movobj, (struct obj *,XCHAR_P,XCHAR_P)); XE boolean FDECL(may_dig, (XCHAR_P,XCHAR_P)); XE void NDECL(domove); XE void NDECL(spoteffects); XE int NDECL(dopickup); XE void NDECL(lookaround); XE int NDECL(monster_nearby); XE int FDECL(cansee, (XCHAR_P,XCHAR_P)); XE int FDECL(sgn, (int)); XE void FDECL(getcorners, (xchar *,xchar *,xchar *,xchar *,xchar *,xchar *,xchar *,xchar *)); XE void NDECL(setsee); XE void FDECL(nomul, (int)); XE void FDECL(losehp, (int,const char *,BOOLEAN_P)); XE int NDECL(weight_cap); XE int NDECL(inv_weight); XE int NDECL(inv_cnt); XE int FDECL(identify, (struct obj *)); X#ifdef STUPID_CPP /* otherwise these functions are macros in hack.h */ XE char NDECL(yn); XE char NDECL(ynq); XE char NDECL(ynaq); XE char NDECL(nyaq); XE char *FDECL(plur, (long)); XE void FDECL(makeknown, (unsigned)); X#endif X X/* ### invent.c ### */ X X#ifdef OVERLAY XE int FDECL(ckunpaid, (struct obj *)); X#endif XE struct obj *FDECL(addinv, (struct obj *)); XE void FDECL(useup, (struct obj *)); XE void FDECL(freeinv, (struct obj *)); XE void FDECL(delobj, (struct obj *)); XE void FDECL(freeobj, (struct obj *)); XE void FDECL(freegold, (struct gold *)); XE struct obj *FDECL(sobj_at, (int,int,int)); XE int FDECL(carried, (struct obj *)); XE struct obj *FDECL(carrying, (int)); XE boolean NDECL(have_lizard); XE struct obj *FDECL(o_on, (unsigned int,struct obj *)); XE boolean FDECL(obj_here, (struct obj *,int,int)); XE struct gold *FDECL(g_at, (int,int)); XE struct obj *FDECL(getobj, (const char *,const char *)); XE int FDECL(ggetobj, (const char *,int FDECL((*),(struct obj *)),int)); XE int FDECL(askchain, (struct obj *,int,const char *,int,int FDECL((*),(struct obj *)),int FDECL((*),(struct obj *)),int,const char *)); XE void FDECL(prinv, (struct obj *)); XE int NDECL(ddoinv); XE void FDECL(doinv, (const char *)); XE int NDECL(dotypeinv); XE int NDECL(dolook); XE void FDECL(stackobj, (struct obj *)); XE int NDECL(doprgold); XE int NDECL(doprwep); XE int NDECL(doprarm); XE int NDECL(doprring); XE int NDECL(dopramulet); XE int NDECL(doprtool); XE int FDECL(digit, (CHAR_P)); XE void FDECL(useupf, (struct obj *)); XE char *FDECL(let_to_name, (CHAR_P)); XE void NDECL(reassign); X X/* ### ioctl.c ### */ X X#ifdef UNIX XE void NDECL(getioctls); XE void NDECL(setioctls); X# ifdef SUSPEND XE int NDECL(dosuspend); X# endif /* SUSPEND */ X#endif /* UNIX */ X X/* ### lock.c ### */ X X#ifdef OVERLAY XE int NDECL(forcelock); XE int NDECL(picklock); X#endif XE void NDECL(reset_pick); XE int FDECL(pick_lock, (struct obj *)); XE int NDECL(doforce); XE int FDECL(boxlock, (struct obj *,struct obj *)); XE int FDECL(doorlock, (struct obj *,int,int)); XE int NDECL(doopen); XE int NDECL(doclose); X X/* ### mac.c ### */ X/* All of these Mac-specific declarations LOOK like they should take the X NDECL() form, but don't be fooled: it's just that (at the time of X writing) the Mac C compilers are all pre-ANSI and the prototype X information isn't recorded here anyway. sps 89dec14 X*/ X#ifdef MACOS XE int tgetch(); XE void gethdate(); XE int uptodate(); X# ifndef THINKC4 XE char *getenv(); XE int memcmp(); X# else XE int kbhit(); X# endif XE int mcurs(); XE int mputc(); XE int mputs(); XE int mprintf(); XE DialogTHndl centreDlgBox(); XE int about(); X#endif /* MACOS */ X X/* ### macfile.c ### */ X#ifdef MACOS XE short findNamedFile(); XE FILE *openFile(); X#endif /* MACOS */ X X/* ### macinit.c ### */ X#ifdef MACOS XE int initterm(); XE int freeterm(); XE int read_config_file(); XE int write_opts(); X#endif X#ifdef SMALLDATA XE void init_decl(); XE void free_decl(); X#endif /* SMALLDATA */ X X/* ### mail.c ### */ X X#ifdef MAIL X# ifdef UNIX XE void NDECL(getmailstatus); X# endif XE void NDECL(ckmailstatus); XE void NDECL(readmail); X#endif /* MAIL */ X X/* ### makemon.c ### */ X XE struct monst *FDECL(makemon, (struct permonst *,int,int)); XE void FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *)); XE int FDECL(goodpos, (int,int, struct permonst *)); XE void FDECL(rloc, (struct monst *)); XE void FDECL(vloc, (struct monst *)); XE void NDECL(init_monstr); XE struct permonst *NDECL(rndmonst); XE struct permonst *FDECL(mkclass, (CHAR_P)); XE int FDECL(adj_lev, (struct permonst *)); XE struct permonst *FDECL(grow_up, (struct monst *)); XE int FDECL(mongets, (struct monst *,int)); X#ifdef GOLEMS XE int FDECL(golemhp, (int)); X#endif /* GOLEMS */ XE boolean FDECL(peace_minded, (struct permonst *)); XE void FDECL(set_malign, (struct monst *)); XE void FDECL(set_mimic_sym, (struct monst *)); X X/* ### mcastu.c ### */ X XE int FDECL(castmu, (struct monst *,struct attack *)); XE int FDECL(buzzmu, (struct monst *,struct attack *)); X X/* ### mhitm.c ### */ X XE int FDECL(fightm, (struct monst *)); XE int FDECL(mattackm, (struct monst *,struct monst *)); XE int FDECL(noattacks, (struct permonst *)); X X/* ### mhitu.c ### */ X X#ifdef POLYSELF XE struct monst *NDECL(cloneu); X#endif XE void FDECL(expels, (struct monst *,struct permonst *,BOOLEAN_P)); XE int FDECL(mattacku, (struct monst *)); XE void FDECL(mdamageu, (struct monst *,int)); XE int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *)); X#ifdef SEDUCE XE int FDECL(doseduce, (struct monst *)); X#endif X X/* ### mklev.c ### */ X XE int FDECL(somex, (struct mkroom *)); XE int FDECL(somey, (struct mkroom *)); X#ifdef ORACLE XE boolean FDECL(place_oracle, (struct mkroom *,int *,int *,int *)); X#endif XE void NDECL(mklev); XE int FDECL(okdoor, (XCHAR_P,XCHAR_P)); XE void FDECL(dodoor, (int,int,struct mkroom *)); XE void FDECL(mktrap, (int,int,struct mkroom *)); XE void FDECL(mkfount, (int,struct mkroom *)); X X/* ### mkmaze.c ### */ X X#if defined(WALLIFIED_MAZE) || defined(STRONGHOLD) XE void FDECL(wallification, (int,int,int,int,BOOLEAN_P)); X#endif XE void FDECL(walkfrom, (int,int)); XE void NDECL(makemaz); XE void FDECL(move, (int *,int *,int)); XE void FDECL(mazexy, (coord *)); XE void NDECL(bound_digging); X X/* ### mkobj.c ### */ X XE struct obj *FDECL(mkobj_at, (CHAR_P,int,int)); XE struct obj *FDECL(mksobj_at, (int,int,int)); XE struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P)); XE int NDECL(rndmonnum); XE struct obj *FDECL(mksobj, (int,BOOLEAN_P)); XE int FDECL(letter, (int)); XE int FDECL(weight, (struct obj *)); XE void FDECL(mkgold, (long,int,int)); XE struct obj *FDECL(mkcorpstat, (int,struct permonst *,int,int)); XE struct obj *FDECL(mk_tt_object, (int,int,int)); XE struct obj *FDECL(mk_named_object, (int,struct permonst *,int,int,char *,int)); XE void FDECL(bless, (struct obj *)); XE void FDECL(curse, (struct obj *)); XE void FDECL(blessorcurse, (struct obj *,int)); XE boolean FDECL(is_flammable, (struct obj *)); X#ifdef STUPID_CPP XE boolean FDECL(is_rustprone, (struct obj *)); XE boolean FDECL(is_corrodeable, (struct obj *)); XE boolean FDECL(OBJ_AT, (int, int)); X#endif XE void FDECL(place_object, (struct obj *,int,int)); XE void FDECL(move_object, (struct obj *,int,int)); XE void FDECL(remove_object, (struct obj *)); XE int FDECL(bcsign, (struct obj *)); X X/* ### mkroom.c ### */ X XE void FDECL(mkroom, (int)); XE void FDECL(shrine_pos, (int *, int*, struct mkroom *)); XE boolean FDECL(nexttodoor, (int,int)); XE boolean FDECL(has_dnstairs, (struct mkroom *)); XE boolean FDECL(has_upstairs, (struct mkroom *)); XE int FDECL(dist2, (int,int,int,int)); XE struct permonst *NDECL(courtmon); X X/* ### mon.c ### */ X XE void NDECL(movemon); XE void FDECL(meatgold, (struct monst *)); XE void FDECL(meatobj, (struct monst *)); XE void FDECL(mpickgold, (struct monst *)); XE void FDECL(mpickgems, (struct monst *)); XE int FDECL(curr_mon_load, (struct monst *)); XE int FDECL(max_mon_load, (struct monst *)); XE boolean FDECL(can_carry, (struct monst *,struct obj *)); XE void FDECL(mpickstuff, (struct monst *,const char *)); XE int FDECL(mfndpos, (struct monst *,coord *,long *,long)); XE int FDECL(dist, (int,int)); XE boolean FDECL(monnear, (struct monst *,int,int)); XE void FDECL(poisontell, (int)); XE void FDECL(poisoned, (const char *,int,const char *,int)); XE void FDECL(mondead, (struct monst *)); XE void FDECL(replmon, (struct monst *,struct monst *)); XE void FDECL(relmon, (struct monst *)); XE void FDECL(monfree, (struct monst *)); XE void FDECL(unstuck, (struct monst *)); XE void FDECL(killed, (struct monst *)); XE void FDECL(xkilled, (struct monst *,int)); XE void NDECL(rescham); XE void NDECL(restartcham); XE int FDECL(newcham, (struct monst *,struct permonst *)); XE void FDECL(mnexto, (struct monst *)); XE void FDECL(mnearto, (struct monst *, XCHAR_P, XCHAR_P, BOOLEAN_P)); XE void FDECL(setmangry, (struct monst *)); XE int FDECL(disturb, (struct monst *)); XE void FDECL(mondied, (struct monst *)); XE void FDECL(mongone, (struct monst *)); XE void FDECL(monstone, (struct monst *)); X#ifdef GOLEMS XE void FDECL(golemeffects, (struct monst *, int, int)); X#endif /* GOLEMS */ X X/* ### mondata.c ### */ X XE boolean FDECL(attacktype, (struct permonst *,int)); XE boolean FDECL(resists_ston, (struct permonst *)); XE boolean FDECL(resists_drli, (struct permonst *)); XE boolean FDECL(ranged_attk, (struct permonst *)); XE boolean FDECL(can_track, (struct permonst *)); X#ifdef POLYSELF XE boolean FDECL(breakarm, (struct permonst *)); XE boolean FDECL(sliparm, (struct permonst *)); X#endif XE boolean FDECL(sticks, (struct permonst *)); XE boolean FDECL(canseemon, (struct monst *)); XE boolean FDECL(dmgtype, (struct permonst *,int)); XE int FDECL(monsndx, (struct permonst *)); XE int FDECL(name_to_mon, (char *)); X#ifdef POLYSELF XE boolean FDECL(webmaker, (struct permonst *)); X#endif XE boolean FDECL(is_female, (struct monst *)); XE int FDECL(gender, (struct monst *)); XE boolean FDECL(levl_follower, (struct monst *)); XE struct permonst *NDECL(player_mon); XE int FDECL(little_to_big, (int)); XE int FDECL(big_to_little, (int)); XE const char *FDECL(locomotion, (const struct permonst *,const char *)); X X/* ### monmove.c ### */ X XE boolean FDECL(mb_trapped, (struct monst *)); XE int FDECL(dochugw, (struct monst *)); XE boolean FDECL(onscary, (int,int,struct monst *)); XE int FDECL(dochug, (struct monst *)); XE int FDECL(m_move, (struct monst *,int)); XE boolean FDECL(closed_door, (int, int)); XE boolean FDECL(accessible, (int, int)); XE void FDECL(set_apparxy, (struct monst *)); XE boolean FDECL(mdig_tunnel, (struct monst *)); X#ifdef STUPID_CPP XE boolean FDECL(MON_AT, (int, int)); XE void FDECL(place_monster, (struct monst *, int, int)); XE void FDECL(place_worm_seg, (struct monst *, int, int)); XE void FDECL(remove_monster, (int, int)); XE struct monst *FDECL(m_at, (int, int)); X#endif X X/* ### monst.c ### */ X X/* ### msdos.c ### */ X X#ifdef MSDOS XE void NDECL(flushout); XE int NDECL(tgetch); XE int NDECL(dosh); X# ifdef DGK XE long FDECL(freediskspace, (char *)); XE long FDECL(filesize, (char *)); XE void FDECL(eraseall, (const char *,const char *)); XE void FDECL(copybones, (int)); XE void NDECL(playwoRAMdisk); XE int FDECL(saveDiskPrompt, (int)); XE void NDECL(gameDiskPrompt); X# endif XE void NDECL(read_config_file); XE void NDECL(set_lock_and_bones); XE void FDECL(append_slash, (char *)); XE void FDECL(getreturn, (const char *)); XE void VDECL(msmsg, (const char *,...)); XE void FDECL(chdrive, (char *)); X# ifndef TOS XE void NDECL(disable_ctrlP); XE void NDECL(enable_ctrlP); X# endif X# ifdef DGK XE FILE *FDECL(fopenp, (const char *,const char *)); X# endif XE void FDECL(msexit, (int)); X# ifdef DGK XE void NDECL(get_scr_size); X# ifndef TOS XE void FDECL(gotoxy, (int,int)); X# endif X# endif X#endif /* MSDOS */ X#ifdef TOS XE int FDECL(_copyfile, (char *, char *)); XE int NDECL(kbhit); XE void NDECL(restore_colors); XE void NDECL(set_colors); X#endif /* TOS */ X X/* ### mthrowu.c ### */ X XE int FDECL(thitu, (int,int,struct obj *,const char *)); XE int FDECL(thrwmu, (struct monst *)); XE int FDECL(spitmu, (struct monst *,struct attack *)); XE int FDECL(breamu, (struct monst *,struct attack *)); XE boolean FDECL(linedup, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P)); XE boolean FDECL(lined_up, (struct monst *)); XE struct obj *FDECL(m_carrying, (struct monst *,int)); XE void FDECL(m_useup, (struct monst *,struct obj *)); X X/* ### music.c ### */ X X#ifdef MUSIC XE int FDECL(do_play_instrument, (struct obj *)); X#endif /* MUSIC /**/ X X/* ### o_init.c ### */ X XE int FDECL(letindex, (CHAR_P)); XE void NDECL(init_objects); XE void NDECL(oinit); XE void FDECL(savenames, (int)); XE void FDECL(restnames, (int)); XE int NDECL(dodiscovered); X X/* ### objnam.c ### */ X XE char *FDECL(typename, (int)); XE char *FDECL(distant_name, (struct obj *, char *(*)(struct obj *))); XE char *FDECL(xname, (struct obj *)); XE char *FDECL(doname, (struct obj *)); XE char *FDECL(singular, (struct obj *, char *(*)(struct obj *))); XE char *FDECL(an, (const char *)); XE char *FDECL(An, (const char *)); XE char *FDECL(aobjnam, (struct obj *,const char *)); XE char *FDECL(Doname2, (struct obj *)); XE void FDECL(lcase, (char *)); XE char *FDECL(makeplural, (const char *)); XE char *FDECL(makesingular, (const char *)); XE struct obj *FDECL(readobjnam, (char *)); X X/* ### options.c ### */ X XE void NDECL(initoptions); XE void FDECL(assign_graphics, (unsigned int *, int)); XE void FDECL(parseoptions, (char *,BOOLEAN_P)); XE int NDECL(doset); XE int NDECL(dotogglepickup); XE void NDECL(option_help); XE int FDECL(next_opt, (const char *)); X#ifdef TUTTI_FRUTTI XE int FDECL(fruitadd, (char *)); X#endif X X/* ### pager.c ### */ X XE int NDECL(dowhatis); XE int NDECL(dowhatdoes); XE void NDECL(set_whole_screen); X#ifdef NEWS XE int NDECL(readnews); X#endif /* NEWS */ XE void FDECL(set_pager, (int)); XE int FDECL(page_line, (const char *)); XE void FDECL(cornline, (int,const char *)); XE int NDECL(dohelp); XE int NDECL(dohistory); XE int FDECL(page_file, (const char *,BOOLEAN_P)); X#ifdef UNIX X# ifdef SHELL XE int NDECL(dosh); X# endif /* SHELL */ X# if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER) XE int FDECL(child, (int)); X# endif X#endif /* UNIX */ X X/* ### pcmain.c ### */ X X#if defined(MSDOS) || defined(MACOS) XE void NDECL(askname); X# ifdef CHDIR XE void FDECL(chdirx, (char *,BOOLEAN_P)); X# endif /* CHDIR */ X#endif /* MSDOS || MACOS */ X X/* ### pctty.c ### */ X X#if defined(MSDOS) || defined(MACOS) XE void NDECL(gettty); XE void FDECL(settty, (const char *)); XE void VDECL(error, (const char *,...)); X#endif /* MSDOS || MACOS */ X X/* ### pcunix.c ### */ X X#if defined(MSDOS) || defined(MACOS) X# ifndef OLD_TOS XE void NDECL(setrandom); XE int NDECL(getyear); XE char *NDECL(getdate); XE int NDECL(phase_of_the_moon); XE int NDECL(night); XE int NDECL(midnight); XE void FDECL(gethdate, (char *)); XE int FDECL(uptodate, (int)); X# endif /* TOS */ XE void FDECL(regularize, (char *)); X#endif /* MSDOS */ X X/* ### pickup.c ### */ X X#ifdef OVERLAY XE int FDECL(ck_bag, (struct obj *)); XE int FDECL(ck_container, (struct obj *)); XE int FDECL(in_container, (struct obj *)); XE int FDECL(out_container, (struct obj *)); X#endif XE void FDECL(pickup, (int)); XE struct obj *FDECL(pick_obj, (struct obj *)); XE int NDECL(doloot); XE void NDECL(get_all_from_box); XE void FDECL(use_container, (struct obj *, int)); XE void FDECL(inc_cwt, (struct obj *, struct obj *)); XE void FDECL(delete_contents, (struct obj *)); XE void FDECL(dec_cwt, (struct obj *, struct obj *)); X X/* ### polyself.c ### */ X XE void NDECL(newman); X#ifdef POLYSELF XE void NDECL(polyself); XE int FDECL(polymon, (int)); XE void NDECL(rehumanize); XE int NDECL(dobreathe); XE int NDECL(dospit); XE int NDECL(doremove); XE int NDECL(dospinweb); XE int NDECL(dosummon); XE int NDECL(doconfuse); XE int NDECL(dohide); X#endif XE const char *FDECL(body_part, (int)); XE int NDECL(poly_gender); X#ifdef POLYSELF X# ifdef GOLEMS XE void FDECL(ugolemeffects, (int, int)); X# endif /* GOLEMS */ X#endif X X/* ### potion.c ### */ X XE void FDECL(make_confused, (long,BOOLEAN_P)); XE void FDECL(make_stunned, (long,BOOLEAN_P)); XE void FDECL(make_blinded, (long,BOOLEAN_P)); XE void FDECL(make_sick, (long,BOOLEAN_P)); XE void FDECL(make_vomiting, (long,BOOLEAN_P)); XE void FDECL(make_hallucinated, (long,BOOLEAN_P)); XE int NDECL(dodrink); XE int FDECL(dopotion, (struct obj *)); XE int FDECL(peffects, (struct obj *)); XE void FDECL(healup, (int,int,BOOLEAN_P,BOOLEAN_P)); XE void FDECL(strange_feeling, (struct obj *,const char *)); XE void FDECL(potionhit, (struct monst *,struct obj *)); XE void FDECL(potionbreathe, (struct obj *)); XE boolean FDECL(get_wet, (struct obj *)); XE int NDECL(dodip); XE void FDECL(djinni_from_bottle, (struct obj *)); XE int FDECL(monster_detect, (struct obj *)); XE int FDECL(object_detect, (struct obj *)); XE int FDECL(trap_detect, (struct obj *)); X X/* ### pray.c ### */ X X# ifdef THEOLOGY XE int NDECL(dosacrifice); XE int NDECL(dopray); XE const char *NDECL(u_gname); X#endif /* THEOLOGY */ XE int NDECL(doturn); X#ifdef ALTARS XE const char *NDECL(a_gname); XE const char *FDECL(a_gname_at, (XCHAR_P,XCHAR_P)); X# ifdef THEOLOGY XE void FDECL(altar_wrath, (int,int)); X# endif X#endif X X/* ### pri.c ### */ X XE char *FDECL(eos, (char *)); XE void FDECL(swallowed, (int)); XE void NDECL(setclipped); X#ifdef CLIPPING XE void FDECL(cliparound, (int, int)); X#endif XE boolean FDECL(showmon, (struct monst *)); XE void FDECL(at, (XCHAR_P,XCHAR_P,UCHAR_P,UCHAR_P)); XE void NDECL(prme); XE void FDECL(shieldeff, (XCHAR_P,XCHAR_P)); XE int NDECL(doredraw); XE void NDECL(docrt); XE void FDECL(docorner, (int,int)); XE void NDECL(seeglds); XE void NDECL(seeobjs); XE void NDECL(seemons); XE void FDECL(pmon, (struct monst *)); XE void FDECL(unpmon, (struct monst *)); XE void NDECL(nscr); XE void NDECL(bot); XE void FDECL(mstatusline, (struct monst *)); XE void NDECL(ustatusline); XE void NDECL(cls); XE void NDECL(max_rank_sz); XE char NDECL(rndmonsym); XE char NDECL(rndobjsym); XE const char *NDECL(hcolor); XE uchar FDECL(mimic_appearance, (struct monst *)); X X/* ### priest.c ### */ X XE int FDECL(move_special, (struct monst *,SCHAR_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P, X XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P)); X#if defined(ALTARS) && defined(THEOLOGY) XE struct mkroom *FDECL(in_temple, (int,int)); XE int FDECL(pri_move, (struct monst *)); XE void FDECL(priestini, (int,int,int,int)); XE char *FDECL(priestname, (struct monst *)); XE boolean FDECL(p_coaligned, (struct monst *)); XE void NDECL(intemple); XE void FDECL(priest_talk, (struct monst *)); XE boolean FDECL(u_in_sanctuary, (struct mkroom *)); XE void NDECL(ghod_hitsu); XE void NDECL(angry_priest); X#endif X X/* ### prisym.c ### */ X XE void FDECL(atl, (int,int,CHAR_P)); XE void FDECL(on_scr, (int,int)); XE void FDECL(tmp_at, (int,int)); XE void FDECL(Tmp_at2, (int,int)); XE void NDECL(curs_on_u); XE void NDECL(pru); XE void FDECL(prl, (int,int)); XE uchar FDECL(news0, (XCHAR_P,XCHAR_P)); XE void FDECL(newsym, (int,int)); XE void FDECL(mnewsym, (int,int)); XE void FDECL(nosee, (int,int)); XE void FDECL(prl1, (int,int)); XE void FDECL(nose1, (int,int)); XE int FDECL(vism_at, (int,int)); X#ifdef NEWSCR XE void FDECL(pobj, (struct obj *)); X#endif /* NEWSCR */ XE void FDECL(unpobj, (struct obj *)); X#ifdef STUPID_CPP /* otherwise these functions are macros in rm.h */ XE boolean FDECL(IS_WALL, (unsigned)); XE boolean FDECL(IS_STWALL, (unsigned)); XE boolean FDECL(IS_ROCK, (unsigned)); XE boolean FDECL(IS_DOOR, (unsigned)); XE boolean FDECL(ACCESSIBLE, (unsigned)); XE boolean FDECL(IS_ROOM, (unsigned)); XE boolean FDECL(ZAP_POS, (unsigned)); XE boolean FDECL(SPACE_POS, (unsigned)); XE boolean FDECL(IS_POOL, (unsigned)); XE boolean FDECL(IS_THRONE, (unsigned)); XE boolean FDECL(IS_FOUNTAIN, (unsigned)); XE boolean FDECL(IS_SINK, (unsigned)); XE boolean FDECL(IS_ALTAR, (unsigned)); XE boolean FDECL(IS_DRAWBRIDGE, (unsigned)); XE boolean FDECL(IS_FURNITURE, (unsigned)); X#endif /* STUPID_CPP */ X X/* ### read.c ### */ X XE int NDECL(doread); XE int FDECL(seffects, (struct obj *)); XE void FDECL(litroom, (BOOLEAN_P)); XE void FDECL(do_genocide, (int)); XE void NDECL(do_mapping); XE void NDECL(do_vicinity_map); XE int FDECL(gold_detect, (struct obj *)); XE int FDECL(food_detect, (struct obj *)); XE void FDECL(punish, (struct obj *)); XE void NDECL(unpunish); XE boolean FDECL(cant_create, (int *)); X#if defined(WIZARD) || defined(EXPLORE_MODE) XE boolean NDECL(create_particular); X#endif X X/* ### restore.c ### */ X XE int FDECL(dorecover, (int)); XE void FDECL(getlev, (int,int,XCHAR_P,BOOLEAN_P)); X#ifdef ZEROCOMP XE void NDECL(minit); XE int FDECL(mread, (int,genericptr_t,unsigned int)); X#else XE void FDECL(mread, (int,genericptr_t,unsigned int)); X#endif X X/* ### rip.c ### */ X XE void NDECL(outrip); X X/* ### rnd.c ### */ X XE int FDECL(rn1, (int,int)); XE int FDECL(rn2, (int)); XE int FDECL(rnl, (int)); XE int FDECL(rnd, (int)); XE int FDECL(d, (int,int)); XE int FDECL(rne, (int)); X#ifdef THEOLOGY XE int FDECL(rnz, (int)); X#endif X X/* ### rumors.c ### */ X XE void FDECL(outrumor, (int,BOOLEAN_P)); X#ifdef ORACLE XE int FDECL(doconsult, (struct monst *)); X#endif X X/* ### save.c ### */ X XE int NDECL(dosave); X#ifndef NOSAVEONHANGUP XE int NDECL(hangup); X#endif /* NOSAVEONHANGUP */ XE int NDECL(dosave0); X#if defined(DGK) && !defined(OLD_TOS) XE boolean FDECL(savelev, (int,XCHAR_P,int)); XE boolean FDECL(swapin_file, (int)); X#else /* DGK && !OLD_TOS */ XE void FDECL(savelev, (int, XCHAR_P)); X#endif /* DGK && !OLD_TOS */ X#ifdef ZEROCOMP XE void FDECL(bflush, (int)); X#endif XE void FDECL(bwrite, (int,genericptr_t,unsigned int)); X#ifdef TUTTI_FRUTTI XE void FDECL(savefruitchn, (int)); X#endif X X/* ### search.c ### */ X XE int NDECL(findit); XE int NDECL(dosearch); XE int FDECL(dosearch0, (int)); XE int NDECL(doidtrap); XE void FDECL(wakeup, (struct monst *)); XE void FDECL(seemimic, (struct monst *)); X X/* ### shk.c ### */ X XE char *FDECL(shkname, (struct monst *)); XE void FDECL(shkdead, (struct monst *)); XE void FDECL(replshk, (struct monst *,struct monst *)); XE int NDECL(inshop); XE int FDECL(inhishop, (struct monst *)); XE boolean FDECL(tended_shop, (struct mkroom *)); XE void FDECL(obfree, (struct obj *,struct obj *)); XE int NDECL(dopay); XE void FDECL(home_shk, (struct monst *)); XE void FDECL(make_happy_shk, (struct monst *)); XE boolean NDECL(paybill); XE void FDECL(pay_for_door, (int,int,const char *)); XE void FDECL(addtobill, (struct obj *,BOOLEAN_P)); XE void FDECL(splitbill, (struct obj *,struct obj *)); XE void FDECL(sellobj, (struct obj *)); XE int FDECL(doinvbill, (int)); XE int FDECL(shkcatch, (struct obj *)); XE int FDECL(shk_move, (struct monst *)); XE int FDECL(online, (XCHAR_P,XCHAR_P)); XE boolean FDECL(is_fshk, (struct monst *)); XE void FDECL(shopdig, (int)); XE boolean FDECL(in_shop, (int,int)); XE boolean FDECL(costly_spot, (int,int)); XE void FDECL(check_unpaid, (struct obj *)); XE boolean FDECL(block_door, (int,int)); XE boolean FDECL(block_entry, (int,int)); X X/* ### shknam.c ### */ X XE void FDECL(stock_room, (const struct shclass *,struct mkroom *)); XE int FDECL(saleable, (int,struct obj *)); XE int FDECL(get_shop_item, (int)); X X/* ### sit.c ### */ X X#if defined(THRONES) || defined(SPELLS) XE void NDECL(take_gold); X#endif XE int NDECL(dosit); XE void NDECL(rndcurse); XE void NDECL(attrcurse); X X/* ### sounds.c ### */ X XE void FDECL(verbalize, (const char *)); X#ifdef SOUNDS XE void NDECL(dosounds); XE void FDECL(growl, (struct monst *)); XE void FDECL(yelp, (struct monst *)); XE void FDECL(whimper, (struct monst *)); X#endif XE struct monst *FDECL(qname, (struct monst *)); XE int NDECL(dotalk); X X/* ### sp_lev.c ### */ X X#ifdef STRONGHOLD XE boolean FDECL(load_special, (const char *)); X#endif /* STRONGHOLD /**/ X X/* ### spell.c ### */ X#ifdef SPELLS X#ifdef OVERLAY XE int NDECL(learn); X#endif XE int FDECL(study_book, (struct obj *)); XE int NDECL(docast); XE int FDECL(spelleffects, (int, BOOLEAN_P)); XE void NDECL(losespells); XE int NDECL(dovspell); X#endif /* SPELLS */ X X/* ### steal.c ### */ X X#ifdef OVERLAY XE int NDECL(stealarm); X#endif XE long NDECL(somegold); XE void FDECL(stealgold, (struct monst *)); XE int FDECL(steal, (struct monst *)); XE void FDECL(mpickobj, (struct monst *,struct obj *)); XE void FDECL(stealamulet, (struct monst *)); XE void FDECL(relobj, (struct monst *,int)); X X/* ### termcap.c ### */ X XE void NDECL(startup); XE void NDECL(start_screen); XE void NDECL(end_screen); X#ifdef CLIPPING XE boolean FDECL(win_curs, (int,int)); X#endif XE void FDECL(curs, (int,int)); XE void FDECL(cmov, (int,int)); XE void FDECL(xputc, (CHAR_P)); XE void FDECL(xputs, (const char *)); XE void NDECL(cl_end); XE void NDECL(clear_screen); XE void NDECL(home); XE void NDECL(standoutbeg); XE void NDECL(standoutend); XE void NDECL(revbeg); X#if 0 XE void NDECL(boldbeg); XE void NDECL(blinkbeg); XE void NDECL(dimbeg); X#endif XE void NDECL(m_end); XE void NDECL(backsp); XE void NDECL(bell); XE void NDECL(graph_on); XE void NDECL(graph_off); XE void NDECL(delay_output); XE void NDECL(cl_eos); X X/* ### timeout.c ### */ X XE void NDECL(timeout); XE void NDECL(hatch_eggs); X X/* ### topl.c ### */ X XE int NDECL(doredotopl); XE void NDECL(remember_topl); XE void FDECL(addtopl, (const char *)); XE void NDECL(more); XE void FDECL(cmore, (const char *)); XE void NDECL(clrlin); X#ifdef NEED_VARARGS X# if defined(USE_STDARG) || defined(USE_VARARGS) XE void FDECL(vpline, (const char *, va_list)); X# endif X#endif XE void VDECL(pline, (const char *,...)); XE void VDECL(Norep, (const char *,...)); XE void VDECL(You, (const char *,...)); XE void VDECL(Your, (const char *,...)); XE void VDECL(kludge, (const char *,const char *,...)); XE void FDECL(putsym, (CHAR_P)); XE void FDECL(putstr, (const char *)); XE char FDECL(yn_function, (const char *,CHAR_P)); XE void VDECL(impossible, (const char *,...)); X X/* ### topten.c ### */ X XE void FDECL(topten, (int)); XE void FDECL(prscore, (int,char **)); XE struct obj *FDECL(tt_oname, (struct obj *)); X X/* ### track.c ### */ X XE void NDECL(initrack); XE void NDECL(settrack); XE coord *FDECL(gettrack, (int,int)); X X/* ### trap.c ### */ X XE boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P)); XE struct trap *FDECL(maketrap, (int,int,int)); XE int FDECL(teleok, (int,int)); XE void FDECL(dotrap, (struct trap *)); XE int FDECL(mintrap, (struct monst *)); XE void FDECL(selftouch, (const char *)); XE void NDECL(float_up); XE int NDECL(float_down); XE void NDECL(tele); XE void FDECL(teleds, (int,int)); XE int NDECL(dotele); XE void FDECL(placebc, (int)); XE void NDECL(unplacebc); XE void NDECL(level_tele); XE void NDECL(drown); X#ifdef SPELLS XE void FDECL(drain_en, (int)); X#endif XE int NDECL(dountrap); XE void FDECL(chest_trap, (struct obj *,int)); XE void NDECL(wake_nearby); XE void FDECL(deltrap, (struct trap *)); XE struct trap *FDECL(t_at, (int,int)); XE void FDECL(b_trapped, (const char *)); XE boolean NDECL(unconscious); X X/* ### u_init.c ### */ X XE void NDECL(u_init); XE void NDECL(plnamesuffix); X X/* ### uhitm.c ### */ X XE struct monst *FDECL(clone_mon, (struct monst *)); XE boolean FDECL(special_case, (struct monst *)); XE schar FDECL(find_roll_to_hit, (struct monst *)); XE boolean FDECL(attack, (struct monst *)); XE boolean FDECL(hmon, (struct monst *,struct obj *,int)); XE int FDECL(damageum, (struct monst *, struct attack *)); XE void FDECL(missum, (struct monst *, struct attack *)); XE int FDECL(passive, (struct monst *,BOOLEAN_P,int,BOOLEAN_P)); XE void FDECL(stumble_onto_mimic, (struct monst *)); X X/* ### unixmain.c ### */ X X#ifdef UNIX XE void FDECL(glo, (int)); XE void NDECL(askname); X#endif /* UNIX */ X X/* ### unixtty.c ### */ X X#ifdef UNIX XE void NDECL(gettty); XE void FDECL(settty, (const char *)); XE void NDECL(setftty); XE void NDECL(intron); XE void NDECL(introff); XE void VDECL(error, (const char *,...)); X#endif /* UNIX */ X X/* ### unixunix.c ### */ X X#ifdef UNIX XE void NDECL(setrandom); XE int NDECL(getyear); XE char *NDECL(getdate); XE int NDECL(phase_of_the_moon); XE int NDECL(night); XE int NDECL(midnight); XE void FDECL(gethdate, (char *)); XE int FDECL(uptodate, (int)); XE void NDECL(getlock); XE void FDECL(regularize, (char *)); X#endif /* UNIX */ X X/* ### vault.c ### */ X XE void NDECL(invault); XE int FDECL(gd_move, (struct monst *)); XE void NDECL(paygd); XE boolean NDECL(gd_sound); X X/* ### version.c ### */ X XE int NDECL(doversion); XE int NDECL(doextversion); X#ifdef MSDOS XE int FDECL(comp_times,(long)); X#endif X X/* ### vmsmain.c ### */ X X#ifdef VMS X# ifdef CHDIR XE void FDECL(chdirx, (char *,BOOLEAN_P)); X# endif /* CHDIR */ XE void FDECL(glo, (int)); XE void NDECL(askname); X#endif /* VMS */ X X/* ### vmsmisc.c ### */ X X#ifdef VMS XE void NDECL(vms_abort); XE void FDECL(vms_exit, (int)); X#endif /* VMS */ X X/* ### vmstty.c ### */ X X#ifdef VMS XE void NDECL(gettty); XE void FDECL(settty, (char *)); XE void NDECL(setftty); XE void NDECL(intron); XE void NDECL(introff); XE void VDECL(error, (char *,...)); X#endif /* VMS */ X X/* ### vmsunix.c ### */ X X#ifdef VMS XE void NDECL(setrandom); XE int NDECL(getyear); XE char *NDECL(getdate); XE int NDECL(phase_of_the_moon); XE int NDECL(night); XE int NDECL(midnight); XE void FDECL(gethdate, (char *)); XE int FDECL(uptodate, (int)); XE void NDECL(getlock); XE void FDECL(regularize, (char *)); XE int FDECL(vms_creat, (char *,unsigned int)); XE int NDECL(vms_getuid); XE void NDECL(privoff); XE void NDECL(privon); X# ifdef SHELL XE int NDECL(dosh); X# endif X#endif /* VMS */ X X/* ### weapon.c ### */ X XE int FDECL(hitval, (struct obj *,struct permonst *)); XE int FDECL(dmgval, (struct obj *,struct permonst *)); XE void NDECL(set_uasmon); XE struct obj *FDECL(select_rwep, (struct monst *)); XE struct obj *FDECL(select_hwep, (struct monst *)); XE int NDECL(abon); XE int NDECL(dbon); X X/* ### were.c ### */ X XE void FDECL(were_change, (struct monst *)); XE void FDECL(new_were, (struct monst *)); XE boolean FDECL(were_summon, (struct permonst *,BOOLEAN_P)); X#ifdef POLYSELF XE void NDECL(you_were); X#endif /* POLYSELF */ X X/* ### wield.c ### */ X XE void FDECL(setuwep, (struct obj *)); XE void NDECL(uwepgone); XE int NDECL(dowield); XE void NDECL(corrode_weapon); XE int FDECL(chwepon, (struct obj *,int)); XE int FDECL(welded, (struct obj *)); XE void FDECL(weldmsg, (struct obj *,BOOLEAN_P)); X X/* ### wizard.c ### */ X XE void NDECL(amulet); XE int FDECL(mon_has_amulet, (struct monst *)); XE int FDECL(wiz_get_amulet, (struct monst *)); XE void NDECL(aggravate); XE void NDECL(clonewiz); X#ifdef HARD XE void NDECL(nasty); XE void NDECL(resurrect); XE void NDECL(intervene); XE void FDECL(wizdead, (struct monst *)); X#endif /* HARD */ XE void FDECL(cuss, (struct monst *)); X X/* ### worm.c ### */ X X#ifdef WORM XE int FDECL(getwn, (struct monst *)); XE void FDECL(initworm, (struct monst *)); XE void FDECL(worm_move, (struct monst *)); XE void FDECL(worm_nomove, (struct monst *)); XE void FDECL(wormdead, (struct monst *)); XE void FDECL(wormhit, (struct monst *)); XE void FDECL(wormsee, (unsigned int)); XE void FDECL(cutworm, (struct monst *,XCHAR_P,XCHAR_P,unsigned)); X#endif /* WORM */ X X/* ### worn.c ### */ X XE void FDECL(setworn, (struct obj *,long)); XE void FDECL(setnotworn, (struct obj *)); X X/* ### write.c ### */ X XE void FDECL(dowrite, (struct obj *)); X X/* ### zap.c ### */ X X#ifdef OVERLAY XE int FDECL(bhito, (struct obj *, struct obj *)); XE int FDECL(bhitm, (struct monst *, struct obj *)); X#endif XE struct monst *FDECL(revive, (struct obj *,BOOLEAN_P)); XE int FDECL(zappable, (struct obj *)); XE void FDECL(zapnodir, (struct obj *)); XE int NDECL(dozap); XE int FDECL(zapyourself, (struct obj *)); XE void FDECL(weffects, (struct obj *)); XE const char *FDECL(exclam, (int)); XE void FDECL(hit, (const char *,struct monst *,const char *)); XE void FDECL(miss, (const char *,struct monst *)); XE struct monst *FDECL(bhit, (int,int,int,CHAR_P,int FDECL((*), (struct monst *, struct obj *)), X int FDECL((*), (struct obj *, struct obj *)),struct obj *)); XE struct monst *FDECL(boomhit, (int,int)); XE void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int)); XE void FDECL(rlocgold, (struct gold *)); XE void FDECL(rloco, (struct obj *)); XE void FDECL(fracture_rock, (struct obj *)); XE boolean FDECL(break_statue, (struct obj *)); XE void FDECL(destroy_item, (int,int)); XE int FDECL(destroy_mitem, (struct monst *,int,int)); XE int FDECL(resist, (struct monst *,CHAR_P,int,int)); XE void NDECL(makewish); X X#endif /* !MAKEDEFS_C && !LEV_LEX_C */ X X#undef E X X#endif /* EXTERN_H /**/ END_OF_FILE if test 42056 -ne `wc -c <'include/extern.h'`; then echo shar: \"'include/extern.h'\" unpacked with wrong size! fi # end of 'include/extern.h' if test -f 'others/Makefile.os2' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'others/Makefile.os2'\" to \"'others/Makefile.os2.orig'\" mv -f 'others/Makefile.os2' 'others/Makefile.os2.orig' fi echo shar: Extracting \"'others/Makefile.os2'\" \(12677 characters\) sed "s/^X//" >'others/Makefile.os2' <<'END_OF_FILE' X# SCCS Id: @(#)Makefile.os2 3.0 90/01/20 X# OS/2 NetHack 3.0 Makefile for Microsoft(tm) C 5.1 -- Timo Hakulinen X# X# NDMAKE ver 4.5 is required, MS-MAKE will not work. MS-NMAKE X# may work but requires probably modifications to some targets. X# X# Copy pctty.c, pcunix.c, pcmain.c, msdos.c and this file X# (+ termcap sources if used) into $(SRC) directory, rename X# this file to "makefile" (important, some targets rely on it), X# compile and link in real mode inside $(SRC). X# X# When using CodeView versions earlier than ver. 2.3, define X# OS2_CODEVIEW in pcconf.h and set HACKDIR (+ TERM and TERMCAP X# if used) in OS/2 config.sys. Otherwise path searches may fail. X# X# Note that $(GAMEDIR) must exist prior to compilation. X# X# Large memory model XCC = cl XLINK = link XMODEL = L X X# $(MAKE) macro is often predefined, so we use $(MAKEBIN) instead. XMAKEBIN = make X X# For those of us who have these on PC. X#YACC = yacc X#LEX = lex XYACC = bison -y XLEX = flex X# Standard file names may vary in PC installations. XYTABC = y_tab.c XYTABH = y_tab.h XLEXYYC = lexyy.c X X# Directories (makedefs hardcodes these, don't change them). XINCL = ..\include XAUX = ..\auxil XSRC = ..\src XOBJ = $(SRC)\o2 X X# The game name and description. XGAME = nethack XGAMEDES = NetHack 3.0 X X# The game directory. XGAMEDIR = \games\$(GAME) X X# Memory model, compile only, disable optimization, remove stack probes, X# 80286 instruction set, dedicated datasegment for items >= 5 bytes, X# pack structures on 1 byte boundaries, generate code for 8087 X# coprocessor, compiler warning level, include file path. XCFLAGS = /A$(MODEL) /c /Od /Gs /G2 /Gt5 /Zp1 /FPi87 /W1 /I$(INCL) $(CDFLAGS) X X# + prepare for CodeView symbolic debugger. XCDFLAGS = X#CDFLAGS = /Zi X X# Don't ignore case in symbols, no default lib search, stack 4096 bytes. X# (actually a bit of overkill), allow max 1024 segments in program. XLFLAGS = /noig /nod /stack:4096 /seg:1024 $(LDFLAGS) X X# + prepare for CodeView symbolic debugger. XLDFLAGS = X#LDFLAGS = /CO X X# Real mode C libraries for 8087 coprocessor (change if necessary). XRLIBS = $(MODEL)libc7r X X# Protected mode C libraries for 8087 (change if necessary), X# OS/2 API entry points. XPLIBS = $(MODEL)libc7p doscalls X X# Module definition file for OS/2. XOS2DEFS = $(GAME).def X X# Target system. XTARG = pc X X# The default make target (so just typing 'make' is useful). Xdefault: $(GAME) X X# If you have yacc and lex programs and make any changes, comment out the X# upper two lines and uncomment the lower two. Xdo_yacc: yacc_msg Xdo_lex: lex_msg X#do_yacc: yacc_act X#do_lex: lex_act X X# Optional high-quality BSD random number generation routines (see pcconf.h). X# Set to nothing if not used. XRANDOM = $(OBJ)\random.o X#RANDOM = X X# Termcap routines. XTERMCAPS = termlib.lib X X# If TERMLIB defined in pcconf.h, comment out the upper line and X# uncomment the lower. XTERMLIB = X#TERMLIB = $(TERMCAPS) X X###################################################################### X# X# Nothing below this line should have to be changed. X# X# Other things that have to be reconfigured are in config.h, X# {unixconf.h, pcconf.h, tosconf.h}, and possibly system.h. X# X X# The game filename. XGAMEFILE = $(GAMEDIR)\$(GAME).exe X X# For NDMAKE, to handle the .o suffix. X.SUFFIXES: .exe .o .c .y .l X X.c.o: X $(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $*.c X X# Termcap objects. XTERMOBJS = $(OBJ)\tgetent.o $(OBJ)\tgetflag.o $(OBJ)\tgetnum.o \ X $(OBJ)\tgetstr.o $(OBJ)\tgoto.o $(OBJ)\tputs.o $(OBJ)\isdigit.o \ X $(OBJ)\fgetlr.o X X# Object files for makedefs. XMAKEOBJS = $(OBJ)\makedefs.o $(OBJ)\alloc.o $(OBJ)\monst.o $(OBJ)\objects.o \ X $(OBJ)\panic.o X X# Object files for special levels compiler. XSPLEVOBJS = $(OBJ)\lev_comp.o $(OBJ)\lev_lex.o $(OBJ)\lev_main.o \ X $(OBJ)\alloc.o $(OBJ)\monst.o $(OBJ)\objects.o $(OBJ)\panic.o X XVOBJ = $(OBJ)\allmain.o $(OBJ)\alloc.o $(OBJ)\apply.o $(OBJ)\artifact.o \ X $(OBJ)\attrib.o $(OBJ)\bones.o $(OBJ)\cmd.o $(OBJ)\dbridge.o \ X $(OBJ)\decl.o $(OBJ)\demon.o $(OBJ)\do.o $(OBJ)\do_name.o \ X $(OBJ)\do_wear.o $(OBJ)\dog.o $(OBJ)\dogmove.o $(OBJ)\dokick.o \ X $(OBJ)\dothrow.o $(OBJ)\eat.o $(OBJ)\end.o $(OBJ)\engrave.o \ X $(OBJ)\exper.o $(OBJ)\extralev.o $(OBJ)\fountain.o $(OBJ)\getline.o \ X $(OBJ)\hack.o $(OBJ)\invent.o $(OBJ)\lock.o $(OBJ)\mail.o \ X $(OBJ)\main.o $(OBJ)\makemon.o $(OBJ)\mcastu.o $(OBJ)\mhitm.o \ X $(OBJ)\mhitu.o $(OBJ)\mklev.o $(OBJ)\mkmaze.o $(OBJ)\mkobj.o \ X $(OBJ)\mkroom.o $(OBJ)\mon.o $(OBJ)\mondata.o $(OBJ)\msdos.o \ X $(OBJ)\monmove.o $(OBJ)\monst.o $(OBJ)\mthrowu.o $(OBJ)\music.o \ X $(OBJ)\o_init.o $(OBJ)\objects.o $(OBJ)\objnam.o $(OBJ)\options.o \ X $(OBJ)\pager.o $(OBJ)\pickup.o $(OBJ)\polyself.o $(OBJ)\potion.o \ X $(OBJ)\pray.o $(OBJ)\pri.o $(OBJ)\priest.o $(OBJ)\prisym.o \ X $(RANDOM) $(OBJ)\read.o $(OBJ)\restore.o $(OBJ)\rip.o \ X $(OBJ)\rnd.o $(OBJ)\rumors.o $(OBJ)\save.o $(OBJ)\search.o \ X $(OBJ)\shk.o $(OBJ)\shknam.o $(OBJ)\sit.o $(OBJ)\sounds.o \ X $(OBJ)\sp_lev.o $(OBJ)\spell.o $(OBJ)\steal.o $(OBJ)\termcap.o \ X $(OBJ)\timeout.o $(OBJ)\topl.o $(OBJ)\topten.o $(OBJ)\track.o \ X $(OBJ)\trap.o $(OBJ)\tty.o $(OBJ)\u_init.o $(OBJ)\uhitm.o \ X $(OBJ)\unix.o $(OBJ)\vault.o $(OBJ)\weapon.o $(OBJ)\were.o \ X $(OBJ)\wield.o $(OBJ)\wizard.o $(OBJ)\worm.o $(OBJ)\worn.o \ X $(OBJ)\write.o $(OBJ)\zap.o XHOBJ = $(VOBJ) $(OBJ)\version.o X XPCCONF_H = $(INCL)\$(TARG)conf.h $(INCL)\msdos.h $(INCL)\system.h \ X $(INCL)\extern.h $(INCL)\def_os2.h XGLOBAL_H = $(INCL)\global.h $(INCL)\coord.h $(PCCONF_H) XCONFIG_H = $(INCL)\config.h $(INCL)\tradstdc.h $(GLOBAL_H) XTRAP_H = $(INCL)\trap.h XPERMONST_H = $(INCL)\permonst.h $(INCL)\monflag.h XYOU_H = $(INCL)\you.h $(INCL)\attrib.h $(PERMONST_H) $(INCL)\mondata.h \ X $(INCL)\monst.h $(INCL)\youprop.h XDECL_H = $(INCL)\decl.h $(INCL)\spell.h $(INCL)\obj.h $(YOU_H) \ X $(INCL)\onames.h $(INCL)\pm.h XHACK_H = $(CONFIG_H) $(DECL_H) $(INCL)\monsym.h $(INCL)\mkroom.h \ X $(INCL)\objclass.h $(INCL)\gold.h $(INCL)\trap.h $(INCL)\flag.h \ X $(INCL)\rm.h X X# The main target X$(GAMEDIR)\$(GAME).exe: $(OBJ) $(HOBJ) $(OS2DEFS) $(TERMLIB) X $(LINK) $(HOBJ),$(GAMEDIR)\$(GAME),$(GAME),$(PLIBS) $(TERMLIB),$(OS2DEFS) $(LFLAGS) ; X X# NDMAKE automatically generates LINK and LIB response files. X X$(GAME): $(GAMEDIR)\$(GAME).exe X$(GAME).exe: $(GAMEDIR)\$(GAME).exe X Xall: $(OBJ) makedefs lev_comp $(GAME) auxil X @echo Done. X X$(OBJ): X mkdir $(OBJ) X X# Target for termcap routines. X X$(TERMCAPS): $(TERMOBJS) X lib $(TERMCAPS) -+ $(TERMOBJS) ; X X# Targets for makedefs. X Xmakedefs: makedefs.exe Xmakedefs.exe: $(MAKEOBJS) X $(LINK) $(MAKEOBJS),,,$(RLIBS) $(LFLAGS) ; X X$(OBJ)\makedefs.o: $(INCL)\config.h $(INCL)\permonst.h $(INCL)\objclass.h X X# Targets for the special levels compiler. X Xlev_comp: lev_comp.exe Xlev_comp.exe: $(SPLEVOBJS) X $(LINK) $(SPLEVOBJS),,,$(RLIBS) $(LFLAGS) ; X X$(OBJ)\lev_comp.o: $(HACK_H) $(INCL)\sp_lev.h lev_comp.c X $(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $*.c X$(OBJ)\lev_lex.o: $(HACK_H) $(INCL)\sp_lev.h $(INCL)\lev_comp.h lev_lex.c X $(CC) $(CFLAGS) /Fo$(OBJ)\$*.o $*.c X$(OBJ)\lev_main.o: $(HACK_H) $(INCL)\sp_lev.h X Xlev_comp.c: lev_comp.y X $(MAKEBIN) do_yacc X Xlev_lex.c: lev_comp.l X $(MAKEBIN) do_lex X Xyacc_msg: X @echo lev_comp.y has changed. To update lev_comp.c and lev_comp.h run YACC. X Xyacc_act: X $(YACC) -d lev_comp.y X copy $(YTABC) lev_comp.c X copy $(YTABH) $(INCL)\lev_comp.h X del $(YTABC) X del $(YTABH) X Xlex_msg: X @echo lev_comp.l has changed. To update lev_lex.c run LEX. X Xlex_act: X $(LEX) lev_comp.l X copy $(LEXYYC) lev_lex.c X del $(LEXYYC) X X# X# The following include files depend on makedefs to be created. X# X# date.h should be remade any time any of the source or include code X# is modified. X# X$(INCL)\date.h: $(VOBJ) makedefs.exe X .\makedefs -v X X$(INCL)\trap.h: makedefs.exe X .\makedefs -t X X$(INCL)\onames.h: makedefs.exe X .\makedefs -o X X$(INCL)\pm.h: makedefs.exe X .\makedefs -p X Xdata: $(AUX)\data.base makedefs.exe X .\makedefs -d X Xrumors: $(AUX)\rumors.tru $(AUX)\rumors.fal makedefs.exe X .\makedefs -r X X# X# The following programs vary depending on what OS you are using. X# X$(OBJ)\main.o: $(HACK_H) $(TARG)main.c X $(CC) $(CFLAGS) /Fo$(OBJ)\main.o $(TARG)main.c X X$(OBJ)\tty.o: $(HACK_H) $(INCL)\func_tab.h $(TARG)tty.c X $(CC) $(CFLAGS) /Fo$(OBJ)\tty.o $(TARG)tty.c X X$(OBJ)\unix.o: $(HACK_H) $(TARG)unix.c X $(CC) $(CFLAGS) /Fo$(OBJ)\unix.o $(TARG)unix.c X X# X# Secondary targets X# X Xauxil: spec_levs data rumors X xcopy $(AUX)\*. $(GAMEDIR) X Xspec_levs: $(AUX)\castle.des $(AUX)\endgame.des $(AUX)\tower.des X lev_comp $(AUX)\castle.des X lev_comp $(AUX)\endgame.des X lev_comp $(AUX)\tower.des X xcopy castle $(GAMEDIR) X del castle X xcopy endgame $(GAMEDIR) X del endgame X xcopy tower? $(GAMEDIR) X del tower? X X$(OS2DEFS): X echo NAME $(GAME) WINDOWCOMPAT> $(OS2DEFS) X echo DESCRIPTION '$(GAMEDES)'>> $(OS2DEFS) X echo PROTMODE>> $(OS2DEFS) X echo EXETYPE OS2>> $(OS2DEFS) X Xclean: X del $(OBJ)\*.o X rmdir $(OBJ) X Xspotless: clean X del $(INCL)\date.h X del $(INCL)\onames.h X del $(INCL)\pm.h X del makedefs.exe X del lev_comp.exe X del $(TERMCAPS) X del *.def X del *.map X del $(AUX)\data X del $(AUX)\rumors X del castle X del endgame X del tower? X X# X# Other dependencies X# X X# GO AHEAD, DELETE THIS LINE X X$(OBJ)\allmain.o: $(HACK_H) X$(OBJ)\alloc.o: $(CONFIG_H) X$(OBJ)\apply.o: $(HACK_H) $(INCL)\edog.h X$(OBJ)\artifact.o: $(HACK_H) $(INCL)\artifact.h X$(OBJ)\attrib.o: $(HACK_H) X$(OBJ)\bones.o: $(HACK_H) X$(OBJ)\cmd.o: $(HACK_H) $(INCL)\func_tab.h X$(OBJ)\dbridge.o: $(HACK_H) X$(OBJ)\decl.o: $(HACK_H) X$(OBJ)\demon.o: $(HACK_H) X$(OBJ)\do.o: $(HACK_H) X$(OBJ)\do_name.o: $(HACK_H) X$(OBJ)\do_wear.o: $(HACK_H) X$(OBJ)\dog.o: $(HACK_H) $(INCL)\edog.h X$(OBJ)\dogmove.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\edog.h X$(OBJ)\dokick.o: $(HACK_H) X$(OBJ)\dothrow.o: $(HACK_H) X$(OBJ)\eat.o: $(HACK_H) X$(OBJ)\end.o: $(HACK_H) $(INCL)\eshk.h X$(OBJ)\engrave.o: $(HACK_H) X$(OBJ)\exper.o: $(HACK_H) X$(OBJ)\extralev.o: $(HACK_H) X$(OBJ)\fountain.o: $(HACK_H) X$(OBJ)\getline.o: $(HACK_H) $(INCL)\func_tab.h X$(OBJ)\hack.o: $(HACK_H) X$(OBJ)\invent.o: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h X$(OBJ)\ioctl.o: $(HACK_H) X$(OBJ)\lev_comp.o: $(HACK_H) $(INCL)\sp_lev.h X$(OBJ)\lock.o: $(HACK_H) X$(OBJ)\makemon.o: $(HACK_H) X$(OBJ)\mail.o: $(HACK_H) X$(OBJ)\mcastu.o: $(HACK_H) X$(OBJ)\mhitm.o: $(HACK_H) $(INCL)\artifact.h X$(OBJ)\mhitu.o: $(HACK_H) $(INCL)\artifact.h $(INCL)\edog.h X$(OBJ)\mklev.o: $(HACK_H) X$(OBJ)\mkmaze.o: $(HACK_H) X$(OBJ)\mkobj.o: $(HACK_H) X$(OBJ)\mkroom.o: $(HACK_H) X$(OBJ)\mon.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h X$(OBJ)\mondata.o: $(HACK_H) $(INCL)\eshk.h $(INCL)\epri.h X$(OBJ)\monmove.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\artifact.h X$(OBJ)\monst.o: $(CONFIG_H) $(PERMONST_H) $(INCL)\eshk.h $(INCL)\vault.h \ X $(INCL)\epri.h X$(OBJ)\msdos.o: $(HACK_H) X$(OBJ)\mthrowu.o: $(HACK_H) X$(OBJ)\music.o: $(HACK_H) X$(OBJ)\o_init.o: $(HACK_H) $(INCL)\onames.h X$(OBJ)\objects.o: $(CONFIG_H) $(INCL)\obj.h $(INCL)\objclass.h $(INCL)\prop.h X$(OBJ)\objnam.o: $(HACK_H) X$(OBJ)\options.o: $(HACK_H) X$(OBJ)\pager.o: $(HACK_H) X$(OBJ)\panic.o: $(CONFIG_H) X$(OBJ)\pickup.o: $(HACK_H) X$(OBJ)\polyself.o: $(HACK_H) X$(OBJ)\potion.o: $(HACK_H) X$(OBJ)\pray.o: $(HACK_H) X$(OBJ)\pri.o: $(HACK_H) $(INCL)\termcap.h X$(OBJ)\priest.o: $(HACK_H) $(INCL)\mfndpos.h $(INCL)\eshk.h $(INCL)\epri.h X$(OBJ)\prisym.o: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h X$(OBJ)\random.o: X$(OBJ)\read.o: $(HACK_H) X$(OBJ)\restore.o: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h X$(OBJ)\rip.o: $(HACK_H) X$(OBJ)\rnd.o: $(HACK_H) X$(OBJ)\rumors.o: $(HACK_H) X$(OBJ)\save.o: $(HACK_H) $(INCL)\lev.h $(INCL)\wseg.h X$(OBJ)\search.o: $(HACK_H) $(INCL)\artifact.h X$(OBJ)\shk.o: $(HACK_H) $(INCL)\eshk.h X$(OBJ)\shknam.o: $(HACK_H) $(INCL)\eshk.h X$(OBJ)\sit.o: $(HACK_H) X$(OBJ)\sounds.o: $(HACK_H) $(INCL)\edog.h $(INCL)\eshk.h X$(OBJ)\sp_lev.o: $(HACK_H) $(INCL)\sp_lev.h X$(OBJ)\spell.o: $(HACK_H) X$(OBJ)\steal.o: $(HACK_H) X$(OBJ)\termcap.o: $(HACK_H) $(INCL)\termcap.h X$(OBJ)\timeout.o: $(HACK_H) X$(OBJ)\topl.o: $(HACK_H) X$(OBJ)\topten.o: $(HACK_H) X$(OBJ)\track.o: $(HACK_H) X$(OBJ)\trap.o: $(HACK_H) $(INCL)\edog.h X$(OBJ)\u_init.o: $(HACK_H) X$(OBJ)\uhitm.o: $(HACK_H) $(INCL)\artifact.h X$(OBJ)\vault.o: $(HACK_H) $(INCL)\vault.h X$(OBJ)\version.o: $(HACK_H) $(INCL)\date.h X$(OBJ)\weapon.o: $(HACK_H) X$(OBJ)\were.o: $(HACK_H) X$(OBJ)\wield.o: $(HACK_H) X$(OBJ)\wizard.o: $(HACK_H) X$(OBJ)\worm.o: $(HACK_H) $(INCL)\wseg.h X$(OBJ)\worn.o: $(HACK_H) X$(OBJ)\write.o: $(HACK_H) X$(OBJ)\zap.o: $(HACK_H) END_OF_FILE if test 12677 -ne `wc -c <'others/Makefile.os2'`; then echo shar: \"'others/Makefile.os2'\" unpacked with wrong size! fi # end of 'others/Makefile.os2' echo shar: End of archive 24 \(of 30\). cp /dev/null ark24isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 30 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0