Version history/3.2: Difference between revisions

Fixed zdw link
(Updated changelog)
Tag: Source edit
(Fixed zdw link)
Tag: Source edit
(9 intermediate revisions by the same user not shown)
Line 11: Line 11:
==Changes==
==Changes==
===Additions===
===Additions===
* Added the new AUTHINFO lump, allowing modders to define their own list of lumps to be authenticated. [Kaminsky]
* Added the new [[AUTHINFO]] lump, allowing modders to define their own list of lumps to be authenticated. [Kaminsky]
* Revamped the scoreboard, and added the new SCORINFO lump that allows full customization of the scoreboard. [Kaminsky]
* Revamped the scoreboard, and added the new [[SCORINFO]] lump that allows full customization of the scoreboard. [Kaminsky]
* Added support for custom vote types using the new VOTEINFO lump. [Dusk]
* Added support for custom vote types using the new [[VOTEINFO]] lump. [Dusk]
* Added support for voice chat. Audio is encoded and decoded using Opus, allowing it to be transmitted over the network with minimal bandwidth usage and decent quality. Any unwanted noise in the audio is also removed with RNNoise before it's sent to the server. [Kaminsky]
* Added support for voice chat. Audio is encoded and decoded using Opus, allowing it to be transmitted over the network with minimal bandwidth usage and decent quality. Any unwanted noise in the audio is also removed with RNNoise before it's sent to the server. [Kaminsky]
* Added the +NOMORPHLIMITATIONS flag, allowing morphs to switch weapons, play sounds, and be affected by speed powerups. [geNia/Binary]
* Added the +NOMORPHLIMITATIONS flag, allowing morphs to switch weapons, play sounds, and be affected by speed powerups. [geNia/Binary]
* Added CVars: "con_interpolate" and "con_speed" which interpolates and controls how fast the console moves. Based on featues from ZCC. [Kaminsky]
* Added CVars: "con_interpolate" and "con_speed" which interpolates and controls how fast the console moves. Based on featues from ZCC. [Kaminsky]
* 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 {{zdoomwiki|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 [[EVENT scripts|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 [[DMFlags|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 [[DECORATE#Actor properties|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 [[DECORATE#Behaviour|GIVEFISTINGMEDAL]] and [[DECORATE#Behaviour|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]
* Added the dmflag "sv_dontoverrideplayercolors", which prevents player colors from being overriden. [Kaminsky]
* Added the [[DMFlags|dmflag]] "sv_dontoverrideplayercolors", which prevents player colors from being overriden. [Kaminsky]
* Added the EVENT script types for domination: GAMEEVENT_DOMINATION_CONTROL for when a team takes control of a point sector, and GAMEEVENT_DOMINATION_POINT for when a team gets a point for owning a sector. [Kaminsky]
* Added the [[EVENT scripts|EVENT script]] types for domination: GAMEEVENT_DOMINATION_CONTROL for when a team takes control of a point sector, and GAMEEVENT_DOMINATION_POINT for when a team gets a point for owning a sector. [Kaminsky]
* Added the CVar "cl_identifymonsters" which allows monsters to be identified with cl_identifytarget. [Kaminsky]
* Added the CVar "cl_identifymonsters" which allows monsters to be identified with cl_identifytarget. [Kaminsky]
* Added the CCMD "rcon_logout" so that clients with RCON access may logout if they want to. This also changes the old behaviour where a client who already had RCON access could lose it if they resent the wrong password to the server. [Kaminsky]
* Added the CCMD "rcon_logout" so that clients with RCON access may logout if they want to. This also changes the old behaviour where a client who already had RCON access could lose it if they resent the wrong password to the server. [Kaminsky]
* Added ACS function: "SetGameplaySetting", allowing modders to change gameplay-related CVars on the fly. [Kaminsky]
* Added ACS function: "[[SetGameplaySetting]]", allowing modders to change gameplay-related CVars on the fly. [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 "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 [[Console commands|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 scripts|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 [[DMFlags|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]
* 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 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: "[[SetPlayerWeaponZoomFactor]]" from Q-Zandronum, the ACS-equivalent to the A_ZoomFactor DECORATE function. [Kaminsky]
* Added SwayStyle, ViewSwaySpeed, ViewPitchStyle, and ViewPitchOffset [[DECORATE#Actor properties|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 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]
* Added the CVar "cl_spectatorsource", which enables source-engine like noclipping that allows spectators to pass through floors and ceilings. Based on the "zcc_spectsource" feature from ZCC. [Kaminsky]


===Fixes===
===Fixes===
Line 62: Line 75:
* Fixed: the server rejected backup weapon select commands that used different weapon network indices but had the same client gametic. [Kaminsky]
* Fixed: the server rejected backup weapon select commands that used different weapon network indices but had the same client gametic. [Kaminsky]
* Fixed: GAMEEVENT_ACTOR_DAMAGED didn't trigger when the player took poison damage. [Kaminsky]
* Fixed: GAMEEVENT_ACTOR_DAMAGED didn't trigger when the player took poison damage. [Kaminsky]
* Fixed: GetMapRotationInfo now always returns zero (or an empty string) if the maplist is empty, the map position's level info is invalid, or if the current map position isn't the current level. [Kaminsky]
* Fixed: [[GetMapRotationInfo]] now always returns zero (or an empty string) if the maplist is empty, the map position's level info is invalid, or if the current map position isn't the current level. [Kaminsky]
* Fix a crash with the Hexen Firestorm weapon projectiles caused by a compiler misoptimization on Linux architecture. [Edward-san]
* Fix a crash with the Hexen Firestorm weapon projectiles caused by a compiler misoptimization on Linux architecture. [Edward-san]
* Fixed: players appeared jittery when standing on lifts moving downward in online games. [Kaminsky]
* Fixed: players appeared jittery when standing on lifts moving downward in online games. [Kaminsky]
Line 76: Line 89:
* 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 110: Line 123:
* Fixed: opening the text scaling menu sometimes changed the user's con_virtualwidth and/or con_virtualheight CVars when it shouldn't. [Kaminsky]
* Fixed: opening the text scaling menu sometimes changed the user's con_virtualwidth and/or con_virtualheight CVars when it shouldn't. [Kaminsky]
* Fixed: the coop info wasn't getting drawn in clientside demos. [Kaminsky]
* Fixed: the coop info wasn't getting drawn in clientside demos. [Kaminsky]
* Fixed: Floatbob items having incorrect z-height after a map reset and glitchy GL floor clipping (addresses 2361). [Ru5tK1ng]
* Fixed: Floatbob items having incorrect z-height after a map reset and glitchy GL floor clipping (addresses {{issue|2361}}). [Ru5tK1ng]
* Fixed: Monsters spawned by BossBrain cubes would move before being spawned on the clients therefore triggering warning messages (addresses 2655). [Ru5tK1ng]
* Fixed: Monsters spawned by BossBrain cubes would move before being spawned on the clients therefore triggering warning messages (addresses {{issue|2655}}). [Ru5tK1ng]
* Fixed: Cleric's CircleFlame projectile did not rotate properly online (addresses {{issue|2101}}). [Ru5tK1ng]
* Fixed: Fighter's flechettes weren't working properly online (addresses {{issue|796}}, {{issue|2948}} and {{issue|2949}}). [Ru5tK1ng]
* Fixed: Porkalator and Morph Ovum couldn't spawn bloodsplatter actors online (addresses {{issue|3007}}). [Ru5tK1ng]
* Fixed: P_CheckMissileSpawn would instruct clients to explode a missile they hadn't spawn in yet (addresses {{issue|4186}}). [Ru5tK1ng]
* Fixed: Clients tried to destroy pillars twice which would cause out of sequence errors between building and destroying them (addresses {{issue|2946}}). [Ru5tK1ng]
* Fixed: ShareKeys was not working properly with dehacked keys, with puzzle items, in hubs and would ignore losekeys when maps didn't reset in survival (addresses {{issue|4183}}). [Ru5tK1ng]
* Fixed: Enter scripts would stack repeatedly in hubs each time a map was visted and exited causing multiple instances of the script(s) (addresses {{issue|2977}}). [Ru5tK1ng]
* Fixed: a player with an incredibly long name that won the game after the timer expired could crash the game. [Kaminsky]
* Fixed: STRFTIME would crash Zandronum if a negative was passed into the first argument (addresses {{issue|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 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_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_LookEx did not account for the +LOOKALLAROUND flag (addresses {{issue|3886}}). [Ru5tK1ng]
* Fixed: Friendly monsters could still be killed by splash damage even with sv_shootthroughallies being set to true (addresses {{issue|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: Hexen effects were causing MissileExplode warnings due to not having NETFL_SERVERSIDEONLY set (partially addresses {{issue|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 {{issue|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 {{issue|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 {{issue|3475}}). [Ru5tK1ng]
* Fixed: A player holding a hellstone could still cycle through their weapon tags (addresses {{issue|409}}). [Ru5tK1ng]
* Fixed: Numerous Heretic/Hexen actors and code pointers were sending invalid commands to clients that could not be executed (partially addresses {{issue|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 {{issue|807}}). [Ru5tK1ng]
* Fixed: ThingCountNameSector would count spectators that were present in the tagged sector (addresses {{issue|2447}}). [Ru5tK1ng]
* Fixed: The removebot commands could crash singleplayer when using OpenGL (addresses {{issue|1112}}) and would not stop scripts (addresses {{issue|802}}). [Ru5tK1ng]
* Fixed: gl_PrintStartupLog wasn't being called when not compiled with MSVC (addresses {{issue|4128}}). [TDRR]
* Fixed: Bots would continue aiming at players even when fully frozen [TDRR]
* Fixed: Bots would stop targeting players after being frozen [TDRR]
* Fixed: A_SpawnItemEx now always syncs AAPTR_TARGET for +MISSILE actors (addresses {{issue|4200}}). [Trillster]
* Fixed: Last skin in a SKININFO file was not properly parsed, resulting in extra skin removals (addresses {{issue|4204}}). [BarrelsOFun]
* Fixed: Shotgun starts could crash if the replacement wasn't a weapon (addresses {{issue|1844}}) and clients didn't have the right ammo on spawn (addresses 1059). [Ru5tK1ng]


===Other changes===
===Other changes===
Line 132: Line 184:
* 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 {{issue|711}}). [Ru5tK1ng]
* 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 {{issue|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]
* Made the mini flag icons that appear on the HUD and scoreboard bigger and easier to see. [Kaminsky]
* Make GL extension printing optional (using the developer CVAR) [TDRR]
* Rename GAMEEVENT_ACTOR_ARMORDAMAGED to GAMEEVENT_ACTOR_DAMAGED_PREMOD and changed behaviour to execute on actors without inventory. [StrikerTheHedgefox]


==Beta builds==
==Beta builds==
Line 145: Line 206:
*{{ForumThread|10849|Zandronum 3.2-alpha-221030-0316}}
*{{ForumThread|10849|Zandronum 3.2-alpha-221030-0316}}
*{{ForumThread|10973|Zandronum 3.2-alpha-230709-1914}}
*{{ForumThread|10973|Zandronum 3.2-alpha-230709-1914}}
 
*{{ForumThread|11166|Zandronum 3.2-alpha-240405-2229}}


{{Navbox/Versions}}
{{Navbox/Versions}}
[[Category: Zandronum versions]]
[[Category: Zandronum versions]]
[[Category: Versions]]
[[Category: Versions]]