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

📄 hack.h

📁 早期freebsd实现
💻 H
字号:
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. *//* hack.h - version 1.0.3 */#include "config.h"#include <string.h>#ifndef BSD#define	index	strchr#define	rindex	strrchr#endif BSD#define	Null(type)	((struct type *) 0)#include	"def.objclass.h"typedef struct {	xchar x,y;} coord;#include	"def.monst.h"	/* uses coord */#include	"def.gold.h"#include	"def.trap.h"#include	"def.obj.h"#include	"def.flag.h"#define	plur(x)	(((x) == 1) ? "" : "s")#define	BUFSZ	256	/* for getlin buffers */#define	PL_NSIZ	32	/* name of player, ghost, shopkeeper */#include	"def.rm.h"#include	"def.permonst.h"extern long *alloc();extern xchar xdnstair, ydnstair, xupstair, yupstair; /* stairs up and down. */extern xchar dlevel;#define	newstring(x)	(char *) alloc((unsigned)(x))#include "hack.onames.h"#define ON 1#define OFF 0extern struct obj *invent, *uwep, *uarm, *uarm2, *uarmh, *uarms, *uarmg, 	*uleft, *uright, *fcobj;extern struct obj *uchain;	/* defined iff PUNISHED */extern struct obj *uball;	/* defined if PUNISHED */struct obj *o_at(), *getobj(), *sobj_at();struct prop {#define	TIMEOUT		007777	/* mask */#define	LEFT_RING	W_RINGL	/* 010000L */#define	RIGHT_RING	W_RINGR	/* 020000L */#define	INTRINSIC	040000L#define	LEFT_SIDE	LEFT_RING#define	RIGHT_SIDE	RIGHT_RING#define	BOTH_SIDES	(LEFT_SIDE | RIGHT_SIDE)	long p_flgs;	int (*p_tofn)();	/* called after timeout */};struct you {	xchar ux, uy;	schar dx, dy, dz;	/* direction of move (or zap or ... ) */#ifdef QUEST	schar di;		/* direction of FF */	xchar ux0, uy0;		/* initial position FF */#endif QUEST	xchar udisx, udisy;	/* last display pos */	char usym;		/* usually '@' */	schar uluck;#define	LUCKMAX		10	/* on moonlit nights 11 */#define	LUCKMIN		(-10)	int last_str_turn:3;	/* 0: none, 1: half turn, 2: full turn */				/* +: turn right, -: turn left */	unsigned udispl:1;	/* @ on display */	unsigned ulevel:4;	/* 1 - 14 */#ifdef QUEST	unsigned uhorizon:7;#endif QUEST	unsigned utrap:3;	/* trap timeout */	unsigned utraptype:1;	/* defined if utrap nonzero */#define	TT_BEARTRAP	0#define	TT_PIT		1	unsigned uinshop:6;	/* used only in shk.c - (roomno+1) of shop *//* perhaps these #define's should also be generated by makedefs */#define	TELEPAT		LAST_RING		/* not a ring */#define	Telepat		u.uprops[TELEPAT].p_flgs#define	FAST		(LAST_RING+1)		/* not a ring */#define	Fast		u.uprops[FAST].p_flgs#define	CONFUSION	(LAST_RING+2)		/* not a ring */#define	Confusion	u.uprops[CONFUSION].p_flgs#define	INVIS		(LAST_RING+3)		/* not a ring */#define	Invis		u.uprops[INVIS].p_flgs#define Invisible	(Invis && !See_invisible)#define	GLIB		(LAST_RING+4)		/* not a ring */#define	Glib		u.uprops[GLIB].p_flgs#define	PUNISHED	(LAST_RING+5)		/* not a ring */#define	Punished	u.uprops[PUNISHED].p_flgs#define	SICK		(LAST_RING+6)		/* not a ring */#define	Sick		u.uprops[SICK].p_flgs#define	BLIND		(LAST_RING+7)		/* not a ring */#define	Blind		u.uprops[BLIND].p_flgs#define	WOUNDED_LEGS	(LAST_RING+8)		/* not a ring */#define Wounded_legs	u.uprops[WOUNDED_LEGS].p_flgs#define STONED		(LAST_RING+9)		/* not a ring */#define Stoned		u.uprops[STONED].p_flgs#define PROP(x) (x-RIN_ADORNMENT)       /* convert ring to index in uprops */	unsigned umconf:1;	char *usick_cause;	struct prop uprops[LAST_RING+10];	unsigned uswallow:1;		/* set if swallowed by a monster */	unsigned uswldtim:4;		/* time you have been swallowed */	unsigned uhs:3;			/* hunger state - see hack.eat.c */	schar ustr,ustrmax;	schar udaminc;	schar uac;	int uhp,uhpmax;	long int ugold,ugold0,uexp,urexp;	int uhunger;			/* refd only in eat.c and shk.c */	int uinvault;	struct monst *ustuck;	int nr_killed[CMNUM+2];		/* used for experience bookkeeping */};extern struct you u;extern char *traps[];extern char *monnam(), *Monnam(), *amonnam(), *Amonnam(),	*doname(), *aobjnam();extern char readchar();extern char vowels[];extern xchar curx,cury;	/* cursor location on screen */extern coord bhitpos;	/* place where thrown weapon falls to the ground */extern xchar seehx,seelx,seehy,seely; /* where to see*/extern char *save_cm,*killer;extern xchar dlevel, maxdlevel; /* dungeon level */extern long moves;extern int multi;extern char lock[];#define DIST(x1,y1,x2,y2)       (((x1)-(x2))*((x1)-(x2)) + ((y1)-(y2))*((y1)-(y2)))#define	PL_CSIZ		20	/* sizeof pl_character */#define	MAX_CARR_CAP	120	/* so that boulders can be heavier */#define	MAXLEVEL	40#define	FAR	(COLNO+2)	/* position outside screen */

⌨️ 快捷键说明

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