|
|
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 */