Previously, the end of map transfer was detected by a number of fallible
heuristics, including checking if the map is loadable on every non-map
packet, when a timeout had been reached, or the map size given by the
server was reached. This broke in a number of scenarios, including when
an unexpected packet was sent.
Instead, we now detect the end of the map transfer when we receive a
state packet, as intended by the protocol.
- Overriding methods are clearly indicated with `override` keywords
- Remove redundant `virtual` keywords from destructors of subclasses
- Introduce `SPUnsupported()`, replacing most uses of
`SPNotImplemented()`, which now serves as a dynamic "TODO" marker
The global RNG state is now protected from simultaneous accesses by
employing a mutex.
Performance sensitive code requiring generation of a large number of
random numbers can utilize `LocalRNG`. This is not thread-safe but
provides a much greater throughput. `LocalRNG` is seeded by the global
RNG only at construction time.
* Add Counter for world updates per Second
This work was just done for personal testing and is probably not up to the
required code standards. Nonetheless, I have decided to send a PR as it is very
useful information and a good starting point.
* add MarkWorldUpdate method
- Fixes#681 (Pressing space while in free-camera mode does not move up).
- Fixes#678 (Have seconday fire cycle through the player list backwards
in sepctator mode).
- "Stop following a player" is bound to "R" (reload) by default.
- Add help messages displayed on the screen.
Made it so that an alert is displayed when the player attempts
to build beyond the highest z-level (e.g. above the platform
in babel.)
This also fixes a bug where blocks are consumed when attempting
to do such thing.
Fixes#652.
The sound gain is now constant and does not change regardless of the
distance. This imitates the behavior often seen in other first-person
shooters.
Switching from "Play" to "PlayLocal" only affects the way the gain is
computed since "HeadshotFeedback.opus" is a stereo sound file and there-
fore not spatialized by any known audio backends.
This also introduces a config variable named "cg_hitFeedbackSoundGain"
that allows users to adjust the volume of the hit feedback sound.
This is done for all cases, but that is probably a bad idea. While this
does not matter in public games, in small tournaments this could be an
advantage. Ideally, the server could disable giving players this
information
* Skip dead players when spectating between spawns
This makes e.g. spectating the last player alive in arena easier
* Add skip dead players config option
* Add satisfying headshot bangs like in classic
* add whack sound
* Update Client_Update.cpp
* Add files via upload
* Moved to Resources/Sounds/Feedback
* Play only if inflicted by LocalPlayer
Also lowered volume
* Update AUTHORS
* Update Credits.inc