/*
* Maximum number of bits in a bit field. They are stored in printable
* strings, 6 bits per byte.
*/
#define MAX_BITS 2400
/*
* There is a hash table for living objects, used by find_living().
*/
#define LIVING_HASH_SIZE 100
/*
* Define REAL_CATCH if you want catch to catch statements and not
* merely expressions.
*/
#define REAL_CATCH
/*
* Set MUD_LIB to the directory which contains the mud data.
*/
#define MUD_LIB "mudlib"
/*
* The following is the secure directory where secure files are to be kept
*/
#define SECURE_DIR "secure"
/*
* This is the file which contains names of objects to be
* loaded initially. Do not normally change this.
*/
#define INIT_FILE "room/init_file"
/*
* This is the subdirectory where all wizards objects are defined.
*/
#define PLAYER_DIR "players"
/*
* This is the castle that a wiz gets a copy of.
*/
#define DEFAULT_CASTLE "room/def_castle.c"
/*
* A command to run the C preprocessor on a C file (or really, an
* object definition file).
*/
/*
#define PRE_COMPILE "/lib/cpp -I/mud/testmud/secure -Iroom -Iobj"
*/
#define PRE_COMPILE "gnucpp -v"
/*
* Max number of local variables in a function.
*/
#define MAX_LOCAL 30
/*
* A command that lists files in a directory.
* Note that we need the path since vpopen doesn't glob.
* Comment this out if you want to use a faster in-game ls that will
* not show nearly as many features.
*/
/*
#define LIST_FILES "/bin/ls -CFAs"
*/
/*
* Define what ioctl to use against tty's.
*/
#define USE_TIOCGETP /* BSD */
/* #define USE_TCGETA /* SYSV */
/* Maximum number of evaluated nodes/loop.
* If this is exceeded, current function is halted.
* The worst case yet encountered is over 9000.
*/
#define MAX_COST (20 * 4000)
/* Use fork or vfork to exec a program.
* Default is fork().
*/
#define USE_VFORK
/*
* Objects are swapped out if they are not used.
* Specify how many resets the object can stay non-referenced until
* it is swapped out.
* A value if '1' will make swap out the object at every reset.
* A value of '0' will never swap out the object.
* THe value '2' is recommended if you choose to use swapping.
* The count will be cleared by either call_other() or move_object().
*
* NOTE: Swapping was not considered bug free at release. At Genesis, we
* use it just the same, becuase of too little memory. Go ahead and try
* using it if you feel it is needed on your machine.
*
* Note 2: swapping is bug free :-). And this number is now settable
* at runtime; it starts off at this value.
*/
#define NUM_RESET_TO_SWAP 2
/*
* define RECOMPILE_SWAP to 1 if you want to free programs and recompile
* them instead of swaping them, zero otherwise. If you make it 0, and
* the swap file is bad, it will automatically fall back to recompiling them.
* This is the default; it is also settable at runtime.
*/
#define RECOMPILE_SWAP 0
/*
* We do swap file "garbage collection" as soon as the swap file reaches
* SWAP_MAX_PURGE_SIZE, and also if it is over SWAP_MIN_PURGE_SIZE and there
* are more than SWAP_PERC_HOLES in the file. These values are not critical,
* except for the max size. Garbage collection means deleting the swap file
* and starting anew, recompiling swapped objects if they are required.
*/
#define SWAP_MAX_PURGE_SIZE 1000000
#define SWAP_MIN_PURGE_SIZE 100000
#define SWAP_PERC_HOLES 0.8
/*
* Where to swap out objects. This directory is not used if NUM_RESET_TO_SWAP
* is 0 and swapping has not been turned on by a wizard with ALL_POWER.
*/
#define SWAP_FILE "secure/LpSwap"
/*
* To speed the start of the game up, i-files are saved. This
* requires more disk space (a lot more). If the i-file is not
* wanted, define this next symbol.
*/
/*#define REMOVE_I_FILES*/
/*
* Which port to use on this host. The #ifndef is so that we can define
* a different port with a -D option to the compiler.
*/
#ifndef PORTNUM
#define PORTNUM 2222
#endif
/*
* This is the maximum array size allowed for a single array.
*/
#define MAX_ARRAY_SIZE 1000
/*
* Minutes until a reset pulse is sent. Make this number small (about
* 15) when there are few wizards, large (45-60) when there are more
* wizards.
*/
#define RESET_TIME 35 /* testing */
/*
* Define this to be the file that holds all the processes accounting for the
* mud. This file is the same as the one is all the shell scripts.
*/
#define PROCSFILE ".procs"
/*
* Define this to be the maximum number of players you will allow on your mud.
*/
#define MAX_PLAYERS 36
/*
* Define this to be the maximum number of lines printed in a cat or similar
* operation before ***TRUNCATED*** is printed.
*/
#define MAX_LINES 35
/*
* This is the directory to put the lockout file in
*/
#define LOCKOUT_FILE "secure/ACCESS.DENY"
/*
* When uploading files, we want fast response; however, normal players
* shouldn't be able to hog the system in this way. Define ALLOWED_ED_CMDS
* to be the ratio of the no of ed cmds executed per player cmd, and
* MAX_CMDS_PER_BEAT to be the bax no of buffered player commands the
* system will accept in each heartbeat interval.
*/
#define ALLOWED_ED_CMDS 25
#define MAX_CMDS_PER_BEAT 7 /* not implemented yet :-( */
/*
* This is the maximum recursion depth allowed by the game.
* Note: if you use -DTRACE, the depth will most likely be much
* less than this.
*/
#define MAX_RECURSION 60
/*
* These are the maximum size of the buffers for incoming and outgoing
* messages, and also the maximum length (+1) of a single incoming command -
* if a line is longer than MAX_TEXT_IN, it will be truncated and sent
* on to the parser as a whole line, and the rest of the line will be handled
* as a new command. Currently, if more than MAX_TEXT_OUT bytes are
* written in a single add_message, they are truncated; this may change in
* the future.
*/
#define MAX_TEXT_IN 1024
#define MAX_TEXT_OUT (10000)
/*
* Define the following if you want to check for .. or leading / in
* filenames for inclusion with cpp. Will also make sure that
* including other files when you are not allowed (via level) fails.
*/
#define SECURE_CPP /* */
/*
* Reserve an extra memory area from malloc(), to free when we run out
* of memory to get some warning and start Armageddon.
* If this value is 0, no area will be reserved.
*/
#define RESERVED_SIZE 400000
/* Define the size of the shared string hash table. This number should
* a prime, probably between 1000 and 30000; if you set it to about 1/5
* of the number of distinct strings you have, you will get a hit ratio
* (number of comparisons to find a string) very close to 1, as found strings
* are automatically moved to the head of a hash chain. You will never
* need more, and you will still get good results with a smaller table.
*/
#define HTABLE_SIZE 2203 /* there is a table of some primes too */
/*
* Object hash table size.
* Define this like you did with the strings; probably set to about 1/4 of
* the number of objects in a game, as the distribution of accesses to
* objects is somewhat more uniform than that of strings.
*/
#define OTABLE_SIZE 950 /* we have several thousand obs usually */
/*
* Define the following if you want to change the name of debug.log
* (for example, if you don't want the hostname prepended to the file
* name)
*/
#define DEBUG_LOG "error.log"
/*****************************************************************************/
/* END OF CONFIG -- DO NOT ALTER ANYTHING BELOW THIS LINE */
/*****************************************************************************/
/*
* some generic large primes used by various hash functions in different files
* These are not critical.
*/
#define P1 701 /* 3 large, different primes */
#define P2 14009 /* There's a file of them here somewhere :-) */
#define P3 54001
extern char
*xalloc(),
*find_string_space(),
*query_ip_number(),
*strchr(),
*strrchr(),
*strcpy(),
*strncpy(),
*crypt();
/*****************************************************************************/