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