Software Change Log

              Changelog for the ZDaemon 1.10 -> 1.11 transition

1. Point 01 release (2018-03-15)
 1. Significant improvements to unlagged; hitting in online mode should
    now be exactly the same as in SP mode even in very high ping
    situations; furthermore, there should be far fewer "dropped shots".

2. Point 02 release (2018-04-08)
 1. Added a new dmflag (DF3_INFINITE_ITEMS = 4) and an associated CVAR
    (sv_infiniteitems). It blocks the "consumption" of an item when it
    is used (so it's effectively infinite once you acquire it).

 2. Changed the behavior of callvote: the person that calls the vote
    is automatically marked for a "yes" vote, so there is no need for
    them to issue such a command separately.

 3. Implemented a new "duel" mode (gametype=9). It differs from normal
    DM in the following aspects:
      a. maxplayers is forced to 2.
      b. overtime is forced to 1.
      c. sv_deathlimit is constrained from 15 to 60.
      d. When 2 players join, they start in "warmup" mode where they
         can play, get a feeling about the server, shoot and damage
         each others, but the frag/death/suicide counters remain at
         zero. When they are ready to start the game, they can call
         a vote with the command "callvote game". The vote requires
         100% agreement to pass.
      e. Once the "set game" starts, it will end in one of 3 ways:
           * Someone wins/loses (normal end of game).
           * Someone disconnects (automatic forfeiture of the game
             no matter the disconnection reason).
           * The players can use "callvote cancel" to cancel the
             game. If the vote passes, the game is canceled, no
             stats are recorded and it returns to warmup mode.
      f. If demo recording is enabled on the server, it will record
         demos only for the actual game: not the warmup.
      g. The warmup period length can be constrained by the
         "warmup_timelimit" CVAR; it defaults to 5 minutes and
         can range from 0 (which means unlimited) up to 1000.

 4. Fixed stretched skies in widescreen mode.

 5. World and global ACS arrays are now zero-initialized as they
    should be.

 6. An attempt to load a map will now only happen if a valid
    sequence of properly named data lumps follows its label.

 7. Extended tab autocompletion for client console commands. Auto-
    completion after "toggle", "rcon" and "rcon toggle" is possible.

 8. Fixed Heretic ammo pickup. Values for all types of ammo are 
    correct now.

 9. Fixed client freeze (eg. iddqd1.wad map12, whitemar.wad map01).

10. Fixed a problem that would cause spectators to reveal secrets
    under certain conditions.

3. Point 03 release (2018-04-11)
 1. Fixed some ACS memory handling problems.

4. Point 04 release (2018-05-18)
 1. Added killlog as new command line parameter -klog. It logs
    player name and killed monster. Only active in Coop and Survival.

 2. Pitch set by Security Camera was ignored online. Fixed.

 3. Fixed erroneous pixels of particles (rocket trail, railgun,
    particle fountain) in uncapped mode.

 4. Enabled cvar override for timelimit.

 5. Fix for CPW_BulletAttack, CPW_CustomBulletAttack and 
    CPW_CustomMissile: sv_infiniteammo had no effect and ammo counting
    was wrong online. Fixed.

 6. In survival sv_deathlimit is constrained from 1 to 5.

 7. Implementation of the following ACS functions:
      * UniqueTID
      * IsTIDUsed
      * Sqrt
      * FixedSqrt
      * strcmp
      * stricmp

 8. Enabled Get/SetActorProperty() ACS functions:
      * APROP_Frightened
      * APROP_NoTrigger
      * APROP_DamageMultiplier
      * APROP_StencilColor

 9. More render styles added:
      * STYLE_Stencil
      * STYLE_TranslucentStencil
      * STYLE_AddStencil
      * STYLE_AddShaded
      * STYLE_Shadow

5. Point 05 release (2018-07-29)
 1. If a stencil render style is active on a player, the own weapon is
    shown in stencil color now. TranslucentStencil, AddStencil 
    and AddShaded ignored brightness. Fixed.

 2. Fixed disappearing corpse in survival after player is out of lives
    and got a spectator.

 3. Red damage screen ignored sv_powerful_monsters in online mode.

 4. Enabled SetPlayerProperty PROP_TOTALLYFROZEN.

 5. Changes of SetPlayerProperty in online mode does not touch
    client's chasecam anymore.

 6. More font colors for Print/HudMessage and client Message Colors:

 7. Print/HudMessage: color for chat messages (\c*) and team chat
    messages (\c!) added. It uses the color of chat/team chat.

 8. HudMessage visibility flags added: HUDMSG_NOTWITH3DVIEW,

 9. No message to join in survival when out of lives.

10. Implementation of ACS function ClassifyActor.

11. Implementation of ACS function GetActorPowerupTics.
    Powerups are: PowerInvulnerable, PowerStrength,
    PowerInvisibility, PowerIronFeet, PowerLightAmp.
    Heretic: PowerWeaponLevel2, PowerFlight, PowerGhost.
    Hexen: PowerSpeed.

12. Items could be used during intermission or as spectator. Fixed.

13. Linedef activation added: Projectile hits or crosses.

14. Basic implementation of LineAttack with tid, angle, pitch,
    damage and range.

15. Script activators would get lost while morphed: fixed.

16. Enabled user input to short-circuit the screen transition
    effect when starting a map.

17. Fix for CPW_BulletAttack and CPW_CustomBulletAttack: bullet puff 
    is shown now online.

18. Added obituaries for Hexen to replace the generic "Player died"
    message when a monster kills a player.

19. Added new screen wipe style: Wipe Oldschool.

20. Fixed a bug introduced in 1.10b09 which caused an ACS script which
    called ACS_ExecuteWithResult() or ACS_NamedExecuteWithResult() to
    be killed with the "ACS stack underflow" error if it called one of
    these built-in functions from within a custom function.

6. Point 06 release (2018-11-19)
 1. CheckInventory and CheckActorInventory return active powerups now.

 2. Maximum ANIMDEFS frames enlarged to 128.

 3. Implementation of ACS function SoundSequenceOnActor,
    SoundSequenceOnPolyobj and SoundSequenceOnSector (location 
    parameter will be ignored).

 4. Implementation of ACS function SetSkyScrollSpeed.

 5. Fixed: Flag of carrier (CTF) was shown too high in TERRAIN footclip.

 6. Improvements to voice chat: avoiding crackle and higher volume.

 7. Added a new dmflag (DF3_NO_EPISODE_RESET = 8) and an associated CVAR
    (sv_noepisodereset). There will be no inventory reset when episode 
    starts (E1M1, E2M1, E3M1, E4M1, E5M1, MAP01).
    It has lower priority than CVAR sv_resetinventory.

 8. Implementation of ACS function Scroll_Wall. For compatibility
    parameter "flags" is needed, but all parts of the wall will scroll.

 9. Heretic weapon Hellstaff with active Tome of Power (raindrops)
    used in Doom did not work. Fixed.

10. Fixed: A_SkullPop crashed Player Setup in Doom/Heretic.
    (e.g. Heretic Player gibbed death)

11. ACS function Sector_SetDamage: parameter interval and leaky added.

12. SNDINFO: Implementation of $volume, $attenuation and $rolloff.
    Optional attenuation for $ambient point added.

13. Gravity of a projectile spawned with Thing_ProjectileGravity was
    too high in online mode. Fixed.

14. Things added:
      * ColorSetter (9038)
      * FadeSetter (9039)
      * HateTarget (9076)
      * Polyobject Start Spot (hurts to touch) (9303)

15. Sector_SetColor and ColorSetter support Desaturation now.

16. Midi opening/closing has been moved to a background thread in
    order to preserve game responsiveness.

7. Point 07 release (2019-02-09)
 1. Morphing to Pig in non-Hexen games crashed client and server. Fixed.

 2. New constants for GetPlayerInfo() ACS function:
    PLAYERINFO_MORPHTICS (121):   tics countdown (chicken/pig)
    PLAYERINFO_MORPHED (122):     returns MORPHEDTO_NONE (0),
                                  MORPHEDTO_CHICK (1), MORPHEDTO_PIG (2)
    PLAYERINFO_READYWEAPON (123): selected weapon

 3. Implementation of the following ACS functions:
      * GetAmmoCapacity
      * SetAmmoCapacity
      * SetHudSize
      * SetMusicVolume (range of volume is from 0.0 to 1.0)
      * SpawnParticle (in online mode only for client scripts)
      * VectorLength
      * SetPointer
      * IsPointerEqual (AAPTR_PLAYER_GETCONVERSATION not implemented)
      * DropItem (dropamount will be ignored,
                  chance -1 means doom2.exe behavior)

 4. Crushing mode added, so crushers can be set as Doom or Hexen
    crusher. Crushed dead players will change to pools of blood now.
    Caught in the crusher player's view lowers now in online mode.
    Generic_Floor can crush now. Fixed.
    Implementation of line specials:
      * Floor_RaiseAndCrushDoom
      * Ceiling_LowerAndCrushDist
      * Ceiling_CrushAndRaiseDist
      * Ceiling_CrushAndRaiseSilentDist
      * Generic_Crusher2 (uses Hexen mode)

 5. Heretic Firemace projectiles bounced by hitting the sky. Fixed.

 6. Fix for invulnerability when sv_oldblast is active: player didn't
    get a thrust. (e.g. Arch-vile attack, rocket/barrel explosion)

 7. Message which player exited was shown multiple sometimes. Fixed.

 8. Improvement to default zoom of automap. It was too small.

 9. Added an "sv_ammomultiplier" CVAR that modifies the amount of
    ammo given on pickups. It's a scale factor expressed in percentage
    terms: defaults to 100 (%) and can range from 0 up to 500 (%).
    Applies to coop and survival ONLY: ignored in other modes.

10. Added new setting "Viewheight Bobbing" and CVAR "movebobviewheight"
    So it is possible to switch off up and down bobbing, but keeping
    the weapon bobbing for the Doom look.

11. Command "maplist": the actual running map is marked now.

12. Reducing intermission time is possible now when all players
    press use/fire.

13. Intermission is closer to original Doom/Doom2/Heretic in online
    mode now. Entering level and "you are here" will be shown.

14. Sector Special "Door Close Stay (after 30 sec.)" was buggy in
    online mode. Fixed.

15. Fix for "Screen wipe style none" 2 sec. input delay at
    map start in singleplayer.

8. Point 08 release (2019-05-29)
 1. ACS Print: cast type l (localized string from LANGUAGE) added.

 2. Fix for 1.10.07: Never crush BossBrain to pools of blood.

 3. Implementation of line special Teleport_NoStop.

 4. "auto_altwads" updated to Freedoom 0.11.3.
    Plutonia and TNT are also included now.

 5. Sound of Scripted Marine Pistol/Chaingun/Shotgun/SSG was played
    twice in online mode. Fixed.

 6. Hexen artifact Mystic ambit incant (ArtiHealingRadius) added.
    In non-Hexen mode: Heals the player and each affected player
    by 50-99 points.
    In team games only team mates could be healed.

 7. Hexen artifact Dragonskin bracers (ArtiBoostArmor) added.
    In non-Hexen mode: Gives 50 Armor up to Armor limit.

 8. Random maplist and Lobby is possible now.
    So it enlarges the usage of Lobby with an Exit.

 9. New server CVAR sv_reshuffle: Reshuffles a random maplist after a
    certain amount of played maps. 0 never reshuffles.

10. Implementation of ACS function GetPlayerInput. Limitations for 
    buttons: only BT_ATTACK, BT_USE and BT_JUMP are supported
    so far.

11. Implementation of ACS functions MorphActor and UnMorphActor.
    For MorphActor:
    playerclass: ChickenPlayer, PigPlayer
    monsterclass: Chicken, Pig
    Parameters style, morphflash and unmorphflash will be ignored.

12. Hexen monsters fixed in online mode:
      * Reiver buried (WraithBuried)
      * Stalker (Serpent)
      * Stalker Boss (SerpentLeader)
      * Dark Bishop (Bishop)
      * Menelkir (MageBoss)
      * Zedek (FighterBoss)
      * Traductus (ClericBoss)
      * Heresiarch
      * Korax

13. Fix for ClearInventory and TakeInventory that caused "Bad packet".

14. For using Heretic/Hexen sprites in Doom renaming added:
    Heretic: HEAD -> LICH
    Hexen:   ARM1 -> AR_1   ARM2 -> AR_2   ARM3 -> AR_3   ARM4 -> AR_4
             BARL -> ZBAR   CAND -> BCAN   EGGM -> PRKM   ROCK -> ROKK
             SUIT -> ZSUI   TRE1 -> ZTRE   TRE2 -> TRES   WATR -> HWAT
             MNTRF -> MNTRU   MNTRG -> MNTRV   MNTRH -> MNTRW
             MNTRI -> MNTRX   MNTRJ -> MNTRY   MNTRK -> MNTRZ

15. Hexen weapons Firestorm, Wraithverge and Frost Shards fixed
    in online mode.

16. Hexen artifacts "Dark Servant" (Friendly Minotaur) and "Disc of
    Repulsion" implemented.

17. Hexen puzzle items implemented.

18. Player colorization in Hexen implemented.

19. Fixes for Hexen destructible objects.

20. Heretic/Hexen: Height of time bomb explosion in online mode

21. Fix: Disabling of vid_fps redraws the HUD.

22. ZLauncher can now become the system-wide handler of the zds://

9. Point 09 release (2019-07-19)
 1. MBF dehacked added:
      * Scratch (Unknown 1: damage, Unknown 2: sound effect)
      * Turn (Unknown 1: angle rotation in degrees)
      * Face (Unknown 1: angle position in degrees)

 2. Fix for MBF dehacked Mushroom.

 3. Implementation of MBF Helper Dog.

 4. Fix for client-side falling down Things in online games.

 5. Connecting clients get the monster's state from the server now.

 6. Line_SetIdentification "clipmidtex" and mapinfo
    "clipmidtextures" added.

 7. Implementation of command "listmaps". It shows all available maps
    of the loaded wad(s).

 8. Implementation of the variable "log_scores". When enabled, it will
    print the intermission information to the zserv console, and if
    enabled, the general log as well.

10. Point 10 release (2019-12-13)
 1. Fixed: Turning player into spectator resets keys.

 2. Fix for Respawn where we died (sv_samespawnspot): If the player
    stucks teleport back to start.

 3. Respawning of ArtiInvulnerability and ArtiInvisibility depends
    on the dmflag DF_RESPAWN_SUPER (sv_respawnsuper) now.

 4. ACS Line_SetBlocking: BLOCKF_HITSCAN and BLOCKF_SOUND added.

 5. New ACS functions to change the behavior of Artifacts.
    The syntax of the declaration is:
    void Arti_Execute(str artifact, int script,
                      int arg1, int arg2, int arg3)
    void Arti_ExecuteAlways(str artifact, int script,
                      int arg1, int arg2, int arg3)
    void Arti_NamedExecute(str artifact, int script,
                      int arg1, int arg2, int arg3)
    void Arti_NamedExecuteAlways(str artifact, int script,
                      int arg1, int arg2, int arg3)

    When the artifact is used "script" will be executed instead of
    the hard coded action.
    Arguments for the functions are optional.

 6. Fix for demo playback: voice chat packets will not played
    during skipping.

 7. Sound option "Mute when out of focus" changed from yes/no to
    a slider. CVAR snd_muteoutoffocus changed from Bool to Float.

 8. Monsters which wake up, do melee attack or fire immediately did
    not show firing animation in online mode. Fixed.

 9. Implementation of BetaSkull and BetaSkullAttack (dehacked).
    Sprites SKUB for BetaSkull (instead of SKUL), so both
    Lost Soul monsters can be used.

10. It could happen that connecting clients timed out on the server.
    Fixed (server-side).

    Value is the previous tic now.

12. "auto_altwads" updated to Freedoom 0.12.1.

13. Fix for Infinite Ammo: it's possible to shoot even if there is
    not enough ammo for the weapon.

14. Bot could stick when sv_olddropoff was active. Fixed.

15. If map00 exists and no maplist is defined the game will start 
    with map00. Designed for Deathmatch servers with scripted
    lobby map00.

16. Fix for HudMessages which overlap the statusbar.

17. Bloodsplats (blood on the wall from damaging monsters/players)
    work online now. Old behavior can be set via cl_bloodsplats 0.

18. Fix for render style Stencil for resolution 1366x768.

19. Fixed an issue that could make a bad packet cause a nameless
    player in game.

11. Point 11 release (2020-01-01)
 1. Random Pitch Variations also work in Doom now if enabled.
    Announcer and taunts will never be pitched.

 2. Fix for playback client recorded demos: own player did not 
    show Player Bobbing.

 3. Fix for Chicken speed: it was a bit too fast.

 4. Implementation of "dontchasetarget" for line special Thing_SetGoal.
    Thing added: PatrolSpecial (9047).

 5. Added a switch to enable or disable vsync: vid_vsync
    This is also accessible via Video Mode -> Adv. Options

 6. Workaround implemented for when VSync is disabled on the
    graphics driver side, specifically during the connecting state.

 7. Fix for spawning with wrong angle, when the player got killed
    in teleport freeze time.

 8. Fix for damaging sectors in online games. Sometimes damaging was
    missing or triggered multiple.

 9. Changes to sector specials:
      * hDamage_Sludge (85) added
      * sDamage_Hellslime (105) fixed
      * sDamage_SuperHellslime (116) fixed

10. Implementation of dehacked SavePercent. Percentage of damage that
    the armor absorbs set in Miscellaneous. Armors:
      * Green Armor SavePercent
      * Blue Armor SavePercent
      * Silver Armor SavePercent
      * Enchanted Armor SavePercent

11. Fixed: never decrease health/armor by picking up HealthBonus,
    Soulsphere or ArmorBonus.

12. Point 12 release (2020-03-09)
 1. Heretic powered-up hellstaff (HornRodFX2): fix for a potential
    client crash and DeathSound was missing.

 2. Fix for HudMessages when Super-Sampled Anti-Aliasing (vid_ssaa)
    is active.

 3. Implementation of DeHackEd thing properties: 'Xscale' and 'Yscale'
    both are ignored when the 'Scale' property is present. 

 4. Fixed a server-side crash in ACS MorphActor and UnMorphActor when
    puke command was used.

 5. Fix for ACS GiveInventory/GiveActorInventory in online mode:
    pack, box and hefty ammo were not sent to the client.

 6. Added the following read-only CVARs on the client:
    get_player_maxfrags, get_player_maxkills, get_player_maxdamage,
    get_player_redflag, get_player_blueflag, get_player_greenflag,
    They return the player id or displayplayer if there is no value.
    In combination with spy or spec_follow it's possible to bind a
    shortcut for spectating (e.g. bind x "spy $get_player_maxfrags").

 7. Fix for mapinfo keywords 'noinfighting', 'normalinfighting',
    'totalinfighting' and 'clipmidtextures'.

 8. Mapinfo 'keepfullinventory' added.

 9. Triggers for spectators added which change the camera.
      * spy_trig_secret:    false=disable, true=everyone
      * spy_trig_multikill: list 0-6
      * spy_trig_spree:     list 0-6
      * spy_trig_flag:      list 0-6
      * spy_trig_clear:     clears all spy_trig settings

    List 0-6: 0=disable, 1=within teams only, 2=everyone,
              3=red team only, 4=blue team only,
              5=green team only, 6=white team only

10. Implementation of DeHackEd thing property: 'Pickup sound'
    This property allows for each item's pickup sound to be modified
    individually, it accepts sound mnemonic or DeHackEd number.

11. A fix for a bug JCD reported: when Action special:'ChangeCamera'
    was executed by a player and set to an actor during a
    team based game their client would crash upon opening the automap.

12. Fix for client command 'idmypos', coordinates were not
    displayed when changing view to actor cameras.

13. Mapinfo ignores episode and skill definitions now ('episode',
    'clearepisodes', 'skill', 'clearskills').
    Ignored map keywords: 'bordertexture', 'strictmonsteractivation',
    'laxmonsteractivation', 'missileshootersactivateimpactlines',
    'missilesactivateimpactlines', 'monsterfallingdamage',
    'teamdamage', 'allowrespawn', 'teamplayoff', 'teamplayon',
    'noinventorybar', 'infiniteflightpowerup', 'f1',
    'checkswitchrange', 'nocheckswitchrange', 'translator',

14. log_timestamps and con_timestamps clients cvars have been added,
    they will enable timestamps in both the log (when enabled) and
    console respectively.

15. Console command 'give all' now also gives you Artifacts and
    Puzzle items when the corresponding inventory graphics are 

16. DeHackEd: "Ammo type ZD" has been added in order to get around
    a legacy zdoom 1.23 holdover with "Ammo type" value of 5 being
    hard-coded for infinite ammo. Infinite ammo in "Ammo type ZD" is
    now a value of -1 and below, while 0 and above are for the
    standard weapons. This ensures legacy behaviour is preserved
    when it comes to "Ammo type". The new "Ammo type ZD" ensures
    that all of the ammo types are accessible.

17. The 'idmypos' display will no longer overlap with the 'netstats'
    or other items.

18. Players and voodoo dolls did not trigger line specials when they
    spawned and their center was exactly on a line. Fixed.

19. Implementation of DeHackEd thing property: 'Camera height',
    This property allows for each actor to have it's own camera 
    height, it accepts both whole and decimal numbers.

20. In Dehacked SNDINFO names can be used for 'Scratch', 'PlaySound',
    'PlayWeaponSound', 'CPA_CustomMissile', 'CPW_CustomMissile',
    'CPA_BulletAttack', 'CPW_BulletAttack', 'CPA_CustomBulletAttack'
    and 'CPW_CustomBulletAttack' by using keyword 'Sound name ZD'.

21. Added support for the following string properties to the
    GetActorProperty ACS function:

      * APROP_SeeSound
      * APROP_AttackSound
      * APROP_PainSound
      * APROP_DeathSound
      * APROP_ActiveSound

    NOTE: The returned string values will only have a lifetime of 1
          tick for now.

22. Added the following ZDoom ACS functions returning strings:

      * GetActorClass
      * GetActorFloorTexture
      * GetActorFloorTerrain
      * GetCVarString
      * StrLeft
      * StrMid
      * StrRight
      * GetWeapon

    NOTE: The returned string values will only have a lifetime of 1
          tick for now.

23. Added the GetArmorInfo ZDoom ACS function. Only the following info
    types are supported at the moment:


    NOTE: The string value returned for ARMORINFO_CLASSNAME will only
          have a lifetime of 1 tick for now.

24. Extended the puke and pukename console commands to accept various
    input format specifiers (these correlate to the ACS Print function
    cast types). The full synopsis of the two commands is now as

      puke  [[?:]val1] [[?:]val2] [[?:]val3]
      pukename  [always] [[?:]val1] [[?:]val2] [[?:]val3]

    Where ? can be replaced by one of the following letters which will
    determine how the value will be parsed (unless otherwise specified,
    the script will receive the input value converted to an integer):

      * b: binary number
      * c: character
      * d: decimal number
      * f: real number
             (the script will receive a fixed-point number)
      * i: decimal number
      * l: key from the LANGUAGE lump
             (the script will receive the looked up string)
      * n: PRINTNAME_* constant
             (the script will receive the respective fetched string)
      * s: string
             (the script will receive the string as is)
      * x: hexadecimal number

    If no format specifier is present in front of a value, the commands
    will behave as they did until now, and the value will be parsed as
    a decimal number and the script will receive it as an integer.

    CVAR substitution is supported when using a format specifier; i.e.
    the following will work:

      pukename script_name s:$cvar_name

    For the purpose of quoting, the whole argument, including the
    format specifier, needs to be inside the quotes given that format
    specifiers are an addition specific to the puke commands and that
    standard command line parsing happens before the format specifier
    parsing; i.e. the following WILL work:

      pukename script_name "s:String with spaces."

    The following WILL NOT work:

      pukename script_name s:"String with spaces."

    NOTE: The strings received by the scripts will only have a lifetime
          of 1 tick for now.

25. Added missing Hexen skill names to the PCD_PRINTNAME ACS opcode
    (the n:PRINTNAME_SKILL argument of the ACS Print function).

26. DeHackEd: Powered weapon frames that are triggered by the
    "Tome of Power" can now be altered, added and modified through
    Dehacked for every weapon by adding the following entries within a 
    weapon block; 'Powered select frame ZD', 
    'Powered deselect frame ZD', 'Powered bobbing frame ZD',
    'Powered shooting frame ZD' and 'Powered firing frame ZD'.

13. Point 13 release (2020-05-25)
 1. DeHackEd: implementation of LineEffect.

 2. Fix for 'momentum preservation' introduced in point 12 release.

 3. When sv_oldwepsound is active pickup sound will also be played for
    spectators and during demo playback.

 4. MBF DeHackEd flag 'TOUCHY' added.

 5. Fix for a crash when Monster Spawner and Monster Target have the
    same position.

 6. Fixed a crash when ACS SetActorProperty Mass was set to 0,
    because is not a valid value. It will be set to 1 (lowest
    positive valid value).

 7. Duel and 1-on-1: vote delay when spectators are around is shortened
    to 5 seconds now.

 8. Spectating in uncapped mode looks smoother now.

 9. Arch-viles were not self-harming. Fixed.

10. Fix for join limit message in Survival when a new map starts.

11. Fix for insuring overlapping HudMessages are properly cleared
    on the statusbar.

12. Correction for damage from RadiusAttack. It was off by 1.

13. No kickback when Scripted Marine attacks with chainsaw and forward
    momentum for chainsaw attack added.

14. Fix for using inventory during intermission or as spectator.

15. The oldschool blast damage while sv_oldblast is enabled is no
    longer affected by sv_oldwallrun.

16. Keywords/functions for ANIMDEFS added: 'range', 'oscillate' and
    'random'. 'pic' accepts names (and not only numbers) now.
    Standalone 'off' is supported now.

17. Obsolete protection for no free spawnspot in the first 7 seconds
    in Coop/Survival removed.

18. Sound Sequence was cut or delay was running to fast in higher
    rates than capped framerate. Fixed.

19. Additional option 'Stretched' for 'Stretch status bar'.

20. Accounted for a case that would occur after a map change/reset
    that would result in a player occupying ID 0 being disconnected
    after another player joins.

14. Point 14 release (2020-09-02)
 1. When there is a connection problem for the client, message
    'Waiting for server...' is shown earlier.

 2. Fix for non-moving ghost projectiles for connecting clients
    related to Dehacked NOSPEEDCHECK.

 3. Fixed a crash when Minotaur or Serpent are friendly.

 4. Implementation of DeHackEd weapon property 'Weaponslot ZD', 
    this property allows for each weapon to have a different slot
    assigned. Valid numbers are: 0 to 9.

    *** This also requires the 'Weaponpriority ZD' property. ***
    *** 'Weaponpriority ZD' must be placed before 'Weaponslot ZD' ***
    *** SEE BELOW ***

 5. Implementation of DeHackEd weapon property 'Weaponpriority ZD', 
    this property allows for each weapon to have its own priority
    within a weapon slot. E.g: The weapon with the highest priority 
    on the selected weapon slot will be equipped first.
    Each weapon on the same slot MUST have its own unique priority 
    number in order to not be overwritten.

 6. Server-side mute functionality has been added. This will block
    both textual chat and voice communication. New commands:

     * ADDMUTE #id/$playername duration reason
       ** The duration is specified in minutes.
     * KILLMUTE playername
       ** No prefix is required.

 7. New ACS function to change the camera height for a specific
    actor based on a given thing ID.
    The syntax of the declaration is:
    void ZD_SetActorCameraHeight(tid, height); 
    whereas height is a fixed point value.

 8. Two new client-side CVARs have been added for the chatlog:

     * chatlog_showmsgtype - The message type will be displayed:
                             N - Normal
                             T - Team
                             P - Private
                             A - Admin
     * chatlog_timestamps - Timestamps will be displayed.

 9. Fix for still standing players to avoid wrong client z after
    getting teleported with LS_Thing_Move.

10. Improvements for ACS LineAttack: puffs are shown online and
    pufftype can be specified now.

11. Netstats added to Display Options as "Network Statistics" and
    enlarged meanings:
     * 0: None
     * 1: Data
     * 2: Ping+Data
     * 3: Graph+Ping
     * 4: All

12. Demo playback speed added, so a demo can be played in a faster or
    slower speed. Related CVAR 'demo_speed' and commands
    'demo_speedup', 'demo_speeddown', 'demo_speedreset'.
    To show the playback speed enable 'vid_fps'.

13. Spectator view in Duel keeps spectating the same player when
    it switches from warm-up to game.

14. Added a timer_format client cvar. This alters the display of the
    timeleft output on the HUD or scoreboard. Values:
     * 0 = Mins:Secs
     * 1 = Hours:Mins:Secs

15. Added a new boolean acs_always_preserve_globals CVAR. When this
    CVAR is set to 'true', values in ACS global variables and arrays
    will always be preserved; even on manual map changes (for example
    when a console command or a vote is used to change the map).

    NOTE: To keep the behaviour of client-side scripts consistent with
          older 1.10 clients, in network games, all 1.10 clients will
          behave as if their acs_always_preserve_globals was set to
          'false'; no matter the server setting or the actual CVAR
          value on the client.

16. Fix to avoid the ability to press "use" after death in online mode.

17. Adjustments have been made to the unlagged mechanism in order to
    improve general precision.

18. In Lobby mode there will be no announcements while entering the
    Lobby map (map00).

19. CTF flags on the HUD are scaled to screen height now.

20. CVar 'survival_timed_spec_reset' value 2 (6 min) has been added.
    Health will be set to default by Survival Inventory Reset now.
    Warning for Inventory Reset added. It will be shown 60 and 30 sec.
    before the reset happens.

21. Added the possibility to change blitmode in advanced video options.
    That can fix a problem with NVIDIA graphics and very low fps.
    A warning must be confirmed to continue, because it can cause
    ZDaemon stop working (e.g. ATI graphics).
    If a fatal error occurs which is related to blitmode, it will
    be reset to default.

22. 'vid_windowx' and 'vid_windowy' are no longer read-only.
    The position of the window can be set with these CVARs.
    Can be used to set the position of ZDaemon in windowed mode
    with a key bind or alias.
    Placing the window left or top of the primary screen is possible
    now. Maximized window will be saved now.

23. An ancient Instagib bug that allowed you to kill your team mates in
    a team mode (deathmatch-type) has now been corrected. It'll now
    obey the limitations regarding team damage.

    *** NOTE: Since the Instagib railgun is an instakill weapon, any
    teamdamage value above 0 will result in the death of the
    friendly target. ***

24. A "spectate" command has now been added with strict limitations.

25. Improvements have been made to the MapInfo CVAR Overrides to ensure
    that they're correctly reverted (and set) during a map change
    and/or map reset.