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.1 by root, Fri Feb 3 07:12:48 2006 UTC vs.
Revision 1.25 by root, Fri Dec 15 20:07:02 2006 UTC

1/*
2 * static char *rcsid_config_h =
3 * "$Id: config.h,v 1.1 2006/02/03 07:12:48 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.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 ***********************************************************************/
73
74/* Use a very easy, non-challenging server?
75 * Defining the COZY_SERVER will make the server much less challenging:
76 * no stats loss on death, much less experience loss, and party members
77 * are treated by pet monsters as the owner itself when moving "through" them.
78 */
79#define COZY_SERVER 1
80
81/*
82 * Make it impossible to pk outside the arena.
83 */
84#define PROHIBIT_PLAYERKILL 1
79 85
80/* Use balanced stat loss code? 86/* Use balanced stat loss code?
81 * This code is a little more merciful with repeated stat loss at lower 87 * This code is a little more merciful with repeated stat loss at lower
82 * levels. Basically, the more stats you have lost, the less likely that 88 * levels. Basically, the more stats you have lost, the less likely that
83 * you will lose more. Additionally, lower level characters are shown 89 * you will lose more. Additionally, lower level characters are shown
107 * this gets more offset as the stat gets more depleted. 113 * this gets more offset as the stat gets more depleted.
108 * 114 *
109 */ 115 */
110/* GD */ 116/* GD */
111 117
112#define BALSL_LOSS_CHANCE_RATIO 4 118#define BALSL_LOSS_CHANCE_RATIO 100
113#define BALSL_NUMBER_LOSSES_RATIO 6 119#define BALSL_NUMBER_LOSSES_RATIO 100
114#define BALSL_MAX_LOSS_RATIO 2 120#define BALSL_MAX_LOSS_RATIO 100
115 121
116 122
117/* Don't edit these values. They are configured in lib/settings. These are 123/* Don't edit these values. They are configured in lib/settings. These are
118 Simply the defaults. */ 124 Simply the defaults. */
119 125
120#define BALANCED_STAT_LOSS FALSE 126#define BALANCED_STAT_LOSS FALSE
121#define USE_PERMANENT_EXPERIENCE FALSE 127#define PERMANENT_EXPERIENCE_RATIO 25
128#define DEATH_PENALTY_RATIO 20
129#define DEATH_PENALTY_LEVEL 3
122#define SET_TITLE TRUE 130#define SET_TITLE TRUE
123#define SIMPLE_EXP TRUE 131#define SIMPLE_EXP TRUE
124#define SPELLPOINT_LEVEL_DEPEND TRUE 132#define SPELLPOINT_LEVEL_DEPEND TRUE
125#define SPELL_ENCUMBRANCE TRUE 133#define SPELL_ENCUMBRANCE TRUE
126#define SPELL_FAILURE_EFFECTS FALSE 134#define SPELL_FAILURE_EFFECTS FALSE
137#define ARMOR_MAX_ENCHANT 5 145#define ARMOR_MAX_ENCHANT 5
138#define ARMOR_WEIGHT_REDUCTION 10 146#define ARMOR_WEIGHT_REDUCTION 10
139#define ARMOR_WEIGHT_LINEAR TRUE 147#define ARMOR_WEIGHT_LINEAR TRUE
140#define ARMOR_SPEED_IMPROVEMENT 10 148#define ARMOR_SPEED_IMPROVEMENT 10
141#define ARMOR_SPEED_LINEAR TRUE 149#define ARMOR_SPEED_LINEAR TRUE
150#define CREATE_HOME_PORTALS FALSE
142 151
143/* you can edit the ones below */ 152/* you can edit the ones below */
144 153
145 154
146/* CS_LOGSTATS will cause the server to log various usage stats 155/* CS_LOGSTATS will cause the server to log various usage stats
148 * and so on.) This can be very useful if you are trying to measure 157 * and so on.) This can be very useful if you are trying to measure
149 * server/bandwidth usage. It will periodially dump out information 158 * server/bandwidth usage. It will periodially dump out information
150 * which contains usage stats for the last X amount of time. 159 * which contains usage stats for the last X amount of time.
151 * CS_LOGTIME is how often it will print out stats. 160 * CS_LOGTIME is how often it will print out stats.
152 */ 161 */
153#ifndef WIN32 /* ***win32 we set the following stuff in the IDE */
154#define CS_LOGSTATS 162#define CS_LOGSTATS
155#endif
156#ifdef CS_LOGSTATS
157#define CS_LOGTIME 600 163#define CS_LOGTIME 600
158#endif
159 164
160/* DEBUG generates copious amounts of output. I tend to change the CC options 165/* DEBUG generates copious amounts of output. I tend to change the CC options
161 * in the crosssite.def file if I want this. By default, you probably 166 * in the crosssite.def file if I want this. By default, you probably
162 * dont want this defined. 167 * dont want this defined.
163 */ 168 */
164#ifndef WIN32 /* ***win32 we set the following stuff in the IDE */
165#ifndef DEBUG 169#ifndef DEBUG
166#define DEBUG 170#define DEBUG
167#endif
168#endif 171#endif
169/* 172/*
170 * This option creates more core files. In some areas, there are certain 173 * This option creates more core files. In some areas, there are certain
171 * checks done to try and make the program more stable (ie, check 174 * checks done to try and make the program more stable (ie, check
172 * parameter for null, return if it is). These checks are being done 175 * parameter for null, return if it is). These checks are being done
197 * maps at that point. 200 * maps at that point.
198 * 201 *
199 * MSW 2001-05-28 202 * MSW 2001-05-28
200 */ 203 */
201 204
202#define MAP_CLIENT_X 25 205#define MAP_CLIENT_X 31
203#define MAP_CLIENT_Y 25 206#define MAP_CLIENT_Y 31
204 207
205/* 208/*
206 * If you feel the game is too fast or too slow, change MAX_TIME. 209 * If you feel the game is too fast or too slow, change MAX_TIME.
207 * You can experiment with the 'speed <new_max_time> command first. 210 * You can experiment with the 'speed <new_max_time> command first.
208 * The length of a tick is MAX_TIME microseconds. During a tick, 211 * The length of a tick is MAX_TIME microseconds. During a tick,
221/* This determine how many entries are stored in the kill log. You 224/* This determine how many entries are stored in the kill log. You
222 * can see this information with the 'party kills' command. More entries 225 * can see this information with the 'party kills' command. More entries
223 * mean slower performance and more memory. IF this is not defined, then 226 * mean slower performance and more memory. IF this is not defined, then
224 * this feature is disabled. 227 * this feature is disabled.
225 */ 228 */
226/*
227#define PARTY_KILL_LOG 20 229#define PARTY_KILL_LOG 20
228*/
229 230
230/* Use permanent experience code? 231/*
231 * This code allows players to build up a small amount of 'permanent
232 * experience' which reduces the effect of large experience drains, such as
233 * death. This makes multiple frequent deaths less devastating, and also
234 * ensures that any character will make some gradual progress even if they
235 * die all of the time.
236 * A nice option if your keep dying due to massive client/server lags despite
237 * playing well... or you like to swim well outside of your depth. :)
238 *
239 * The PERM_EXP values adjust the behaviour of this option - if 232 * The PERM_EXP values adjust the behaviour of permenent experience. - if
240 * USE_PERMAMENT_EXPERIENCE if off, these values have no meaning. If it 233 * the setting permanent_experience_percentage is zero, these values have
241 * is on, the minimum ratio is the minimum amount of permanent exp relative 234 * no meaning. The value in the settings file is the percentage of the
242 * to the total exp in the skill (ie, at a default of .25, if you had 100 235 * experience that is permenent, the rest could be lost on death. When dying,
243 * experience, at least 25 of it would be permanent). The gain ratio 236 * the greatest amount of non-permenent exp it is possible to lose at one time
244 * is how much of experienced experience goes to the permanent value. 237 * is PERM_EXP_MAX_LOSS_RATIO - this is calculated as
245 * This does not detract from total exp gain (ie, if you gained 100 exp, 238 * total exp - perm exp * loss ratio. The gain ratio is how much of experienced
246 * 100 would go to the skill total and 10 to the permanent value). 239 * experience goes to the permanent value. This does not detract from total
247 * the loss ratio is the maximum amount of experience that can be lost 240 * exp gain (ie, if you gained 100 exp, 100 would go to the skill total and
248 * in any one hit - this is calculated as total exp - perm exp * loss ratio. 241 * 10 to the permanent value).
249 * 242 *
250 * A few thoughts on these default value (by MSW) 243 * A few thoughts on these default value (by MSW)
251 * gain ratio is pretty much meaningless until exp has been lost, as until 244 * gain ratio is pretty much meaningless until exp has been lost, as until
252 * that poin, the minimum ratio will be used. 245 * that poin, the value in the settings file will be used.
253 * It is also impossible for the exp to actually be reduced to the permanent 246 * It is also impossible for the exp to actually be reduced to the permanent
254 * exp ratio - since the loss ratio is .5, it will just get closer and 247 * exp ratio - since the loss ratio is .5, it will just get closer and
255 * closer. However, after about half a dozen hits, pretty much all the 248 * closer. However, after about half a dozen hits, pretty much all the
256 * exp that can be lost has been lost, and after that, only minor loss 249 * exp that can be lost has been lost, and after that, only minor loss
257 * will occur. 250 * will occur.
258 */ 251 */
259/* GD */ 252/* GD */
260 253
261#define PERM_EXP_MINIMUM_RATIO 0.25f
262#define PERM_EXP_GAIN_RATIO 0.10f 254#define PERM_EXP_GAIN_RATIO 0.10f
263#define PERM_EXP_MAX_LOSS_RATIO 0.50f 255#define PERM_EXP_MAX_LOSS_RATIO 0.50f
264
265/*
266 * WATCHDOG lets sends datagrams to port 13325 on localhost
267 * in (more-or-less) regular intervals, so an external watchdog
268 * program can kill the server if it hangs (for whatever reason).
269 * It shouldn't hurt anyone if this is defined but you don't
270 * have an watchdog program.
271 */
272#ifndef WIN32 /* ***win32 disable watchdog as win32 default */
273#define WATCHDOG
274#endif
275
276 256
277/* Enable the new material code - it needs some work. You can 257/* Enable the new material code - it needs some work. You can
278 * enable this, and things will work, just you'll see a whole 258 * enable this, and things will work, just you'll see a whole
279 * bunch more materials show up, and thus a whole bunch more materials 259 * bunch more materials show up, and thus a whole bunch more materials
280 * in your inventory, and the sorting for them isn't really good. 260 * in your inventory, and the sorting for them isn't really good.
343 * SHUTDOWN - used when shutting down the server 323 * SHUTDOWN - used when shutting down the server
344 * SOCKETBUFSIZE - size of buffer used internally by the server for storing 324 * SOCKETBUFSIZE - size of buffer used internally by the server for storing
345 * backlogged messages. 325 * backlogged messages.
346 * TMPDIR - directory to use for temp files 326 * TMPDIR - directory to use for temp files
347 * UNIQUE_DIR - directory to put unique item files into 327 * UNIQUE_DIR - directory to put unique item files into
348 * USE_CALLOC for some memory requests
349 *********************************************************************** 328 ***********************************************************************
350 */ 329 */
351 330
352/* 331/*
353 * BANFILE - file used to ban certain sites from playing. See the example 332 * BANFILE - file used to ban certain sites from playing. See the example
379/* LOGFILE specifies which file to log to when playing with the 358/* LOGFILE specifies which file to log to when playing with the
380 * -daemon option. 359 * -daemon option.
381 */ 360 */
382 361
383#ifndef LOGFILE 362#ifndef LOGFILE
384#ifdef WIN32 /* change define path */
385#define LOGFILE "var\\crossfire.log"
386#else
387#define LOGFILE "/var/log/crossfire/logfile" 363#define LOGFILE "/var/log/crossfire/logfile"
388#endif
389#endif 364#endif
390 365
391/* 366/*
392 * MAP_MAXTIMEOUT tells the maximum of ticks until a map is swapped out 367 * MAP_MAXTIMEOUT tells the maximum of ticks until a map is swapped out
393 * after a player has left it. If it is set to 0, maps are 368 * after a player has left it. If it is set to 0, maps are
409 * velow. If MINTIMEOUT > MAXTIMEOUT, MAXTIMEOUT will be used for all 384 * velow. If MINTIMEOUT > MAXTIMEOUT, MAXTIMEOUT will be used for all
410 * maps. 385 * maps.
411 */ 386 */
412 387
413/* How many ticks till maps are swapped out */ 388/* How many ticks till maps are swapped out */
414#define MAP_MAXTIMEOUT 1000 389#define MAP_MAXTIMEOUT 300
415/* At least that many ticks before swapout */ 390/* At least that many ticks before swapout */
416#define MAP_MINTIMEOUT 500 391#define MAP_MINTIMEOUT 300
417 392
418/* 393/*
419 * MAP_MAXRESET is the maximum time a map can have before being reset. It 394 * MAP_MAXRESET is the maximum time a map can have before being reset. It
420 * will override the time value set in the map, if that time is longer than 395 * will override the time value set in the map, if that time is longer than
421 * MAP_MAXRESET. This value is in seconds. If you are low on space on the 396 * MAP_MAXRESET. This value is in seconds. If you are low on space on the
429 */ 404 */
430 405
431/* Maximum time to reset. */ 406/* Maximum time to reset. */
432#define MAP_MAXRESET 7200 407#define MAP_MAXRESET 7200
433/* Default time to reset. */ 408/* Default time to reset. */
434#define MAP_DEFAULTRESET 7200 409#define MAP_DEFAULTRESET 3600
435 410
436/* 411/*
437 * MAX_OBJECTS is no hard limit. If this limit is exceeded, crossfire 412 * MAX_OBJECTS is no hard limit. If this limit is exceeded, crossfire
438 * will look for maps which are already scheldued for swapping, and 413 * will look for maps which are already scheldued for swapping, and
439 * promptly swap them out before new maps are being loaded. 414 * promptly swap them out before new maps are being loaded.
445 * consumes more memory. If you have gobs of free memory, a high number 420 * consumes more memory. If you have gobs of free memory, a high number
446 * might not be a bad idea. Each object is around 350 bytes right now. 421 * might not be a bad idea. Each object is around 350 bytes right now.
447 * 25000 is about 8.5 MB 422 * 25000 is about 8.5 MB
448 */ 423 */
449 424
450#define MAX_OBJECTS 100000 425#define MAX_OBJECTS 400000
451 426
452/* 427/*
453 * Max objects low water mark (lwm). If defined, the map swapping strategy 428 * Max objects low water mark (lwm). If defined, the map swapping strategy
454 * is a bit different: 429 * is a bit different:
455 * 1) We only start swapping maps if the number of objects in use is 430 * 1) We only start swapping maps if the number of objects in use is
528 * will drop the client connection for falling too far behind. So if 503 * will drop the client connection for falling too far behind. So if
529 * you have very slow client connections, a larger value may be 504 * you have very slow client connections, a larger value may be
530 * warranted. 505 * warranted.
531 */ 506 */
532 507
533#define SOCKETBUFSIZE 128*1024 508#define SOCKETBUFSIZE 256*1024
534 509
535/* 510/*
536 * Your tmp-directory should be large enough to hold the uncompressed 511 * Your tmp-directory should be large enough to hold the uncompressed
537 * map-files for all who are playing. 512 * map-files for all who are playing.
538 * It ought to be locally mounted, since the function used to generate 513 * It ought to be locally mounted, since the function used to generate
542 * something that is NFS mounted (but performance may suffer as NFS is 517 * something that is NFS mounted (but performance may suffer as NFS is
543 * slower than local disk) 518 * slower than local disk)
544 */ 519 */
545 520
546/*#define TMPDIR "/home/hugin/a/crossfire/crossfire/tmp"*/ 521/*#define TMPDIR "/home/hugin/a/crossfire/crossfire/tmp"*/
547#ifdef WIN32 /* change define path tmp */
548#define TMPDIR "tmp"
549#else
550#define TMPDIR "/tmp" 522#define TMPDIR "/tmp"
551#endif
552 523
553 524
554/* Directory to use for unique items. This is placed into the 'lib' 525/* Directory to use for unique items. This is placed into the 'lib'
555 * directory. Changing this will cause any old unique items file 526 * directory. Changing this will cause any old unique items file
556 * not to be used. 527 * not to be used.
557 */ 528 */
558#define UNIQUE_DIR "unique-items" 529#define UNIQUE_DIR "unique-items"
559 530
560/* 531/*
561 * If undefined, malloc is always used.
562 * It looks like this can be oboleted. However, it can be useful to
563 * track down some bugs, as it will make sure that the entire data structure
564 * is set to 0, at the expense of speed.
565 * Rupert Goldie has run Purify against the code, and if this is disabled,
566 * apparantly there are a lot of uninitialized memory reads - I haven't
567 * seen any problem (maybe the memory reads are copies, and the destination
568 * doesn't actually use the garbage values either?), but the impact on speed
569 * of using this probably isn't great, and should make things more stable.
570 * Msw 8-9-97
571 */
572#define USE_CALLOC
573
574
575/*
576 * These define the players starting map and location on that map, and where 532 * These define the players starting map and location on that map, and where
577 * emergency saves are defined. This should be left as is unless you make 533 * emergency saves are defined. This should be left as is unless you make
578 * major changes to the map. 534 * major changes to the map.
579 */ 535 */
580 536
581#ifdef WIN32 /* change define path city */
582
583# define EMERGENCY_MAPPATH "\\city\\city"
584# define EMERGENCY_X 15
585# define EMERGENCY_Y 19
586#else
587# define EMERGENCY_MAPPATH "/city/city" 537#define EMERGENCY_MAPPATH "/city/city"
588# define EMERGENCY_X 15 538#define EMERGENCY_X 15
589# define EMERGENCY_Y 19 539#define EMERGENCY_Y 19
590#endif
591 540
592 541
593/* 542/*
594 * These defines tells where, relative to LIBDIR, the maps, the map-index, 543 * These defines tells where, relative to LIBDIR, the maps, the map-index,
595 * archetypes highscore and treaures files and directories can be found. 544 * archetypes highscore and treaures files and directories can be found.
602#define HIGHSCORE "highscore" 551#define HIGHSCORE "highscore"
603#define TREASURES "treasures" 552#define TREASURES "treasures"
604#define BANISHFILE "banish_file" 553#define BANISHFILE "banish_file"
605 554
606#define MAX_ERRORS 25 /* Bail out if more are received during tick */ 555#define MAX_ERRORS 25 /* Bail out if more are received during tick */
607#define STARTMAX 500 /* How big array of objects to start with */
608#define OBJ_EXPAND 100 /* How big steps to use when expanding array */ 556#define OBJ_EXPAND 5000 /* How big steps to use when expanding array */
609 557
610#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */ 558#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */
611 559
612#define ARCHTABLE 5003 /* Used when hashing archetypes */ 560#define ARCHTABLE 16384 /* Arch hashtable size */
613#define MAXSTRING 20 561#define MAXSTRING 20
614 562
615#define COMMAND_HASH_SIZE 107 /* If you change this, delete all characters :) */ 563#define COMMAND_HASH_SIZE 107 /* If you change this, delete all characters :) */
616 564
617 565
648 * thus requiring that the server be setuid/setgid, and more generous 596 * thus requiring that the server be setuid/setgid, and more generous
649 * permisisons needed. 597 * permisisons needed.
650 * SAVE_MODE is permissions for the files, SAVE_DIR_MODE is permission 598 * SAVE_MODE is permissions for the files, SAVE_DIR_MODE is permission
651 * for nay directories created. 599 * for nay directories created.
652 */ 600 */
601/* IMPORTANT: there is a race during saving, where the umask is being applied */
653#define SAVE_MODE 0660 602#define SAVE_MODE 0660
654#define SAVE_DIR_MODE 0770 603#define SAVE_DIR_MODE 0770
655 604
656/* NOTE ON SAVE_INTERVAL and AUTOSAVE: Only one of these two really 605/* NOTE ON SAVE_INTERVAL and AUTOSAVE: Only one of these two really
657 * needs to be selected. You can set both, and things will work fine, 606 * needs to be selected. You can set both, and things will work fine,
667 * environment, you may want to set this to a higher value, so that 616 * environment, you may want to set this to a higher value, so that
668 * you are not spending too much time saving the characters. 617 * you are not spending too much time saving the characters.
669 * This option should now work (Crossfire 0.90.5) 618 * This option should now work (Crossfire 0.90.5)
670 */ 619 */
671 620
672/*#define SAVE_INTERVAL 300*/ 621//#define SAVE_INTERVAL 60
673 622
674/* 623/*
675 * AUTOSAVE saves the player every AUTOSAVE ticks. A value of 624 * AUTOSAVE saves the player every AUTOSAVE ticks. A value of
676 * 5000 with MAX_TIME set at 120,000 means that the player will be 625 * 5000 with MAX_TIME set at 120,000 means that the player will be
677 * saved every 10 minutes. Some effort should probably be made to 626 * saved every 10 minutes. Some effort should probably be made to
680 * may not be large enough to save all of them.) As it is now, it will 629 * may not be large enough to save all of them.) As it is now, it will
681 * just set the base tick of when they log on, which should keep the 630 * just set the base tick of when they log on, which should keep the
682 * saves pretty well spread out (in a fairly random fashion.) 631 * saves pretty well spread out (in a fairly random fashion.)
683 */ 632 */
684 633
685#define AUTOSAVE 5000 634#define AUTOSAVE 1000
686 635
687/* Often, emergency save fails because the memory corruption that caused 636/* Often, emergency save fails because the memory corruption that caused
688 * the crash has trashed the characters too. Define NO_EMERGENCY_SAVE 637 * the crash has trashed the characters too. Define NO_EMERGENCY_SAVE
689 * to disable emergency saves. This actually does 638 * to disable emergency saves. This actually does
690 * prevent emergency saves now (Version 0.90.5). 639 * prevent emergency saves now (Version 0.90.5).
699 */ 648 */
700 649
701/*#define BACKUP_SAVE_AT_HOME*/ 650/*#define BACKUP_SAVE_AT_HOME*/
702 651
703/* RESET_LOCATION_TIME is the number of seconds that must elapse before 652/* RESET_LOCATION_TIME is the number of seconds that must elapse before
704 * we fill return the player to his savebed location. If this is zero, 653 * we will return the player to his savebed location. If this is zero,
705 * this feature is disabled (player will resume where ever he was 654 * this feature is disabled (player will resume where ever he was
706 * when he last logged off). If this is set to less than two hours, 655 * when he last logged off). If this is set to less than two hours,
707 * it will prevent players from camping out in treasure rooms. 656 * it will prevent players from camping out in treasure rooms.
708 * Do not comment this out - it must be set to something - if you 657 * Do not comment this out - it must be set to something - if you
709 * comment this out, the program will not compile. 658 * comment this out, the program will not compile.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines