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.