X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/77e3814f0c0e3dea4d0032e25666f77e6f83bfff..a53a36daca29fbcfba1da1f2e0c4f0c8e9cef879:/larn/data.c diff --git a/larn/data.c b/larn/data.c index a8739bab..4f359940 100644 --- a/larn/data.c +++ b/larn/data.c @@ -1,3 +1,5 @@ +/* $NetBSD: data.c,v 1.13 2008/02/03 20:11:04 dholland Exp $ */ + /*- * Copyright (c) 1988 The Regents of the University of California. * All rights reserved. @@ -10,11 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -31,61 +29,68 @@ * SUCH DAMAGE. */ +#include #ifndef lint -static char sccsid[] = "@(#)data.c 5.3 (Berkeley) 5/13/91"; +#if 0 +static char sccsid[] = "@(#)data.c 5.3 (Berkeley) 5/13/91"; +#else +__RCSID("$NetBSD: data.c,v 1.13 2008/02/03 20:11:04 dholland Exp $"); +#endif #endif /* not lint */ -/* data.c Larn is copyrighted 1986 by Noah Morgan. */ -#define NODEFS +/* data.c Larn is copyrighted 1986 by Noah Morgan. */ +/* #define NODEFS */ #include "header.h" +#include "extern.h" /* class[c[LEVEL]-1] gives the correct name of the players experience level */ -static char aa1[] = " mighty evil master"; -static char aa2[] = "apprentice demi-god"; -static char aa3[] = " minor demi-god "; -static char aa4[] = " major demi-god "; -static char aa5[] = " minor deity "; -static char aa6[] = " major deity "; -static char aa7[] = " novice guardian "; -static char aa8[] = "apprentice guardian"; -static char aa9[] = " The Creator "; -char *class[]= -{ " novice explorer ", "apprentice explorer", " practiced explorer",/* -3*/ - " expert explorer ", " novice adventurer", " adventurer ",/* -6*/ - "apprentice conjurer", " conjurer ", " master conjurer ",/* -9*/ - " apprentice mage ", " mage ", " experienced mage ",/* -12*/ - " master mage ", " apprentice warlord", " novice warlord ",/* -15*/ - " expert warlord ", " master warlord ", " apprentice gorgon ",/* -18*/ - " gorgon ", " practiced gorgon ", " master gorgon ",/* -21*/ - " demi-gorgon ", " evil master ", " great evil master ",/* -24*/ - aa1 , aa1 , aa1 ,/* -27*/ - aa1 , aa1 , aa1 ,/* -30*/ - aa1 , aa1 , aa1 ,/* -33*/ - aa1 , aa1 , aa1 ,/* -36*/ - aa1 , aa1 , aa1 ,/* -39*/ - aa2 , aa2 , aa2 ,/* -42*/ - aa2 , aa2 , aa2 ,/* -45*/ - aa2 , aa2 , aa2 ,/* -48*/ - aa3 , aa3 , aa3 ,/* -51*/ - aa3 , aa3 , aa3 ,/* -54*/ - aa3 , aa3 , aa3 ,/* -57*/ - aa4 , aa4 , aa4 ,/* -60*/ - aa4 , aa4 , aa4 ,/* -63*/ - aa4 , aa4 , aa4 ,/* -66*/ - aa5 , aa5 , aa5 ,/* -69*/ - aa5 , aa5 , aa5 ,/* -72*/ - aa5 , aa5 , aa5 ,/* -75*/ - aa6 , aa6 , aa6 ,/* -78*/ - aa6 , aa6 , aa6 ,/* -81*/ - aa6 , aa6 , aa6 ,/* -84*/ - aa7 , aa7 , aa7 ,/* -87*/ - aa8 , aa8 , aa8 ,/* -90*/ - aa8 , aa8 , aa8 ,/* -93*/ - " earth guardian ", " air guardian ", " fire guardian ",/* -96*/ - " water guardian ", " time guardian ", " ethereal guardian ",/* -99*/ - aa9 , aa9 , aa9 ,/* -102*/ +static char aa1[] = " mighty evil master"; +static char aa2[] = "apprentice demi-god"; +static char aa3[] = " minor demi-god "; +static char aa4[] = " major demi-god "; +static char aa5[] = " minor deity "; +static char aa6[] = " major deity "; +static char aa7[] = " novice guardian "; +static char aa8[] = "apprentice guardian"; +static char aa9[] = " The Creator "; +const char *class[] = +{ + " novice explorer ", "apprentice explorer", " practiced explorer", /* -3 */ + " expert explorer ", " novice adventurer", " adventurer ", /* -6 */ + "apprentice conjurer", " conjurer ", " master conjurer ", /* -9 */ + " apprentice mage ", " mage ", " experienced mage ", /* -12 */ + " master mage ", " apprentice warlord", " novice warlord ", /* -15 */ + " expert warlord ", " master warlord ", " apprentice gorgon ", /* -18 */ + " gorgon ", " practiced gorgon ", " master gorgon ", /* -21 */ + " demi-gorgon ", " evil master ", " great evil master ", /* -24 */ + aa1, aa1, aa1, /* -27 */ + aa1, aa1, aa1, /* -30 */ + aa1, aa1, aa1, /* -33 */ + aa1, aa1, aa1, /* -36 */ + aa1, aa1, aa1, /* -39 */ + aa2, aa2, aa2, /* -42 */ + aa2, aa2, aa2, /* -45 */ + aa2, aa2, aa2, /* -48 */ + aa3, aa3, aa3, /* -51 */ + aa3, aa3, aa3, /* -54 */ + aa3, aa3, aa3, /* -57 */ + aa4, aa4, aa4, /* -60 */ + aa4, aa4, aa4, /* -63 */ + aa4, aa4, aa4, /* -66 */ + aa5, aa5, aa5, /* -69 */ + aa5, aa5, aa5, /* -72 */ + aa5, aa5, aa5, /* -75 */ + aa6, aa6, aa6, /* -78 */ + aa6, aa6, aa6, /* -81 */ + aa6, aa6, aa6, /* -84 */ + aa7, aa7, aa7, /* -87 */ + aa8, aa8, aa8, /* -90 */ + aa8, aa8, aa8, /* -93 */ + " earth guardian ", " air guardian ", " fire guardian ", /* -96 */ + " water guardian ", " time guardian ", " ethereal guardian ", /* -99 */ + aa9, aa9, aa9, /* -102 */ }; /* @@ -93,356 +98,397 @@ char *class[]= skill[c[LEVEL]] is the experience required to attain the next level */ #define MEG 1000000 -long skill[] = { -0, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, /* 1-11 */ -10240, 20480, 40960, 100000, 200000, 400000, 700000, 1*MEG, /* 12-19 */ -2*MEG,3*MEG,4*MEG,5*MEG,6*MEG,8*MEG,10*MEG, /* 20-26 */ -12*MEG,14*MEG,16*MEG,18*MEG,20*MEG,22*MEG,24*MEG,26*MEG,28*MEG, /* 27-35 */ -30*MEG,32*MEG,34*MEG,36*MEG,38*MEG,40*MEG,42*MEG,44*MEG,46*MEG, /* 36-44 */ -48*MEG,50*MEG,52*MEG,54*MEG,56*MEG,58*MEG,60*MEG,62*MEG,64*MEG, /* 45-53 */ -66*MEG,68*MEG,70*MEG,72*MEG,74*MEG,76*MEG,78*MEG,80*MEG,82*MEG, /* 54-62 */ -84*MEG,86*MEG,88*MEG,90*MEG,92*MEG,94*MEG,96*MEG,98*MEG,100*MEG, /* 63-71 */ -105*MEG,110*MEG,115*MEG,120*MEG, 125*MEG, 130*MEG, 135*MEG, 140*MEG, /* 72-79 */ -145*MEG,150*MEG,155*MEG,160*MEG, 165*MEG, 170*MEG, 175*MEG, 180*MEG, /* 80-87 */ -185*MEG,190*MEG,195*MEG,200*MEG, 210*MEG, 220*MEG, 230*MEG, 240*MEG, /* 88-95 */ -250*MEG,260*MEG,270*MEG,280*MEG, 290*MEG, 300*MEG /* 96-101*/ +long skill[] = { + 0, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, /* 1-11 */ + 10240, 20480, 40960, 100000, 200000, 400000, 700000, 1 * MEG, /* 12-19 */ + 2 * MEG, 3 * MEG, 4 * MEG, 5 * MEG, 6 * MEG, 8 * MEG, 10 * MEG, /* 20-26 */ + 12 * MEG, 14 * MEG, 16 * MEG, 18 * MEG, 20 * MEG, 22 * MEG, 24 * MEG, 26 * MEG, 28 * MEG, /* 27-35 */ + 30 * MEG, 32 * MEG, 34 * MEG, 36 * MEG, 38 * MEG, 40 * MEG, 42 * MEG, 44 * MEG, 46 * MEG, /* 36-44 */ + 48 * MEG, 50 * MEG, 52 * MEG, 54 * MEG, 56 * MEG, 58 * MEG, 60 * MEG, 62 * MEG, 64 * MEG, /* 45-53 */ + 66 * MEG, 68 * MEG, 70 * MEG, 72 * MEG, 74 * MEG, 76 * MEG, 78 * MEG, 80 * MEG, 82 * MEG, /* 54-62 */ + 84 * MEG, 86 * MEG, 88 * MEG, 90 * MEG, 92 * MEG, 94 * MEG, 96 * MEG, 98 * MEG, 100 * MEG, /* 63-71 */ + 105 * MEG, 110 * MEG, 115 * MEG, 120 * MEG, 125 * MEG, 130 * MEG, 135 * MEG, 140 * MEG, /* 72-79 */ + 145 * MEG, 150 * MEG, 155 * MEG, 160 * MEG, 165 * MEG, 170 * MEG, 175 * MEG, 180 * MEG, /* 80-87 */ + 185 * MEG, 190 * MEG, 195 * MEG, 200 * MEG, 210 * MEG, 220 * MEG, 230 * MEG, 240 * MEG, /* 88-95 */ + 250 * MEG, 260 * MEG, 270 * MEG, 280 * MEG, 290 * MEG, 300 * MEG /* 96-101 */ }; #undef MEG -char *lpbuf,*lpnt,*inbuffer,*lpend; /* input/output pointers to the buffers */ -struct cel *cell; /* pointer to the dungeon storage */ -short hitp[MAXX][MAXY]; /* monster hp on level */ -short iarg[MAXX][MAXY]; /* arg for the item array */ -char item[MAXX][MAXY]; /* objects in maze if any */ -char know[MAXX][MAXY]; /* 1 or 0 if here before */ -char mitem[MAXX][MAXY]; /* monster item array */ -char moved[MAXX][MAXY]; /* monster movement flags */ -char stealth[MAXX][MAXY]; /* 0=sleeping 1=awake monst*/ -char iven[26]; /* inventory for player */ -short ivenarg[26]; /* inventory for player */ -char lastmonst[40]; /* this has the name of the current monster */ -char beenhere[MAXLEVEL+MAXVLEVEL]={0}; /* 1 if have been on this level */ -char VERSION=VER; /* this is the present version # of the program */ -char SUBVERSION=SUBVER; -char nosignal=0; /* set to 1 to disable the signals from doing anything */ -char predostuff=0; /* 2 means that the trap handling routines must do a - showplayer() after a trap. 0 means don't showplayer() - 0 - we are in create player screen - 1 - we are in welcome screen - 2 - we are in the normal game */ -char loginname[20]; /* players login name */ -char logname[LOGNAMESIZE]; /* players name storage for scoring */ -char sex=1; /* default is a man 0=woman */ -char boldon=1; /* 1=bold objects 0=inverse objects */ -char ckpflag=0; /* 1 if want checkpointing of game, 0 otherwise */ -char cheat=0; /* 1 if the player has fudged save file */ -char level=0; /* cavelevel player is on = c[CAVELEVEL] */ -char wizard=0; /* the wizard mode flag */ -short lastnum=0; /* the number of the monster last hitting player */ -short hitflag=0; /* flag for if player has been hit when running */ -short hit2flag=0; /* flag for if player has been hit when running */ -short hit3flag=0; /* flag for if player has been hit flush input */ -short playerx,playery; /* the room on the present level of the player */ -short lastpx,lastpy; /* 0 --- MAXX-1 or 0 --- MAXY-1 */ -short oldx,oldy; -short lasthx=0,lasthy=0; /* location of monster last hit by player */ -short nobeep=0; /* true if program is not to beep */ -unsigned long randx=33601; /* the random number seed */ -long initialtime=0; /* time playing began */ -long gtime=0; /* the clock for the game */ -long outstanding_taxes=0; /* present tax bill from score file */ -long c[100],cbak[100]; /* the character description arrays */ -int enable_scroll=0; /* constant for enabled/disabled scrolling regn */ -char aborted[] = " aborted"; -struct sphere *spheres=0; /*pointer to linked list for spheres of annihilation*/ -char *levelname[]= -{ " H"," 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9","10","V1","V2","V3" }; - -char objnamelist[]=" ATOP%^F&^+M=%^$$f*OD#~][[)))(((||||||||{?!BC}o:@.<<<