          Changelog for the ZDaemon 1.08 -> 1.09 transition
          =================================================

1. Point 01 release (Jan 1, 2006)
-----------------------------------------------------------------------
 1. Fixed a sound problem; many sounds (projectiles and map items) were
    not scaled by sfx volume, which resulted in very distorted sounds.
 2. Added a new possible value to the netstats CVAR; when it's 3, it
    displays both numbers and graph.
 3. When the "cl_showpressuse" CVAR is false, the client does not display
    the player name while spectating (and if the watched player is equal
    to the console player). Combined with the no-gravity conditions while
    spectating, this facilitates the taking of map screenshots.
 4. Sometimes you see rockets sticking to a wall; this is a dropped
    packet problem. Added a fix to circumvent it.
 5. Improved the "teleport jackhammer" and "spawn jackhammer" problems
    when cl_floorfix=1. Right now, cl_floorfix is not 100% right (because
    it treats the symptom rather than the cause), but it doesn't appear to
    have any bad side effects either; therefore, it should make the
    game quite more enjoyable.
 6. There was an oversight in the blocking of color changes (while alive
    and playing) on the server which resulted in some people using disco
    scripts again. It should be finally put to rest.
 7. Skin switching is allowed only in the same cases as color switching.
 8. The player setup dialog has been reworked to avoid sending many
    messages to the server when someone changes teams, colors, etc. Only
    a single message is sent (if necessary) when someone exits the menu.
    This should also reduce problems with spamming in team modes.
 9. Fixed a CTF exploit: flag carriers cannot switch teams.
10. Added another method to reduce spamming via team switching; any
    attempts to switch teams more than once in less than 5 seconds are
    ignored.
11. New server CVAR called "sv_deathlimit". If non-zero, it specifies
    the max. number of seconds that one is allowed to remain dead. When
    the limit is reached, he becomes either a spectator or is respawned
    depending on the sv_forcerespawn dmflag (which was not previously
    used in practice, so it looked like a fitting candidate for this
    feature). The default value for the CVAR is 180 seconds.
-----------------------------------------------------------------------

2. Point 02 release (Apr. 4, 2006)
-----------------------------------------------------------------------
 1. Fixed a problem in coop mode with the sv_deathlimit cvar. If someone
    remained dead long enough to become a spectator and then rejoined,
    then that person could not shoot any monsters and monsters could not
    kill him. It has been fixed now.
 2. Fixed a crash on some maps (eg., exec map09) when the "no exit"
    dmflag is used.
 3. Fixed a problem where the "A secret has been revealed" and other (wad-
    specific) messages were printed on the console instead of being
    displayed at the screen center.
 4. The "weapnext" and "weapprev" commands are automatically translated to
    "spynext" and "spyprev" respectively while spectating or viewing demos.
 5. Fixed a problem with the "Boss cube"; it would crash the client in
    client/server mode (eg. doom2 map30).
 6. Added a new dmflag (DF_RESET_INVENTORY = 1048576) and an associated
    cvar (sv_resetinventory). It's meant for coop and it determines whether
    player inventory should be reset at the end of each map.
 7. The "respawn items" , "no exit" and "weapons stay" dmflags needed the
    "alwaysapplydmflags" cvar to operate properly in coop. Not any more:
    alwaysapplydmflags is gone now and the dmflags work as expected.
 8. More server code cleanups.
 9. Improved the coop spawn algorithm; if your spot is occupied, it will
    try all coop spawns until it finds an empty one.
10. Updated the ip-country database.
11. Blocked any runtime changes to the "maxclients" CVAR; it can be
    set only in zserv.cfg.
12. Added a new dmflag (DF_QUAD_RESPAWN_TIME= 8388608) and an associated
    cvar (sv_quadrespawntime). It quadruples the time between item respawns
    and obviously applies only if item respawn is ON.
13. When the OS Sound range dmflag is on AND it's not a team game, then
    spawns facing west are silent. It's an old doom2.exe bug, but it was
    inconsistent between VC++ and gcc because it relied on undefined compiler
    behavior. This has been formalized now and is consistent across the board.
14. When you try to connect to a full server, you get an error message
    instead of no reply.
15. Added a new dmflag2 (DF2_USEBLOCKING = 16777216) and an associated
    cvar (sv_useblocking). It's taken from ZDoom 2.0.98 and it means
    "All special lines can block use lines".
16. Fixed the missing puffs bug introduced in 1.08
17. Grunting on 2-sided linedefs is now blocked when the silent BFG dmflag
    is on.
18. Multiplayer weapons are now spawned in coop mode (not SP mode).
19. sv_resend defaults to 1 now.
20. New server cvar (sv_maxclientsperip) which limits the number of allowed
    clients per IP. It defaults to 4. Can be disabled if set to a non-
    positive value.
21. Various security fixes (mostly DOS-related). When zserv detects a DOS
    attack, it auto-bans the attacking IP; the ban is temporary and expires
    in 15 minutes.
-----------------------------------------------------------------------

3. Point 03 release (Nov. 4, 2006)
-----------------------------------------------------------------------
 1. New server CVAR "specs_dont_disturb_players". It defaults to false.
    If turned on, spectator chat is echoed to other spectators, but not
    to players.
 2. Fixed a problem where the server might freeze for a few seconds in
    rare occasions.
 3. Modified the server to avoid creating the .zdoom directory in the
    user's home directory (unix) and to enable a common convention
    across all O/Ss. All WAD files are searched on the current directory
    first, then on the directory specified by the "-waddir" cmd. line
    option or the "WADDIR" environment variable.
-----------------------------------------------------------------------

4. Point 04 release (Dec. 17, 2007)
-----------------------------------------------------------------------
 1. Security fix (DOS-related).
 2. New server CVAR "acl" (access list) that controls the nicks allowed
    to connect.
 3. New server commands "acl_add", "acl_remove" and "acl_clear". They're
    pretty obvious.
 4. More code cleanups in zserv.
 5. Fixed a memory leak in zserv; it was losing about 1K bytes on each
    respawn. The memory was reclaimed at level end and that's why it
    was not noticed in normal games. It would appear though when there
    was no time and frag limit.
-----------------------------------------------------------------------

5. Point 05 release (Dec. 26, 2007)
-----------------------------------------------------------------------
 1. Improved server-side speedhack detection.
 2. Better handling of uneven packet delivery
 3. The server is now UPnP-aware, so it can forward ports on NAT routers
    automatically. It's enabled via the -upnp command line switch.
 4. Implemented a "killlimit" server cvar. It's meant for coop and it's
    analogous to the fraglmit cvar of DM. It can also assume negative
    values, in which case it means that *everyone* in game must reach
    the specified number.
 5. Implemented an "overtime" server CVAR. When it's different from zero
    and the time limit expires, the game goes into overtime and ends on
    the first frag, suicide, capture, etc (ie., sudden death).
-----------------------------------------------------------------------

6. Point 06 release (May 26, 2008)
-----------------------------------------------------------------------
 1. Display the target player health along with name in coop or when the
    target player is a teammate (in team modes),  or when spectating (in
    any mode). The nick and health are color coded depending on the target
    health.
 2. Target names are not shown any more for dead players.
 3. Added support for teleporting missiles (all kinds). It's activated
    with the DF2_TELEMISSILES = 1 dmflag (dmflag2 actually) or the associated
    "sv_telemissiles" CVAR. If you don't want to enable teleporting of
    all missiles, you can also use the dehacked approach for selected
    ones only. Older clients will not be able to handle such missiles
    properly (they may be hit by invisible missiles: this is the only
    known incompatibility), so a client upgrade is strongly recommended.
 4. We now force "fuzz" rather than translucency when playing non-coop
    online.
 5. Implemented proper weapon animation during spying / demo viewing.
    There are still two minor glitches that cannot get fixed right now
    since they require protocol changes. Therefore, they'll have to
    wait for 1.09.
 6. New server CVAR "specs_dont_disturb_players". It defaults to false.
    If turned on, spectator chat is echoed to other spectators, but not
    to players.
 7. Private messages from players to spectators are now blocked
    (cheating opportunity).
 8. Private messages from spectator to spectator are now enabled.
 9. Added support for SECTINFO lumps in wads; they are plain text 
    lumps and specify:
	1. which sectors are considered parts of a team "base area".
        2. user-assigned names for each sector.
    There can be more than one such lumps in all wads; you can find
    some sample SECTINFO at http://www.zdemon.org/doc/sectinfo/
10. Added special escape sequences for chat strings: %a -> armor,
    %h -> health, %l -> current location (as determined by a SECTINFO
    lump). They can be useful for binds in team modes.
11. Spectator behavior is now identical between SP and CS mode. They
    don't activate anything, including teleports. Some maps though
    require teleporting (eg., Icon of Sin map in coop mode). For that
    reason, a "spectator teleport" button has been added. If you press
    it while crossing a teleport line, the teleport works (client-side
    only: nothing gets triggered on the server).
12. Fixed some problems in the automap code; it should now be able to
    handle maps up to 32767 units wide or long.
13. Implemented recursive directory searching for wads. It's activated
    by using 2 slashes at the end of the directory path. For example:
    "-waddir c:\zdaemon" does NOT do recursive searches, while
    "-waddir c:\zdaemon\\" does. Unix servers naturally use forward
    rather than backward slashes.
14. Enabled the server to find bots.cfg in the current directory
    in addition to the zcajun directory.
15. The PCX screenshot format has been replaced by PNG. A nice feature
    of the format is that it supports the specification of the gamma
    value, so the screenshot should look similar to the actual display
    inside the game.
16. Shooting corpses should now be a thing of the past.
17. Fixed a bug where the wrong switch would be lit in online mode. It
    happened when more than 1 switches triggered the same item.
18. Implemented a new client CVAR called "screenshot_scores". If set
    to true, it automatically takes screenshots at the end of games.
19. Added a "motd" client command.
20. Fixed a problem where the server might freeze for a few seconds in
    rare occasions.
21. Got rid of the "tx" and "ty" client CVARs; they are inappropriate
    for a multiplayer environment.
22. No more "Cannot play non-ZDoom demos. (They would go out of sync
    badly.)" messages.
23. Fixed the spectator splashing problem (example: heretic e1m1).
24. Spectators should not be pushed by wind (example: heretic e1m1).
25. Spectators should not grunt when hitting walls or landing on things.
26. The "limitpainelemental" server CVAR imposes a limit of 20 lost
    souls per map. The CVAR now defaults to true (ie., same as classic
    doom) rather than false.
27. Corrected a sprite scaling issue, courtesy of Phenex2.
28. Heretic gauntlet usage could result in a server kick (turbo); same
    idea as the doom chainsaw.
29. Fixed a problem with the color of Heretic KeyGizmos in online mode.
30. "Bullet puffs" (so to speak) were missing in Heretic online mode.
31. The client would get stuck into an infinite loop on connection to a
    heretic server containing dead heretic imps. Fixed.
32. The "zbot" skin name is automatically translated to "zbor" in Heretic
    mode and "zbox" in Hexen mode. All 3 skins are not available to
    players: only to bots.
33. The "You need the XXX key to open this door" message now produces a
    grunt in online mode as well.
34. Fixed the behavior of missiles when they hit Line_Horizon lines.
35. Dormant items should not generate blood spurts or splatter.
36. Water splashes were getting spawned both on the server and the client.
    Fixed.
37. Keys retained by the DF2_KEEP_KEYS dmflag when someone died in coop
    were not shown in the HUD.
38. More bot chatter/taunting courtesy of Adereth.
39. No more "Client output packet overflow" while viewing demos.
40. The client's pickup switch method would get inadvertently modified
    on some unusual conditions (manual map change and player NOT being
   the first on the server). Fixed.
41. Added a -nomsgbox cmd. line parameter to facilitate auto-restarts in
    case of crashes.
42. Blocked the respawning of monsters spawned by ACS or the Icon of Sin
    cube in nightmare mode. That was an old and unresolved doom2.exe bug.
43. No more "attempted server crash" auto-bans.
44. Blue armor is now included in the DF_NO_SUPER dmflag
45. Implemented a server sanity check for teamdamage (0..1)
46. Implemented a server sanity check for air control (0..1)
47. Implemented a server sanity check for gravity (0..1600)
48. Removed the enable_rcon cvar; rcon is enabled only when rcon_password
    is NOT empty.
49. Removed the force_password cvar: it's implied depending on the
    "password" cvar; if "password" is empty, then the server is public.
    If it's not empty, then the server will require a password.
50. Implemented new launcher info packet covering all the functionality
    needed for 1.09 
51. The manual /map command on the server was not saving the bot state,
    so bots added by /addbot on the current map would not spawn on the
    next one.
52. Stopped the auto-scrolling of the zserv32 window when the window
    is not already at the bottom.
53. Sometimes the server would report phantom players to the launcher.
    Should be fixed now.
54. Sometimes the player list on zserv32 was wrong. Fixed.
55. Increased number of map list slots from 36 to 1024.
56. New mapcycle related commands on the server:
       mapskipby <number>: Goes forward/backward in the map list 
       mapskipto <mapname>: Goes forward in the map list
                            to the specified map 
57. Automatically saves the mapcycle index to a file before each map start.
    The file gets deleted on normal exit. If the file is found on startup,
    it means that the program had previously crashed, so it continues the
    map cycle from the map following the one in the saved file.
58. Fixed the server to reduce the "pullback" on the first spawn.
59. The server can accept alternate wads in the place of one or more
    wads. Useful examples are allowing freedoom/freedm rather than
    doom2 (or vice versa), facevox rather than zvox2, etc. This is
    enabled via the "setaltwads" server command (which could reside
    in zserv.cfg). Here is an example:
    setaltwads "doom2=freedoom062=freedm062 zvox2=facevox2=sharkvox"
    This tells zserv that it can accept freedoom062.wad or freedm062.wad
    in place of doom2.wad and it can accept facevox2.wad or sharkvox.wad
    in place of zvox2.wad. Some important points:
      a. For any equivalence to be accepted, one of the wads in the
         equivalence must be already loaded and zserv must be able to
         find the other ones in order to checksum them. This also
         means that either all the wads should reside in the current
         or program directory, or you should use the -waddir cmd. line
         parameter (or the WADDIR env. variable) to tell zserv where
         the wads are.
      b. The entire argument of the setaltwads command must be enclosed
         in double quotes.
      c. When zserv executes this command, it does the above checks
         and sets up the equivalences. It will also display the
         equivalence on the console, so you can be sure if it has been
         accepted or not.
      d. Freedoom and freedm are not frozen like doom2.wad; therefore,
         we *absolutely* need proper versioning in their filenames,
         eg., use something like freedoom062.wad rather than freedoom.wad
         The use of the "unversioned" wad name will lead to chaos from
         the part of the players (what will happen for example if half
         the servers run one version of freedoom, the other half uses
         another version and they all use the same name? how will a
         player be able to play?). Therefore, we will have no other
         option but to block from the master server any zserv using
         the unversioned wad names.
60. The launcher has been upgraded to understand and handle alternate
    wads properly. It will prompt you when a selection has to be made
    and it will remember your choice.
61. Implemented a CTF point system that's based on the one from Q3 
    slightly extended to handle 3- and 4-way CTF. Here is the way
    points are calculated:
       1. +1 point for fragging an enemy player
       2. -1 point for fragging a teammate.
       3. -1 point for committing suicide (environment kills count
          as suicide too) 
       4. +2 points for fragging an enemy carrying your flag.
       5. +1 points for fragging an enemy carrying any other flag
          but yours (applicable to 3- and 4-way games only).
       6. -2 points for fragging a teammate carrying an enemy flag.
       7. +5 points for capturing an enemy flag.
       8. +1 point for returning your flag.
       9. +1 point for assisting a capture by returning your flag and
          your team capturing within 4 seconds.
      10. +2 points for assisting a capture by fragging an enemy
          carrying your flag and your team capturing within 4 seconds. 
      11. +2 points for fragging someone who has recently damaged
          your flag carrier.
      12. +1 point for fragging an enemy player within sight of AND
          near your flag carrier.
      13. +1 point for fragging an enemy player in your base area (as
          determined by a SECTINFO lump).
    The points are added up according to the applicable rules. Suppose
    for example that you frag an opponent carrying your flag and return
    it: you get +1 point from rule #1, +2 points from rule #4 and +1
    point from rule #8: 4 points in total. If the fragging took place
    in your base area, then rule #13 would apply as well, so another
    point would be added.
62. Modified the server to avoid creating the .zdoom directory in the
    user's home directory (unix) and to enable a common convention
    across all O/Ss. All WAD files are searched on the current directory
    first, then on the zserv program directory, then on the directory
    specified by the "-waddir" cmd. line option or the "WADDIR"
    environment variable.
63. cl_maxbodies lower bound goes from 1 to 3.
64. New chat spam defaults: 4 messages per 8 seconds for team modes
    or 10 seconds for non-team modes.
65. New "maplist" command on the client. It prints the server map
    rotation.
66. The "restartemptymap" server cvar has been extended to reset the
    level timer (if one is in effect) when the first player joins.
67. Spectators should not trigger "thing specials" (example: jumppads
    in zdctfmp map10).
68. "New style scoreboard" option removed from options menu. The
    "newscores" CVAR is still there for those who insist.
69. New client CVAR "zd_overridecolors" that lets you override the
    colors you see for your teammates and enemies (in all modes).
    When zd_overridecolors is on, teammates are displayed using
    the "teammate_color" CVAR, and enemies are displayed using the
    "enemy_color" CVAR.
70. Fixed a problem in the handling of the up arrow key in the option
    menus of the client. The menu would appear blank and it could lead
    to a client crash.
71. New "sitrep" CVAR that shows you your teammates names, health,
    armor and location in team modes or coop, or works like a mini
    scores-screen in DM. The report's position can be adjusted by
    the "sitrep_xofs" and "sitrep_yofs" CVARs. There is also a
    "sitrep_fontsize" CVAR that controls the size of the report's
    font (it can range from 0 up to 7: defaults to 1).
72. Fixed various problems with coop spawning, including spawning of
    players above the number of coop starts in the map, spawning 
    under bridge things, blocking of spawn points by other players
    or monsters, etc. If a spawn is blocked by a player or monster,
    they will get telefragged except for the first 5 seconds of
    the level. That should give players enough time to move off the
    spawn points.
73. Related to coop spawning is voodoo doll support. A new dmflag
    (DF2_VOODOO_DOLL = 0x2000000) was added that enables the
    detection of voodoo doll starts as such; this avoids spawning
    real players on the voodoo doll starts. Beware: this is only the
    beginning of voodoo doll support and it's very far from completion.
    So don't expect voodoo dolls to work yet.
74. Fixed an oversight in the team switching server code whereby one
    could get around the maxplayersperteam limit.
75. Implemented map reset, map switch and player kick voting. They
    are controlled by the following server CVARs:
       sv_vote_limit = 3          // # of times someone can call a
                                  //     vote per map
       sv_vote_timeout = 45       // How long the voting will last
                                  //     (in seconds)
       sv_vote_reset = 0          // Enable/disable reset voting
       sv_vote_map = 0            // Enable/disable map voting
       sv_vote_map_percent = 51   // Percentage needed to pass the
                                  //     reset/switch vote
       sv_vote_map_skip = 0       // How many maps must be played before
                                  //     a given map is eligible for
                                  //     voting after it has been played.
       sv_vote_kick = 0           // Enable/disable kick voting
       sv_vote_kick_percent = 75  // Percentage needed to pass the
                                  //     player kick vote
    Player kicking is available only for coop modes. The other forms of
    voting are recommended only on coop or private/LAN or tournament servers.
    The voting is initiated by the "callvote" command on the client. It can
    assume one of the forms:
       callvote reset
       callvote map <mapname>
       callvote kick <playername>
    When someone calls a vote, a notification about the ongoing vote is
    displayed on everyone's HUD. Players can then vote for or against the
    proposal by typing "yes" or "no" on their console or saying "yes" or
    "no" in chat.

    There are 2 other voting related client commands: the "voteinfo" command
    displays the server voting CVARs, while the "maplist" command displays
    the server map rotation (this is useful for issuing a callvote map
    command as you may not know which maps are in the server rotation).

    The position of the voting display on the client can be adjusted by
    the "vote_xofs" and "vote_yofs" CVARs. The "vote_fontsize" CVAR controls
    the font size used for the display; it can range from 0 to 7 and it
    defaults to 1. Finally the "vote_compact" CVAR results in a slightly
    more compact voting display.
76. Introduced a concept of "limited rcon". The server admin can define up
    to 9 different "limited rcon levels". Each level is characterized by a
    different rcon password and a set of commands authorized to issue. Here
    is an applied example: suppose the server admin wants to give limited
    rcon access to a tournament referee. The referee should be able to do
    specific tasks, but he is not supposed to change the server setup, stop,
    restart the server, etc.The server admin could put the following in
    the zserv.cfg file:
       set rcon_pwd_1  "referee"
       set rcon_cmds_1 "mapskipby mapskipto maplist players kick addtempban"
    These 2 lines define "limited rcon level 1", its password and the
    authorized commands. You can define up to 9 such levels (rcon_pwd_1 ...
    rcon_pwd_9) if you have to.
77. Fixed an item respawn bug where the respawn sound and flash occured
    twice in quick succession in c/s mode.
78. Fixed an item respawn bug where a respawned item would appear at a
    different vertical position than where it actually was spawned on
    the server.
79. Made the parsing of MAPINFO lumps more forgiving in terms of unknown
    keywords. When such keywords are encountered, the parsing of mapinfo
    stops and the program continues rather than aborting.
80. Ported ANIMDEFS WARP2 Eternity style flat warping effect from ZDoom
    courtesy of Worst-vd-plas.
81. Implemented air supply support in MAPINFO courtesy of Phenex.
82. Started work on enabling dehacked for heretic/hexen courtesy of
    Worst-vd-plas.
-----------------------------------------------------------------------

7. Point 07 release (June 3, 2008)
-----------------------------------------------------------------------
 1. Fixed a desync in the appearance/spark/sound of respawned items.
 2. Fixed a bug when closing channel tabs in zrc.
 3. The launcher would not properly erase the contents of the death
    column when clicking on a server that didn't show deaths.
 4. Various ZSL fixes as reported in the ZSL readme.
 5. There was a bug in the handling of new connections in zserv; it
    could cause server crashes when the server got full.
 6. The player color override option would sometimes fail: fixed.
-----------------------------------------------------------------------

8. Point 07b release (Oct. 15, 2008)
-----------------------------------------------------------------------
 1. Fixed a server crash.
 2. Removed the need for the -noinput cmd. line parameter.
 3. Added -version and -proto cmd. line parameters to the cmd.
    line version of zserv to display the zserv version and protocol
    number respectively.
-----------------------------------------------------------------------------

9. Point 08 release (Jul. 16, 2009)
-----------------------------------------------------------------------------
 1. Fixed a server crash in CTF mode.
 2. Made the zserv shutdown more robust under unix by ensuring
    its children are all down before it exits.
 3. Removed the log submission mechanism as it's been broken for
    a long while (and that mechanism will be replaced by something
    more robust in the future).
 4. Added timestamps to the zserv general log.
 5. Removed the display of every single ban list entry when the
    global ban list gets fetched.
 6. The server didn't handle password changes on the fly; it does now.
 7. The default value for sv_vote_kick_percent goes from 75% to 60%.
 8. The DF2_VOODOO_DOLLS dmflag has been inverted for the sake of
    compatibility with Plutonia and some other WADs. It's called
    DF2_VOODOO_SPAWNS now which means that it will spawn real players
    on voodoo doll starts ONLY when the dmflag is on. The associated
    cvar is called "sv_voodoo_spawns".
 9. The unlimited ammo dmflag is now blocked from exp.
10. Introduced a new DMFLAG (DF2_VAMPIRE = 0x4000000) and an associated
    CVAR (sv_vampire). When this flag is on, damaging an opponent will
    increase your health by half the damage you deal. There is an upper
    limit that one can reach through this mechanism and it's halfway
    between normal health (100) and max. sphere health (200), so it's
    150 by default. Those 2 values can be adjusted via dehacked though.
    DM servers will NOT collect exp when this mode is on.
11. Voting will not be accepted in the first 15 seconds of a round
    if there are spectators around.
12. Temp. bans arising from voting will be put in place even if the
    player to be kicked/banned has already left the server.
13. Introduced a server CVAR called "sv_vote_min" that specifies the
    minimum voter participation needed to ignore non-voters. It's an
    integer value ranging from 0 to 100 (%) and works as following: if
    a vote is called and the voters reach the percentage specified by
    sv_vote_min_participation, then non-voters are excluded from the
    voting decision. If voters are less than the percentage specified
    by sv_vote_min_participation, then non-votes are essentially counted
    as "no". The CVAR defaults to 51 (%).
14. Vote calls as well as actual votes are now displayed on the normal
    console so the voting process becomes more transparent.
15. Implemented 3 new votes: random voting, random map voting and random
    team captain voting. The first is always enabled. The other two are
    controlled by the following server CVARs:
       sv_vote_randmap  = 0	// Enable/disable random map voting
       sv_vote_randcaps = 0	// Enable/disable random team captain voting.
    Random voting is about letting the server select a random number (or
    flip a coin). That number will be used for anything the players want
    (and have agreed upon before the draw). The command:
       callvote flipcoin
    calls a "flip coin" vote. If the vote passes, the server will display
    "heads" or "tails". The command:
       callvote random N
    (where N is a positive integer greater than 1) draws a number between
    1 and N. If N is equal to 2 or is omitted, then this is the same as a
    coin flip.
    The command:
      callvote randmap [mapname mapname [mapname ...]]
    instructs the server to draw a map at random and then switch to it.
    If the mapnames are omitted, the server draws a map at random from the
    map rotation. If mapnames are specified, then the map is drawn only
    from these; they must belong to the server map rotation though.
    The command:
       callvote randcaps
    calls a vote for random selection of team captains. For this to work,
    the server must be in teamplay mode (TDM or CTF) and maxteams should
    be equal to 2. The captains are selected at random from players or
    spectators in the red, blue, white teams.
16. Added a message about who exits the level in coop.
17. Added some server-side checks about the validity of the nicknames.
    They cannot be empty, they cannot contain leading or trailing spaces
    and they cannot contain backslashes, single or double quotes or non-
    ASCII characters. These restrictions are actually a subset of those
    enforced by the master, so they should not be binding for reasonable
    use.
18. To facilitate speedrun timings:
       a. the timer resets to zero on the first spawn in each map.
       b. the timer display remains on screen during the intermission.
       c. the timer shows hundredths of a second.
    All of the above happen only if deathmatch=0 and timelimit=0.
19. Removed a debug message displaying the pickup of Heretic artifacts.
20. Fixed a client problem with mega item respawns.
21. Sometimes a taken item would appear as non-taken because of some
    bug in the client: fixed.
22. A HOM occured when a skybox was visible in both floor and ceiling:
    fixed courtesy of Worst-vd-plas and Phenex2.
23. Players, monsters, and other moving objects no longer jump up
    ledges when near them while the camera is in spectator mode.
    This applies to demos as well.
24. Changes in the floor height while moving should be smoother now;
    the jackhammer problem appears to be quite improved.
25. There was some stuttering during teleporting when the entry and
    exit points were at different floors or when the player tried to
    keep moving during the teleporting. Should be fixed now.
26. Fixed a problem with ACS print messages in client/server mode.
27. Fixed a problem with ACS death scripts being executed on both
    client and server in c/s mode.
28. The map powerup was not honored by the client: fixed.
29. Gamma can now range between 1 and 3.
30. The turbo cvar is not supported any more.
31. The Spiderdemon firing animation/sound was not playing in c/s mode. Fixed.
32. The Chaingunner firing animation/sound was not playing in c/s mode. Fixed.
33. The WolfensteinSS firing sound was not playing at all in any mode. It's a
    problem in the SNDINFO lump of zdaemon.wad and can only be fixed by a new
    zdaemon.wad (ie., it will have to wait till 1.09); it's fixed temporarily
    by having it play the zombie firing sound.
34. The WolfensteinSS firing animation/sound was not playing in c/s mode. Fixed.
35. Fixed a problem when firing the chainsaw in c/s mode.
36. Enabled skin scaling courtesy of Phenex2.
37. Introduced a new DMFLAG DF2_INSTASWITCH = 0x8000000) and an associated
    CVAR (sv_insta_switch). This flag enables instant weapon switching.
38. Uncapped the projectile speeds (useful for dehacked speedups)
    courtesy of Phenex2.
39. Fixed the display of players having activated the Wings of Wrath.
40. Enabled the taunts to play properly even in the presence of the silent
    BFG dmflag.
41. The announcement of the last capture in a CTF game would get cut off by
    the intermission screen. Fixed.
42. Fixed a CTF bug when a bot left the server while carrying a flag.
43. Fixed a bug where a gibbed player/bot corpse would revert to the normal
    death state when the player/bot respawned.
44. Added ^U to the console cmds: it erases the current line.
45. Made a fix to silent and line teleports to properly adjust the exit angle.
    The fix is not working perfectly right now, as the teleport code introduces
    a half-second delay in movement (which it shouldn't). The fix for that
    needs changes to the net protocol, so it should work fully in 1.09.
46. Added a "bullet_puffs" client cvar that controls the display of bullet
    puffs. Some people have reported intense cpu loading that happens only
    when puffs are enabled. If you see such problems, it might be worthwhile
    to experiment with this option. 
47. Fixed several client crashes.
48. r_visibility is gone from the client. It's not wise to keep it around
    in a multiplayer port.
49. r_drawflat is also gone. Same reasons as above.
50. The coop spawn policy has been modified a bit: the first player on the map
    always spawns on the first spawn point. Other players spawn at random
    coop starts. This preserves the desirable properties of random spawning,
    yet also facilitates speedrunners who need a predictable spawn point.
51. Fixed another bug where someone could pick up items above his
    head without jumping.
52. Fixed some floor raise/lower problem courtesy of Phenex2.
53. New server CVAR "sv_randmaps" that shuffles maps from the rotation.
54. Fixed a rounding problem in sloped planes courtesy of Phenex2.
55. Added support for some new definitions in MAPINFO related to intermission
    courtesy of Stealth & Worst-vd-plas.
56. Lots of different engine patches for zdoom 2.x compatibility courtesy
    of Phenex2.
57. Improved the Heretic full screen HUD to display armor and armor type.
58. The CTF point system gets slightly adjusted:
       1. +1 point for fragging an enemy player
       2. -1 point for fragging a teammate.
       3. -1 point for committing suicide (environment kills count
          as suicide too) 
       4. +2 points for fragging an enemy carrying your flag.
       5. +1 points for fragging an enemy carrying any other flag
          but yours (applicable to 3- and 4-way games only).
       6. -2 points for fragging a teammate carrying an enemy flag.
       7. +5 points for capturing an enemy flag.
       8. +1 point for returning your flag.
       9. +1 point for assisting a capture by returning your flag and
          your team capturing within 4 seconds.
      10. +2 points for assisting a capture by fragging an enemy
          carrying your flag and your team capturing within 4 seconds. 
      11. +1 points for touching an enemy flag (taking it either from
          its base or the dropped state).
      12. +2 point for fragging an enemy player within sight of AND
          near your flag carrier.
      13. +1 point for fragging an enemy player in your base area (as
          determined by a SECTINFO lump).
    The points are added up according to the applicable rules. Suppose
    for example that you frag an opponent carrying your flag and return
    it: you get +1 point from rule #1, +2 points from rule #4 and +1
    point from rule #8: 4 points in total. If the fragging took place
    in your base area, then rule #13 would apply as well, so another
    point would be added.
59. Added a server CTF points log: it can be enabled / disabled with
    the "ctflog" command (or -ctflog cmd. line option) and it displays
    the points given to each player in detail along with the applicable
    rule from the above list.
60. The ping is now displayed next to the netstats graph.
61. Kick Voting is now enabled in non-coop modes provided that the
    server is passworded or not advertized to the master.
62. Mancubus fireballs should finally appear properly in client/server
    mode.
63. The splashfactor CVAR has been renamed to sv_splashfactor and can
    now become zero or negative; this can be useful for rocket jumping.
    In such situations, the "jumpback factor" becomes equal to the
    negative of the specified value while the splash factor becomes
    zero. If for example we set sv_splashfactor to -1, then the jumpback
    factor becomes 1, and splash factor 0 (ie., same jumpback as usual,
    but no splash damage). If we set sv_splashfactor to say -10, then
    the jumpback factor becomes 10 (quite high) and splash factor 0
    (ie., no damage).
64. The launcher can now patch IWADs automatically courtesy of
    Doom2pro's IWAD patcher: noone should ever need to do it manually.
65. The launcher now handles demos with spaces in the filename.
66. New searching function in the launcher. You can search for strings
    in the server name or for WADs. Searching is done in full unicode
    (useful for server names) even under Win9x.
67. Fixed the teleporting/moving of items via ACS in client/server mode.
68. Fixed a ceiling-related bug.
69. Introduced a new server CVAR called "sv_teamautoaim"; when it's non-
    zero, teammates are excluded from autoaim calculations. Defaults to
    zero (ie., the game behaves as it always did).
70. Fixed a problem with dmflags map overrides not being properly
    reflected on clients.
71. Added an appropriate error message when someone tries to issue the
    "map" command on the client while connected to a server or playing
    a demo.
72. Added half-op support and /op, /deop, etc commands to zrc.
73. Implemented heretic morphing: this requires new 1.08.08 clients though.
    Older clients can still connect (since we're still in the 1.08.xx
    releases), but they will not see things properly.
74. Blocked various various SP cheats while spectating (eg., what would
    be the meaning of iddqd while spectating? idclev on the other hand
    is ok).
75. Replaced the "newscores" cvar on the client by the "classic_look"
    cvar. The new cvar will apply to the scrores screen, HUD and all
    other GUI elements. If it's on, then the program will look like
    it always did; if it's off, then you will see ZDaemon-specific
    enhancements where applicable.
76. Changed the main menu to remove the "new game" command in online
    mode. It gets replaced by a "disconnect" command in online mode
    or by a "stop demo" command while demo watching. This change
    applies only when classic_look is off.
77. Blocked the "testcolor" command from online mode.
78. Added a -nostaticbots command line to the server. It allows only
    dynamic bots (the ones set via minplayers) in game. Useful for
    conserving server CPU.
79. Sectors where BOTH the floor and ceiling had moved would not display
    properly in client/server mode if you connected to the server after
    the movement. Fixed.
80. The silent chaingunner problem should be fixed now.
81. Added a "splashfactor" variable to mapinfo. It's a float and on the
    same scale as sv_splashfactor.
82. The splashfactor cvar is now sent to the launcher so that one can
    setup launcher filters for RJ servers.
83. A player's dying scream would not be heard if he respawned quickly
    enough. Fixed.
84. The doom "ouch" face has been fixed.
85. There was a bug in mapinfo where changes in dmflags (jump/mlook) would
    not revert to the previous values at map's end. Fixed now. Mapinfo also
    incorrectly overrode server cvar overrides; also fixed.
86. Implemented a new game mode called "Survival"; it's basically coop with
    limited lives. The amount of lives is set by the "maxlives" cvar. Once
    a player's deathcount exceeds maxlives, he becomes a spectator and his
    IP address is blocked from joining til the end of the round. If everyone
    becomes a spectator (ie,. failure), then the map resets. Contrary to other
    modes, spectators who used to be players can vote (ie they're considered
    as players for voting purposes). Team damage is forced to zero (and even
    telefrags dont' affect the deathcount) to avoid "unpleasantries". Survival
    is also playable in SP mode (from the SP launcher).
87. Introduced a new "gametype" CVAR; it's intended to simplify gametype
    selection. It can assume one of the following values:
	0 -> DM
	1 -> TDM
	2 -> Coop
	3 -> CTF
	4 -> Survival
    If the CVAR is set, it automatically sets the proper values for the
    "deathmatch", "teamplay" and "ctf" CVARs. If it's not set, then it
    gets deduced by those 3 CVARs. The reason for this "reciprocity" is
    to enable the use of the client/server by older launching tools which
    may not support "gametype" yet. This will not last for ever though;
    the 3 CVARs are now deprecated and they will be removed sometime in
    the future.
88. The key display in the HUD would be wrong when someone had a key AND
    reached the death limit in survival mode AND the "keep keys" dmflag
    was on. Fixed.
89. Fixed an old problem whereby 2 players would get stuck if their bounding
    boxes somehow managed to overlap.
90. Telefragging and teamdamage are blocked from cooperative and survival,
    public, non-passworded servers.
91. Implemented the following policy regarding morphed players (chicken/pigs)
    in CTF mode: morphed player can always return flags, BUT they cannot carry
    them in the default setup. If a mapper wants to enable that, he can turn
    on the MF_PICKUP bit on the ChickenPlayer/PigPlayer actors. In that case,
    the morphed players will be able to carry flags as usual.
92. Implemented a comprehensive connectivity check for zserv. When advertized
    to the master, it automatically detects when it's behind a NAT and it
    turns UPnP on (the -upnp command line option is hereby removed); it also
    requests a connectivity check from the master in order to determine if
    the zserv is reachable from outside the NAT or not. When the test finishes,
    you will see a message informing you about the outcome. This should put
    an end to the questions "can anyone see my server, etc, etc". 
93. Fly/swim up/swim down buttons now work in spectator mode.
94. Replaced the "limitpainelemental" server CVAR by the "maxlostsouls" CVAR.
    The new one is an integer rather than a boolean and it defaults to 20.
95. High resolutions help and boss screens should work now.
96. The summon command has been improved to avoid getting stuck with the
    spawned actor; it also tries to avoid spawning an item at a location
    where it doesnt' fit.
97. Fixed a rendering bug that could crash the client with sloped surfaces
    viewed from very far.
98. The max. health of vampire mode goes to the soulsphere level (200 by
    default, but can be changed via dehacked).
99. Updated the zlib library used by both client and server.
100.Made yes/no votes case-insensitive when issued as chat strings.
-----------------------------------------------------------------------------

10. Point 08b release (Nov. 30, 2010)
-----------------------------------------------------------------------
 1. Added support for 16, 24 and 32 bit per color (bpp) DirectX modes. The
    program defaults to 8 bpp modes under Win 9x/ME and 24/32 modes on all
    other Windows versions. One can override it from the command line via
    the -bits parameter, but that should be completely unnecessary. This
    should finally put to rest all palette issues under all Windows versions.
 2. Added support for secondary monitors in full screen mode. This is enabled
    via the command line parameter "-screen N" where N is a positive integer
    identifying the display you want to use. To use a second screen for
    example, you would specify "-screen 2". Full screen is forced when using
    a secondary display.
 3. by [XXX]Krawa: added tab autocompletion for client console rcon commands.
 4. Fixes client spawning monsters generated by dsparil locally.
 5. Avoid moving floors/ceilings/etc. locally on the client in c/s mode; it
    conflicts with movement done on the server.
 6. Extended changemus command to show the name of the current song when
    no argument is specified.
 7. Fixed ghost monsters left by archvile resurrections.
 8. Make sure that monsters spawned by the boss cube don't respawn 
    (on the client side)
 9. When using regular or team chat the "say:" prompt will be drawn with
    the color specified in the messages color options.
-----------------------------------------------------------------------------

11. Point 08c release (Jul. 14, 2011)
-----------------------------------------------------------------------
 1. Fixed chainsaw/gauntlet bug on clientside that would result in players
    warping around the map after they hit an enemy.
 2. Fixed rendering glitch when r_detail is used and the console is active.
 3. Fixed a rare decal rendering crash (320 res + r_detail + min screensize).
 4. Fixed a particle rendering crash (e.g. zdomination map05).
 5. Fixed a sound problem on maps that blocked sound clipping.
 6. Fixed rare menu selection bug when full console was active.
 7. Added the message "Cannot change color/skin while alive!" showing in the 
    player setup menu while the player is alive. 
 8. Sometimes one would spawn looking the wrong way if his corpse went
    through a teleport. Fixed.
 9. Fixed missing map names during intermission in some rare cases 
    (eg. zdctf_bsides-.wad).
10. Fixed an infinite loop during intermission when someone had a fragcount
    above 99 or below -99.
11. Removed local port binding from client.
12. Implemented Picture-in-Picture (PiP) feature for duels. When watching a
    duel demo or spectating a duel online, while spying on one of the players,
    a PiP of the opponents view will be shown on screen.
    It is controled via the "pip" cvar: false = No PiP, true = render PiP.
    The size of the PiP defaults to a width of 160 pixels but can be modified
    via the "pip_width" cvar (valid range: 80-640). The position of the PiP is
    determined by the "pip_x" and "pip_y" cvars. Zero or positive values,
    indicate the coordinate of the upper left corner of the PiP (in pixels).
    Negative values signify distances from the right or bottom of the screen.
    For example, the default value of pip_x is -160 while the default value
    of pip_y is 20. The PiP will be shown on the upper-right corner of the 
    screen by default.
13. Allow passworded servers to change the spam limits.
14. Fixed a potential server crash (thx to kgsws_cz).
15. Fixed a numeric overflow bug that would crash unix servers at certain
    times.
16. Improved the team balancing behavior: when "maxplayersperteam" is
    equal to -1, then the server uses the current method (ie., does not
    allow more than maxplayers/maxteams players in any single team) for
    the first 7 seconds ONLY. After that period is up, then joins can be
    made only to the team that has the least number of players. If there
    are more than one such teams, then joins can be made only to the one
    with the lowest team score (from among the teams with the least number
    of players).
-----------------------------------------------------------------------------