⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 header.h

📁 早期freebsd实现
💻 H
字号:
/*	header.h		Larn is copyrighted 1986 by Noah Morgan. */#define MAXLEVEL 11	/*	max # levels in the dungeon			*/#define MAXVLEVEL 3	/*	max # of levels in the temple of the luran	*/#define MAXX 67#define MAXY 17#define SCORESIZE 10	/*	this is the number of people on a scoreboard max */#define MAXPLEVEL 100	/*	maximum player level allowed		*/#define MAXMONST 56	/*	maximum # monsters in the dungeon	*/#define SPNUM 38	/*	maximum number of spells in existance	*/#define MAXSCROLL 28	/*	maximum number of scrolls that are possible	*/#define MAXPOTION 35	/*	maximum number of potions that are possible	*/#define TIMELIMIT 30000	/*	the maximum number of moves before the game is called */#define TAXRATE 1/20	/*	the tax rate for the LRS */#define MAXOBJ 93	/* the maximum number of objects   n < MAXOBJ *//*	this is the structure definition of the monster data	*/struct monst	{	char	*name;	char	level;	short	armorclass;	char	damage;	char	attack;	char	defense;	char	genocided;	char 	intelligence; /* monsters intelligence -- used to choose movement */	short	gold;	short	hitpoints;	unsigned long experience;	};/*	this is the structure definition for the items in the dnd store */struct _itm	{	short	price;	char	**mem;	char	obj;	char	arg;	char	qty;	};/*	this is the structure that holds the entire dungeon specifications	*/struct cel	{	short	hitp;	/*	monster's hit points	*/	char	mitem;	/*	the monster ID			*/	char	item;	/*	the object's ID			*/	short	iarg;	/*	the object's argument	*/	char	know;	/*	have we been here before*/	};/* this is the structure for maintaining & moving the spheres of annihilation */struct sphere	{	struct sphere *p;	/* pointer to next structure */	char x,y,lev;		/* location of the sphere */	char dir;			/* direction sphere is going in */	char lifetime;		/* duration of the sphere */	};/*	defines for the character attribute array	c[]	*/#define STRENGTH 0		/* characters physical strength not due to objects */#define INTELLIGENCE 1#define WISDOM 2#define CONSTITUTION 3#define DEXTERITY 4#define CHARISMA 5#define HPMAX 6#define HP 7#define GOLD 8#define EXPERIENCE 9#define LEVEL 10#define REGEN 11#define WCLASS 12#define AC 13#define BANKACCOUNT 14#define SPELLMAX 15#define SPELLS 16#define ENERGY 17#define ECOUNTER 18#define MOREDEFENSES 19#define WEAR 20#define PROTECTIONTIME 21#define WIELD 22#define AMULET 23#define REGENCOUNTER 24#define MOREDAM 25#define DEXCOUNT 26#define STRCOUNT 27#define BLINDCOUNT 28#define CAVELEVEL 29#define CONFUSE 30#define ALTPRO 31#define HERO 32#define CHARMCOUNT 33#define INVISIBILITY 34#define CANCELLATION 35#define HASTESELF 36#define EYEOFLARN 37#define AGGRAVATE 38#define GLOBE 39#define TELEFLAG 40#define SLAYING 41#define NEGATESPIRIT 42#define SCAREMONST 43#define AWARENESS 44#define HOLDMONST 45#define TIMESTOP 46#define HASTEMONST 47#define CUBEofUNDEAD 48#define GIANTSTR 49#define FIRERESISTANCE 50#define BESSMANN 51#define NOTHEFT 52#define HARDGAME 53#define CPUTIME 54#define BYTESIN 55#define BYTESOUT 56#define MOVESMADE 57#define MONSTKILLED 58#define SPELLSCAST 59#define LANCEDEATH 60#define SPIRITPRO 61#define UNDEADPRO 62#define SHIELD 63#define STEALTH 64#define ITCHING 65#define LAUGHING 66#define DRAINSTRENGTH 67#define CLUMSINESS 68#define INFEEBLEMENT 69#define HALFDAM 70#define SEEINVISIBLE 71#define FILLROOM 72#define RANDOMWALK 73#define SPHCAST 74	/* nz if an active sphere of annihilation */#define WTW 75		/* walk through walls */#define STREXTRA 76	/* character strength due to objects or enchantments */#define TMP 77	/* misc scratch space */#define LIFEPROT 78 /* life protection counter *//*	defines for the objects in the game		*/#define OALTAR 1#define OTHRONE 2#define OORB 3#define OPIT 4#define OSTAIRSUP 5#define OELEVATORUP 6#define OFOUNTAIN 7#define OSTATUE 8#define OTELEPORTER 9#define OSCHOOL 10#define OMIRROR 11#define ODNDSTORE 12#define OSTAIRSDOWN 13#define OELEVATORDOWN 14#define OBANK2 15#define OBANK 16#define ODEADFOUNTAIN 17#define OMAXGOLD 70#define OGOLDPILE 18#define OOPENDOOR 19#define OCLOSEDDOOR 20#define OWALL 21#define OTRAPARROW 66#define OTRAPARROWIV 67#define OLARNEYE 22#define OPLATE 23#define OCHAIN 24#define OLEATHER 25#define ORING 60#define OSTUDLEATHER 61#define OSPLINT 62#define OPLATEARMOR 63#define OSSPLATE 64#define OSHIELD 68#define OELVENCHAIN 92#define OSWORDofSLASHING 26#define OHAMMER 27#define OSWORD 28#define O2SWORD 29#define OSPEAR 30#define ODAGGER 31#define OBATTLEAXE 57#define OLONGSWORD 58#define OFLAIL 59#define OLANCE 65#define OVORPAL 90#define OSLAYER 91#define ORINGOFEXTRA 32#define OREGENRING 33#define OPROTRING 34#define OENERGYRING 35#define ODEXRING 36#define OSTRRING 37#define OCLEVERRING 38#define ODAMRING 39#define OBELT 40#define OSCROLL 41#define OPOTION 42#define OBOOK 43#define OCHEST 44             #define OAMULET 45#define OORBOFDRAGON 46#define OSPIRITSCARAB 47#define OCUBEofUNDEAD 48#define ONOTHEFT 49#define ODIAMOND 50#define ORUBY 51#define OEMERALD 52#define OSAPPHIRE 53#define OENTRANCE 54#define OVOLDOWN 55#define OVOLUP 56#define OHOME 69#define OKGOLD 71#define ODGOLD 72#define OIVDARTRAP 73#define ODARTRAP 74#define OTRAPDOOR 75#define OIVTRAPDOOR 76#define OTRADEPOST 77#define OIVTELETRAP 78#define ODEADTHRONE 79#define OANNIHILATION 80		/* sphere of annihilation */#define OTHRONE2 81#define OLRS 82				/* Larn Revenue Service */#define OCOOKIE 83#define OURN 84#define OBRASSLAMP 85#define OHANDofFEAR 86		/* hand of fear */#define OSPHTAILSMAN 87		/* tailsman of the sphere */#define OWWAND 88			/* wand of wonder */#define OPSTAFF 89			/* staff of power *//* used up to 92 *//*	defines for the monsters as objects		*/#define BAT 1 #define GNOME 2 #define HOBGOBLIN 3 #define JACKAL 4 #define KOBOLD 5 #define ORC 6 #define SNAKE 7#define CENTIPEDE 8#define JACULI 9 #define TROGLODYTE 10 #define ANT 11 #define EYE 12 #define LEPRECHAUN 13#define NYMPH 14 #define QUASIT 15 #define RUSTMONSTER 16 #define ZOMBIE 17 #define ASSASSINBUG 18 #define BUGBEAR 19 #define HELLHOUND 20 #define ICELIZARD 21 #define CENTAUR 22 #define TROLL 23 #define YETI 24 #define WHITEDRAGON 25 #define ELF 26 #define CUBE 27 #define METAMORPH 28 #define VORTEX 29 #define ZILLER 30 #define VIOLETFUNGI 31 #define WRAITH 32 #define FORVALAKA 33 #define LAMANOBE 34 #define OSEQUIP 35 #define ROTHE 36 #define XORN 37 #define VAMPIRE 38 #define INVISIBLESTALKER 39 #define POLTERGEIST 40 #define DISENCHANTRESS 41 #define SHAMBLINGMOUND 42 #define YELLOWMOLD 43#define UMBERHULK 44#define GNOMEKING 45#define MIMIC 46#define WATERLORD 47#define BRONZEDRAGON 48#define GREENDRAGON 49#define PURPLEWORM 50#define XVART 51#define SPIRITNAGA 52#define SILVERDRAGON 53#define PLATINUMDRAGON 54#define GREENURCHIN 55#define REDDRAGON 56#define DEMONLORD 57#define DEMONPRINCE 64#define NULL 0#define BUFBIG	4096			/* size of the output buffer */#define MAXIBUF	4096			/* size of the input buffer */#define LOGNAMESIZE 40			/* max size of the players name */#define PSNAMESIZE 40			/* max size of the process name */#ifndef NODEFSextern char VERSION,SUBVERSION;extern char aborted[],alpha[],beenhere[],boldon,cheat,ckpfile[],ckpflag;extern char *class[],course[],diagfile[],fortfile[],helpfile[];extern char *inbuffer,is_alpha[],is_digit[];extern char item[MAXX][MAXY],iven[],know[MAXX][MAXY],larnlevels[],lastmonst[];extern char level,*levelname[],logfile[],loginname[],logname[],*lpbuf,*lpend;extern char *lpnt,moved[MAXX][MAXY],mitem[MAXX][MAXY],monstlevel[];extern char monstnamelist[],nch[],ndgg[],nlpts[],nomove,nosignal,nowelcome;extern char nplt[],nsw[],*objectname[];extern char objnamelist[],optsfile[],*potionname[],playerids[],potprob[];extern char predostuff,psname[],restorflag,savefilename[],scorefile[],scprob[];extern char screen[MAXX][MAXY],*scrollname[],sex,*spelcode[],*speldescript[];extern char spelknow[],*spelname[],*spelmes[],spelweird[MAXMONST+8][SPNUM];extern char splev[],stealth[MAXX][MAXY],to_lower[],to_upper[],wizard;extern short diroffx[],diroffy[],hitflag,hit2flag,hit3flag,hitp[MAXX][MAXY];extern short iarg[MAXX][MAXY],ivenarg[],lasthx,lasthy,lastnum,lastpx,lastpy;extern short nobeep,oldx,oldy,playerx,playery;extern int dayplay,enable_scroll,srcount,yrepcount,userid,wisid,lfd,fd;extern long initialtime,outstanding_taxes,skill[],gtime,c[],cbak[];extern unsigned long randx;extern struct cel *cell;extern struct monst monster[];extern struct sphere *spheres;extern struct _itm itm[];char *fortune(),*getenv(),*getlogin(),*lgetw(),*lgetl(),*ctime();char *tmcapcnv(),*tgetstr(),*tgoto();long paytaxes(),lgetc(),lrint(),time();unsigned long readnum();void *malloc();	/* macro to create scroll #'s with probability of occurrence */#define newscroll() (scprob[rund(81)])	/* macro to return a potion # created with probability of occurrence */#define newpotion() (potprob[rund(41)])	/* macro to return the + points on created leather armor */#define newleather() (nlpts[rund(c[HARDGAME]?13:15)])	/* macro to return the + points on chain armor */#define newchain() (nch[rund(10)])	/* macro to return + points on plate armor */#define newplate() (nplt[rund(c[HARDGAME]?4:12)])	/* macro to return + points on new daggers */#define newdagger() (ndgg[rund(13)])	/* macro to return + points on new swords */#define newsword() (nsw[rund(c[HARDGAME]?6:13)])	/* macro to destroy object at present location */#define forget() (item[playerx][playery]=know[playerx][playery]=0)	/* macro to wipe out a monster at a location */#define disappear(x,y) (mitem[x][y]=know[x][y]=0)#ifdef VT100	/* macro to turn on bold display for the terminal */#define setbold() (lprcat(boldon?"\33[1m":"\33[7m"))	/* macro to turn off bold display for the terminal */#define resetbold() (lprcat("\33[m"))	/* macro to setup the scrolling region for the terminal */#define setscroll() (lprcat("\33[20;24r"))	/* macro to clear the scrolling region for the terminal */#define resetscroll() (lprcat("\33[;24r"))	/* macro to clear the screen and home the cursor */#define clear() (lprcat("\33[2J\33[f"), cbak[SPELLS]= -50)#define cltoeoln() lprcat("\33[K")#else VT100	/* defines below are for use in the termcap mode only */#define ST_START 1#define ST_END   2#define BOLD     3#define END_BOLD 4#define CLEAR    5#define CL_LINE  6#define CL_DOWN 14#define CURSOR  15	/* macro to turn on bold display for the terminal */#define setbold() (*lpnt++ = ST_START)	/* macro to turn off bold display for the terminal */#define resetbold() (*lpnt++ = ST_END)	/* macro to setup the scrolling region for the terminal */#define setscroll() enable_scroll=1	/* macro to clear the scrolling region for the terminal */#define resetscroll() enable_scroll=0	/* macro to clear the screen and home the cursor */#define clear() (*lpnt++ =CLEAR, cbak[SPELLS]= -50)	/* macro to clear to end of line */#define cltoeoln() (*lpnt++ = CL_LINE)#endif VT100	/* macro to output one byte to the output buffer */#define lprc(ch) ((lpnt>=lpend)?(*lpnt++ =(ch), lflush()):(*lpnt++ =(ch)))	/* macro to seed the random number generator */#define srand(x) (randx=x)#ifdef MACRORND	/* macros to generate random numbers   1<=rnd(N)<=N   0<=rund(N)<=N-1 */#define rnd(x)  ((((randx=randx*1103515245+12345)>>7)%(x))+1)#define rund(x) ((((randx=randx*1103515245+12345)>>7)%(x))  )#endif MACRORND	/* macros for miscellaneous data conversion */#define min(x,y) (((x)>(y))?(y):(x))#define max(x,y) (((x)>(y))?(x):(y))#define isalpha(x) (is_alpha[x])#define isdigit(x) (is_digit[x])#define tolower(x) (to_lower[x])#define toupper(x) (to_upper[x])#define lcc(x) (to_lower[x])#define ucc(x) (to_upper[x])#endif NODEFS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -