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.12 by root, Fri Apr 7 22:44:11 2006 UTC vs.
Revision 1.32 by root, Sun Dec 31 10:28:36 2006 UTC

1/*
2 * static char *rcsid_config_h =
3 * "$Id: config.h,v 1.12 2006/04/07 22:44:11 root Exp $";
4 */
5
6/* 1/*
7 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
8 3
9 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
10 Copyright (C) 1992 Frank Tore Johansen 5 Copyright (C) 1992 Frank Tore Johansen
21 16
22 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
23 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
24 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 20
26 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
27*/ 22*/
28 23
29/* This file contains various #defines that select various options. 24/* This file contains various #defines that select various options.
30 * Some may not be desirable, and some just may not work. 25 * Some may not be desirable, and some just may not work.
31 * 26 *
71 * DEBUG - more verbose message logging? 66 * DEBUG - more verbose message logging?
72 * 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
73 * MAX_TIME - how long an internal tick is in microseconds 68 * MAX_TIME - how long an internal tick is in microseconds
74 * MANY_CORES - generate core dumps on gross errors instead of continuing? 69 * MANY_CORES - generate core dumps on gross errors instead of continuing?
75 * PARTY_KILL_LOG - stores party kill information 70 * PARTY_KILL_LOG - stores party kill information
76 * WATCHDOG - allows use of an external watchdog program
77 * 71 *
78 ***********************************************************************/ 72 ***********************************************************************/
79 73
80/* Use a very easy, non-challenging server? 74/* Use a very easy, non-challenging server?
81 * Defining the COZY_SERVER will make the server much less challenging: 75 * Defining the COZY_SERVER will make the server much less challenging:
137#define SIMPLE_EXP TRUE 131#define SIMPLE_EXP TRUE
138#define SPELLPOINT_LEVEL_DEPEND TRUE 132#define SPELLPOINT_LEVEL_DEPEND TRUE
139#define SPELL_ENCUMBRANCE TRUE 133#define SPELL_ENCUMBRANCE TRUE
140#define SPELL_FAILURE_EFFECTS FALSE 134#define SPELL_FAILURE_EFFECTS FALSE
141#define REAL_WIZ TRUE 135#define REAL_WIZ TRUE
142#define RECYCLE_TMP_MAPS FALSE
143#define RESURRECTION FALSE 136#define RESURRECTION FALSE
144#define SEARCH_ITEMS TRUE 137#define SEARCH_ITEMS TRUE
145#define NOT_PERMADETH TRUE 138#define NOT_PERMADETH TRUE
146#define EXPLORE_MODE FALSE 139#define EXPLORE_MODE FALSE
147#define STAT_LOSS_ON_DEATH FALSE 140#define STAT_LOSS_ON_DEATH FALSE
151#define ARMOR_MAX_ENCHANT 5 144#define ARMOR_MAX_ENCHANT 5
152#define ARMOR_WEIGHT_REDUCTION 10 145#define ARMOR_WEIGHT_REDUCTION 10
153#define ARMOR_WEIGHT_LINEAR TRUE 146#define ARMOR_WEIGHT_LINEAR TRUE
154#define ARMOR_SPEED_IMPROVEMENT 10 147#define ARMOR_SPEED_IMPROVEMENT 10
155#define ARMOR_SPEED_LINEAR TRUE 148#define ARMOR_SPEED_LINEAR TRUE
149#define CREATE_HOME_PORTALS FALSE
156 150
157/* you can edit the ones below */ 151/* you can edit the ones below */
158 152
159 153
160/* CS_LOGSTATS will cause the server to log various usage stats 154/* CS_LOGSTATS will cause the server to log various usage stats
162 * and so on.) This can be very useful if you are trying to measure 156 * and so on.) This can be very useful if you are trying to measure
163 * server/bandwidth usage. It will periodially dump out information 157 * server/bandwidth usage. It will periodially dump out information
164 * which contains usage stats for the last X amount of time. 158 * which contains usage stats for the last X amount of time.
165 * CS_LOGTIME is how often it will print out stats. 159 * CS_LOGTIME is how often it will print out stats.
166 */ 160 */
167#ifndef WIN32 /* ***win32 we set the following stuff in the IDE */
168#define CS_LOGSTATS 161#define CS_LOGSTATS
169#endif
170#ifdef CS_LOGSTATS
171#define CS_LOGTIME 600 162#define CS_LOGTIME 600
172#endif
173 163
174/* DEBUG generates copious amounts of output. I tend to change the CC options 164/* DEBUG generates copious amounts of output. I tend to change the CC options
175 * in the crosssite.def file if I want this. By default, you probably 165 * in the crosssite.def file if I want this. By default, you probably
176 * dont want this defined. 166 * dont want this defined.
177 */ 167 */
178#ifndef WIN32 /* ***win32 we set the following stuff in the IDE */
179#ifndef DEBUG 168#ifndef DEBUG
180#define DEBUG 169#define DEBUG
181#endif
182#endif 170#endif
183/* 171/*
184 * This option creates more core files. In some areas, there are certain 172 * This option creates more core files. In some areas, there are certain
185 * checks done to try and make the program more stable (ie, check 173 * checks done to try and make the program more stable (ie, check
186 * parameter for null, return if it is). These checks are being done 174 * parameter for null, return if it is). These checks are being done
211 * maps at that point. 199 * maps at that point.
212 * 200 *
213 * MSW 2001-05-28 201 * MSW 2001-05-28
214 */ 202 */
215 203
216#define MAP_CLIENT_X 63 204#define MAP_CLIENT_X 31
217#define MAP_CLIENT_Y 63 205#define MAP_CLIENT_Y 31
218 206
219/* 207/*
220 * If you feel the game is too fast or too slow, change MAX_TIME. 208 * If you feel the game is too fast or too slow, change MAX_TIME.
221 * You can experiment with the 'speed <new_max_time> command first. 209 * You can experiment with the 'speed <new_max_time> command first.
222 * The length of a tick is MAX_TIME microseconds. During a tick, 210 * The length of a tick is MAX_TIME microseconds. During a tick,
231 */ 219 */
232#define NO_POLYMORPH 220#define NO_POLYMORPH
233 221
234 222
235/* This determine how many entries are stored in the kill log. You 223/* This determine how many entries are stored in the kill log. You
236 * can see this information with the 'party kills' command. More entries 224 * can see this information with the 'party kills' command. More entries
237 * mean slower performance and more memory. IF this is not defined, then 225 * mean slower performance and more memory.
238 * this feature is disabled.
239 */ 226 */
240#define PARTY_KILL_LOG 20 227#define PARTY_KILL_LOG 40
241 228
242/* 229/*
243 * The PERM_EXP values adjust the behaviour of permenent experience. - if 230 * The PERM_EXP values adjust the behaviour of permenent experience. - if
244 * the setting permanent_experience_percentage is zero, these values have 231 * the setting permanent_experience_percentage is zero, these values have
245 * no meaning. The value in the settings file is the percentage of the 232 * no meaning. The value in the settings file is the percentage of the
262 */ 249 */
263/* GD */ 250/* GD */
264 251
265#define PERM_EXP_GAIN_RATIO 0.10f 252#define PERM_EXP_GAIN_RATIO 0.10f
266#define PERM_EXP_MAX_LOSS_RATIO 0.50f 253#define PERM_EXP_MAX_LOSS_RATIO 0.50f
267
268/*
269 * WATCHDOG lets sends datagrams to port 13325 on localhost
270 * in (more-or-less) regular intervals, so an external watchdog
271 * program can kill the server if it hangs (for whatever reason).
272 * It shouldn't hurt anyone if this is defined but you don't
273 * have an watchdog program.
274 */
275#ifndef WIN32 /* ***win32 disable watchdog as win32 default */
276#define WATCHDOG
277#endif
278
279 254
280/* Enable the new material code - it needs some work. You can 255/* Enable the new material code - it needs some work. You can
281 * enable this, and things will work, just you'll see a whole 256 * enable this, and things will work, just you'll see a whole
282 * bunch more materials show up, and thus a whole bunch more materials 257 * bunch more materials show up, and thus a whole bunch more materials
283 * in your inventory, and the sorting for them isn't really good. 258 * in your inventory, and the sorting for them isn't really good.
346 * SHUTDOWN - used when shutting down the server 321 * SHUTDOWN - used when shutting down the server
347 * SOCKETBUFSIZE - size of buffer used internally by the server for storing 322 * SOCKETBUFSIZE - size of buffer used internally by the server for storing
348 * backlogged messages. 323 * backlogged messages.
349 * TMPDIR - directory to use for temp files 324 * TMPDIR - directory to use for temp files
350 * UNIQUE_DIR - directory to put unique item files into 325 * UNIQUE_DIR - directory to put unique item files into
351 * USE_CALLOC for some memory requests
352 *********************************************************************** 326 ***********************************************************************
353 */ 327 */
354 328
355/* 329/*
356 * BANFILE - file used to ban certain sites from playing. See the example 330 * BANFILE - file used to ban certain sites from playing. See the example
357 * ban_file for examples. 331 * ban_file for examples.
358 */ 332 */
359
360#ifndef BANFILE 333#ifndef BANFILE
361#define BANFILE "ban_file" 334#define BANFILE "ban_file"
362#endif 335#endif
363 336
364/* CSPORT is the port used for the new client/server code. Change 337/* CSPORT is the port used for the new client/server code. Change
365 * if desired. Only of relevance if ERIC_SERVER is set above 338 * if desired. Only of relevance if ERIC_SERVER is set above
366 */ 339 */
367
368#define CSPORT 13327 /* old port + 1 */ 340#define CSPORT 13327 /* old port + 1 */
369 341
370 342
371/* 343/*
372 * DMFILE 344 * DMFILE
373 * A file containing valid names that can be dm, one on each line. See 345 * A file containing valid names that can be dm, one on each line. See
374 * example dm_file for syntax help. 346 * example dm_file for syntax help.
375 */ 347 */
376
377#ifndef DMFILE 348#ifndef DMFILE
378#define DMFILE "dm_file" 349#define DMFILE "dm_file"
379#endif 350#endif
380 351
381 352
382/* LOGFILE specifies which file to log to when playing with the 353/* LOGFILE specifies which file to log to when playing with the
383 * -daemon option. 354 * -daemon option.
384 */ 355 */
385
386#ifndef LOGFILE 356#ifndef LOGFILE
387#ifdef WIN32 /* change define path */
388#define LOGFILE "var\\crossfire.log"
389#else
390#define LOGFILE "/var/log/crossfire/logfile" 357#define LOGFILE "/var/log/crossfire/logfile"
391#endif 358#endif
392#endif
393
394/*
395 * MAP_MAXTIMEOUT tells the maximum of ticks until a map is swapped out
396 * after a player has left it. If it is set to 0, maps are
397 * swapped out the instant the last player leaves it.
398 * If you are low on memory, you should set this to 0.
399 * Note that depending on the map timeout variable, the number of
400 * objects can get quite high. This is because depending on the maps,
401 * a player could be having the objects of several maps in memory
402 * (the map he is in right now, and the ones he left recently.)
403 * Each map has it's own TIMEOUT value and value field and it is
404 * defaulted to 300
405 *
406 * Having a nonzero value can be useful: If a player leaves a map (and thus
407 * is on a new map), and realizes they want to go back pretty quickly, the
408 * old map is still in memory, so don't need to go disk and get it.
409 *
410 * MAP_MINTIMEOUT is used as a minimum timeout value - if the map is set
411 * to swap out in less than that many ticks, we use the MINTIMEOUT value
412 * velow. If MINTIMEOUT > MAXTIMEOUT, MAXTIMEOUT will be used for all
413 * maps.
414 */
415
416/* How many ticks till maps are swapped out */
417#define MAP_MAXTIMEOUT 1000
418/* At least that many ticks before swapout */
419#define MAP_MINTIMEOUT 500
420
421/*
422 * MAP_MAXRESET is the maximum time a map can have before being reset. It
423 * will override the time value set in the map, if that time is longer than
424 * MAP_MAXRESET. This value is in seconds. If you are low on space on the
425 * TMPDIR device, set this value to somethign small. The default
426 * value in the map object is MAP_DEFAULTRESET (given in seconds.)
427 * I personally like 1 hour myself, for solo play. It is long enough that
428 * maps won't be resetting as a solve a quest, but short enough that some
429 * maps (like shops and inns) will be reset during the time I play.
430 * Comment out MAP_MAXRESET time if you always want to use the value
431 * in the map archetype.
432 */
433
434/* Maximum time to reset. */
435#define MAP_MAXRESET 7200
436/* Default time to reset. */
437#define MAP_DEFAULTRESET 7200
438
439/*
440 * MAX_OBJECTS is no hard limit. If this limit is exceeded, crossfire
441 * will look for maps which are already scheldued for swapping, and
442 * promptly swap them out before new maps are being loaded.
443 * If playing only by yourself, this number can probably be as low as
444 * 3000. If in server mode, probably figure about 1000-2000 objects per
445 * active player (if they typically play on different maps), for some guess
446 * on how many to define. If it is too low, maps just get swapped out
447 * immediately, causing a performance hit. If it is too high, the program
448 * consumes more memory. If you have gobs of free memory, a high number
449 * might not be a bad idea. Each object is around 350 bytes right now.
450 * 25000 is about 8.5 MB
451 */
452
453#define MAX_OBJECTS 100000
454
455/*
456 * Max objects low water mark (lwm). If defined, the map swapping strategy
457 * is a bit different:
458 * 1) We only start swapping maps if the number of objects in use is
459 * greater than MAX_OBJECTS above.
460 * 2) We keep swapping maps until there are no more maps to swap or the number
461 * of used objects drop below this low water mark value.
462 *
463 * If this is not defined, maps are swapped out on the timeout value above,
464 * or if the number of objects used is greater than MAX_OBJECTS above.
465 *
466 * Note: While this will prevent the pauses noticed when saving maps, there
467 * can instead be cpu performance penalties - any objects in memory get
468 * processed. So if there are 4000 objects in memory, and 1000 of them
469 * are living objects, the system will process all 1000 objects each tick.
470 * With swapping enable, maybe 600 of the objects would have gotten swapped
471 * out. This is less likely a problem with a smaller number of MAX_OBJECTS
472 * than if it is very large.
473 * Also, the pauses you do get can be worse, as if you enter a map with
474 * a lot of new objects and go above MAX_OBJECTS, it may have to swap out
475 * many maps to get below the low water mark.
476 */
477
478/*#define MAX_OBJECTS_LWM MAX_OBJECTS/2*/
479
480/*
481 * Turning on MEMORY_DEBUG slows down execution, but makes it easier
482 * to find memory corruption and leaks. Currently, the main thing
483 * that happens with this activated is that one malloc is done for
484 * each object - thus whatever debugging mechanism the malloc library
485 * (or other debugging tool provides, like purify), it can track this
486 * individual malloc. Default behaviour when turned off is that
487 * enough memory is malloced for a large group of objects so malloc does
488 * not need to be called as often.
489 * This should only be turned on if some form of memory debugging tool
490 * is being used - otherwise, turning this on will cause some performance
491 * hit with no useful advantage.
492 */
493
494/*#define MEMORY_DEBUG*/
495
496 359
497/* 360/*
498 * If you want to have a Message Of The Day file, define MOTD to be 361 * If you want to have a Message Of The Day file, define MOTD to be
499 * the file with the message. If the file doesn't exist or if it 362 * the file with the message. If the file doesn't exist or if it
500 * is empty, no message will be displayed. 363 * is empty, no message will be displayed.
501 * (It resides in the CONFDIR directory) 364 * (It resides in the CONFDIR directory)
502 */ 365 */
503
504#define MOTD "motd" 366#define MOTD "motd"
505 367
506/* 368/*
507 * You can restrict playing in certain times by creating a PERMIT_FILE 369 * You can restrict playing in certain times by creating a PERMIT_FILE
508 * in CONFDIR. See the sample for usage notes. 370 * in CONFDIR. See the sample for usage notes.
509 */ 371 */
510
511#define PERM_FILE "forbid" 372#define PERM_FILE "forbid"
512 373
513/* 374/*
514 * If you want to take the game down while installing new versions, or 375 * If you want to take the game down while installing new versions, or
515 * for other reasons, put a message into the SHUTDOWN_FILE file. 376 * for other reasons, put a message into the SHUTDOWN_FILE file.
516 * Remember to delete it when you open the game again. 377 * Remember to delete it when you open the game again.
517 * (It resides in the CONFDIR directory) 378 * (It resides in the CONFDIR directory)
518 */ 379 */
519
520#ifndef SHUTDOWN_FILE 380#ifndef SHUTDOWN_FILE
521#define SHUTDOWN_FILE "shutdown" 381#define SHUTDOWN_FILE "shutdown"
522#endif 382#endif
523 383
524 384
530 * large. When the OS buffer and this buffer is exhausted, the server 390 * large. When the OS buffer and this buffer is exhausted, the server
531 * will drop the client connection for falling too far behind. So if 391 * will drop the client connection for falling too far behind. So if
532 * you have very slow client connections, a larger value may be 392 * you have very slow client connections, a larger value may be
533 * warranted. 393 * warranted.
534 */ 394 */
535
536#define SOCKETBUFSIZE 128*1024 395#define SOCKETBUFSIZE 256*1024
537 396
538/* 397/*
539 * Your tmp-directory should be large enough to hold the uncompressed 398 * Your tmp-directory should be large enough to hold the uncompressed
540 * map-files for all who are playing. 399 * map-files for all who are playing. Local to 'lib' directory.
541 * It ought to be locally mounted, since the function used to generate
542 * unique temporary filenames isn't guaranteed to work over NFS or AFS
543 * On the other hand, if you know that only one crossfire server will be
544 * running using this temporary directory, it is likely to be safe to use
545 * something that is NFS mounted (but performance may suffer as NFS is
546 * slower than local disk)
547 */ 400 */
548
549/*#define TMPDIR "/home/hugin/a/crossfire/crossfire/tmp"*/
550#ifdef WIN32 /* change define path tmp */
551#define TMPDIR "tmp" 401#define TMPDIR "tmp"
552#else
553#define TMPDIR "/tmp"
554#endif
555 402
556 403
557/* Directory to use for unique items. This is placed into the 'lib' 404/* Directory to use for unique items. This is placed into the 'lib'
558 * directory. Changing this will cause any old unique items file 405 * directory. Changing this will cause any old unique items file
559 * not to be used. 406 * not to be used.
560 */ 407 */
561#define UNIQUE_DIR "unique-items" 408#define UNIQUE_DIR "unique-items"
562
563/*
564 * If undefined, malloc is always used.
565 * It looks like this can be oboleted. However, it can be useful to
566 * track down some bugs, as it will make sure that the entire data structure
567 * is set to 0, at the expense of speed.
568 * Rupert Goldie has run Purify against the code, and if this is disabled,
569 * apparantly there are a lot of uninitialized memory reads - I haven't
570 * seen any problem (maybe the memory reads are copies, and the destination
571 * doesn't actually use the garbage values either?), but the impact on speed
572 * of using this probably isn't great, and should make things more stable.
573 * Msw 8-9-97
574 */
575#define USE_CALLOC
576
577
578/*
579 * These define the players starting map and location on that map, and where
580 * emergency saves are defined. This should be left as is unless you make
581 * major changes to the map.
582 */
583
584#ifdef WIN32 /* change define path city */
585
586# define EMERGENCY_MAPPATH "\\city\\city"
587# define EMERGENCY_X 15
588# define EMERGENCY_Y 19
589#else
590# define EMERGENCY_MAPPATH "/city/city"
591# define EMERGENCY_X 15
592# define EMERGENCY_Y 19
593#endif
594
595 409
596/* 410/*
597 * These defines tells where, relative to LIBDIR, the maps, the map-index, 411 * These defines tells where, relative to LIBDIR, the maps, the map-index,
598 * archetypes highscore and treaures files and directories can be found. 412 * archetypes highscore and treaures files and directories can be found.
599 */ 413 */
603#define ARCHETYPES "archetypes" 417#define ARCHETYPES "archetypes"
604#define REGIONS "regions" 418#define REGIONS "regions"
605#define HIGHSCORE "highscore" 419#define HIGHSCORE "highscore"
606#define TREASURES "treasures" 420#define TREASURES "treasures"
607#define BANISHFILE "banish_file" 421#define BANISHFILE "banish_file"
608
609#define MAX_ERRORS 25 /* Bail out if more are received during tick */
610#define STARTMAX 500 /* How big array of objects to start with */
611#define OBJ_EXPAND 100 /* How big steps to use when expanding array */
612 422
613#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */ 423#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */
614 424
615#define ARCHTABLE 16384 /* Arch hashtable size */ 425#define ARCHTABLE 16384 /* Arch hashtable size */
616#define MAXSTRING 20 426#define MAXSTRING 20
684 * may not be large enough to save all of them.) As it is now, it will 494 * may not be large enough to save all of them.) As it is now, it will
685 * just set the base tick of when they log on, which should keep the 495 * just set the base tick of when they log on, which should keep the
686 * saves pretty well spread out (in a fairly random fashion.) 496 * saves pretty well spread out (in a fairly random fashion.)
687 */ 497 */
688 498
689#define AUTOSAVE 500 499#define AUTOSAVE 1000
690
691/* Often, emergency save fails because the memory corruption that caused
692 * the crash has trashed the characters too. Define NO_EMERGENCY_SAVE
693 * to disable emergency saves. This actually does
694 * prevent emergency saves now (Version 0.90.5).
695 */
696
697#define NO_EMERGENCY_SAVE
698
699/* By selecting the following, whenever a player does a backup save (with
700 * the 'save command), the player will be saved at home (EMERGENCY_MAP_*
701 * information that is specified later). IF this is not set, the player
702 * will be saved at his present location.
703 */
704
705/*#define BACKUP_SAVE_AT_HOME*/
706 500
707/* RESET_LOCATION_TIME is the number of seconds that must elapse before 501/* RESET_LOCATION_TIME is the number of seconds that must elapse before
708 * we will return the player to his savebed location. If this is zero, 502 * we will return the player to his savebed location. If this is zero,
709 * this feature is disabled (player will resume where ever he was 503 * this feature is disabled (player will resume where ever he was
710 * when he last logged off). If this is set to less than two hours, 504 * when he last logged off). If this is set to less than two hours,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines