/
umud/DOC/
umud/DOC/examples/
umud/DOC/internals/
umud/DOC/wizard/
umud/MISC/
umud/MISC/dbchk/
umud/RWHO/rwhod/
#ifndef	INCL_CONFIG_H


/*
-------------------------------------------------------------------------
Read this file ALL THE WAY THROUGH to make sure everything's set up right
-------------------------------------------------------------------------
*/


/*---------------Operating System/Environment specific stuff-----------------*/
/*
	Some clues:
The default setup should work fine right out of the box for most
BSD-like machines.

System V machines may need some tweaking and hacking.

VMS machines want NOSYSFILE_H and NOSYSTYPES_H and a few others

HPUX wants:
	#include	<unistd.h>
	#define FOPEN_BINARY_RW "rb+"
	#define REGEX
	#define regcomp regcmp
	#define DIRENT
	#define getdtablesize() sysconf(_SC_OPEN_MAX)
	#define random()        rand()
	#define srandom(x)      srand(x)

SCO SYS V.3.2.2 wants:
	#define	FCNTL_H
	#define	FOPEN_BINARY_RW	"r+"
	#define MAXPATHLEN 300
	#define	REGEX
	#define	DIRENT
	#define random()	rand()
	#define srandom(x)	srand(x)
	#define	OLDDBM

*/




/* some machines don't grok <sys/file.h> and want <file.h> (like VMS) */
/*	#define	NOSYSFILE_H			*/


/* some machines don't grok <sys/types.h> and want <types.h> (like VMS) */
/*	#define	NOSYSTYPES_H			*/


/* some machines need fcntl.h */
/*	#define	FCNTL_H				*/


/* some machines want unistd.h */
/*	#include <unistd.h>			*/


/* if your machine has malloc() return a void *, define this option */
#define	MALL_IS_VOID


/*
some machines stdio use different parameters to tell fopen to open
a file for creation and binary read/write. that is why they call it
the "standard" I/O library, I guess. for HP/UX, you need to have
this "rb+", and make sure the file already exists before use. bleah
*/
#define	FOPEN_BINARY_RW	"a+"


/* is VMS the only machine that requires this? */
/*	noshare extern char *sys_errlist[];	*/


/* VMS permits no '@' in pathnames */
/*	#define	NO_AT_IN_PATHS			*/


/* some machines (VMS) have no MAXPATHLEN	*/
/*	#define MAXPATHLEN 300			*/


/* if your signal() returns a pointer to void function define this */
#define	SIG_IS_VOID


/* if you have regcomp() and regex() instead of re_comp() and re_exec() */
/*	#define	REGEX				*/


/* if readdir() uses struct dirents instead of struct directs */
/*	#define	DIRENT				*/


/*
if your machine has no getdtablesize, but has something similar, fake it.
HP/UX uses sysconf
*/
/*	#define getdtablesize() sysconf(_SC_OPEN_MAX)	*/


/* varying versions of random that can be faked - otherwise see misc.c */
/*	#define random()	rand()		*/
/*	#define srandom(x)	srand(x)	*/
/* some machines even require math.h for random #s */
/*	#include	<math.h>		*/


/* you MIGHT want to include the following, if your machine has it: */
/*	#include	<string.h>		*/


/* if you don't have index, fake it with strchr() */
/*	#define index(s,c)	strchr(s,(int)c)	*/
/*	extern	char	*strchr();			*/
extern	char	*index();


/* if you don't have bcopy and are stuck with memcpy/memset, fake it */
/*	#define bzero(p,n)	memset(p,0,n)	*/
/*	#define bcopy(f,t,n)	memcpy(t,f,n)	*/


/* VMS seems to have no unlink(2) call, and uses delete(?) */
/*	#define	unlink(path)	delete(path)	*/

/* vanilla BSD 4.3 has no vfprintf */
/*	#define NO_VFPRINTF	*/



/*-------------------Mud Server Configuration Parameters---------------------*/
/* Most of these options you shouldn't need to change. Read them anyway. */

/* do not modify this, please - IT MAY NOT HAVE TABS OR SPACES!!! */
#define	VERSION_STRING	"V1.12"

/* IP ports to use */
/* You don't need to modify these here; the config file (DB/config) can */
/* set them without having to recompile */
#define	NET_PLYPRT		6565
#define	NET_SRVPRT		6566


/* size of user input buffer */
#define	MUDBUF	512


/* maximum parameters for a single command */
#define	MAXARG	128


/* maximum length of a variable name */
#define	MAXVLEN	64


/* maximum length of an object ID */
#define	MAXOID	64


/* if you're running a machine with a slow nameserver and don't really
CARE about hostnames and would rather always use octets, define this.
under ULTRIX, it also saves almost 100Kb on the size of your exec!! */
/*	#define	NO_HUGE_RESOLVER_CODE	*/


/*  Define this if you want a list of nondark exits printed when you look in
    a room.  If undefined no exit list will be printed.  */
/*	#define	LIST_EXITS	*/


/*  Define this if you want stuff in the inventory searched for macros. */
/*	#define SEARCH_INVENTORY	*/


/* minimum amount of time between cron runs (in seconds).
the lower you set this, the more time you'll waste processing cron stuff.  */
#define CRONQUANT 10


/* default (runtime-resettable) cache parameters */
#define	CACHE_DEPTH	7
#define	CACHE_WIDTH	23


/* use RWHO server code */
#define	USE_RWHO


/* compress OIF databases. NOT for the uninitiated!!! if you don't
know what you're about, this can easily eat your database */
/*	#define	COMPRESS_OIF	*/
/* compression table to use */
/*	#define	DEFAULT_COMPTABLE */


/* flat probability for random matches instead of 50%, 25%, 12.5%, ... */
/*	#define    FLAT_PROBABILITIES */


/* combat extensions */
/*	#define	COMBAT	*/


/* default is to prohibit players from changing their names. */
/*	#define	PLAYER_NAMECHANGING	*/


/* print TinyMUD-like object IDs after objects that are linkok for you */
/* yes, this means you'll see object IDs of things you own */
/* if you don't define this, you can still find out a thing's obj id */
/* by either examining it or typing 'which <xxx>' */
/* #define	LOOK_OBJECT_IDS	*/


/* only wizards can build */
/* #define	BUILD_WIZ_ONLY	*/


/* Allows TinyMUD-style succ/fail/osucc/ofail in rooms, and room locks */
/* also allows succ/fail/osucc/ofail in rooms to be unter cmd's */
#define TINYHACK


/* enable this if you want cache warnings if objects are missing */
#define	CACHE_VERBOSE 


/* enable this for MUSH-like connected-player-only listing in "look" command */
/* #define	CONNONLY */


/* enable this for command statistics gathering */
#define	COMMAND_STATS


/* enable this if you want the low-level direct list/set manipulation commands
in wizard mode (use of these is discouraged) */
/*	#define	CMD_LOWLEVEL_LIST		*/
/*	#define	CMD_LOWLEVEL_SET		*/


/* enable this if you want fork/exec capabilities in your server */
/* (if defined, the mud will automatically background itself) */
#define	DAEMON
/* enable if you have POSIX setpgrp/setsid() (can be used if DAEMON is defd) */
/* #define	SETSID */


/*
These options can all be turned on at once, if desired, since they only
affect the compilation of which database routines should go in the database
library (used by loaddb/dumpdb)
*/
/* turn this on if you have either dbm or ndbm */
#define	DB_DBMFILE
/*
turn this on if you have dbm, but no ndbm - MAY REQUIRE CHANGES to
umud/Makefile and DM/Makefile, if dbm is not in libc (it usually isn't)
*/
/*	#define	OLDDBM				*/

/* name to use for the default dbm database file */
#define	DEFAULT_DBMCHUNKFILE	"dbm_db"

/* turn this on if you want to be able to use hashed directories */
#define	DB_DIRHASH 
/* name to use for the default hash directory */
#define	DEFAULT_HASHDIR		"hash" 
/* name to use for the default hash size (directories 0 - 10) */
#define	DEFAULT_HASH_SIZE	11 


/* turn this on if you have GNU dbm */
/*	#define	DB_GDBMFILE		*/
/* name to use for the default dbm database file */
/*	#define	DEFAULT_GDBMCHUNKFILE	"gdbm_db"	*/


/*
  ----------PICK ONE AND ONLY ONE OF THE OPTIONS FOR STORAGE-----------
this control which database routines get linked into the MUD server itself
*/
/* #define	STORAGE_IS_HASHDIR */
#define	STORAGE_IS_DBMCHUNK
/* #define	STORAGE_IS_GDBMCHUNK */

/* these macros cause correct linkage with storage layer - don't touch */
#ifdef	STORAGE_IS_HASHDIR
#define	DB_INIT()	dhdb_init()
#define	DB_CLOSE()	dhdb_close()
#define	DB_SYNC()	dhdb_sync()
#define	DB_GET(n)	dhdb_get(n)
#define	DB_PUT(o,n)	dhdb_put(o,n)
#define	DB_CHECK(s)	dhdb_check(s)
#define	DB_DEL(n,f)	dhdb_del(n,f)
#define	DB_BACKUP(f)	dhdb_backup(f)
#define	DB_TRAVSTART()	dhdb_travstart()
#define	DB_TRAVERSE(b)	dhdb_traverse(b)
#define	DB_TRAVEND()	dhdb_travend()
#define	CMD__DBCONFIG	cmd__dhdbconfig
#endif

#ifdef	STORAGE_IS_DBMCHUNK
#define	DB_INIT()	dddb_init()
#define	DB_CLOSE()	dddb_close()
#define	DB_SYNC()	dddb_sync()
#define	DB_GET(n)	dddb_get(n)
#define	DB_PUT(o,n)	dddb_put(o,n)
#define	DB_CHECK(s)	dddb_check(s)
#define	DB_DEL(n,f)	dddb_del(n,f)
#define	DB_BACKUP(f)	dddb_backup(f)
#define	DB_TRAVSTART()	dddb_travstart()
#define	DB_TRAVERSE(b)	dddb_traverse(b)
#define	DB_TRAVEND()	dddb_travend()
#define	CMD__DBCONFIG	cmd__dddbconfig
#endif

#ifdef	STORAGE_IS_GDBMCHUNK
#define	DB_INIT()	dgdb_init()
#define	DB_CLOSE()	dgdb_close()
#define	DB_SYNC()	dgdb_sync()
#define	DB_GET(n)	dgdb_get(n)
#define	DB_PUT(o,n)	dgdb_put(o,n)
#define	DB_CHECK(s)	dgdb_check(s)
#define	DB_DEL(n,f)	dgdb_del(n,f)
#define	DB_BACKUP(f)	dgdb_backup(f)
#define	DB_TRAVSTART()	dgdb_travstart()
#define	DB_TRAVERSE(b)	dgdb_traverse(b)
#define	DB_TRAVEND()	dgdb_travend()
#define	CMD__DBCONFIG	cmd__dgdbconfig
#endif

/* various debug flags - turn all on for a WILD time */
/*
#define	DBMCHUNK_DEBUG
#define	HASHDIR_DEBUG
#define	CRON_DEBUG
#define	VMSNET_DEBUG
#define	XACT_DEBUG
#define	XMITBSD_DEBUG
#define	CACHE_DEBUG
#define	ALLOC_DEBUG
*/

#define	INCL_CONFIG_H
#endif