Page 1 of 1

Zandronum 3.2-alpha-250323-2124

Posted: Mon Mar 24, 2025 3:30 am
by Kaminsky
We've just wrapped up development for 3.2, and we're releasing what we hope to be the last beta build before the final release! At this time, we're putting a freeze on any further feature requests and will only focus on fixing regressions or critical issues (e.g. crashes) before proceeding with 3.2's long-awaited release.

Here's a summary of what's new in this build:
  • Multiple banlist (and exemption list) support is now here! Server hosts can now load multiple banlist (and ban exemption) files if they wish to organize bans into different files. File entries should be separated with semicolons (e.g. "sv_banfile file1.txt;file2.txt;file3.txt"). CCMDs like "addban", "delban", "addbanexemption", and "delbanexemption" now support an extra optional argument to choose which file index to add/remove an entry from (0 by default).
  • The "manage bans" window in the server console (Windows only) has been refactored to support multiple banlists, and is a lot neater and more intuitive to use now. Some other minor improvements have been made to other parts of the server console too.
  • The network ID limit for actors has been doubled, from 32767 to 65535! Players can now enjoy playing slaughtermaps with their favourite mods online without worrying about hitting this limit.
  • The domination game mode received a major overhaul recently. Special thanks to Trillster for his hard work on this.
    • Added the "sv_dominationscorerate" CVar to customize how often teams earn points.
    • Control points are now contested when players belonging to two or more different teams are occupying them at the same time. Teams can't earn points from a control point that's contested.
    • New ACS functions: GetControlPointInfo, SetControlPointInfo, and IsPlayerContestingControlPoint.
    • New ACS EVENT script types: GAMEEVENT_DOMINATION_PRECONTROL and GAMEEVENT_DOMINATION_CONTEST, to allow denying of a control point capture and vetoing a player's contest respectively.
    • The GetActorSectorLocation ACS function now returns an index to the control point if the point parameter is enabled (GetControlPointInfo should now be used to retrieve its name).
  • New parameters have been added to VOTEINFO. Once again, a special thanks to Trillster for working on this.
    • All CVars forbidding native vote types are now synced to clients with the help of the new "sv_forbidvoteflags" CVar.
    • Added the "listvotetypes" CCMD that lists all (custom) vote types and shows which ones are forbidden.
  • Added the "AppendStatusBar" top-level conmand to SBARINFO, allowing modders to customize existing custom HUDs without replacing them completely.
  • The header and row fonts on the scoreboard can now be customized by the user with the new "sb_headerfont" and "sb_rowfont" CVars respectively. Any existing font can be used, including "BigFont", "SmallFont", and "ConFont".
  • The country columns on the scoreboard can now be hidden when everyone's countries are unknown with the new "cl_nocountriesifunavailable" CVar.
  • Added the "cl_noswitchonfire" CVar, preventing players from automatically switching to the weapon they picked up if they're pressing the attack buttons.
  • The GetPlayerSkin ACS function now returns an index to the player's skin instead of its name. The skin's name, as well as other properties, can be retrieved with the new GetSkinProperty ACS function.
  • Fixed the registered or shareware versions of Doom not using the correct chat sound.
  • Huge refactor and improvement of the team item code (i.e. flags and skulls).
  • Many miscellaneous bug fixes or improvements.
As always, check out the changelog on the wiki to get a full summary of all of the changes in 3.2 so far. Here is the full Mercurial changelog since the last beta:

Code: Select all

changeset:	12645:e7027c261065
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Removed another superfluous forward declaration.

changeset:	12646:05f6830353bb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Allow the server to still process CLC_QUIT commands for non-authenticated clients, in case they leave while connecting to the server. This ensures their slot is freed as soon as possible, so that another client may use it.

changeset:	12647:50040f6adc8d
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored code meant to print the names of server connection commands when cl_showcommands is non-zero.

changeset:	12656:df1a3e8a9ca4
user:		Sean Baggaley <sean@csnxs.uk>
Refactored SectInfo's destructor into a separate Clear function, which is now called when encountering a map in SECTINFO to allow overriding a map's sector info.

changeset:	12657:eeb0efa88f00
user:		Sean Baggaley <sean@csnxs.uk>
Fix memory leaks in SectInfo, converting it to use std::shared_ptr.

changeset:	12678:468982a7cdfe
user:		Binary Code
Added new SBARINFO top level "AppendStatusBar" to allow for adding extra SBARINFO code onto existing custom SBARINFO definitions.

changeset:	12682:382be0febfdb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Play the connect sound as a UI sound so it's not affected by reverberations.

changeset:	12683:a4e84697c7e6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The borders in the team and spectator headers on the scoreboard are now hidden when sb_customizeborders and sb_noborders are enabled.

changeset:	12684:a5569b858200
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVars "sb_headerfont" and "sb_rowfont", to allow customization of the scoreboard's header and row fonts without SCORINFO.

changeset:	12685:f9a623b697e6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a missing CVar that wasn't reset when the "restorescoreboardproperties" CCMD was executed, and made a very minor change in the order in which the CVars are reset.

changeset:	12686:d01c89bbd7eb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the player's icon (particularly the speaker icon) appeared momentarily in their own eyes in the OpenGL renderer.

changeset:	12687:fc1757bdb49d
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Removed a redundant check.

changeset:	12695:1ad406aa4207
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: spectators using source-engine noclipping would be frozen when the level was frozen.

changeset:	12696:8b9a289194eb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Ensure that spectators using source-engine noclipping stop completely when their speed is low enough and they're not supposed to be moving.

changeset:	12697:7e16dedfa8aa
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: spectators using source-engine noclipping didn't update their water level and couldn't hear underwater sounds properly.

changeset:	12698:4ee04d546122
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: free-roaming spectators were affected by earthquakes.

changeset:	12702:24a5d05747f2
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a tip message to the login menu that explains how and where to create an account.

changeset:	12703:7e3d25cc8690
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Rephrased the warning message in the network options menu to make it shorter and easier to fit on the screen.

changeset:	12705:e81a5499374f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added indentation to the player list, login, and rcon login menus so that items are centered in the middle of the screen, and adding extra spacing where needed.

changeset:	12723:913705f3e3aa
user:		Sean Baggaley <sean@csnxs.uk>
Use the much more performant NETWORK_GetFirstFreeID for the remaining sector thinkers.

changeset:	12724:1a0a26826cd4
user:		Sean Baggaley <sean@csnxs.uk>
Network IDs for sector thinkers are now only generated in server mode; previously, they were also generated in singleplayer, where they were redundant.

changeset:	12742:0712e7edc314
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a regression where players now earned frags during the next round countdown in (T)LMS.

changeset:	12754:dc5a643c6085
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed "cl_spectatorsource" to "cl_spectatormode", and changed the description of the values to better indicate what they are.

changeset:	12755:ec2ac97a8132
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The physically unrestricted spectator mode will now be used by default, which is technically better than the mode with physical restrictions.

changeset:	12756:35dbdbe8a6b0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed an inconsistency in code styling in P_SerializePlayers.

changeset:	12762:0d6864de3dff
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the "ready to respawn in x seconds" message desynced, or didn't appear at all, for clients who died before receiving a full update of the level in online games (fixes another regression caused by c770f5a41612).

changeset:	12763:afdf342acdbb
user:		Adam Kaminski <kaminskiadam9@gmail.com>
sv_respawndelaytime no longer applies in singleplayer games, or during countdown sequences.

changeset:	12766:84434ba139ac
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Consolidated some duplicated code used for SERVERBAN_IsIPBanned and SERVERBAN_IsIPMasterBanned, and renamed a variable.

changeset:	12767:e188857a7cd0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a helper function for listing addresses via CCMDs such as "viewbanlist" and "viewbanexemptionlist".

changeset:	12768:2bb3eef8e45f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored and consolidated code for the "getIP" and "getIP_idx" CCMDs into a single helper function.

changeset:	12769:6ddffb613ec9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Blacklisted the "getIP" and "getIP_idx" CCMDs from ConsoleCommand.

changeset:	12770:307207ebc7dc
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored and consolidated code for the "ban" and "ban_idx" CCMDs into a single helper function.

changeset:	12775:7e98b875463f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored and consolidated code for the "addban" CCMD.

changeset:	12776:ce379c441879
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored and consolidated code for the "delban", "addbanexemption", and "delbanexemption" CCMDs.

changeset:	12777:cad0639381f2
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Removed SERVERBAN_GetBanExemptionList, which wasn't being used for anything.

changeset:	12778:6a0858b27fc0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Did a much needed cleanup of the code to add bans to the banlist from the server console window. Any use of Hungarian notation and C-style char arrays have been removed.

changeset:	12787:7aafd5a1e8d1
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added support for loading multiple banlists (and exemption lists). Server hosts can load extra files by separating the filenames with semi-colons.

changeset:	12802:b7af48ab1ca3
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a player's PWO settings weren't cleared properly if the weapon's weight was zero upon closing the game.

changeset:	12815:3625723b797c
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a regression where IP addresses with wildcards could no longer be used in the "addban" CCMD.

changeset:	12824:a4bce929a106
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Edited the tip message in the login menu to make it a bit clearer.

changeset:	12834:539a66345ed7
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: it was possible to set chat_sound or privatechat_sound to "Doom 2" in Doom 1, which didn't work because Doom 1 only has one chat sound. Also fixed these settings for other non-Doom IWADs.

changeset:	12836:021b2f15e696
user:		Adam Kaminski <kaminskiadam9@gmail.com>
If a user's chat sound is set to "Doom 2" when Doom 1 is loaded, it will now restore the value upon closing the game.

changeset:	12854:18882281a592
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed the registered or shareware versions of Doom not using the correct chat sound.

changeset:	12855:c89a38e61ec6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Replaced "Kaminsky" in the history file with "AKMDM".

changeset:	12857:dc890eb46b14
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Changed the input/output voice chat volume slider steps from 0.1 to 0.05, and the number of decimal places to display the values to two.

changeset:	12875:8dd72e81c6fb
user:		Trillster <sonicfam1102@gmail.com>
Add CVar for customizing Domination score rate

changeset:	12939:01ccb94d9e6e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVar "cl_noswitchonfire", preventing players from automatically switching to the weapon they picked up if they're pressing +attack or +altattack.

changeset:	12941:8a838f58861e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed some indentation to make it more consistent.

changeset:	12977:7bababe8ecab
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: actors with the CLIENTSIDEONLY flag didn't create splashes in online games.

changeset:	12978:9459d5ac3d29
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed up some inconsistent code styling.

changeset:	12979:c9f258ea5f8f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: moving the console, or scrolling the scoreboard up or down, wasn't interpolated on intermission screens.

changeset:	12980:33c24299f6ba
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a comment that's no longer true.

changeset:	12981:c56492a932c3
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: a spectator's movement broke after the level changed if they were using the physically restricted mode on their end, but cl_spectatormode was set to 1 on the server's end.

changeset:	12982:42f3413914c7
user:		Sean Baggaley <sean@csnxs.uk>
Added the testing-only CVar sv_noplayertimeout, which prevents clients from timing out.

changeset:	12983:9c5079fc6294
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed the formatting of a few history entries.

changeset:	12984:aaa7a7bfb83b
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the server didn't destroy actors that were clientsided only and spawned from serversided ACS scripts, and clients didn't mark actors spawned from clientsided ACS scripts as clientsided only.

changeset:	13033:d3fb1a0d8943
user:		alexey.lysiuk <alexey.lysiuk@gmail.com>
Fixed division by zero in RNG

Random number generator now returns zero for range [0, 0)

changeset:	13034:8afabcfc9006
user:		alexey.lysiuk <alexey.lysiuk@gmail.com>
Fixed potential crash in ACS engine

Unknown p-code in compiled script may lead to a crash if the current module was changed during script execution, e.g. by function call
See http://forum.zdoom.org/viewtopic.php?f=2&t=48524

changeset:	13035:a19748434c85
user:		Christoph Oelckers <coelckers@users.noreply.github.com>
- there seem to be ACS compilers which let 'delay' pass inside a function. Since this is an unsupported feature which brings the ACS VM into an unstable state it has to be handled with a hard abort to avoid crashes.

changeset:	13036:13c4531d1e1c
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed ACS scripts executing a function from another library that cause a division/modulus of zero from aborting the game.

changeset:	13039:b7ea08ada2a9
user:		Trillster <sonicfam1102@gmail.com>
Allow WhiteFlag inheriting replacements to always spawn via -NOTDMATCH

changeset:	13062:b0f16c4772ae
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: unmorphing a player before they disconnected, joined spectators, or respawned didn't always succeed, and could sometimes cause clients to spawn a player that no longer existed. Also prevented exit flashes from spawning when players unmorphed in these special cases.

changeset:	13076:c1bd13d1ecaa
user:		Sean Baggaley <me@drinkybird.net>
NetIDs are now unsigned, doubling the maximum NetID possible from 32767 to 65535.

changeset:	13083:2870cf92e49b
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a new buffer parameter type to the protocol generator, and converted the "PlayerVoIPAudioPacket" server command to the generator.

changeset:	13084:29f915ae5c11
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed the protocol generator writing a line of trailing tabs.

changeset:	13085:3f54ca1abcb3
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Moved some definitions around.

changeset:	13098:30886124e829
user:		Trillster <sonicfam1102@gmail.com>
Create shared struct for domination points, refactor using server commands

changeset:	13099:0d0ab0a18bdc
user:		Trillster <sonicfam1102@gmail.com>
Refactor Domination to allow contesting control points

changeset:	13100:0f1047a05640
user:		Trillster <sonicfam1102@gmail.com>
Add ACS function to get control point info, update Domination events and GetActorSectorLocation to use point indexes.

changeset:	13101:bf0215fa2dd9
user:		Trillster <sonicfam1102@gmail.com>
Add GAMEEVENT_DOMINATION_PRECONTROL event to allow denying of control point capture

changeset:	13102:5b316e5425fe
user:		Trillster <sonicfam1102@gmail.com>
Add GAMEEVENT_DOMINATION_CONTEST event to allow vetoing a player's contest

changeset:	13103:701b2ee1ed2a
user:		Trillster <sonicfam1102@gmail.com>
Add SetControlPointInfo function to set control point owner

changeset:	13104:d6ff516a1627
user:		Trillster <sonicfam1102@gmail.com>
Move domination pointlimit check to account for more cases

changeset:	13115:bbe8691ccab6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a regression where the "no cooperative starts" error appeared if the start point for player 0 wasn't available, but there were still other start points available.

changeset:	13125:c9d623d96698
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added sanity checks to ensure cl_showpacketloss only prints how many packets the client missed after they're fully connected to a server, and renamed a variable.

changeset:	13137:fd6273a0be34
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the CVar "cl_nocountriesifunavailable", which hides the country columns on the scoreboard if everyone's country is unavailable.

changeset:	13141:f7ca3ef19212
user:		Trillster <sonicfam1102@gmail.com>
Updated GetPlayerSkin to return an index, added GetSkinProperty ACS function

changeset:	13142:7304a396a288
user:		Trillster <sonicfam1102@gmail.com>
Allow custom properties to be added to skins

changeset:	13148:a9128dcfa721
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Restored Zandronum-specific deathmatch spawning behaviour by reutilizing sv_spawnfarthest at the start of a level.

changeset:	13149:3a3542c7567d
user:		Adam Kaminski <kaminskiadam9@gmail.com>
When adding a bot to the game, initialize their spectating status to true instead. Otherwise, they could be prevented from joining a duel game when they should.

changeset:	13158:c42ece61b704
user:		Trillster <sonicfam1102@gmail.com>
Allow control points to be disabled via SetPointInfo, tweak related HUD code.

changeset:	13172:71f94009b3e7
user:		Trillster <sonicfam1102@gmail.com>
Add postload folder for automatic end of load order files

changeset:	13197:065cf05de048
user:		Trillster <sonicfam1102@gmail.com>
Add IsPlayerContestingControlPoint function to test if a player is contesting a particular control point

changeset:	13198:16ce6d1d17f4
user:		Trillster <sonicfam1102@gmail.com>
Perform extra code style sweep for Domination changes

changeset:	13199:d26ee22162c8
user:		Trillster <sonicfam1102@gmail.com>
Fix oversight that causes multiple win messages in Domination

changeset:	13200:2671efc66fee
user:		Trillster <sonicfam1102@gmail.com>
Refactor Domination to use GAMEMODE_IsGameInResultSequence

changeset:	13201:7a2d8d956372
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed compiler warnings.

changeset:	13202:a8e2a2d9cb9a
user:		Trillster <sonicfam1102@gmail.com>
Extend VOTEINFO's features and rename some variables (addresses 1420)

changeset:	13203:43204bb705f0
user:		Trillster <sonicfam1102@gmail.com>
Add sv_forbidvoteflags flagset, remove external cvars that now make it up

changeset:	13204:c68e866453e2
user:		Trillster <sonicfam1102@gmail.com>
Sync sv_nocallvote to clients

changeset:	13205:1560d58b8c90
user:		Trillster <sonicfam1102@gmail.com>
Add listvotetypes CCMD

changeset:	13206:2fc71dc8f89b
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a GCC compiler warning.

changeset:	13209:ecac63a7c3e1
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Each player row on the scoreboard in the server console window is now entirely selectable, instead of only the first column.

changeset:	13210:970794efd505
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed the startup time printed in the server console window being inaccurate, which is now locale-dependent.

changeset:	13211:cc8e1c0145b5
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Made adjustments to the status bar at the bottom of the server console window. The full revision string is now always included in the version string, even for release builds.

changeset:	13216:ed296b0c91d6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Overhauled the "manage bans" window in the server console, and provided a neater, more convenient, and less error-prone interface for editing bans in the ban list.

changeset:	13217:0da70b33cc02
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a button to the "manage bans" window to add new bans to the list.

changeset:	13363:935e519b2fd5
user:		Christoph Oelckers <coelckers@zdoom.fake>
- fixed: When a player drops his inventory, the dropped weapons must be checked for their class to ensure that they are not DehackedPickups which cannot be modified as intended.

changeset:	13372:13cf673a130d
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
The ammo types of weapons that have the NOLMS flag are no longer given out in LMS/TEAMLMS.

changeset:	13413:72e96d56ab7b
user:		Sean Baggaley <sean@csnxs.uk>
Fixed: voodoo dolls didn't work in multiplayer emulation (addresses 2510).

changeset:	13438:def9d1448cb4
user:		Sean Baggaley <sean@csnxs.uk>
Fixed: it was possible for voodoo dolls to spawn telefrag each other online.

changeset:	13439:62c46e060cae
user:		Sean Baggaley <sean@csnxs.uk>
The zipdir tool now overwrites the local file headers of entries that weren't using the fixed date and time values.

changeset:	13443:27faba54ebf4
user:		Trillster <sonicfam1102@gmail.com>
Fix Domination points to display in order of SECTINFO

changeset:	13444:aa20a8b3bd4c
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed: the user could still transmit audio while voice_muteself was enabled.

changeset:	13445:0479d2334448
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Voice chat error messages related to FMOD now provide an explanation of what went wrong.

changeset:	13446:0bad4c6557d2
user:		Adam Kaminski <kaminskiadam9@gmail.com>
It seems that ALSA can't retrieve any of the input devices a user has, nor record audio from any of them. Therefore, prevent the user from recording while they're using it.

changeset:	13464:008b17e6477f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
- Refactored the respawn invulnerability code, and added the APowerRespawnInvulnerable class to handle the respawn invulnerability's effects.
- Removed the SVC_PLAYERRESPAWNINVULNERABILITY server command, which is no longer needed.
- Fixed: A_Raise sometimes failed to remove respawn invulnerability from a player if cl_respawninvuleffect was 0, and could remove an invulnerability powerup that a player had in their inventory instead of the actual respawn invulnerability (addresses 4135 and 4136).

changeset:	13465:d0f4532245da
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added the WEAPON.ALLOW_WITH_RESPAWN_INVUL flag to basic weapons in Heretic, Hexen, and Strife (addresses 4137).

changeset:	13466:adf16f3227e2
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored more code to make it closer, in structure, to GZDoom 1.8.6.

changeset:	13467:f3c3a419268f
user:		John Palomo Jr <palomo.john@hotmail.com>
Added Inventory.AlwaysRespawn flag.

changeset:	13468:d9775e889c9e
user:		Trillster <sonicfam1102@gmail.com>
Add history record for INVENTORY.ALWAYSRESPAWN backport

changeset:	13473:064dd4d96a1f
user:		Ru5tK1ng <16673-Ru5tK1ng@users.noreply.foss.heptapod.net>
Fixed: Unloading Clientside scripts would crash out the clients online (addresses 2147).

changeset:	13474:276c2b5d9e70
user:		Adam Kaminski <kaminskiadam9@gmail.com>
- Replaced C-style constants used in ATeamItem and its derivatives with an enumeration.
- AWhiteFlag and ASkull's member functions are now publicly accessible instead of protected.

changeset:	13475:bf534aa962ae
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Moved some of ATeamItem's member function definitions around.

changeset:	13476:348963d2d208
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a virtual member function to ATeamItem and its derivates that returns the name of the item.

changeset:	13477:ca952cf9104e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored AFlag::DisplayFlagTaken, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13478:e4df3767652b
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored AWhiteFlag::DisplayFlagTaken, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13479:46d1d6e6f64a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored ASkull::DisplayFlagTaken, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13480:b452f95c821a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Consolidated AFlag::DisplayFlagTaken and ASkull::DisplayFlagTaken's code into ATeamItem::DisplayFlagTaken to remove duplicated code.

changeset:	13481:7c16bfba7566
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The "held by" message for the white flag is now colorized the same way as it is when picking up a team's flag or skull.

changeset:	13482:6e5759971b55
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored AFlag::DisplayFlagReturn, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13483:48106a1e4d19
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored AWhiteFlag::DisplayFlagReturn, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13484:72139a0e0c6a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored ASkull::DisplayFlagReturn, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13485:8fdf6da8eb90
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Consolidated AFlag::DisplayFlagReturn and ASkull::DisplayFlagReturn's code into ATeamItem::DisplayFlagReturn to remove duplicated code.

changeset:	13486:acc29b66df36
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Did some cosmetic cleanup and removed any use of Hungarian notation in all AnnounceFlagPickup and AnnounceFlagReturn virtual functions.

changeset:	13487:f7d11717ea40
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Consolidated AFlag::AnnounceFlagPickup and ASkull::AnnounceFlagPickup into ATeamItem::AnnounceFlagPickup, and AFlag::AnnounceFlagReturn and ASkull::AnnounceFlagReturn into ATeamItem::AnnounceFlagReturn.

changeset:	13488:3bc2aa800055
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored AFlag::ReturnFlag, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13489:9f6bf05a83f6
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored AWhiteFlag::ReturnFlag and removed any use of Hungarian notation.

changeset:	13490:c46f81a4e406
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored ASkull::ReturnFlag, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13491:3bcb80fc601e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Consolidated AFlag::ReturnFlag and ASkull::ReturnFlag into ATeamItem::ReturnFlag to remove duplicated code.

changeset:	13492:8840aae34c0e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored AFlag::HandlePickup, replaced C-style char arrays with FString, and removed any use of Hungarian notation.

changeset:	13493:6b039403db78
user:		Adam Kaminski <kaminskiadam9@gmail.com>
- Refactored AWhiteFlag::HandlePickup, replaced C-style char arrays with FString, and removed any use of Hungarian notation.
- Removed code that tried giving players an "assist" medal. Players can't return flags in oneflagctf, thus it shouldn't have been possible to award this medal in the first place.

changeset:	13494:218d927e10ff
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Did some cosmetic cleanup of ATeamItem::AllowFlagPickup and its derivatives, changed the return data type from LONG to int, and removed any use of Hungarian notation.

changeset:	13495:29921c1133cd
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Moved AWhiteFlag's definition to "a_sharedglobal.h".

changeset:	13496:f8f6a38e1a3e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Removed an unused member in ATeamItem.

changeset:	13497:729e64572a17
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored ATeamItem::TryPickup, and made it so that the "flag/skull" taken messages are printed without the server needing to tell clients to do so.

changeset:	13498:e7d5b9a045bd
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The server now sends the player who returned the flag with the "TeamFlagReturned" command to the clients, so that they can print the "flag/skull returned" messages without the server telling them to do so.

changeset:	13499:feb264a7259d
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Console messages are now printed when the white flag has been taken or returned.

changeset:	13500:7cc33c64ee23
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Refactored TEAM_FlagDropped, and made it so that the "x lost the flag/skull" console messages are printed without the server needing to tell clients to do so. The redundant "x dropped!" console message has also been removed.

changeset:	13511:2d14f05d342e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Replaced TEAM_FlagDropped with the static member function ATeamItem::Drop. Some code has been refactored too.

changeset:	13519:c4868e75232f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
A message is now printed when the white flag has been dropped. There is also a new corresponding announcer sound to go with this event.

changeset:	13520:e194468396ee
user:		Adam Kaminski <kaminskiadam9@gmail.com>
- Final cleanup of "a_flags.cpp", also removing any remaining use of Hungarian notation.
- Removed the use of the word "flag" in the name of ATeamItem and its derivates's member functions. Not every team item is supposed to be a flag.
- Renamed the server commands "TeamFlagReturned" and "TeamFlagDropped" to "TeamItemReturned" and "TeamItemDropped" respectively.

changeset:	13541:958a0cdab001
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Renamed "a_flags.cpp" to "a_teamitems.cpp" and updated file comment header. Not every team item is supposed to be a flag.

changeset:	13542:bb3affae31f0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Moved all Skulltag and Zandronum class definitions to the bottom of "a_sharedglobal.h", touched up code style, and added a missing comment.

changeset:	13543:792709ae5730
user:		Adam Kaminski <kaminskiadam9@gmail.com>
- The "x has scored for the y team" console messages are now printed in offline games and in 1-flag CTF.
- All console messages related to team items now use the critical message level.

changeset:	13544:b502debe4872
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a helper function to display the "x team scores" and "x has scored for the y team" messages, to reduce duplicated code. These messages are now printed without the server needing to tell clients to do so.

changeset:	13545:be945056214e
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Final refactor of TEAM_ScoreSkulltagPoint, also adding sanity checks and removing any remaining use of Hungarian notation.

changeset:	13546:5af3a734b9d0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Destroy team items when removing them from a player's inventory, so they don't keep piling up.

changeset:	13547:e61d027163f0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Don't allow the white flag to be picked up when there's less than two team with players on it.

changeset:	13548:c9f6eb6cef8c
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Display the "returned automatically" message when the white flag is returned, and also removed the unnecessary period at the end of these messages.

changeset:	13549:401ffb55ada2
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The console messages now reflect when a team item is returned automatically more clearly.

changeset:	13550:bab06bf9308a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Always clear the sub-messages when a team item is picked up by the local player, or when a team item is dropped.

changeset:	13551:2f34d505ab4c
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed two misleading comments.

changeset:	13552:dcc72b711865
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed the "x flag dropped" message not appearing when a player disconnected while carrying a team's item in online games.

changeset:	13559:e455f39bf43d
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Don't clear any colormaps when removing APowerRespawnInvulnerable items from a player's inventory.

changeset:	13560:083e71bea1bf
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed GCC compiler warnings.

changeset:	13561:eca1ea2b35a9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Replaced a few strncpy calls to fix GCC compiler warnings.

changeset:	13562:bdd26110cfc9
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Removed the unused function CLIENT_SetLocalBuffer, which was causing a GCC compiler warning.

changeset:	13563:3bcbdf1b3db0
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Have GetRevisionNumber return a signed integer instead, to fix a GCC compiler warning.

changeset:	13564:c2b1300b81e5
user:		Adam Kaminski <kaminskiadam9@gmail.com>
NETBUFFER_s::Init now calls NETBUFFER_s::Clear at the end, thus simplifying code and making a memset call superfluous, which was causing a GCC compiler warning.

changeset:	13565:161a217f7e15
user:		Adam Kaminski <kaminskiadam9@gmail.com>
To be consistent with CTF, the carrier's name appears in the same color as their respective team in 1-flag CTF.

changeset:	13566:f05809655405
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The ACS function "SetPlayerClass" is allowed to change a spectator's class before they join the game now.

changeset:	13567:697dea78b766
user:		Adam Kaminski <kaminskiadam9@gmail.com>
- While recording a demo, the local player marks when they're (not) using the unrestricted spectator mode, so their movement can always be replicated during playback.
- Fixed the unrestricted spectator mode not working in free spectate mode during demo playback.

changeset:	13568:df408ecf1bed
user:		Adam Kaminski <kaminskiadam9@gmail.com>
The counter in the countdown message isn't colorized differently anymore, and is now drawn in grey like the rest of the string.

changeset:	13569:d28bceb1a732
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Added a check to prevent clients from executing APlayerPawn::DropImportantItems.

changeset:	13570:7717aa97a86a
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Moved code that prints console messages when a player disconnects, such that they do after they dropped any important inventory items.

changeset:	13571:d709c31e065f
user:		Adam Kaminski <kaminskiadam9@gmail.com>
Fixed a regression where the client didn't clear the medals of a player that disconnected.
Download

Happy testing everyone!