DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T k

⟦6564436f6⟧ TextFile

    Length: 10311 (0x2847)
    Types: TextFile
    Names: »kernel.h«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Abermud/kernel.h« 

TextFile

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