
This changelog is the canonical source of information for Q4MAX.
Any document that disagrees with it is almost certainly wrong.

Note: like every other version of Quake, Q4 "listen" servers are EXTREMELY defective.
They MAY work but they're not officially supported. Always use a "dedicated" server.


Notes for version 0.75 (17 June 06)

add: Freezetag gametype added.
     Two standard modes, "FTEU" and "FTUS". Players are frozen until thawed by a teammate.
     Callvote "thawtime" controls how long it takes to thaw.
     Callvote "thawauto" controls time before players autothaw.

add: Demo playback menu - shows all netdemos.
     To playback most demos, "Enforce Files" must be turned ON (demo_enforcefs 1 or 2)
     "Force media only" (demo_enforcefs 1) will play the demo with all the paks it was recorded with BUT using the latest Q4Max game code (instead of the version the demo was recorded with).
     "Force all paks" (demo_enforcefs 2) will play it with all paks - including game code it was recorded with (instead of the latest game code).
     Q4Max 0.75 can play most demos recorded with 0.74a and 0.74b except for TDM demos, which must be played back using "Force all paks".
     If all required files are not present, the filenames and checksums will be displayed - if more than 1 is missing, they will all be listed on the console.
     Support will not be provided for errors encountered using "Enforce Files - OFF". As usual, if there's something odd in playback, enforcefs 2 is a safe way out.

add: Player Profiles. 
     Some competitions do not allow cvars not editable via the gui to be used. Player profiles are restricted .cfg's that may only contain settings that can be adjusted via the gui.
     The cfg's can be saved and loaded via the menu interface or via the loadProfile / saveProfile commands.
     When loaded via these commands or the user interface, no "restricted" cvar can be changed, allowing this menu to be used to load configs in competitions.

add: CPMA style duel scoreboard.
     Shows stats for both players, and a layout more suited to 1v1.

add: "Net" now displayed in the TDM scoreboard.

add: Callvote modelsounds 1 enables strogg sounds on all strogg models.
     Applies a full soundset - pain, jumps, footsteps etc. Can be used with cg_enemymodel "strogg" or similar to get enemy sounds.

add: autorecord command records a netdemo with a name in the same format as autoaction recorded demos.

add: Client XML stats include "damagegiven" and "damagetaken" values

add: Server + client XML stats output kills for each weapon

add: cg_railstyle (0|1, default 1)
     alternate rail trail styles. 1 is q4 default, 0 has no swirl

add: hud_timer (-1|0|1, default 1)
     1 - Standard Q4 (countdown)
     0 - no timer
    -1 - Inverted (count up)
    
add: hud_timerposition (default 305 10)
     x/y position of the timer

chg: ui_autoswitch (bitmask, default 3) now allows switching to weapons that have no ammo
     0 manual switches
     1 auto switches
     2 manual switches, empty weapons allowed

chg: cg_ambienteffects is now a bitmask (default 3)
     0 - don't show any ambient particle effects
     1 - show world effects
     2 - show item effects

chg: instagib can now only be changed via modes - "callvote mode IFFA" instead of "callvote instagib 1"

chg: after playing a demo, force a reloadEngine command so that the "latest" menus are reloaded - applies to demo_enforcefs 1 only.

chg: autoaction demos in duel now use Name-vs-Name format

chg: "qanotes" command removed, allowing q<tab> for quit. Thx goes to RR2DO2 @ SD.

chg: brighter PM skins

chg: nopicmipped id's Pro brightskins

chg: "helmeted" skin has a bright helmet.

chg: Statistics in _ingamestats and summary statistics tab shown to .1% accuracy.

fix: (RB) "FreeCurrentPVS: invalid handle" server errors. Error reduced to a warning, code protected so that it cannot do any harm, and causes of calling FreeCurrentPVS with an invalid handle corrected.

fix: (RB) hitbeeps not sounding if a shot hit multiple targets

fix: (RB) toggling ingame stats was drawing the hud twice

fix: (RB - Performance) optimised/fixed assorted broken code, for up to 25% fps boost.

fix: (RB - Performance) projectiles performance improved, reducing CPU load when spamming with HB / RL.

fix: (RB - Performance) ui_showgun implemention changed, thus providing performance boosts with showgun 0.

fix: (RB - Performance) Improved g_simpleitems implementation, giving bigger FPS gains.

fix: (Performance) Improved cg_ambientEffects implementation, giving bigger FPS gains.

fix: (RB) Player physics bugs corrected, which were causing jumps to be missed.

fix: changing between the stock hud_styles ingame didn't initialise hud team colouring

fix: "no ammo" sign disappears properly when you pick up ammo for an empty weapon. props to Lava of jachud fame :)

fix: compound mode+map votes misbehaving, you can now vote both in one go

fix: serverdemo playback now uses the correct cg_weaponfoveffect, g_gunx/y/z cvars

fix: serverdemos no longer crash on playback if the game reaches overtime

fix: Vote menu now shows only modes defined as available on the server by si_modes (including custom modes). Note: custom modes will not be shown if si_modes is blank.



Notes for version 0.74b (10 May 06)

chg: Show a message in the chat window when someone disconnects.

chg: g_clientprojectilecolision marked as archive, so now stored in configs automatically

fix: bug relating to animations not loaded on the server, causing warnings and then state errors.

fix: health/armor no longer decreases at all during a timeout / pause.

fix: respawn minimum / maximum time no longer affected by timeout / pause.

fix: (Performance) a little more HUD tweaking.



Notes for version 0.74a (2 May 06)

fix: (Performance) player.def no longer loaded with precaching in the menu. This speeds initial load time, and also ensures that player related media is precached when in game.

fix: (Performance) crosshair gui interaction optimised.

fix: (Performance) HUD code optimised based on profiling.

fix: (Performance) g_projectileLights removed. There never are projectile lights, so the code checking for them is dead code.

fix: (Performance) Changes to the way ui_showgun is accessed.

fix: callvote map <mapname> now issues a "nextMap" on the server after changing si_map. Was causing the map not to change correctly in some cases.

Notes for version 0.74 (25 Apr 06)

add: Q4 1.2 compatibility

add: Q4 1.1 final changes, including LG buzz fix, support for * in net_serverDlTable, and tick/crosses as ready indicators in the scoreboard.

add: Spectator locking.
	"speclock", "specinvite", "specrevoke" commands for players allow teams to be locked from specing.
	"speclockstrogg", "speclockmarine", "specunlockstrogg", "specunlockmarine", "speclockall", "speckunlockall" for referees to control speclock.
	Coaches are highlighted by an orange (strogg) / green (marine) C on the scoreboard.

add: coachmode.
	"coachinvite" the player you want to be coach - accepted with "coach", and declined with "coachdecline".
	Can be revoked by team members via "coachrevoke", or by the coach via "cancelcoach". Coaches can only spec the team they're the coach of, but may take part in teamchat (including voicechat).

add: _button1 / Voice To Followed (coach) in the controls menu : send voicechat to the person you are currently viewing when you're a coach

add: "unpause" / "timein" commands as alternatives to hitting "pause" and "timeout" a second time.

add: Announcer counts in at end of pause/timeout. During this period it is possible for a player to re-pause/timeout, in case the unpause/timein was accidental.

add: Display of amount of time remaining during a timeout.

add: "cancelref" command to return to an ordinary player having previously been a referee.

add: Chat token #p - last picked-up item

add: cg_usehitscantint replacing si_allowhitscantint - made client side.
	0 - no tinting allowed
	1 - player hitscan tinting allowed in DM, NO hitscan tinting in team games
	2 - player hitscan tinting allowed in DM, use strogg-marine colors in team games
	3 - player hitscan tinting allowed in DM, use teamcolor-enemycolor in team games
	4 - enemies use cg_enemyHitscanTint and teammates use cg_teamHitscanTint
	5 - same as 4, except the local player uses ui_hitscantint

add: ui_showgun 2 - in-view gun model doesn't bob/sway.
	Also accessible via Settings - Game Options - Draw Gun Model.

add: Menus updated to include further options, and remove redundant SP options.

add: Two layer crosshairs. The second layer is controlled via g_customcrosshair2, g_crosshairsize2, g_crosshaircolor2

add: g_crosshairblink can disable blinking the crosshair red when hits are registered.

chg: g_crosshairsize no longer limited to specific values. Range 4 - 100.

chg: g_crosshairCustom number now indicates the file, rather than indicating the file cvar should be checked.
	g_crosshairCustomFile is now redundant.

chg: Some stock crosshairs made symmetric. This is required for all the crosshairs to line up properly with each other in two-layer configurations.

chg: Chat token #i now reports all items (ammo, all health and armor sizes).

chg: Renamed pm_speed, pm_walkspeed and pm_crouchspeed to g_* to resolve user issues with pm_ set to singleplayer values.

chg: r_vertexLight can now be enabled on listen servers.

chg: Show the team scores as well as team counts in CTFS / CA.

chg: g_clientProjectileCollision defaults to 0. This corrects issues with rockets apparently colliding twice.

chg: Referees are now highlighted by a yellow R in the scoreboard.

chg: net_serverDlTable set to blank (the q4 default) is assumed to be the same as *

chg: Cvar defaults for autodownload are set to automatically download from the q4files repository at http://files.quake4world.com - if your server runs maps not on this server, it is recommended that you upload the maps to this site.

chg: Reverted spawn logic to that used in q4max 0.72 and earlier.

chg: When a game ends at timelimit, output the name of the winner / winning team, rather than just "Timelimit hit".

chg: Exception handler now marks the error report more clearly, and includes the base address in the single line error report. If you get an ACCESS_VIOLATION or any similar error, then please condump and supply as much information as possible - the details from the error log are marked with "8<- - - -" markers before and after.

chg: Eliminated a couple of repeated warnings (eg precaching head model .cm's), and reduced some others to developer 1.

fix: Avoid shutting down the server if a map uses Sky Portal Cameras (eg Monsoon), when used in Tourney with 4 or more players.

fix: server hang on cycling spectators if you're following a player who disconnects, and there is nobody else you can spectate.

fix: Updated sample mapcycle.config supplied. If si_mapcycle is used to cycle maps / gametypes and the server runs CTFS, CA, or Duel you must use a q4max aware mapcycle. You also most use this if you wish to use gametype cycling, otherwise the server may suffer from shutdowns with no error.

fix: Two partial solutions to autodownload stripping the first char (engine bug). Set fs_*path without trail slashes, especially fs_basepath. If this is not the case, a warning will be shown. Also, if the missing char is detected, the download will complete, however the client will save the file to the incorrect place. 

fix: idEntity::AddDamageEffect protected against potential ACCESS_VIOLATION errors.



Notes for version 0.73 (27 Mar 06)

add: Compatibility with q4 1.1, including all additional functionality from this release.

add: startfreeze callvote/mode option which freezes player movement during countdown for CA/CTFS

add: startrespawn callvote/mode option which forces players to respawn after countdown for CA/CTFS

add: countdown callvote/mode option which changes si_countdown

add: cg_ambientEffects 0/1 allows players to disable world effects

add: cg_deadBody 0/1 allows players to disable showing of dead player bodies before they respawn

add: XSL Templates which display match stats in a "pretty" format.

add: fs_xslTemplate cvar specifies the XSL template referenced in XML stats

add: 1.1 cvars pm_zoomedslow and g_simpleitems added to the competition menu

add: "follow" command. can supply either a playerId, or a powerup ("quad", "regen", "haste", "invis", "marineflag" or "stroggflag"), and you will spec this player.

add: enemyspec callvote/mode option which enables/disables the ability to spec enemies when you're dead in CTFS / CA.

add: "timeout" command which is not restricted to refs. Limited number of timeouts (sv_maxTimeouts), and limited duration (sv_timeoutMaxLength).

add: When server uses si_allowhitscantint 3, the railtrails are tinted using cg_enemycolor / cg_teamcolor and not the default strogg / default marine colours.

chg: q4maxXML renamed to MAXStats, and now can display data on both clients and servers, and provides detailed match breakdowns in addition to summary data on servers. See separate documentation.

chg: Numerous icons made nomip

chg: Made spectator text less obtrusive

chg: g_simpleitems 1 now disables the "hologram" effect of item spawn markers

chg: g_muzzleflash now also removes the actual firing flare

chg: removed ui_model_backup, ui_model_strogg and ui_model_marine cvars

chg: Spectator text tweaked to improve visuals during video broadcasts

fix: (netcode) Reduced the amount of serverinfo data transmitted, thus reducing "SendReliableMessage overflow without allow overflow set" errors.

fix: Spectators should now be able to rejoin the game in FFA

fix: Duel no longer allows 3 players in the game if a player joins once the game has started

fix: Player names/clantags with < > & ' or " are now correctly escaped in XML output

fix: Tourney mode now correctly creates multiple arenas again

fix: Tourney mode now respects the overtime callvote correctly again

fix: Tourney mode now populates scoreboard/hud correctly at start of the tourney.

fix: force model will force the heads of models in all cases correctly now.


Notes for version 0.72 (19 Feb 06)

add: mode CTFS - CaptureStrike

add: health and armor votes for CA/CTFS
	(no vote_allow control on these: they're too trivial)

add: pause (referees only)

add: PM skins. tweak r_gamma/r_brightness/r_lightscale if they're not bright enough

add: "weapon" as an alias for _impulse 0-9 for binds

chg: menu now has zoom toggle, GL smoke, RL smoke, draw gibs, draw blood, weapon fov effect, and team model.

chg: #l now uses the same location desc as team overlay.

chg: #l works in CA.

chg: CA does not allow firing at the end of round to prevent grenade exploit.

chg: mode TOURNEY for Raven's tournament mode

chg: mode DM (also named duel) means real 1v1 play, not Raven's tournament

chg: CA spawns default to 100H/150A

chg: railguns no longer dropped on player death in IG

chg: RG has infinite ammo in IG

chg: no throwing weapons in IG/CA

chg: g_feedScorebot defaults to 1

chg: CTF defaults to no team damage

chg: removed si_entityFilter

chg: Windows only: Error handling
	Access Violations and other crashes now drop to the console and log the error rather than displaying the Windows error dialog.
	Please submit the error displayed on the console if this happens (multiple lines).

chg: Crosshair name fade-in time speeded up

chg: Crosshair name displays for spectators

chg: the #i token requires you are looking at the item more than before - gives more accurate information.

cgh: cg_logXMLStats and sv_logXMLStats (0|1 - cg defaults 1, sv defaults 0). Logs game statistics to a stats subdirectory in an XML format. 

fix: team damage setting was ignored in IG

fix: si_modes misbehaved at times

fix: dead players using #w did nasty things

fix: scorebot feeder got sulky when time went backwards (map changes)

fix: CA displays stats at end of game.

fix: CA no longer decays health > 100 during countdown.

fix: crash in some cases when railing with no team damage (eg CA).

fix: autoaction screenshots given .jpg extension

fix: CA player scores are reset at the beginning of each round

fix: g_gunx/y/z no longer affects models other than the local clients (unless following as a spec)

fix: cg_blood filters out even more blood effects.

fix: (RB) trigger_hurt works correctly in MP


Notes for version 0.71 (22 Dec 05)

add: callvote instagib, vote_allow_instagib
	use seta si_modes "IFFA ICTF ITDM" and seta si_mode IFFA
	to create an instagib-only server

add: cg_blood  (0|1, default 1)
	show bloodstains, spurts, etc on players

add: cg_gibs (0|1, default 1)
	explode corpses into itty bitty pieces

add: cg_smoke_RL, cg_smoke_GL (0|1, default 1)
	controls smoke trail effects

add: players spawn with all weapons (except DMG) and 100A in warmup

add: team overlay (health, armor, weapon, location of your teammates)

add: automatic referee privileges
	create a file called "reflist.txt" in your Q4MAX directory
	and put the GUIDs of your admins/clanmates/etc in it

add: cg_weaponFovEffect (0|1, default 0)
	controls weapon model being "pulled back" at higher fovs (like Q3)

add: Clan Arena mode (standard mode "CA")

add: "callvote mode map" to do both at once, but use the UI: it's much easier

chg: removed g_gun_roll, g_gun_yaw, g_gun_pitch
	they didn't actually do anything  :)

chg: g_fov upper limit raised to 120
	there's certainly a point at which a high FOV changes from a
	competitive setting to an exploit, but 120 is within the safe zone

chg: unlocked r_lightScale

chg: normalised the MG firing sound


Notes for version 0.70 (12 Dec 05 - the CPL Winter Release)

add: more OSP commands
	players
	lockteams
	unlockteams
	remove <player>
	marine <player>
	strogg <player>

add: cg_noChatBeep (0|1, default 0)

add: CPMA chat tokens
	#a armor
	#h health
	#i nearest significant item
	#l nearest significant item spawnpoint
	#w current weapon and ammo
	use ## if you actually want a # to show up in chat

add: r_vertexLight (0|1, default 0)
	use a (much much) faster codepath for world lighting
	r_skipBump 0 can have nasty side-effects with this
	since bumpmapping REQUIRES localised worldlights

add: ui_autoAction (default "", options "demo" "ss")
	automatically record demos, and/or take screenshot at match end
	if you want both use "demo ss"

add: si_autoAction (default "", options "demo" "ss")
	force players to record demos etc - very handy for leagues/events

chg: chat appears as "player: green text"

chg: teamchat appears as "(player): cyan text"

fix: (RB) pain sounds were really unreliable


Notes for version 0.60 (2 Dec 05)

add: OSP-style votes and vote controls (vote_allow_x)
	the vote_allow_x controls obsolete g_voteFlags
	armordecay
	armorsystem
	autobalance (team games only)
	caplimit (flag games only)
	droppowerups
	dropweapons (team games only)
	falldamage
	footsteps
	fraglimit (nonflag games only)
	kick
	map
	mode (mode does NOT have a vote_allow var: see si_modes)
	mutespecs
	nextmap
	overtime (0: sudden death, 1: 2-minute periods)
	poweruprespawn
	referee
	restart
	selfdamage
	teamdamage
	timelimit
	warmup
	weaponrespawn

add: vote_limit (default 3)
	maximum number of votes a player can call per game, 0 = no limit

add: OSP commands
	abort (referee only)
	allready (referee only)
	referee

add: cg_forceModels (default 1)
	forces player models to cg_enemyModel/cg_teamModel

add: cg_enemyModel (default "")
	forced enemy player model, blank uses default model

add: cg_teamModel (default "")
	forced team player model, blank uses default model

add: cg_forceColors (default 1)
	forces player colors to cg_enemyColor/cg_teamColor

add: cg_enemyColor ("R G B", default "")
	forced enemy player color, blank disables coloring of enemies

add: cg_teamColor ("R G B", default "")
	forced team player color, blank disables coloring of teammates

add: hud_style (default "cpmhud1")

add: ref_password (default "")
	if set, allows players to gain limited admin privileges via the "referee" command
	note that the password is case-sensitive

add: si_mode (default "FFA")
	loads a gametype and its associated rules (timelimit etc)
	this supercedes the g_gametype cvar, and MUST be used instead
	there are 5 "standard" modes: FFA, DM, TDM, CTF, ACTF
	see docs/modes.txt for information on creating custom modes

add: si_modes (default "")
	restricts the modes the server allows, blank means no restrictions
	e.g. si_modes "TDM CTF ACTF" means the server can only be used for team games

add: dropWeapon command (teamgames only)
	drops your current weapon for a teammate

add: g_feedScorebot (default 0)
	provide match information to external tools (Score_Time, Score_Marine, etc)
	you must never feed a scorebot after midnight

add: ready/notready status shown on scoreboard

chg: minimum respawn time is 2 seconds

chg: maximum respawn time is 4 seconds

chg: com_allowConsole defaults to 1

chg: players can warm up in inactive tourney arenas

chg: the UI calls FFA "FFA" rather than "DM"
	since they're not the same thing, and some of us actually know that

chg: g_voteFlags has been removed (vote_allow_x supercedes it)

chg: si_weaponStay has been removed
	"weaponRespawn 0" in a mode config replaces it

chg: si_teamDamage has been removed
	"teamDamage x" in a mode config replaces it

chg: the "centerview" command has been removed

fix: (RB) g_fov is a config cvar

fix: (RB) spawn selection code was horribly broken in DM

fix: (RB) SG and HB switch time was broken

fix: (RB) the various bob/roll cvars work correctly in MP

fix: (RB) r_displayRefresh works correctly in MP

fix: (RB) r_skipSpecular works correctly in MP
