Software Change Log

              Changelog for the ZDaemon 1.08 -> 1.09 transition

1. Point 01 release (2006-01-01)
 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
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 (2006-04-04)
 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 (bound to the mousewheel by
    default) are automatically translated to "spynext" and "spyprev"
    respectively while spectating or viewing demos. This facilitates
    the switching of POVs 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 (various revisions at various dates)
 1. Launcher only.

4. Point 04 release (2007-12-17)
 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 (2007-12-26)
 1. Improved server-side speedhack detection.
 2. Better handling of uneven packet delivery (server-side). It avoids
    the use of a certain delaying technique for strategic purposes.
 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 (2008-05-26)
 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
 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
 4. We now force "fuzz" rather than translucency when playing non-coop
 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
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.
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 : Goes forward/backward in the map list 
       mapskipto : 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
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 
       callvote kick 
    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 Phenex2.
82. Started work on enabling dehacked for heretic/hexen courtesy of

7. Point 07 release (2008-06-03)
 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 (2008-10-15)
 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 (2009-07-16)
 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
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.
32. The Chaingunner firing animation/sound was not playing in c/s mode.
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.
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. Assorted 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
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.
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 till 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 (2010-11-30)
 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 unneces-
    sary. 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
 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 (2011-07-14)
 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
 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
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).

12. 1.09b21 public release (2011-07-16)
  1. Fixed several memory leaks, a resource leak and an out of bounds bug.
  2. Fixed a crash when a monster causes the level to end in coop.
  3. Fixed a lighting bug on certain sloped surfaces.
  4. Enabled the rcon command to allow empty double quotes; useful
     for removing passwords.
  5. Added sector specials sDamage_Hellslime and sDamageSuperHellslime
     (delayed damage sector).
  6. Added the following new sector specials:
         Sector_Outside (87)
         sLight_Strobe_Hurt (104)
         Damage_InstantDeath (115)
         Sector_Heal (196)
  7. Made bots aware of new damaging floors.
  8. Fixed multis when a player dies.
  9. Relaxed limit on subsectors (Critical map error: Bad firstline number)
 10. Added new client commands "spynext2", "spyprev2", "spyown". The first
     2 differ from spynext/spyprev in that they avoid going through your
     own POV. The 3rd command restores the view to your own POV quickly.
 11. Fixed a bug whereby movement in the vertical direction was blocked
     if 2 players managed to overlap.
 12. New DMFLAG (DF_TRACE = 0x01000000) and associated cvar (sv_trace) to
     enable hitscan weapons to cross self referential sectors. Also enabled
     the "compat_trace" keyword in mapinfo to override that DMFLAG. The
     mapinfo syntax is:
              compat_trace = N
     where N can be 0 or 1.
 13. Fixed a client crash on exit from e2m9 of doom.wad
 14. Improved the netcode to propagate changes in several server variables
     on start of each round.
 15. Taking advantage of the above improvement, the client can finally
     split demos automatically on each map start.
 16. Added more server query speed settings to the launcher resulting in
     faster server refreshes.
 17. Made the client automatically hide the "press space to join" message
     when taking screenshots. This removes the need for the "cl_showpressuse"
 18. Improved the Heretic frag/teamscore display when using a full screen
     HUD: it's now very similar to the DooM one.
 19. Fixed the orientation of items spawned in c/s mode when their angle
     was non-zero.
 20. Slightly modified the map reset functionality; when a map is reset
     by voting, the players at the time of the voting automatically
     spawn on map reset (so it's not possible for them to lose their
     place in the game from the map reset). Also added a "map_reset"
     server command to do the same from the server console.
 21. Extended the scoreboard to display health/armor up to 999/999.
 22. The monster rail attack now shows in online mode.
 23. Fixed a problem with the Heretic artifacts not making the activation
     sound in c/s mode.
 24. Fixed a bug where some doors would remain partially open in online
     mode. It was a precision loss in the netcode.
 25. Removed a precision loss problem in the player movement in c/s mode.
     It was responsible for a variety of issues including the midget bug.
 26. Enabled "irc://", "zds://" and "#channel" hyperlinks inside ZRC.
 27. New netcode that sends/shows the player pitch.
 28. New netcode that sends/shows the weapon switching.
 29. New netcode handling sector lighting effects.
 30. New netcode handling floor and ceiling texture changes.
 31. The client sends the full pitch angle rather than the delta to avoid
     desyncs due to packet loss; we should never see again the RL fire
     rockets to the floor (and killing us) when we're looking straight
 32. Added an "item_respawn_time" CVAR that determines in seconds the
     respawning frequency of items. The DF_QUAD_RESPAWN_TIME dmflag and
     sv_quadrespawntime CVAR are not needed any more, so they're dropped.
 33. New netcode to differentiate among the various grunts (grunts/lands/
 34. Fixed some accuracy problems with all missiles in online mode. It was
     evident in the cubes fired in the Icon of Sin map.
 35. Fixed coordinate truncation problem during teleporting and also
     improved silent teleports.
 36. New connection handshake that avoid DOS issues and also resolves the
     "invalid nickname" problem.
 37. New "+zoom" command that zooms the player view. The zooming behavior
     is like UT rather than Quake: the amount of zooming is determined
     by how long you keep the zoom button pressed. When you release the
     button, the view stays at the current zoom level. You can unzoom it
     by pressing the button a second time. Zooming is enabled via a new
     dmflag (DF_ALLOW_ZOOM = 0x1000000) or an associated cvar (sv_allowzoom).
 38. Target names should not show on players having an invisibility powerup.
 39. New DMFLAG (DF_SPEC_TEAM_BLOCK = 0x00800000) that restricts spectators
     to own teams in team modes. There is also an associated cvar called
 40. Fixed precision losses at several netcode messages.
 41. New netcode handling dormant, hidden, deaf objects properly on spawn.
 42. Items taken before someone connected to the server, would appear as
     non-taken to that client: fixed.
 43. New netcode that sends player powers on connection: fixes the display
     of players which have activated a special power (eg., invisibility,
     strength, flying) before another player connects.
 44. The lowest layer of the netcode has been completely rewritten; the
     packets have been separated into reliable/unreliable classes and
     reliable (important) packets will be resent by the server in case
     they're missed by a client (for example object creation/destruction
     messages). Enables the use of maps with a large number of objects /
     items in online mode.
 45. New zserv.cfg file with lots of detailed information about all the
     server options, courtesy of Earthquake.
 46. New decals fading after 30 seconds.
 47. Implementation of "remote sounds" in online mode so the server can
     instruct the client to play a given sound from the wads. Fixes a
     variety of bugs in online mode (eg., the sound when you enter the
     main area of the Icon of Sin map).
 48. Proper implementation of tracer (seeker) missiles in online mode.
     It should fix the revenant fireballs and various heretic missiles.
 49. Fixed the WolfensteinSS firing sound.
 50. Reduced the number of packets/data sent by the client while spectating
     or remaining dead.
 51. Implemented the Hexen keys.
 52. Fixed some crashes on special projectiles like the tree leaves on
     Hexen map01.
 53. Weapons now reset on episode start.
 54. Added missing DMFLAGS to the launcher.
 55. Disabled spectator bobbing when they walk on floor.
 56. New DMFLAG (DF_NEW_THRUST = 0x02000000) and associated cvar
     (sv_newthrust) that enables ZDoom 2.x style ThrustThing behavior.
     The main difference is that the thrust angle and momentum is added
     to the preexisting player speed/angle instead of replacing it.
     Careful when using this DMFLAG: some maps require the old behavior
     (eg., zdctfmp2.wad map17).
 57. Added "SR-127" detection to the server. Catches "sideways turbo" hacks.
 58. Added "inappropriate SR-50" detection to the server. Catches "SR-50
     with turning" hacks.
 59. Updated the freedm version bundled with the release.
 60. Implemented a "team radar" that shows the position of teammates on a
     small grid. The radar applies to Coop, Survival, TDM, and CTF modes
     only. It is controled via the "radar" cvar: 0 = No radar,
     1 = Translucent, 2 = Opaque. The size of the graphic defaults to
     128 pixels but can be modified via the "radar_size" cvar (valid
     range: 16-192). The position of the radar is determined by the
     "radar_x" and "radar_y" cvars. Zero or positive values, indicate
     the coordinate of the upper left corner of the radar (in pixels).
     Negative values signify distances from the right or bottom of the
     screen. For example, the default value of radar_x is -128 while the
     default value of radar_y is 0. Given that the default value for
     radar_size is 128, this means that the radar will be shown on the
     upper-right corner of the screen. The "radar_dot" cvar controls the
     size of each player dot. It can range from 1 to 6 and defaults to 3.
     The "radar_scale" cvar controls the map-to-radar scale. It's a
     floating point number and can range from 0.1 to 10. Defaults to 1.
     Higher scale values mean smaller distances on sceen and vice versa.
 61. Enabled the use of more fonts for the console, normal, large and
     centered messages.
 62. New "conbgdinsta" cvar that enables a quick console transition.
 63. New "conbgdshaded" cvar that controls if the console background
     will be the classic one or a user-definable transparent one. You
     can control the background color brightness and opacity by the
     "conbgdbrightness" and "conbgdfade" cvars.
 64. Implemented a new demo format (with ZDD extension) that provides
     the following benefits over ZDOs:
       1. WAD information and checksums are embedded into the demo so
          it's never a mystery about which wad (and version of the wad)
          was used to record the demo.
       2. Native compression support so you don't need to put demos inside
          zip files for web distribution.
       3. The demo can be opened directly by the client (which will then
          figure the wads on its own); simplified the direct opening of
          demos either by the Windows Explorer or even by web browsers
          (in case the demo is downloaded from the web and opened directly).
       4. The demo format supports various embedded tags (for example, game
          type, recording date, player information, etc). It can be used to
          simplify the creation and maitainance of large demo repositories.
       5. Quite a few of the above tags are filled automatically by the
          recording client.
 65. Implemented a "demo tool" program that lets you add/edit tags to
     demo files, automatically saves the demo in compressed format and can
     be used to convert a ZDO demo to the new (ZDD) format.
 66. Enabled the use of "DVD-like" playback controls while watching demos.
     You can play/pause, skip forward/backward to "chapter points" (evenly
     spaced at 20 second intervals) and you can also go forward/backward by
     a single frame (1/35th of a second) while in paused mode. The chapter
     spacing is controled by the "demo_chapterspacing" cvar; it defaults
     to 20 (seconds). The forward/backward skipping is done with the
     "demo_tonext" and "demo_toprev" commands, which are bound to the
     "n" and "p" keys by default. You can adjust them from the "customize
     controls" menu.
 67. Added an optional demo panel that may show either the "demo clock"
     only or the clock plus the key bindings for the forward/backward
     operations. The cvar is called "demo_panel": 0 = no display,
     1 = clock only, 2 = full panel. Themed panels for the various
     games (doom/heretic/hexen) kindly provided by Cybershark.
 68. Added an optional progress bar during the demo playback. It is
     displayed at the bottom of the screen and can provide useful
     feedback as the ZDD format contains duration information. The
     display of the progress bar is controled by the "demo_progressbar"
     cvar (0 = off, 1 = on). You can also control its height via the
     "demo_progressheight" cvar; valid range: 1-32; default = 3.
 69. Updated the fmod library.
 70. Added support for the Game_Music_Emu library (gme.dll) which
     emulates game music in various file formats. For more details check:
 71. Fixed the monsters count when monsters respawn from nightmare,
     archviles, or scripts.
 72. Fixed a division by zero crash on maps with zero length lines.
 73. Using 'connect' on the console will first disconnect from the
     current server if possible.
 74. Relaxed segs, sector, linedef limits. dv.wad map05 will load now.
 75. Increased the consolelines buffer.
 76. Fixed the installation script to avoid removing unrelated stuff.
 77. Added friction and noalert support to terrains. Removed lowfriction
     keyword since it was not working at all. Updated terrain lump in
     zdaemon.wad to make heretic splashes not alert monsters. Replaced
     lowfriction with friction (whole patch by worst-vd-plas).
 78. Added vavoom and vertex slopes (by worst-vd-plas).
 79. Fixed heretic sludge damage to 4 (was using doom nukage with 5).
 80. Fixed bridge things not blocking players on elevators.
 81. Made a small fix for survival/maxlives when going from CS to SP mode:
     maxlives was set to 1, if it was zero.
 82. Updated zlib to 1.2.5
 83. Fixed ACS thingsound to play on client and extended remote sound
     to allow scaled sound playback!
 84. Fixed syncing issue with once usable switches for new connecting
 85. Own death didn't stop double kills: fixed.
 86. Restored client heapsize to 32M to reduce the "out of memory" errors.
 87. Fixed a music restarting problem in online games when the client had
     lost focus and the "mute when out of focus" option was on.
 88. Added high byte support for Line_SetIdentification.
 89. Changes to DMFLAGS and splashfactor while a map was active, would be
     reverted at map's end. Fixed.
 90. Fixed the archvile blast that sent players flying too high.
 91. Fixed a HOM/up/down problem when spectating/spying on others.
 92. Changed the bodyqueue to prevent a rare client crash.
 93. The scores screen should not remain up when you die and remain dead
     through a map change.
 94. Fixed slope things to behave as in ZDoom 2.x
 95. Fixed invisible thing and custom thing bridges
 96. Fixed prediction error from ThrustThings
 97. Fixed transfer height things
 98. Fixed fake floor things
 99. Fixed local scripts for SecThings, for later ACS fixes
100. Chainsaw and railgun shots should not be sent back to shooter.
     Railgun will be animated locally now.
101. Set heretic gauntlets kickback to 0. They should not push!
102. Disabled torque simulation.
103. Simple fix for waterzones.
104. Removed snesapu support from the code.
105. Extended the netcode to support polyobjects in online mode.
106. Updates FLAC to version 1.2.1.
107. Don't allow dehacked to read beyond patchfile.
108. Allow boom pointers to be handled properly in dehacked.
109. Precision fixes regarding r_pointToAngle2: huge slopes should be
     viewable from a distance now,
110. Allow RAW and ADLIB files to be used for music and played by
     the OPL synth.
111. Fixed nextmap of several heretic episodes for a full map rotation.
112. Palette problems in windows vista/7 should be a thing of the past.
113. Fixed a client crash happening at the start of Heretic E2M9.
114. Fixed a vampire mode bug: it would count barrels as monsters.
115. Implemented a reconnect-flooding control.
116. Avoid showing the IP of people getting banned/disconnected when
     there is no nickname available.
117. Implemented a temporary black hole on the server for people who
     are banned and keep flooding the server with connection attempts.
118. The Doom HUD didn't clear properly when a card/skull was removed
     via ACS: fixed.
119. Fixed a crash that happened on both client and server when all
     weapons were removed via ACS.
120. The auto chaos device use will now play a sound and update
     the players health and inventory when it is triggered.
121. The netcode now spawns items over the wire by a unique ID rather
     than class name. This results in significant savings in bandwidth
     on map start (when the map contains many monsters/items).
122. Fixed a client crash when an inactive acs script was terminated.
123. The fraglimit would not show properly when a server used a cvar
     override: fixed.
124. Fixed a problem with mapinfo overrides in conjunction with manual
     overrides of dmflags and sv_splashfactor.
125. Fixed a visual glitch in the doom boss cube.
126. Added high-ASCII characters from the Western European codepage to
     the Trebuchet (scores) fonts.
127. New weapon firing netcode: produces full weapon animation, sounds,
     bullet puffs and proper ammo consumption from the POV of other
     players too. That includes punching in doom as well as all heretic
128. No more separate "deathmatch", "teamplay", "ctf" cvars; game modes
     are now set solely via the gametype CVAR.
129. Increased hard client limits from 16 to 50.
130. When someone remained dead at the end of map in coop, he was not
     able to spawn normally on the next map. Fixed.
131. Added unlagged calculations to the Fist, Chainsaw, Dragon Claw
     (normal mode only), Hellstaff (tomed-up mode only), Staff, Elven
     Wand, Gauntlets and Beak (both modes).
132. Added proper obituaries for Heretic DM to replace the generic
     "Player died" message.
133. Removed several renderer related CVARs which are inappropriate for
     multiplayer games: r_drawtrans, r_particles, tilt, r_skyboxes,
     r_fogboundary, r_drawmirrors and r_drawplayersprites.
134. Fixed a teleporting missile bug where a player/monster blocking
     the exit of a teleport would prevent the missile from teleporting.
135. Added more default bots to bots.cfg (suitable since we're increasing
136. Implemented a new version of unlagged that's tick rather than ping
     based. It's far more accurate and efficient than the previous version.
137. Don't get out of automap mode if you die and the map is overlaid.
138. 4 new heretic sounds by Adereth: New connection sound, found a secret,
     player connection, chat sound.
139. Fixed some problems with the archvile attacks in client/server mode.
140. The resurrection of monsters by archviles would not work properly in
     online mode. Fixed.
141. The position of items marked as "pushable" or "windthrust" was not
     properly updated in c/s mode. Fixed.
142. The -nbots cmd. line parameter on the server would sometimes be
     ignored if a map ended without all the bots having spawned yet.
143. Implemented the -nbots cmd. line parameter on the client.
144. New Chicago font: comes in 8 font sizes and can be used anywhere.
145. Teleporters no longer lag in high-latency games, but appear instant
     to the client.
146. Enabled the connect command in client to issue a true disconnect and
     fixed an server inconsistency with CTF Flag states (reported by
147. Implemented a new server CVAR called "sleep_on_empty". It's about
     having the server sleep when there are no human clients connected.
     When its value is 0, the level/monsters/bots tick as usual even when
     no human is around. When its value is 1 and there are no human
     clients connected, then everything BUT the level timer sleeps (so
     the maps will obey a timelimit if set). When its value is 2 and
     there are no human clients connected, then everything, including
     the timer, is put to sleep. The CVAR defaults to 1.
148. Made the face background in the HUD reflect your selected color.
149. Modified the full screen HUD to use the bottom side for the team
     scores (and keys/cards in coop), to make room for the team radar on
     the upper right corner.
150. Items/Monsters spawned via the summon command (in SP mode) should
     not respawn.
151. Items/Monsters spawned via ACS on the server should not respawn
     independently on the client.
152. Textures and line properties can be changed with acs now.
153. Implemented 2 new dehacked thing properties:
    SpawnID #= , where value can be 0-255.
    Game = , valid names are "Any", "Doom", "Heretic",
    "Hexen" and "Raven".
    SpawnID is used in line specials like Thing_Spawn.
    Game is used for changing the game an actor belongs to.
154. Fixed a problem where doom "missing key" messages would show in
155. New connected clients will set changed scrollers properly now.
156. Client will now correctly adjust pusher values on connect.
157. Fixed a vertical jitter (jackhammer) problem when going down stairs.
     Significantly improves the movement when running over non-flat floors.
158. Fixed a problem where the monsters would sometimes not appear in
     their attacking state (when they were in fact attacking) after
     getting shot.
159. Some monster melee sounds were missing: fixed too.
160. The Burning and Ice death sequences would not display properly in
     online mode. Fixed.
161. The 'do not switch if firing' PWO rule gets suspended for one
     second after spawn.
162. Implemented new dehacked features:
       1. Added heretic armor classes to dehacked misc section. The
          properties are "Silver Armor Class" and "Enchanted Armor Class".
       2. Made armorclass values fixedpoint, eg. "Green Armor Class = 1.5"
          will give 150 armorpoints.
       3. Mixed Doom and Heretic armorlists, it's now possible to have
          4 different armors in doom or heretic.
       4. Added 3 thing state types "Burning death frame", "Ice death frame"
          and "Crash frame".
       5. Added support for MBF-style codepointer A_Spawn. It uses the
          frames "Unknown 1" field as the dehacked thing number to spawn,
          and the "Unknown 2" field as the height relative to the thing
          to spawn.
163. Ceiling flat changes with linespecials should work now.
164. Made parsing of DECALDEF lumps more forgiving in terms of unknown
     generator actors. When such definitions are encountered, the unknown
     generators are skipped and the program continues rather than aborting.
165. Changed default ID for lines to -1 instead of 0. This emulates
     standard Hexen behavior where Line ID 0 can be used, and it's
     still different from all the other lines in the map without a ID.
166. Certain hyperlinks are safe in ZRC, so always enable them. This
     includes #channel, zds:// and http://** links.
167. Added custom colors for 2 more operator categories in ZRC: half-ops
     and "above normal" operators.
168. Implemented automatic altwads on the server: it's controled via the
     "auto_altwads" CVAR; when that CVAR is non-zero (the default value)
     and there are no manual altwads in effect, the server checks the
     maps in the rotation (or all maps if there is no rotation). If all
     maps come from PWADs and the IWAD is doom2.wad, then the server
     inserts the standard freedoom (freedoom070.wad) as an alternate
     IWAD. If all maps come from PWADs and the IWAD is doom.wad, then the
     server inserts the ultimate version of freedoom  (freedoomu070.wad)
     as an alternate IWAD.
169. Added missing sounds of archviles, mancubi and revenants.
170. Several monsters erroneously played their "SeeSound" in c/s mode.
171. The state of lost souls would not be accurately relayed to the
     client after they attacked and hit some wall or similar.
172. Disabled spawning of unknown things in shareware games.
     Heretic shareware deathmatch would display "thing has no
     frames" error messages for pickups of the full game.
173. Updated TERRAIN support to match latest zdoom, fixed terrain based
174. Fixed a server/client crash when bots are used.
175. The program would produce an error after the last episode of the
     shareware IWADs (doom1.wad, heretic1.wad). Fixed.
176. Added a -show_spawns cmd. line parameter to show the player spawns in
     SP mode.
177. Implemented a "Classic Death Behavior" mode; this lowers the player
     view to the floor and rotates the view towards the killer (human or
     monster). It's enabled via a server dmflag (DF_OS_DEATH = 0x08000000).
178. Implemented the proper turning of the marine head in the HUD towards
     the direction of the attacker (human or monster).
179. Extended the main menu to include load/save commands.
180. Fixed the Ironlich fire column in online mode.
181. Implemented a "Double Domination" (DDOM) mode which is a direct port
     of the Unreal Tournament mode with the same name. DDOM is a team mode:
     the map contains two control points (called Domination Points); they
     look like the letter A or B rotating inside a circle. The objective
     for each team is to capture and hold both Domination Points at the
     same time for ten seconds. Dom. Points are captured by running over
     them, and will remain captured until an opponent runs over them (and
     captures them for his own team). The color of the domination points
     indicates their capture status: gold -> not captured (neutral),
     red -> captured by the red team, blue -> captured by the blue team.
     If a team succeeds in holding both Points for ten seconds, that team
     scores a point and the Domination Points are reset. Individual points
     are awarded by the usual TDM rules (+1 for normal kills, -1 for
     suicides and teamkills) with 2 additions: fragging an opponent near
     a Domination Point gives an extra +1, and all players belonging to
     a team (and actually playing: not spectating) get +3 when the team
     scores a point. A "last second save" awards +1 as well. Here is a
     sample video of the mode in action:
     The thing numbers for the domination points are 5135 (A) and 5136 (B).
182. Fixed the Heretic Beast attack (missing puffs).
183. Fixed the Heretic tomed up mace behavior.
184. Efficiency improvements in the client to better handle higher numbers
     of players.
185. Fixed hitscan activated lines not always passing the lineside.
186. Fixed a rare case where players would lose their camera when they
     entered a NULL state.
187. Modified the nice weapons dmflag to work in DM/TDM/CTF the same
     as in Coop mode.
188. Added stacked sectors from zdoom.
189. Fixed the Computer area map pickup sound.
190. The Heretic staff should not hit ghost monsters or players. Fixed.
191. Fixed the ghost flag not being cleared from the player when the 
     Heretic Shadowsphere weared off.
192. Separated the Doom and Heretic invisibility effects to be powerup
     specific instead of depending on the game being played.
193. Fixed editor placed Gib things not appearing in game.
194. Fixed generating textures that had columns with no patches.
195. Quit server and show error message if threads cannot be started.
196. Added support for more than 4 mouse buttons.
197. Implemented a built-in railgun as a Doom weapon. It is placed in
     slot 6 next to the plasma rifle and consumes plasma bullets (4
     per shot). It deals 150 units of damage in coop or survival and
     100 units in other modes. Its edit ID is 5012. This means that it
     can be used in any map / mode without having to replace some
     other weapon (as for example TLSDM does).
198. Fixed bfg tracer rays not hitting a target in rare cases when the
     shooter used a teleporter just before the bfg ball hit a wall.
199. New DMFLAG (DF_INSTAGIB = 0x10000000) and associated CVAR
     (sv_instagib) that enables instagib mode. This mode applies
     to doom only: when it's on, all health, armor, powerups, weapons,
     ammo are removed from maps and everyone spawns equipped with a
     railgun and infinite ammo. All railgun shots are fatal (single-shot
     kills). This dmflag is incompatible with the vampire and dropweapons
     dmflags; they will be unavailable while the instagib dmflag is on.
200. Implemented spawning of voodoo dolls in coop and survival modes,
     when the dmflag (DF2_VOODOO_SPAWNS =  0x2000000) is disabled.
     Otherwise players will instead spawn at the voodoo doll starts.
     The voodoo dolls are for vanilla and boom-format map support,
     and may change in the future for better behavior in the c/s
     setting. Using them in other map formats is not recommended.
201. Fix from zdoom; Improved positioning of heretic and hexen walltorches:
     when placed directly on a 1-sided line, they are moved toward the
     middle of the sector, so the renderer can clip them more reliably.
202. Fixed the Heretic ChickenPlayer grunt sounds.
203. Heretic gasbags were getting heavily out of sync in c/s mode. Should
     be fixed now.
204. Fixed the respawning of items that moved on the server before
     someone connected (eg., items that were placed on scrollers, or
     barrels that had been shot, but not exploded before a player
205. Fixed the spawnming (and respawning) of the Heretic Mace.
206. Fixed the syncing of Heretic volcano blasts as well as the
207. Implemented killlimit in SP mode and also updated the scoreboard
     to show killlimit/timelimit/found secrets in coop mode.
208. Extended the meaning of the teamscorelimit CVAR for coop/survival
     modes. When it's positive, it indicates the total number of dead
     monsters that will signal the end of the round.
209. Corrected the size of the blood splats in c/s mode to be dependent
     on the damage dealt.
210. Implemented an accuracy statistic for the instagib mode: it's
     defined as "hits" / shots and applies to non-coop modes only.
     "Hits" are defined as "kills of opponent players": suicides
     (environment kills) are completely ignored, while a teamkill
     decreases the "hits" value by one. Killing of monsters does not
     increase the "hits" value either. The accuracy statistic appears
     on the DM scoreboard, but not for any team modes as this is not
     their primary objective.
211. New DMFLAG (DF2_OS_BLAST = 0x10000000) and associated CVAR
     (sv_oldblast) that enables vanilla blast physics. Explosions
     will move the player only  along the X and Y axis.
212. Fixed floating cacodemon corpses for connecting players.
213. The server now sends the weapons, ammo, keys, artifacts,
     armor, etc owned by existing players on connection. Results
     in more accurate representation by the clients.
214. Assign slots for all doom and heretic weapons regardless of game
215. Spectators (ex-players) in survival should not be able to call votes.
216. Heretic tomed up mace balls now obey teamdamage and sv_teamautoaim.
217. Preserve color codes on wrapped lines for long acs messages.
218. Added detection of 0 length and otherwise too small REJECT lumps.
     This fixes splash damage issues in some maps.
219. Fixed a sound desync on BFG that could give the shooter a wrong
     impression regarding the success of silencing the BFG.
220. Removed the am_overlay CVAR and replaced it with am_style.
     Possible values are 0 (Standard), 1 (Overlay) and 2 (Both).
221. Allow team chat on intermission screen.
222. Assigned proper puffs for each hitscan attack.
223. Made bloodsplatter actor specific instead of depending on the game
     being played.
224. New server CVAR "sv_intermissiontime" that lets you adjust the
     intermission time from 3 to 300 seconds. This is restricted to
     private OR passworded servers.
225. Enabled map, reset and randmap voting even with no maplist.
226. Various fixes to the Minotaur, DSparil and Ophidian monsters.
227. New client CVAR "r_eyecandy" that controls most visual effects
     introduced by ZDoom and can restore the doom2.exe looks. It can
     be found in Options -> Display Options -> ZDoom eye candy. Client
     needs to be restarted to apply all changes. When disabled it over-
     rides and disables the settings of cl_maxdecals, cl_rockettrails,
     cl_bloodtype, cl_pufftype and will remove transparency from the
     following doom actors: TeleportFog, ArachnotronPlasma, ArchvileFire,
     SpawnFire, BaronBall, CacodemonBall, DoomImpBall, PlasmaBall, BFGBall,
     BFGExtra, FatShot, RevenantTracer, BulletPuff, BlurSphere, LostSoul.
     The default value for the CVAR is true.
228. Extended the standard timer to display in overtime too (using a + to
     indicate overtime operation).
229. Implemented a countdown timer on intermission.
230. New client CVAR called "updfreq". It allows the client to tune the
     frequency of player position updates to his or her net connection.
     It can take the values:
       1 = updates all positions on every tick:
           best accuracy, highest bandwith
       2 = updates all positions every 2 ticks:
           medium accuracy, medium bandwidth
       3 = updates all postions every 3 ticks:
           lower accuracy, lowest bandwidth
     The CVAR defaults to 1 (ie., it requests the most frequent possible
     updates); older ZDaemon versions had the update frequency hardcoded
     to 2 (so that's the value you can use if you prefer the older
     behavior). A value of 3 can be useful for dial-up and other weaker

     There is also a server CVAR called "sv_fineticks" that controls the
     availability of the most frequent updates from the server side. That
     CVAR can take one of 4 values:
       0 = "Single tick" updates will be denied to all (so everyone
           will use an update frequency of 2 or 3).
       1 = "Single tick" updates will be available to spectators only.
       2 = "Single tick" updates will be available to players only.
       3 = "Single tick" updates will be available to everyone.
     The reason for such a CVAR is that maybe a server host does not want
     to enable single tick updates on FFA or CTF servers; they're not as
     important as on duel servers and they cause more bandwidth consumption.
     The default value for "sv_fineticks" is 1 (ie., available only to
     spectators). Server hosts that have been using this CVAR in the
     1.08.xx series should update their configuration files for the new
     meaning of the CVAR.
231. New client cvar called cl_colorrails that enables coloring of the
     railshots according to the shooter's color (railshots coming from
     monsters will have a rainbow coloring).
232. Added confirmation prompts to the "reset" commands in the options
233. Fixed the BOOM passthrough line flag.
234. Push activated line specials were always treated as activated
     from the front side. Fixed.
235. Changed the A_KeenDie codepointer to function the same as vanilla;
     Search among the types that called it, and not exclusively among keens.
236. Changed the A_BrainSpit codepointer to not rely on a pointer to the
     BrainEye that calls it. This allows it to be used with actors other
     than the eye. (eg. deimos_revisited.wad)
237. Wine fixes and saving/restoring of the window state for the launcher.
238. Improved server query speed for the launcher, *especially* under wine.
239. The launcher should avoid refreshing the server list while the client
     is running.
240. New 'humans' column in the launcher: useful for sorting servers by
     human clients.
241. Implemented an update mechanism into the launcher; it can download
     and install all mandatory and optional updates with a minimum of
     effort from the user's part.
242. Added new railgun animation and sprites by SR69MM-JC and rantrave.

13. 1.09b22 release (2011-07-28)
  1. New netcode for ACS GiveInventory and TakeInventory.
  2. Fixed the ACS Spawn and SpawnSpot functions.
  3. Made the sitrep display a bit more flexible: it's now an integer
     rather than a boolean CVAR and it can take the following values:
	0 -> no sitrep
	1 -> show health/armor only
	2 -> show sectinfo only
	3 -> show health/armor/sectinfo
  4. New rule for individual DDOM scoring: +1 point when someone kills
     an opponent near a domination point and the killer's team scores
     within 2 seconds of the kill.
  5. Clients are now notified of all CVAR changes on the server during
     a game.
  6. Display health/armor in the PiP next to the player's name.
  7. Joins in survival are now blocked when the last player dies and
     before the map restarts.
  8. New server CVAR "survival_timed_spec_reset". It's a boolean. When
     it's "true" (the default value), the inventory of spectators will
     be reset at 180 seconds after the round starts (the start of the
     round is taken as when the first player joins: not when the map
     changes on the server). The idea is to prevent people from remaining
     spectators for the purpose of retaining weapon/item stock from
     previous rounds. The CVAR is forced to true for all public, non-
     passworded servers.
  9. New server CVAR "coop_telefrags". It's a boolean. It controls
     whether player-to-player telefragging is enabled in coop/survival
     modes. The CVAR is forced to false for all public, non-passworded
 10. Chaingun of other people sounded a bit too fast: fixed.
 11. Heretic ambient sounds were mixed up: thx to Krawa for the report
     and debugging work.
 12. Fixed 'ghost' lost souls on client.
 13. Fixed drop into ledge when firing railgun at floor.
 14. When someone dies in overtime in CTF and DDOM modes, he will be
     forced to remain dead for a period directly proportional to the
     time already played in overtime (2 seconds delay per minute played).
     This is intended to serve as a tie-breaker.
 15. New client CVAR "cl_turndeathcam". If disabled then the view will NOT
     follow your killer. The default value for the CVAR is true.
 16. New client CVAR "r_zdoomtrans" to toggle the transparency from the
     following doom actors: TeleportFog, ArachnotronPlasma, ArchvileFire,
     SpawnFire, BaronBall, CacodemonBall, DoomImpBall, PlasmaBall, BFGBall,
     BFGExtra, FatShot, RevenantTracer, BulletPuff, BlurSphere, LostSoul, 
     ARocket (explosion). The default value for the CVAR is true.
 17. The client CVAR "r_eyecandy" is now a pure 'meta' CVAR that overrides
     different CVARs to restore a classic doom2.exe look.
     When disabled it is the same as setting cl_maxdecals=0, 
     cl_rockettrails=0, r_zdoomtrans=0, cl_chasedeath=0, cl_bloodtype=0,
     cl_pufftype=0. The default value for the CVAR is true.
 18. When a round starts in double domination (after a team score), all
     players are teleported to their team spawns. This is done to avoid
     camping on the dom. points.
 19. Security and Aiming cameras should now work online.

14. 1.09b23 release (2011-07-30)
  1. Blocked the silent BFG dmflag from Heretic/Hexen.
  2. Implemented random sound variations for Heretic/Hexen.
  3. Linespecials that were implemented/extended and will work online:
     added arg0==0 check:
     added floor sound:
       Plat_DownWaitUpStayLip (tag, speed, delay, lip, floor-sound?)
     added type arg:
  4. Fixed a bug that prevented game saves.
  5. The update dialog in ZLauncher can now produce a list of affected files.
  6. Fixed a recently introduced bug that would not let rockets pass through
     the window in d5m1.
  7. Fixed projectiles thrusted by ThingThrust and ThingThrustZ linespecials.
  8. Fixed monster reflected projectiles.

15. 1.09b24 release (2012-01-27)
  1. Game loading doesn't mix well with start/end of game transitions.
  2. When someone canceled a game load he'd get into a mixed player/
     spectator state. Fixed.
  3. ACS Fixes and Improvements:
     1. Changes to ACS arrays always affected the first declared array,
        rather than the one that was being changed. Fixed.
     2. Recursive ACS function calls were broken. Fixed.
     3. Fixed some cases where garbage values were being written in map 
     4. Implemented support for ACS libraries.
  4. Extended the OS wallrunning dmflag to restore doom2.exe thingrunning
     when enabled.
  5. Restore doom2.exe like item dropping for doom monsters.
  6. Fixed player not dropping weapon if he respawned too fast and drop
     weapon dmflag was enabled.
  7. Introduced a new DMFLAG (DF2_OS_DROPOFF = 0x00002000) and an
     associated CVAR (sv_olddropoff). When this flag is on, actors
     cannot be pushed from ledges. When the flag is off then the
     behavior is similar to BOOM's. This option is useful for maps
     that need vanilla behavior like avj.wad where monsters should
     not drop from pillars.
  8. Fixed melee range calculations for doom and heretic monsters.
  9. New font called "Virtue": comes in 8 font sizes and can be used
 10. New "Major Game Event" font option that lets you specify the font
     used for major game events (eg., Red flag taken, Blue Team
     Dominating, Sprees, Multikills) independently of the normal
     Large font.
 11. New client CVAR "secretmessage". It can take the following values:
     0: Message and sound effect
     1: Message only
     2: Sound effect only
     3: Neither message nor sound effect
 12. Voodoo dolls were not affected by puller/pusher things. Fixed.
 13. Implemented ACS Sound & Music functions in online mode.
 14. Fixed return values of ACS Spawn and SpawnSpot functions.
 15. Added a "compat_shorttex" CVAR that enables the vanilla shortest
     texture finding logic. This affects how much some floors/ceilings
     move in maps that require the old behavior to be on or off. The
     CVAR defaults to true.
 16. ENTER scripts in ACS were being executed too early. Fixed.
 17. More ACS fixes and improvements:
     1. The increment and decrement operators always affected the first
        element of an array instead of the one that was being changed.
     2. Implemented DISCONNECT script support. These scripts are
        executed when a player either disconnects while having
        spawned, or when a player turns into a spectator. The script
        is executed by the world, and by the time it runs, the player
        is already out of the game so nothing can be done to the player
        at that point. The script takes one argument, which is the
        number of the player who left.
     3. Fixed a divide by 0 in the ACS random function when the maximum
        was one less than the minimum. Now you can specify the max and
        min as either parameter. (so now the maximum cannot be less
        than the minimum).
     4. Implemented world and global array support for ACS.
     5. Added the PlayerNumber() ACS function for finding out which player
        is executing a script. For an actual player it returns the number
        of the player and for anything else -1.
     6. Added the ActivatorTID() ACS function to retrieve the TID of the
        actor that activated a script.
     7. Added the strlen ACS function.
     8. Added the getcvar ACS function. It returns the value of a cvar as
        an int, so scripts can alter their behavior based on cvars.
     9. Implemented support for LOADACS libraries.
 18. Added support for loading multiple DEHACKED lumps. This allows
     combining multiple dehacked mods, as long as the dehacked in
     them is not in conflict.
 19. New crosshairsize CVAR that modifies the crosshair size. Its a
     scaling factor applies to the crosshair. Defaults to 1.0 and can
     range from 0.5 (ie., half the normal size) up to 4 (4 times the
     normal size).
 20. The cl_showpressuse CVAR is back; also 2 new boolean CVARS:
     cl_showhud (hides/shows the HUD) and cl_showpaused (hides/shows
     the PAUSED message in SP mode).
 21. New CVARs that control the size of the sniper scope. The
     "scope_scale" CVAR is a boolean indicating whether the scope
     will scale according to the video mode or it will remain constant
     in terms of pixels. The "scope_size" CVAR is an overall scaling
     factor controlling the final size of the scope. It can range from
     0.5 (ie., half the normal size) up to 3 (3 times the normal size).
 22. Some fancy additions to the sniper scope: it can display the
     current zoom factor, as well as the range (distance) to whatever
     you're currently pointing. The zoom display is controled from the
     scope_zoom boolean CVAR. The ranging is controled by the scope_range
     integer CVAR. 0 -> "None", 1 -> "Map Units", 2 -> "Meters",
     3 -> "Yards", 4 -> "Feet". Furthermore, when you're pointing to
     something "shootable", the distance is displayed in red rather than
     gray. This is enabled only when the "target names" dmflag is on.
 23. Major speed improvement in the presence of many monsters in online
     mode. It should be equal in speed to SP mode.
 24. Fixed undocumented behavior of DirectDraw that Microsoft introduced on
     Windows vista and 7. It was causing crashes if the client was run on
     windowed mode and some application went to the true fullscreen mode.
 25. Implemented text (and stacked) language lumps: similar design to
     zdoom 2.x; it facilitates the overriding of most messages from wads.
 26. Fixed missing movebob/stillbob when spectating/viewing demos.
 27. New DMFLAG (DF2_BERSERK_SPAWN = 0x00004000) that spawns players with
     a berserk kit in doom or the gauntlets in heretic.There is also an
     associated cvar called "sv_berserkspawn".
 28. New server "sv_joinlimit" CVAR that applies to survival and blocks
     spectator joins after the specified number of minutes. The limit
     applies from the time someone joins the map: not the time the map
     is loaded on the server. The variable can range from  zero (ie.,
     disabled) up to 1000 (16+ hours). Default value is zero.
 29. Fixed missing invulnerability and light amp effect when spectating.
 30. Fixed player collision jitter.
 31. Enable DDOM teleport-reset even when there are no teamstarts.
 32. Fixed an overtime-respawn-delay bug in CTF and DDOM.
 33. Avoid repeated console messages within brief periods.
 34. Add an optional 5-second delay to all deaths in survival. Pressing
     use within 5 seconds will make you spawn before you are forced to
 35. Fixed a problem with survival giving an extra life sometimes.
 36. Fixed a problem in CTF when the game ended in a tie with someone
     carrying a flag and that person disconnecting (before spawning)
     on the next round.
 37. Fixed a problem in team modes when a player would switch to a non-
     playing team and would remain a spectator till the next round.
 38. Sudden death would not trigger in cases of suicide on overtime.
 39. Fixed a vertical noclip problem among players.
 40. Fixed some cases where BLOCK_EVERYTHING lines would not block.
 41. Implemented the Line_SetBlocking linespecial from zdoom.
 42. Implemented ACS support for the following properties of 
     APROP_Health, APROP_SpawnHealth, APROP_Speed, APROP_Damage,
     APROP_DamageFactor, APROP_Alpha, APROP_RenderStyle, APROP_Mass,
     APROP_Invulnerable, APROP_Ambush, APROP_NoTarget, APROP_Dormant,
     APROP_WaterLevel, APROP_SeeSound, APROP_AttackSound, APROP_PainSound,
     APROP_DeathSound and APROP_ActiveSound.
 43. Fixed projectiles spawned by Thing_ProjectileGravity going out of
     sync in online mode.
 44. Fixed mouse precision loss when aiming while zoomed in.
 45. Fixed railgun shooting sound coming from wrong direction sometimes.
 46. Damage/HealThing linespecial would not update the player health in c/s. 
 47. Implemented proper handling of negative projectile/detonate damage. 
     The health of players and monsters is capped at spawn health.
     Works for all modes.
 48. Extension of the zd_overridecolors CVAR. It can take the values:
     0=Never, 1=Always, 2=Only in DM, 3=Only in team modes, 4=Only in
     non-team modes.

16. 1.09b25 release (2012-02-03)
  1. Don't show health/armor/location in sitrep for spectators.
  2. Swap the positions of the multikill and overtime messages to avoid
     hiding the crosshair in mid-game.
  3. Fixed a problem with markers in the automap.
  4. Fixed a semi-random client crash in maps with acs scripts.
  5. Fixed a crash when the client was started with -nosound.
  6. Fixed a problem with the scores screen in survival.
  7. Fixed line flags impassable+block_everything resulting in railings.
  8. Fixed a bug where the morphed state in Heretic would carry to the
     next map when the map ended while some player was morphed.
  9. More ACS features:
     a. Information functions: ThingCountName, ThingCountNameSector, 
        ThingCountSector, GetSectorFloorZ, GetSectorCeilingZ,
        GetSectorLightLevel,  GetLevelInfo, GetActorAngle, GetActorFloorZ,
        GetActorCeilingZ, GetActorPitch,  CheckActorCeilingTexture,
        CheckActorFloorTexture, GetActorLightLevel, PlayerInGame,
        PlayerIsBot, CheckPlayerCamera.
     b. Other functions: SpawnProjectile, Thing_Projectile2,
        PRINTNAME_SKILL in print/printbold.
     d. New ACS operators: ~, &=, ^=, |=, <<= and >>=.
 10. Implementation of in-game voice chat. It's intended for team modes,
     as well as coop/survival. You need to define a "voice" key that you
     need to keep pressed while talking. The server must also have voice
     enabled in the first place though: you won't be able to talk otherwise.
     There are many options/commands pertaining to voice chat. You will
     find more info at:

17. 1.09b26 release (2012-03-15)
  1. Implementation of 2 new CVARs; "cv_localtime" and "cv_gmtime".
     They're read-only and return the number of seconds since midnight
     in local time and GMT time respectively.
  2. Sitrep now works according to the "viewed" player instead of the
     "real" player.
  3. The voice volume now affects the voice_chat CVAR as well, so people
     don't have to remember the CVAR.
  4. Fixed a problem in the prediction code that caused some player
     collision anomalies.
  5. Fixed the auto join/fire after mapstart/respawn problem.
  6. New client CVAR "cl_ctfpickupflash". It controls the intensity of
     the yellow flash a player sees when picking up a flag. It accepts
     an integer value ranging from 0 (no flash) to 4. The default value
     for the CVAR is 3.
  7. Fixed a spurious turbo detection right upon connection to a server.
  8. Four new client CVARs determining the vertical position of the game
     event, spree, multikill and overtime messages. Their names are
     vpos_event, vpos_spree, vpos_multi and vpos_overtime. They're
     floating point numbers ranging from 0 up to 1, where 0 is the top
     of the screen and 1 the bottom (right above the HUD). Default values
     are 0.2, 0.28, 0.36 and 0.44 respectively.
  9. Fixed a voice chat "stuttering" problem.
 10. Voice enabled servers will now echo the voice back to a client when
     he's alone in the server; this is useful for checking/fine tuning
     the voice chat parameters.
 11. Fixed a relatively rare, device-dependent crash related to voice chat
 12. Improved the handling of the "no camera" problem on the client.
 13. Improved the handling of out-of-order net packets on the client.

18. 1.09b27 release (2012-05-10)
  1. Fixed a "berserk on spawn" problem when viewing older demos.
  2. Fixed new connecting clients not being updated about music changes
     that happened already.
  3. Fixed Enter/Respawn scripts being executed at wrong times in non-coop
  4. New client CVAR "cl_showpovnames". If the CVAR is false, the client
     does not display the player name while spectating or when spying
     other players.
  5. Fixed missiles spawned with the A_Spawn codepointer in online mode.
  6. Added support for MBF-style codepointer A_PlaySound. It uses the
     frames "Unknown 1" field as the dehacked sound number to play, and
     the  "Unknown 2" field as either 0 for normal attenuation, or 1 for
     no attenuation.
  7. Made it possible to turn any projectile into a seeker missile with
     the MF2_SEEKERMISSILE flag. (The projectile needs to call A_Tracer
     to actually home in the target).
  8. Added support for playing the level's default music by using "*"
     as the track name with the ACS music functions or the changemus
     console command.
  9. Fixed monster rails not being visible sometimes.
 10. Players using the voice chat are now visible on the scoreboard.
 11. Fixed the CTF flag animation.
 12. Fixed a rare case where a map would exit even when 'no exit' was set.
 13. Fixed the sequencing after map30 of doom2.
 14. Improved the sound dampening scale during voice chat. It now ranges
     from 1 to 11. 1 = no dampening, 2 = volume will be 90% of normal,
     3 = 80% of normal, ... 11 = total muting.
 15. Removed the i_remapkeypad CVAR; the numlock state will toggle the KP
     remapping: when numlock is enabled the KP keys will be bindable.
 16. Spectator teleporting should not clear one-time lines.
 17. Monsters should never try to chase spectators.
 18. Monsters should not attack mapspots.
 19. Fixed various problems (and crashes) related to the taking/giving of
     weapons from ACS.
 20. Fixed handling of no-decals animations in ANIMATED lumps.
 21. Added support for PATCHINF lumps in wads; they are plain text lumps
     which allow modifying maps by removing, adding or changing things.
     PATCHINF lumps are additive, ie. multiple such lumps can be loaded
     from all wads. You will find more info in:
 22. Extended (and more convenient) syntax for the "addtempban" server
     command. It can now take a player id (indicated by a leading #) or
     a player nickname (indicated by a leading $) instead of the IP
     address. It can be for example:
             addtempban #2 some_reason
             addtempban $nickname some_reason
 23. Do not reset chatmode on map start.
 24. Introduced a new client CVAR cl_prefertink. If true, then the DSTINK
     chat sound from Doom is used if possible. Default: false
 25. Added new voice_quickmute CCMD. When called it shows a numbered
     list of all players that were talking in the last 60 seconds. If
     one of the shown numbers is pressed the player is added to your
     block list or removed from your allow list. Any other key closes
     the menu. The CCMD is bound to 'M' by default.
 26. Implemented CCMD messagemode3 for private chat. messagemode3 is
     bound to 'G' by default. When messagemode3 is called you are
     prompted for a target name. You can either type a name or use the
     up and down arrows to scroll through all player names. The last
     used target name will be reused next time. After the target name
     is confirmed you are presented a chat prompt to write your message
     as usual.
 27. Fix IDBEHOLD cheat code message in SP. 
 28. Fix pickup message for "big" mace ammo.
 29. Unlatch gametype cvar on client for SP mode so it can be changed
     in the menu. A manual map restart is still needed for the new
     gametype to take effect though.
 30. Don't disable idmypos on map change.
 31. Fixed a problem where sv_trace would change when a mapinfo lump was 
 32. Added support for hexen style thing death special activation in maps.
     It can be  enabled in a MAPINFO map section with the keyword
     "activateowndeathspecials" or disabled with the keyword
     "killeractivatesdeathspecials". It defaults to off in doom and
 33. Fixed Enter/Respawn scripts being executed at wrong times in coop
 34. Implemented client CVAR voice_overdrive2 that controls the sound
     dampening when the client is recording voice. For details check the
     voice doc at:
 35. Improved netcode: it should result in fewer (or no) missing items on
     map changes/resets.
 36. Implemented the inventory HUD for Doom.
 37. Fixed selecting inventory items in online mode; when scrolling through
     items and selecting one, the item was used right away, instead of
     first being chosen as the current selected item.
 38. Fixed rendering the alpha of fake floors in sectors with stacked
 39. Better handling of out-of-order packets on connection/map load/map
     reset. It should stop the problem of flags sometimes showing as
 40. New "-novoice" command line parameter that blocks voice chat
     completely; it might be needed under Wine.

19. 1.09b28 release (2012-08-31)
  1. ACS fixes and features:
     a. Fixed using takeinventory to remove the players last weapon.
     b. New inventory functions: CheckActorInventory, ClearActorInventory,
        TakeActorInventory, GiveActorInventory.
     c. Setting an actor's health to 0 or below with SetActorProperty will
        now properly kill the actor.
     d. Added support for zdoom switch case statements.
     e. Fixed ACS operators that did not always work with map arrays:
        += , -= , *= , /=, %=, ++ and --.
     f. Fixed line special arguments in Hexen ACS scripts; They should be
        truncated to bytes. (only with hexen mapinfo and old ACS format)
     g. Fixed the SpawnProjectile ACS function.
     h. Added an "acsdebug_pcdcount" CVAR that displays how many ACS
        P-Code instructions were executed when a script stops or delays.
  2. Added support for Risen3D/PrBoom+ MUSINFO lumps.
  3. New DMFLAG (DF2_OS_MISSILECLIP = 0x20000000) and associated
     CVAR (sv_oldmissileclip) that enables vanilla missile behavior
     regarding clipping to doom obstacles.
  4. Better (lower / more dynamic) memory consumption on the server with
     respect to the clients.
  5. Fixed 16-rotation sprites so that the rotation boundaries are where
     you would expect them to be.
  6. Added a "zdoom_blockeverything" CVAR. When enabled, for lines with the
     BLOCK_EVERYTHING flag it will block some weapon attacks such as the
     railgun shots and bfg tracer rays. For such lines it will also affect
     line sliding (bumping and wallrunning). It also affects some monster
     attacks such as the arch vile attack, and monster sight checks going
     through such lines. The CVAR defaults to false.
  7. Implemented demo playlists; they're plain text files with a ZDL
     extension containing lists of ZDD files (one per line). When you
     open a ZDL file for playing, the client will play the specified
     demos one after the other. ZDL files can contain comments starting
     with ; or #. One can also specify a brief description for each demo;
     such descriptions are introduced by a tab immediately following
     the demo filename. Those descriptions will be shown for 5 seconds
     at the start of each demo. There is currently a restriction that all
     ZDD files inside the playlist should use the same IWAD and PWAD(s).
     This will be relaxed in the future.
  8. Implemented two new client CCMDs called "demo_prevdemo" and
     "demo_nextdemo"; they apply to demo playlists only and they move
     you to the previous/next demo in the list. They default to the
     "K" and "L" keys respectively and can be adjusted from the menu.
  9. Added two new client CVARs determining the vertical position of the
     demo descriptions, as well as that of the general messages sent by
     the server. Their names are "vpos_demo_descr" and "vpos_msg"
     respectively. They're floating point numbers ranging from 0 up to 1,
     where 0 is the top of the screen and 1 the bottom (right above the
     HUD). Default values are 0.8 and 0.4 respectively.
 10. When a demo ends or is stopped, there is now a prompt to replay it
     from the start.
 11. Added a CVAR called "demo_autoplaylist". When the CVAR is on and the
     recorded demos get auto-split, the client will automatically generate
     a ZDL file listing the demos. In this way, one can play all of them
     in sequence with no manual labor.
 12. Added support for return values in ACS Line specials.
 13. Implemented 2 new action specials: ACS_ExecuteWithResult and
 14. Implemented the following ACS functions: PlayerClass, GetPlayerInfo,
     GetScreenWidth, GetScreenHeight, GetLineRowOffset, SetResultValue,
     Log, ChangeSky, ReplaceTextures, SpawnSpotFacing, SetActorPitch and
 15. Implemented support for printing map/world/global arrays in ACS.
 16. Improved the Print and PrintBold ACS functions to use any specified
 17. Improved the HudMessage/HudMessageBold functions to properly handle
     any specified font, added the log option, added the fade in/out type
     and made them work properly in online mode.
 18. Changes in gravity/air control via ACS are properly replicated in
     online mode.
 19. Implemented a "King of the Hill" (KOTH) mode which is similar to
     Double Domination, but uses one rather than two domination points,
     leading to simpler gameplay and mapping considerations. Team and
     individual points are awarded based on the DDOM rules. Kudos to
     Cybershark for demonstrating the viability/desirability of the
     mode with his fine prototype:
     The thing number for the KOTH domination point is 5137.
 20. Changed domination points to be subject to gravity, and made setting
     the thing's first argument to 1 enable the NOGRAVITY flag in the thing.
 21. Monsters that were attacked by a player with the NOTARGET cheat did
     not chase after the player. Fixed.
 22. The server should send found items and secrets to connecting players.
 23. Implemented "damage dealt" for coop & survival; the game keeps track
     of the damage one inflicts on monsters (not other players, barrels,
     bots, etc); this solves the "apple-to-oranges-comparison" problem of
     counting kills of different monsters (eg an imp kill is not the same
     as a cyberdemon kill). The damage becomes the main ranking criterion
     in the scoreboard.
 24. The DM scoreboard can now show suicides and other players' exp.
 25. The coop, survival and DM scoreboards are now customizable regarding
     which values one wants to show and in which order.
 26. Fixed default airsupply value for maps without a MAPINFO definition.
 27. Implemented the following ACS functions: CheckActorClass, CheckSight,
     CheckActorProperty, GetChar, GetActorVelX, GetActorVelY, GetActorVelZ,
     SetActorVelocity, GetAirSupply, SetAirSupply, SpawnForced, 
     SpawnSpotForced, SpawnSpotFacingForced.
     CheckActorProperty supports the same properties as the functions 
     GetActorProperty and SetActorProperty. CheckSight supports the
 28. Implemented support for printing hexadecimal values in ACS.
 29. Quadrupled the ACS P-Code runaway limit to 2 million instructions.
 30. Added support for checking if a player is carrying a flag with the
     ACS CheckInventory functions. (ie. CheckInventory("RedFlag")).
 31. Added MAPINFO keywords: minotaurspecial, dsparilspecial,
     ironlichspecial, and specialaction_killmonsters.
 32. Implemented support for using 'lookup' with MAPINFO mapnames.
 33. Mixed Doom, Heretic and Hexen keylists, all the keys can now co-
     exist in any of the games. Note that lock numbers are specific to
     the game being played. ACS inventory functions can however be used
     to check for the keys of the other games.
 34. Developed and added a brand new heuristic to fix slime trails
     without rebuilding the BSP tree. This seems to be very effective
     and fixes almost all of the occuring slime trails, including
     doom.wad's classical e1m1 slime trail.
 35. When you spectate on someone who disconnects or becomes a spectator,
     the client automatically switches view to another, randomly selected
     player. If no suitable candidate exists, then it switches to your
     own view.
 36. Implemented two new ZDaemon ACS functions: GetTeamScore(team) and 
     SetTeamScore(team, value). The constants TEAM_BLUE, TEAM_RED,
     TEAM_GREEN and TEAM_WHITE can be used with the functions.
     Scripts using the functions need to include "zdaemon.acs" with them,
     which is an ACS definition file for ZDaemon scripts.
     It can be found at: 
 37. Fixed giving/taking armor, health, backpacks and powerups with ACS
     in c/s mode (Powerups can only be given).
 38. Added a new dehacked A_FireCustomRailgun codepointer. It uses the
     frames "Args1" and "Args2" fields for the Damage and offset of the
     railgun shot.
 39. When spying other players, camera views set by the ChangeCamera line
     special were lost. Changed so that it does not only remember your 
     camera view, but also that of every other player too.
 40. Fixed things spawned with the A_Spawn codepointer, they should not
 41. Changed the amount of ammo given by ACS spawned items; They now give
     full ammo like map placed items. A new "sv_full_acsitem" CVAR can be
     toggled to adjust this behaviour.
 42. Implemented the GetArmorType(str armortype, int player) ACS function.
 43. New snd_privchatvolume CVAR that controls the audio volume of private
 44. New snd_chat, snd_teamchat, snd_privchat CVARs that affect the sound
     played on reception of different types of chat messages. The sounds
     default to those of the IWAD, but one can select the doom 1 chat sound
     or one of several zdaemon-specific sounds residing in zdaemon.wad.
     These CVARs supercede cl_prefertink introduced in b27.
 45. Sync forcewater server cvar with the clients.
 46. Fixed a problem that caused ghost items in TLSXCTF1.wad map07.
 47. Fixed level timer position on intermission.
 48. Fixed BFG spray damage explosions on actors getting spawned twice.
 49. Made the server substitute EndSequences in MAPINFOs with the next 
     episode's first map or with the games start map.
 50. Show a message when others find secrets.
 51. Toggling fast monsters DMFLAG on/off on-the-fly won't need a manual
     map restart to take full effect.
 52. Fixed a crash with empty decalgroups.
 53. Show total demo time on demo end screen.
 54. If an old demo is replayed, the time from the previous play is used
     for the progress bar.
 55. Fixed the bot trash talk in SP mode.
 56. Toned down the redscreen effect when the 'Berserk on Spawn' DMFLAG
     is enabled.
 57. Fixed the counting of own ammo while shooting.
 58. Fixed rare desync when spawning missiles near a ledge.
 59. Stop sound sequences when skipping on demos.
 60. The demo tool will now use (and preserve) the timestamp of ZDO files.
 61. Made the importing of old demos easier, by pre-selecting doom2.wad as
     the iwad and parsing the zdo filename for pwads.
 62. Implemented a "free roaming view" while demo playing. It's controlled
     via the "demo_freeview" CVAR which defaults to true. When enabled, it
     adds a new "free roaming" POV and also blocks the recording player's
     POV if the recorder was spectating. When disabled, the free roaming
     POV disappears and if the recorder was spectating, you will see again
     his (non-roaming) POV.
 63. Extended the slimetrail fix to remove all limitations with the poly-
     objects. Removed polyobject limitations are:
      - They had to be convex objects.
      - They had to stay on the subsector they were spawned in.
      - Only one polyobject was allowed per subsector.
 64. Fixed a crash with hudmessages in SP mode. It could happen if the
     activator of the script was not a player.
 65. Improved the polyobject handling in the renderer.
 66. Fixed dehacked frame pointer definitions. Dehsupp ActionLists are now
     ignored, and an internal list is used instead. Adjusted the code so
     that the internal order of the codepointers no longer matters. This
     fixes the issue with dehacked codepointers using the action list.
 67. Fixed a bug on the client where inventory keys were not cleared on
     map changes without intermission. sv_keepkeys had to be on and the
     game mode had to be cooperative for it to happen.
 68. New "-demo_quit_atend" client command line switch that instructs the
     client to exit automatically at the end of demos.
 69. Fix a client crash in e.g. dwango11 map 28 due to 0-length lines.
 70. Block chat keys during demo view.
 71. Fix dampening not working right while recording voice.
 72. Fixed problem where testing for an empty spawn spot resulted in making
     live players non-solid.
 73. Fixed particles being visible through solid walls in some cases.
 74. Implemented a new DeHacked thing property for items: "Respawn time",
     it takes a tic value, which if bigger than zero, overrides the respawn 
     delay for that item.
 75. Implemented three new Dehacked global properties (Misc section):
       * Vampire Max Health: specifies the max. health reachable via
         vampire. Defaults to 200.
       * Vampire Player Factor: specifies the vampire scale factor
         applied to damages on humans/bots. It's a percentage value
         defaulting to 50 (%).
       * Vampire Monster Factor: specifies the vampire scale factor
         applied to damages on monsters. It's a percentage value
         defaulting to 25 (%).
 76. Implemented a "Join Password" for servers; this enables anyone to
     connect to a server, but he'll have to supply a password to join
     (play). The password is specified by the "join_password" CVAR on
     both the server and client sides. The launcher can optionally prompt
     for (and remember) such passwords when one connects to the server.
 77. Enabled the PROP_FROZEN property on the client.
 78. Enabled the SetPlayerProperty line special to work properly online.
     It supports the following properties: PROP_FLY, PROP_FROZEN,
 79. Fixed a crash with redefined decals (cc3up1.wad)
 80. Made DDOM/KOTH modes work "completely" in SP.
 81. Fixed the total item count not increasing when items respawn.
 82. A script's font could crash the game when saving. Fixed.
 83. The Spawn Mega Items (sv_nosuper) dmflag has been extended to
     control whether the EnchantedShield, Invisibility, TomeOfPower,
     SuperHealth, Fly and Invulnerability items will spawn in Heretic.
 84. Changed PIT_FloorDrop to fix an issue in CommunityChest4 Map12
 85. Removed the heapsize CVAR on the server. Use the -heapsize command
     line parameter instead.
 86. Fixed crashes and visual glitches in Cybercrime 3 when particles 
     were visible in the skybox.
 87. Added a new "con_scaleacsprint2" cvar which scales the print/
     printbold ACS messages in the same way that con_scaletext scales
     all messages. It can be found in the messages menu under display
     options. The CVAR defaults to false.
 88. Added two new fonts to be used with ACS Print/PrintBold statements.
     They can be adjusted from the Options/Display Options/Fonts submenu.
 89. Netcode improvements to reduce problems with missing/duplicate/ghost
     items and monsters.

20. 1.09 release (2012-09-01)
  end of line