ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/config.h
(Generate patch)

Comparing deliantra/server/include/config.h (file contents):
Revision 1.22 by pippijn, Mon Dec 11 19:46:46 2006 UTC vs.
Revision 1.31 by root, Sat Dec 30 15:07:59 2006 UTC

16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 20
21 The authors can be reached via e-mail at crossfire-devel@real-time.com 21 The authors can be reached via e-mail at crossfire@schmorp.de
22*/ 22*/
23 23
24/* This file contains various #defines that select various options. 24/* This file contains various #defines that select various options.
25 * Some may not be desirable, and some just may not work. 25 * Some may not be desirable, and some just may not work.
26 * 26 *
66 * DEBUG - more verbose message logging? 66 * DEBUG - more verbose message logging?
67 * MAP_CLIENT_X, MAP_CLIENT_Y - determines max size client map will receive 67 * MAP_CLIENT_X, MAP_CLIENT_Y - determines max size client map will receive
68 * MAX_TIME - how long an internal tick is in microseconds 68 * MAX_TIME - how long an internal tick is in microseconds
69 * MANY_CORES - generate core dumps on gross errors instead of continuing? 69 * MANY_CORES - generate core dumps on gross errors instead of continuing?
70 * PARTY_KILL_LOG - stores party kill information 70 * PARTY_KILL_LOG - stores party kill information
71 * WATCHDOG - allows use of an external watchdog program
72 * 71 *
73 ***********************************************************************/ 72 ***********************************************************************/
74 73
75/* Use a very easy, non-challenging server? 74/* Use a very easy, non-challenging server?
76 * Defining the COZY_SERVER will make the server much less challenging: 75 * Defining the COZY_SERVER will make the server much less challenging:
132#define SIMPLE_EXP TRUE 131#define SIMPLE_EXP TRUE
133#define SPELLPOINT_LEVEL_DEPEND TRUE 132#define SPELLPOINT_LEVEL_DEPEND TRUE
134#define SPELL_ENCUMBRANCE TRUE 133#define SPELL_ENCUMBRANCE TRUE
135#define SPELL_FAILURE_EFFECTS FALSE 134#define SPELL_FAILURE_EFFECTS FALSE
136#define REAL_WIZ TRUE 135#define REAL_WIZ TRUE
137#define RECYCLE_TMP_MAPS FALSE
138#define RESURRECTION FALSE 136#define RESURRECTION FALSE
139#define SEARCH_ITEMS TRUE 137#define SEARCH_ITEMS TRUE
140#define NOT_PERMADETH TRUE 138#define NOT_PERMADETH TRUE
141#define EXPLORE_MODE FALSE 139#define EXPLORE_MODE FALSE
142#define STAT_LOSS_ON_DEATH FALSE 140#define STAT_LOSS_ON_DEATH FALSE
253/* GD */ 251/* GD */
254 252
255#define PERM_EXP_GAIN_RATIO 0.10f 253#define PERM_EXP_GAIN_RATIO 0.10f
256#define PERM_EXP_MAX_LOSS_RATIO 0.50f 254#define PERM_EXP_MAX_LOSS_RATIO 0.50f
257 255
258/*
259 * WATCHDOG lets sends datagrams to port 13325 on localhost
260 * in (more-or-less) regular intervals, so an external watchdog
261 * program can kill the server if it hangs (for whatever reason).
262 * It shouldn't hurt anyone if this is defined but you don't
263 * have an watchdog program.
264 */
265#define WATCHDOG
266
267/* Enable the new material code - it needs some work. You can 256/* Enable the new material code - it needs some work. You can
268 * enable this, and things will work, just you'll see a whole 257 * enable this, and things will work, just you'll see a whole
269 * bunch more materials show up, and thus a whole bunch more materials 258 * bunch more materials show up, and thus a whole bunch more materials
270 * in your inventory, and the sorting for them isn't really good. 259 * in your inventory, and the sorting for them isn't really good.
271 */ 260 */
333 * SHUTDOWN - used when shutting down the server 322 * SHUTDOWN - used when shutting down the server
334 * SOCKETBUFSIZE - size of buffer used internally by the server for storing 323 * SOCKETBUFSIZE - size of buffer used internally by the server for storing
335 * backlogged messages. 324 * backlogged messages.
336 * TMPDIR - directory to use for temp files 325 * TMPDIR - directory to use for temp files
337 * UNIQUE_DIR - directory to put unique item files into 326 * UNIQUE_DIR - directory to put unique item files into
338 * USE_CALLOC for some memory requests
339 *********************************************************************** 327 ***********************************************************************
340 */ 328 */
341 329
342/* 330/*
343 * BANFILE - file used to ban certain sites from playing. See the example 331 * BANFILE - file used to ban certain sites from playing. See the example
344 * ban_file for examples. 332 * ban_file for examples.
345 */ 333 */
346
347#ifndef BANFILE 334#ifndef BANFILE
348#define BANFILE "ban_file" 335#define BANFILE "ban_file"
349#endif 336#endif
350 337
351/* CSPORT is the port used for the new client/server code. Change 338/* CSPORT is the port used for the new client/server code. Change
352 * if desired. Only of relevance if ERIC_SERVER is set above 339 * if desired. Only of relevance if ERIC_SERVER is set above
353 */ 340 */
354
355#define CSPORT 13327 /* old port + 1 */ 341#define CSPORT 13327 /* old port + 1 */
356 342
357 343
358/* 344/*
359 * DMFILE 345 * DMFILE
360 * A file containing valid names that can be dm, one on each line. See 346 * A file containing valid names that can be dm, one on each line. See
361 * example dm_file for syntax help. 347 * example dm_file for syntax help.
362 */ 348 */
363
364#ifndef DMFILE 349#ifndef DMFILE
365#define DMFILE "dm_file" 350#define DMFILE "dm_file"
366#endif 351#endif
367 352
368 353
369/* LOGFILE specifies which file to log to when playing with the 354/* LOGFILE specifies which file to log to when playing with the
370 * -daemon option. 355 * -daemon option.
371 */ 356 */
372
373#ifndef LOGFILE 357#ifndef LOGFILE
374#define LOGFILE "/var/log/crossfire/logfile" 358#define LOGFILE "/var/log/crossfire/logfile"
375#endif 359#endif
376
377/*
378 * MAP_MAXTIMEOUT tells the maximum of ticks until a map is swapped out
379 * after a player has left it. If it is set to 0, maps are
380 * swapped out the instant the last player leaves it.
381 * If you are low on memory, you should set this to 0.
382 * Note that depending on the map timeout variable, the number of
383 * objects can get quite high. This is because depending on the maps,
384 * a player could be having the objects of several maps in memory
385 * (the map he is in right now, and the ones he left recently.)
386 * Each map has it's own TIMEOUT value and value field and it is
387 * defaulted to 300
388 *
389 * Having a nonzero value can be useful: If a player leaves a map (and thus
390 * is on a new map), and realizes they want to go back pretty quickly, the
391 * old map is still in memory, so don't need to go disk and get it.
392 *
393 * MAP_MINTIMEOUT is used as a minimum timeout value - if the map is set
394 * to swap out in less than that many ticks, we use the MINTIMEOUT value
395 * velow. If MINTIMEOUT > MAXTIMEOUT, MAXTIMEOUT will be used for all
396 * maps.
397 */
398
399/* How many ticks till maps are swapped out */
400#define MAP_MAXTIMEOUT 300
401/* At least that many ticks before swapout */
402#define MAP_MINTIMEOUT 300
403
404/*
405 * MAP_MAXRESET is the maximum time a map can have before being reset. It
406 * will override the time value set in the map, if that time is longer than
407 * MAP_MAXRESET. This value is in seconds. If you are low on space on the
408 * TMPDIR device, set this value to somethign small. The default
409 * value in the map object is MAP_DEFAULTRESET (given in seconds.)
410 * I personally like 1 hour myself, for solo play. It is long enough that
411 * maps won't be resetting as a solve a quest, but short enough that some
412 * maps (like shops and inns) will be reset during the time I play.
413 * Comment out MAP_MAXRESET time if you always want to use the value
414 * in the map archetype.
415 */
416
417/* Maximum time to reset. */
418#define MAP_MAXRESET 7200
419/* Default time to reset. */
420#define MAP_DEFAULTRESET 3600
421
422/*
423 * MAX_OBJECTS is no hard limit. If this limit is exceeded, crossfire
424 * will look for maps which are already scheldued for swapping, and
425 * promptly swap them out before new maps are being loaded.
426 * If playing only by yourself, this number can probably be as low as
427 * 3000. If in server mode, probably figure about 1000-2000 objects per
428 * active player (if they typically play on different maps), for some guess
429 * on how many to define. If it is too low, maps just get swapped out
430 * immediately, causing a performance hit. If it is too high, the program
431 * consumes more memory. If you have gobs of free memory, a high number
432 * might not be a bad idea. Each object is around 350 bytes right now.
433 * 25000 is about 8.5 MB
434 */
435
436#define MAX_OBJECTS 400000
437
438/*
439 * Max objects low water mark (lwm). If defined, the map swapping strategy
440 * is a bit different:
441 * 1) We only start swapping maps if the number of objects in use is
442 * greater than MAX_OBJECTS above.
443 * 2) We keep swapping maps until there are no more maps to swap or the number
444 * of used objects drop below this low water mark value.
445 *
446 * If this is not defined, maps are swapped out on the timeout value above,
447 * or if the number of objects used is greater than MAX_OBJECTS above.
448 *
449 * Note: While this will prevent the pauses noticed when saving maps, there
450 * can instead be cpu performance penalties - any objects in memory get
451 * processed. So if there are 4000 objects in memory, and 1000 of them
452 * are living objects, the system will process all 1000 objects each tick.
453 * With swapping enable, maybe 600 of the objects would have gotten swapped
454 * out. This is less likely a problem with a smaller number of MAX_OBJECTS
455 * than if it is very large.
456 * Also, the pauses you do get can be worse, as if you enter a map with
457 * a lot of new objects and go above MAX_OBJECTS, it may have to swap out
458 * many maps to get below the low water mark.
459 */
460
461/*#define MAX_OBJECTS_LWM MAX_OBJECTS/2*/
462
463/*
464 * Turning on MEMORY_DEBUG slows down execution, but makes it easier
465 * to find memory corruption and leaks. Currently, the main thing
466 * that happens with this activated is that one malloc is done for
467 * each object - thus whatever debugging mechanism the malloc library
468 * (or other debugging tool provides, like purify), it can track this
469 * individual malloc. Default behaviour when turned off is that
470 * enough memory is malloced for a large group of objects so malloc does
471 * not need to be called as often.
472 * This should only be turned on if some form of memory debugging tool
473 * is being used - otherwise, turning this on will cause some performance
474 * hit with no useful advantage.
475 */
476
477/*#define MEMORY_DEBUG*/
478
479 360
480/* 361/*
481 * If you want to have a Message Of The Day file, define MOTD to be 362 * If you want to have a Message Of The Day file, define MOTD to be
482 * the file with the message. If the file doesn't exist or if it 363 * the file with the message. If the file doesn't exist or if it
483 * is empty, no message will be displayed. 364 * is empty, no message will be displayed.
484 * (It resides in the CONFDIR directory) 365 * (It resides in the CONFDIR directory)
485 */ 366 */
486
487#define MOTD "motd" 367#define MOTD "motd"
488 368
489/* 369/*
490 * You can restrict playing in certain times by creating a PERMIT_FILE 370 * You can restrict playing in certain times by creating a PERMIT_FILE
491 * in CONFDIR. See the sample for usage notes. 371 * in CONFDIR. See the sample for usage notes.
492 */ 372 */
493
494#define PERM_FILE "forbid" 373#define PERM_FILE "forbid"
495 374
496/* 375/*
497 * If you want to take the game down while installing new versions, or 376 * If you want to take the game down while installing new versions, or
498 * for other reasons, put a message into the SHUTDOWN_FILE file. 377 * for other reasons, put a message into the SHUTDOWN_FILE file.
499 * Remember to delete it when you open the game again. 378 * Remember to delete it when you open the game again.
500 * (It resides in the CONFDIR directory) 379 * (It resides in the CONFDIR directory)
501 */ 380 */
502
503#ifndef SHUTDOWN_FILE 381#ifndef SHUTDOWN_FILE
504#define SHUTDOWN_FILE "shutdown" 382#define SHUTDOWN_FILE "shutdown"
505#endif 383#endif
506 384
507 385
513 * large. When the OS buffer and this buffer is exhausted, the server 391 * large. When the OS buffer and this buffer is exhausted, the server
514 * will drop the client connection for falling too far behind. So if 392 * will drop the client connection for falling too far behind. So if
515 * you have very slow client connections, a larger value may be 393 * you have very slow client connections, a larger value may be
516 * warranted. 394 * warranted.
517 */ 395 */
518
519#define SOCKETBUFSIZE 256*1024 396#define SOCKETBUFSIZE 256*1024
520 397
521/* 398/*
522 * Your tmp-directory should be large enough to hold the uncompressed 399 * Your tmp-directory should be large enough to hold the uncompressed
523 * map-files for all who are playing. 400 * map-files for all who are playing. Local to 'lib' directory.
524 * It ought to be locally mounted, since the function used to generate
525 * unique temporary filenames isn't guaranteed to work over NFS or AFS
526 * On the other hand, if you know that only one crossfire server will be
527 * running using this temporary directory, it is likely to be safe to use
528 * something that is NFS mounted (but performance may suffer as NFS is
529 * slower than local disk)
530 */ 401 */
531
532/*#define TMPDIR "/home/hugin/a/crossfire/crossfire/tmp"*/
533#define TMPDIR "/tmp" 402#define TMPDIR "tmp"
534 403
535 404
536/* Directory to use for unique items. This is placed into the 'lib' 405/* Directory to use for unique items. This is placed into the 'lib'
537 * directory. Changing this will cause any old unique items file 406 * directory. Changing this will cause any old unique items file
538 * not to be used. 407 * not to be used.
539 */ 408 */
540#define UNIQUE_DIR "unique-items" 409#define UNIQUE_DIR "unique-items"
541
542/*
543 * If undefined, malloc is always used.
544 * It looks like this can be oboleted. However, it can be useful to
545 * track down some bugs, as it will make sure that the entire data structure
546 * is set to 0, at the expense of speed.
547 * Rupert Goldie has run Purify against the code, and if this is disabled,
548 * apparantly there are a lot of uninitialized memory reads - I haven't
549 * seen any problem (maybe the memory reads are copies, and the destination
550 * doesn't actually use the garbage values either?), but the impact on speed
551 * of using this probably isn't great, and should make things more stable.
552 * Msw 8-9-97
553 */
554#define USE_CALLOC
555
556
557/*
558 * These define the players starting map and location on that map, and where
559 * emergency saves are defined. This should be left as is unless you make
560 * major changes to the map.
561 */
562
563#define EMERGENCY_MAPPATH "/city/city"
564#define EMERGENCY_X 15
565#define EMERGENCY_Y 19
566
567 410
568/* 411/*
569 * These defines tells where, relative to LIBDIR, the maps, the map-index, 412 * These defines tells where, relative to LIBDIR, the maps, the map-index,
570 * archetypes highscore and treaures files and directories can be found. 413 * archetypes highscore and treaures files and directories can be found.
571 */ 414 */
575#define ARCHETYPES "archetypes" 418#define ARCHETYPES "archetypes"
576#define REGIONS "regions" 419#define REGIONS "regions"
577#define HIGHSCORE "highscore" 420#define HIGHSCORE "highscore"
578#define TREASURES "treasures" 421#define TREASURES "treasures"
579#define BANISHFILE "banish_file" 422#define BANISHFILE "banish_file"
580
581#define MAX_ERRORS 25 /* Bail out if more are received during tick */
582#define OBJ_EXPAND 5000 /* How big steps to use when expanding array */
583 423
584#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */ 424#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */
585 425
586#define ARCHTABLE 16384 /* Arch hashtable size */ 426#define ARCHTABLE 16384 /* Arch hashtable size */
587#define MAXSTRING 20 427#define MAXSTRING 20
657 * saves pretty well spread out (in a fairly random fashion.) 497 * saves pretty well spread out (in a fairly random fashion.)
658 */ 498 */
659 499
660#define AUTOSAVE 1000 500#define AUTOSAVE 1000
661 501
662/* Often, emergency save fails because the memory corruption that caused
663 * the crash has trashed the characters too. Define NO_EMERGENCY_SAVE
664 * to disable emergency saves. This actually does
665 * prevent emergency saves now (Version 0.90.5).
666 */
667
668#define NO_EMERGENCY_SAVE
669
670/* By selecting the following, whenever a player does a backup save (with
671 * the 'save command), the player will be saved at home (EMERGENCY_MAP_*
672 * information that is specified later). IF this is not set, the player
673 * will be saved at his present location.
674 */
675
676/*#define BACKUP_SAVE_AT_HOME*/
677
678/* RESET_LOCATION_TIME is the number of seconds that must elapse before 502/* RESET_LOCATION_TIME is the number of seconds that must elapse before
679 * we will return the player to his savebed location. If this is zero, 503 * we will return the player to his savebed location. If this is zero,
680 * this feature is disabled (player will resume where ever he was 504 * this feature is disabled (player will resume where ever he was
681 * when he last logged off). If this is set to less than two hours, 505 * when he last logged off). If this is set to less than two hours,
682 * it will prevent players from camping out in treasure rooms. 506 * it will prevent players from camping out in treasure rooms.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines