Skip to content

Implement g_warmup > 1 and related fixes and refactoring

bones_was_here requested to merge bones_was_here/warmup into master

Support multi-stage warmups in Announcer_Time()

We need to offset the "1 minute remains" and "5 minutes remain" so they play at the correct times.

Remove command-specific anti spam from ClientCommand_ready()

Improve SVQC command flood control

Changes to the same logic used by chat flood control which is more progressive. The previous command flood control was only triggered if a client managed to send more than 8 commands within 1 second, and then it reset immediately.

Prints an informative message when flood control blocks a command. Previously this was silent.

Special cases the client's initial connect commands, as these would otherwise trigger the new flood logic with the current default settings.

Exempts chat commands from command flood control, as these have their own flood control.

Simplifies the code for max perf.

Block spectators from changing their ready status

This is consistent with the existing behaviour of setting .ready to false when a player switches to spectating.

Also reduces indenting and removes a condition that's no longer needed since sv_ready_restart was removed.

Update the types of some voting related globals and fields

Refactor Nagger_SendEntity and Net_Handle_ENT_CLIENT_NAGGER

This will no longer network ready status outside of warmup_stage in the case that some clients manage to have ready status then. This change is made possible by the removal of sv_ready_restart in !940 (merged)

It also simplifies the code and no longer networks the ready status of some SVQC entities that are not clients in the case that maxclients is not a multiple of 8.

Refactor HUD_InfoMessages(), removing obsolete messages

Because sv_ready_restart (ReadyRestart triggered by readying up without being in warmup_stage) was removed in !940 (merged) we no longer need to display any ready-related messages outside of warmup_stage. Also, the messages specific to that feature are no longer necessary.

Fix HUD timer and infomessage support for g_warmup_limit -1 && (g_warmup -1 || g_warmup > 1)

Update hash due to some bot_think code running during countdown

Specifically, 28e4e107 "Allows bots to start playing again immediately when countdown is aborted."

Campaign: don't display scoreboard player count or ReadyRestart notification

Give bots genuine ready status, fixes not appearing ready until a human is ready

Refactor ReadyCount() and handle bots properly

Improve end of warmup countdown abort (when player count drops too low)

Respects g_warmup_allguns 1. Previously players were left with only shotgun and blaster in the resumed warmup when sv_ready_restart_after_countdown 0.

Fixes incomplete countdown abort when sv_ready_restart_after_countdown 1.

Allows bots to start playing again immediately when countdown is aborted.

Implement g_warmup > 1: manual min player setting (overrides map settings)

Follow-up to !1022 (comment 1036769180)

Convert g_warmup to an autocvar and related refactoring

Edited by bones_was_here

Merge request reports