1 /* $Id$ */ 2 /* File: config.h */ 3 4 #ifndef TOMENET_CONFIG_H 5 #define TOMENET_CONFIG_H 6 7 /* Purpose: Angband specific configuration stuff */ 8 9 /* Note : Much of the functionality of this file is being phased into 10 * tomenet.cfg. This will allow server reconfiguration without recompilation. 11 */ 12 13 /* 14 * Copyright (c) 1989 James E. Wilson, Robert A. Koeneke 15 * 16 * This software may be copied and distributed for educational, research, and 17 * not for profit purposes provided that this copyright and statement are 18 * included in all such copies. 19 */ 20 21 /* 22 * Look through the following lines, and where a comment includes the 23 * tag "OPTION:", examine the associated "#define" statements, and decide 24 * whether you wish to keep, comment, or uncomment them. You should not 25 * have to modify any lines not indicated by "OPTION". 26 * 27 * Note: Also examine the "system" configuration file "h-config.h" 28 * and the variable initialization file "variable.c". If you change 29 * anything in "variable.c", you only need to recompile that file. 30 * 31 * And finally, remember that the "Makefile" will specify some rather 32 * important compile time options, like what visual module to use. 33 */ 34 35 36 /* 37 * OPTION: See the Makefile(s), where several options may be declared. 38 * 39 * Some popular options include "USE_GCU" (allow use with Unix "curses"), 40 * "USE_X11" (allow basic use with Unix X11), "USE_XAW" (allow use with 41 * Unix X11 plus the Athena Widget set), and "USE_CAP" (allow use with 42 * the "termcap" library, or with hard-coded vt100 terminals). 43 * 44 * The old "USE_NCU" option has been replaced with "USE_GCU". 45 * 46 * Several other such options are available for non-unix machines, 47 * such as "MACINTOSH", "WINDOWS", "USE_IBM", "USE_EMX". 48 * 49 * You may also need to specify the "system", using defines such as 50 * "SOLARIS" (for Solaris), etc, see "h-config.h" for more info. 51 */ 52 53 54 /* 55 * OPTION: Include some debugging code. Note that this option may 56 * result in a server that crashes more frequently, as a core dump 57 * will be done instead of killing the bad connection. 58 */ 59 #define DEBUG 60 61 /* 62 * OPTION: Break graphics on the client side. Due to a very bad 63 * network design, sending the character definitions needed for 64 * graphics may cause clients to not be able to connect. This 65 * disables this, which may help in resolving connection problems. 66 * Note that you will need to connect to an 0.5.4 or later server 67 * for this to work. 68 * 69 * This option will be taken out in 0.6.0, which will have a 70 * completely different network design, thus alleviating this and 71 * other problems. 72 */ 73 /* #define BREAK_GRAPHICS */ 74 75 /* 76 * OPTION: define "SPECIAL_BSD" for using certain versions of UNIX 77 * that use the 4.4BSD Lite version of Curses in "main-gcu.c" 78 */ 79 /* 80 * NOTE: FreeBSD user should *NOT* define SPECIAL_BSD. 81 */ 82 /* #define SPECIAL_BSD */ 83 84 /* #define NETBSD pfft -- indeed should go in makefile ;) */ 85 86 /* 87 * For server: can use crypt() for doing passwords 88 */ 89 #ifndef WIN32 90 #define HAVE_CRYPT 91 #endif 92 93 /* 94 * OPTION: Use the POSIX "termios" methods in "main-gcu.c" 95 */ 96 /* #define USE_TPOSIX */ 97 98 /* 99 * OPTION: Use the "termio" methods in "main-gcu.c" 100 */ 101 /* #define USE_TERMIO */ 102 103 /* 104 * OPTION: Use the icky BSD "tchars" methods in "main-gcu.c" 105 */ 106 /* #define USE_TCHARS */ 107 108 109 /* 110 * OPTION: Use "blocking getch() calls" in "main-gcu.c". 111 * Hack -- Note that this option will NOT work on many BSD machines 112 * Currently used whenever available, if you get a warning about 113 * "nodelay()" undefined, then make sure to undefine this. 114 */ 115 #if defined(SYS_V) || defined(AMIGA) 116 # define USE_GETCH 117 #endif 118 119 120 /* 121 * OPTION: Use the "curs_set()" call in "main-gcu.c". 122 * Hack -- This option will not work on most BSD machines 123 */ 124 #ifdef SYS_V 125 # define USE_CURS_SET 126 #endif 127 128 129 /* 130 * OPTION: Include "ncurses.h" instead of "curses.h" in "main-gcu.c" 131 */ 132 #define USE_NCURSES 133 134 135 /* 136 * OPTION: for multi-user machines running the game setuid to some other 137 * user (like 'games') this SAFE_SETUID option allows the program to drop 138 * its privileges when saving files that allow for user specified pathnames. 139 * This lets the game be installed system wide without major security 140 * concerns. There should not be any side effects on any machines. 141 * 142 * This will handle "gids" correctly once the permissions are set right. 143 */ 144 #define SAFE_SETUID 145 146 147 /* 148 * This flag enables the "POSIX" methods for "SAFE_SETUID". 149 */ 150 #ifdef _POSIX_SAVED_IDS 151 # define SAFE_SETUID_POSIX 152 #endif 153 154 155 /* 156 * This "fix" is from "Yoshiaki KASAHARA <kasahara@csce.kyushu-u.ac.jp>" 157 * It prevents problems on (non-Solaris) Suns using "SAFE_SETUID". 158 */ 159 #if defined(sun) && !defined(SOLARIS) 160 # undef SAFE_SETUID_POSIX 161 #endif 162 163 164 165 166 /* 167 * OPTION: for the AFS distributed file system, define this to ensure that 168 * the program is secure with respect to the setuid code. This option has 169 * not been tested (to the best of my knowledge). This option may require 170 * some weird tricks with "player_uid" and such involving "defines". 171 * Note that this option used the AFS library routines Authenticate(), 172 * bePlayer(), beGames() to enforce the proper priviledges. 173 * You may need to turn "SAFE_SETUID" off to use this option. 174 */ 175 /* #define SECURE */ 176 177 178 179 180 /* 181 * OPTION: Verify savefile Checksums (Angband 2.7.0 and up) 182 * This option can help prevent "corruption" of savefiles, and also 183 * stop intentional modification by amateur users. 184 */ 185 #define VERIFY_CHECKSUMS 186 187 188 /* 189 * OPTION: Forbid the use of "fiddled" savefiles. As far as I can tell, 190 * a fiddled savefile is one with an internal timestamp different from 191 * the actual timestamp. Thus, turning this option on forbids one from 192 * copying a savefile to a different name. Combined with disabling the 193 * ability to save the game without quitting, and with some method of 194 * stopping the user from killing the process at the tombstone screen, 195 * this should prevent the use of backup savefiles. It may also stop 196 * the use of savefiles from other platforms, so be careful. 197 */ 198 /* #define VERIFY_TIMESTAMP */ 199 200 201 /* 202 * OPTION: Forbid the "savefile over-write" cheat, in which you simply 203 * run another copy of the game, loading a previously saved savefile, 204 * and let that copy over-write the "dead" savefile later. This option 205 * either locks the savefile, or creates a fake "xxx.lok" file to prevent 206 * the use of the savefile until the file is deleted. Not ready yet. 207 */ 208 /* #define VERIFY_SAVEFILE */ 209 210 211 /* 212 * OPTION: Set the metaserver address. The metaserver keeps track of 213 * all running servers so people can find an active server with other 214 * players on. Define this to be an empty string if you don't want to 215 * report to a metaserver. 216 */ 217 218 /* NOTE: client uses these values. 219 * server uses those in tomenet.cfg. 220 * bad design. 221 */ 222 223 //#define META_ADDRESS "62.210.141.11" 224 //#define META_ADDRESS_2 "europe.tomenet.eu" 225 #define META_ADDRESS "meta.tomenet.eu" 226 #define META_ADDRESS_2 "37.187.75.24" 227 228 /* 229 * Server gateway: Provide raw data for applications 230 */ 231 #define SERVER_GWPORT 232 233 /* 234 * Worlds server connection 235 */ 236 /* for local testing - if you see this commented out, that means 237 * I committed it by mistake. please just make it revert back. -Jir 238 */ 239 /* Would you make it a tomenet.cfg option? */ 240 #ifndef WIN32 241 #define TOMENET_WORLDS 242 #endif 243 244 #if 0 /* moved to tomenet.cfg.. */ 245 #define BIND_NAME "tomenet.eu" 246 #define BIND_IP "64.53.71.115" 247 #endif 248 249 250 #if 0 /* not used for good, most likely. DELETEME */ 251 /* 252 * OPTION: Set a vhost bind address. This is only used if you have 253 * multiple IP's on a single box, and care which one the server 254 * binds too, ( for name purposes, perhaps ). 255 * Note that this allows multiple servers to run on a single 256 * machine as well. 257 * Probably almost never used. 258 */ 259 260 /* Define the password for the server console, used if NEW_SERVER_CONSOLE 261 * is defined below. Provides authentication for the tomenetconsole program. 262 */ 263 #define CONSOLE_PASSWORD "change_me" 264 265 266 /* Define the name of a special administration character who gets 267 * special powers, and will hopefully eventually get wizard mode. 268 * Better documentation of this feature is needed. 269 * In the future these two characters will probably be combined. 270 */ 271 272 #define ADMIN_WIZARD "Serverchez" 273 #define DUNGEON_MASTER "DungeonMaster" 274 275 /* for the unique respawn... */ 276 #define COME_BACK_TIME 480 277 278 /* Base probability of a level unstaticing */ 279 /* Roughly once an hour (10 fps, 3600 seconds in an hour) */ 280 #define LEVEL_UNSTATIC_PROB 36000 281 282 283 /* OPTION : Keep the town backwards compatible with some previous development 284 * versions, specifically those that have a broken auction house. You probably 285 * don't want to enable this unless you have been running a development version of 286 * the code that has a 'store 9' in it. 287 */ 288 /* #define DEVEL_TOWN_COMPATIBILITY */ 289 #endif /* 0 */ 290 291 /* 292 * OPTION: Use wider corrdiors (room for two people abreast). 293 */ 294 #define WIDE_CORRIDORS 295 296 /* 297 * OPTION: Allow players to interact. This has many effects, mainly 298 * that people can hit each other to do damage, and spells will now 299 * harm other players when they hit. 300 */ 301 /* obsolete - set USE_PK_RULES in tomenet.cfg instead. */ 302 /*#define PLAYER_INTERACTION */ 303 304 /* 305 * OPTION: Hack -- Compile in support for "Spoiler Generation" 306 */ 307 /* #define ALLOW_SPOILERS */ 308 309 310 /* 311 * OPTION: Allow "do_cmd_colors" at run-time 312 */ 313 #define ALLOW_COLORS 314 315 /* 316 * OPTION: Allow "do_cmd_visuals" at run-time 317 */ 318 #define ALLOW_VISUALS 319 320 /* 321 * OPTION: Allow "do_cmd_macros" at run-time 322 */ 323 #define ALLOW_MACROS 324 325 326 /* 327 * OPTION: Allow characteres to be "auto-rolled" 328 */ 329 /* #define ALLOW_AUTOROLLER */ 330 331 332 /* 333 * OPTION: Allow monsters to "flee" when hit hard 334 */ 335 #define ALLOW_FEAR 336 337 /* 338 * OPTION: Allow monsters to "flee" from strong players 339 */ 340 #define ALLOW_TERROR 341 342 343 /* 344 * OPTION: Allow parsing of the ascii template files in "init.c". 345 * This must be defined if you do not have valid binary image files. 346 * It should be usually be defined anyway to allow easy "updating". 347 */ 348 #define ALLOW_TEMPLATES 349 350 /* 351 * OPTION: Allow loading of pre-2.7.0 savefiles. Note that it takes 352 * about 15K of code in "save-old.c" to parse the old savefile format. 353 * Angband 2.8.0 will ignore a lot of info from pre-2.7.0 savefiles. 354 */ 355 /* #define ALLOW_OLD_SAVEFILES */ 356 357 358 /* 359 * OPTION: Delay the loading of the "f_text" array until it is actually 360 * needed, saving ~1K, since "feature" descriptions are unused. 361 */ 362 /* #define DELAY_LOAD_F_TEXT */ 363 364 /* 365 * OPTION: Delay the loading of the "k_text" array until it is actually 366 * needed, saving ~1K, since "object" descriptions are unused. 367 */ 368 /* #define DELAY_LOAD_K_TEXT */ 369 370 /* 371 * OPTION: Delay the loading of the "a_text" array until it is actually 372 * needed, saving ~1K, since "artifact" descriptions are unused. 373 */ 374 /* #define DELAY_LOAD_A_TEXT */ 375 376 /* 377 * OPTION: Delay the loading of the "e_text" array until it is actually 378 * needed, saving ~1K, since "ego-item" descriptions are unused. 379 */ 380 /* #define DELAY_LOAD_E_TEXT */ 381 382 /* 383 * OPTION: Delay the loading of the "r_text" array until it is actually 384 * needed, saving ~60K, but "simplifying" the "monster" descriptions. 385 */ 386 /* #define DELAY_LOAD_R_TEXT */ 387 388 /* 389 * OPTION: Delay the loading of the "v_text" array until it is actually 390 * needed, saving ~1K, but "destroying" the "vault" generation. 391 */ 392 /* #define DELAY_LOAD_V_TEXT */ 393 394 395 /* 396 * OPTION: Handle signals 397 */ 398 #define HANDLE_SIGNALS 399 400 401 /* 402 * OPTION: Allow use of the "flow_by_smell" and "flow_by_sound" 403 * software options, which enable "monster flowing". 404 */ 405 /* #define MONSTER_FLOW */ 406 407 408 409 #if 0 /* moved to defines.h - C. Blue */ 410 /* 411 * OPTION: Maximum flow depth when using "MONSTER_FLOW" 412 */ 413 #define MONSTER_FLOW_DEPTH 32 414 #endif 415 416 417 418 /* 419 * OPTION: Allow use of extended spell info -DRS- 420 */ 421 #define DRS_SHOW_SPELL_INFO 422 423 /* 424 * OPTION: Allow use of the monster health bar -DRS- 425 */ 426 #define DRS_SHOW_HEALTH_BAR 427 428 429 /* 430 * OPTION: Enable the "smart_learn" and "smart_cheat" options. 431 * They let monsters make more "intelligent" choices about attacks 432 * (including spell attacks) based on their observations of the 433 * player's reactions to previous attacks. The "smart_cheat" option 434 * lets the monster know how the player would react to an attack 435 * without actually needing to make the attack. The "smart_learn" 436 * option requires that a monster make a "failed" attack before 437 * learning that the player is not harmed by that attack. 438 * 439 * This adds about 3K to the memory and about 5K to the executable. 440 */ 441 /* 442 * NOTE: this option will be disabled unless it covers multi-player 443 * situation.. and prolly never. 444 */ 445 /* #define DRS_SMART_OPTIONS */ 446 447 448 449 /* 450 * OPTION: Enable the "track_follow" and "track_target" options. 451 * They let monsters follow the player's foot-prints, or remember 452 * the player's recent locations. This code has been removed from 453 * the current version because it is being rewritten by Billy, and 454 * until it is ready, it will not work. Do not define this option. 455 */ 456 /* #define WDT_TRACK_OPTIONS */ 457 458 459 460 /* 461 * OPTION: Allow the use of "sound" in various places. 462 */ 463 464 /* --new sound system 'USE_SOUND_2010' in place utilizing SDL, state is experimental- C. Blue */ 465 #define USE_SOUND 466 #define USE_SOUND_2010 467 468 /* 469 * OPTION: Allow the use of "graphics" in various places 470 */ 471 /* #define USE_GRAPHICS */ 472 473 474 /* 475 * OPTION: Hack -- Macintosh stuff 476 */ 477 #ifdef MACINTOSH 478 479 /* Do not handle signals */ 480 # undef HANDLE_SIGNALS 481 482 #endif 483 484 485 /* 486 * OPTION: Hack -- Windows stuff 487 */ 488 #ifdef WINDOWS 489 490 /* Do not handle signals */ 491 /* # undef HANDLE_SIGNALS */ 492 493 #endif 494 495 496 497 /* 498 * OPTION: Set the "default" path to the angband "lib" directory. 499 * 500 * See "main.c" for usage, and note that this value is only used on 501 * certain machines, primarily Unix machines. If this value is used, 502 * it will be over-ridden by the "ANGBAND_PATH" environment variable, 503 * if that variable is defined and accessable. The final slash is 504 * optional, but it may eventually be required. 505 * 506 * Using the value "lib" below tells Angband that, by default, 507 * the user will run "angband" from the same directory that contains 508 * the "lib" directory. This is a reasonable (but imperfect) default. 509 * 510 * If at all possible, you should change this value to refer to the 511 * actual location of the "lib" folder, for example, "/tmp/angband/lib/" 512 * or "/usr/games/lib/angband/", or "/pkg/angband/lib". 513 */ 514 #ifndef DEFAULT_PATH 515 # define DEFAULT_PATH "lib" 516 #endif 517 518 519 /* 520 * On multiuser systems, add the "uid" to savefile names 521 */ 522 #ifdef SET_UID 523 # define SAVEFILE_USE_UID 524 #endif 525 526 527 /* 528 * OPTION: Check the "time" against "lib/file/hours.txt" 529 */ 530 /* #define CHECK_TIME */ 531 532 /* 533 * OPTION: Check the "load" against "lib/file/load.txt" 534 * This may require the 'rpcsvs' library 535 */ 536 /* #define CHECK_LOAD */ 537 538 539 /* 540 * OPTION: For some brain-dead computers with no command line interface, 541 * namely Macintosh, there has to be some way of "naming" your savefiles. 542 * The current "Macintosh" hack is to make it so whenever the character 543 * name changes, the savefile is renamed accordingly. But on normal 544 * machines, once you manage to "load" a savefile, it stays that way. 545 * Macintosh is particularly weird because you can load savefiles that 546 * are not contained in the "lib:save:" folder, and if you change the 547 * player's name, it will then save the savefile elsewhere. Note that 548 * this also gives a method of "bypassing" the "VERIFY_TIMESTAMP" code. 549 */ 550 #if defined(MACINTOSH) || defined(WINDOWS) || defined(AMIGA) 551 # define SAVEFILE_MUTABLE 552 #endif 553 554 555 /* 556 * OPTION: Capitalize the "user_name" (for "default" player name) 557 * This option is only relevant on SET_UID machines. 558 */ 559 #define CAPITALIZE_USER_NAME 560 561 562 563 /* 564 * OPTION: Shimmer Multi-Hued monsters/objects 565 */ 566 #define SHIMMER_MONSTERS 567 #define SHIMMER_OBJECTS 568 569 570 /* 571 * OPTION: Person to bother if something goes wrong. 572 */ 573 #define MAINTAINER "darkgod@t-o-m-e.net" 574 575 576 /* 577 * OPTION: Have the server respond to commands typed in on its tty. 578 */ 579 /*define SERVER_CONSOLE */ 580 581 /* 582 * OPTION: Enable a method to control the server from an external program. 583 */ 584 #define NEW_SERVER_CONSOLE 585 586 /* 587 * OPTION: Default font (when using X11). 588 */ 589 #define DEFAULT_X11_FONT "8x13" 590 591 /* 592 * OPTION: Default fonts (when using X11) 593 */ 594 #define DEFAULT_X11_FONT_SCREEN DEFAULT_X11_FONT 595 #define DEFAULT_X11_FONT_MIRROR DEFAULT_X11_FONT 596 #define DEFAULT_X11_FONT_RECALL DEFAULT_X11_FONT 597 #define DEFAULT_X11_FONT_CHOICE DEFAULT_X11_FONT 598 #define DEFAULT_X11_FONT_TERM_4 DEFAULT_X11_FONT 599 #define DEFAULT_X11_FONT_TERM_5 DEFAULT_X11_FONT 600 #define DEFAULT_X11_FONT_TERM_6 DEFAULT_X11_FONT 601 #define DEFAULT_X11_FONT_TERM_7 DEFAULT_X11_FONT 602 603 604 605 /* 606 * Hack -- Special "ancient machine" versions 607 */ 608 #if defined(USE_286) || defined(ANGBAND_LITE_MAC) 609 # ifndef ANGBAND_LITE 610 # define ANGBAND_LITE 611 # endif 612 #endif 613 614 /* 615 * OPTION: Attempt to minimize the size of the game 616 */ 617 #ifndef ANGBAND_LITE 618 /* #define ANGBAND_LITE */ 619 #endif 620 621 /* 622 * Hack -- React to the "ANGBAND_LITE" flag 623 */ 624 #ifdef ANGBAND_LITE 625 # undef ALLOW_COLORS 626 # undef ALLOW_VISUALS 627 # undef ALLOW_MACROS 628 # undef MONSTER_FLOW 629 # undef WDT_TRACK_OPTIONS 630 # undef DRS_SMART_OPTIONS 631 # undef ALLOW_OLD_SAVEFILES 632 # undef ALLOW_BORG 633 # undef ALLOW_WIZARD 634 # undef ALLOW_SPOILERS 635 # undef ALLOW_TEMPLATES 636 # undef DELAY_LOAD_R_TEXT 637 # define DELAY_LOAD_R_TEXT 638 #endif 639 640 641 642 /* 643 * OPTION: Attempt to prevent all "cheating" 644 */ 645 /* #define VERIFY_HONOR */ 646 647 648 /* 649 * React to the "VERIFY_HONOR" flag 650 */ 651 #ifdef VERIFY_HONOR 652 # define VERIFY_SAVEFILE 653 # define VERIFY_CHECKSUMS 654 # define VERIFY_TIMESTAMPS 655 #endif 656 657 658 #define NEW_DUNGEON 659 660 #define USE_LUA 661 662 /* 663 * OPTION: Random Uniques and Ego Monsters. 664 * not fully implemented yet. -Jir- 665 * (3.2.2) 666 * 667 * Don't remove this; sure it won't compile! :-/ 668 * To disable this, pls set MEGO_CHANCE to 0 instead. 669 * TODO: make this option valid 670 */ 671 #define RANDUNIS 672 /* % chances of getting ego monsters(server/monster2.c) [18]*/ 673 #define MEGO_CHANCE 18 674 675 676 /* Randart rarity (server/object2.c) [80] */ 677 #define RANDART_RARITY 80 678 679 680 /* 681 * Size of radius-tables, used to optimize blasts/AI etc. [16] 682 * 683 * 16 should be able to cover all the spells handled in project(). 684 * Code by the old way if the radius surpasses this(eg.*Destruction*). 685 * it will occupy approximately (2x(r)^2x3.14+r+1) bytes. 686 */ 687 #define PREPARE_RADIUS 16 688 689 /* 690 * OPTION: verbosity of server for debug msgs in stdout/tomenet.log. 691 * 692 * 0 - no debug msgs 693 * 1 - very recent debug msgs 694 * 2 - most of recent debug msgs 695 * 3 - most of debug msgs (noisy) 696 * 4 - everything 697 */ 698 #define DEBUG_LEVEL 1 699 700 /* 701 * OPTION: verbosity of server for anti-cheeze msgs in stdout/tomenet.log. 702 * 703 * 0 - no cheeze msgs 704 * 1 - very limited cheeze msgs 705 * (nothing so far) 706 * 2 - most of cheeze msgs 707 * hourly cheeze() log, money transaction 708 * 3 - most of cheeze msgs (noisy) 709 * item transaction 710 * 4 - everything 711 * cheeze() log every minute 712 */ 713 #define CHEEZELOG_LEVEL 3 714 715 /* 716 * OPTION: verbosity of server for players. 717 * (XXX This should be handled by client-side option; 718 * cf. taciturn_messages, last_words, speak_unique) 719 * 720 * 0 - deadly quiet [The first message you'll receive might be 'You die.'] 721 * 1 - seldom speaks ['You hit ..!' etc. are surpressed.] 722 * 2 - (default) 723 * 3 - chatterbox [dying msg, monster speach etc.] 724 * 725 * NOTE: chatterbox levels 0-1 are not implemented yet; 726 * set this to 3 basically. 727 */ 728 #define CHATTERBOX_LEVEL 3 729 730 /* 731 * OPTION: suppress visual effects in project() [3, 3] 732 * To disable, comment it out. (melee2.c, spells1.c, variables.c) 733 * 734 * If you recalled into a pack of hounds, the visual effects of breathes 735 * slows the server/client and make it almost impossible to control. 736 * This option prevents this by limiting the maximum # of blasts 737 * per (PROJECTION_FLUSH_LIMIT_TURNS * MONSTER_TURNS) turns. 738 * 739 * NOTE: of course, it can happen that you cannot see the attacks made. 740 * 741 * XXX: Visual effects like this should be done in 100% client-side, 742 * so that it doesn't affect connection. 743 * This can be done by adjusting TERM_XTRA_DELAY, for example. 744 * (see also: thin_down_flush) 745 */ 746 #define PROJECTION_FLUSH_LIMIT 9 747 #define PROJECTION_FLUSH_LIMIT_TURNS 3 748 749 /* 750 * OPTION: the interval of monster turns. [6] 751 * If the value is 6 and FPS is 60, monsters are processed 10 times/second. 752 * This should be of *great* help for slow servers :) 753 */ 754 #define MONSTER_TURNS 6 755 #define NPC_TURNS 6 /* Programmable NPC Turns */ 756 757 /* 758 * OPTION: allow sanity display. 759 * 760 * affects both client and server, so be warned. TBH, I'm tired. 761 */ 762 #define SHOW_SANITY 763 764 /* spells1.c, cmd2.c */ 765 /* Chance of bolt/ball harming party-member by accident. [10] */ 766 #define FRIEND_FIRE_CHANCE 0 767 /* Chance of bolt/ball harming neutral-player by accident. [50] */ 768 #define NEUTRAL_FIRE_CHANCE 0 769 770 /* OPTION: allow monsters to carry objects. */ 771 #define MONSTER_INVENTORY 772 773 /* 774 * OPTION: default radii used for some kinds of magic (like detection). 775 * artifacts uses (DEFAULT_RADIUS * 2) instead. 776 * 777 * TODO: DEFAULT_RADIUS_SPELL should be based on skills! 778 */ 779 #define DEFAULT_RADIUS 18 780 /*#define DEFAULT_RADIUS_SPELL(p_ptr) (DEFAULT_RADIUS - 5 + p_ptr->lev / 5) */ 781 #define DEFAULT_RADIUS_DEV(p_ptr) (DEFAULT_RADIUS - 5 + p_ptr->skill_dev / 8) 782 /* NOTE: skill_dev is already affected by SKILL_DEVICE 783 * get_skill_scale(p_ptr, SKILL_DEVICE, 100) */ 784 785 /* 786 * Monster themes above this value in percent are told to the players 787 * via '/ver 1'. (If below ... that's "spice" ;) 788 * (server/cmd4.c, server/monster2.c) 789 */ 790 #define TELL_MONSTER_ABOVE 15 791 792 /* 793 * OPTION: Use 'old' update_view function (init2.c, cave.c) 794 * The older one proved out to be more effective and fast, so define it. 795 * (Newer one allows more excellent LOS handling, and it should be faster 796 * if update_lite is integrated with it.) 797 */ 798 #define USE_OLD_UPDATE_VIEW 799 800 /* OPTION: Use mangband-style houses in place of Vanilla/ToME ones. 801 * (make clean!) 802 */ 803 /* #define USE_MANG_HOUSE_ONLY *//* Not tested yet */ 804 #define USE_MANG_HOUSE 805 #define MANG_HOUSE_RATE 85 /* 80 is important to allow newbies without */ 806 /* 300k cash to spend to buy a house too! (C. Blue) */ 807 808 809 /* 810 * Below this line are client-only options. 811 * Probably we'd better separate them to another file? - Jir - 812 */ 813 814 /* 815 * OPTION: max # of history for chat, slash-cmd etc. 816 */ 817 #define MSG_HISTORY_MAX 30 818 819 #define EVIL_METACLIENT 820 821 #define CLIENT_SHIMMER 822 #endif 823 824 /* 825 * Use the new meta scheme to do neater things 826 */ 827 #define EXPERIMENTAL_META 828