home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-11-08 | 56.7 KB | 2,080 lines |
- Subject: v08i052: NetHack3 - display oriented dungeons & dragons (Ver. 3.0), Patch5e
- Newsgroups: comp.sources.games
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
- Posting-number: Volume 8, Issue 52
- Archive-name: NetHack3/Patch5e
- 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 5 (of 6)."
- # Contents: patches05e
- # Wrapped by billr@saab on Tue Oct 17 13:16:59 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patches05e' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patches05e'\"
- else
- echo shar: Extracting \"'patches05e'\" \(54469 characters\)
- sed "s/^X//" >'patches05e' <<'END_OF_FILE'
- X*** src/Old/makedefs.c Sun Oct 15 18:43:44 1989
- X--- src/makedefs.c Sat Oct 14 22:04:16 1989
- X***************
- X*** 2,8 ****
- X /* NetHack may be freely redistributed. See license for details. */
- X /* makedefs.c - NetHack version 3.0 */
- X
- X! #define MAKEDEFS_C
- X
- X #define EXTERN_H
- X #include "config.h"
- X--- 2,8 ----
- X /* NetHack may be freely redistributed. See license for details. */
- X /* makedefs.c - NetHack version 3.0 */
- X
- X! #define MAKEDEFS_C 1 /* needs to be defined to 1 for Mac */
- X
- X #define EXTERN_H
- X #include "config.h"
- X***************
- X*** 52,57 ****
- X--- 52,59 ----
- X # define DATA_FILE "auxil:data"
- X # define RUMOR_FILE "auxil:rumors"
- X #else
- X+ # ifndef MACOS
- X+ /* construct definitions of object constants */
- X # define MONST_FILE "../include/pm.h"
- X # define ONAME_FILE "../include/onames.h"
- X # define TRAP_FILE "../include/trap.h"
- X***************
- X*** 58,68 ****
- X--- 60,93 ----
- X # define DATE_FILE "../include/date.h"
- X # define DATA_FILE "../auxil/data"
- X # define RUMOR_FILE "../auxil/rumors"
- X+ # else
- X+ /*****
- X+ * MAC OS uses ':' to separate dir's and filenames.
- X+ * The following (partial) pathnames assume the makedefs program
- X+ * runs in the same directory as the include and auxil directories
- X+ *****/
- X+ # define MONST_FILE ":include:pm.h"
- X+ # define ONAME_FILE ":include:onames.h"
- X+ # define TRAP_FILE ":include:trap.h"
- X+ # define DATE_FILE ":include:date.h"
- X+ # define DATA_FILE ":auxil:data"
- X+ # define RUMOR_FILE ":auxil:rumors"
- X+ # ifdef AZTEC
- X+ #define perror(x) Printf(x)
- X+ #include "Controls.h"
- X+ # else
- X+ #include "ControlMgr.h"
- X+ # endif
- X+ # endif
- X #endif
- X
- X+
- X char in_line[256];
- X extern char *gets P((char *));
- X void do_objs(), do_traps(), do_data(), do_date(), do_permonst(), do_rumors();
- X+ #ifdef SMALLDATA
- X+ void do_monst(), save_resource();
- X+ #endif
- X char *limit P((char *,BOOLEAN_P));
- X FILE *_freopen();
- X
- X***************
- X*** 72,80 ****
- X char *argv[];
- X {
- X char *option;
- X!
- X if(argc == 2) {
- X option = argv[1];
- X switch (option[1]) {
- X
- X case 'o':
- X--- 97,164 ----
- X char *argv[];
- X {
- X char *option;
- X! #ifdef MACOS
- X! DialogPtr dialog;
- X! char params[3], *options;
- X! short itemHit, lastItem, type;
- X! Rect box;
- X! ControlHandle theControl;
- X! GrafPtr oldPort;
- X!
- X! #define OK_BUTTON 1
- X! #define CANCEL_BUTTON 2
- X! #define FIRST_RADIO_BUTTON 3
- X! #define ON 1
- X! #define OFF 0
- X!
- X! /* standard Mac initialization */
- X! InitGraf(&MAINGRAFPORT);
- X!
- X! InitFonts();
- X! InitWindows();
- X! InitMenus();
- X! InitCursor();
- X! FlushEvents(everyEvent,0);
- X! InitDialogs(NULL);
- X!
- X! params[0] = '-';
- X! options = "DVPRTOM";
- X! dialog = GetNewDialog(200, 0L, (WindowPtr) -1);
- X! GetPort(&oldPort);
- X! SetPort(dialog);
- X! GetDItem(dialog, OK_BUTTON, &type, &theControl, &box);
- X! LocalToGlobal(&box.top);
- X! LocalToGlobal(&box.bottom);
- X! SetPort(oldPort);
- X! PenSize(3, 3);
- X! InsetRect(&box, -4, -4);
- X! FrameRoundRect(&box, 16, 16);
- X! PenSize(1, 1);
- X! itemHit = 0;
- X! do {
- X! lastItem = itemHit;
- X! ModalDialog(NULL, &itemHit);
- X! if (itemHit != lastItem && itemHit > CANCEL_BUTTON) {
- X! if (lastItem) {
- X! GetDItem(dialog, lastItem, &type,
- X! &theControl, &box);
- X! SetCtlValue(theControl, OFF);
- X! }
- X! params[1] = options[itemHit - FIRST_RADIO_BUTTON];
- X! GetDItem(dialog, itemHit, &type, &theControl, &box);
- X! SetCtlValue(theControl, ON);
- X! }
- X! } while (itemHit >= FIRST_RADIO_BUTTON);
- X! DisposDialog(dialog);
- X! argc = 1;
- X! if (itemHit == OK_BUTTON && lastItem >= FIRST_RADIO_BUTTON) {
- X! argc = 2;
- X! option = params;
- X!
- X! #else
- X if(argc == 2) {
- X option = argv[1];
- X+ #endif
- X switch (option[1]) {
- X
- X case 'o':
- X***************
- X*** 99,107 ****
- X case 'r':
- X case 'R': do_rumors();
- X break;
- X
- X default:
- X! (void) fprintf(stderr, "Unknown option '%c'.\n", option[1]);
- X (void) fflush(stderr);
- X exit(1);
- X }
- X--- 183,198 ----
- X case 'r':
- X case 'R': do_rumors();
- X break;
- X+ #if defined(SMALLDATA) && defined(MACOS)
- X+ case 'm':
- X+ case 'M': do_monst();
- X+ break;
- X+
- X+ #endif /* SMALLDATA && MACOS */
- X
- X default:
- X! (void) fprintf(stderr,
- X! "Unknown option '%c'.\n", option[1]);
- X (void) fflush(stderr);
- X exit(1);
- X }
- X***************
- X*** 217,224 ****
- X--- 308,320 ----
- X }
- X Printf("/*\tSCCS Id: @(#)date.h\t3.0\t88/11/20 */\n\n");
- X
- X+ #ifdef KR1ED
- X (void) time(&clock);
- X Strcpy(cbuf, ctime(&clock));
- X+ #else
- X+ (void) time((time_t *)&clock);
- X+ Strcpy(cbuf, ctime((time_t *)&clock));
- X+ #endif
- X for(c = cbuf; *c != '\n'; c++); *c = 0; /* strip off the '\n' */
- X Printf("const char datestring[] = \"%s\";\n", cbuf);
- X
- X***************
- X*** 352,358 ****
- X /* make sure probabilities add up to 1000 */
- X if(objects[i].oc_olet != let) {
- X if (sum && sum != 1000) {
- X! (void) fprintf(stderr, "prob error for %c (%d%%)", let, sum);
- X (void) fflush(stderr);
- X sumerr = TRUE;
- X }
- X--- 448,455 ----
- X /* make sure probabilities add up to 1000 */
- X if(objects[i].oc_olet != let) {
- X if (sum && sum != 1000) {
- X! (void) fprintf(stderr,
- X! "prob error for %c (%d%%)", let, sum);
- X (void) fflush(stderr);
- X sumerr = TRUE;
- X }
- X***************
- X*** 381,387 ****
- X case GEM_SYM:
- X /* avoid trouble with stupid C preprocessors */
- X if(objects[i].oc_material == GLASS) {
- X! Printf("/* #define\t%s\t%d */\n", objects[i].oc_name, i);
- X continue;
- X }
- X default:
- X--- 478,485 ----
- X case GEM_SYM:
- X /* avoid trouble with stupid C preprocessors */
- X if(objects[i].oc_material == GLASS) {
- X! Printf("/* #define\t%s\t%d */\n",
- X! objects[i].oc_name, i);
- X continue;
- X }
- X default:
- X***************
- X*** 451,453 ****
- X--- 549,651 ----
- X }
- X # endif
- X #endif /* MSDOS */
- X+
- X+ #if defined(SMALLDATA) && defined(MACOS)
- X+ void
- X+ do_monst()
- X+ {
- X+ Handle data;
- X+ short i,j;
- X+ pmstr *pmMonst;
- X+
- X+ for(i = 0; mons[i].mlet; i++) {
- X+ ;
- X+ }
- X+ i++;
- X+
- X+ /*
- X+ * convert to struct where character arrays instead of pointers to
- X+ * strings are used
- X+ */
- X+ pmMonst = (pmstr *)NewPtr(i*sizeof(struct pmstr));
- X+ for (j = 0; j < i; j++) {
- X+ Strcpy(pmMonst[j].mname, mons[j].mname);
- X+ BlockMove(&(mons[j].mlet), &(pmMonst[j].pmp.mlet),
- X+ (long)sizeof(struct pmpart));
- X+ }
- X+
- X+ PtrToHand((Ptr)pmMonst, &data, (long)(i * sizeof(struct pmstr)));
- X+ save_resource(data);
- X+ DisposHandle(data);
- X+ }
- X+
- X+
- X+ void
- X+ save_resource(data)
- X+ Handle data;
- X+ {
- X+ SFReply reply;
- X+ short refNum,error;
- X+ Str255 name;
- X+ ResType theType;
- X+ Handle theRes;
- X+ short findNamedFile();
- X+ #define MONST_DATA_ID 101
- X+
- X+ strcpy((char *)&name[0], "\014Nethack.rsrc");
- X+ if (findNamedFile(&name[1], 0, &reply)) {
- X+ strncpy((char *)&name[0],(char *)&reply.fName[1], reply.fName[0]);
- X+ name[reply.fName[0]] = '\0';
- X+ if ((refNum = OpenResFile(name)) != -1) {
- X+ if (ResError() == noErr) {
- X+ theType = HACK_DATA;
- X+ strcpy((char *)&name[0], "\012MONST_DATA");
- X+ error = CurResFile();
- X+ if (theRes = GetResource(theType, MONST_DATA_ID)) {
- X+ RmveResource(theRes);
- X+ error = ResError();
- X+ if (error == noErr) {
- X+ DisposHandle(theRes);
- X+ UpdateResFile(refNum);
- X+ error = ResError();
- X+ if (error != noErr)
- X+ SysBeep(1);
- X+ } else {
- X+ Printf("Couldn't remove old copy of data resource.");
- X+ return;
- X+ }
- X+ } else if (ResError() != resNotFound && ResError() != noErr) {
- X+ SysBeep(1);
- X+ Printf("Resource file is protected.");
- X+ return;
- X+ }
- X+ AddResource(data, theType, MONST_DATA_ID, name);
- X+ error = ResError();
- X+ if (error != noErr) {
- X+ SysBeep(1);
- X+ Printf("Couldn't add data resource.");
- X+ } else {
- X+ WriteResource(data);
- X+ error = ResError();
- X+ if (error != noErr) {
- X+ SysBeep(1);
- X+ Printf("Couldn't write data resource.");
- X+ }
- X+ }
- X+ CloseResFile(refNum);
- X+ if (ResError() != noErr) {
- X+ SysBeep(1);
- X+ Printf("Couldn't close resource file.");
- X+ }
- X+ }
- X+ }
- X+ }
- X+ }
- X+ # if defined(AZTEC) || defined(THINKC4)
- X+ int
- X+ getpid()
- X+ {
- X+ return 1;
- X+ }
- X+ # endif
- X+ #endif /* SMALLDATA && MACOS */
- X*** src/Old/makemon.c Sun Oct 15 18:44:24 1989
- X--- src/makemon.c Sat Oct 14 23:23:07 1989
- X***************
- X*** 522,527 ****
- X--- 522,528 ----
- X case S_LEPRECHAUN:
- X mtmp->msleep = 1;
- X break;
- X+ case S_JABBERWOCK:
- X case S_NYMPH:
- X if(rn2(5) && !u.uhave_amulet) mtmp->msleep = 1;
- X break;
- X***************
- X*** 658,691 ****
- X return 1;
- X }
- X
- X! void
- X! rloc(mtmp)
- X struct monst *mtmp;
- X {
- X- register int tx, ty;
- X-
- X #ifdef WORM /* do not relocate worms */
- X if(mtmp->wormno && mtmp->mx) return;
- X #endif
- X- /* if the wiz teleports away to heal, try the up staircase,
- X- to block the player's escaping before he's healed */
- X- if(!mtmp->iswiz || !goodpos(tx = xupstair, ty = yupstair, mtmp->data))
- X- do {
- X- tx = rn1(COLNO-3,2);
- X- ty = rn2(ROWNO);
- X- } while(!goodpos(tx,ty,mtmp->data));
- X if(mtmp->mx != 0 && mtmp->my != 0)
- X remove_monster(mtmp->mx, mtmp->my);
- X! place_monster(mtmp, tx, ty);
- X if(u.ustuck == mtmp){
- X if(u.uswallow) {
- X! u.ux = tx;
- X! u.uy = ty;
- X docrt();
- X } else u.ustuck = 0;
- X }
- X pmon(mtmp);
- X set_apparxy(mtmp);
- X }
- X
- X static int
- X--- 659,719 ----
- X return 1;
- X }
- X
- X! static void
- X! rloc_to(mtmp, x, y)
- X struct monst *mtmp;
- X+ register int x,y;
- X {
- X #ifdef WORM /* do not relocate worms */
- X if(mtmp->wormno && mtmp->mx) return;
- X #endif
- X if(mtmp->mx != 0 && mtmp->my != 0)
- X remove_monster(mtmp->mx, mtmp->my);
- X! place_monster(mtmp, x, y);
- X if(u.ustuck == mtmp){
- X if(u.uswallow) {
- X! u.ux = x;
- X! u.uy = y;
- X docrt();
- X } else u.ustuck = 0;
- X }
- X pmon(mtmp);
- X set_apparxy(mtmp);
- X+ }
- X+
- X+ void
- X+ rloc(mtmp)
- X+ struct monst *mtmp;
- X+ {
- X+ register int x, y;
- X+
- X+ /* if the wiz teleports away to heal, try the up staircase,
- X+ to block the player's escaping before he's healed */
- X+ if(!mtmp->iswiz || !goodpos(x = xupstair, y = yupstair, mtmp->data))
- X+ do {
- X+ x = rn1(COLNO-3,2);
- X+ y = rn2(ROWNO);
- X+ } while(!goodpos(x,y,mtmp->data));
- X+ rloc_to(mtmp, x, y);
- X+ }
- X+
- X+ void
- X+ vloc(mtmp)
- X+ struct monst *mtmp;
- X+ {
- X+ register struct mkroom *croom;
- X+ register int x, y;
- X+
- X+ for(croom = &rooms[0]; croom->hx >= 0; croom++)
- X+ if(croom->rtype == VAULT) {
- X+ x = rn2(2) ? croom->lx : croom->hx;
- X+ y = rn2(2) ? croom->ly : croom->hy;
- X+ if(goodpos(x, y, mtmp->data)) {
- X+ rloc_to(mtmp, x, y);
- X+ return;
- X+ }
- X+ }
- X+ rloc(mtmp);
- X }
- X
- X static int
- X*** src/Old/mhitm.c Sun Oct 15 18:45:23 1989
- X--- src/mhitm.c Sun Oct 15 17:25:06 1989
- X***************
- X*** 453,459 ****
- X }
- X break;
- X case AD_SLEE:
- X! if(!resists_sleep(pd) && !magr->mcan && vis && !mdef->msleep) {
- X pline("%s falls asleep.", Monnam(mdef));
- X mdef->msleep = 1;
- X }
- X--- 453,460 ----
- X }
- X break;
- X case AD_SLEE:
- X! if(!resists_sleep(pd) && !magr->mcan && vis && !mdef->msleep
- X! && !mdef->mfroz) {
- X pline("%s falls asleep.", Monnam(mdef));
- X mdef->msleep = 1;
- X }
- X*** src/Old/mkobj.c Sun Oct 15 18:47:44 1989
- X--- src/mkobj.c Fri Oct 6 18:42:51 1989
- X***************
- X*** 239,245 ****
- X #endif
- X break;
- X case FOOD_SYM:
- X! OEATEN(otmp) = 0L;
- X if(otmp->otyp == CORPSE) {
- X /* overridden by mkcorpstat() */
- X do otmp->corpsenm = rndmonnum();
- X--- 239,245 ----
- X #endif
- X break;
- X case FOOD_SYM:
- X! otmp->oeaten = FALSE;
- X if(otmp->otyp == CORPSE) {
- X /* overridden by mkcorpstat() */
- X do otmp->corpsenm = rndmonnum();
- X***************
- X*** 574,579 ****
- X--- 574,586 ----
- X register struct obj *otmp;
- X {
- X return(objects[otmp->otyp].oc_material == COPPER);
- X+ }
- X+
- X+ boolean
- X+ OBJ_AT(x, y)
- X+ int x, y;
- X+ {
- X+ return(level.objects[x][y] != (struct obj *)0);
- X }
- X #endif
- X
- X*** src/Old/mon.c Sun Oct 15 18:48:23 1989
- X--- src/mon.c Sun Oct 15 17:25:11 1989
- X***************
- X*** 2,7 ****
- X--- 2,11 ----
- X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
- X /* NetHack may be freely redistributed. See license for details. */
- X
- X+ #ifdef MICROPORT_BUG
- X+ #define MKROOM_H
- X+ #endif
- X+
- X #include "hack.h"
- X #include "mfndpos.h"
- X #ifdef NAMED_ITEMS
- X***************
- X*** 174,185 ****
- X inpool = is_pool(mtmp->mx,mtmp->my);
- X iseel = mtmp->data->mlet == S_EEL;
- X isgremlin = mtmp->data->mlet == S_GREMLIN;
- X infountain = IS_FOUNTAIN(levl[mtmp->mx][mtmp->my].typ);
- X /* Gremlin multiplying won't go on forever since the hit points
- X * keep going down, and when it gets to 1 hit point the clone
- X * function will fail.
- X */
- X! if((inpool || infountain) && isgremlin && rn2(3)) {
- X struct monst *mtmp2 = clone_mon(mtmp);
- X
- X if (mtmp2) {
- X--- 178,195 ----
- X inpool = is_pool(mtmp->mx,mtmp->my);
- X iseel = mtmp->data->mlet == S_EEL;
- X isgremlin = mtmp->data->mlet == S_GREMLIN;
- X+ #ifdef FOUNTAINS
- X infountain = IS_FOUNTAIN(levl[mtmp->mx][mtmp->my].typ);
- X+ #endif
- X /* Gremlin multiplying won't go on forever since the hit points
- X * keep going down, and when it gets to 1 hit point the clone
- X * function will fail.
- X */
- X! if((inpool
- X! #ifdef FOUNTAINS
- X! || infountain
- X! #endif
- X! ) && isgremlin && rn2(3)) {
- X struct monst *mtmp2 = clone_mon(mtmp);
- X
- X if (mtmp2) {
- X***************
- X*** 819,825 ****
- X if(!cansee(mtmp->mx,mtmp->my)) You("destroy it!");
- X else {
- X You("destroy %s!",
- X! mtmp->mtame ? a_monnam(mtmp, "poor") : mon_nam(mtmp));
- X }
- X }
- X
- X--- 829,835 ----
- X if(!cansee(mtmp->mx,mtmp->my)) You("destroy it!");
- X else {
- X You("destroy %s!",
- X! mtmp->mtame ? a2_monnam(mtmp, "poor") : mon_nam(mtmp));
- X }
- X }
- X
- X***************
- X*** 1155,1161 ****
- X if(cansee(mtmp->mx,mtmp->my) &&
- X (!Stealth || (mtmp->data == &mons[PM_ETTIN] && rn2(10))) &&
- X (!(mtmp->data->mlet == S_NYMPH
- X! || mtmp->data->mlet == S_LEPRECHAUN) || !rn2(50)) &&
- X (Aggravate_monster ||
- X (mtmp->data->mlet == S_DOG || mtmp->data->mlet == S_HUMAN) ||
- X (!rn2(7) && !mtmp->mimic))) {
- X--- 1165,1172 ----
- X if(cansee(mtmp->mx,mtmp->my) &&
- X (!Stealth || (mtmp->data == &mons[PM_ETTIN] && rn2(10))) &&
- X (!(mtmp->data->mlet == S_NYMPH
- X! || mtmp->data == &mons[PM_JABBERWOCK]
- X! || mtmp->data->mlet == S_LEPRECHAUN) || !rn2(50)) &&
- X (Aggravate_monster ||
- X (mtmp->data->mlet == S_DOG || mtmp->data->mlet == S_HUMAN) ||
- X (!rn2(7) && !mtmp->mimic))) {
- X*** src/Old/monmove.c Sun Oct 15 18:49:29 1989
- X--- src/monmove.c Fri Oct 13 21:26:40 1989
- X***************
- X*** 108,115 ****
- X int x, y;
- X struct monst *mtmp;
- X {
- X if (mtmp->isshk || mtmp->isgd || mtmp->iswiz || !mtmp->mcansee ||
- X! mtmp->data->mlet == S_HUMAN || mtmp->mpeaceful)
- X return(FALSE);
- X return(
- X #ifdef ELBERETH
- X--- 108,120 ----
- X int x, y;
- X struct monst *mtmp;
- X {
- X+ /* Note: minotaurs must be immune to scare monster to avoid abuse
- X+ * from creating them and taking their wands, then polymorphing 60
- X+ * or so wands to get wishing...
- X+ */
- X if (mtmp->isshk || mtmp->isgd || mtmp->iswiz || !mtmp->mcansee ||
- X! mtmp->data->mlet == S_HUMAN || mtmp->mpeaceful ||
- X! mtmp->data == &mons[PM_MINOTAUR])
- X return(FALSE);
- X return(
- X #ifdef ELBERETH
- X***************
- X*** 740,745 ****
- X--- 745,757 ----
- X /*
- X * Functions for encapsulation of level.monsters references.
- X */
- X+ boolean
- X+ MON_AT(x, y)
- X+ int x, y;
- X+ {
- X+ return(level.monsters[x][y] != (struct monst *)0);
- X+ }
- X+
- X void place_monster(mtmp, x, y)
- X register struct monst *mtmp;
- X int x, y;
- X*** src/Old/monst.c Sun Oct 15 18:50:20 1989
- X--- src/monst.c Sun Oct 15 17:15:18 1989
- X***************
- X*** 6,11 ****
- X--- 6,12 ----
- X * function declarations for all of nethack
- X */
- X #define EXTERN_H
- X+ /* #define MAKEDEFS_C 1 /* define for Macs when compiling makedefs */
- X #include "config.h"
- X #include "permonst.h"
- X #include "monsym.h"
- X***************
- X*** 19,25 ****
- X #undef C
- X #endif
- X #ifdef TEXTCOLOR
- X! #include "decl.h" /* for colors */
- X #define C(color) color
- X #else
- X #define C(color)
- X--- 20,26 ----
- X #undef C
- X #endif
- X #ifdef TEXTCOLOR
- X! #include "color.h"
- X #define C(color) color
- X #else
- X #define C(color)
- X***************
- X*** 65,70 ****
- X--- 66,74 ----
- X * unconsciously. Use your common sense.
- X */
- X
- X+ #if defined(MACOS) && !defined(MAKEDEFS_C)
- X+ struct permonst *mons; /* for SMALLDATA - mons data stored in NetHack app */
- X+ #else
- X #ifndef SPLITMON_2
- X struct permonst mons[] = {
- X /* ants */
- X***************
- X*** 253,259 ****
- X { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_SQAWK, M1_VSMALL | M1_POIS_RES | M1_TPORT |
- X M1_TPORT_CONTROL | M1_STALK, 0, C(CYAN) },
- X! /* j ??? */
- X /* kobolds */
- X { "kobold", S_KOBOLD, 0, 6, 7, 0, -2, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X--- 257,278 ----
- X { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 300, 0, MS_SQAWK, M1_VSMALL | M1_POIS_RES | M1_TPORT |
- X M1_TPORT_CONTROL | M1_STALK, 0, C(CYAN) },
- X! /* jellies */
- X! { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
- X! { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X! 2, 20, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS |
- X! M1_POIS_RES | M1_COLD_RES,
- X! M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(BLUE) },
- X! { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
- X! { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X! 2, 20, 0, MS_SILENT,
- X! M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS | M1_STON_RES,
- X! M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(GREEN) },
- X! { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
- X! { { AT_ENGL, AD_ACID, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X! 2, 20, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS |
- X! M1_STON_RES, M2_HOSTILE | M2_OMNIVORE | M2_NOLIMBS | M2_AMORPHOUS,
- X! C(HI_GOLD)},
- X /* kobolds */
- X { "kobold", S_KOBOLD, 0, 6, 7, 0, -2, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X***************
- X*** 814,820 ****
- X M1_COLLECT, M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(MAGENTA) },
- X { "minotaur", S_GIANT, 15, 15, 6, 0, 0, (G_GENO | G_NOGEN),
- X { { AT_CLAW, AD_PHYS, 3, 10 }, { AT_CLAW, AD_PHYS, 3, 10 },
- X! AT_BUTT, AD_PHYS, 2, 8, NO_ATTK, NO_ATTK},
- X 70, 700, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_HUMANOID,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
- X { "owlbear", S_GIANT, 5, 12, 5, 0, 0, (G_GENO | 3),
- X--- 833,839 ----
- X M1_COLLECT, M2_STRONG | M2_ROCKTHROW | M2_NASTY, C(MAGENTA) },
- X { "minotaur", S_GIANT, 15, 15, 6, 0, 0, (G_GENO | G_NOGEN),
- X { { AT_CLAW, AD_PHYS, 3, 10 }, { AT_CLAW, AD_PHYS, 3, 10 },
- X! { AT_BUTT, AD_PHYS, 2, 8}, NO_ATTK, NO_ATTK},
- X 70, 700, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_HUMANOID,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(BROWN) },
- X { "owlbear", S_GIANT, 5, 12, 5, 0, 0, (G_GENO | 3),
- X***************
- X*** 828,849 ****
- X 40, 400, 0, MS_SILENT,
- X M1_BIG | M1_ANIMAL | M1_FLY | M1_SEE_INVIS | M1_STALK,
- X M2_WANDER | M2_HOSTILE | M2_STRONG, C(WHITE) },
- X! /* Jellies */
- X! { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
- X! { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X! 2, 20, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS |
- X! M1_POIS_RES | M1_COLD_RES,
- X! M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(BLUE) },
- X! { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
- X! { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X! 2, 20, 0, MS_SILENT,
- X! M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS | M1_STON_RES,
- X! M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE | M2_AMORPHOUS, C(GREEN) },
- X! { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
- X! { { AT_ENGL, AD_ACID, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X! 2, 20, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS |
- X! M1_STON_RES, M2_HOSTILE | M2_OMNIVORE | M2_NOLIMBS | M2_AMORPHOUS,
- X! C(HI_GOLD)},
- X /* Kops */
- X #ifdef KOPS
- X { "Keystone Kop", S_KOP, 1, 6, 7, 10, 9, (G_GENO | G_LGROUP | G_NOGEN),
- X--- 847,858 ----
- X 40, 400, 0, MS_SILENT,
- X M1_BIG | M1_ANIMAL | M1_FLY | M1_SEE_INVIS | M1_STALK,
- X M2_WANDER | M2_HOSTILE | M2_STRONG, C(WHITE) },
- X! /* Jabberwock */
- X! { "jabberwock", S_JABBERWOCK, 15, 12, -2, 50, 0, G_GENO,
- X! { { AT_BITE, AD_PHYS, 2, 10 }, { AT_BITE, AD_PHYS, 2, 10 },
- X! { AT_CLAW, AD_PHYS, 2, 10 }, { AT_CLAW, AD_PHYS, 2, 10 }, NO_ATTK },
- X! 60, 600, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_COLLECT | M1_FLY,
- X! M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE, C(RED) },
- X /* Kops */
- X #ifdef KOPS
- X { "Keystone Kop", S_KOP, 1, 6, 7, 10, 9, (G_GENO | G_LGROUP | G_NOGEN),
- X***************
- X*** 1453,1471 ****
- X C(MAGENTA)},
- X #endif
- X #ifdef MAIL
- X- # ifdef VMS
- X- { "broadcast daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
- X- { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0,
- X- MS_SILENT, M1_NOPOLY | M1_FLY | M1_SWIM | M1_SEE_INVIS |
- X- M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES |
- X- M1_STALK, M2_PEACEFUL, C(BRIGHT|BLUE) },
- X- # else
- X { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE),
- X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0,
- X MS_SILENT, M1_NOPOLY | M1_FLY | M1_SWIM | M1_SEE_INVIS |
- X M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES |
- X M1_STALK, M2_PEACEFUL, C(BRIGHT|BLUE) },
- X- # endif
- X /* Neither rain nor sleet nor gloom of night shall stay this courier... */
- X #endif
- X { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE),
- X--- 1462,1472 ----
- X***************
- X*** 1566,1568 ****
- X--- 1567,1570 ----
- X 0, 0, 0, 0, 0, 0, C(0) }
- X };
- X #endif /* !SPLITMON_1 */
- X+ #endif /* !MAKEDEFS_C */
- X*** src/Old/music.c Sun Oct 15 18:53:02 1989
- X--- src/music.c Wed Oct 11 17:14:52 1989
- X***************
- X*** 223,229 ****
- X else {
- X You("destroy %s!",
- X mtmp->mtame ?
- X! a_monnam(mtmp, "poor") :
- X mon_nam(mtmp));
- X }
- X xkilled(mtmp,0);
- X--- 223,229 ----
- X else {
- X You("destroy %s!",
- X mtmp->mtame ?
- X! a2_monnam(mtmp, "poor") :
- X mon_nam(mtmp));
- X }
- X xkilled(mtmp,0);
- X*** src/Old/o_init.c Sun Oct 15 18:53:21 1989
- X--- src/o_init.c Sat Oct 14 22:09:03 1989
- X***************
- X*** 9,14 ****
- X--- 9,19 ----
- X * in the objects array
- X */
- X #define TOTAL_OBJS (NROFOBJECTS+2)
- X+ #ifdef MACOS
- X+ short *switches; /* used to allow position independent loads of app */
- X+ /* by storing the number of the description string */
- X+ /* [at startup of the game] not the pointer to the string */
- X+ #endif
- X
- X const char obj_symbols[] = {
- X ILLOBJ_SYM, AMULET_SYM, FOOD_SYM, WEAPON_SYM, TOOL_SYM,
- X***************
- X*** 70,75 ****
- X--- 75,83 ----
- X int color;
- X #endif /* TEXTCOLOR */
- X int tmp;
- X+ #ifdef MACOS
- X+ short sw;
- X+ #endif
- X
- X for(j=o_low; j <= o_high; j++) {
- X i = o_low + rn2(j+1-o_low);
- X***************
- X*** 91,96 ****
- X--- 99,110 ----
- X objects[j].oc_material = objects[i].oc_material;
- X objects[i].oc_material = tmp;
- X }
- X+ #ifdef MACOS
- X+ /* keep track of shuffling of object descriptions */
- X+ sw=switches[j];
- X+ switches[j]=switches[i];
- X+ switches[i]=sw;
- X+ #endif
- X }
- X }
- X
- X***************
- X*** 142,165 ****
- X j = last;
- X if (let == GEM_SYM) {
- X while(--j > first)
- X- /* NOTE: longest color name must be default */
- X if(!strcmp(objects[j].oc_name,"turquoise")) {
- X! if(rn2(2)) /* change from green? */
- X! Strcpy(objects[j].oc_descr, blue);
- X } else if (!strcmp(objects[j].oc_name,"aquamarine")) {
- X! if(rn2(2)) /* change from green? */
- X! Strcpy(objects[j].oc_descr, blue);
- X } else if (!strcmp(objects[j].oc_name,"fluorite")) {
- X switch (rn2(4)) { /* change from violet? */
- X case 0: break;
- X case 1:
- X! Strcpy(objects[j].oc_descr, blue);
- X break;
- X case 2:
- X! Strcpy(objects[j].oc_descr, white);
- X break;
- X case 3:
- X! Strcpy(objects[j].oc_descr, green);
- X break;
- X }
- X }
- X--- 156,195 ----
- X j = last;
- X if (let == GEM_SYM) {
- X while(--j > first)
- X if(!strcmp(objects[j].oc_name,"turquoise")) {
- X! if(rn2(2)) { /* change from green? */
- X! objects[j].oc_descr = blue;
- X! #ifdef TEXTCOLOR
- X! objects[j].oc_color = BLUE;
- X! #endif
- X! }
- X } else if (!strcmp(objects[j].oc_name,"aquamarine")) {
- X! if(rn2(2)) { /* change from green? */
- X! objects[j].oc_descr = blue;
- X! #ifdef TEXTCOLOR
- X! objects[j].oc_color = BLUE;
- X! #endif
- X! }
- X } else if (!strcmp(objects[j].oc_name,"fluorite")) {
- X switch (rn2(4)) { /* change from violet? */
- X case 0: break;
- X case 1:
- X! objects[j].oc_descr = blue;
- X! #ifdef TEXTCOLOR
- X! objects[j].oc_color = BLUE;
- X! #endif
- X break;
- X case 2:
- X! objects[j].oc_descr = white;
- X! #ifdef TEXTCOLOR
- X! objects[j].oc_color = WHITE;
- X! #endif
- X break;
- X case 3:
- X! objects[j].oc_descr = green;
- X! #ifdef TEXTCOLOR
- X! objects[j].oc_color = GREEN;
- X! #endif
- X break;
- X }
- X }
- X***************
- X*** 198,212 ****
- X--- 228,254 ----
- X {
- X register int i;
- X unsigned int len;
- X+ #ifdef MACOS
- X+ char *descr[TOTAL_OBJS];
- X+ #endif
- X struct objclass *now = &objects[0];
- X bwrite(fd, (genericptr_t)&now, sizeof now);
- X bwrite(fd, (genericptr_t)bases, sizeof bases);
- X bwrite(fd, (genericptr_t)disco, sizeof disco);
- X+ #ifdef MACOS
- X+ for (i = 0 ; i < TOTAL_OBJS; i++) {
- X+ descr[i] = objects[i].oc_descr;
- X+ objects[i].oc_descr = (char *)switches[i];
- X+ }
- X+ #endif
- X bwrite(fd, (genericptr_t)objects, sizeof(struct objclass) * TOTAL_OBJS);
- X /* as long as we use only one version of Hack we
- X need not save oc_name and oc_descr, but we must save
- X oc_uname for all objects */
- X for(i=0; i < TOTAL_OBJS; i++) {
- X+ #ifdef MACOS
- X+ objects[i].oc_descr = descr[i];
- X+ #endif
- X if(objects[i].oc_uname) {
- X len = strlen(objects[i].oc_uname)+1;
- X bwrite(fd, (genericptr_t)&len, sizeof len);
- X***************
- X*** 223,254 ****
- X unsigned int len;
- X struct objclass *then;
- X long differ;
- X mread(fd, (genericptr_t) &then, sizeof then);
- X mread(fd, (genericptr_t) bases, sizeof bases);
- X mread(fd, (genericptr_t) disco, sizeof disco);
- X mread(fd, (genericptr_t) objects, sizeof(struct objclass) * TOTAL_OBJS);
- X! #if !defined(MSDOS) && !defined(M_XENIX)
- X! differ = (genericptr_t)&objects[0] - (genericptr_t)then;
- X #else
- X differ = (long)&objects[0] - (long)then;
- X! #endif
- X for(i=0; i < TOTAL_OBJS; i++) {
- X if (objects[i].oc_name) {
- X! #if !defined(MSDOS) && !defined(M_XENIX)
- X objects[i].oc_name += differ;
- X! #else
- X objects[i].oc_name =
- X (char *)((long)(objects[i].oc_name) + differ);
- X! #endif
- X }
- X if (objects[i].oc_descr) {
- X! #if !defined(MSDOS) && !defined(M_XENIX)
- X objects[i].oc_descr += differ;
- X! #else
- X objects[i].oc_descr =
- X (char *)((long)(objects[i].oc_descr) + differ);
- X! #endif
- X }
- X if (objects[i].oc_uname) {
- X mread(fd, (genericptr_t) &len, sizeof len);
- X objects[i].oc_uname = (char *) alloc(len);
- X--- 265,325 ----
- X unsigned int len;
- X struct objclass *then;
- X long differ;
- X+ #ifdef MACOS
- X+ /* provides position-independent save & restore */
- X+ /* by giving each object a number, keep track of it */
- X+ /* when shuffled and save the numbers instead of the */
- X+ /* description strings (which can change between */
- X+ /* executions of the program) */
- X+ /* On restore, the retrieved numbers are matched with the */
- X+ /* numbers and object descriptions in the program */
- X+ struct descr {
- X+ char *name,
- X+ *descr;
- X+ } d[TOTAL_OBJS];
- X+
- X+ /* save the current object descriptions */
- X+ for (i = 0; i < TOTAL_OBJS; i++) {
- X+ d[i].name = objects[i].oc_name;
- X+ d[i].descr = objects[i].oc_descr;
- X+ }
- X+ #endif
- X mread(fd, (genericptr_t) &then, sizeof then);
- X mread(fd, (genericptr_t) bases, sizeof bases);
- X mread(fd, (genericptr_t) disco, sizeof disco);
- X mread(fd, (genericptr_t) objects, sizeof(struct objclass) * TOTAL_OBJS);
- X! #ifdef MACOS
- X! for (i = 0; i < TOTAL_OBJS; i++) {
- X! objects[i].oc_name = d[i].name;
- X! switches[i] = (short)objects[i].oc_descr;
- X! objects[i].oc_descr = d[switches[i]].descr;
- X! }
- X #else
- X+ # if !defined(MSDOS) && !defined(M_XENIX)
- X+ differ = (genericptr_t)&objects[0] - (genericptr_t)then;
- X+ # else
- X differ = (long)&objects[0] - (long)then;
- X! # endif
- X! #endif /* MACOS */
- X for(i=0; i < TOTAL_OBJS; i++) {
- X+ #ifndef MACOS
- X if (objects[i].oc_name) {
- X! # if !defined(MSDOS) && !defined(M_XENIX)
- X objects[i].oc_name += differ;
- X! # else
- X objects[i].oc_name =
- X (char *)((long)(objects[i].oc_name) + differ);
- X! # endif
- X }
- X if (objects[i].oc_descr) {
- X! # if !defined(MSDOS) && !defined(M_XENIX)
- X objects[i].oc_descr += differ;
- X! # else
- X objects[i].oc_descr =
- X (char *)((long)(objects[i].oc_descr) + differ);
- X! # endif
- X }
- X+ #endif /* MACOS */
- X if (objects[i].oc_uname) {
- X mread(fd, (genericptr_t) &len, sizeof len);
- X objects[i].oc_uname = (char *) alloc(len);
- X*** src/Old/objects.c Sun Oct 15 18:53:44 1989
- X--- src/objects.c Tue Oct 3 20:23:31 1989
- X***************
- X*** 10,16 ****
- X #include "obj.h"
- X #include "objclass.h"
- X #include "prop.h"
- X- #include "decl.h"
- X #undef BOW
- X
- X /* objects have letter " % ) ( 0 _ ` [ ! ? / = * + . */
- X--- 10,15 ----
- X***************
- X*** 19,24 ****
- X--- 18,24 ----
- X #undef C
- X #endif
- X #ifdef TEXTCOLOR
- X+ #include "color.h"
- X #define C(n) n
- X #else
- X #define C(n)
- X***************
- X*** 49,54 ****
- X--- 49,56 ----
- X name, NULL, NULL, 1,1,uk,0,tin, 0, FOOD_SYM, prob, delay, wt, \
- X nutrition/20 + 5, 0, 0, nutrition, C(color) }
- X
- X+ /* all types of food (except tins & corpses) must have a delay of at least 1. */
- X+ /* delay on corpses is computed and is weight dependant */
- X /* dog eats foods 0-4 but prefers tripe rations above all others */
- X /* fortune cookies can be read */
- X /* carrots improve your vision */
- X***************
- X*** 58,92 ****
- X
- X /* meat */
- X #ifdef TOLKIEN
- X! FOOD("tripe ration", 145, 1, 2, 0, 0, 200, BROWN),
- X #else
- X! FOOD("tripe ration", 150, 1, 2, 0, 0, 200, BROWN),
- X #endif
- X! FOOD("dead lizard", 35, 0, 1, 0, 0, 40, GREEN),
- X! FOOD("corpse", 0, 0, 0, 0, 0, 0, BROWN),
- X! FOOD("egg", 75, 0, 1, 1, 0, 80, WHITE),
- X /* fruits & veggies */
- X! FOOD("apple", 10, 0, 1, 0, 0, 50, RED),
- X! FOOD("orange", 7, 0, 1, 0, 0, 80, ORANGE_COLORED),
- X! FOOD("pear", 7, 0, 1, 0, 0, 50, GREEN+BRIGHT),
- X! FOOD("melon", 7, 0, 1, 0, 0, 100, GREEN+BRIGHT),
- X! FOOD("banana", 7, 0, 1, 0, 0, 80, YELLOW),
- X! FOOD("carrot", 15, 0, 1, 0, 0, 50, ORANGE_COLORED),
- X! FOOD("clove of garlic", 5, 0, 1, 0, 0, 40, WHITE),
- X #ifdef TUTTI_FRUTTI
- X! FOOD("slime mold", 75, 0, 1, 0, 0, 250, BROWN),
- X #else
- X! FOOD("slice of pizza", 75, 0, 1, 0, 0, 250, RED),
- X #endif
- X /* human food */
- X! FOOD("lump of royal jelly", 0, 0, 1, 0, 0, 200, YELLOW),
- X! FOOD("cream pie", 25, 0, 1, 0, 0, 100, WHITE),
- X! FOOD("candy bar", 7, 0, 1, 0, 0, 100, BROWN),
- X! FOOD("fortune cookie", 55, 0, 1, 0, 0, 40, BROWN),
- X #ifdef TOLKIEN
- X! FOOD("pancake", 25, 1, 1, 0, 0, 200, BROWN),
- X! FOOD("lembas wafer", 20, 1, 1, 0, 0, 800, WHITE+BRIGHT),
- X! FOOD("cram ration", 20, 1, 3, 0, 0, 600, HI_ORGANIC),
- X FOOD("food ration", 385, 5, 4, 0, 0, 800, HI_ORGANIC),
- X #else
- X FOOD("pancake", 40, 1, 1, 0, 0, 200, BROWN),
- X--- 60,94 ----
- X
- X /* meat */
- X #ifdef TOLKIEN
- X! FOOD("tripe ration", 145, 2, 2, 0, 0, 200, BROWN),
- X #else
- X! FOOD("tripe ration", 150, 2, 2, 0, 0, 200, BROWN),
- X #endif
- X! FOOD("dead lizard", 35, 1, 1, 0, 0, 40, GREEN),
- X! FOOD("corpse", 0, 1, 0, 0, 0, 0, BROWN),
- X! FOOD("egg", 75, 1, 1, 1, 0, 80, WHITE),
- X /* fruits & veggies */
- X! FOOD("apple", 10, 1, 1, 0, 0, 50, RED),
- X! FOOD("orange", 7, 1, 1, 0, 0, 80, ORANGE_COLORED),
- X! FOOD("pear", 7, 1, 1, 0, 0, 50, GREEN+BRIGHT),
- X! FOOD("melon", 7, 1, 1, 0, 0, 100, GREEN+BRIGHT),
- X! FOOD("banana", 7, 1, 1, 0, 0, 80, YELLOW),
- X! FOOD("carrot", 15, 1, 1, 0, 0, 50, ORANGE_COLORED),
- X! FOOD("clove of garlic", 5, 1, 1, 0, 0, 40, WHITE),
- X #ifdef TUTTI_FRUTTI
- X! FOOD("slime mold", 75, 1, 1, 0, 0, 250, BROWN),
- X #else
- X! FOOD("slice of pizza", 75, 1, 1, 0, 0, 250, RED),
- X #endif
- X /* human food */
- X! FOOD("lump of royal jelly", 0, 1, 1, 0, 0, 200, YELLOW),
- X! FOOD("cream pie", 25, 1, 1, 0, 0, 100, WHITE),
- X! FOOD("candy bar", 7, 1, 1, 0, 0, 100, BROWN),
- X! FOOD("fortune cookie", 55, 1, 1, 0, 0, 40, BROWN),
- X #ifdef TOLKIEN
- X! FOOD("pancake", 25, 2, 1, 0, 0, 200, BROWN),
- X! FOOD("lembas wafer", 20, 2, 1, 0, 0, 800, WHITE+BRIGHT),
- X! FOOD("cram ration", 20, 3, 3, 0, 0, 600, HI_ORGANIC),
- X FOOD("food ration", 385, 5, 4, 0, 0, 800, HI_ORGANIC),
- X #else
- X FOOD("pancake", 40, 1, 1, 0, 0, 200, BROWN),
- X*** src/Old/objnam.c Sun Oct 15 18:54:30 1989
- X--- src/objnam.c Sun Oct 15 17:48:14 1989
- X***************
- X*** 5,11 ****
- X #include "hack.h"
- X #include <ctype.h> /* for isalpha() */
- X
- X! #define PREFIX 30
- X #define SCHAR_MAX 127
- X
- X /* We want the player to be able to learn what key goes in what lock. */
- X--- 5,12 ----
- X #include "hack.h"
- X #include <ctype.h> /* for isalpha() */
- X
- X! /* "an uncursed partly eaten guardian naga hatchling corpse" */
- X! #define PREFIX 50
- X #define SCHAR_MAX 127
- X
- X /* We want the player to be able to learn what key goes in what lock. */
- X***************
- X*** 503,509 ****
- X }
- X break;
- X case FOOD_SYM:
- X! if(OEATEN(obj))
- X Strcat(prefix, "partly eaten ");
- X if(obj->otyp == CORPSE) {
- X Strcat(prefix, mons[obj->corpsenm].mname);
- X--- 504,510 ----
- X }
- X break;
- X case FOOD_SYM:
- X! if(obj->oeaten)
- X Strcat(prefix, "partly eaten ");
- X if(obj->otyp == CORPSE) {
- X Strcat(prefix, mons[obj->corpsenm].mname);
- X***************
- X*** 547,552 ****
- X--- 548,578 ----
- X return(bp);
- X }
- X
- X+ /*
- X+ * Used if only one of a collection of objects is named (e.g. in eat.c).
- X+ */
- X+
- X+ char *
- X+ singular(otmp)
- X+ register struct obj *otmp;
- X+ {
- X+ int savequan;
- X+ char *nam;
- X+
- X+ /* Note: using xname for corpses will not give the monster type */
- X+ if (otmp->otyp == CORPSE) {
- X+ static char buf[31];
- X+
- X+ sprintf(buf, "%s corpse", mons[otmp->corpsenm].mname);
- X+ return buf;
- X+ }
- X+ savequan = otmp->quan;
- X+ otmp->quan = 1;
- X+ nam = xname(otmp);
- X+ otmp->quan = savequan;
- X+ return nam;
- X+ }
- X+
- X /* used only in mthrowu.c (thitu) */
- X void
- X setan(str,buf)
- X***************
- X*** 725,732 ****
- X goto bottom;
- X }
- X
- X! /* fungus/fungi, homunculus/homunculi */
- X! if (!strcmp(spot-1, "us")) {
- X *(spot--) = (char)0;
- X *spot = 'i';
- X goto bottom;
- X--- 751,758 ----
- X goto bottom;
- X }
- X
- X! /* fungus/fungi, homunculus/homunculi, but wumpuses */
- X! if (!strcmp(spot-1, "us") && strcmp(spot-6, "wumpus")) {
- X *(spot--) = (char)0;
- X *spot = 'i';
- X goto bottom;
- X***************
- X*** 1435,1441 ****
- X if (name) otmp = oname(otmp, name, 0);
- X otmp->owt = weight(otmp);
- X if (heavy) otmp->owt += 15;
- X! if (halfeaten && otmp->olet == FOOD_SYM) OEATEN(otmp) = 1;
- X return(otmp);
- X }
- X
- X--- 1461,1467 ----
- X if (name) otmp = oname(otmp, name, 0);
- X otmp->owt = weight(otmp);
- X if (heavy) otmp->owt += 15;
- X! if (halfeaten && otmp->olet == FOOD_SYM) otmp->oeaten = TRUE;
- X return(otmp);
- X }
- X
- X*** src/Old/options.c Sun Oct 15 18:55:16 1989
- X--- src/options.c Sat Oct 14 21:52:05 1989
- X***************
- X*** 25,30 ****
- X--- 25,34 ----
- X flags.confirm = TRUE;
- X flags.safe_dog = TRUE;
- X flags.silent = flags.pickup = TRUE;
- X+ #ifdef MACOS
- X+ flags.standout = TRUE;
- X+ flags.end_around = 3; /* Mac display routines don't scroll */
- X+ #endif
- X #ifdef TUTTI_FRUTTI
- X nmcpy(pl_fruit, objects[SLIME_MOLD].oc_name, PL_FSIZ);
- X #endif
- X***************
- X*** 693,699 ****
- X i = strlen(str);
- X }
- X if (*str)
- X! strcat(buf, str);
- X else
- X (void) page_line(str); /* always returns 0 on "" */
- X return r;
- X--- 697,703 ----
- X i = strlen(str);
- X }
- X if (*str)
- X! Strcat(buf, str);
- X else
- X (void) page_line(str); /* always returns 0 on "" */
- X return r;
- X*** src/Old/pager.c Sun Oct 15 19:43:16 1989
- X--- src/pager.c Sat Oct 14 22:10:16 1989
- X***************
- X*** 16,21 ****
- X--- 16,25 ----
- X #if defined(BSD) || defined(ULTRIX)
- X #include <sys/wait.h>
- X #endif
- X+ #ifdef MACOS
- X+ extern WindowPtr HackWindow;
- X+ extern short macflags;
- X+ #endif
- X
- X static char hc = 0;
- X
- X***************
- X*** 35,48 ****
- X Strcpy(tmp,hackdir);
- X append_slash(tmp);
- X Strcat(tmp,DATAFILE);
- X! if(!(fp = fopen(tmp,"r")))
- X #else
- X! if(!(fp = fopen(DATAFILE, "r")))
- X #endif
- X pline("Cannot open data file!");
- X else {
- X coord cc;
- X uchar r;
- X
- X pline ("Specify unknown object by cursor? ");
- X q = ynq();
- X--- 39,58 ----
- X Strcpy(tmp,hackdir);
- X append_slash(tmp);
- X Strcat(tmp,DATAFILE);
- X! fp = fopen(tmp,"r"));
- X #else
- X! fp = fopen(DATAFILE, "r");
- X! #endif
- X! if(!fp)
- X! #ifdef MACOS
- X! fp = openFile(DATAFILE);
- X! if (!fp)
- X #endif
- X pline("Cannot open data file!");
- X else {
- X coord cc;
- X uchar r;
- X+ boolean oldverb = flags.verbose;
- X
- X pline ("Specify unknown object by cursor? ");
- X q = ynq();
- X***************
- X*** 59,69 ****
- X--- 69,83 ----
- X selobj:
- X if(flags.verbose)
- X pline("Please move the cursor to an unknown object.");
- X+ else
- X+ pline("Pick an object.");
- X getpos(&cc, FALSE, "an unknown object");
- X if (cc.x < 0) {
- X (void) fclose(fp); /* sweet@scubed */
- X+ flags.verbose = oldverb;
- X return 0;
- X }
- X+ flags.verbose = FALSE;
- X r = levl[cc.x][cc.y].scrsym;
- X if (!r || !levl[cc.x][cc.y].seen) r = ' ';
- X }
- X***************
- X*** 112,117 ****
- X--- 126,132 ----
- X q = r;
- X if (index(quitchars, q)) {
- X (void) fclose(fp); /* sweet@scubed */
- X+ flags.verbose = oldverb;
- X return 0;
- X }
- X }
- X***************
- X*** 166,173 ****
- X }
- X }
- X #ifdef SPELLS
- X! else
- X! if (q == SPBOOK_SYM && OBJ_AT(cc.x, cc.y))
- X pline("(spellbook)");
- X #endif
- X #ifdef STRONGHOLD
- X--- 181,187 ----
- X }
- X }
- X #ifdef SPELLS
- X! else if (q == SPBOOK_SYM && OBJ_AT(cc.x, cc.y))
- X pline("(spellbook)");
- X #endif
- X #ifdef STRONGHOLD
- X***************
- X*** 178,185 ****
- X pline("(raised drawbridge)");
- X #endif
- X #ifdef SINKS
- X! else
- X! if (r == showsyms.sink && q == defsyms.sink &&
- X IS_SINK(levl[cc.x][cc.y].typ))
- X pline("(sink)");
- X #endif
- X--- 192,198 ----
- X pline("(raised drawbridge)");
- X #endif
- X #ifdef SINKS
- X! else if (r == showsyms.sink && q == defsyms.sink &&
- X IS_SINK(levl[cc.x][cc.y].typ))
- X pline("(sink)");
- X #endif
- X***************
- X*** 211,216 ****
- X--- 224,230 ----
- X pline("More info? ");
- X if(yn() == 'y') {
- X page_more(fp,1); /* does fclose() */
- X+ flags.verbose = oldverb;
- X return 0;
- X }
- X }
- X***************
- X*** 221,230 ****
- X--- 235,246 ----
- X goto selobj;
- X }
- X (void) fclose(fp); /* kopper@psuvax1 */
- X+ flags.verbose = oldverb;
- X return 0;
- X }
- X pline("I've never heard of such things.");
- X (void) fclose(fp);
- X+ flags.verbose = oldverb;
- X }
- X return 0;
- X }
- X***************
- X*** 243,249 ****
- X--- 259,271 ----
- X Strcat(tmp,CMDHELPFILE);
- X if(!(fp = fopen(tmp,"r"))) {
- X #else
- X+ # ifdef MACOS
- X+ if(!(fp = fopen(CMDHELPFILE, "r")))
- X+ fp = openFile(CMDHELPFILE);
- X+ if (!fp) {
- X+ # else
- X if(!(fp = fopen(CMDHELPFILE, "r"))) {
- X+ # endif
- X #endif
- X pline("Cannot open data file!");
- X return 0;
- X***************
- X*** 290,296 ****
- X /* make the paging of a file interruptible */
- X static int got_intrup;
- X
- X! #if !defined(MSDOS) && !defined(TOS)
- X static int
- X intruph(){
- X (void) signal(SIGINT, (SIG_RET_TYPE) intruph);
- X--- 312,318 ----
- X /* make the paging of a file interruptible */
- X static int got_intrup;
- X
- X! #if !defined(MSDOS) && !defined(TOS) && !defined(MACOS)
- X static int
- X intruph(){
- X (void) signal(SIGINT, (SIG_RET_TYPE) intruph);
- X***************
- X*** 309,315 ****
- X #if !defined(MSDOS) && !defined(MINIMAL_TERM)
- X register char *ep;
- X #endif
- X! #if !defined(MSDOS) && !defined(TOS)
- X int (*prevsig)() = (int (*)())signal(SIGINT, (SIG_RET_TYPE) intruph);
- X #endif
- X #if defined(MSDOS) || defined(MINIMAL_TERM)
- X--- 331,337 ----
- X #if !defined(MSDOS) && !defined(MINIMAL_TERM)
- X register char *ep;
- X #endif
- X! #if !defined(MSDOS) && !defined(TOS) && !defined(MACOS)
- X int (*prevsig)() = (int (*)())signal(SIGINT, (SIG_RET_TYPE) intruph);
- X #endif
- X #if defined(MSDOS) || defined(MINIMAL_TERM)
- X***************
- X*** 353,359 ****
- X ret:
- X free((genericptr_t) bufr);
- X (void) fclose(fp);
- X! #if !defined(MSDOS) && !defined(TOS)
- X (void) signal(SIGINT, (SIG_RET_TYPE) prevsig);
- X got_intrup = 0;
- X #endif
- X--- 375,381 ----
- X ret:
- X free((genericptr_t) bufr);
- X (void) fclose(fp);
- X! #if !defined(MSDOS) && !defined(TOS) && !defined(MACOS)
- X (void) signal(SIGINT, (SIG_RET_TYPE) prevsig);
- X got_intrup = 0;
- X #endif
- X***************
- X*** 439,444 ****
- X--- 461,469 ----
- X xputs(s); xputc('\n');
- X #else
- X (void) puts(s);
- X+ # ifdef MACOS
- X+ (void) putchar('\n');
- X+ # endif
- X #endif
- X cury++;
- X return(0);
- X***************
- X*** 656,661 ****
- X--- 681,694 ----
- X int
- X dohelp()
- X {
- X+ #ifdef MACOS
- X+ term_info *t;
- X+
- X+ macflags &= ~(fDoUpdate | fDoNonKeyEvt);
- X+ t = (term_info *)GetWRefCon(HackWindow);
- X+ SetVol((StringPtr)NULL,
- X+ (t->auxFileVRefNum) ? t->auxFileVRefNum : t->recordVRefNum);
- X+ #endif
- X help_menu();
- X if (!index(quitchars, hc)) {
- X switch(hc) {
- X***************
- X*** 673,678 ****
- X--- 706,715 ----
- X #endif
- X }
- X }
- X+ #ifdef MACOS
- X+ macflags |= (fDoUpdate | fDoNonKeyEvt);
- X+ SetVol((StringPtr)NULL, t->recordVRefNum);
- X+ #endif
- X return 0;
- X }
- X
- X***************
- X*** 724,730 ****
- X--- 761,778 ----
- X Strcat(tmp,fnam);
- X if ((f = fopen (tmp, "r")) == (FILE *) 0) {
- X #else
- X+ # ifdef MACOS
- X+ if ((f = fopen (fnam, "r")) == (FILE *) 0)
- X+ f = openFile(fnam);
- X+ /* refresh screen kluge */
- X+ if (!f) {
- X+ cls();
- X+ docrt();
- X+ clrlin();
- X+ ValidRect(&(**(*HackWindow).visRgn).rgnBBox);
- X+ # else
- X if ((f = fopen (fnam, "r")) == (FILE *) 0) {
- X+ # endif
- X #endif
- X if(!silent) {
- X home(); perror (fnam); flags.toplin = 1;
- X*** src/Old/panic.c Sun Oct 15 19:43:46 1989
- X--- src/panic.c Sat Oct 14 22:11:30 1989
- X***************
- X*** 6,11 ****
- X--- 6,12 ----
- X */
- X /* NetHack may be freely redistributed. See license for details. */
- X
- X+ /* #define MAKEDEFS_C 1 /* define for Macs */
- X #define NEED_VARARGS
- X #include "config.h"
- X
- X***************
- X*** 12,17 ****
- X--- 13,21 ----
- X #ifdef MSDOS
- X #undef exit
- X extern void exit P((int));
- X+ #endif
- X+ #ifdef AZTEC
- X+ #define abort() exit()
- X #endif
- X
- X /*VARARGS1*/
- X*** src/Old/pickup.c Sun Oct 15 19:44:00 1989
- X--- src/pickup.c Wed Oct 4 13:57:43 1989
- X***************
- X*** 268,286 ****
- X }
- X lift_some:
- X if(inv_cnt() >= 52) {
- X! Your("knapsack cannot accommodate any more items.");
- X! if(obj->otyp == SCR_SCARE_MONSTER)
- X! if(obj->spe) obj->spe = 0;
- X! break;
- X }
- X- addtobill(obj, TRUE); /* sets obj->unpaid if necessary */
- X- freeobj(obj);
- X- if(Invisible) newsym(u.ux,u.uy);
- X- if(wt > -5) You("have a little trouble lifting");
- X { int pickquan = obj->quan;
- X int mergquan;
- X if(!Blind) obj->dknown = 1;
- X- obj = addinv(obj); /* might merge it with other objects */
- X mergquan = obj->quan;
- X obj->quan = pickquan; /* to fool prinv() */
- X if(uwep && uwep == obj) mrg_to_wielded = TRUE;
- X--- 268,284 ----
- X }
- X lift_some:
- X if(inv_cnt() >= 52) {
- X! Your("knapsack cannot accommodate any more items.");
- X! if(obj->otyp == SCR_SCARE_MONSTER)
- X! if(obj->spe) obj->spe = 0;
- X! break;
- X }
- X { int pickquan = obj->quan;
- X int mergquan;
- X+
- X+ obj = pick_obj(obj);
- X+ if(wt > -5) You("have a little trouble lifting");
- X if(!Blind) obj->dknown = 1;
- X mergquan = obj->quan;
- X obj->quan = pickquan; /* to fool prinv() */
- X if(uwep && uwep == obj) mrg_to_wielded = TRUE;
- X***************
- X*** 290,295 ****
- X--- 288,303 ----
- X }
- X }
- X }
- X+ }
- X+
- X+ struct obj *
- X+ pick_obj(otmp)
- X+ register struct obj *otmp;
- X+ {
- X+ addtobill(otmp, TRUE); /* sets obj->unpaid if necessary */
- X+ freeobj(otmp);
- X+ if(Invisible) newsym(u.ux,u.uy);
- X+ return(addinv(otmp)); /* might merge it with other objects */
- X }
- X
- X int
- X*** src/Old/potion.c Sun Oct 15 19:44:48 1989
- X--- src/potion.c Sat Oct 14 19:23:40 1989
- X***************
- X*** 74,79 ****
- X--- 74,93 ----
- X }
- X
- X void
- X+ make_vomiting(xtime, talk)
- X+ long xtime;
- X+ boolean talk;
- X+ {
- X+ long old = Vomiting;
- X+
- X+ if(!xtime && old)
- X+ if(talk) You("feel much less nauseous now.");
- X+
- X+ Vomiting = xtime;
- X+ }
- X+
- X+
- X+ void
- X make_blinded(xtime, talk)
- X long xtime;
- X boolean talk;
- X***************
- X*** 168,173 ****
- X--- 182,188 ----
- X
- X otmp = getobj(beverages, "drink");
- X if(!otmp) return(0);
- X+ otmp->in_use = TRUE; /* you've opened the stopper */
- X if(objects[otmp->otyp].oc_descr && !strcmp(objects[otmp->otyp].oc_descr, "smoky") && !rn2(13)) {
- X ghost_from_bottle();
- X useup(otmp);
- X***************
- X*** 473,479 ****
- X /* they went up a level */
- X if(dlevel > 1 && dlevel <= MAXLEVEL) {
- X You("rise up, through the ceiling!");
- X! goto_level(dlevel-1, FALSE);
- X } else You("have an uneasy feeling.");
- X break;
- X }
- X--- 488,494 ----
- X /* they went up a level */
- X if(dlevel > 1 && dlevel <= MAXLEVEL) {
- X You("rise up, through the ceiling!");
- X! goto_level(dlevel-1, FALSE, FALSE);
- X } else You("have an uneasy feeling.");
- X break;
- X }
- X*** src/Old/pray.c Sun Oct 15 19:45:28 1989
- X--- src/pray.c Wed Oct 11 18:22:44 1989
- X***************
- X*** 655,661 ****
- X else { /* exactly one warning */
- X #ifdef ALTARS
- X pline("The voice of %s booms out: \"Thou hast angered me.\"",
- X! a_gname());
- X #else
- X pline("A voice booms out: \"Thou hast angered me.\"");
- X #endif
- X--- 655,661 ----
- X else { /* exactly one warning */
- X #ifdef ALTARS
- X pline("The voice of %s booms out: \"Thou hast angered me.\"",
- X! on_altar() ? a_gname() : u_gname());
- X #else
- X pline("A voice booms out: \"Thou hast angered me.\"");
- X #endif
- X***************
- X*** 721,726 ****
- X--- 721,729 ----
- X
- X if (otmp->corpsenm == PM_ACID_BLOB || (monstermoves <= otmp->age + 50))
- X value = monstr[otmp->corpsenm] + 1;
- X+ if (otmp->oeaten)
- X+ value =
- X+ value * otmp->owt / mons[otmp->corpsenm].cwt / otmp->quan;
- X
- X if (is_human(mtmp)) { /* Human sacrifice! */
- X #ifdef POLYSELF
- X*** src/Old/pri.c Sun Oct 15 19:46:09 1989
- X--- src/pri.c Sat Oct 14 22:41:37 1989
- X***************
- X*** 22,28 ****
- X #endif
- X
- X /* This is the same logic used for "#define IBMXASCII" in file "termcap.c" */
- X! #if !defined(AMIGA) && !defined(TOS)
- X # if defined(TERMLIB) || !(defined(DECRAINBOW) || defined(OS2))
- X # define g_putch (void) putchar
- X # endif
- X--- 22,28 ----
- X #endif
- X
- X /* This is the same logic used for "#define IBMXASCII" in file "termcap.c" */
- X! #if !defined(AMIGA)
- X # if defined(TERMLIB) || !(defined(DECRAINBOW) || defined(OS2))
- X # define g_putch (void) putchar
- X # endif
- X***************
- X*** 46,62 ****
- X--- 46,78 ----
- X if(first) cls();
- X else {
- X curs(u.ustuck->mdx-1, u.ustuck->mdy+1);
- X+ #ifdef MACOS
- X+ puts(" ");
- X+ #else
- X (void) fputs(" ", stdout);
- X+ #endif
- X curx = u.ustuck->mdx+2;
- X curs(u.ustuck->mdx-1, u.ustuck->mdy+2);
- X+ #ifdef MACOS
- X+ puts(" ");
- X+ #else
- X (void) fputs(" ", stdout);
- X+ #endif
- X curx = u.ustuck->mdx+2;
- X curs(u.ustuck->mdx-1, u.ustuck->mdy+3);
- X+ #ifdef MACOS
- X+ puts(" ");
- X+ #else
- X (void) fputs(" ", stdout);
- X+ #endif
- X curx = u.ustuck->mdx+2;
- X }
- X curs(u.ux-1, u.uy+1);
- X+ #ifdef MACOS
- X+ puts("/-\\");
- X+ #else
- X (void) fputs("/-\\", stdout);
- X+ #endif
- X curx = u.ux+2;
- X curs(u.ux-1, u.uy+2);
- X (void) putchar('|');
- X***************
- X*** 64,70 ****
- X--- 80,90 ----
- X (void) putchar('|');
- X curx = u.ux+2;
- X curs(u.ux-1, u.uy+3);
- X+ #ifdef MACOS
- X+ puts("\\-/");
- X+ #else
- X (void) fputs("\\-/", stdout);
- X+ #endif
- X curx = u.ux+2;
- X u.udispl = 1;
- X u.udisx = u.ux;
- X***************
- X*** 134,140 ****
- X }
- X
- X if (typ == AT_APP
- X! #ifndef MSDOS
- X && flags.standout
- X #endif
- X )
- X--- 154,160 ----
- X }
- X
- X if (typ == AT_APP
- X! #if !defined(MSDOS) && !defined(MACOS)
- X && flags.standout
- X #endif
- X )
- X***************
- X*** 220,225 ****
- X--- 240,249 ----
- X register int x,y;
- X register struct rm *room;
- X register struct monst *mtmp;
- X+ #ifdef MACOS
- X+ term_info *t;
- X+ extern WindowPtr HackWindow;
- X+ #endif
- X
- X if(u.uswallow) {
- X swallowed(1);
- X***************
- X*** 245,251 ****
- X mtmp->mdispl = 0;
- X seemons(); /* force new positions to be shown */
- X
- X! #if defined(DGK) && !defined(TEXTCOLOR)
- X /* Otherwise, line buffer the output to do the redraw in
- X * about 2/3 of the time.
- X */
- X--- 269,279 ----
- X mtmp->mdispl = 0;
- X seemons(); /* force new positions to be shown */
- X
- X! #if (defined(DGK) && !defined(TEXTCOLOR)) || defined(MACOS)
- X! # ifdef MACOS
- X! t = (term_info *)GetWRefCon(HackWindow);
- X! if (!t->inColor)
- X! # endif
- X /* Otherwise, line buffer the output to do the redraw in
- X * about 2/3 of the time.
- X */
- X***************
- X*** 252,262 ****
- X for(y = 0; y < ROWNO; y++) {
- X char buf[COLNO+1];
- X int start, end;
- X! #ifdef OLD_TOS
- X setmem(buf, COLNO, ' ');
- X! #else
- X memset(buf, ' ', COLNO);
- X! #endif /* OLD_TOS */
- X for(x = 0, start = -1, end = -1; x < COLNO; x++)
- X if((room = &levl[x][y])->new) {
- X room->new = 0;
- X--- 280,290 ----
- X for(y = 0; y < ROWNO; y++) {
- X char buf[COLNO+1];
- X int start, end;
- X! # if defined(OLD_TOS) || defined(LSC) || defined(AZTEC)
- X setmem(buf, COLNO, ' ');
- X! # else
- X memset(buf, ' ', COLNO);
- X! # endif /* OLD_TOS */
- X for(x = 0, start = -1, end = -1; x < COLNO; x++)
- X if((room = &levl[x][y])->new) {
- X room->new = 0;
- X***************
- X*** 273,283 ****
- X if (end >= 0) {
- X buf[end + 1] = '\0';
- X curs(start, y + 2);
- X (void) fputs(buf + start, stdout);
- X curx = end + 1;
- X }
- X }
- X! #else /* DGK && !TEXTCOLOR */
- X for(y = 0; y < ROWNO; y++)
- X for(x = 0; x < COLNO; x++)
- X if((room = &levl[x][y])->new) {
- X--- 301,326 ----
- X if (end >= 0) {
- X buf[end + 1] = '\0';
- X curs(start, y + 2);
- X+ # ifdef MACOS
- X+ puts(buf + start);
- X+ # else
- X (void) fputs(buf + start, stdout);
- X+ # endif
- X curx = end + 1;
- X }
- X }
- X! # ifdef MACOS
- X! else {
- X! for(y = 0; y < ROWNO; y++)
- X! for(x = 0; x < COLNO; x++)
- X! if((room = &levl[x][y])->new) {
- X! room->new = 0;
- X! at(x,y,room->scrsym,AT_APP);
- X! } else if(room->seen)
- X! at(x,y,room->scrsym,AT_APP);
- X! }
- X! # endif
- X! #else
- X for(y = 0; y < ROWNO; y++)
- X for(x = 0; x < COLNO; x++)
- X if((room = &levl[x][y])->new) {
- X***************
- X*** 846,852 ****
- X if(!*nb) {
- X if(*ob || flags.botlx) {
- X /* last char printed may be in middle of line */
- X! curs(strlen(newbot)+1,row);
- X cl_end();
- X }
- X break;
- X--- 889,895 ----
- X if(!*nb) {
- X if(*ob || flags.botlx) {
- X /* last char printed may be in middle of line */
- X! curs((int)strlen(newbot)+1,row);
- X cl_end();
- X }
- X break;
- X***************
- X*** 1089,1095 ****
- X {
- X
- X if (let == ' '
- X! #ifndef MSDOS
- X || !flags.standout
- X #endif
- X ) {
- X--- 1132,1138 ----
- X {
- X
- X if (let == ' '
- X! #if !defined(MSDOS) && !defined(MACOS)
- X || !flags.standout
- X #endif
- X ) {
- X***************
- X*** 1111,1153 ****
- X typ = AT_MON;
- X }
- X #ifdef TEXTCOLOR
- X! switch (typ) {
- X! case AT_MON:
- X! switch (let) {
- X! case S_MIMIC_DEF:
- X! typ = HI_OBJ;
- X! break;
- X! default:
- X! if (u.ux == x && u.uy == y)
- X! typ = uasmon->mcolor;
- X! else
- X! typ = level.monsters[x][y]->data->mcolor;
- X! }
- X! break;
- X! case AT_OBJ:
- X! if (let == GOLD_SYM)
- X! typ = HI_GOLD;
- X! else if (level.objects[x][y] &&
- X! let == objects[level.objects[x][y]->otyp].oc_olet)
- X! typ = objects[level.objects[x][y]->otyp].oc_color;
- X! else
- X! typ = mimic_color(let);
- X break;
- X! case AT_MAP:
- X #ifdef FOUNTAINS
- X! typ = ((let == POOL_SYM || let == FOUNTAIN_SYM)
- X! #else
- X! typ = (let == POOL_SYM
- X #endif
- X! && hilites[BLUE] != HI ? BLUE :
- X #ifdef THRONES
- X! let == THRONE_SYM && hilites[HI_GOLD] != HI ? HI_GOLD :
- X #endif
- X! 0);
- X! break;
- X! case AT_ZAP:
- X! typ = HI_ZAP;
- X! break;
- X }
- X if (typ && flags.use_color)
- X xputs(hilites[typ]);
- X--- 1154,1202 ----
- X typ = AT_MON;
- X }
- X #ifdef TEXTCOLOR
- X! if (flags.use_color) {
- X! switch (typ) {
- X! case AT_MON:
- X! switch (let) {
- X! case S_MIMIC_DEF:
- X! typ = HI_OBJ;
- X! break;
- X! default:
- X! if (u.ux == x && u.uy == y)
- X! typ = uasmon->mcolor;
- X! else
- X! typ = level.monsters[x][y]->data->mcolor;
- X! }
- X break;
- X! case AT_OBJ:
- X! if (let == GOLD_SYM)
- X! typ = HI_GOLD;
- X! else if (level.objects[x][y] &&
- X! let == objects[level.objects[x][y]->otyp].oc_olet)
- X! typ = objects[level.objects[x][y]->otyp].oc_color;
- X! else
- X! typ = mimic_color(let);
- X! break;
- X! case AT_MAP:
- X! if ( ((let == POOL_SYM && IS_POOL(levl[x][y].typ))
- X #ifdef FOUNTAINS
- X! || (let == FOUNTAIN_SYM && IS_FOUNTAIN(levl[x][y].typ))
- X #endif
- X! ) && hilites[BLUE] != HI)
- X!
- X! typ = BLUE;
- X #ifdef THRONES
- X! else if (let == THRONE_SYM && IS_THRONE(levl[x][y].typ)
- X! && hilites[HI_GOLD] != HI)
- X! typ = HI_GOLD;
- X #endif
- X! else
- X! typ = 0;
- X! break;
- X! case AT_ZAP:
- X! typ = HI_ZAP;
- X! break;
- X! }
- X }
- X if (typ && flags.use_color)
- X xputs(hilites[typ]);
- X
- END_OF_FILE
- if test 54469 -ne `wc -c <'patches05e'`; then
- echo shar: \"'patches05e'\" unpacked with wrong size!
- fi
- # end of 'patches05e'
- fi
- echo shar: End of archive 5 \(of 6\).
- cp /dev/null ark5isdone
- MISSING=""
- for I in 1 2 3 4 5 6 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 6 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-