# ETJump 2.5.0

## Breaking
- removed CGaz HUDs __1__, __3__ and __4__ - old CGaz __5__ is now CGaz __1__
- renamed several CGaz-related cvars
  - __etj_CGazColor1__ -> __etj_CGaz2Color1__
  - __etj_CGazColor2__ -> __etj_CGaz2Color2__
  - __etj_CGaz5Color1__ -> __etj_CGaz1Color1__
  - __etj_CGaz5Color2__ -> __etj_CGaz1Color2__
  - __etj_CGaz5Color3__ -> __etj_CGaz1Color3__
  - __etj_CGaz5Color4__ -> __etj_CGaz1Color4__
  - __etj_CGaz5Fov__ -> __etj_CGazFov__
- replaced __etj_weaponSound__ with __etj_weaponVolume__ to allow adjusting volume of weapon sounds

## Added
- __etj_drawJumpSpeeds__ cvar to display last 10 jump speeds
- __etj_drawStrafeQuality__ cvar to display percentage of physics frames spent on optimal accel zone
- __etj_drawUpmoveMeter__ cvar to display how long __+moveup__ is being held for while jumping
- new portalgun model and portal shaders
- macOS support (10.10 and up, only x86_64),
- __etj_snapHUDHLActive__ cvar - highlight active snapzone
  - __etj_snapHUDHLColor1/2__ to set colors
- __etj_CGazTrueness__ cvar to set whether certain physics aspects are reflected in CGaz drawing
- __etj_snapHUDTrueness__ cvar to set whether certain physics aspects are reflected in snaphud drawing
- __etj_projection__ cvar to set projection type for CGaz 1 and snaphud (rectilinear, cylindrical or panini)
- __target_init__ entity - initializes player to a freshly spawned state
- CHS info __55__ to display last jump speed
- cvar unlockers for ETe clip/trigger/slick drawing cvars
  - requires ETe build from Sep 10th 2022 or newer
  - alternative shaders included in the mod to replace built-in ones from engine
- support for __callvote devmap__ to vote a map with cheats
- __!newmaps [N]__ admin command to display __N__ latest maps added to server (admin flag __a__)
- __etj_saveMsg__ cvar to set save message on client side
- __etj_speedAlign__ to control speed meter alignment
- __spawnflag 8__ for __func_static__ to allow disabling random 500-1000ms delay added between activations
- timerun status indicator in scoreboard,
- idle indicator in scoreboard
- __unload__ command to revert last __load__ command
  - cannot be used during timeruns or to teleport to areas where you cannot use __save__
  - only __1__ unload slot, overwritten on every successful __load__ command
- __etj_drawBanners__ to allow hiding banners
- binocular-like zoom for spectators using __+zoom__
- built-in default command map shader, displayed when map does not include a command map
- __etj_fixedCompassShader__ cvar - modifies command map shader to ensure proper masking with compass
  - can break some complex command map shaders
- __g_oss__ server cvar to improve integration with ET: Legacy server browser
- __etj_expandedMapAlpha__ to control transparency of expanded map
- silent command flag __/__ to __!listflags__ output
- __etj_FPSMeterUpdateInterval__ to control the update rate of FPS meter
- __noise__ key support for __func_button__
- several new binding options to ETJump binds menu
- reintroduced Quake 3 __constantLight__ support
  - __light <value>__ and __color <R G B>__ to make brush entities emit light

## Changed
- several map restrictions no longer apply when cheats are enabled
  - save, noclip, god and prone are not restricted
  - cheats are enabled during timeruns (no records are saved)
  - save is available during nosave timeruns, load doesn't reset the run
- portalgun range increased from __5000__ units to max map size
- removed sway from binoculars
- CGaz and snaphud no longer draw while noclipping, dead, on ladders, underwater or using mounted/set weapons
- CGaz and snaphud no longer draw when zooming in with binoculars or scoped weapons
- crosshair is no longer hidden while moving in prone
- setting __com_maxFPS__ < 25 interrupts an ongoing timerun
- __cg_drawRoundTimer__ displays the elapsed time of current map
- dead players cannot use __noclip__
- __speclock__ and spec invites persist across map changes
- field ops now spawn with binoculars
  - calling artillery is only possible when cheats are enabled
- __etj_speedSize__ now accepts decimal values
- command map no longer draws a grid
- tied timeruns completion messages draw in white instead of red
- __!listmaps__ displays total number of maps on server
- __etj_CGaz1Color1-4__ (old __etj_CGaz5Color1-4__) default alpha values changed from __1.0__ to __0.75__
- __etj_CGazY__ default value changed from __260__ to __240__
- slightly increased __etj_altScoreboard 3__ size
- __!listmaps__ now defaults to 5 columns instead of 3
  - max columns capped to 5 to preserve console output formatting
- __!listmaps__ and __!findmap__ outputs are sorted alphabetically, and every other column colored grey to improve readability
- __!findmap__ displays the number of matches
- silent command execution permission is now visible in __!help__ output
- clamped __scale__ value with __target_scale_velocity__ and __spawnflag 1__ to __0.25 - 3.0__ range
- spectators can no longer use __spec(un)lock__
- __etj_drawOB 2__ skips sticky OB drawing on same height as the player is at
- __g_mapScriptDir__ default changed from __scripts__ to __mapscripts__
- removed cheat protection from __cg_skybox__
- removed __Objective:__ text from loading screen and made mapname font size to scale automatically to the boundaries of the box
- expanded map always draws on top of HUD
- improved command map accuracy
- binocular/scope/mortar reticles are hidden while scoreboard is up
- compass is hidden while scoreboard is up
- text shadowing is more consistent across various text sizes
- revive icon alpha value is no longer tied to spawntimes
- __cg_descriptiveText 0__ now hides reinforcement timer
- __g_password__ is no longer stored userinfo string
- __g_maxConnsPerIP__ ignores negative values
- renamed __sv_mapname__ to __mapname__ (server cvar indicating current map on the server)
- timescale no longer resets after demo playback or __vid_restart__

## Removed
- __g_saveMsg__ server cvar
- __shared__, __cg_synchronousClients__ and __pmove_msec__ cvars from cgame cvars, handled directly via systeminfo configstrings
- __pmove_fixed__ cvar from server
- __etj_CGazWidth__ and __etj_CGazAlpha__ (no longer used)

## Fixed
- jumping twice on NJD surface bypassed jump delay on initial landing on a regular surface
- CGaz calculated incorrect angles while ground strafing
- tied votes passed instead of failed with __vote_percent 50__
- __speclock__ could be unintentionally bypassed if a spec invited client disconnected, and another client connected using the same slot
- 64-bit servers crashed on some maps due to memory pool being too small
- __shared__ cvar was setup incorrectly, causing issues with ET: Legacy and ETe clients
- map restarts played a brief warmup before fully restarting
- color cvars displayed incorrectly in menus on 64-bit clients
- covert ops weapons were not correctly handled on timerun start
- weapon switch animation played when picking up a portalgun
- portalgun pickup was missing a print and sound
- __!listmaps__ and __!map__ ignored __g_blockedMaps__
- runtimer looped back to __00:__ if a run took more than 1 hour
- __savelimit__ worldspawn key was not working
- several weapon related sounds were not affected by __etj_weaponVolume__
  - reload & switch sounds
  - satchel detonator idle sound
  - panzer/satchel detonator spin-up
  - mounted MG42s and tanks
  - overheating sounds
  - dynamite spin-up
- item pickup sounds were not playing with __etj_itemPickupText 0__
- knockback and view duck were not correctly predicted when taking fall damage
- __speclist__ was missing from tab completion
- view transitioned from crouch to prone played when following prone players
- player view persistently shifted slightly after step-ups and hard landings upon following
- potential crash in map grid code with invalid map coordinates
- sounds for client 0 played too far away on some maps with OpenAL sound backend
- server and map name could overlap scoreboard 3
- default scoreboard header spelled playercount wrong when a team had one player
- configstrings limit ignored fireteam configstrings
- multi-line tooltips in menus had inconsistent line heights
- __team__ command printed duplicate spam protection prints
- demo playback allowed several commands that caused unwanted behavior if executed
- binocular/scope overlay disappeared while scoreboard was up
- speedmeter could show 1ups speed while wounded on a non-flat surface
- flamethrower appeared to fire when trying to fire while noclipping
- gun was incorrectly positioned when leaning with non-zero roll angles
- player icons could draw outside the boundaries of command map
- potential crash related to map statistics and tokens on shutdown
- __call/goto__ print logic was inconsistent when checking for conditions for the commands
- mounted MG42s could not be repaired if __g_engineerChargeTime__ was set to a low value
- corrected pluralization of some admin command outputs
- "Make fireteam private?" prompt could be visible on screen after fireteam was already disbanded
- __etj_drawLeaves__ was trying to remap a non-existing shader
- weapon heat bar did not disappear when leaving a tank while noclipping
- tank MG rotation was incorrect while using __cg_thirdperson__
- incorrect wording in max tracker indices error message