|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T k
Length: 10311 (0x2847) Types: TextFile Names: »kernel.h«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Abermud/kernel.h«
/* ** AberMUD 4.0 ** Kernel definitions ** (C) 1988 Alan Cox. All Rights Reserved. ** ** Extensive UNIX mods by Rich $alz. ** $Header: kernel.h,v 1.1 89/03/13 09:36:28 rsalz Exp $ */ #include <stdio.h> #include <ctype.h> #include <sys/types.h> /* ** A block of config parameters. Edit to your heart's content. */ #undef HOST_MACHINE "ms" /* Only play on one machine? */ #define MAXUSERS 16 /* Max simultaneous users, don't touch! */ #undef CHECK /* Time check? */ #undef SCREWQUOTA /* Try to ignore quotas, hee hee. */ #undef LOWMEM /* Remove features for small machiens */ #define IO_INTER 3 /* How often to scan for updates */ #define GUESTID 12 /* UID of guest player */ #define KICKOFFGUEST 8 /* Opt.; what hour to kick guests off */ #define HIDEOURNAME /* Try not to show up in ps(1)? */ #define BSD_WAIT /* Have the BSD-style wait call? */ #define USE_MACROS /* Macros instead of some functions */ #define UNVEIL_PASS "fish" #undef SHELLESC /* allow shell escapes for the prvllgd */ #define MASTERUSER "Root" /* Name of the MASTER character */ #define PRIV1 "root" /* Login names of people who can edit */ #define PRIV2 ":" /* the AberMUD password file */ #define PRIV3 ":" #define PRIV4 ":" #define PRIV5 ":" #undef time_t long /* If you don't have it in sys/types.h */ #undef off_t long /* If you don't have it in sys/types.h */ /* ** Right now, assume 32-bit integers. They should be parameterized to ** a datatype, but the scanf calls in bootstrap.c will need work. */ typedef int WORD; /* ** All paths are relative to the GAME_DIR. If you change anything ** here, you will also have to change the Makefile. */ #define GAME_DIR "/usr2/abermud" #define BAN_FILE "DATAFILES/banned_file" #define BOOTSTRAP "DATAFILES/bootstrap" /* Points to text files */ #define CREDITS "DATAFILES/credits" #define EXAMINES "EXAMINES/" #define EXE "mudprog" #define EXE2 "mud" #define GODFILE "DATAFILES/godfile" #define GWIZ "DATAFILES/gwiz" #define HELP1 "DATAFILES/help1" #define HELP2 "DATAFILES/help2" #define HELP3 "DATAFILES/help3" #define LEVELS "DATAFILES/level.txt" #define LEVEL_FILE "DATAFILES/levels" #define LEV_PRM "DATAFILES/promptlist" #define LOG_FILE "DATAFILES/mud_syslog" #define MOTD "DATAFILES/gmotd2" /* Message of the day */ #define NOLOGIN "DATAFILES/nologin" /* If exists, no logins */ #define PASSWORDFILE "DATAFILES/user_file" /* Password file */ #define PASSTEMP "DATAFILES/user_file.b" /* Temp password file */ #define RESET_DATA "DATAFILES/reset_data" #define RESET_N "DATAFILES/reset_n" #define SNOOPFILE "SNOOP/" #define UAF_RAND "DATAFILES/uaf.rand" #define UNIVERSE "DATAFILES/world_file" /* Game working image block */ #define WIZLIST "DATAFILES/wiz.list" /* ** END OF CONFIGURATION; EDIT NO MORE */ /* \f */ #ifndef HIDEOURNAME #define GAMENAME "a.out " #else #define GAMENAME " --}----- ABERMUD -----{-- " #endif /* HIDEOURNAME */ #ifdef BSD_WAIT #include <sys/wait.h> typedef union wait WAITER; #else typedef int WAITER; #endif /* BSD_WAIT */ #define NEW(t, c) (t *)xmalloc((c) * sizeof (t)) #define COPY(s) strcpy(NEW(char, strlen(s) + 1), s) #define EMPTY(p) (*(p) == '\0') #define EQ(a, b) (strcmp((a), (b)) == 0) #ifdef USE_MACROS #define setpscore(C, V) (ublock[16 * (C) + 15] = (V)) #define pscore(C) (ublock[16 * (C) + 15]) #define pfighting(C) (ublock[16 * (C) + 14]) #define setphelping(C, V) (ublock[16 * (C) + 13] = (V)) #define phelping(C) (ublock[16 * (C) + 13]) #define setpwpn(C, V) (ublock[16 * (C) + 11] = (V)) #define pwpn(C) (ublock[16 * (C) + 11]) #define setplev(C, V) (ublock[16 * (C) + 10] = (V)) #define plev(C) (ublock[16 * (C) + 10]) #define pclrflg(C, V) (ublock[16 * (C) + 9] &= ~(1 << (V))) #define psetflg(C, V) (ublock[16 * (C) + 9] |= (1 << (V))) #define psexall(C) (ublock[16 * (C) + 9]) #define setpsexall(C, V) (ublock[16 * (C) + 9] = (V)) #define psex(C) (ublock[16 * (C) + 9] & 1) #define setpvis(C, V) (ublock[16 * (C) + 8] = (V)) #define pvis(C) (ublock[16 * (C) + 8]) #define setpstr(C, V) (ublock[16 * (C) + 7] = (V)) #define pstr(C) (ublock[16 * (C) + 7]) #define setppos(C, V) (ublock[16 * (C) + 5] = (V)) #define ppos(C) (ublock[16 * (C) + 5]) #define setploc(C, V) (ublock[16 * (C) + 4] = (V)) #define ploc(C) (ublock[16 * (C) + 4]) #define obyte(O, V) (byte_fetch(objinfo[4 * (O) + 2], (V))) #define osetbyte(O, x, y) (byte_put(&objinfo[4 * (O) + 2], x, y)) #define otstbit(O, V) (bit_fetch(objinfo[4 * (O) + 2], (V))) #define oclrbit(O, V) (bit_clear(&objinfo[4 * (O) + 2], (V))) #define osetbit(O, V) (bit_set(&objinfo[4 * (O) + 2], (V))) #define oloc(O) (objinfo[4 * (O)]) #define ocarrf(O) (objinfo[4 * (O) + 3]) #define oname(O) (objects[O].o_name) #define olongt(O, V) (objects[O].o_desc[V]) #define omaxstate(O) (objects[O].o_maxstate) #define oaltname(O) (objects[O].o_altname) #define osize(O) (objects[O].o_size) #define oflannel(O) (objects[O].o_flannel) #define obaseval(O) (objects[O].o_value) #endif /* USE_MACROS */ typedef struct _LEVEL { int level; char f_name[50]; char m_name[50]; } LEVEL; typedef struct _CONDITION { short cnd_code; short cnd_data; } CONDITION; typedef struct _LINE { short verb; short item1; short item2; CONDITION conditions[6]; short actions[4]; } LINE; typedef struct _TABLE { char *t_name; int t_code; } TABLE; typedef struct _PERSONA { char p_name[16]; int p_score; int p_strength; int p_sex; int p_level; } PERSONA; typedef struct _LOCDATA { int r_code; int r_exit[6]; char *r_short; char *r_long; } LOCDATA; typedef struct _OBJECT { char *o_name; char *o_desc[4]; int o_maxstate; int o_value; int o_flannel; char *o_altname; short o_size; short o_weight; } OBJECT; typedef struct _PLAYER { char *p_name; int p_loc; int p_str; int p_sex; int p_lev; } PLAYER; typedef struct _ZONE { char *z_name; int z_loc; } ZONE; /* ** From your C run-time library. */ extern int errno; extern time_t time(); extern char *crypt(); extern char *ctime(); extern char *getenv(); extern char *getpass(); extern char *malloc(); extern char *strcat(); extern char *strchr(); extern char *strcpy(); extern char *strncpy(); /* Maybe not on your system, but yes on my BSD system... */ extern char *sprintf(); /* ** Declarations of external routines. */ extern FILE *openlock(); extern FILE *openroom(); extern FILE *opensnoop(); extern FILE *openuaf(); extern FILE *openworld(); extern char *getstr(); extern char *ldesc(); extern char *lowercase(); #ifndef USE_MACROS extern char *oaltname(); extern char *olongt(); extern char *oname(); #endif /* USE_MACROS */ extern char *pname(); extern char *sdesc(); extern char *trim(); extern char *uppercase(); extern int *xmalloc(); extern int sig_ctrlc(); extern int sig_occur(); extern int sig_oops(); /* ** Global data. ** Data is declared everywhere, lives oncewhere. Note the difference ** bewteen EXTERN and extern; "extern" data is initialized in main, ** EXTERN data is in BSS area, and thus set to (the right kind of) zero. */ #ifdef DATA_DEF #define EXTERN /* NULL */ #else #define EXTERN extern #endif /* DATA_DEF */ EXTERN FILE *filrf; /* NULL if not open */ EXTERN FILE *fl_com; EXTERN FILE *log_fl; /* NULL if no logging */ EXTERN LINE event[]; EXTERN LINE inter[]; EXTERN LINE status[]; EXTERN LOCDATA *room_data; EXTERN OBJECT *objects; EXTERN PLAYER *pinit; EXTERN ZONE *zoname; EXTERN char **messages; EXTERN char **pftxt; /* Mobile text table */ EXTERN char **verbtxt; extern char *dirns[6]; EXTERN char *localname; EXTERN char *sysbuf; extern char *txt1; extern char *txt2; EXTERN char acfor[128]; EXTERN char globme[40]; /* Your name */ extern char in_ms[81]; EXTERN char item1[128]; EXTERN char item2[128]; EXTERN char key_buff[256]; extern char min_ms[81]; extern char mout_ms[81]; EXTERN char out_ms[81]; extern char prm_str[128]; EXTERN char shimge[640]; EXTERN char sntn[32]; EXTERN char strbuf[128]; extern char wd_her[16]; extern char wd_him[16]; extern char wd_it[64]; extern char wd_th2[64]; extern char wd_them[16]; extern char wd_there[128]; extern char wordbuf[128]; EXTERN short globaldata[256]; /* System database flags, user data */ EXTERN short parameters[6]; /* Parameter store for PAR */ EXTERN int *objinfo; EXTERN int *verbnum; EXTERN int ades; EXTERN int ail_blind; /* User ailments; should be in pflags */ EXTERN int ail_crip; /* to allow mobiles to be blinded etc */ EXTERN int ail_deaf; EXTERN int ail_dumb; EXTERN int aliased; /* Are we aliased? */ EXTERN int awizforce; EXTERN int brmode; extern int cms; /* Current message */ EXTERN int convflg; EXTERN int curch; EXTERN int curmode; /* Mode data */ EXTERN int debug_mode; /* Are we in debugging mode? */ extern int fighting; /* Who we are beating up */ EXTERN int forf; EXTERN int hasfarted; EXTERN int iamon; EXTERN int interrupt; EXTERN int in_fight; /* Are we in a fight? */ EXTERN int isforce; extern int iskb; EXTERN int i_follow; EXTERN int i_setup; /* Am I set up? */ EXTERN int lasup; extern int maxu; EXTERN int me_cal; EXTERN int me_drunk; EXTERN int me_ivct; extern int mynum; EXTERN int my_lev; EXTERN int my_sco; EXTERN int my_sex; EXTERN int my_str; EXTERN int numchars; EXTERN int numobs; EXTERN int numzon; extern int ob1; extern int ob2; extern int pl1; extern int pl2; EXTERN int pptr; /* The Parameter pointer */ extern int prep; EXTERN int pr_due; /* I/O redraw pending? */ EXTERN int key_mode; EXTERN int pr_qcr; /* CR queue */ EXTERN int rdes; EXTERN int rd_qd; EXTERN int shurrup; /* Ignoring [ messages? */ EXTERN int skicand; extern int snoopd; extern int snoopt; /* Snoop control */ EXTERN int spawned; EXTERN int stp; EXTERN int sys_uid; /* UserID of the game owner */ EXTERN int tdes; EXTERN int userid; /* UserID of the game player */ EXTERN int ublock[16 * 65]; EXTERN int vdes; EXTERN int verbcode; EXTERN int zapped; /* Playerdead no save flag */