If you miss any feature/bug not listed in the changelog let us know or simply add it here.

ET: Legacy Changelog

For the Legacy mod, use Lua 5.3 only!

See also Libs Changelog.

2.76 The enemy is weakened! (work in progress)

Engine

  • Fixed MSG_WriteBits for bigger data
  • Updated libs to
    • cURL 7.50.3
    • Freetype 2.7
    • SQLite 3.14.2
  • Fixed lazy switching between renderers - new default com_hunkMegs value set to 256

Client

  • Fixed default font doesn’t have cyrillic support

Server

Mod

  • Removed unused session var coach_team
  • Added players loose spawn shield upon firing as a new g_misc option
  • Fixed skill rating not updating when specing
  • Fixed spectators can’t disable player names in game view
  • Fixed main debriefing stats not displayed when skill rating is disabled (also causing intermission chat issues)
  • Fixed fireteam control doesn’t work when NUMLOCK is enabled
  • Fixed opening fireteam panel stops your movement
  • Added UI option to set custom resolution in system menu
  • Changed highest experience points award to display XP gained on the current map only (unless in campaign mode)
  • Added missing talk/chat animation for players
  • Updated world flags (bots now use the UN flag)
  • Fixed fireteam chats available to non ft players
  • Added playtime statistics
  • Fixed client creating player lists each snapshot (multiview only)
  • Fixed script events
  • Fixed spectator speed boost too high
  • Fixed underwater jump movement
  • Fixed ability to run on water
  • Fixed limbopanel display map time in warmup instead of warmup countdown
  • Fixed tagent param values of script_mover ents behind 15 chars

2.75 Learning to fly! (released 11/09/16)

Engine

  • Fixed Cvar_Unset not notifying cvar_modifiedFlags
  • Fixed *nix systems buffer usage in Sys_RandomBytes
  • Added command descriptions
  • Fixed file handle leaking in unzip functions used by apple lib loader and ETL updater
  • Added basic sqlite3 support
  • Fixed some cases of FS_UnzipTo returning true when unzip failed
  • Allow to use zlib and minizip system libs
  • Fixed error handling of mod lib loading
  • Fixed registering of server pk3s with invalid chars in file name (no more allowed)
  • Fixed fs_homepath default value on Windows when 'My Documents’ has been moved to another drive

Client

  • Enabled optional renderer2 [experimental]
    • Added r2 compile glsl only when the program is really needed
  • Enabled optional OpenAL sound system with surround sound support
  • Updated libs to
    • GLEW 2.0
    • Freetype 2.6.5
    • OpenAL 1.17.2
    • SDL 2.0.4
    • latest tinygettext
  • Fixed gamma control in renderer1 by using GLSL shader
  • Fixed cut sound channels which are actually flagged to be cut
  • Fixed MAX_PATCH_PLANES error on some maps
  • Added the support of ogv (theora) videos
  • Fixed the ROQ support of HQ videos
  • Fixed lib loading issues on MAC clients (now loading .dylib when .bundle unzip failed)
  • Fixed several OpenAL sound system issues
  • Added support for hidden 0x7f char to clean command
  • Fixed Hunk_Alloc size in R_InitSkins
  • Added joystick/input device code again [experimental]
  • Fixed demo recording
  • Fixed www download issues when server uses redirect
  • Removed obsolete dingy filter on windows
  • Fixed console button
  • Removed unused cvars
  • Fixed rendererGLES QALIGN of vectors
  • Fixed error message for duplicate genuine paks on server
  • Fixed latency of input devices

Server

  • Fixed build on FreeBSD
  • Fixed svdemo writing userinformation at the wrong place
  • Fixed leaking file handles in download code
  • Added sv_tracker cvar
  • Fixed div/0 in SV_RateMsec when com_timescale is set to 0

Mod

  • Fixed smoke grenade not triggering after player dies
  • Fixed MG gets stuck before reloading
  • Added weaponIconScale to *.weap files
  • Fixed allow medics max health from health cabinets
  • Fixed weapprevinbank and weapnextinbank issues for rifle
  • Added death animations
  • Added spectators statistics to match results table
  • Fixed CS_MULTI_MAPWINNER winner when surrending
  • Added cg_optimizePrediction - client optimized prediction
  • Fixed soldier level icon not displayed when using HW with any class
  • Fixed riflegrenade disappearing from the gun when you get revived
  • Fixed output and one player selection of 'new’ console commands
  • Added throw console command to help players got stuck
  • Fixed noclip clients have a shadow
  • Added a warning for non available server models
  • Added time played percentage stats
  • Added reinforcement timer change color before tapout limit
  • Fixed callvote config cmd not showing description (3rd param '?')
  • Fixed callvote config cmd no longer initiating a vote when config file isn’t available
  • Fixed file handle leaking in preview and config file functions
  • Fixed script logging
  • Fixed debriefing team xp for gametype map voting
  • Fixed storing team map xp for GT_WOLF_MAPVOTE
  • Fixed LMS team change with last life in warmup
  • Fixed spammy landmine spotted sounds
  • Fixed most of AA-gun issues - mappers should have a look at "misc_aagun"
  • Added special behaviour for players & corpses in front of a tank
  • Removed the short distance trick and make disguised name appears at all time
  • Fixed disguised enemy name not updated when victim changes player name
  • Added spawnpoint autoselect button on limbo panel
  • Fixed full health bar displayed after a teamkill
  • Fixed missing quick message shortcut in alternative voices menu
  • Fixed coverops don’t loose their disguise if feet of target aren’t in field of view
  • Added coverops ability to change disguise if they already have one
  • Fixed objective carrier map entity not removed from map when out of sight
  • Fixed killed teammates map entity not removed from map when going to limbo
  • Fixed demo layout issues
  • Fixed individual weapons accuracy stats being over 100%
  • Changed map entity update rate is increased to every second
  • Fixed complain removal issue on client disconnection
  • Fixed self-adrenaline shader color not matching syringe color
  • Fixed fireteam privacy status update on client side
  • Fixed disguised enemy don’t show fireteam icon if owner is in fireteam and selected
  • Fixed some issues with fireteam locations data
  • Added some sprite icons visible in spectator mode
  • Added intentional gibs and team gibs statistics
  • Removed disguised client rank from player configstrings
  • Added numerical values to awards screen
  • Added medals are also awarded in objective and mapvoting gametypes
  • Fixed awards don’t take tie into account
  • Added best HS percentage, most gibs, most selfkill, most death and most time alive awards
  • Fixed blinking map entities when players connect
  • Fixed scoreboard info not available in demos
  • Added tons of translations
  • Added new event message for MOD_TRIGGER_HURT
  • Fixed rcon/Lua chat and say command
  • Fixed allow_vote cvars in config files
  • Added missing polls to ui
  • Fixed MAX_STATIC_GAMEMODELS value too small for some maps
  • Added TrueSkill rating system [experimental]
  • Fixed connection interrupted message not shown when lagometer is disabled
  • Reactivated multi view [experimental]
    • Added cvar g_multiview
  • Added cg_logfile to customize game menu
  • Fixed some misc gamemodels lerping all the time
  • Fixed construction sound is only played at start of constructions
  • Removed never working cgame cvars
  • Added show owner of team-landmine and -dynamite in crosshair as new g_misc options
  • Added rising smoke for arty and airstrike bombs
  • Added extended demo viewer code (freecam, weaponcam) from etpro
  • Added client side debug of player hitboxes
  • Added server side debug of entity BBoxes
  • Fixed parser issues with invalid token (parsers are more strict)
  • Fixed short rank names
  • Show profile info in main menu
  • Added lagometer antiwarp indicator
  • Fixed players are no longer allowed to push players using stationary MGs
  • Removed g_knifeonly - moved to Lua see AddWeaponToPlayer and RemoveWeaponFromPlayer
  • Fixed some issues with maxlives cvars set
  • Fixed knife kills always playing goat sound, MOD_BACKSTAB introduced
  • Fixed medic scream sound for gibbing mods - no need to play
  • Fixed unknown client game command causing sudden mouse movements
  • Fixed command map data not shown immediately
  • Fixed bots taking fireteam leadership
  • Fixed console end of match info not always printed
  • Lua
    • Updated to Lua lib 5.3.3
    • Added LuaSQL interface for SQLite3 support
    • Added some Lua fields
    • Added Lua script function G_SetEntState
    • Fixed _et_XP_Set Lua interface float value for XP
    • Added Lua script functions G_ShaderRemap, G_ResetRemappedShaders and G_ShaderRemapFlush
    • Added Lua hook SpawnEntitiesFromString
    • Added Lua script functions G_CreateEntity and G_DeleteEntity
    • Fixed Lua G_EntitiesFree return value
    • Added Lua script functions AddWeaponToPlayer and RemoveWeaponFromPlayer
    • Added Lua script functions G_SetGlobalFog

For the logbook: In November 2015 coverity scan defect density < 0.25 has been reached (was 0.9 at the beginning of 2014). More than 300 issues are history.

2.74 (released)

ET: L 2.73 wasn’t published - see also 2.73

Engine

Client

  • Fixed s_musicVolume not independent from s_volume
  • Fixed low Commander sounds volume
  • Fixed language mix and UTF8 issues in mods
  • Enabled optional renderer2 [experimental] (Linux only)
  • Fixed sharing favorites 32- & 64bit

Server

Mod

  • Fixed debriefing stats
  • Fixed config vote buttons in UI
  • Fixed second stopwatch round not loading when changing gametype in-game
  • Fixed teleporters - working again
  • Added ping info for spectators on scoreboard
  • Fixed pmove_fixed enabled 1st person view MG control
  • Fixed tank weapon overheat sound
  • Removed unused OSP game points stats system
  • Fixed a Linux client crash
  • Updated Omni-bot library
  • Fixed config files
  • Added hitsound for gibbing
  • Added bodyshot sound if headshot sound is disabled
  • Fixed stamina bar not working when spectating
  • Fixed vote progression not displayed to spectators
  • Fixed missing browining icon shader

2.73 (unreleased)

Engine

  • Optimized LAN player detection
  • Fixed an issue which cause the argument system to break on loading a map
  • Fixed the extraction code having wrong output filename due to static array flipping
  • Fixed beginning of log not displaying in console
  • Updated unzip to 1.1
  • Fixed compiling with MinGW-w64
  • Fixed Windows file list extension check

Client

  • Added unicode support
  • Updated to freetype 2.6.0, libogg 1.3.2, libvorbis 1.3.5, jpeg-turbo 1.4.1, GLEW 1.12 and latest tinygettext
  • Fixed console scrollbar length
  • Fixed replays aren’t always shown in the list
  • Fixed mouse being stuck
  • Fixed "VM_Create on UI failed" error when downloading new mods
  • Added warning for unknown shader parms
  • Fixed looping sounds stuttering
  • Fixed cache_startgather cmd
  • Fixed horizontal scroll caused K_MWHEELDOWN key press
  • Added console smooth scrolling

Server

  • Fixed freeze when server is full and there is no free slot available
  • Fixed Omni-bot interface to work on 64-bit Linux servers

Mod

  • Fixed initial clip value of scoped Garand
  • Fixed ejected brass type for scoped Garand
  • Fixed weapon names spelling across the game
  • Fixed K43 grenade launcher reload animation
  • Fixed MG 42/Browning reload animation
  • Fixed (Silenced) Luger/Colt shooting animation
  • Added speed boost when free flight spectators use SPRINT
  • Fixed scoped weapons still scoped after revive
  • Fixed possibility to select double Thomson/MP40 in limbo menu by Soldier with heavy weapons level 4
  • Fixed obituaries icon color with self-kills
  • Added color to chargebar when weapons aren’t ready
  • Fixed FG 42 reload animation
  • Fixed airborne explosion debris scale
  • Added several additional obituaries icons for various MODs (means of deaths)
  • Added autoexec_(team,class,map) config file support
  • Fixed accuracy stats being over 100%
  • Fixed slag surface parm
  • Added always creating a dialog when server tries to redirect - cvar ui_autoredirect removed
  • Fixed wrong name for "HQ" and "Pilot" messages
  • Added "Pilot" chat message when doing an airstrike
  • Added MG 42 and Browning can be reloaded anytime now
  • Added displaying more than one player sprite at same time
  • Fixed Fireteam members 7 & 8 couldn’t be selected
  • Added ability to unbind keys in the controls menu with the backspace key
  • Fixed gun stuck when reloading and proning forward in stand up position
  • Fixed finishing weapon alt changing animations before cycling to next weapon
  • Fixed weapon shaking underwater
  • Fixed weapon model aspect with cg_gun_fovscale enabled and fov < 90
  • Fixed orange box visible when the redirect popup appears
  • Fixed green flickering on loading screen on wide screens
  • Added version string print out when loading libs
  • Added combo boxes for the language selection
  • Fixed human player models shaking on listen servers
  • Added automatically scaled fov on wide screens
  • Fixed drowned players can’t wait indefinitely underwater
  • Removed weapon icon flash 2-colors only option
  • Fixed revive icon display on command map after respawn
  • Fixed no message when dynamite is defused
  • Fixed spectator’s real score
  • Fixed a crash when being shot under Mac OS X
  • Updated to Lua 5.3.1

... and various (tons of!) smaller adjustments and optimizations. Since the last release we have fixed about 150 issues reported by (coverity)

2.72 (released)

Engine

  • Rework of download code

Client

  • Expanded et:// protocol
  • Updated icon
  • Request servers from ET:L master server
  • Disabled SDL2 Joystick code to avoid possible crash when gamepads are connected

Server

  • Fixed vanilla mod compatibilty
  • Fixed SV_Demo_Record_f for sv_maxclients 64
  • Added configurable attack log prints to console
  • Fixed sv_protect 1 (possibly) and added challenge size check
  • Added part of the ioq3 com_frame code to fix cpu usage issue
  • Added option for dedicated servers to receive updateinfo packages
  • Added protection of SV_CheckDRDoS against time wrapping
  • Send heartbeat to ET:L master server
  • Don’t force snaps to 30 - use sv_fps instead

Mod

  • Removed cg_railTrailTime
  • Fixed wrong maxclients count in server browser (Windows only)
  • Fixed scoped rifles generating same stats as standard rifles
  • Fixed LUA et_Damage callback not taking distance and HS into account
  • Fixed compatibility issue with older linux GLIBC versions

... we did also fix tons of defects detected by coverity.

2.71a (released)

Engine

  • Fixed OOB access in CM_EdgePlaneNum
  • Fixed MSG_ReadDeltaKey setting bit 1<<bits often
  • Fixed several potential buffer overflows
  • Added demo controls (rewind, pause and fastforward)
  • Fix incorrect strncat usage in CL_ServerInfoPacket
  • Update com_hunkMegs/com_zoneMegs when forcing a minimum
  • Disabled Nagle’s algorithm for TCP connections
  • Added an auto updater

Client

  • Updated SDL to SDL2 (supports raw input)
  • Console text size increased
  • No longer print the gfx extension string per default
  • Fixed bsp node surface bounds calculation
  • Joystick code reactivated
  • cl_language and cl_languagedebug renamed to cl_lang & cl_langDebug
  • Fixed Windows XP incompatibility
  • Decals reworked. Fixed the decals issue introduced by rc4 (draw player shadows, bullet marks etc. again when hud head is active)
  • New default value for r_maxpolyverts
  • Fixed several polys, polyverts and poly buffer issues
  • Renderer2 bug fixes & clean up (unreleased)
  • Added 2560x1440 WQHD and 3840x2160 UltraHD resolution in r_mode.
  • MAX_CORONAS per scene/frame decreased to 64
  • Added support for stereo sound files in S_StartSound and S_StartLocalSound
  • Fixed PNG image loading
  • Fixed possible division by zero in S_PaintChannelFrom16 functions
  • Updated and fixed displaying *nix dialog boxes
  • Added dialog to restore default settings or keep current config after crash
  • Use LAN/CABLE/xDSL connection settings as default and removed option from UI.
  • Show coloured strings in cvar completion and serverstatus as expected
  • Added update indicator in console and UI update popup
  • Minor tweak to embedded icon
  • Fixed IRC quit and ctcp version string (unreleased)
  • Replaced jpeg with jpeg-turbo lib
  • Fullscreen state is now restored when rejecting new video changes
  • Fixed crash on map change

Server

  • Added uptime cmd
  • Warn admins before MAX_GAMESTATE_CHARS error occures
  • Warn admins before too many maps in paths cause trouble
  • Fixed possible client timeouts after bigger downloads
  • Show ETL servers as ET and not as Q3Comp in HLSW

Mod

  • Display player names in spectator view
  • cg_enableBreath cvar removed - let mappers control breath puffs
  • g_corpses cvar introduced - enable 'unlimited’ corpses
  • Print secondery weapon in setup messages
  • Added more realistic explosion shakes
  • Fixed flamer deaths getting blamed on the world/player 0
  • Fixed UpdateGoalEntity was called when omnibot was not enabled
  • Show secondary weapons in select weapon messages
  • Adjust aimspreadscale each PmoveSingle
  • Fixed an invalid null deref check in the slider code
  • Added ETPro anim script conditions NOT/MINUS
  • Syringe is no longer a stat weapon
  • Make votings work again
  • Show results of votings
  • Fixed uneven weapon issues
  • Added server messages on team join
  • Bazooka eject brass disabled
  • Demo controls extended
  • Fixed icon scaling of akimbo pistols
  • New Lua fields: lastkilled_client, lastrevive_client, lastkiller_client, lastammo_client, lasthealth_client, lastteambleed_client, lastteambleed_dmg
  • Fixed swap_teams work again
  • Added more debris effects
  • Fixed server related cvars being overwritten by default config
  • Make artillery calls chargebar dependant
  • Fixed adding decals to the scene if these are disabled
  • Fixed filter for vanilla servers in the game browser
  • LUA
    • Lib Lua updated to latest stable version 5.2.3
    • G_LuaHook_Damage added
    • lua field ps.classWeaponTime added
  • Added more game constants to Lua & make Lua constants work (again)
  • Added lua_api command
  • Added autorecord on late joins
  • Fixed scrolling inconsistency in server info
  • Added g_misc 2 bitflag - enables medic syringe healing
  • Omni-bot library updated to the latest (unreleased) version from subversion
  • Fixed double Thompson/MP40 weapon selection message with soldier lvl4
  • Added teambleed sound for disguised covert ops
  • Covert ops no longer loose disguise by binoc 'attack’
  • Fixed MG42 icon displayed as Browning after using Browning on allied tank
  • Fixed Fireteam window not displaying fixed MG42 and Browning tank icon
  • Fixed Fireateam window sometimes visible as spectator
  • Fixed binoc nofire sound under water
  • Fixed playing "I need a medic!" sound when killed inside tank
  • Fixed server name max length in server browser
  • Fixed default motd version string
  • Fixed client freeze issue occurring with big explosions (only when compiled with MSVC in release mode, or clang)
  • Fixed corpses not gibbed by satchel or dynamite explosion
  • Fixed adrenaline self syringe color not matching syringe color
  • Covops now switches to main weapon instead of pistol after using smoke bomb
  • Fixed corpses not gibbed by dyna or satchel
  • Fixed corpses throwing helmet when uniform and helmet is stolen
  • Fixed autoswitch when medics run out of syringes/adrenaline syringes
  • Fixed autoswitch to main weapon after using adrenaline
  • Fixed autoswitch to knife if entirely out of ammo and grenade.
  • Added ingame logo
  • Fixed MG/MG_SET cooling
  • Fixed creating campaign server in Host Menu causing a crash
  • Show levelshot instead of campaign info for non campaign game types
  • Fixed player with heavy weapon skill level 4 couldn’t pick up enemy SMS on ground
  • Fixed reinforce time displayed in limbopanel as spectator
  • Fixed feedback when using apply/invite/propose commands to full fireteam
  • Fixed official NATO spelling to fireteam names
  • Fixed line selection in debriefing player list
  • Smoke bomb is no longer a player stats weapon
  • Fixed the client side class command and added support for class selection with numbers
  • Fixed flamer selfkill messages shown as world kills
  • Fixed flamer stats
  • Added real head hitbox code from Zinx Verituse
  • Fixed client/server flamer view & behaviour
  • Fixed LMS/max_lives tapout window showing up in warmup
  • Draw fieldops recharge icon in red when unavailable
  • Added g_misc flag to combine artillery and airstrike time counters
  • Added mod version in UI
  • Added Neil Toronto’s skip correction code
  • Fixed pushing teammate to death gaining battle sense xp

... and various smaller adjustments and optimizations.

2.71 rc 4 (released)

The default fs_homepath value has been changed in RC4!

Engine

  • Fixed crash in Q_strncpyz on OS X 10.9 Mavericks
  • Improved checks for a proper install
  • Changed default fs_homepath directory to etlegacy on all platforms
  • Updated unzip to 1.01h and zlib to 1.2.8
  • OS X: ability to load mod from dylibs
  • OS X: path to user’s App Support directory for fs_hompath is not hardcoded anymore
  • Fixed translation support with dynamic linking
  • Fixed network shutdown on exit
  • ET: Legacy process starts with high priority (Windows)
  • Fix FS_FOpenFileReadDir non-zero file handle when file not found
  • Improvement of the echo command which is now also enabled on the server side and supports vstr arguments

Client

  • Made the console look less Win3.1 ish (Windows)
  • Freetype now works properly. (People can use .tff or .otf fonts)
  • Enabled raw input on Windows resulting in smoother mouse movement (Windows 8.1 fix)
  • Language updates
  • r_noborder changed to latched cvar type (requires restart)
  • Sound code performance fix
  • Fixed video and audio recording synchronization drift
  • Fixed duplicated config file created at first start
  • Colour code escaping with ^ fixed
  • Moved renderer2 to pure C (not released)
  • Added default ET ttf font files, used by default if built with FreeType support
  • Fixed a crash related to gamma setting/workaround for gamma reset bug in bundled SDL, system one is still affected until this bug is patched upstream (OS X)
  • Fixed several issues in IRC code (not released)
  • Buggy ET patch bevel axial plane optimization removed
  • com_maxfps is limited to max 333 fps now
  • Possible fix for queue overflows (Windows)
  • Renderer logging reworked
  • Fixed possible crash in S_PaintChannels
  • Build fix. iconv is included in libc starting from version 10.0 (not released, FreeBSD)
  • Skip unhandled marksurfaces when calculating leaf bounds

Server

  • Server shows real player count when private slots are used
  • Server side full demo recording (can replay the whole map with every players pow)

Mod

  • Improved in-game fonts rendering
  • Added spawnflag 1024 for script_movers (flamer damage only) - feature for mappers, legacy mod only - see Legacy-engine-and-mod-info-for-mappers
  • Fixed weapon balance of static_pain function
  • Fixed gun not correctly scaled when using a fov greater than 90
  • Added prone delay
  • Added axis Granatwerfer
  • Added graphical obituaries display
  • Added additional icons type in popup messages
  • Fixed color codes issues in location display
  • Added crosshairname info display options
  • Added constructible XP sharing
  • Fixed dropped items not laying flush on inclined ground
  • Fixed zooming in effect when using binoculars
  • Added icon over friendly disguised coverops to improve their visibility
  • Added scoreboard rank icons
  • Cmd entitylist shows event names for temp entities
  • Added high resolution country flags for legacy clients
  • Fixed bubble hint icon not appearing consistently
  • Fixed damage falloff code
  • Adjusted hitboxes height, adjusted hitboxes for proning & dead players
  • Fixed start screen - displays proper size of clouds image
  • Fixed playing vanilla demos properly again
  • Fixed Forty’s pmove_fixed and pmove_msec
  • Fixed some issues with WP_NULL
  • Fixed coverops crosshair disguisename displayed with colors
  • Fixed colors displayed despite using uncoloured names
  • Added optional crosshair coloured names
  • Added additional crosshairs
  • Fixed fireteam window alignment
  • Fixed player stats - they are no longer deleted when setTeam is called
  • Clear client markers when teleporting players
  • Fixed bot votes, g_protect adjusted
  • Cmd /players doesn’t change player names to lowercase anymore
  • Added allied bazooka weapon
  • Added separate statistics for new weapons, no longer log weapons as 'duplicate’
  • Fixed Browning not giving Heavy Weapon skill points
  • Bots no longer use private slots
  • Major gents performance fix
  • Fixed multiple votes on mapvoting system
  • Added objective carrier icon on the command map
  • Fixed weapon slot for silenced pistols
  • Added disguised coverops icon on the command map
  • Changed loadpanel and limbopanel black sides on widescreen to a more fitting green
  • Fixed statistics computed higher than 100%
  • Improved loading of the Omnibot library
  • Added new server commands
  • Added update range cvars (skill_battlesense& skill_.....)
  • Fixed silenced pistol missing weapon bank
  • Fixed grenade launcher missing weapon bank
  • Added player name in killing message when following
  • Fixed gun stuck when reloading and proning forward
  • Fixed allied tank not generating Browning stats
  • Added switch to previous player while following
  • Fixed crash when cg_descriptiveText is set to 0
  • Fixed objective pick up sound broadcasted to everyone
  • Added disguised coverops icon in scoreboard
  • Added received team damage stats
  • Added used class icon for disguised covops client
  • Added in-game objectives popup window
  • Fixed played time ever increasing in debriefing screen
  • Added various statistics in debriefing screen, stats window and console output
  • Added bani’s flamethrower exploit fix
  • Added cg_drawPing
  • Limbo cancel sound replaced by select sound
  • Fixed command map icons not displayed to spectators
  • Fixed some widescreen issues
  • Synced accum buffer sizes to be compatible with some maps
  • Fixed incorrect console prints
  • Added competitive configs to legacy
  • cg_popupTime has been removed
  • Adjusted sprite height when prone
  • Configstring slightly decreased
  • Server prints used OB version at the start
  • Fixed "falling to the ground" animations
  • Display snapshot time delta instead of ping during demo playback
  • Added rudimental referee bot menu for listen servers
  • Reset command map on team change
  • Mod also accepts most game sounds in .ogg format
  • Fixed /weaplastused cmd on first spawn and switching weapon for the first time
  • Fixed omnibot_enabled 0 and map_restart crash
  • Ignore corpses for bullet traces
  • cg_footsteps has been removed
  • Fixed buffer overflow in Omnibot PrintMessage function
  • Added 2 new spawnflags for trigger_multiple - see Legacy-engine-and-mod-info-for-mappers
  • Added extended soundscript info at start
  • New server votings

Lua

  • Added xpsave script
  • Added private messages script
  • Added et_DPrint and et_Error hooks

Installer

  • Omni-Bot shortcut fixed (Windows only)

... and various smaller adjustments. We have a new logo!

2.71 rc 3 (released)

Note: ET: L 2.71 rc 2 wasn’t published - see also 2.71 rc 2

Engine

  • Crash log file is written again on *nix systems
  • Added MorphOS support

Client

  • Fixed cl_languagedebug cvar
  • Added the option to disable lean on activate button press
  • Fixed "bind <key>" message for unbound keys
  • Fixed Motion JPG avi contains no video
  • Fixed *nix Desktop icon
  • Added background ET:L logo
  • Added linux desktop and mime type files to proper location

Server

Mod

  • Added fixed physics feature
  • Tricheckbox slighlty improved
  • Added the KA-BAR weapon for allies
  • Removed obsolete 'lieutenant’ references - changed cvar g_LTChargeTime to g_fieldopsChargeTime
  • Added shadows to the spawn wait text for similarity on texts
  • Added help messages for empty server list to server browser
  • Added servers filtered counter to server browser
  • Fixed WP_MEDKIT animation
  • Added the Browning MG weapon for allied soldiers
  • Added follow text uses icons for class and rank
  • Added crosshair shows class and rank icons instead of text
  • Fixed axis no longer use allies rank symbols
  • Added borders to construction/dynamite bar to be more informative
  • Added spectators view teamflags
  • Beautified several center prints & other game cosmetic
  • Fixed maxlives not displayed in scoreboard
  • Added cg_weapaltReloads cvar - alternative fire reload

... and again more clean up and optimizations in engine and mod.

2.71 rc 2 (unreleased)

Engine

  • Configstring 1 sv_referencedPakNames optimized
  • Etkey format adjusted
  • Fix for array overwrite memory corruption when drawing too many polygons
  • Removed newlines for COM_Error calls
  • Fix rconAddress not printing redirected print packets while not on a server
  • Client buffer overflow fix
  • Fixed client console with colored input - renders the escapes and the colors as in ioq3
  • Use different config file for dedicated server executable "etconfig_server.cfg"
  • Client takes account for slash AND trailing \0 in field char events
  • Translation updates
  • Support of et:// protocol handling and registration
  • s_useOpenAL cvar removed - s_initsound '2’ sets OpenAL instead
  • Removed 'MODE is unbound, use controls menu to set’ print on linux console
  • Fixed frequently not playing sounds
  • New command to clean up fs_homepath - see also menu → options → clean
  • 2 wallhack prediction fixes
  • Better limits & default values for sv_wh_bbox cvars
  • New feature: PID file for client and dedicated server
  • New server DDOS protection for getchallenge requests
  • Fixed potential buffer overflows
  • Fixed never working cvars r_maxpolyverts and r_maxpolys
  • Fixed dedicated server consumes 100% CPU when no map is loaded
  • Fixed Sys_Dialog for *nix systems not using gnome or KDE
  • Fixed temp memory to be present all the time
  • Fixed undesired CAPSLOCK behaviour - you can bind it now
  • Fixed bsp flares causing surface corruption
  • Joystick code reactivated (apple excluded)
  • Fixed text getting appended to vid_restart in command buffer
  • cl_timeout default value decreased to 30
  • Fixed keyboard issues on Windows (ALT and CTRL keys)
  • Fixed usage and printing of long GL extensions string (>4096 chars)
  • Fixed null model axis disappearing if sky is in view
  • LAN_RemoveServer can remove all servers of same type
  • ARM Linux support by ptitSeb
  • Fixed UI rendering issue with r_mode 11
  • Fixed recursive crash when home path cannot be created
  • OpenPandora port by ptitSeb
  • Release input devices in Sys_ErrorDialog
  • OpenGL-ES support by ptitSeb
  • Genuine/vanilla etmain/mp_bin.pk3 is no longer referenced
  • Added scollbar to console
  • Fixed freeing commands on shutdown
  • Improved console handling (tab & cvar cycle)
  • Fixed ALT + tab minimize bug

Mod

  • Country flags
  • cg_muzzleFlash introduced
  • Scoreboard spectator fix
  • ETPro like class cmd
  • Fixed CG_AllocMark using wrong time in while loop
  • Fixed mapvoting - clients were able to vote several times
  • Command map spawnpoint selection fix
  • CG_ReadNextSnapshot fix for local hosts demos
  • Arty/airstrike rate limiting by forty - new cvars team_airstrikeTime and team_artyTime
  • Fix for Cmd_Vote_f() not accepting nonsense
  • Silent door sounds for croaching players
  • team_max restrictions introduced
  • Level up customization - see skill_X cvars
  • Lua G_XP_Set, G_ResetXP and Lua trap_FS_GetFileList functions have been added
  • Fixed Lua sha1 checksum - did work only for capitalized inputs
  • g_intermissionTime and g_intermissionReadyPercent cvars introduced
  • sv_cvar command has been added to force cvars
  • Fixed wrong server cvar g_protectLog at etl_server.cfg
  • Fixed: g_inactivity and g_spectatorInactivity cvars
  • g_mapScriptDirectory and g_mapConfig cvars introduced
  • Custom huds cg_althud
  • Popup customization
  • Team class limitations team_maxCLASS
  • Team weapon limitations team_maxWEAPON
  • More fireteam functions
  • Rifle clip sizes increased
  • Force client cvars
  • Added local time to the hud
  • Show players latched class in fireteam
  • g_moverscale cvar introduced
  • Replaced stamina- with breath bar under water
  • Removed a warning when custom- or Lua sounds are played
  • Allow voice chats as spectator
  • Config string optimizations
  • Draw loading text in status bar
  • Fixed buggy team chat display when cg_locations is set
  • Scaled map name on loading screen to fit its bounding box
  • Fixed client is shown as 'connecting’ while already connected
  • Client gets info when muted and tries to chat
  • cg_centertime is no longer cheat protected
  • Colored obituary prints for team- and self kills with used weapon
  • Fixed CG_AllocMark using wrong time in while loop
  • Limbo spawnpoint selection fix
  • Deny /imready in intermission and gametype mapvoting
  • Stop processing ClientUserInfoChanged when client is dropped
  • bg_pmove.c slightly optimized
  • Server Browser rework - added new buttons & filters
  • Added configurable HUD
  • Fixed memory leak when lua is reading files

... and again more clean up in engine and mod.

2.71 rc 1 (released)

Engine

  • New icon is now part of the binaries (Windows)
  • Fixed some code issues found by static analysis tools
  • 'modellist' info extended
  • Fixed doppler effect (panzer rocket sound fix)
  • SDL sound cvars changed to use genuine cvars (s_sdlSpeeds_khz, s_sdlBitss_bits, s_sdlChannelss_channel)
  • Fixed openAL support; fixed changing music volume when using the DMA backend
  • Fixed va() function (reverted ioquake implementation back to 2.60b code)
  • Lighmap loading works again
  • Automatically append git revision to the version string
  • Code clean up & cvars removal
  • Wallhack prediction by Laszlo Menczel has been added
  • Slight fog bug fix
  • Added ncurses console
  • Separate log for server attacks and security related issues has been added - see sv_protectLog
  • echo command now works from scripts like autoexec.cfg and when disconnected from a server
  • Sound module doesn’t waste memory anymore
  • Memory leaks fixed
  • gameinfo.dat is no longer used
  • Clients receive message of the day (MOTD) from etlegacy.com
  • Increased limit of same sound at same time
  • Client checks for update on start
  • Unique M_SQRT2 & usage
  • Fixed client status bar after vid_restart
  • Fixed heartbeat - master server always received keep-alive packet from server even it was quitting
  • Several translations have been added
  • Image loader client crash fix
  • Rework of developer 1 debug messages for asset loading
  • Fixed *nix ALSA sound (wasn’t built in by accident)
  • AROS port code by BSzili
  • Client sound support of ogg vorbis files
  • serverinfo.dat is no longer used, now storing favourites in favinfo.dat (speeds up vid_restart)
  • Fix for spoofed infoResponse packets
  • ET:L won’t start when fs_homepath and fs_basepath point to the same path (dedicated servers excluded)
  • Keypad fix for NUM pressed digits
  • Fixed an issue where Sys_LoadDll() fails
  • Ported ioquake3’s .avi recorder code by Tim Angus
  • Fixed path seperator in /path cmd being not OS specific
  • Fixed wrong checksum calculation for 64bit

Mod

  • Fixed some code issues found by static analysis tools
  • Several model and animation issues fixed
  • Revive of gib models
  • More code clean up
  • Warning about two identical localisation strings fixed
  • Console commands playsound and playsound_env have been added. Note: Only ET: Legacy clients will hear *.ogg sounds!
  • Lua support for game
  • Menu scripts extended
  • PM_Weapon() fix - don’t cool while in limbo
  • Map location override databases see cg_locations
  • Missing announcer for 'goat’, 'prepare to fight’ & 'fight’
  • Several sound fixes
  • Weapon stats fix
  • Code clean up & cvars removal
  • Credits Page
  • Debriefing team results headers use skill icons
  • Userinfocheck secured, based on combinedfixes.lua
  • Connection limit per IP added - see g_ip_max_clients
  • Some sound fixes
  • Fixed player die animation
  • ETPro like spawntimers
  • r_gamma is settable via options graphics menu
  • Drop packs on limbo death - g_dropAmmo & g_dropHealth introduced
  • Push players - see g_shove
  • Teleporter sound fix
  • Fixed a bug introduced with 2.70rc1 where clients leave prone with no weapon view
  • Client side log - see cg_logFile
  • ETPro style weapon icon flash - see cg_drawWeaponIconFlash 2
  • Gametype 6 map voting has been added
  • g_campaigns cvar introduced
  • g_maxTeamLandmines cvar introduced
  • ETPro like script actions create & delete
  • Visible leaning
  • New separate legacy mod cfg file - see etmain path
  • Updated Omni-Bot files & small bot fixes
  • Fixed 'exceeded MAX_MULTI_SPAWNTARGETS’ error
  • Reset the remappedShaders data structure on map start

2.70 rc 1 (released)

2.70 is Linux and Windows only.

Engine

  • Windows full installer
  • New ET:Legacy path structure - see ET_Legacy_path_structure
    • ET:L now uses its own default fs_homepath home directory
      • ~/.etlwolf on linux
      • <DOCUMENTS_FOLDER>\ETLWolf on Windows
  • Code clean up - unused code and cvars removal - see List_of_cvars
  • Increased com_soundmegs (128MB) and com_soundmegs (160MB) default value
  • Several exploit fixes
  • Fixed Invalid .PK3 files referenced
  • Fixed Linux r_depthbits crash
  • DRDoS protection see sv_protect -see List_of_cvars
  • sv_timeout has been split - see sv_dl_timeout List_of_cvars
  • Enabled translation support
  • Fixed memory leak
  • Print the full OpenGL extensions string
  • sv_advert introduced - controls server behaviour to 3rd parties - see List_of_cvars
  • New game icon
  • Changed fs_game default to 'legacy’
  • ...

Mod

  • Code clean up - unused code and cvars removal - see List_of_cvars
  • Several vanilla mod bug fixes (callvote exploit fix, remap shader fix ...)
  • Omni-Bot game and install support
  • Team chat flags have been added
  • Basic ingame translations for czech, danish, dutch, german and polish
  • Added Zinx’s etpro antiwarp
  • Added forty’s SP_func_fakebrush() function for fake brushes
  • UI serverbrowser filters non ET:Legacy compatible servers (ETPro & PB)
  • Menu additionals
  • Punkbuster references removed
  • Client side hitsounds
  • ...

2.70 (beta 4)

Engine

  • Jaymod 2.2.0 compatibility
  • Imported all the fixes from the Project: Bug Fix
  • Etkey is optionally downloaded from etkey.org (this will be replaced in the future)
  • Reverted change: ET:L uses ~/.etwolf as its home directory again
  • Other minor changes, for a complete list of changes have a look here

2.70 (beta 3)

Engine

  • ScreenshotJPEG command issue fixed (thanks acQu)
  • Morsik’s patch for PB-compatible etkey combined with the old stuff
  • Very basic Visual Studio support
  • s_muteWhenMinimized set to 1 by default
  • ET: L now uses its own home directory (~/.etlegacy on linux)
  • Other minor changes

2.70 (beta 2)

Engine

  • Workaround for the mouse getting stuck in the windowed mode (thanks Mateos)
  • Alt+Enter switches from/to fullscreen mode on all platforms
  • Added: ability to mute sound when the game is minimized (thanks acQu)
  • Switched from Makefile to premake build system (inspired by ET-XreaL)

2.70 (beta 1)

Engine

  • Added fix for libjpeg compatibility (originally written by Ilm) (broken in alpha2)
  • Windowed mode behaves better (but it is not noob-friendly yet)
  • Libraries are now all linked dynamically (Linux needs: libjpeg, libcurl, sdl)

2.70 (alpha 2)

Engine

  • ALT+TAB minimizes the game
  • Sound works now correctly on Windows and SDL is linked dynamically
  • Fixed key binding on international keyboards
  • Disabled OpenAL

2.70 (alpha)

Engine

  • Switched from etmaster.idsoftware.com to etmaster.net
  • Compatibility with NoQuarter 1.2.9
  • Ported etkey generation from ioquake
  • Updated CURL lib to the latest version available
  • Resolved about a 1000 compiler warnings (still a few hundreds left)
  • Removed some useless and deprecated code (a lot more to go)
  • All the fixes and improvements made by raedwulf (move from deprecated platform specific code to SDL, sound fix on linux, etc.)

ET changelog/readme/info

2.60b/d patch

  • CVE-2006-2082: directory traversal / information leak in Quake III Arena auto download feature
    Ludwig Nussel and Thilo Shulz discovered a vulnerability letting a malicious client download files from a server if auto download is enabled ( sv_allowDownload 1 ).
  • Issue #2 ( CVE pending ): R_RemapShaders buffer overflow
    A second issue fixed in this release would let a malicious server exploit a buffer overflow to execute a shellcode on connecting clients.

2.60 patch (from readme.txt)

New features

Minor optimizations in server and client engine for lower cpu usage.

Client can record game audio to a wav file.
wav_record starts recording
wav_stoprecord stops recording
cl_wavefilerecord 1 will start recording from the moment a demo is loaded.

"Unable to load an official pak file" now reports the pak filenames in the console.

Win32 and Linux sound cvars are now unified:
s_khz, s_bits, s_numchannels
s_khz is now a CVAR_LATCH.

Players can override unsafe cvars (e.g., from a crash) with com_ignorecrash 1

Server can give alternate messages to "server is full" by changing the cvar sv_fullmsg
Server can redirect clients to other servers when full (e.g. sv_fullmsg "ET://host.to.redirect.to:port")

Server will switch to GT_WOLF if "map" can’t start a campaign.

/demo can now specify .dm_83 extension explicitly, and will try dm_83 and dm_84 if extension isn’t specified.

Abbreviated snapshots are now sent when clients aren’t fully connected. Saves bandwidth on map rotations.

Client may move the demo recording statusline with cg_recording_statusline. 0 hides it completely.

/buyNow, /singlePlayLink commands removed.

'MODS’ menu added.

Anisotropic texture filtering is now supported in renderer.
Enable with r_ext_texture_filter_anisotropic 1 and use r_textureAnisotropy to set the filtering level.

cg_draw2D is no longer cheat protected.

Wounded freelook is now enabled (a la RTCW). It is also completely moved clientside so there is no lag.

Vote string is now printed to console when vote is called.

win32 specific:

Client can clear the dedicated console with /clearviewlog
s_khz 44 now works.

Linux specific:

Client can disable built-in mouse acceleration with in_dgamouse 2
r_swapInterval is now supported
Changed Linux key handling so ctrl/shift/alt/etc don’t make a difference for any keys, to match Windows® better.

Bug Fixes

Class Specific:

Fixed wounded CovOps stealing uniforms if they were close enough.
Fixed incorrect Level 4 CovOps knife damage on wounded players.
Fixed disguised CovOps having laggy health to enemy team.

Fixed Level 3 engineering using incorrect charge for landmines.

Fixed Field Ops incorrectly using medic charge time for ammo packs.

General:

Fixed http download crashes.
Client now sends a UserAgent of ID_DOWNLOAD/2.0 libcurl/7.12.2 on downloads.
Client now sends a referrer of ET://server.IP.address:port on downloads.
Various server engine crashes fixed.
Spectators could sometimes move-partway-through-walls on connects.
Fixed issues with profile.pid (false "com_crashed" situations).
Clients would often get "disconnected for unknown reason" instead of a proper disconnect message.
Fixed more than 10 maps in a campaign crashing the server.
Fixed skulls sometimes shown in scoreboard for live players.
Fixed campaign count being checked once per campaign.
Fixed incorrect first person tank muzzle origin for cg_drawgun 0.
Fixed players being able to "fire" flamethrower and tank gun simultaneously with cg_drawgun 0.
Fixed players being switched to soldier class upon attaining level 4 lw/hw skill.
Fixed Referee menu expanding colors twice.
Fixed foreign keyboards inputting unsupported characters after opening console.
Fixed translations becoming incorrect if cl_language was -1 or 0.
Fixed powerups being laggy (e.g., objective powerup would take a few seconds to show on hud).
Fixed silent landmines (e.g., landmines sometimes exploded without hearing the trigger at all).
Fixed engine lowercasing all binds (e.g., bind a "say Hello" and then press a, it would say “hello” in lowercase).
Fixed revive snapping players’ view around.
Fixed Players_Axis/Players_Allies getting too large and crashing server.
Fixed players "sticking" to each other in collisions.
Fixed dynamite on movers triggering objectives.
Fixed "configstring > max_configstrings" connect bug.
Fixed Satchel detonator work incorrectly when spectating.
Fixed the prediction error that occurs when a constructible is finished building.
Fixed prediction error when cratering.
Fixed anti-bunnyhop.
Fixed doubled events (e.g., double/triple misfiring while jumping or being hit).
Fixed pistol prediction (client could "fire" the pistol faster than it’s supposed to).
Fixed framerate dependency of mg42s.
Fixed tracemap generation breaking when there was a flat plane at lowest point in a map.
Fixed players being randomly switched to spectator mode upon attaining level 4 skills.
Fixed Antilag (it was dependent on client fps, and headshots weren’t delagged).
Fixed Timestamps in logs getting truncated.
Fixed renderer crashing with too many stretchpics (e.g., topshots and weaponstats at the same time, if they were full).
Fixed players mysteriously sinking into the ground and cratering when bouncing off specific map geometry.
Fixed engine improperly interpreting certain IP addresses as LAN addresses.
Fixed sign extension bug in console code that caused high ascii characters in the console to be displayed in the wrong color.
Fixed artillery markers not being properly drawn on compass.
Fixed hostname being exactly 21 chars long with a period in position 9 being treated as IPX.
Fixed overflow when more than MAX_GLOBAL_SERVERS are returned from the master.
Fixed Luger spread and pausing on last shot.
Fixed akimbo rapid fire exploit.
Fixed zoom exploit.
Fixed security hole allowing clients to override IP.
Fixed spectator/limbo cameras slowly 'drifting’ and never reaching 0 velocity.
Fixed download redirection notices printing repeatedly in server console.
Fixed LMS not showing who drew first blood.
Fixed LMS not showing how many wins each team had.
Fixed problem that when players connected after a vote was called they got stuck with a vote on their screen through the whole round.
Fixed the issue that when playing the Fuel Dump map you could plant the dynamite and it would say, "base fortification" but actually destroy the Fuel Dump.
Fixed pmove and the game disagreeing about weapon charge usage.
Fixed radar dynamite bug (both sides could plant dynamite near the truck for no apparent reason, and get XP for defusing it).
Fixed the problem that when all of your team’s mines were in use, you couldn’t disarm enemy landmines.
Fixed team landmine count being incorrect (you could plant 11 by triggering 10th and planting 11th) and this broke the defusing team’s landmines.
Fixed mistaken dynamite announcements (announcement planting dynamite near goldrush tank barrier 2, but it doesn’t get destroyed).
Fixed players blocking dynamite from destroying constructible objectives.
Fixed client losing prone state after packet loss.
Fixed winning team not winning when they eliminated opposition <3 sec before round end, and then died themselves.
Fixed LMS not always ending when a team was eliminated.
Fixed switching weapon during pause.
Fixed akimbo weapons and deployed mobile MG42 ignoring cg_autoreload.
Fixed Maxlives adjuster on timelimit 0.
Fixed crosshair names randomly not working (tunnels in oasis, crypt in resurrection).
Fixed g_{axies,allies}mapxp overflowing on long campaigns crashing the server.
Fixed static mg42s not hurting props (e.g., the mg42 outside allied spawn didn’t damage the wooden fence).
Fixed incorrect 'complaint dismissed’ message when player disconnects.
Fixed mg42s not being antilagged.
Fixed riflegrenade-through-teamdoor exploit.
Fixed intermission ready (match_readypercent now applies to intermissions).
Fixed intermission ready should not waiting on spectators.
Fixed large cg_errordecay values exploit.
Fixed CovOps landmine spotting.
Fixed knife not being antilagged.
Fixed players shooting themselves in the head when prone, firing through a breakable (e.g., a window).
Fixed Medic viewlocking sometimes snapping to non-medics.
Fixed Oversize servercommands crashing client.
Fixed engine eating "//" in server commandlines.
Fixed Garand/K43 ammo exploit.
Fixed free ammo via spectators exploit.
Fixed Limbo’d players crashing servers via following carriers and disconnecting.
Fixed the distancefalloff bug (damage would drop, then suddenly increase with distance).
Fixed "setu ch" crashing server.
Fixed CS_SYSTEMINFO exceeding 1024 getting truncated on map changes.
Fixed the prone → invisible player (prone into wall) bug.
Fixed Ctrl-` for the mini-console.
Fixed the disguised name and normal name both being shown when moving the crosshair over a disguised covert ops while spectating.
Fixed kick/mute/referee/etc. players with >32-character names.
Fixed weapon heat sometimes flashing back down to 0 when maxed out.
Fixed random lockups occurring when blood or debris is spawned.

Battery bunker now autoselects spawnpoint when captured.
Moving objects now predict a continuation rather than a stop (e.g., fixes jittery tug on railgun).
Clients can no longer /userinfo and nuke their userinfo from the console.
Binoculars can no longer be used while using mounted mobile MG42 or mortar.

Removed "Killed by <name>" in endround scoreboard.
Removed unused cg_specswing cvar.

F13-F15 now works if the user’s keyboard/X mapping sends them.
Capslock, kp_numlock, and kp_equals are all usable in Linux now.

Made some minor fixes to Linux keyhandling.

Changes relevant for modders

NOTE FOR MOD USERS: It is recommended that any user modifications that have been installed to the
Wolfenstein: Enemy Territory directory be removed. These modifications are not supported by Activision®
and may not be compatible with some of the fixes that are included with this patch.

The entire source tree is now -Wall -pedantic -std=c99 clean, removing all the noise from the silly
warnings so that useful warnings are actually noticed. No functional changes, except that HINT_CHAIR
doesn’t work at all now (where it worked before, but unreliably).

All printf-style varargs functions are now protected with GCC’s attribute extension, which should
help catch printf parameter errors.

Added a 4th parameter to CG_INIT - qboolean demoPlayback - since some mods need this at init time,
and drawactiveframe is too late for them.

MAX_CVARS increased to 2048 from 1024, as ET is relatively close to the 1024 limit with both client
and server cvars. Enlarged FILE_HASH_SIZE to compensate for the enlarged cvar table size.

kick/ban code is now moved entirely into qagame, mods can choose to use the engine banning system or
the qagame one. #define USE_ENGINE_BANLIST qtrue, changing to qfalse makes use of the qagame ban system

Demo recording status has been moved entirely to cgame. See CG_DrawDemoRecording().

When PERS_HWEAPON_USE was set, the engine blocked the update of usercmd_t.
This has been fixed and the relevant code changed in pmove_fixed.c

FUI can now render models

cgame can synchronize rendering with trap_R_Finish if needed.

CG_SHUTDOWN is now called on /quit

MAX_GLOBAL_SERVER is now 4096
Significantly enlarged MAX_CMD_BUFFER (16k→128k)

Added better debug info for Info_*() infostring functions

The master server now supports filters for fs_game and gametype.
E.g. to request a list of protocol 84 servers with fs_game "etpro" and g_gametype 5,
ui_main would execute the following command:
globalservers 0 84 \game\etpro\gametype\5

Rendering to textures:

cgame may now render directly to a texture on the fly.
Use trap_R_GetTextureId() to retrieve a handle to an existing texture (tga/jpg).
Use trap_R_RenderToTexture( textureid, x, y, w, h ) to render into the texture.
Screen coordinates 0,0 for trap_R_RenderToTexture are at the lower left of the screen.
You can get a list of textures the engine has loaded with /imagelist
Example code can be found in cg_limbopanel.c at the bottom of CG_DrawPlayerHead().

Dynamic shaders:

cgame may build shader scripts on the fly, via code.
Use trap_R_LoadDynamicShader( shadername, shadertext ) to load a new shader into memory.
The loaded shader can then be referenced with trap_R_RegisterShader() and used as if it
were a normal shader. Combined with trap_R_RemapShader(), cgame can replace any shader.
trap_R_LoadDynamicShader( "shadername", NULL ) unloads the dynamic shader "shadername".
trap_R_LoadDynamicShader( NULL, NULL ) unloads all dynamic shaders.
Example code can be found in cg_main.c, look for #ifdef TEST_API_DYNAMICSHADER

Raw binary channel for client↔server:

cgame and qagame may now communicate using a raw binary stream.
These messages are unreliable (like udp), and are sent only once per server frame.
qagame and cgame are responsible for managing retransmissions.
Sending a message overwrites the outgoing message buffer.
Once the message has been sent (unreliably), the message buffer is cleared.
The message is sent with trap_SendMessage, and its status can be read
with trap_MessageStatus. When the cgame and/or qagame receive a
message, they get a *_MESSAGERECEIVED event to vmMain, which has a
timestamp and the message that was sent during that snapshot.

void trap_SendMessage( /* server: int clientNum */, char *buf, int buflen );
clientNum: the client to send the message to (server only)
buf: the message to send
buflen: length of the message to send

messageStatus_t trap_MessageStatus( /* server: int clientNum */ );
clientNum: the client whose buffer we want to check (server only)
returns MESSAGE_EMPTY on empty buffer
returns MESSAGE_WAITING when not yet sent (can be caused by rate limit)
returns MESSAGE_WAITING_OVERFLOW when the message would make
the packet too large to send

qagame
int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 );
command == GAME_MESSAGERECEIVED
(int)clientNum = arg0: clientNum message was received from
(char*)buffer = arg1: pointer to the message received (temporary)
(int)buflen = arg2: length of message received
(int)commandTime = arg3: timestamp of message (from client)

cgame
int vmMain( int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6 );
command == CG_MESSAGERECEIVED
(char*)buffer = arg0: pointer to the message received (temporary)
(int)buflen = arg1: length of message received
(int)commandTime = arg2: timestamp of message (from server)

Fixed the Com_BitSet() with ridiculous bit number in the anim condition code.
buddyClients was not used, ignoreClients was too small and didn’t use COM_Bit* functions.
Fixed incorrect class determination in CG_PlayerClassForClientinfo().
CG_AddPMItem failed on multi-line messages.

Lag and packet loss simulation:

Client and server may simulate packet loss and increased latency with new cvars.
These will only function when sv_cheats is 1.
Server uses the cvars sv_packetloss and sv_packetdelay.
Client uses the cvars cl_packetloss and cl_packetdelay.

For example, to make the server simulate 200ms latency and 30% packetloss:
sv_packetdelay 200
sv_packetloss 30

These cvars only affect transmitted packets, not received packets. To simulate
packetloss and latency in both directions you need to set the cvars on both
client and server.

Thanks to Chad Siedhoff and the Activision Visioneers for helping with this patch!