[iortcw] 220/497: All: Realign q_shared.h and q_splineshared.h
Simon McVittie
smcv at debian.org
Fri Sep 8 10:36:55 UTC 2017
This is an automated email from the git hooks/post-receive script.
smcv pushed a commit to annotated tag 1.42d
in repository iortcw.
commit 904565140b9e13dfa0568d72b838dbc613147049
Author: M4N4T4RMS at gmail.com <M4N4T4RMS at gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a>
Date: Wed Sep 17 02:24:01 2014 +0000
All: Realign q_shared.h and q_splineshared.h
---
MP/code/qcommon/q_shared.h | 6 +-
MP/code/splines/q_splineshared.h | 299 ++++++++++++++++++++-------------------
SP/code/qcommon/q_shared.h | 5 +-
SP/code/splines/q_splineshared.h | 39 +++--
4 files changed, 186 insertions(+), 163 deletions(-)
diff --git a/MP/code/qcommon/q_shared.h b/MP/code/qcommon/q_shared.h
index 31b59f7..680a41f 100644
--- a/MP/code/qcommon/q_shared.h
+++ b/MP/code/qcommon/q_shared.h
@@ -39,8 +39,6 @@ If you have questions concerning this license or the applicable additional terms
// 1.1b - TTimo SP linux release (+ MP updates)
// 1.1b5 - Mac update merge in
-#define NEW_ANIMS
-
// DHM - Nerve
//#define PRE_RELEASE_DEMO
@@ -548,7 +546,7 @@ static ID_INLINE float Q_rsqrt( float number ) {
y = __frsqrte( number );
#endif
return y * (1.5f - (x * y * y));
- }
+}
#ifdef __GNUC__
static ID_INLINE float Q_fabs(float x) {
@@ -564,7 +562,7 @@ static ID_INLINE float Q_fabs(float x) {
#else
float Q_fabs( float f );
float Q_rsqrt( float f ); // reciprocal square root
-#endif
+#endif // idppc
#define SQRTFAST( x ) ( (x) * Q_rsqrt( x ) )
diff --git a/MP/code/splines/q_splineshared.h b/MP/code/splines/q_splineshared.h
index 11d823b..4de112c 100644
--- a/MP/code/splines/q_splineshared.h
+++ b/MP/code/splines/q_splineshared.h
@@ -1,25 +1,25 @@
/*
===========================================================================
-Return to Castle Wolfenstein single player GPL Source Code
+Return to Castle Wolfenstein multiplayer GPL Source Code
Copyright (C) 1999-2010 id Software LLC, a ZeniMax Media company.
-This file is part of the Return to Castle Wolfenstein single player GPL Source Code (RTCW SP Source Code).
+This file is part of the Return to Castle Wolfenstein multiplayer GPL Source Code (RTCW MP Source Code).
-RTCW SP Source Code is free software: you can redistribute it and/or modify
+RTCW MP Source Code is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
-RTCW SP Source Code is distributed in the hope that it will be useful,
+RTCW MP Source Code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with RTCW SP Source Code. If not, see <http://www.gnu.org/licenses/>.
+along with RTCW MP Source Code. If not, see <http://www.gnu.org/licenses/>.
-In addition, the RTCW SP Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the RTCW SP Source Code. If not, please request a copy in writing from id Software at the address below.
+In addition, the RTCW MP Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the RTCW MP Source Code. If not, please request a copy in writing from id Software at the address below.
If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
@@ -32,13 +32,15 @@ If you have questions concerning this license or the applicable additional terms
// q_shared.h -- included first by ALL program modules.
// A user mod should never modify this file
-// #define Q3_VERSION "Wolf 1.41"
-// ver 1.0.0 - release
-// ver 1.0.1 - post-release work
-// ver 1.1.0 - patch 1 (12/12/01)
-// ver 1.1b - TTimo SP linux release (+ MP update)
-// ver 1.2.b5 - Mac code merge in
-// ver 1.3 - patch 2 (02/13/02)
+// #define Q3_VERSION "Wolf 1.41b-MP"
+// 1.41b-MP: fix autodl sploit
+// 1.4-MP : (== 1.34)
+// 1.3-MP : final for release
+// 1.1b - TTimo SP linux release (+ MP updates)
+// 1.1b5 - Mac update merge in
+
+// DHM - Nerve
+//#define PRE_RELEASE_DEMO
#ifdef STANDALONE
#define PRODUCT_NAME "iofoo3"
@@ -49,31 +51,41 @@ If you have questions concerning this license or the applicable additional terms
#define HOMEPATH_NAME_WIN "FooBar"
#define HOMEPATH_NAME_MACOSX HOMEPATH_NAME_WIN
#define GAMENAME_FOR_MASTER "foobar" // must NOT contain whitespace
-// #define LEGACY_PROTOCOL // You probably don't need this for your standalone game
-// Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing
- #define HEARTBEAT_FOR_MASTER "DarkPlaces"
+// #define LEGACY_PROTOCOL // You probably don't need this for your standalone game
#else
#define PRODUCT_NAME "iortcw"
+ #define OLD_PRODUCT_NAME "Wolf"
#define BASEGAME "main"
#define CLIENT_WINDOW_TITLE "Return To Castle Wolfenstein"
- #define CLIENT_WINDOW_MIN_TITLE "iowolfsp"
+ #define CLIENT_WINDOW_MIN_TITLE "iowolfmp"
#define HOMEPATH_NAME_UNIX ".iortcw"
#define HOMEPATH_NAME_WIN "RTCW"
#define HOMEPATH_NAME_MACOSX HOMEPATH_NAME_WIN
#define GAMENAME_FOR_MASTER "wolfmp"
#define LEGACY_PROTOCOL
- #define HEARTBEAT_GAME "Wolfenstein-1"
- #define HEARTBEAT_DEAD "WolfFlatline-1"
#endif
+// Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing
+#define HEARTBEAT_FOR_MASTER "DarkPlaces"
+#define FLATLINE_FOR_MASTER "WolfFlatline-1"
+
+// When com_gamename is LEGACY_MASTER_GAMENAME, use wolfenstein master protocol.
+// You shouldn't change this unless you know what you're doing
+#define LEGACY_MASTER_GAMENAME "wolfmp"
+#define LEGACY_HEARTBEAT_FOR_MASTER "Wolfenstein-1"
+
#ifndef PRODUCT_VERSION
- #define PRODUCT_VERSION "1.42"
+ #define PRODUCT_VERSION "1.42b"
+#endif
+
+#ifndef OLD_PRODUCT_VERSION
+ #define OLD_PRODUCT_VERSION "1.41-MP"
#endif
#define Q3_VERSION PRODUCT_NAME " " PRODUCT_VERSION
+#define OLDVERSION OLD_PRODUCT_NAME " " OLD_PRODUCT_VERSION
#define MAX_TEAMNAME 32
-#define NEW_ANIMS
#define MAX_MASTER_SERVERS 5 // number of supported master servers
#define DEMOEXT "dm_" // standard demo extension
@@ -101,7 +113,6 @@ If you have questions concerning this license or the applicable additional terms
#pragma warning(disable : 4702) // unreachable code
#pragma warning(disable : 4711) // selected for automatic inline expansion
#pragma warning(disable : 4220) // varargs matches remaining parameters
-//#pragma intrinsic( memset, memcpy )
#endif
//Ignore __attribute__ on non-gcc platforms
@@ -127,10 +138,6 @@ If you have questions concerning this license or the applicable additional terms
#define Q_EXPORT
#endif
-#if defined( ppc ) || defined( __ppc ) || defined( __ppc__ ) || defined( __POWERPC__ )
-#define idppc 1
-#endif
-
/**********************************************************************
VM Considerations
@@ -165,6 +172,11 @@ typedef int intptr_t;
#include <ctype.h>
#include <limits.h>
+#ifdef VCMODS_REPLACETRIG
+#define sin(f) sinf(f)
+#define cos(f) cosf(f)
+#endif
+
#ifdef _MSC_VER
#include <io.h>
@@ -209,6 +221,13 @@ typedef int sfxHandle_t;
typedef int fileHandle_t;
typedef int clipHandle_t;
+//#define SND_NORMAL 0x000 // (default) Allow sound to be cut off only by the same sound on this channel
+#define SND_OKTOCUT 0x001 // Allow sound to be cut off by any following sounds on this channel
+#define SND_REQUESTCUT 0x002 // Allow sound to be cut off by following sounds on this channel only for sounds who request cutoff
+#define SND_CUTOFF 0x004 // Cut off sounds on this channel that are marked 'SND_REQUESTCUT'
+#define SND_CUTOFF_ALL 0x008 // Cut off all sounds on this channel
+#define SND_NOCUT 0x010 // Don't cut off. Always let finish (overridden by SND_CUTOFF_ALL)
+
#define PAD(base, alignment) (((base)+(alignment)-1) & ~((alignment)-1))
#define PADLEN(base, alignment) (PAD((base), (alignment)) - (base))
@@ -220,22 +239,6 @@ typedef int clipHandle_t;
#define QALIGN(x)
#endif
-#ifndef ID_INLINE
-#ifdef _WIN32
-#define ID_INLINE __inline
-#else
-#define ID_INLINE inline
-#endif
-#endif
-
-//#define SND_NORMAL 0x000 // (default) Allow sound to be cut off only by the same sound on this channel
-#define SND_OKTOCUT 0x001 // Allow sound to be cut off by any following sounds on this channel
-#define SND_REQUESTCUT 0x002 // Allow sound to be cut off by following sounds on this channel only for sounds who request cutoff
-#define SND_CUTOFF 0x004 // Cut off sounds on this channel that are marked 'SND_REQUESTCUT'
-#define SND_CUTOFF_ALL 0x008 // Cut off all sounds on this channel
-#define SND_NOCUT 0x010 // Don't cut off. Always let finish (overridden by SND_CUTOFF_ALL)
-
-
#ifndef NULL
#define NULL ( (void *)0 )
#endif
@@ -250,6 +253,7 @@ typedef int clipHandle_t;
#define ARRAY_LEN(x) (sizeof(x) / sizeof(*(x)))
#define STRARRAY_LEN(x) (ARRAY_LEN(x) - 1)
+// TTimo gcc: was missing, added from Q3 source
#ifndef max
#define max( x, y ) ( ( ( x ) > ( y ) ) ? ( x ) : ( y ) )
#define min( x, y ) ( ( ( x ) < ( y ) ) ? ( x ) : ( y ) )
@@ -278,7 +282,11 @@ typedef int clipHandle_t;
#define BIG_INFO_VALUE 8192
#define MAX_QPATH 64 // max length of a quake game pathname
+#ifdef PATH_MAX
+#define MAX_OSPATH PATH_MAX
+#else
#define MAX_OSPATH 256 // max length of a filesystem pathname
+#endif
#define MAX_NAME_LENGTH 32 // max length of a client name
@@ -317,8 +325,7 @@ typedef enum {
ERR_DROP, // print to console and disconnect from game
ERR_SERVERDISCONNECT, // don't kill server
ERR_DISCONNECT, // client disconnected from the server
- ERR_NEED_CD, // pop up the need-cd dialog
- ERR_ENDGAME // not an error. just clean up properly, exit to the menu, and start up the "endgame" menu //----(SA) added
+ ERR_NEED_CD // pop up the need-cd dialog
} errorParm_t;
@@ -372,12 +379,11 @@ void *Hunk_Alloc( int size, ha_pref preference );
#define Com_Memset memset
#define Com_Memcpy memcpy
-#define CIN_system 0x01
-#define CIN_loop 0x02
-#define CIN_hold 0x04
-#define CIN_silent 0x08
-#define CIN_shader 0x10
-#define CIN_letterBox 0x20
+#define CIN_system 1
+#define CIN_loop 2
+#define CIN_hold 4
+#define CIN_silent 8
+#define CIN_shader 16
/*
@@ -387,6 +393,7 @@ MATHLIB
==============================================================
*/
+
#ifdef __cplusplus // so we can include this in C code
#define SIDE_FRONT 0
#define SIDE_BACK 1
@@ -404,7 +411,10 @@ typedef int fixed4_t;
typedef int fixed8_t;
typedef int fixed16_t;
+#ifndef Q_PI
#define Q_PI 3.14159265358979323846
+#endif
+
#ifndef M_PI
#define M_PI 3.14159265358979323846f // matches value in gcc v2 math.h
#endif
@@ -469,7 +479,8 @@ extern vec4_t colorDkGrey;
#define COLOR_CYAN '5'
#define COLOR_MAGENTA '6'
#define COLOR_WHITE '7'
-#define ColorIndex( c ) ( ( ( c ) - '0' ) & 0x07 )
+#define ColorIndexForNumber(c) ((c) & 0x07)
+#define ColorIndex(c) (ColorIndexForNumber((c) - '0'))
#define S_COLOR_BLACK "^0"
#define S_COLOR_RED "^1"
@@ -494,6 +505,7 @@ extern vec3_t vec3_origin;
extern vec3_t axisDefault[3];
#define nanmask ( 255 << 23 )
+
#define IS_NAN( x ) ( ( ( *(int *)&x ) & nanmask ) == nanmask )
int Q_isnan(float x);
@@ -550,17 +562,8 @@ int Q_isnan(float x);
#endif
*/
-// TTimo
-// handy stuff when tracking isnan problems
-#ifndef NDEBUG
-#define CHECK_NAN( x ) assert( !IS_NAN( x ) )
-#define CHECK_NAN_VEC( v ) assert( !IS_NAN( v[0] ) && !IS_NAN( v[1] ) && !IS_NAN( v[2] ) )
-#else
-#define CHECK_NAN
-#define CHECK_NAN_VEC
-#endif
-
#if idppc
+
static ID_INLINE float Q_rsqrt( float number ) {
float x = 0.5f * number;
float y;
@@ -571,11 +574,12 @@ static ID_INLINE float Q_rsqrt( float number ) {
#endif
return y * (1.5f - (x * y * y));
}
+
#else
float Q_rsqrt( float f ); // reciprocal square root
-#endif
+#endif // idppc
-#define SQRTFAST( x ) ( 1.0f / Q_rsqrt( x ) )
+#define SQRTFAST( x ) ( (x) * Q_rsqrt( x ) )
signed char ClampChar( int i );
signed short ClampShort( int i );
@@ -590,7 +594,6 @@ void ByteToDir( int b, vec3_t dir );
#define VectorSubtract( a,b,c ) ( ( c )[0] = ( a )[0] - ( b )[0],( c )[1] = ( a )[1] - ( b )[1],( c )[2] = ( a )[2] - ( b )[2] )
#define VectorAdd( a,b,c ) ( ( c )[0] = ( a )[0] + ( b )[0],( c )[1] = ( a )[1] + ( b )[1],( c )[2] = ( a )[2] + ( b )[2] )
#define VectorCopy( a,b ) ( ( b )[0] = ( a )[0],( b )[1] = ( a )[1],( b )[2] = ( a )[2] )
-#define VectorCopy4(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2],(b)[3]=(a)[3])
#define VectorScale( v, s, o ) ( ( o )[0] = ( v )[0] * ( s ),( o )[1] = ( v )[1] * ( s ),( o )[2] = ( v )[2] * ( s ) )
#define VectorMA( v, s, b, o ) ( ( o )[0] = ( v )[0] + ( b )[0] * ( s ),( o )[1] = ( v )[1] + ( b )[1] * ( s ),( o )[2] = ( v )[2] + ( b )[2] * ( s ) )
@@ -622,15 +625,14 @@ typedef struct {
#define Vector4Set( v, x, y, z, n ) ( ( v )[0] = ( x ),( v )[1] = ( y ),( v )[2] = ( z ),( v )[3] = ( n ) )
#define Vector4Copy( a,b ) ( ( b )[0] = ( a )[0],( b )[1] = ( a )[1],( b )[2] = ( a )[2],( b )[3] = ( a )[3] )
-
-#define Byte4Copy(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2],(b)[3]=(a)[3])
-
#define Vector4MA( v, s, b, o ) ( ( o )[0] = ( v )[0] + ( b )[0] * ( s ),( o )[1] = ( v )[1] + ( b )[1] * ( s ),( o )[2] = ( v )[2] + ( b )[2] * ( s ),( o )[3] = ( v )[3] + ( b )[3] * ( s ) )
#define Vector4Average( v, b, s, o ) ( ( o )[0] = ( ( v )[0] * ( 1 - ( s ) ) ) + ( ( b )[0] * ( s ) ),( o )[1] = ( ( v )[1] * ( 1 - ( s ) ) ) + ( ( b )[1] * ( s ) ),( o )[2] = ( ( v )[2] * ( 1 - ( s ) ) ) + ( ( b )[2] * ( s ) ),( o )[3] = ( ( v )[3] * ( 1 - ( s ) ) ) + ( ( b )[3] * ( s ) ) )
+#define Byte4Copy(a,b) ((b)[0]=(a)[0],(b)[1]=(a)[1],(b)[2]=(a)[2],(b)[3]=(a)[3])
+
#define SnapVector( v ) {v[0] = ( (int)( v[0] ) ); v[1] = ( (int)( v[1] ) ); v[2] = ( (int)( v[2] ) );}
-// just in case you do't want to use the macros
+// just in case you don't want to use the macros
vec_t _DotProduct( const vec3_t v1, const vec3_t v2 );
void _VectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out );
void _VectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out );
@@ -752,6 +754,7 @@ qboolean BoundsIntersectPoint(const vec3_t mins, const vec3_t maxs,
float AngleMod( float a );
float LerpAngle( float from, float to, float frac );
+void LerpPosition( vec3_t start, vec3_t end, float frac, vec3_t out );
float AngleSubtract( float a1, float a2 );
void AnglesSubtract( vec3_t v1, vec3_t v2, vec3_t v3 );
@@ -766,12 +769,17 @@ void RotateAroundDirection( vec3_t axis[3], float yaw );
void MakeNormalVectors( const vec3_t forward, vec3_t right, vec3_t up );
// perpendicular vector could be replaced by this
-int PlaneTypeForNormal( vec3_t normal );
+// int PlaneTypeForNormal( vec3_t normal );
void MatrixMultiply( float in1[3][3], float in2[3][3], float out[3][3] );
void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up );
void PerpendicularVector( vec3_t dst, const vec3_t src );
+// Ridah
+void GetPerpendicularViewVector( const vec3_t point, const vec3_t p1, const vec3_t p2, vec3_t up );
+void ProjectPointOntoVector( vec3_t point, vec3_t vStart, vec3_t vEnd, vec3_t vProj );
+// done.
+
#ifndef MAX
#define MAX(x,y) ((x)>(y)?(x):(y))
#endif
@@ -780,11 +788,6 @@ void PerpendicularVector( vec3_t dst, const vec3_t src );
#define MIN(x,y) ((x)<(y)?(x):(y))
#endif
-// Ridah
-void GetPerpendicularViewVector( const vec3_t point, const vec3_t p1, const vec3_t p2, vec3_t up );
-void ProjectPointOntoVector( vec3_t point, vec3_t vStart, vec3_t vEnd, vec3_t vProj );
-// done.
-
//=============================================
float Com_Clamp( float min, float max, float value );
@@ -793,6 +796,7 @@ char *COM_SkipPath( char *pathname );
const char *COM_GetExtension( const char *name );
void COM_StripExtension(const char *in, char *out, int destsize);
qboolean COM_CompareExtension(const char *in, const char *ext);
+void COM_StripExtension2( const char *in, char *out, int destsize );
void COM_StripFilename( char *in, char *out );
void COM_DefaultExtension( char *path, int maxSize, const char *extension );
@@ -805,8 +809,8 @@ char *COM_ParseExt( char **data_p, qboolean allowLineBreak );
int COM_Compress( char *data_p );
void COM_ParseError( char *format, ... ) __attribute__ ((format (printf, 1, 2)));
void COM_ParseWarning( char *format, ... ) __attribute__ ((format (printf, 1, 2)));
+//int COM_ParseInfos( char *buf, int max, char infos[][MAX_INFO_STRING] );
-// TTimo
qboolean COM_BitCheck( const int array[], int bitNum );
void COM_BitSet( int array[], int bitNum );
void COM_BitClear( int array[], int bitNum );
@@ -859,6 +863,7 @@ void Com_ScriptError( const char *msg, ... ) __attribute__ ((format (printf, 1,
void Com_ScriptWarning( const char *msg, ... ) __attribute__ ((format (printf, 1, 2)));
void SkipBracedSection( char **program );
+void SkipBracedSection_Depth( char **program, int depth ); // start at given depth if already matching stuff
void SkipRestOfLine( char **data );
float Com_ParseFloat( const char *( *buf_p ) );
@@ -907,9 +912,6 @@ int Q_isupper( int c );
int Q_isalpha( int c );
qboolean Q_isanumber( const char *s );
qboolean Q_isintegral( float f );
-int Q_isnumeric( int c ); //----(SA) added
-int Q_isalphanumeric( int c ); //----(SA) added
-int Q_isforfilename( int c ); //----(SA) added
// portable case insensitive compare
int Q_stricmp( const char *s1, const char *s2 );
@@ -939,6 +941,16 @@ int Q_CountChar(const char *string, char tocount);
int Q_strncasecmp( char *s1, char *s2, int n );
int Q_strcasecmp( char *s1, char *s2 );
// done.
+// TTimo
+// vsnprintf is ISO/IEC 9899:1999
+// abstracting this to make it portable
+//#ifdef WIN32
+//#define Q_vsnprintf _vsnprintf
+//#else
+// TODO: Mac define?
+//#define Q_vsnprintf vsnprintf
+//#endif
+
//=============================================
// 64-bit integers for global rankings interface
@@ -1003,42 +1015,6 @@ void QDECL Com_Printf( const char *msg, ... ) __attribute__ ((format (printf, 1,
#ifdef __cplusplus
}
#endif
-/*
-==============================================================
-
-SAVE
-
- 12 -
- 13 - (SA) added 'episode' tracking to savegame
- 14 - RF added 'skill'
- 15 - (SA) moved time info above the main game reading
- 16 - (SA) added fog
- 17 - (SA) rats, changed fog.
- 18 - TTimo targetdeath fix
- show_bug.cgi?id=434
-
-==============================================================
-*/
-
-#define SAVE_VERSION 18
-#define SAVE_INFOSTRING_LENGTH 256
-
-
-
-/*
-==========================================================
-
- RELOAD STATES
-
-==========================================================
-*/
-
-#define RELOAD_SAVEGAME 0x01
-#define RELOAD_NEXTMAP 0x02
-#define RELOAD_NEXTMAP_WAITING 0x04
-#define RELOAD_FAILED 0x08
-#define RELOAD_ENDGAME 0x10
-
/*
==========================================================
@@ -1073,6 +1049,7 @@ default values.
#define CVAR_SERVER_CREATED 0x0800 // cvar was created by a server the client connected to.
#define CVAR_VM_CREATED 0x1000 // cvar was created exclusively in one of the VMs.
#define CVAR_PROTECTED 0x2000 // prevent modifying this var from VMs or the server
+#define CVAR_WOLFINFO 0x4000 // DHM - NERVE :: Like userinfo, but for wolf multiplayer info
// These flags are only returned by the Cvar_Flags() function
#define CVAR_MODIFIED 0x40000000 // Cvar was modified
#define CVAR_NONEXISTENT 0x80000000 // Cvar doesn't exist.
@@ -1081,15 +1058,15 @@ default values.
typedef struct cvar_s cvar_t;
struct cvar_s {
- char *name;
- char *string;
- char *resetString; // cvar_restart will reset to this value
- char *latchedString; // for CVAR_LATCH vars
- int flags;
+ char *name;
+ char *string;
+ char *resetString; // cvar_restart will reset to this value
+ char *latchedString; // for CVAR_LATCH vars
+ int flags;
qboolean modified; // set each time the cvar is changed
- int modificationCount; // incremented each time the cvar is changed
- float value; // atof( string )
- int integer; // atoi( string )
+ int modificationCount; // incremented each time the cvar is changed
+ float value; // atof( string )
+ int integer; // atoi( string )
qboolean validate;
qboolean integral;
float min;
@@ -1243,10 +1220,10 @@ typedef enum {
//
// per-level limits
//
-#define MAX_CLIENTS 128 // absolute limit
+#define MAX_CLIENTS 64 // JPW NERVE back to q3ta default was 128 // absolute limit
#define MAX_LOCATIONS 64
-#define GENTITYNUM_BITS 10 // don't need to send any more
+#define GENTITYNUM_BITS 10 // JPW NERVE put q3ta default back for testing // don't need to send any more
//#define GENTITYNUM_BITS 11 // don't need to send any more (SA) upped 4/21/2001 adjusted: tr_local.h (802-822), tr_main.c (1501), sv_snapshot (206)
#define MAX_GENTITIES ( 1 << GENTITYNUM_BITS )
@@ -1305,6 +1282,8 @@ typedef struct {
//
typedef enum
{
+ // TTimo gcc: enums don't go <=0 unless you force a value
+ AISTATE_NULL = -1,
AISTATE_RELAXED,
AISTATE_QUERY,
AISTATE_ALERT,
@@ -1323,7 +1302,7 @@ typedef enum
#define MAX_WEAPS_IN_BANK_MP 8
#define MAX_WEAP_BANKS_MP 7
// jpw
-#define MAX_WEAP_ALTS WP_DYNAMITE
+#define MAX_WEAP_ALTS WP_DYNAMITE2
// bit field limits
@@ -1331,7 +1310,6 @@ typedef enum
#define MAX_PERSISTANT 16
#define MAX_POWERUPS 16
#define MAX_WEAPONS 64 // (SA) and yet more!
-#define MAX_HOLDABLE 16
// Ridah, increased this
//#define MAX_PS_EVENTS 2
@@ -1427,7 +1405,7 @@ typedef struct playerState_s {
int powerups[MAX_POWERUPS]; // level.time that the powerup runs out
int ammo[MAX_WEAPONS]; // total amount of ammo
int ammoclip[MAX_WEAPONS]; // ammo in clip
- int holdable[MAX_HOLDABLE];
+ int holdable[16];
int holding; // the current item in holdable[] that is selected (held)
int weapons[MAX_WEAPONS / ( sizeof( int ) * 8 )]; // 64 bits for weapons held
@@ -1481,11 +1459,11 @@ typedef struct playerState_s {
// JPW NERVE -- value for all multiplayer classes with regenerating "class weapons" -- ie LT artillery, medic medpack, engineer build points, etc
int classWeaponTime;
- int jumpTime; // used in SP/MP to prevent jump accel
+ int jumpTime; // used in MP to prevent jump accel
// jpw
- int weapAnimTimer; // don't change low priority animations until this runs out
- int weapAnim; // mask off ANIM_TOGGLEBIT
+ int weapAnimTimer; // don't change low priority animations until this runs out //----(SA) added
+ int weapAnim; // mask off ANIM_TOGGLEBIT //----(SA) added
qboolean releasedFire;
@@ -1498,20 +1476,19 @@ typedef struct playerState_s {
int leanStopDebounceTime;
+//----(SA) added
+
+ // seems like heat and aimspread could be tied together somehow, however, they (appear to) change at different rates and
+ // I can't currently see how to optimize this to one server->client transmission "weapstatus" value.
int weapHeat[MAX_WEAPONS]; // some weapons can overheat. this tracks (server-side) how hot each weapon currently is.
int curWeapHeat; // value for the currently selected weapon (for transmission to client)
- int venomTime;
-
-//----(SA) added
- int accShowBits; // RF (changed from short), these should all be 32 bit
- int accHideBits;
+ int venomTime; //----(SA) added
//----(SA) end
aistateEnum_t aiState;
- float footstepCount;
-
+ int identifyClient; // NERVE - SMF
} playerState_t;
@@ -1548,15 +1525,26 @@ typedef struct playerState_s {
#define WBUTTON_RELOAD 8
#define WBUTTON_LEANLEFT 16
#define WBUTTON_LEANRIGHT 32
+#define WBUTTON_DROP 64 // JPW NERVE
// unused
-#define WBUTTON_EXTRA6 64
#define WBUTTON_EXTRA7 128
//----(SA) end
#define MOVE_RUN 120 // if forwardmove or rightmove are >= MOVE_RUN,
// then BUTTON_WALKING should be set
+#define MP_TEAM_OFFSET 6
+#define MP_CLASS_OFFSET 4
+#define MP_WEAPON_OFFSET 0
+
+#define MP_TEAM_BITS 2
+#define MP_CLASS_BITS 2
+#define MP_WEAPON_BITS 4
+
+#define MP_TEAM_MASK 0xC0
+#define MP_CLASS_MASK 0x30
+#define MP_WEAPON_MASK 0x0F
// usercmd_t is sent to the server each client frame
typedef struct usercmd_s {
@@ -1567,11 +1555,11 @@ typedef struct usercmd_s {
byte holdable; //----(SA) added
int angles[3];
-
signed char forwardmove, rightmove, upmove;
signed char wolfkick; // RF, we should move this over to a wbutton, this is a huge waste of bandwidth
- unsigned short cld; // NERVE - SMF - send client damage in usercmd instead of as a server command
+ char mpSetup; // NERVE - SMF
+ char identClient; // NERVE - SMF
} usercmd_t;
//===================================================================
@@ -1746,10 +1734,10 @@ typedef struct qtime_s {
// server browser sources
-#define AS_LOCAL 0
-#define AS_MPLAYER 1
-#define AS_GLOBAL 2
-#define AS_FAVORITES 3
+#define AS_LOCAL 0
+#define AS_GLOBAL 1 // NERVE - SMF - modified
+#define AS_FAVORITES 2
+#define AS_MPLAYER 3
// cinematic states
@@ -1773,7 +1761,7 @@ typedef enum _flag_status {
-#define MAX_GLOBAL_SERVERS 2048
+#define MAX_GLOBAL_SERVERS 4096
#define MAX_OTHER_SERVERS 128
#define MAX_PINGREQUESTS 32
#define MAX_SERVERSTATUSREQUESTS 16
@@ -1797,4 +1785,25 @@ typedef enum {
MAX_LANGUAGES
} languages_t;
+// NERVE - SMF - wolf server/game states
+typedef enum {
+ GS_INITIALIZE = -1,
+ GS_PLAYING,
+ GS_WARMUP_COUNTDOWN,
+ GS_WARMUP,
+ GS_INTERMISSION,
+ GS_WAITING_FOR_PLAYERS,
+ GS_RESET
+} gamestate_t;
+
+// TTimo - voting config flags
+#define VOTEFLAGS_RESTART ( 1 << 0 )
+#define VOTEFLAGS_RESETMATCH ( 1 << 1 )
+#define VOTEFLAGS_STARTMATCH ( 1 << 2 )
+#define VOTEFLAGS_NEXTMAP ( 1 << 3 )
+#define VOTEFLAGS_SWAP ( 1 << 4 )
+#define VOTEFLAGS_TYPE ( 1 << 5 )
+#define VOTEFLAGS_KICK ( 1 << 6 )
+#define VOTEFLAGS_MAP ( 1 << 7 )
+
#endif // __Q_SHARED_H
diff --git a/SP/code/qcommon/q_shared.h b/SP/code/qcommon/q_shared.h
index 9e664bb..1125c57 100644
--- a/SP/code/qcommon/q_shared.h
+++ b/SP/code/qcommon/q_shared.h
@@ -78,7 +78,6 @@ If you have questions concerning this license or the applicable additional terms
#define Q3_VERSION PRODUCT_NAME " " PRODUCT_VERSION
#define MAX_TEAMNAME 32
-#define NEW_ANIMS
#define MAX_MASTER_SERVERS 5 // number of supported master servers
#define DEMOEXT "dm_" // standard demo extension
@@ -559,7 +558,7 @@ static ID_INLINE float Q_rsqrt( float number ) {
y = __frsqrte( number );
#endif
return y * (1.5f - (x * y * y));
- }
+}
#ifdef __GNUC__
static ID_INLINE float Q_fabs(float x) {
@@ -575,7 +574,7 @@ static ID_INLINE float Q_fabs(float x) {
#else
float Q_fabs( float f );
float Q_rsqrt( float f ); // reciprocal square root
-#endif
+#endif // idppc
#define SQRTFAST( x ) ( 1.0f / Q_rsqrt( x ) )
diff --git a/SP/code/splines/q_splineshared.h b/SP/code/splines/q_splineshared.h
index 11d823b..0d386b2 100644
--- a/SP/code/splines/q_splineshared.h
+++ b/SP/code/splines/q_splineshared.h
@@ -50,8 +50,6 @@ If you have questions concerning this license or the applicable additional terms
#define HOMEPATH_NAME_MACOSX HOMEPATH_NAME_WIN
#define GAMENAME_FOR_MASTER "foobar" // must NOT contain whitespace
// #define LEGACY_PROTOCOL // You probably don't need this for your standalone game
-// Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing
- #define HEARTBEAT_FOR_MASTER "DarkPlaces"
#else
#define PRODUCT_NAME "iortcw"
#define BASEGAME "main"
@@ -60,20 +58,26 @@ If you have questions concerning this license or the applicable additional terms
#define HOMEPATH_NAME_UNIX ".iortcw"
#define HOMEPATH_NAME_WIN "RTCW"
#define HOMEPATH_NAME_MACOSX HOMEPATH_NAME_WIN
- #define GAMENAME_FOR_MASTER "wolfmp"
+ #define GAMENAME_FOR_MASTER "wolfsp"
#define LEGACY_PROTOCOL
- #define HEARTBEAT_GAME "Wolfenstein-1"
- #define HEARTBEAT_DEAD "WolfFlatline-1"
#endif
+// Heartbeat for dpmaster protocol. You shouldn't change this unless you know what you're doing
+#define HEARTBEAT_FOR_MASTER "DarkPlaces"
+#define FLATLINE_FOR_MASTER "WolfFlatline-1"
+
+// When com_gamename is LEGACY_MASTER_GAMENAME, use wolfenstein master protocol.
+// You shouldn't change this unless you know what you're doing
+#define LEGACY_MASTER_GAMENAME "wolfsp"
+#define LEGACY_HEARTBEAT_FOR_MASTER "Wolfenstein-1"
+
#ifndef PRODUCT_VERSION
- #define PRODUCT_VERSION "1.42"
+ #define PRODUCT_VERSION "1.42b"
#endif
#define Q3_VERSION PRODUCT_NAME " " PRODUCT_VERSION
#define MAX_TEAMNAME 32
-#define NEW_ANIMS
#define MAX_MASTER_SERVERS 5 // number of supported master servers
#define DEMOEXT "dm_" // standard demo extension
@@ -165,6 +169,11 @@ typedef int intptr_t;
#include <ctype.h>
#include <limits.h>
+#ifdef VCMODS_REPLACETRIG
+#define sin(f) sinf(f)
+#define cos(f) cosf(f)
+#endif
+
#ifdef _MSC_VER
#include <io.h>
@@ -387,6 +396,7 @@ MATHLIB
==============================================================
*/
+
#ifdef __cplusplus // so we can include this in C code
#define SIDE_FRONT 0
#define SIDE_BACK 1
@@ -404,7 +414,10 @@ typedef int fixed4_t;
typedef int fixed8_t;
typedef int fixed16_t;
+#ifndef Q_PI
#define Q_PI 3.14159265358979323846
+#endif
+
#ifndef M_PI
#define M_PI 3.14159265358979323846f // matches value in gcc v2 math.h
#endif
@@ -469,7 +482,8 @@ extern vec4_t colorDkGrey;
#define COLOR_CYAN '5'
#define COLOR_MAGENTA '6'
#define COLOR_WHITE '7'
-#define ColorIndex( c ) ( ( ( c ) - '0' ) & 0x07 )
+#define ColorIndexForNumber(c) ((c) & 0x07)
+#define ColorIndex(c) (ColorIndexForNumber((c) - '0'))
#define S_COLOR_BLACK "^0"
#define S_COLOR_RED "^1"
@@ -561,6 +575,7 @@ int Q_isnan(float x);
#endif
#if idppc
+
static ID_INLINE float Q_rsqrt( float number ) {
float x = 0.5f * number;
float y;
@@ -571,9 +586,10 @@ static ID_INLINE float Q_rsqrt( float number ) {
#endif
return y * (1.5f - (x * y * y));
}
+
#else
float Q_rsqrt( float f ); // reciprocal square root
-#endif
+#endif // idppc
#define SQRTFAST( x ) ( 1.0f / Q_rsqrt( x ) )
@@ -630,7 +646,7 @@ typedef struct {
#define SnapVector( v ) {v[0] = ( (int)( v[0] ) ); v[1] = ( (int)( v[1] ) ); v[2] = ( (int)( v[2] ) );}
-// just in case you do't want to use the macros
+// just in case you don't want to use the macros
vec_t _DotProduct( const vec3_t v1, const vec3_t v2 );
void _VectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out );
void _VectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out );
@@ -882,7 +898,7 @@ extern "C" {
#endif
int QDECL Com_sprintf (char *dest, int size, const char *fmt, ...) __attribute__ ((format (printf, 3, 4)));
-
+
void Com_RandomBytes( byte *string, int len );
// mode parm for FS_FOpenFile
@@ -1003,6 +1019,7 @@ void QDECL Com_Printf( const char *msg, ... ) __attribute__ ((format (printf, 1,
#ifdef __cplusplus
}
#endif
+
/*
==============================================================
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git
More information about the Pkg-games-commits
mailing list