# ETJump 2.4.0

## Breaking
- renamed confusingly named "ghostPlayers" cvars
  - __etj_ghostPlayersAlt__ -> __etj_drawSimplePlayers__
  - __etj_ghostPlayersColor__ -> __etj_simplePlayersColor__
  - __etj_ghostPlayerOpacity__ -> __etj_playerOpacity__
  - __etj_ghostPlayerFadeRange__ -> __etj_hideFadeRange__

## Added
- __etj_drawSnapHUD__ cvar to draw velocity snapping HUD
- __etj_drawCGaz 5__ - equivalent of DeFRaG's __df_hud_cgaz__ __13__
  - __etj_CGaz5Color1-4__ to set colors of no accel zone, min angle, accel zone and max angle, respectively
  - __etj_CGaz5Fov__ to set FOV (max __180__, __0__ uses current FOV)
- __etj_autoDemo__ - automatically start demo recording on spawn/__load__, stop on timerun start
  - temporary demos recorded with a circular rotation to __demos/temp/temp_01-20__
  - __ad_save <demoname>__ saves currently recorded demo manually
- __etj_gunSway__ cvar to toggle gun idle/movement sway and landing bobbing
- diff times in __records <runname>__ output
- __etj_speedColorUsesAccel__ to color __etj_drawSpeed2__ based on accel/decel
- __g_spectatorVote__ cvar to allow spectators to cast and call votes
  - only voting spectators are count towards __vote_percent__, rest are ignored
- __await__ command - same as __wait__, except works on background without interrupting input
  - not available during timeruns, and command queue is cleared on timerun starts
- __etj_chatScale__ cvar to control chat size
- __spawnflag 4__ for __target/trigger_push__ to make Z velocity additive
- CHS info __53__ to display Z angle of a plane
- __etj_CHSUseFeet__ cvar to shift CHS Z coordinate to player feet level for position calculations
- __clearsaves__ command to remove your own saves
- __etj_extraTrace__ cvar to toggle tracing of playerclips on various detectors
  - __extraTrace__ console command prints valid bitflag values
- center print on timerun start if __pmove_fixed__ is not enabled
- playercounts for playing/spectating in scoreboard 3 headers
- __vote_allow_randommap__ to control random map voting
- __g_enableVote__ cvar to toggle voting on server
- __spawnflag 1__ for __target/trigger_savereset__ to disable save reset print
- adrenaline syringe for medics
- __deformVertexes text__ shader directive support
- __cg_drawweaponIconFlash__ for ETPro-style weapon icon flash coloring

## Changed
- __etj_drawCGaz 2__ no longer shows the side "wings" when movement speed is < 352ups
- new color parsing system now works with crosshair colors
- new nosave, noprone and timerun icons
- players' active projectiles and mines are now removed on timerun start
- __cg_centertime__ is no longer cheat protected
- reorganized settings menu
- in-game vote -> misc menu replaced with map restart & random map buttons
- __callvote map__ lists matched maps if more than one map was matched
- __etj_popupGrouped__ no longer groups console print unless set to __2__
- __etj_altScoreboard__ default changed to __0__
- dying during timeruns instantly puts players to limbo, without creating a corpse or dropping a gun
- crosshair no longer draws when scoreboard is up
- adjusted rendering order of crosshair & crosshair names
- spectator messages (__cg_descriptiveText__) are now hidden when in-game menu is visible
- OB watcher no longer shows OBs if you are below your saved Z coordinate and have negative Z velocity
- __tracker_set__ and __tracker_print__ now print a warning if tracker debugging is not enabled
- text on various HUD elements no longer completely disappear when scaled to really low sizes

## Removed
- __etj_drawCGazUsers__ cvar, no longer used
- several unused __vote_allow_*__ cvars

## Fixed
- viewangles were not updating correctly while noclipping in prone
- crash when trying to play demos recorded in ETJump 2.3.0
- __func_static__ did not open doors correctly when __spawnflag 2__ was used
- limbo menu and fireteam menu could sometimes permanently shift to right on widescreen resolutions
- incorrect shaders were sometimes displaying on loading screen
- __!rename__ could be used to execute console commands on the renamed player
- cvar unlockers were resetting on map changes/restarts
- connection interrupted icon ignored __etj_lagometerX/Y__
- __target/trigger_push__ with __spawnflag 2__ were calculating push speed incorrectly
- long console prints (over 1023 characters) could break color codes in the output
- rounding error with virtual grid on widescreen resolutions, causing 2D elements to draw at slightly incorrect positions
- firing a syringe gave players more ammo for syringe
- chat background had a solid line on the right side
- skyportal FOV was incorrectly calculated on widescreen resolutions when __etj_realFov__ was enabled
- __setoffset__ was adding 1 unit to players Z position when teleporting
- __func_invisible_user__ was playing sounds at world origin if origin brush wasn't used
- __callvote randommap__ was ignoring __g_blockedMaps__
- __callvote__ with no arguments was not printing help text
- setting all __vote_allow___ cvars to __0__ did not correctly disable voting
- "Connection Interrupted" text was not widescreen corrected and used old, low quality font
- color parser interpreted hex colors with __00__ as single channeled color
- __tracker_set__ was not able to set tracker values to negative values
- __tracker_set__ could not set value outside of __1 - 50__ when the command was used without specifying an index
- __etj_popupGrouped__ counter was affected by the color codes of the popup
- crosshair preview in menus did not update if the menu was open when crosshair was changed via console
- crash when player reached over 83884088ups speed while CGaz 2 was enabled
- prone stopped working after server had been running for ~12,5 days without a restart
- various formatting and spelling fixes on vote strings
- erroneous print about missing portalgun models