/* config.h */ #ifndef __CONFIG_H #define __CONFIG_H #include "copyright.h" #include "version.h" /* *********** READ THIS BEFORE YOU MODIFY ANYTHING IN THIS FILE *********** */ /* WARNING: All options in this file have the ability to signifigantly change * the look and feel and sometimes even internal behavior of the program. * The ones shipped as the default have been extensively tested. Others have * been tested to a (usually) lesser degree, and therefore might still have * latent bugs. If you change any of them from the default, PLEASE check * to make sure that you know the full effects of what you are changing. And * if you encounter any errors or compile time problems with any options * other than the default settings, PLEASE inform jt1o@andrew.cmu.edu * immediately, so that they can be fixed. The same goes for any other bug * you might find in using this software. All efforts will be made to fix * errors encountered, but unless given a FULL description of the error, * (IE telling me that logging in doesn't work is insufficient. telling * me that logging in with WCREAT undefined still gives you the registration * message is a lot better. MOST effective would be a full dbx trace, or a * patch for the bug.) Enjoy using the program. */ /* ************************************************************************* */ /* Uncomment this of on a Xenix System. */ /* #define XENIX */ /* Uncomment this if on a Xenix system with Xsockets. */ /* #define XSOCKET */ /* Uncomment this if you want to use the Virus (Robert Hood) Concentrator * package. A must if you want to have more than fifty-odd (depending * on your system) users at once. */ /* #define CONCENTRATOR */ /* Uncomment this if you want the machine to return a name instead of an * IP number. The code without this defined looks screwy, so I would leave * it defined unless you feel like fixing it. */ #define HOST_NAME /* Define this if you want the ability to lock out certain sites. This code * now works. Coming soon: more reasonable matching abilities, and * wildcards. */ #define LOCKOUT /* Define this if you are running 24 hours a day and wish to autorestart */ /* #define AUTORESTART */ /* Define this if you want to run with registration. Undefining this lets * anyone create characters. */ /* #define WCREAT */ /* Define this if you want an "official" guest character. A guest character * may not change his name or password, and may not build. You may wish to * describe and @atrlock the guest. You will probably want this option if * you use WCREAT. */ /* #define GUEST_RESTRICT */ /* This should only be defined if your machine does not have toupper and * memcpy already defined. */ /* #define BRAIN_DAMAGE */ /* Define this if you wish to allow objects to be recycled. */ #define DESTROY /* One method of slowing bloat. This method requires all builders to have * a builder bit to build. */ /* #define RESTRICTED_BUILDING */ /* Defining this adds a simple tracking allocator of allocs and frees that * keeps ref counts of what sort of memory is allocated, and how many. * Good for testing for Memory leaks. */ /* #define MEM_CHECK */ /* An alternate method of slowing bloat. This allows builders only X objects * period. Wizards can check and set quotas on players. If used in * conjunction with RESTRICTED_BUILDING, expect VERY slow growth. */ /* #define QUOTA */ /* Define the following if you want the database stored in compressed format * via the compress system command. If this is enabled PANIC saves will NOT * be compressed, so you will need to compress them before restarting if they * are good saves. */ #define DBCOMP /* Defining the following will log ALL commands typed by every user. Good * catching what command the game coredumps on. */ /* #define LOG_COMMANDS */ /* Defining the following produces a log of all commands that produce a Huh? * message for a player. */ /* #define LOG_FAILED_COMMANDS */ /* Define the following if you are running on a machine so small that you * cannnot fork a process off to do the save. */ /* #define NO_FORK */ #ifndef NO_FORK /* Define this if you wish to use vfork() instead of fork() */ /* #define USE_VFORK */ #endif /* Defining the following will show an expanded flag name list when you * examine an object */ #define FLAGS_ON_EXAMINE /* Defining this will cause passwords to be stored as straight text rather * that encrypted via the unix crypt() command. */ /* #define NOCRYPT */ /* Boolexp_debugging should only be defined if you are testing new boolexp * locks, etc. otherwise, leave it undefined. */ /* #define BOOLEXP_DEBUGGING */ /* Define the following if you wish to allow object building. Only useful * if RESTRICTED_BUILDING is defined. */ /* #define FREE_OBJECTS */ /* Define the following for increased wizard invisibility. If it's enabled, * says and poses by DARK wizards will show up as 'Someone ....' * pages are not affected. */ #define FULL_INVIS /* Define the following if you wish to have a TinyTIM like @doing command. */ #define AT_DOING /* * Define the following to enable the ROYALTY flag. Players with * this flag set have limited wiz powers: ie, they can look, examine, * and @tel like wizards, but may not change things like wizards. */ #define ROYALTY_FLAG /* Define the following to enable @whereis commands, and loc() on players * by other players. Both of these commands are modified by the effect * of the PLAYER_DARK flag. */ #define PLAYER_LOCATE /* Comment this out if you don't wish to use the built-in mail system. * The @mail command provides a flexible hardcoded mail system, which * uses its own database to store messages. This system is the work of * Joarm of Spellbound MUSH (Justin McKinnerney) */ #define USE_MAILER /* Define the following if you wish to enable global exits and commands. * Exits in the Master Room are considered global, as are user-defined * $commands on objects in the Master Room. */ #define DO_GLOBALS /* Define the following if you need to modify the database to use * zones. You must do this the first time you convert an existing * database. */ #define ADD_ZONES /* Comment this out if you wish to run without the INHERIT flag. This * flag prevents objects without it from @forcing, @setting, or * @triggering objects with the flag, or with a wizbit. This makes doing * secure objects much easier. However, it can make programming certain * objects somewhat clumsy, and may cause some initial confusion and * frustration when first used on a MUSH not used to it. */ #define INHERIT_FLAG /* Define the following if you are converting an older database to this * version of code. This modifies the database for page and enter locks. * Compile and start the game with this option the first time, then do an * immediate @shutdown, recompile with this undefined, and restart. If * Warning: if you do not remember to recompile, any enter or page locks * will be lost. */ /* #define ADD_LOCKS */ /* Define the following if you want an inactivity timeout - the game * will automatically boot players who idle too long. */ /* #define IDLE_TIMEOUT */ #ifdef USE_SMALLOC /* Define the following ONLY if using SMALLOC.C, and if you want accurate * malloc stats. */ /* #define SLOW_STATISTICS */ #endif /* USE_SMALLOC */ /* Define the following to get extra debug info into the log file */ /* #define DEBUG */ #ifdef CONCENTRATOR /* * Define the following if you want consistancy checking while using * the Virus concentrator code. */ #define CHECKC #endif /* default files */ #define DEF_DB_IN "indb.Z" /* default startup database */ #define DEF_DB_OUT "outdb.Z" /* default dump database */ #define HELPTEXT "helptext" /* help text file */ #define HELPINDX "helpindx" /* help index file */ #define NEW_CONNECT_MSG_FILE "create.txt" #define CONNECT_MSG_FILE "connect.txt" #define WELCOME_MSG_FILE "welcome.txt" #define WIZARD_MSG_FILE "wizard.txt" #define REGISTER_MSG_FILE "register.txt" #define LEAVE_MSG_FILE "leave.txt" #define DISABLE_MSG_FILE "disable.txt" #define HELP_FILE "help.txt" #define NEWS_FILE "news.txt" #define NEWSINDX "newsindx" #ifdef LOCKOUT #define LOCKOUT_FILE "lockout.txt" #endif /* LOCKOUT */ /* name of the monetary unit */ #define MONEY "Penny" #define MONIES "Pennies" /* room number of player start location */ #define PLAYER_START ((dbref) 0) /* Uber-wizard */ #define GOD ((dbref) 1) #define God(x) ((x) == GOD) /* Guest character */ #ifdef GUEST_RESTRICT /* you'll almost definitely want to change this */ #define GUEST_PLAYER ((dbref) 3) #define Guest(x) ((x) == GUEST_PLAYER) #endif /* Master room for global exits and commands */ #ifdef DO_GLOBALS /* probably want to change this later */ #define MASTER_ROOM ((dbref) 2) #endif /* Inactivity timeout limit - boots players after certain amount of idling */ /* This must be an integer value, in minutes */ #ifdef IDLE_TIMEOUT #define INACTIVITY_LIMIT 60 #endif /* minimum cost to create various things */ #define OBJECT_COST 10 #define EXIT_COST 1 #define LINK_COST 1 #define ROOM_COST 10 #define QUEUE_COST 10 /* deposit on commands in the queue */ #define QUOTA_COST 1 /* quota cost of building an object */ /* cost for various special commands */ #define FIND_COST 100 #define PAGE_COST 0 /* costs of kill command */ #define KILL_BASE_COST 100 /* prob = expenditure/KILL_BASE_COST */ #define KILL_MIN_COST 10 #define KILL_BONUS 50 /* paid to victim */ #define MAX_ARG 100 /* maximum comma's arguments to function * (like @switch) */ #define QUEUE_LOSS 63 /* one command in 16 will cost one penny */ /* must be a power of two minus 1 */ #define QUEUE_QUOTA 100 /* number of pending commands per player */ /* used to prevent robots from getting out */ /* of hand */ #define START_BONUS 100 /* starting salary for new players */ #define PAY_CHECK 50 /* daily income for active players */ #ifdef QUOTA #define START_QUOTA "20" /* starting building quota for new players */ #endif /* QUOTA */ /* limit on player name length */ #define PLAYER_NAME_LIMIT 16 /* magic cookies */ #define NOT_TOKEN '!' #define AND_TOKEN '&' #define OR_TOKEN '|' #define LOOKUP_TOKEN '*' #define NUMBER_TOKEN '#' #define AT_TOKEN '@' #define IN_TOKEN '+' #define IS_TOKEN '=' #define ARG_DELIMITER '=' /* magic command cookies */ #define SAY_TOKEN '"' #define POSE_TOKEN ':' #define SEMI_POSE_TOKEN ';' /* delimiter for lists of exit aliases */ #define EXIT_DELIMITER ';' /* amount of object endowment, based on cost */ #define MAX_OBJECT_ENDOWMENT 100 /* max value a wiz can put on an object */ #define MAX_WIZ_OBJECT_ENDOWMENT 2000 #define OBJECT_ENDOWMENT(cost) (((cost)-5)/5) /* !!! added for recycling, return value of object */ #ifdef DESTROY #define OBJECT_DEPOSIT(pennies) ((pennies)*5+5) #endif /* DESTROY */ /* amount at which temple stops being so profitable */ #define MAX_PENNIES 100000 /* How deep can indirect locks go? */ #define MAX_DEPTH 10 #ifndef TINYPORT #define TINYPORT 4201 #endif #ifdef CONCENTRATOR /* port used if the virus concentrator is installed */ #define INTERNAL_PORT 7372 #endif /* CONCENTRATOR */ #define QUIT_COMMAND "QUIT" #define WHO_COMMAND "WHO" #ifdef AT_DOING #define DOING_COMMAND "DOING" #endif #ifdef RWHO_SEND #ifdef FULL_RWHO #define RWHO_COMMAND "RWHO" #endif #endif #define PREFIX_COMMAND "OUTPUTPREFIX" #define SUFFIX_COMMAND "OUTPUTSUFFIX" #ifdef RWHO_SEND #define RWHOSERV "milo.mit.edu" /* See the README file for info on this */ #define RWHOPORT 6889 /* this should NEVER be changed */ #define RWHOPASS "get_yours" /* This SHOULD be changed!! */ #endif /* timer.c defines */ /* Note: Don't make times multiples of each other */ /* otherwise players will have to wait a long time when */ /* two or more events coincide */ /* time is in seconds */ #define FIXUP_INTERVAL 600 /* fixup free list every 10 minutes */ #define DUMP_INTERVAL 10801 /* dump every 3 hours*/ #ifdef RWHO_SEND #define RWHO_INTERVAL 241 /* update RWHO ever 4 minutes */ #endif #define GARBAGE_CHUNK 3 /* recopy 3 objetcs/sec */ /* interface.c stuff */ #ifdef XENIX #define MAX_INPUT 4096 /* only used in xenix.c */ #endif #define MAX_OUTPUT 16384 #define COMMAND_TIME_MSEC 1000 /* time slice length in milliseconds */ #define COMMAND_BURST_SIZE 100 /* commands allowed per user in a burst */ #define COMMANDS_PER_TIME 1 /* commands per time slice after burst */ /* If this is a xenix system redefine srandom and random */ #ifdef XENIX #define random rand #define srandom srand #endif #ifdef i386 /* if SYSV */ #define srand srandom #define rand random #endif #ifdef BRAIN_DAMAGE /* a kludge to get it to work on a mutant * DENIX system */ #undef toupper #endif #endif /* __CONFIG_H */