quake2forge/docs/changes.txt

380 lines
21 KiB
Plaintext

12-22-2001, for source release under GPL licensing:
- Tweaked linux/Makefile for easier build
added linux/README-3.21-RELEASE
Changes for 3.21
----------------
- Support for GL_ARB_multitexture added. This supports the new multitexture
extensions and deprecates GL_SGIS_multitexture.
- Linux OpenGL X11 handling completely rewritten. Support for XF86DGA Mouse
and fullscreen resolution support added. Please see the README file for
Linux about the new features of this handling.
Changes for 3.20
----------------
- Fixed a network problem where and oversize packet could cause a client
crash.
- Fixed the long standing Quake2 bug of where you would occasionally spawn
or teleport and find yourself either looking straight at the ceiling or
down at the floor.
- Changed it so that the function keys (F1 through F12) now get executed when
depressed during demo playback or attract modes. This allows you to take
screen shots (F12) during demos and other features. An example of other
features is a fast forward for demos:
alias +ff "timedemo 1"
alias -ff "timedemo 0"
bind f7 +ff
This binding will cause the current demo playing to zip into timedemo mode
while F7 is depressed, effectively acting like a fast forward key.
- Wrong packaging of 3.19 patch. The Rogue CD has a 45k pak2 and vwep .md2
files in baseq2/players, but the 3.19 x86 patch we released has a 2.7MB
pak2. 3.20 has a 45k pak2 and the vwep models go in baseq2/players.
- VWep code has been added to Xatrix dll, new VWep models for the Xatrix
specific weapons (Ion Ripper and Phalanx) have been included.
- Rogue Linux game library was wrong version and had some unlinked symbols,
this has been corrected.
- Occasional error of: "D_SCAlloc: bad cache width 16384" in software renderer.
This had to do with surfaces to SURF_FLOWING and were transparent. This
has been fixed in the refs now so flowing transparent textures now works.
- [Unix] Net_ErrorToString calls were wrong, was using %i and not %s resulting
in random numbers being printed for error messages.
- Color shell mixing restored to the same blends as previous versions. This
was changed in 3.19 for the new color shells the Rogue mission pack
introduced.
- Fixed a possible server crash in the new "playerlist" command.
- Fixed a case where a person joining a server could be invisible (left over
setting of SVF_NOCLIENT from previous spectator).
- Invalid pak files no longer cause a crash and are just ignored
- Fixed a 3.19 bug where linked models (modelindex2) who's modelindex was
greater than 0x7f causes the wrong model to be drawn (in some cases, the
world would be drawn twice). This was the cause of many of the "extreme"
frame lag people were seeing in 3.19 on servers using old-style VWep code.
- Linux: Complete rewrite of the OpenGL library handling. This was needed
to cleanly integrate OpenGL extension checking. Linux now supports
extensions such as multitexture and better dynamic loading of libraries.
It's cleaner now in that you don't have to preload hack stuff to use the
3DFX Miniport rather than libMesa3D. The Linux version now uses the
gl_driver to specify the 3D library to dynamically load. For example, to
use the lib3dfxgl.so miniport, one would now use:
./quake2 +set vid_ref gl +set gl_driver lib3dfxgl.so
This change fixes several bugs that were apparant in the older method, such
as a segfault occasionally when connecting to a server with a different game
directory.
The vid menu in the Linux version has been changed to reflect the new
options, the current list of supported video drivers are now: software,
software X11, Mesa 3-D 3DFX, 3DFXGL Miniport, OpenGL glX, and Mesa 3-D glX,
- Railgun shots now go through gibs as well as other players.
- New server variable, "needpass" that can been seen with server browser
tools such as GameSpy. This variable indicates whether a password or
spectator password is needed to get onto a server. Bit 0 is password and
bit 1 is spectator password.
- Quake2 will no longer look for gamex86.dll in the main Quake2 directory.
It will always load out of the game directory first.
- Players joining a server during an intermission are now moved to the
intermission position.
- The "logfile" cvar has been extended with the following values:
0 - don't log (default)
1 - overwrite qconsole.log and use buffered writes
2 - overwrite qconsole.log and flush write every line
3 - append to existing qconsole.log and flush write every line
- Several minor bug fixes to the Rogue mission pack gamex86.dll
- Linux: Rebuild of Rogue mission pack shared library to correct some
dynamic symbol errors (is NAN errors).
Changes for 3.19
----------------
- Updated VWEP models
- Fixed sound config strings getting out of sync on loadgame. This caused
the wrong sound to be played.
- Fixed a bug in ref_soft that caused the menu system's bottom of screen
help text not to be displayed
- Added a missing Rogue DM option
- "Water surfing" that was present in 3.17 has been fixed (holding jump while
on the surface of water let you swim at full speed).
- Environment maps (env) are now autodownloaded (if allow_download_maps is set).
- Spectator support added. A new cvar is built into the client, "spectator"
Setting it to value other than "0" will allow you join a game as a spectator.
While in spectator mode, you can press the attack button to enter a chasecam
mode and follow other players. Using the inventory keys (by default the
left and right square brackets) you can switch between players in the game
while using the chasecam.
You may enter and leave spectator mode while connected. Doing so resets
your score to zero.
***The new spectator support requires a new game.dll and may not work for
user mods until they update their code. The default game.dll that comes
with 3.19 supports chasecam as well as the new included Xatrix game.dll.
- Fixed it so that when a model defaults to male/grunt (don't have the
necessary model or skin for the player), VWep support is still enabled.
- New console command for players, "playerlist". This will cause the server
to give you a text list of the players on the server, including their
connect time, score, ping and spectator status. This is handy if not
everyone fits on the scoreboard on busy servers.
- New cvar for the game.dll: spectator_password. If set to a value (other
than "none"), users must set their spectator variable to this value in order
to join the server as a spectator. This password is independant of the
normal user password.
- New cvar for the game.dll: maxspectators (defaults to 4). This value is
not seperate from maxclients (a spectator is still a client).
- New cvar for the game.dll: sv_maplist. This can be set to a list of map
names that the server should autorotate through, rather than using the
nextmap set in the actual map files themselves.
For example: set sv_maplist "base1 q2dm1 q2dm3 fact3" will cause the server
to rotate through those maps.
***This requires a game.dll update and will not work with user mods until
they update their code.
- A new facility has been added to ClientConnect() in the game.dll to allow
the game.dll to pass a message back to the user for the reason of disallowing
a connection. It is done by setting a key of "rejmsg" in the passed userinfo.
For example:
Info_SetValueforKey(userinfo, "rejmsg", "Password required or incorrect.");
- The server cvar, password, may be set to "none" to clear the password. This
is needed because rcon can not set a blank password.
- New server cvar: sv_airaccelerate. This controls the optional air
acceleration facility. The default value is 0, which disables air control.
The usual value to replicate the air control seen in the original Quake and
later versions of Quakeworld is 10. 10 allows for much more
air control (as was seen in 3.15). This value is ignored in single player
and coop.
- Fixed NoSuchFrame/BAD_MODELTYPE errors when doing a vid_restart while
connected.
- NoSuchFrame errors now include model name to assist in debugging user mods.
- Fixed the remote status query response (ServerInfo) to not include error
messages and be more consistent.
Changes for 3.18
----------------
- "Water surfing" that was present in 3.17 has been fixed (holding jump while
on the surface of water let you swim at full speed).
- Environment maps (env) are now autodownloaded (if allow_download_maps is set).
- Spectator support added. A new cvar is built into the client, "spectator"
Setting it to value other than "0" will allow you join a game as a spectator.
While in spectator mode, you can press the attack button to enter a chasecam
mode and follow other players. Using the inventory keys (by default the
left and right square brackets) you can switch between players in the game
while using the chasecam.
You may enter and leave spectator mode while connected. Doing so resets
your score to zero.
***The new spectator support requires a new game.dll and may not work for
user mods until they update their code. The default game.dll that comes
with 3.18 supports chasecam as well as the new included Xatrix game.dll.
- Fixed it so that when a model defaults to male/grunt (don't have the
necessary model or skin for the player), VWep support is still enabled.
- New console command for players, "playerlist". This will cause the server
to give you a text list of the players on the server, including their
connect time, score, ping and spectator status. This is handy if not
everyone fits on the scoreboard on busy servers.
- New cvar for the game.dll: spectator_password. If set to a value (other
than "none"), users must set their spectator variable to this value in order
to join the server as a spectator. This password is independant of the
normal user password.
- New cvar for the game.dll: maxspectators (defaults to 4). This value is
not seperate from maxclients (a spectator is still a client).
- New cvar for the game.dll: sv_maplist. This can be set to a list of map
names that the server should autorotate through, rather than using the
nextmap set in the actual map files themselves.
For example: set sv_maplist "base1 q2dm1 q2dm3 fact3" will cause the server
to rotate through those maps.
***This requires a game.dll update and will not work with user mods until
they update their code.
- A new facility has been added to ClientConnect() in the game.dll to allow
the game.dll to pass a message back to the user for the reason of disallowing
a connection. It is done by setting a key of "rejmsg" in the passed userinfo.
For example:
Info_SetValueforKey(userinfo, "rejmsg", "Password required or incorrect.");
- The server cvar, password, may be set to "none" to clear the password. This
is needed because rcon can not set a blank password.
- New server cvar: sv_airaccelerate. This controls the optional air
acceleration facility. The default value is 0, which disables air control.
The usual value to replicate the air control seen in the original Quake and
later versions of Quakeworld is 10. 10 allows for much more
air control (as was seen in 3.15). This value is ignored in single player
and coop.
- Fixed NoSuchFrame/BAD_MODELTYPE errors when doing a vid_restart while
connected.
- NoSuchFrame errors now include model name to assist in debugging user mods.
- Fixed the remote status query response (ServerInfo) to not include error
messages and be more consistent.
Changes for 3.17
----------------
- Fixed possible NAN resulting from handing zero to second arg of atan2
- Autodownloading is now DISABLED by DEFAULT. It must be enabled by typing
'allow_download 1' at the console, or using the download options menu
in Multiplayer/PlayerSetup/Download Options
- Server demos now include a svc_serverdata block at the beginning with the
attractloop byte set to '2' to indicate server demo (byte before gamedir
in the svc_serverdata block). This allows easy identification of
serverrecorded demos (serverrecord demos are only for demo editors, they
can not be played back in Quake2 without being first edited).
- New options for setting texture formats in ref_gl:
gl_texturealphamode: default, GL_RGBA, GL_RGBA8, GL_RGB5_A1, GL_RGBA4,
GL_RGBA2
gl_texturesolidmode: default, GL_RGB, GL_RGB8, GL_RGB5, GL_RGB4,
GL_R3_G3_B2, GL_RGB2 (SGI only)
- Player movement during Air acceleration changed to reflect more real-world
physics while airborne.
- Fixed a bug when riding trains that caused drift in a southwest direction
(Thanks to Jim Dose at Ritual for pointing this one out).
- Linux: Now correctly reports out of memory rather than segfaulting (mmap
returns (void *)-1 and not NULL on error).
- Fixed autodownloading to not create paths for files that can't be downloaded
(this was creating many empty directories in baseq2/players).
- When downloading a file from a server that doesn't have it, the message is
now "Server does not have this file" rather than "File not found."
- Fixed some coop keys in 3.15 weren't being handled correctly (pyramid key).
- Highbits are now stripped from console when using condump
- Restored support for gl_modulate in multiplayer play
- Fixed it so that players with a model/skin you don't have aren't checked for
on disk more than once.
- Fixed it so sounds played for PPMs that default to male are only checked
on disk once.
- Byte ordering/portability fixes in cinematics, PCX and other file handling.
- Client state during static image cinematic (PCX image) so that client can
continue to next unit.
- Fixed it so that dedicated coop servers no longer get stuck at victory.pcx,
if a server is in coop mode, hitting a button at the victory.pcx screen
while cause the server to restart at base1
- Fixed infinite grenade bug
- Fixed autodownloading to actually download sounds and console pics
- Fixed autodownload to not create empty directories for files not on
the server.
- Added customized client downloading. cvars are the same as the server side:
allow_download - global download on/off
allow_download_players - players download on/off
allow_download_models - models download on/off
allow_download_sounds - sounds download on/off
allow_download_maps - maps download on/off
They can also be (more easily) set with a new Download Options menu
accessible in Multiplayer/Player Setup/Download Options
- Changed checksumming code to be more portable and faster.
The checksum in 3.15 was seriously broken.
This change makes 3.17 incompatible with previous servers.
- Fixed player 'warping' present in 3.15 (this was an artifact of the
hyperblaster optimizations).
- Fixed the autodownload in 3.15 so that stuff like skins for models are
downloaded as well as pics.
Changes for 3.16
----------------
- Fixed infinite grenade bug
- Fixed autodownloading to actually download sounds and console pics
- Fixed autodownload to not create empty directories for files not on
the server.
- Added customized client downloading. cvars are the same as the server side:
allow_download - global download on/off
allow_download_players - players download on/off
allow_download_models - models download on/off
allow_download_sounds - sounds download on/off
allow_download_maps - maps download on/off
They can also be (more easily) set with a new Download Options menu
accessible in Multiplayer/Player Setup/Download Options
- Changed checksumming code to be more portable and faster.
The checksum in 3.15 was seriously broken.
This change makes 3.16 incompatible with previous servers.
- Fixed it so sounds played for PPMs that default to male are only checked
on disk once.
- Fixed player 'warping' present in 3.15 (this was an artifact of the
hyperblaster optimizations).
- Fixed the autodownload in 3.15 so that stuff like skins for models are
downloaded as well as pics.
Changes for 3.15
----------------
- Added visible weapons support. This is precached with a special symbol, i.e.
gi.modelindex("#w_shotgun.md2") which causes the client to autobind it to
the players current weapon model. Plug in player models can optionally
support the visible weapons. Any that do not support it will use their
default weapon.md2 files automatically.
Visible weapons files for plug in player models are not downloaded
automatically--only the default weapon.md2 (and skin) is.
The Visible weapon models themselves are not included. They can be
downloaded from http://www.telefragged.com/vwep/
- New cvar cl_vwep controls whether visible weapons is enabled on the client.
If you turn it off, the visible weapons models are not loaded. This can
offer a speed up on slow or memory starved machines.
- Rewrote the some of the net code to use optimized network packets for
projectiles. This is transparent to the game code, but improves netplay
substancially. The hyperblaster doesn't flood modem players anymore.
- Rewrote the packet checksum code to be more portable and defeat proxy bots
yet again.
- Autodownload support is in. The following items will be automatcally
downloaded as needed:
- world map (and textures)
- models
- sounds (precached ones)
- plug in player model, skin, skin_i and weapon.md2
downloads go to a temp file (maps/blah.tmp for example) and get renamed
when done. autoresume is supported (if you lose connect during the
download, just reconnect and resume). Server has fine control over
the downloads with the following new cvars:
allow_download - global download on/off
allow_download_players - players download on/off
allow_download_models - models download on/off
allow_download_sounds - sounds download on/off
allow_download_maps - maps download on/off
maps that are in pak files will _not_ autodownload from the server, this
is for copyright considerations.
The QuakeWorld bug of the server map changing while download a map has
been fixed.
- New option in the Multiplayer/Player Setup menu for setting your connection
speed. This sets a default rate for the player and can improve net
performance for modem connections.
- Rewrote some of the save game code to make it more portable. I wanted to
completely rewrite the entire save game system and make it portable across
versions and operating systems, but this would require an enormous amount
of work.
- Added another 512 configure strings for general usage for mod makers.
This gives lots of room for general string displays on the HUD and in other
data.
- Player movement code re-written to be similiar to that of NetQuake and
later versions of QuakeWorld. Player has more control in the air and
gets a boost in vertical speed when jumping off the top of ramps.
- Fixed up serverrecord so that it works correctly with the later versions.
serverrecord lets the server do a recording of the current game that
demo editors can use to make demos from any PVS in the level. Server
recorded demos are BIG. Will look at using delta compression in them
to cut down the size.
- Copy protection CD check has been removed.
- Quake2 3.15 has changed the protocol (so old servers will not run) but
all existing game dlls can run on the new version (albiet without the
new features such as visible weapons).
- Added flood protection. Controlled from the following cvars:
flood_msgs - maximum number of messages allowed in the time period
specified by flood_persecond
flood_persecond - time period that a maximum of flood_msgs messages are
permitted
flood_waitdelay - amount of time a client gets muzzled for flooding
(gamex86 DLL specific)
- fixed it so blaster/hyperblaster shots aren't treated as solid when
predicting--you aren't clipped against them now.
(gamex86 DLL specific, the SVF_DEADMONSTER flag is set on projectiles)
- gender support is now in. The userinfo cvar "gender" can be set to
male/female/none (none for neutral messages). This doesn't affect sounds
but does affect death messages in the game. The models male and cyborg
default to gender male, and female and crackhor default to female.
Everything else defaults to none, but you can set it by typing
"gender male" or "gender female" as appropriate.
- IP banning support ala QW. It's built into the game dll as 'sv' console
commands. This list is:
sv addip <ip-mask> - adds an ip to the ban list
sv listip <ip-mask> - removes an ip from the ban list
sv writeip - writes the ban list to <gamedir>/listip.cfg. You can
exec this on a server load to load the list on subsequent server runs.
like so: quake2 +set dedicated 1 +exec listip.cfg
sv removeip <ip-mask> - remove an ip from the list
the ip list is a simple mask system. Adding 192.168 to the list
would block out everyone in the 192.168.*.* net block. You get 1024 bans,
if you need more, recompile the game dll. :)
A new cvar is also supported called 'filterban'. It defaults to one which
means "allow everyone to connect _except_ those matching in the ban list."
If you set it to zero, the meaning reverses like so, "don't allow anyone
to connect unless they are in the list."
(gamex86 DLL specific)