home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!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 <izchak@linc.cis.upenn.edu>
- 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 <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 24 (of 30)."
- # Contents: include/extern.h others/Makefile.os2
- # Wrapped by billr@saab on Wed Feb 21 10:04:46 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'include/extern.h' -a "${1}" != "-c" ; then
- echo shar: Renaming existing file \"'include/extern.h'\" to \"'include/extern.h.orig'\"
- mv -f 'include/extern.h' 'include/extern.h.orig'
- fi
- echo shar: Extracting \"'include/extern.h'\" \(42056 characters\)
- sed "s/^X//" >'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
-