Skip to content

Commit d527e4e

Browse files
committed
Merge branch 'original'
2 parents 752cf52 + 92b0417 commit d527e4e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+2597
-1468
lines changed

3.19_Changes.txt

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
Changes since v3.17
2+
-------------------
3+
4+
- Updated VWEP models
5+
- Fixed sound config strings getting out of sync on loadgame. This caused
6+
the wrong sound to be played.
7+
- Fixed a bug in ref_soft that caused the menu system's bottom of screen
8+
help text not to be displayed
9+
- Added a missing Rogue DM option
10+
- "Water surfing" that was present in 3.17 has been fixed (holding jump while
11+
on the surface of water let you swim at full speed).
12+
- Environment maps (env) are now autodownloaded (if allow_download_maps is set).
13+
- Spectator support added. A new cvar is built into the client, "spectator"
14+
Setting it to value other than "0" will allow you join a game as a spectator.
15+
While in spectator mode, you can press the attack button to enter a chasecam
16+
mode and follow other players. Using the inventory keys (by default the
17+
left and right square brackets) you can switch between players in the game
18+
while using the chasecam.
19+
You may enter and leave spectator mode while connected. Doing so resets
20+
your score to zero.
21+
***The new spectator support requires a new game.dll and may not work for
22+
user mods until they update their code. The default game.dll that comes
23+
with 3.19 supports chasecam as well as the new included Xatrix game.dll.
24+
- Fixed it so that when a model defaults to male/grunt (don't have the
25+
necessary model or skin for the player), VWep support is still enabled.
26+
- New console command for players, "playerlist". This will cause the server
27+
to give you a text list of the players on the server, including their
28+
connect time, score, ping and spectator status. This is handy if not
29+
everyone fits on the scoreboard on busy servers.
30+
- New cvar for the game.dll: spectator_password. If set to a value (other
31+
than "none"), users must set their spectator variable to this value in order
32+
to join the server as a spectator. This password is independant of the
33+
normal user password.
34+
- New cvar for the game.dll: maxspectators (defaults to 4). This value is
35+
not seperate from maxclients (a spectator is still a client).
36+
- New cvar for the game.dll: sv_maplist. This can be set to a list of map
37+
names that the server should autorotate through, rather than using the
38+
nextmap set in the actual map files themselves.
39+
For example: set sv_maplist "base1 q2dm1 q2dm3 fact3" will cause the server
40+
to rotate through those maps.
41+
***This requires a game.dll update and will not work with user mods until
42+
they update their code.
43+
- A new facility has been added to ClientConnect() in the game.dll to allow
44+
the game.dll to pass a message back to the user for the reason of disallowing
45+
a connection. It is done by setting a key of "rejmsg" in the passed userinfo.
46+
For example:
47+
Info_SetValueforKey(userinfo, "rejmsg", "Password required or incorrect.");
48+
- The server cvar, password, may be set to "none" to clear the password. This
49+
is needed because rcon can not set a blank password.
50+
- New server cvar: sv_airaccelerate. This controls the optional air
51+
acceleration facility. The default value is 0, which disables air control.
52+
The usual value to replicate the air control seen in the original Quake and
53+
later versions of Quakeworld is 10. 10 allows for much more
54+
air control (as was seen in 3.15). This value is ignored in single player
55+
and coop.
56+
- Fixed NoSuchFrame/BAD_MODELTYPE errors when doing a vid_restart while
57+
connected.
58+
- NoSuchFrame errors now include model name to assist in debugging user mods.
59+
- Fixed the remote status query response (ServerInfo) to not include error
60+
messages and be more consistent.

3.20_Changes.txt

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
3.20 Changes:
2+
- Fixed a network problem where and oversize packet could cause a client
3+
crash.
4+
- Fixed the long standing Quake2 bug of where you would occasionally spawn
5+
or teleport and find yourself either looking straight at the ceiling or
6+
down at the floor.
7+
- Changed it so that the function keys (F1 through F12) now get executed when
8+
depressed during demo playback or attract modes. This allows you to take
9+
screen shots (F12) during demos and other features. An example of other
10+
features is a fast forward for demos:
11+
alias +ff "timedemo 1"
12+
alias -ff "timedemo 0"
13+
bind f7 +ff
14+
This binding will cause the current demo playing to zip into timedemo mode
15+
while F7 is depressed, effectively acting like a fast forward key.
16+
- Wrong packaging of 3.19 patch. The Rogue CD has a 45k pak2 and vwep .md2
17+
files in baseq2/players, but the 3.19 x86 patch we released has a 2.7MB
18+
pak2. 3.20 has a 45k pak2 and the vwep models go in baseq2/players.
19+
- VWep code has been added to Xatrix dll, new VWep models for the Xatrix
20+
specific weapons (Ion Ripper and Phalanx) have been included.
21+
- Rogue Linux game library was wrong version and had some unlinked symbols,
22+
this has been corrected.
23+
- Occasional error of: "D_SCAlloc: bad cache width 16384" in software renderer.
24+
This had to do with surfaces to SURF_FLOWING and were transparent. This
25+
has been fixed in the refs now so flowing transparent textures now works.
26+
- [Unix] Net_ErrorToString calls were wrong, was using %i and not %s resulting
27+
in random numbers being printed for error messages.
28+
- Color shell mixing restored to the same blends as previous versions. This
29+
was changed in 3.19 for the new color shells the Rogue mission pack
30+
introduced.
31+
- Fixed a possible server crash in the new "playerlist" command.
32+
- Fixed a case where a person joining a server could be invisible (left over
33+
setting of SVF_NOCLIENT from previous spectator).
34+
- Invalid pak files no longer cause a crash and are just ignored
35+
- Fixed a 3.19 bug where linked models (modelindex2) who's modelindex was
36+
greater than 0x7f causes the wrong model to be drawn (in some cases, the
37+
world would be drawn twice). This was the cause of many of the "extreme"
38+
frame lag people were seeing in 3.19 on servers using old-style VWep code.
39+
- Linux: Complete rewrite of the OpenGL library handling. This was needed
40+
to cleanly integrate OpenGL extension checking. Linux now supports
41+
extensions such as multitexture and better dynamic loading of libraries.
42+
It's cleaner now in that you don't have to preload hack stuff to use the
43+
3DFX Miniport rather than libMesa3D. The Linux version now uses the
44+
gl_driver to specify the 3D library to dynamically load. For example, to
45+
use the lib3dfxgl.so miniport, one would now use:
46+
./quake2 +set vid_ref gl +set gl_driver lib3dfxgl.so
47+
This change fixes several bugs that were apparant in the older method, such
48+
as a segfault occasionally when connecting to a server with a different game
49+
directory.
50+
The vid menu in the Linux version has been changed to reflect the new
51+
options, the current list of supported video drivers are now: software,
52+
software X11, Mesa 3-D 3DFX, 3DFXGL Miniport, OpenGL glX, and Mesa 3-D glX,
53+
- Railgun shots now go through gibs as well as other players.
54+
- New server variable, "needpass" that can been seen with server browser
55+
tools such as GameSpy. This variable indicates whether a password or
56+
spectator password is needed to get onto a server. Bit 0 is password and
57+
bit 1 is spectator password.
58+
- Quake2 will no longer look for gamex86.dll in the main Quake2 directory.
59+
It will always load out of the game directory first.
60+
- Players joining a server during an intermission are now moved to the
61+
intermission position.
62+
- The "logfile" cvar has been extended with the following values:
63+
0 - don't log (default)
64+
1 - overwrite qconsole.log and use buffered writes
65+
2 - overwrite qconsole.log and flush write every line
66+
3 - append to existing qconsole.log and flush write every line
67+
- Several minor bug fixes to the Rogue mission pack gamex86.dll
68+
- Linux: Rebuild of Rogue mission pack shared library to correct some
69+
dynamic symbol errors (is NAN errors).

3.21_Changes.txt

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
12-22-2001, for source release under GPL licensing:
2+
- Tweaked linux/Makefile for easier build
3+
added linux/README-3.21-RELEASE
4+
5+
3.21 Changes:
6+
- Support for GL_ARB_multitexture added. This supports the new multitexture
7+
extensions and deprecates GL_SGIS_multitexture.
8+
- Linux OpenGL X11 handling completely rewritten. Support for XF86DGA Mouse
9+
and fullscreen resolution support added. Please see the README file for
10+
Linux about the new features of this handling.
11+
12+
3.20 Changes:
13+
- Fixed a network problem where and oversize packet could cause a client
14+
crash.
15+
- Fixed the long standing Quake2 bug of where you would occasionally spawn
16+
or teleport and find yourself either looking straight at the ceiling or
17+
down at the floor.
18+
- Changed it so that the function keys (F1 through F12) now get executed when
19+
depressed during demo playback or attract modes. This allows you to take
20+
screen shots (F12) during demos and other features. An example of other
21+
features is a fast forward for demos:
22+
alias +ff "timedemo 1"
23+
alias -ff "timedemo 0"
24+
bind f7 +ff
25+
This binding will cause the current demo playing to zip into timedemo mode
26+
while F7 is depressed, effectively acting like a fast forward key.
27+
- Wrong packaging of 3.19 patch. The Rogue CD has a 45k pak2 and vwep .md2
28+
files in baseq2/players, but the 3.19 x86 patch we released has a 2.7MB
29+
pak2. 3.20 has a 45k pak2 and the vwep models go in baseq2/players.
30+
- VWep code has been added to Xatrix dll, new VWep models for the Xatrix
31+
specific weapons (Ion Ripper and Phalanx) have been included.
32+
- Rogue Linux game library was wrong version and had some unlinked symbols,
33+
this has been corrected.
34+
- Occasional error of: "D_SCAlloc: bad cache width 16384" in software renderer.
35+
This had to do with surfaces to SURF_FLOWING and were transparent. This
36+
has been fixed in the refs now so flowing transparent textures now works.
37+
- [Unix] Net_ErrorToString calls were wrong, was using %i and not %s resulting
38+
in random numbers being printed for error messages.
39+
- Color shell mixing restored to the same blends as previous versions. This
40+
was changed in 3.19 for the new color shells the Rogue mission pack
41+
introduced.
42+
- Fixed a possible server crash in the new "playerlist" command.
43+
- Fixed a case where a person joining a server could be invisible (left over
44+
setting of SVF_NOCLIENT from previous spectator).
45+
- Invalid pak files no longer cause a crash and are just ignored
46+
- Fixed a 3.19 bug where linked models (modelindex2) who's modelindex was
47+
greater than 0x7f causes the wrong model to be drawn (in some cases, the
48+
world would be drawn twice). This was the cause of many of the "extreme"
49+
frame lag people were seeing in 3.19 on servers using old-style VWep code.
50+
- Linux: Complete rewrite of the OpenGL library handling. This was needed
51+
to cleanly integrate OpenGL extension checking. Linux now supports
52+
extensions such as multitexture and better dynamic loading of libraries.
53+
It's cleaner now in that you don't have to preload hack stuff to use the
54+
3DFX Miniport rather than libMesa3D. The Linux version now uses the
55+
gl_driver to specify the 3D library to dynamically load. For example, to
56+
use the lib3dfxgl.so miniport, one would now use:
57+
./quake2 +set vid_ref gl +set gl_driver lib3dfxgl.so
58+
This change fixes several bugs that were apparant in the older method, such
59+
as a segfault occasionally when connecting to a server with a different game
60+
directory.
61+
The vid menu in the Linux version has been changed to reflect the new
62+
options, the current list of supported video drivers are now: software,
63+
software X11, Mesa 3-D 3DFX, 3DFXGL Miniport, OpenGL glX, and Mesa 3-D glX,
64+
- Railgun shots now go through gibs as well as other players.
65+
- New server variable, "needpass" that can been seen with server browser
66+
tools such as GameSpy. This variable indicates whether a password or
67+
spectator password is needed to get onto a server. Bit 0 is password and
68+
bit 1 is spectator password.
69+
- Quake2 will no longer look for gamex86.dll in the main Quake2 directory.
70+
It will always load out of the game directory first.
71+
- Players joining a server during an intermission are now moved to the
72+
intermission position.
73+
- The "logfile" cvar has been extended with the following values:
74+
0 - don't log (default)
75+
1 - overwrite qconsole.log and use buffered writes
76+
2 - overwrite qconsole.log and flush write every line
77+
3 - append to existing qconsole.log and flush write every line
78+
- Several minor bug fixes to the Rogue mission pack gamex86.dll
79+
- Linux: Rebuild of Rogue mission pack shared library to correct some
80+
dynamic symbol errors (is NAN errors).

client/cl_ents.c

+50-7
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,9 @@ struct model_s *S_RegisterSexedModel (entity_state_t *ent, char *base)
825825
return mdl;
826826
}
827827

828+
// PMM - used in shell code
829+
extern int Developer_searchpath (int who);
830+
// pmm
828831
/*
829832
===============
830833
CL_AddPacketEntities
@@ -1068,9 +1071,48 @@ void CL_AddPacketEntities (frame_t *frame)
10681071
// add to refresh list
10691072
V_AddEntity (&ent);
10701073

1074+
10711075
// color shells generate a seperate entity for the main model
10721076
if (effects & EF_COLOR_SHELL)
10731077
{
1078+
// PMM - at this point, all of the shells have been handled
1079+
// if we're in the rogue pack, set up the custom mixing, otherwise just
1080+
// keep going
1081+
// if(Developer_searchpath(2) == 2)
1082+
// {
1083+
// all of the solo colors are fine. we need to catch any of the combinations that look bad
1084+
// (double & half) and turn them into the appropriate color, and make double/quad something special
1085+
if (renderfx & RF_SHELL_HALF_DAM)
1086+
{
1087+
if(Developer_searchpath(2) == 2)
1088+
{
1089+
// ditch the half damage shell if any of red, blue, or double are on
1090+
if (renderfx & (RF_SHELL_RED|RF_SHELL_BLUE|RF_SHELL_DOUBLE))
1091+
renderfx &= ~RF_SHELL_HALF_DAM;
1092+
}
1093+
}
1094+
1095+
if (renderfx & RF_SHELL_DOUBLE)
1096+
{
1097+
if(Developer_searchpath(2) == 2)
1098+
{
1099+
// lose the yellow shell if we have a red, blue, or green shell
1100+
if (renderfx & (RF_SHELL_RED|RF_SHELL_BLUE|RF_SHELL_GREEN))
1101+
renderfx &= ~RF_SHELL_DOUBLE;
1102+
// if we have a red shell, turn it to purple by adding blue
1103+
if (renderfx & RF_SHELL_RED)
1104+
renderfx |= RF_SHELL_BLUE;
1105+
// if we have a blue shell (and not a red shell), turn it to cyan by adding green
1106+
else if (renderfx & RF_SHELL_BLUE)
1107+
// go to green if it's on already, otherwise do cyan (flash green)
1108+
if (renderfx & RF_SHELL_GREEN)
1109+
renderfx &= ~RF_SHELL_BLUE;
1110+
else
1111+
renderfx |= RF_SHELL_GREEN;
1112+
}
1113+
}
1114+
// }
1115+
// pmm
10741116
ent.flags = renderfx | RF_TRANSLUCENT;
10751117
ent.alpha = 0.30;
10761118
V_AddEntity (&ent);
@@ -1098,17 +1140,18 @@ void CL_AddPacketEntities (frame_t *frame)
10981140
ent.model = cl.baseclientinfo.weaponmodel[0];
10991141
}
11001142
}
1101-
//PGM - hack to allow translucent linked models (defender sphere's shell)
1102-
// set the high bit 0x80 on modelindex2 to enable translucency
1103-
else if(s1->modelindex2 & 0x80)
1143+
else
1144+
ent.model = cl.model_draw[s1->modelindex2];
1145+
1146+
// PMM - check for the defender sphere shell .. make it translucent
1147+
// replaces the previous version which used the high bit on modelindex2 to determine transparency
1148+
if (!Q_strcasecmp (cl.configstrings[CS_MODELS+(s1->modelindex2)], "models/items/shell/tris.md2"))
11041149
{
1105-
ent.model = cl.model_draw[s1->modelindex2 & 0x7F];
11061150
ent.alpha = 0.32;
11071151
ent.flags = RF_TRANSLUCENT;
11081152
}
1109-
//PGM
1110-
else
1111-
ent.model = cl.model_draw[s1->modelindex2];
1153+
// pmm
1154+
11121155
V_AddEntity (&ent);
11131156

11141157
//PGM - make sure these get reset.

client/cl_input.c

+6
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,12 @@ void CL_ClampPitch (void)
316316
pitch = SHORT2ANGLE(cl.frame.playerstate.pmove.delta_angles[PITCH]);
317317
if (pitch > 180)
318318
pitch -= 360;
319+
320+
if (cl.viewangles[PITCH] + pitch < -360)
321+
cl.viewangles[PITCH] += 360; // wrapped
322+
if (cl.viewangles[PITCH] + pitch > 360)
323+
cl.viewangles[PITCH] -= 360; // wrapped
324+
319325
if (cl.viewangles[PITCH] + pitch > 89)
320326
cl.viewangles[PITCH] = 89 - pitch;
321327
if (cl.viewangles[PITCH] + pitch < -89)

client/cl_parse.c

+6-1
Original file line numberDiff line numberDiff line change
@@ -520,11 +520,16 @@ void CL_ParseConfigString (void)
520520
{
521521
int i;
522522
char *s;
523+
char olds[MAX_QPATH];
523524

524525
i = MSG_ReadShort (&net_message);
525526
if (i < 0 || i >= MAX_CONFIGSTRINGS)
526527
Com_Error (ERR_DROP, "configstring > MAX_CONFIGSTRINGS");
527528
s = MSG_ReadString(&net_message);
529+
530+
strncpy (olds, cl.configstrings[i], sizeof(olds));
531+
olds[sizeof(olds) - 1] = 0;
532+
528533
strcpy (cl.configstrings[i], s);
529534

530535
// do something apropriate
@@ -559,7 +564,7 @@ void CL_ParseConfigString (void)
559564
}
560565
else if (i >= CS_PLAYERSKINS && i < CS_PLAYERSKINS+MAX_CLIENTS)
561566
{
562-
if (cl.refresh_prepped)
567+
if (cl.refresh_prepped && strcmp(olds, s))
563568
CL_ParseClientinfo (i-CS_PLAYERSKINS);
564569
}
565570
}

client/cl_tent.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ void CL_RegisterTEntSounds (void)
158158
cl_sfx_lightning = S_RegisterSound ("weapons/tesla.wav");
159159
cl_sfx_disrexp = S_RegisterSound ("weapons/disrupthit.wav");
160160
// version stuff
161-
sprintf (name, "weapons/sound%d.wav", ROGUE_VERSION_ID);
162-
if (name[0] == 'w')
163-
name[0] = 'W';
161+
// sprintf (name, "weapons/sound%d.wav", ROGUE_VERSION_ID);
162+
// if (name[0] == 'w')
163+
// name[0] = 'W';
164164
//PGM
165165
}
166166

client/keys.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,8 @@ void Key_Event (int key, qboolean down, unsigned time)
821821
}
822822

823823
// any key during the attract mode will bring up the menu
824-
if (cl.attractloop && cls.key_dest != key_menu)
824+
if (cl.attractloop && cls.key_dest != key_menu &&
825+
!(key >= K_F1 && key <= K_F12))
825826
key = K_ESCAPE;
826827

827828
// menu key is hardcoded, so the user can never unbind it

client/menu.c

+3-10
Original file line numberDiff line numberDiff line change
@@ -1248,24 +1248,17 @@ static void ControlsResetDefaultsFunc( void *unused )
12481248

12491249
static void InvertMouseFunc( void *unused )
12501250
{
1251-
if ( s_options_invertmouse_box.curvalue == 0 )
1252-
{
1253-
Cvar_SetValue( "m_pitch", fabs( m_pitch->value ) );
1254-
}
1255-
else
1256-
{
1257-
Cvar_SetValue( "m_pitch", -fabs( m_pitch->value ) );
1258-
}
1251+
Cvar_SetValue( "m_pitch", -m_pitch->value );
12591252
}
12601253

12611254
static void LookspringFunc( void *unused )
12621255
{
1263-
Cvar_SetValue( "lookspring", s_options_lookspring_box.curvalue );
1256+
Cvar_SetValue( "lookspring", !lookspring->value );
12641257
}
12651258

12661259
static void LookstrafeFunc( void *unused )
12671260
{
1268-
Cvar_SetValue( "lookstrafe", s_options_lookstrafe_box.curvalue );
1261+
Cvar_SetValue( "lookstrafe", !lookstrafe->value );
12691262
}
12701263

12711264
static void UpdateVolumeFunc( void *unused )

0 commit comments

Comments
 (0)