diff --git a/public/atlas.c b/public/atlas.c index f4c7e856..4173dc63 100644 --- a/public/atlas.c +++ b/public/atlas.c @@ -17,15 +17,13 @@ GNU General Public License for more details. qboolean Atlas_AllocBlock( atlas_t *atlas, int w, int h, int *x, int *y ) { - int i, j; - int best, best2; int size = atlas->size; + int best = size; + int j; - best = size; - - for( i = 0; i <= size - w; ) + for( int i = 0; i <= size - w; ) { - best2 = 0; + int best2 = 0; for( j = 0; j < w; j++ ) { @@ -52,7 +50,7 @@ qboolean Atlas_AllocBlock( atlas_t *atlas, int w, int h, int *x, int *y ) if( best + h > size ) return false; - for( i = 0; i < w; i++ ) + for( int i = 0; i < w; i++ ) atlas->allocated[*x + i] = best + h; if( best + h > atlas->max_height ) diff --git a/public/build.c b/public/build.c index 3d360c5a..5a4164d1 100644 --- a/public/build.c +++ b/public/build.c @@ -20,7 +20,7 @@ static const char mond[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int Q_buildnum_iso( const char *date ) { - int y, m, d, b, i; + int y, m, d; if( sscanf( date, "%d-%d-%d", &y, &m, &d ) != 3 || y <= 1900 || m <= 0 || d <= 0 ) return -1; @@ -29,11 +29,11 @@ int Q_buildnum_iso( const char *date ) m--; d--; - for( i = 0; i < m; i++ ) + for( int i = 0; i < m; i++ ) d += mond[i]; y -= 1900; - b = d + (int)((y - 1) * 365.25f ); + int b = d + (int)((y - 1) * 365.25f ); if((( y % 4 ) == 0 ) && m > 1 ) b += 1; diff --git a/public/crclib.c b/public/crclib.c index a52a34b1..f5142fe3 100644 --- a/public/crclib.c +++ b/public/crclib.c @@ -97,11 +97,13 @@ void GAME_EXPORT CRC32_ProcessByte( uint32_t *pulCRC, byte ch ) void GAME_EXPORT CRC32_ProcessBuffer( uint32_t *pulCRC, const void *pBuffer, int nBuffer ) { - uint32_t ulCrc = *pulCRC, tmp; - byte *pb = (byte *)pBuffer; + uint32_t ulCrc = *pulCRC; + byte *pb = (byte *)pBuffer; while( nBuffer >= sizeof( uint64_t )) { + uint32_t tmp; + memcpy( &tmp, pb, sizeof( tmp )); ulCrc ^= LittleLong( tmp ); ulCrc = crc32table[(byte)ulCrc] ^ (ulCrc >> 8); @@ -120,6 +122,8 @@ void GAME_EXPORT CRC32_ProcessBuffer( uint32_t *pulCRC, const void *pBuffer, int if( nBuffer & sizeof( uint32_t )) { + uint32_t tmp; + memcpy( &tmp, pb, sizeof( tmp )); ulCrc ^= LittleLong( tmp ); ulCrc = crc32table[(byte)ulCrc] ^ (ulCrc >> 8); @@ -147,23 +151,22 @@ For proxy protecting */ byte CRC32_BlockSequence( byte *base, int length, int sequence ) { - uint32_t CRC; - char buffer[64]; - int off; - uint32_t le[2]; + char buffer[64]; if( sequence < 0 ) sequence = abs( sequence ); if( length > 60 ) length = 60; memcpy( buffer, base, length ); - off = sequence % 0x3FC; + int off = sequence % 0x3FC; + uint32_t le[2]; le[0] = LittleLong( crc32table[off / 4] ); le[1] = LittleLong( crc32table[off / 4 + 1] ); memcpy( buffer + length, (char *)le + ( off & 3 ), 4 ); length += 4; + uint32_t CRC; CRC32_Init( &CRC ); CRC32_ProcessBuffer( &CRC, buffer, length ); CRC = CRC32_Final( CRC ); @@ -188,10 +191,8 @@ Update context to reflect the concatenation of another buffer full of bytes. */ void MD5Update( MD5Context_t *ctx, const byte *buf, uint len ) { - uint t; - // update bitcount - t = ctx->bits[0]; + uint t = ctx->bits[0]; if(( ctx->bits[0] = t + ((uint) len << 3 )) < t ) ctx->bits[1]++; // carry from low to high @@ -242,15 +243,12 @@ Final wrapup - pad to 64-byte boundary with the bit pattern */ void MD5Final( byte digest[16], MD5Context_t *ctx ) { - uint count; - byte *p; - // compute number of bytes mod 64 - count = ( ctx->bits[0] >> 3 ) & 0x3F; + uint count = ( ctx->bits[0] >> 3 ) & 0x3F; // set the first char of padding to 0x80. // this is safe since there is always at least one byte free - p = (byte*)ctx->in + count; + byte *p = (byte*)ctx->in + count; *p++ = 0x80; // bytes of padding needed to make 64 bytes @@ -308,12 +306,10 @@ the data and converts bytes into longwords for this routine. */ void MD5Transform( uint buf[4], const uint in[16] ) { - register uint a, b, c, d; - - a = buf[0]; - b = buf[1]; - c = buf[2]; - d = buf[3]; + register uint a = buf[0]; + register uint b = buf[1]; + register uint c = buf[2]; + register uint d = buf[3]; MD5STEP( F1, a, b, c, d, in[0] + 0xd76aa478, 7 ); MD5STEP( F1, d, a, b, c, in[1] + 0xe8c7b756, 12 ); @@ -425,12 +421,11 @@ transform hash to hexadecimal printable symbols */ char *MD5_Print( byte hash[16] ) { - static char szReturn[64]; - int i; + static char szReturn[64]; memset( szReturn, 0, 64 ); - for( i = 0; i < 16; i++ ) + for( int i = 0; i < 16; i++ ) COM_Hex2String( hash[i], &szReturn[i * 2] ); return szReturn; diff --git a/public/crtlib.c b/public/crtlib.c index 4e50bcd5..48bfda72 100644 --- a/public/crtlib.c +++ b/public/crtlib.c @@ -48,24 +48,22 @@ char *GAME_EXPORT Q_memfgets( byte *data, int data_len, int *data_offset, char * void Q_strnlwr( const char *in, char *out, size_t size_out ) { - size_t len, i; + size_t len = Q_strncpy( out, in, size_out ); - len = Q_strncpy( out, in, size_out ); - - for( i = 0; i < len; i++ ) + for( size_t i = 0; i < len; i++ ) out[i] = Q_tolower( out[i] ); } int Q_atoi_hex( int sign, const char *str ) { - int c, val = 0; + int val = 0; if( str[0] == '0' && ( str[1] == 'x' || str[1] == 'X' )) str += 2; while( 1 ) { - c = *str++; + int c = *str++; if( c >= '0' && c <= '9' ) val = (val<<4) + c - '0'; else if( c >= 'a' && c <= 'f' ) val = (val<<4) + c - 'a' + 10; else if( c >= 'A' && c <= 'F' ) val = (val<<4) + c - 'A' + 10; @@ -88,9 +86,6 @@ static const char *Q_atoi_strip_whitespace( const char *str ) int Q_atoi( const char *str ) { - int val = 0; - int c, sign; - if( COM_StringEmptyOrNULL( str )) return 0; @@ -99,6 +94,7 @@ int Q_atoi( const char *str ) if( COM_StringEmptyOrNULL( str )) return 0; + int sign; if( *str == '-' ) { sign = -1; @@ -115,9 +111,10 @@ int Q_atoi( const char *str ) return Q_atoi_character( sign, str ); // assume decimal + int val = 0; while( 1 ) { - c = *str++; + int c = *str++; if( c < '0' || c > '9' ) return val * sign; val = val * 10 + c - '0'; @@ -127,9 +124,6 @@ int Q_atoi( const char *str ) float Q_atof( const char *str ) { - double val = 0; - int c, sign, decimal, total; - if( COM_StringEmptyOrNULL( str )) return 0; @@ -138,6 +132,7 @@ float Q_atof( const char *str ) if( COM_StringEmptyOrNULL( str )) return 0; + int sign; if( *str == '-' ) { sign = -1; @@ -154,12 +149,13 @@ float Q_atof( const char *str ) return Q_atoi_character( sign, str ); // assume decimal - decimal = -1; - total = 0; + double val = 0; + int decimal = -1; + int total = 0; while( 1 ) { - c = *str++; + int c = *str++; if( c == '.' ) { decimal = total; @@ -186,13 +182,12 @@ float Q_atof( const char *str ) void Q_atov( float *vec, const char *str, size_t siz ) { - const char *pstr, *pfront; - int j; - memset( vec, 0, sizeof( *vec ) * siz ); - pstr = pfront = str; - for( j = 0; j < siz; j++ ) + const char *pstr = str; + const char *pfront = str; + + for( size_t j = 0; j < siz; j++ ) { vec[j] = Q_atof( pfront ); @@ -208,8 +203,8 @@ void Q_atov( float *vec, const char *str, size_t siz ) static qboolean Q_starcmp( const char *pattern, const char *text ) { - char c, c1; - const char *p = pattern, *t = text; + char c; + const char *p = pattern, *t = text; while(( c = *p++ ) == '?' || c == '*' ) { @@ -219,7 +214,7 @@ static qboolean Q_starcmp( const char *pattern, const char *text ) if( c == '\0' ) return true; - for( c1 = (( c == '\\' ) ? *p : c ); ; ) + for( char c1 = (( c == '\\' ) ? *p : c ); ; ) { if( Q_tolower( *t ) == c1 && Q_stricmpext( p - 1, t )) return true; @@ -298,19 +293,17 @@ const byte *Q_memmem( const byte *haystack, size_t haystacklen, const byte *need void Q_memor( byte *XASH_RESTRICT dst, const byte *XASH_RESTRICT src, size_t len ) { - size_t i; - for( i = 0; i < len; i++ ) // msvc likes to optimize this loop form + for( size_t i = 0; i < len; i++ ) // msvc likes to optimize this loop form dst[i] |= src[i]; } const char *Q_timestamp( int format ) { - static string timestamp; - time_t crt_time; - const struct tm *crt_tm; + static string timestamp; + time_t crt_time; time( &crt_time ); - crt_tm = localtime( &crt_time ); + const struct tm *crt_tm = localtime( &crt_time ); switch( format ) { @@ -350,13 +343,10 @@ const char *Q_timestamp( int format ) #if !HAVE_STRCASESTR char *Q_stristr( const char *string, const char *string2 ) { - int c; - size_t len; - if( !string || !string2 ) return NULL; - c = Q_tolower( *string2 ); - len = Q_strlen( string2 ); + int c = Q_tolower( *string2 ); + size_t len = Q_strlen( string2 ); while( string ) { @@ -376,11 +366,10 @@ char *Q_stristr( const char *string, const char *string2 ) int Q_vsnprintf( char *buffer, size_t buffersize, const char *format, va_list args ) { - int result; - if( unlikely( buffersize == 0 )) return -1; // report as overflow + int result; #ifndef _MSC_VER result = vsnprintf( buffer, buffersize, format, args ); #else @@ -408,11 +397,10 @@ int Q_vsnprintf( char *buffer, size_t buffersize, const char *format, va_list ar int Q_snprintf( char *buffer, size_t buffersize, const char *format, ... ) { - va_list args; - int result; + va_list args; va_start( args, format ); - result = Q_vsnprintf( buffer, buffersize, format, args ); + int result = Q_vsnprintf( buffer, buffersize, format, args ); va_end( args ); return result; @@ -431,18 +419,16 @@ void COM_StripColors( const char *in, char *out ) char *Q_pretifymem( float value, int digitsafterdecimal ) { - static char output[8][32]; - static int current; + static char output[8][32]; + static int current; const float onekb = 1024.0f; const float onemb = onekb * onekb; - const char *suffix; - char *out = output[current]; - char val[32], *i, *o, *dot; - int pos; + char *out = output[current]; current = ( current + 1 ) & ( 8 - 1 ); // first figure out which bin to use + const char *suffix; if( value > onemb ) { value /= onemb; @@ -459,20 +445,21 @@ char *Q_pretifymem( float value, int digitsafterdecimal ) } // if it's basically integral, don't do any decimals + char val[32]; if( fabs( value - (int)value ) < 0.00001f || digitsafterdecimal <= 0 ) Q_snprintf( val, sizeof( val ), "%i %s", (int)Q_rint( value ), suffix ); else if( digitsafterdecimal >= 1 ) Q_snprintf( val, sizeof( val ), "%.*f %s", digitsafterdecimal, (double)value, suffix ); // copy from in to out - i = val; - o = out; + char *i = val; + char *o = out; // search for decimal or if it was integral, find the space after the raw number - dot = Q_strchr( i, '.' ); + char *dot = Q_strchr( i, '.' ); if( !dot ) dot = Q_strchr( i, ' ' ); - pos = dot - i; // compute position of dot + int pos = dot - i; // compute position of dot pos -= 3; // don't put a comma if it's <= 3 long while( *i ) @@ -503,17 +490,16 @@ a1ba: adapted and simplified version from QuakeSpasm */ void COM_FileBase( const char *in, char *out, size_t size ) { - const char *dot, *slash, *s; - size_t len; - if( unlikely( COM_StringEmptyOrNULL( in ) || size <= 1 )) { out[0] = 0; return; } - slash = in; - dot = NULL; + const char *slash = in; + const char *dot = NULL; + const char *s; + for( s = in; *s; s++ ) { if( *s == '/' || *s == '\\' ) @@ -526,7 +512,7 @@ void COM_FileBase( const char *in, char *out, size_t size ) if( dot == NULL || dot < slash ) dot = s; - len = Q_min( size - 1, dot - slash ); + size_t len = Q_min( size - 1, dot - slash ); memcpy( out, slash, len ); out[len] = 0; @@ -539,9 +525,7 @@ COM_FileExtension */ const char *COM_FileExtension( const char *in ) { - const char *dot; - - dot = Q_strrchr( in, '.' ); + const char *dot = Q_strrchr( in, '.' ); // quickly exit if there is no dot at all if( dot == NULL ) @@ -561,15 +545,13 @@ COM_FileWithoutPath */ const char *COM_FileWithoutPath( const char *in ) { - const char *separator, *backslash, *colon; - - separator = Q_strrchr( in, '/' ); - backslash = Q_strrchr( in, '\\' ); + const char *separator = Q_strrchr( in, '/' ); + const char *backslash = Q_strrchr( in, '\\' ); if( !separator || separator < backslash ) separator = backslash; - colon = Q_strrchr( in, ':' ); + const char *colon = Q_strrchr( in, ':' ); if( !separator || separator < colon ) separator = colon; @@ -621,14 +603,12 @@ COM_DefaultExtension */ void COM_DefaultExtension( char *path, const char *extension, size_t size ) { - size_t len; - // if path doesn't have a .EXT, append extension // (extension should include the .) if( !COM_StringEmptyOrNULL( COM_FileExtension( path ))) return; - len = Q_strlen( path ); + size_t len = Q_strlen( path ); Q_strncpy( &path[len], extension, size - len ); } @@ -650,9 +630,7 @@ COM_RemoveLineFeed */ void COM_RemoveLineFeed( char *str, size_t bufsize ) { - size_t i; - - for( i = 0; i < bufsize && *str != '\0'; i++, str++ ) + for( size_t i = 0; i < bufsize && *str != '\0'; i++, str++ ) { if( *str == '\r' || *str == '\n' ) *str = '\0'; @@ -910,8 +888,6 @@ int matchpattern( const char *in, const char *pattern, qboolean caseinsensitive // if false * matches 0 or more characters int matchpattern_with_separator( const char *in, const char *pattern, qboolean caseinsensitive, const char *separators, qboolean wildcard_least_one ) { - int c1, c2; - while( *pattern ) { switch( *pattern ) @@ -948,10 +924,10 @@ int matchpattern_with_separator( const char *in, const char *pattern, qboolean c { if( !caseinsensitive ) return 0; // no match - c1 = *in; + int c1 = *in; if( c1 >= 'A' && c1 <= 'Z' ) c1 += 'a' - 'A'; - c2 = *pattern; + int c2 = *pattern; if( c2 >= 'A' && c2 <= 'Z' ) c2 += 'a' - 'A'; if( c1 != c2 ) diff --git a/public/dllhelpers.c b/public/dllhelpers.c index 9cd63aee..69a23d27 100644 --- a/public/dllhelpers.c +++ b/public/dllhelpers.c @@ -16,17 +16,13 @@ GNU General Public License for more details. void ClearExports( const dllfunc_t *funcs, size_t num_funcs ) { - size_t i; - - for( i = 0; i < num_funcs; i++ ) + for( size_t i = 0; i < num_funcs; i++ ) *(funcs[i].func) = NULL; } qboolean ValidateExports( const dllfunc_t *funcs, size_t num_funcs ) { - size_t i; - - for( i = 0; i < num_funcs; i++ ) + for( size_t i = 0; i < num_funcs; i++ ) { if( *(funcs[i].func) == NULL ) return false; diff --git a/public/matrixlib.c b/public/matrixlib.c index 841e1fae..cc8ec26f 100644 --- a/public/matrixlib.c +++ b/public/matrixlib.c @@ -34,8 +34,7 @@ void Matrix3x4_VectorTransform( const matrix3x4 in, const float v[3], float out[ void Matrix3x4_VectorITransform( const matrix3x4 in, const float v[3], float out[3] ) { - vec3_t dir; - + vec3_t dir; dir[0] = v[0] - in[0][3]; dir[1] = v[1] - in[1][3]; dir[2] = v[2] - in[2][3]; @@ -116,10 +115,10 @@ void Matrix3x4_FromOriginQuat( matrix3x4 out, const vec4_t quaternion, const vec void Matrix3x4_CreateFromEntity( matrix3x4 out, const vec3_t angles, const vec3_t origin, float scale ) { - float angle, sr, sp, sy, cr, cp, cy; - if( angles[ROLL] ) { + float angle, sr, sp, sy, cr, cp, cy; + angle = angles[YAW] * (M_PI2 / 360.0f); SinCos( angle, &sy, &cy ); angle = angles[PITCH] * (M_PI2 / 360.0f); @@ -142,6 +141,8 @@ void Matrix3x4_CreateFromEntity( matrix3x4 out, const vec3_t angles, const vec3_ } else if( angles[PITCH] ) { + float angle, sp, sy, cp, cy; + angle = angles[YAW] * (M_PI2 / 360.0f); SinCos( angle, &sy, &cy ); angle = angles[PITCH] * (M_PI2 / 360.0f); @@ -162,6 +163,8 @@ void Matrix3x4_CreateFromEntity( matrix3x4 out, const vec3_t angles, const vec3_ } else if( angles[YAW] ) { + float angle, sy, cy; + angle = angles[YAW] * (M_PI2 / 360.0f); SinCos( angle, &sy, &cy ); @@ -202,12 +205,11 @@ Matrix3x4_TransformAABB */ void Matrix3x4_TransformAABB( const matrix3x4 world, const vec3_t mins, const vec3_t maxs, vec3_t absmin, vec3_t absmax ) { - vec3_t localCenter, localExtents; - vec3_t worldCenter, worldExtents; - + vec3_t localCenter, localExtents; VectorAverage( mins, maxs, localCenter ); VectorSubtract( maxs, localCenter, localExtents ); + vec3_t worldCenter, worldExtents; Matrix3x4_VectorTransform( world, localCenter, worldCenter ); worldExtents[0] = DotProductFabs( localExtents, world[0] ); // auto-transposed! worldExtents[1] = DotProductFabs( localExtents, world[1] ); @@ -233,8 +235,7 @@ void Matrix4x4_VectorTransform( const matrix4x4 in, const float v[3], float out[ void Matrix4x4_VectorITransform( const matrix4x4 in, const float v[3], float out[3] ) { - vec3_t dir; - + vec3_t dir; dir[0] = v[0] - in[0][3]; dir[1] = v[1] - in[1][3]; dir[2] = v[2] - in[2][3]; @@ -276,10 +277,10 @@ void Matrix4x4_ConcatTransforms( matrix4x4 out, const matrix4x4 in1, const matri void Matrix4x4_CreateFromEntity( matrix4x4 out, const vec3_t angles, const vec3_t origin, float scale ) { - float angle, sr, sp, sy, cr, cp, cy; - if( angles[ROLL] ) { + float angle, sr, sp, sy, cr, cp, cy; + angle = angles[YAW] * (M_PI2 / 360.0f); SinCos( angle, &sy, &cy ); angle = angles[PITCH] * (M_PI2 / 360.0f); @@ -306,6 +307,8 @@ void Matrix4x4_CreateFromEntity( matrix4x4 out, const vec3_t angles, const vec3_ } else if( angles[PITCH] ) { + float angle, sp, sy, cp, cy; + angle = angles[YAW] * (M_PI2 / 360.0f); SinCos( angle, &sy, &cy ); angle = angles[PITCH] * (M_PI2 / 360.0f); @@ -330,6 +333,8 @@ void Matrix4x4_CreateFromEntity( matrix4x4 out, const vec3_t angles, const vec3_ } else if( angles[YAW] ) { + float angle, sy, cy; + angle = angles[YAW] * (M_PI2 / 360.0f); SinCos( angle, &sy, &cy ); @@ -439,11 +444,10 @@ void Matrix4x4_Invert_Simple( matrix4x4 out, const matrix4x4 in1 ) qboolean Matrix4x4_Invert_Full( matrix4x4 out, const matrix4x4 in1 ) { - float *temp; - float *r[4]; - float rtemp[4][8]; - float m[4]; - float s; + float *r[4]; + float rtemp[4][8]; + float m[4]; + float s; r[0] = rtemp[0]; r[1] = rtemp[1]; @@ -488,21 +492,21 @@ qboolean Matrix4x4_Invert_Full( matrix4x4 out, const matrix4x4 in1 ) if( fabs( r[3][0] ) > fabs( r[2][0] )) { - temp = r[3]; + float *temp = r[3]; r[3] = r[2]; r[2] = temp; } if( fabs( r[2][0] ) > fabs( r[1][0] )) { - temp = r[2]; + float *temp = r[2]; r[2] = r[1]; r[1] = temp; } if( fabs( r[1][0] ) > fabs( r[0][0] )) { - temp = r[1]; + float *temp = r[1]; r[1] = r[0]; r[0] = temp; } @@ -562,14 +566,14 @@ qboolean Matrix4x4_Invert_Full( matrix4x4 out, const matrix4x4 in1 ) if( fabs( r[3][1] ) > fabs( r[2][1] )) { - temp = r[3]; + float *temp = r[3]; r[3] = r[2]; r[2] = temp; } if( fabs( r[2][1] ) > fabs( r[1][1] )) { - temp = r[2]; + float *temp = r[2]; r[2] = r[1]; r[1] = temp; } @@ -613,7 +617,7 @@ qboolean Matrix4x4_Invert_Full( matrix4x4 out, const matrix4x4 in1 ) if( fabs( r[3][2] ) > fabs( r[2][2] )) { - temp = r[3]; + float *temp = r[3]; r[3] = r[2]; r[2] = temp; } diff --git a/public/utflib.c b/public/utflib.c index a23e7569..9d143025 100644 --- a/public/utflib.c +++ b/public/utflib.c @@ -173,23 +173,20 @@ size_t Q_UTF8Length( const char *s ) size_t Q_UTF16ToUTF8( char *dst, size_t dstsize, const uint16_t *src, size_t srcsize ) { - utfstate_t state = { 0 }; - size_t dsti = 0, srci; - if( !dst || !src || !dstsize || !srcsize ) return 0; - for( srci = 0; srci < srcsize && src[srci]; srci++ ) - { - uint32_t ch; - size_t len; + utfstate_t state = { 0 }; + size_t dsti = 0; - ch = Q_DecodeUTF16( &state, src[srci] ); + for( size_t srci = 0; srci < srcsize && src[srci]; srci++ ) + { + uint32_t ch = Q_DecodeUTF16( &state, src[srci] ); if( ch == 0 ) continue; - len = Q_CodepointLength( ch ); + size_t len = Q_CodepointLength( ch ); if( dsti + len + 1 > dstsize ) break; @@ -215,8 +212,6 @@ static const uint16_t table_cp1251[64] = { uint32_t Q_UnicodeToCP1251( uint32_t uc ) { - size_t i; - if( uc < 0x80 ) return uc; @@ -226,7 +221,7 @@ uint32_t Q_UnicodeToCP1251( uint32_t uc ) if( uc >= 0x0430 && uc <= 0x044F ) return uc - 0x430 + 0xE0; - for( i = 0; i < sizeof( table_cp1251 ) / sizeof( table_cp1251[0] ); i++ ) + for( size_t i = 0; i < sizeof( table_cp1251 ) / sizeof( table_cp1251[0] ); i++ ) { if( uc == (uint32_t)table_cp1251[i] ) return i + 0x80; diff --git a/public/xash3d_mathlib.c b/public/xash3d_mathlib.c index 2917c328..bf971c17 100644 --- a/public/xash3d_mathlib.c +++ b/public/xash3d_mathlib.c @@ -40,10 +40,10 @@ const float m_bytenormals[NUMVERTEXNORMALS][3] = uint16_t FloatToHalf( float v ) { - unsigned int i = FloatAsUint( v ); - unsigned int e = (i >> 23) & 0x00ff; - unsigned int m = i & 0x007fffff; - unsigned short h; + unsigned int i = FloatAsUint( v ); + unsigned int e = (i >> 23) & 0x00ff; + unsigned int m = i & 0x007fffff; + unsigned short h; if( e <= 127 - 15 ) h = ((m | 0x00800000) >> (127 - 14 - e)) >> 13; @@ -94,20 +94,17 @@ round the hullsize to nearest 'right' value */ void RoundUpHullSize( vec3_t size ) { - int i, j; - - for( i = 0; i < 3; i++) + for( int i = 0; i < 3; i++) { - qboolean negative = false; - float result, value; + qboolean negative = false; + float value = size[i]; - value = size[i]; if( value < 0.0f ) negative = true; value = Q_ceil( fabs( value )); - result = Q_ceil( size[i] ); + float result = Q_ceil( size[i] ); // lookup hull table to find nearest supposed value - for( j = 0; j < sizeof( hull_table ) / sizeof( hull_table[0] ); j++ ) + for( size_t j = 0; j < sizeof( hull_table ) / sizeof( hull_table[0] ); j++ ) { if( value > hull_table[j] ) continue; // ceil only @@ -143,16 +140,13 @@ rsqrt */ float Q_rsqrt( float number ) { - int i; - float x, y; - if( number == 0.0f ) return 0.0f; - x = number * 0.5f; - i = FloatAsInt( number ); // evil floating point bit level hacking + float x = number * 0.5f; + int i = FloatAsInt( number ); // evil floating point bit level hacking i = 0x5f3759df - (i >> 1); // what the fuck? - y = IntAsFloat( i ); + float y = IntAsFloat( i ); y = y * (1.5f - (x * y * y)); // first iteration return y; @@ -160,13 +154,11 @@ float Q_rsqrt( float number ) void VectorVectors( const vec3_t forward, vec3_t right, vec3_t up ) { - float d; - right[0] = forward[2]; right[1] = -forward[0]; right[2] = forward[1]; - d = DotProduct( forward, right ); + float d = DotProduct( forward, right ); VectorMA( right, -d, forward, right ); VectorNormalize( right ); CrossProduct( right, forward, up ); @@ -181,14 +173,14 @@ VectorAngles */ void GAME_EXPORT VectorAngles( const float *forward, float *angles ) { - float tmp, yaw, pitch; - if( !forward || !angles ) { if( angles ) VectorClear( angles ); return; } + float yaw, pitch; + if( forward[1] == 0 && forward[0] == 0 ) { // fast case @@ -202,7 +194,7 @@ void GAME_EXPORT VectorAngles( const float *forward, float *angles ) yaw = ( atan2( forward[1], forward[0] ) * 180 / M_PI_F ); if( yaw < 0 ) yaw += 360; - tmp = sqrt( forward[0] * forward[0] + forward[1] * forward[1] ); + float tmp = sqrt( forward[0] * forward[0] + forward[1] * forward[1] ); pitch = ( atan2( forward[2], tmp ) * 180 / M_PI_F ); if( pitch < 0 ) pitch += 360; } @@ -218,10 +210,9 @@ VectorsAngles */ void VectorsAngles( const vec3_t forward, const vec3_t right, const vec3_t up, vec3_t angles ) { - float pitch, cpitch, yaw, roll; - - pitch = -asin( forward[2] ); - cpitch = cos( pitch ); + float pitch = -asin( forward[2] ); + float cpitch = cos( pitch ); + float yaw, roll; if( fabs( cpitch ) > EQUAL_EPSILON ) // gimball lock? { @@ -252,17 +243,15 @@ SphereIntersect */ qboolean SphereIntersect( const vec3_t vSphereCenter, float fSphereRadiusSquared, const vec3_t vLinePt, const vec3_t vLineDir ) { - float a, b, c, insideSqr; - vec3_t p; - // translate sphere to origin. + vec3_t p; VectorSubtract( vLinePt, vSphereCenter, p ); - a = DotProduct( vLineDir, vLineDir ); - b = 2.0f * DotProduct( p, vLineDir ); - c = DotProduct( p, p ) - fSphereRadiusSquared; + float a = DotProduct( vLineDir, vLineDir ); + float b = 2.0f * DotProduct( p, vLineDir ); + float c = DotProduct( p, p ) - fSphereRadiusSquared; - insideSqr = b * b - 4.0f * a * c; + float insideSqr = b * b - 4.0f * a * c; if( insideSqr <= 0.000001f ) return false; return true; @@ -283,11 +272,10 @@ if not, reverse q static void QuaternionAlign( const vec4_t p, const vec4_t q, vec4_t qt ) { // decide if one of the quaternions is backwards - float a = 0.0f; - float b = 0.0f; - int i; + float a = 0.0f; + float b = 0.0f; - for( i = 0; i < 4; i++ ) + for( int i = 0; i < 4; i++ ) { a += (p[i] - q[i]) * (p[i] - q[i]); b += (p[i] + q[i]) * (p[i] + q[i]); @@ -295,12 +283,12 @@ static void QuaternionAlign( const vec4_t p, const vec4_t q, vec4_t qt ) if( a > b ) { - for( i = 0; i < 4; i++ ) + for( int i = 0; i < 4; i++ ) qt[i] = -q[i]; } else { - for( i = 0; i < 4; i++ ) + for( int i = 0; i < 4; i++ ) qt[i] = q[i]; } } @@ -312,18 +300,16 @@ QuaternionSlerpNoAlign */ static void QuaternionSlerpNoAlign( const vec4_t p, const vec4_t q, float t, vec4_t qt ) { - float omega, cosom, sinom, sclp, sclq; - int i; - // 0.0 returns p, 1.0 return q. - cosom = p[0] * q[0] + p[1] * q[1] + p[2] * q[2] + p[3] * q[3]; + float cosom = p[0] * q[0] + p[1] * q[1] + p[2] * q[2] + p[3] * q[3]; + float sclp, sclq; if(( 1.0f + cosom ) > 0.000001f ) { if(( 1.0f - cosom ) > 0.000001f ) { - omega = acos( cosom ); - sinom = sin( omega ); + float omega = acos( cosom ); + float sinom = sin( omega ); sclp = sin( (1.0f - t) * omega) / sinom; sclq = sin( t * omega ) / sinom; } @@ -333,7 +319,7 @@ static void QuaternionSlerpNoAlign( const vec4_t p, const vec4_t q, float t, vec sclq = t; } - for( i = 0; i < 4; i++ ) + for( int i = 0; i < 4; i++ ) { qt[i] = sclp * p[i] + sclq * q[i]; } @@ -347,7 +333,7 @@ static void QuaternionSlerpNoAlign( const vec4_t p, const vec4_t q, float t, vec sclp = sin(( 1.0f - t ) * ( 0.5f * M_PI_F )); sclq = sin( t * ( 0.5f * M_PI_F )); - for( i = 0; i < 3; i++ ) + for( int i = 0; i < 3; i++ ) { qt[i] = sclp * p[i] + sclq * qt[i]; } @@ -437,11 +423,9 @@ int BoxOnPlaneSide( const vec3_t emins, const vec3_t emaxs, const mplane_t *p ) void R_StudioCalcBones( int frame, float s, const mstudiobone_t *pbone, const mstudioanim_t *panim, const float *adj, vec3_t pos, vec4_t q ) { float v1[6], v2[6]; - int i, max; + int max = q != NULL ? 6 : 3; - max = q != NULL ? 6 : 3; - - for( i = 0; i < max; i++ ) + for( int i = 0; i < max; i++ ) { mstudioanimvalue_t *panimvalue = (mstudioanimvalue_t *)((byte *)panim + panim->offset[i] ); int j = frame;