Jump to content

Version history/3.2: Difference between revisions

Update changelog as of 1a8a5f5d76eb17e2f7b70613bd320c5be06a987f
(Updated changelog)
Tag: Source edit
(Update changelog as of 1a8a5f5d76eb17e2f7b70613bd320c5be06a987f)
Tag: Source edit
(One intermediate revision by the same user not shown)
Line 19: Line 19:
* Added ACS functions: "GetCurrentMapPosition", "GetEventResult", "GetActorSectorLocation", and "ChangeTeamScore". [Kaminsky]
* Added ACS functions: "GetCurrentMapPosition", "GetEventResult", "GetActorSectorLocation", and "ChangeTeamScore". [Kaminsky]
* Added an optional parameter to the ACS function GetChatMessage to let color codes to stay in chat messages. [Kaminsky]
* Added an optional parameter to the ACS function GetChatMessage to let color codes to stay in chat messages. [Kaminsky]
* Add the resetmap command and associated vote type. [DrinkyBird]
* Add the resetmap command and associated vote type. [Sean]
* Added new BotScript commands that allow controlling more inputs (e.g. altfire, crouch, and use), and also to execute ACS_ExecuteWithResult. [TDRR]
* Added new BotScript commands that allow controlling more inputs (e.g. altfire, crouch, and use), and also to execute ACS_ExecuteWithResult. [TDRR]
* Added the CVar "snd_lockmusic" which prevents any music changes as if a playlist was playing, based on a feature from ZCC. [Kaminsky]
* Added the CVar "snd_lockmusic" which prevents any music changes as if a playlist was playing, based on a feature from ZCC. [Kaminsky]
* Added the CVar "blood_fade_usemaxhealth", which scales the intensity of the blood based on the player's max health instead of a hardcoded health of 100, unless the server wants to force max blood on the screen. [Kaminsky]
* Added the CVar "blood_fade_usemaxhealth", which scales the intensity of the blood based on the player's max health instead of a hardcoded health of 100, unless the server wants to force max blood on the screen. [Kaminsky]
* Added the AAPTR_PLAYER_GETCAMERA constant that returns the actor a player is looking from. [Kaminsky]
* Added the AAPTR_PLAYER_GETCAMERA constant that returns the actor a player is looking from. [Kaminsky]
* Added an argument to GAMEEVENT_ACTOR_SPAWNED that indicates if the actor was spawned by the level or not. [Kaminsky]
* Added an argument to GAMEEVENT_ACTOR_SPAWNED representing a bitfield that indicates how the actor was spawned. [Kaminsky]
* Added the dmflag "sv_donthidestats" to show an enemy player's stats. [DoomJoshuaBoy]
* Added the dmflag "sv_donthidestats" to show an enemy player's stats. [DoomJoshuaBoy]
* Added a new SelfObituary actor property for when a player kills themselves with an actor. This replaces Skulltag's hardcoded self obituaries for the BFG10K and Grenades. [DrinkyBird]
* Added a new SelfObituary actor property for when a player kills themselves with an actor. This replaces Skulltag's hardcoded self obituaries for the BFG10K and Grenades. [Sean]
* Added the DECORATE flags GIVEFISTINGMEDAL and GIVESPAMMEDAL. Projectiles or puffs with these flags will award the player with the "fisting" and "spam" medals respectively upon killing an enemy player. [Kaminsky]
* Added the DECORATE flags GIVEFISTINGMEDAL and GIVESPAMMEDAL. Projectiles or puffs with these flags will award the player with the "fisting" and "spam" medals respectively upon killing an enemy player. [Kaminsky]
* Added an option to filter the server list by name within the built-in server browser menu. [Kaminsky]
* Added an option to filter the server list by name within the built-in server browser menu. [Kaminsky]
Line 36: Line 36:
* Added "offlineonly" and "onlineonly" options to the game settings feature of the GAMEMODE lump. This allows some CVars to only be configured for offline or online games, or both. [Kaminsky]
* Added "offlineonly" and "onlineonly" options to the game settings feature of the GAMEMODE lump. This allows some CVars to only be configured for offline or online games, or both. [Kaminsky]
* Added the CVar "sv_distinguishteamchatlines", which distinguishes team chat messages from normal chat messages in the server console/logfile when sv_markchatlines is enabled. [Kaminsky]
* Added the CVar "sv_distinguishteamchatlines", which distinguishes team chat messages from normal chat messages in the server console/logfile when sv_markchatlines is enabled. [Kaminsky]
* The server can now broadcast the name of the current game mode (as defined in the GAMEMODE lump) to launchers. [DrinkyBird]
* The server can now broadcast the name of the current game mode (as defined in the GAMEMODE lump) to launchers. [Sean]
* Added a segmented version of the launcher protocol, which allows splitting responses across multiple packets, avoiding network issues that arise when packets reach large sizes. [DrinkyBird]
* Added a segmented version of the launcher protocol, which allows splitting responses across multiple packets, avoiding network issues that arise when packets reach large sizes. [Sean]
* Added an optional parameter to the "ignore" and "ignore_idx" CCMDs that allows servers to specify a reason for muting a client, based on Janko Knezevic's patch. [Kaminsky]
* Added an optional parameter to the "ignore" and "ignore_idx" CCMDs that allows servers to specify a reason for muting a client, based on Janko Knezevic's patch. [Kaminsky]
* Added ACS functions that provide lump reading capabilities: "LumpOpen", "LumpReadChar", "LumpReadShort", "LumpReadInt", "LumpReadString", and "LumpSize". [TDRR]
* Added ACS functions that provide lump reading capabilities: "LumpOpen", "LumpReadChar", "LumpReadShort", "LumpReadInt", "LumpReadString", and "LumpSize". [TDRR]
* Added the forcerename and forcerename_idx CCMDs, which forcibly change a player's name to a random generic one. [DrinkyBird]
* Added the forcerename and forcerename_idx CCMDs, which forcibly change a player's name to a random generic one. [Sean]
* Added the GAMEEVENT_PLAYERLEAVESSERVER EVENT script type, which fires when a player disconnects from the server. [DrinkyBird]
* Added the GAMEEVENT_PLAYERLEAVESSERVER EVENT script type, which fires when a player disconnects from the server. [Sean]
* Added the dmflag "sv_nospawntelefog", preventing teleport fog from spawning when a player does. [Kaminsky]
* Added the dmflag "sv_nospawntelefog", preventing teleport fog from spawning when a player does. [Kaminsky]
* Added ACS functions: "AddBot" and "RemoveBot", to add or remove bots from the game. [Kaminsky]
* Added ACS functions: "AddBot" and "RemoveBot", to add or remove bots from the game. [Kaminsky]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.12.x and 0.13.0/Doom clients to join Doom/Freedoom 0.12.x and 0.13.0 servers. [DrinkyBird]
* The authentication mechanism for non-map related lumps now allows Freedoom 0.12.x and 0.13.0/Doom clients to join Doom/Freedoom 0.12.x and 0.13.0 servers. [Sean]
* Added ACS functions: "OpenMenu" and "CloseMenu", to open or close menus defined in MENUDEF. [Kaminsky]
* Added ACS functions: "OpenMenu" and "CloseMenu", to open or close menus defined in MENUDEF. [Kaminsky]
* Added the BanFromGame ACS function, allowing mods to give timed bans to players up to whatever the CVar "sv_maxacsbanduration" allows. A value of zero means that the server forbids use of the function. [Binary/Kaminsky]
* Added the BanFromGame ACS function, allowing mods to give timed bans to players up to whatever the CVar "sv_maxacsbanduration" allows. A value of zero means that the server forbids use of the function. [Binary/Kaminsky]
* Added ACS function: "GetPlayerStatus", which returns a bitfield of all the player's statuses (i.e. typing a chat message, talking on the microphone, in the console/menu, or lagging). [Kaminsky]
* Added ACS function: "GetPlayerStatus", which returns a bitfield of all the player's statuses (i.e. typing a chat message, talking on the microphone, in the console/menu, or lagging). [Kaminsky]
* Added ACS function: "SetPlayerWeaponZoomFactor" from Q-Zandronum, the ACS-equivalent to the A_ZoomFactor DECORATE function. [Kaminsky]
* Added ACS function: "SetPlayerWeaponZoomFactor" from Q-Zandronum, the ACS-equivalent to the A_ZoomFactor DECORATE function. [Kaminsky]
* Added SwayStyle, SwaySpeed, ViewPitchStyle, and ViewPitchOffset properties for DECORATE weapons. [StrikerTheHedgefox]
* Added SwayStyle, ViewSwaySpeed, ViewPitchStyle, and ViewPitchOffset properties for DECORATE weapons. [StrikerTheHedgefox]
* Added ACS functions: "SetPlayerSkin" (from Q-Zandronum) and "GetPlayerSkin", to change or retrieve the name of a player's skin. [Kaminsky]
* Added ACS functions: "SetPlayerSkin" (from Q-Zandronum) and "GetPlayerSkin", to change or retrieve the name of a player's skin. [Kaminsky]
* Added client-server netcode for Strife conversations. [DrinkyBird]
* Added client-server netcode for Strife conversations. [Sean]
* Added ACS function: "GetPlayerCountry", to return the alpha-2 or alpha-3 code, or full name, of the country a player's connecting from. This also respects a player's choice to hide their country. [Kaminsky]
* Added the CVars "cl_motionswayspeed" and "cl_jumpswayspeed" (and MotionSwaySpeed and JumpSwaySpeed DECORATE weapon properties), to add additional sway to a player's weapon when they move, crouch, or jump up or down. [Kaminsky]
* Added the CVars "cl_stillbobspeed" and "cl_stillbobrange" (and StillBobSpeed and StillBobRange DECORATE weapon properties), to also bob the weapon up and down while the player stands still. [Kaminsky]


===Fixes===
===Fixes===
Line 85: Line 88:
* Fixed: unlagged would also reconcile for bots, causing them to miss shots in online games. [Kaminsky]
* Fixed: unlagged would also reconcile for bots, causing them to miss shots in online games. [Kaminsky]
* Fixed: the 64-bit Windows build would never produce a crash report.
* Fixed: the 64-bit Windows build would never produce a crash report.
* Fixed: The random class was still selectable in the join menu when NoRandomPlayerClass was enabled in MAPINFO. [DrinkyBird]
* Fixed: The random class was still selectable in the join menu when NoRandomPlayerClass was enabled in MAPINFO. [Sean]
* Fixed: when a player joined a new team in online games, the health and armor of their new teammates weren't updated. [Kaminsky]
* Fixed: when a player joined a new team in online games, the health and armor of their new teammates weren't updated. [Kaminsky]
* Fixed: clients sometimes invalidated "nextmap" or "nextsecret" vote types despite the vote successfully being called on the server's end. [Kaminsky]
* Fixed: clients sometimes invalidated "nextmap" or "nextsecret" vote types despite the vote successfully being called on the server's end. [Kaminsky]
Line 131: Line 134:
* Fixed: STRFTIME would crash Zandronum if a negative was passed into the first argument (addresses 4144). [Ru5tK1ng]
* Fixed: STRFTIME would crash Zandronum if a negative was passed into the first argument (addresses 4144). [Ru5tK1ng]
* Fixed: the server would freeze after running for long enough (e.g. 24 days on Windows) due to an integer overflow in SERVER_Tick. [Kaminsky]
* Fixed: the server would freeze after running for long enough (e.g. 24 days on Windows) due to an integer overflow in SERVER_Tick. [Kaminsky]
* Fixed: the SendToCommunicator special didn't stop the previous sound when online. [DrinkyBird]
* Fixed: the SendToCommunicator special didn't stop the previous sound when online. [Sean]
* Fixed: a spectator could still kill themselves if they committed suicide in the same tick as when they spectated (e.g. typing "kill; spectate" in the console). [Kaminsky]
* Fixed: a spectator could still kill themselves if they committed suicide in the same tick as when they spectated (e.g. typing "kill; spectate" in the console). [Kaminsky]
* Fixed: A_SkullPop would keep the old body as the activator of the player's running scripts causing the world to become the activator when revisiting hub maps. [Ru5tK1ng]
* Fixed: A_SkullPop would keep the old body as the activator of the player's running scripts causing the world to become the activator when revisiting hub maps. [Ru5tK1ng]
Line 137: Line 140:
* Fixed: Friendly monsters could still be killed by splash damage even with sv_shootthroughallies being set to true (addresses 4013). [Ru5tK1ng]
* Fixed: Friendly monsters could still be killed by splash damage even with sv_shootthroughallies being set to true (addresses 4013). [Ru5tK1ng]
* Fixed: a player's time and death count didn't reset on the client's end upon resetting the map in online games. [Kaminsky]
* Fixed: a player's time and death count didn't reset on the client's end upon resetting the map in online games. [Kaminsky]
* Fixed: Hexen effects were causing MissileExplode warnings due to not having NETFL_SERVERSIDEONLY set (partially addresses 4187). [Ru5tK1ng]
* Fixed: if the wrong password was used to log into RCON through the menu, and then the correct password was sent through the console, the server setup menu suddenly popped up again despite being closed. [Kaminsky]
* Fixed: serverinfo CVars didn't always save into the "LocalServerInfo" subsection of a config file in offline games (e.g. when multiplayer emulation is on). [Kaminsky]
* Fixed: when a player changed their color or colorset, it didn't immediately update the status bar correctly in online games. [Kaminsky]
* Fixed: A regression from a codebase update was introduced that caused +TOUCHY to no longer work at all (addresses 4172). [Ru5tK1ng]
* Fixed: a skin's death sound didn't get used if the player respawned before the death sound could play on the corpse. [Kaminsky]
* Fixed: Player_SetTeam would cause players to select the fist instead of the Pistol depending on PWO settings (addresses 2897). [Ru5tK1ng]
* Fixed: a dummy player would be spawned behind if a morphed player dies and is forced to dead spectate in a gamemode with dead spectators. [Kaminsky]
* Fixed: a dummy sprite of the player's overridden skin (e.g. their weapon's preferred skin) appeared when they bursted into chunks after dying from ice. [Kaminsky]
* Fixed: actors that didn't need to respawn upon resetting the map didn't trigger GAMEEVENT_ACTOR_SPAWNED. [Kaminsky]
* Fixed: Monsters in sectors marked with Damage_End (e1m8) weren't being removed from the monster count when sv_nocountendmonst was true (addresses 3475). [Ru5tK1ng]
* Fixed: A player holding a hellstone could still cycle through their weapon tags (addresses 409). [Ru5tK1ng]
* Fixed: Numerous Heretic/Hexen actors and code pointers were sending invalid commands to clients that could not be executed (partially addresses 4187). [Ru5tK1ng]
* Fixed: Voodoo dolls weren't being pushed by barrel explosions in order to trigger linedef actions online (addresses 3963). [Ru5tK1ng]
* Fixed: +SPAWNSOUNDSOURCE wouldn't play the missile sound at the source online (addresses 807). [Ru5tK1ng]


===Other changes===
===Other changes===
Line 157: Line 175:
* The GAMEMODE lump now accepts a wider range of gameplay-related CVars that aren't limited to flags. Strictly speaking, any CVars with the CVAR_GAMEPLAYSETTING bit, or any flags whose flagset has the CVAR_GAMEPLAYFLAGSET (previously named CVAR_GAMEMODELOCK) bit. [Kaminsky]
* The GAMEMODE lump now accepts a wider range of gameplay-related CVars that aren't limited to flags. Strictly speaking, any CVars with the CVAR_GAMEPLAYSETTING bit, or any flags whose flagset has the CVAR_GAMEPLAYFLAGSET (previously named CVAR_GAMEMODELOCK) bit. [Kaminsky]
* The "maplist" CCMD now also prints "current" or "used" alongside green or red text for map entries that are currently being played or used. This change is particularly useful for consoles or logfiles that strip color codes and couldn't show the colored text. [Kaminsky]
* The "maplist" CCMD now also prints "current" or "used" alongside green or red text for map entries that are currently being played or used. This change is particularly useful for consoles or logfiles that strip color codes and couldn't show the colored text. [Kaminsky]
* Zandronum is now marked as DPI-aware on Windows, which prevents issues caused by the operating system automatically upscaling the game window on high-DPI displays. [DrinkyBird]
* Zandronum is now marked as DPI-aware on Windows, which prevents issues caused by the operating system automatically upscaling the game window on high-DPI displays. [Sean]
* The output of the dumptrafficmeasure CCMD is now sorted by the bandwidth used in ascending order. This can be changed to descending order by specifying "desc" as the first parameter. [DrinkyBird]
* The output of the dumptrafficmeasure CCMD is now sorted by the bandwidth used in ascending order. This can be changed to descending order by specifying "desc" as the first parameter. [Sean]
* The "logo" property in TEAMINFO, as well as a PlayerPawn's "ScoreIcon", are now usable and appear on the scoreboard. [Kaminsky]
* The "logo" property in TEAMINFO, as well as a PlayerPawn's "ScoreIcon", are now usable and appear on the scoreboard. [Kaminsky]
* Clients are now informed the moment when they're (un)muted on the server, based on Janko Knezevic's patch. [Kaminsky]
* Clients are now informed the moment when they're (un)muted on the server, based on Janko Knezevic's patch. [Kaminsky]
* Showing the player's skin sprite is now prevented if their class's current sprite is TNT1A0 (and its original sprite is also TNT1A0). [Kaminsky]
* Showing the player's skin sprite is now prevented if their class's current sprite is TNT1A0 (and its original sprite is also TNT1A0). [Kaminsky]
* HudMessages that are scaled to the virtual screen now respect con_scaletext_usescreenratio. [Kaminsky]
* HudMessages that are scaled to the virtual screen now respect con_scaletext_usescreenratio. [Kaminsky]
* Authentication errors now use all WADs containing authenticated lumps and maps instead of all PWADs, meaning zandronum.pk3, the IWAD, and auto-loaded PWADs can be identified in the error. [DrinkyBird]
* Authentication errors now use all WADs containing authenticated lumps and maps instead of all PWADs, meaning zandronum.pk3, the IWAD, and auto-loaded PWADs can be identified in the error. [Sean]
* The ACS function "SetCurrentGameMode" now resets the current level upon successfully changing the game mode instead of restarting the entire game, thus no longer requiring clients to reconnect to the server. [Kaminsky]
* The ACS function "SetCurrentGameMode" now resets the current level upon successfully changing the game mode instead of restarting the entire game, thus no longer requiring clients to reconnect to the server. [Kaminsky]
* Voting will no longer end when traversing through maps and portals when in a hub. This will prevent a player from purposely cancelling a vote on the server (addresses 711). [Ru5tK1ng]
* Voting will no longer end when traversing through maps and portals when in a hub. This will prevent a player from purposely cancelling a vote on the server (addresses 711). [Ru5tK1ng]
* Changed the color of the "SPKRA0" sprite to orange and made it low-res to fit with Doom's aesthetics better. [Kaminsky]
* Changed the color of the "SPKRA0" sprite to orange and made it low-res to fit with Doom's aesthetics better. [Kaminsky]
* Maps that have team spawns but no deathmatch spawns should load and spawn the players in when running modes like TeamDM or TeamLMS (addresses 1327). [Ru5tK1ng]
* Maps that have team spawns but no deathmatch spawns should load and spawn the players in when running modes like TeamDM or TeamLMS (addresses 1327). [Ru5tK1ng]
* A server's settings (i.e. any serverinfo CVars the server syncs with the client) are now discarded when the client disconnects and won't be saved into their config file. [Kaminsky]
* The position of the weapon sprite while swaying now only updates at 35 Hz instead of at the refresh rate. [Kaminsky]
* Renamed "cl_swayspeed" to "cl_viewswayspeed", to distinguish it from the new weapon sway speeds (i.e. motion and jump). [Kaminsky]


==Beta builds==
==Beta builds==