20 Apr 2011
This commit is contained in:
parent
8713320797
commit
eca966c620
|
@ -1371,6 +1371,7 @@ static qboolean CL_LoadHudSprite( const char *szSpriteName, model_t *m_pSprite,
|
|||
if( !buf ) return false;
|
||||
|
||||
Q_strncpy( m_pSprite->name, szSpriteName, sizeof( m_pSprite->name ));
|
||||
m_pSprite->flags = 256; // it's hud sprite, make difference names to prevent free shared textures
|
||||
|
||||
if( mapSprite ) Mod_LoadMapSprite( m_pSprite, buf, size );
|
||||
else Mod_LoadSpriteModel( m_pSprite, buf );
|
||||
|
@ -2864,6 +2865,58 @@ TriApi implementation
|
|||
|
||||
=================
|
||||
*/
|
||||
/*
|
||||
=============
|
||||
TriRenderMode
|
||||
|
||||
set rendermode
|
||||
=============
|
||||
*/
|
||||
void TriRenderMode( int mode )
|
||||
{
|
||||
switch( mode )
|
||||
{
|
||||
case kRenderNormal:
|
||||
default:
|
||||
pglDisable( GL_BLEND );
|
||||
pglDisable( GL_ALPHA_TEST );
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
break;
|
||||
case kRenderTransColor:
|
||||
pglEnable( GL_BLEND );
|
||||
pglDisable( GL_ALPHA_TEST );
|
||||
pglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
break;
|
||||
case kRenderTransAlpha:
|
||||
case kRenderTransTexture:
|
||||
// NOTE: TriAPI doesn't have 'solid' mode
|
||||
pglEnable( GL_BLEND );
|
||||
pglDisable( GL_ALPHA_TEST );
|
||||
pglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
break;
|
||||
case kRenderGlow:
|
||||
pglEnable( GL_BLEND );
|
||||
pglDisable( GL_ALPHA_TEST );
|
||||
pglBlendFunc( GL_SRC_ALPHA, GL_ONE );
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
break;
|
||||
case kRenderTransAdd:
|
||||
pglEnable( GL_BLEND );
|
||||
pglDisable( GL_ALPHA_TEST );
|
||||
pglBlendFunc( GL_SRC_ALPHA, GL_ONE );
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
break;
|
||||
case kRenderTransInverse:
|
||||
pglEnable( GL_BLEND );
|
||||
pglDisable( GL_ALPHA_TEST );
|
||||
pglBlendFunc( GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA );
|
||||
pglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
TriBegin
|
||||
|
@ -3025,10 +3078,18 @@ bind current texture
|
|||
int TriSpriteTexture( model_t *pSpriteModel, int frame )
|
||||
{
|
||||
int gl_texturenum;
|
||||
msprite_t *psprite;
|
||||
|
||||
if(( gl_texturenum = R_GetSpriteTexture( pSpriteModel, frame )) == 0 )
|
||||
return 0;
|
||||
|
||||
psprite = pSpriteModel->cache.data;
|
||||
if( psprite->texFormat == SPR_ALPHTEST )
|
||||
{
|
||||
pglEnable( GL_ALPHA_TEST );
|
||||
pglAlphaFunc( GL_GREATER, 0.0f );
|
||||
}
|
||||
|
||||
GL_Bind( GL_TEXTURE0, gl_texturenum );
|
||||
|
||||
return 1;
|
||||
|
@ -3345,7 +3406,7 @@ float Voice_GetControlFloat( VoiceTweakControl iControl )
|
|||
static triangleapi_t gTriApi =
|
||||
{
|
||||
TRI_API_VERSION,
|
||||
GL_SetRenderMode,
|
||||
TriRenderMode,
|
||||
TriBegin,
|
||||
TriEnd,
|
||||
TriColor4f,
|
||||
|
|
|
@ -271,9 +271,6 @@ GL_Cull
|
|||
*/
|
||||
void GL_Cull( GLenum cull )
|
||||
{
|
||||
if( glState.faceCull == cull )
|
||||
return;
|
||||
|
||||
if( !cull )
|
||||
{
|
||||
pglDisable( GL_CULL_FACE );
|
||||
|
@ -281,8 +278,7 @@ void GL_Cull( GLenum cull )
|
|||
return;
|
||||
}
|
||||
|
||||
if( !glState.faceCull )
|
||||
pglEnable( GL_CULL_FACE );
|
||||
pglEnable( GL_CULL_FACE );
|
||||
pglCullFace( cull );
|
||||
glState.faceCull = cull;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ extern byte *r_temppool;
|
|||
#define BLOCK_HEIGHT 128 // lightmap block height
|
||||
|
||||
#define MAX_TEXTURES 4096
|
||||
#define MAX_LIGHTMAPS 64
|
||||
#define MAX_LIGHTMAPS 128
|
||||
#define SUBDIVIDE_SIZE 64
|
||||
|
||||
//#define MIRROR_TEST
|
||||
|
@ -76,7 +76,7 @@ typedef enum
|
|||
|
||||
typedef struct gltexture_s
|
||||
{
|
||||
char name[64]; // game path, including extension
|
||||
char name[128]; // game path, including extension
|
||||
word srcWidth; // keep unscaled sizes
|
||||
word srcHeight;
|
||||
word width; // upload width\height
|
||||
|
@ -595,7 +595,6 @@ extern convar_t *r_lockcull;
|
|||
extern convar_t *r_wateralpha;
|
||||
extern convar_t *r_dynamic;
|
||||
extern convar_t *r_lightmap;
|
||||
extern convar_t *r_shadows;
|
||||
extern convar_t *r_fastsky;
|
||||
|
||||
extern convar_t *vid_displayfrequency;
|
||||
|
|
|
@ -99,9 +99,9 @@ static int R_TransEntityCompare( const cl_entity_t **a, const cl_entity_t **b )
|
|||
|
||||
// now sort by rendermode
|
||||
if( R_RankForRenderMode( ent1 ) > R_RankForRenderMode( ent2 ))
|
||||
return -1;
|
||||
if( R_RankForRenderMode( ent1 ) < R_RankForRenderMode( ent2 ))
|
||||
return 1;
|
||||
if( R_RankForRenderMode( ent1 ) < R_RankForRenderMode( ent2 ))
|
||||
return -1;
|
||||
|
||||
// then by distance
|
||||
if( ent1->model->type == mod_brush )
|
||||
|
@ -369,7 +369,7 @@ static void R_Clear( int bitMask )
|
|||
|
||||
if( RI.drawWorld && r_fastsky->integer )
|
||||
bits |= GL_COLOR_BUFFER_BIT;
|
||||
if( glState.stencilEnabled && r_shadows->integer )
|
||||
if( glState.stencilEnabled )
|
||||
bits |= GL_STENCIL_BUFFER_BIT;
|
||||
|
||||
bits &= bitMask;
|
||||
|
|
|
@ -1207,7 +1207,6 @@ void R_DrawBrushModel( cl_entity_t *e )
|
|||
pglColor4ub( 255, 255, 255, e->curstate.renderamt );
|
||||
break;
|
||||
case kRenderTransColor:
|
||||
pglDisable( GL_TEXTURE_2D );
|
||||
pglColor4ub( e->curstate.rendercolor.r, e->curstate.rendercolor.g,
|
||||
e->curstate.rendercolor.b, e->curstate.renderamt );
|
||||
break;
|
||||
|
@ -1259,9 +1258,6 @@ void R_DrawBrushModel( cl_entity_t *e )
|
|||
for( i = 0; i < num_sorted; i++ )
|
||||
R_RenderBrushPoly( world.draw_surfaces[i] );
|
||||
|
||||
if( e->curstate.rendermode == kRenderTransColor )
|
||||
pglEnable( GL_TEXTURE_2D );
|
||||
|
||||
R_BlendLightmaps();
|
||||
R_RenderFullbrights();
|
||||
R_LoadIdentity(); // restore worldmatrix
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#define MAPSPRITE_SIZE 128
|
||||
|
||||
convar_t *r_sprite_lerping;
|
||||
char sprite_name[64];
|
||||
char group_suffix[8];
|
||||
static vec3_t sprite_mins, sprite_maxs;
|
||||
static float sprite_radius;
|
||||
|
@ -43,11 +42,12 @@ static dframetype_t *R_SpriteLoadFrame( model_t *mod, void *pin, mspriteframe_t
|
|||
{
|
||||
dspriteframe_t *pinframe;
|
||||
mspriteframe_t *pspriteframe;
|
||||
char texname[64];
|
||||
char texname[128];
|
||||
|
||||
// build uinque frame name
|
||||
if( !sprite_name[0] ) FS_FileBase( mod->name, sprite_name );
|
||||
Q_snprintf( texname, sizeof( texname ), "#%s_%s_%i%i.spr", sprite_name, group_suffix, num / 10, num % 10 );
|
||||
if( mod->flags & 256 ) // it's a HUD sprite
|
||||
Q_snprintf( texname, sizeof( texname ), "#HUD/%s_%s_%i%i.spr", mod->name, group_suffix, num / 10, num % 10 );
|
||||
else Q_snprintf( texname, sizeof( texname ), "#%s_%s_%i%i.spr", mod->name, group_suffix, num / 10, num % 10 );
|
||||
|
||||
pinframe = (dspriteframe_t *)pin;
|
||||
|
||||
|
@ -209,9 +209,6 @@ void Mod_LoadSpriteModel( model_t *mod, const void *buffer )
|
|||
return;
|
||||
}
|
||||
|
||||
// reset the sprite name
|
||||
sprite_name[0] = '\0';
|
||||
|
||||
for( i = 0; i < pin->numframes; i++ )
|
||||
{
|
||||
frametype_t frametype = pframetype->type;
|
||||
|
@ -250,7 +247,7 @@ void Mod_LoadMapSprite( model_t *mod, const void *buffer, size_t size )
|
|||
{
|
||||
byte *src, *dst;
|
||||
rgbdata_t *pix, temp;
|
||||
char texname[64];
|
||||
char texname[128];
|
||||
int i, j, x, y, w, h;
|
||||
int xl, yl, xh, yh;
|
||||
int linedelta, numframes;
|
||||
|
@ -306,9 +303,6 @@ void Mod_LoadMapSprite( model_t *mod, const void *buffer, size_t size )
|
|||
temp.buffer = Mem_Alloc( r_temppool, temp.size );
|
||||
temp.palette = NULL;
|
||||
|
||||
// reset the sprite name
|
||||
sprite_name[0] = '\0';
|
||||
|
||||
// chop the image and upload into video memory
|
||||
for( i = xl = yl = 0; i < numframes; i++ )
|
||||
{
|
||||
|
@ -329,8 +323,7 @@ void Mod_LoadMapSprite( model_t *mod, const void *buffer, size_t size )
|
|||
}
|
||||
|
||||
// build uinque frame name
|
||||
if( !sprite_name[0] ) FS_FileBase( mod->name, sprite_name );
|
||||
Q_snprintf( texname, sizeof( texname ), "#%s_%i%i.spr", sprite_name, i / 10, i % 10 );
|
||||
Q_snprintf( texname, sizeof( texname ), "#MAP/%s_%i%i.spr", mod->name, i / 10, i % 10 );
|
||||
|
||||
psprite->frames[i].frameptr = Mem_Alloc( mod->mempool, sizeof( mspriteframe_t ));
|
||||
pspriteframe = psprite->frames[i].frameptr;
|
||||
|
@ -851,8 +844,6 @@ void R_DrawSpriteModel( cl_entity_t *e )
|
|||
|
||||
model = e->model;
|
||||
psprite = (msprite_t * )model->cache.data;
|
||||
VectorSet( color, 255.0f, 255.0f, 255.0f );
|
||||
|
||||
VectorCopy( e->origin, origin ); // set render origin
|
||||
|
||||
// do movewith
|
||||
|
@ -909,7 +900,12 @@ void R_DrawSpriteModel( cl_entity_t *e )
|
|||
break;
|
||||
case kRenderNormal:
|
||||
default:
|
||||
pglDisable( GL_BLEND );
|
||||
if( psprite->texFormat == SPR_INDEXALPHA )
|
||||
{
|
||||
pglEnable( GL_BLEND );
|
||||
pglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||
}
|
||||
else pglDisable( GL_BLEND );
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ convar_t *r_studio_lambert;
|
|||
convar_t *r_drawviewmodel;
|
||||
convar_t *r_customdraw_playermodel;
|
||||
convar_t *cl_himodels;
|
||||
char model_name[64];
|
||||
cvar_t r_shadows = { "r_shadows", "0", 0, 0 };
|
||||
static r_studio_interface_t *pStudioDraw;
|
||||
static float aliasXscale, aliasYscale; // software renderer scale
|
||||
static matrix3x4 g_aliastransform; // software renderer transform
|
||||
|
@ -1352,7 +1352,7 @@ void R_StudioDynamicLight( cl_entity_t *ent, alight_t *lightinfo )
|
|||
plight = &g_studiolight;
|
||||
plight->numdlights = 0; // clear previous dlights
|
||||
|
||||
if( r_lighting_extended->integer )
|
||||
if( r_lighting_extended->integer == 2 )
|
||||
Matrix3x4_OriginFromMatrix( g_lighttransform[0], origin );
|
||||
else Matrix3x4_OriginFromMatrix( g_rotationmatrix, origin );
|
||||
|
||||
|
@ -1441,7 +1441,7 @@ void R_StudioEntityLight( alight_t *lightinfo )
|
|||
plight = &g_studiolight;
|
||||
plight->numelights = 0; // clear previous elights
|
||||
|
||||
if( r_lighting_extended->integer )
|
||||
if( r_lighting_extended->integer == 2 )
|
||||
Matrix3x4_OriginFromMatrix( g_lighttransform[0], origin );
|
||||
else Matrix3x4_OriginFromMatrix( g_rotationmatrix, origin );
|
||||
|
||||
|
@ -2205,6 +2205,7 @@ static void R_StudioSetupRenderer( int rendermode )
|
|||
{
|
||||
g_iRenderMode = bound( 0, rendermode, kRenderTransInverse );
|
||||
pglShadeModel( GL_SMOOTH ); // enable gouraud shading
|
||||
GL_Cull( GL_FRONT );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2245,6 +2246,14 @@ static int pfnIsHardware( void )
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
static void StudioDrawShadow( studiohdr_t *pstudiohdr, matrix3x4 transform[MAXSTUDIOBONES] )
|
||||
{
|
||||
// in GoldSrc shadow call is dsiabled with 'return' at start of the function
|
||||
// some mods used a hack with calling DrawShadow ahead of 'return'
|
||||
// this code is for HL compatibility.
|
||||
MsgDev( D_INFO, "GL_StudioDrawShadow()\n" ); // just a debug
|
||||
}
|
||||
|
||||
/*
|
||||
===============
|
||||
|
@ -2254,12 +2263,10 @@ GL_StudioDrawShadow
|
|||
*/
|
||||
static void GL_StudioDrawShadow( void )
|
||||
{
|
||||
// in GoldSrc shadow call is dsiabled with 'return' at start of the function
|
||||
// some mods used a hack with calling DrawShadow ahead of 'return'
|
||||
// this code is for HL compatibility.
|
||||
return;
|
||||
|
||||
MsgDev( D_INFO, "GL_StudioDrawShadow()\n" ); // just a debug
|
||||
if( r_shadows.value )
|
||||
{
|
||||
StudioDrawShadow( m_pStudioHeader, g_bonestransform );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2836,7 +2843,7 @@ static void R_StudioLoadTexture( model_t *mod, studiohdr_t *phdr, mstudiotexture
|
|||
{
|
||||
size_t size;
|
||||
int flags = 0;
|
||||
char texname[64], name[64];
|
||||
char texname[128], name[128];
|
||||
|
||||
if( ptexture->flags & STUDIO_NF_TRANSPARENT )
|
||||
flags |= (TF_CLAMP|TF_NOMIPMAP);
|
||||
|
@ -2847,11 +2854,10 @@ static void R_StudioLoadTexture( model_t *mod, studiohdr_t *phdr, mstudiotexture
|
|||
// NOTE: replace index with pointer to start of imagebuffer, ImageLib expected it
|
||||
ptexture->index = (int)((byte *)phdr) + ptexture->index;
|
||||
size = sizeof( mstudiotexture_t ) + ptexture->width * ptexture->height + 768;
|
||||
if( !model_name[0] ) FS_FileBase( mod->name, model_name );
|
||||
FS_FileBase( ptexture->name, name );
|
||||
|
||||
// build the texname
|
||||
Q_snprintf( texname, sizeof( texname ), "%s/%s.mdl", model_name, name );
|
||||
Q_snprintf( texname, sizeof( texname ), "#%s/%s.mdl", mod->name, name );
|
||||
ptexture->index = GL_LoadTexture( texname, (byte *)ptexture, size, flags );
|
||||
|
||||
if( !ptexture->index )
|
||||
|
@ -2889,8 +2895,6 @@ studiohdr_t *R_StudioLoadHeader( model_t *mod, const void *buffer )
|
|||
return NULL;
|
||||
}
|
||||
|
||||
model_name[0] = '\0';
|
||||
|
||||
if( host.type != HOST_DEDICATED )
|
||||
{
|
||||
ptexture = (mstudiotexture_t *)(((byte *)phdr) + phdr->textureindex);
|
||||
|
|
|
@ -63,7 +63,6 @@ convar_t *r_lockcull;
|
|||
convar_t *r_wateralpha;
|
||||
convar_t *r_dynamic;
|
||||
convar_t *r_lightmap;
|
||||
convar_t *r_shadows;
|
||||
convar_t *r_fastsky;
|
||||
|
||||
convar_t *vid_displayfrequency;
|
||||
|
@ -1408,7 +1407,6 @@ void GL_InitCommands( void )
|
|||
r_wateralpha = Cvar_Get( "r_wateralpha", "1", CVAR_ARCHIVE, "world water transparency factor" );
|
||||
r_dynamic = Cvar_Get( "r_dynamic", "1", CVAR_ARCHIVE, "allow dynamic lighting (dlights, lightstyles)" );
|
||||
r_lightmap = Cvar_Get( "r_lightmap", "0", CVAR_CHEAT, "lightmap debugging tool" );
|
||||
r_shadows = Cvar_Get( "r_shadows", "0", CVAR_ARCHIVE, "enable model shadows" );
|
||||
r_fastsky = Cvar_Get( "r_fastsky", "0", CVAR_ARCHIVE, "enable algorhytm fo fast sky rendering (for old machines)" );
|
||||
r_drawentities = Cvar_Get( "r_drawentities", "1", CVAR_CHEAT|CVAR_ARCHIVE, "render entities" );
|
||||
r_flaresize = Cvar_Get( "r_flaresize", "200", CVAR_ARCHIVE, "set flares size" );
|
||||
|
|
|
@ -732,8 +732,6 @@ int EXPORT Host_Main( const char *progname, int bChangeGame, pfnChangeGame func
|
|||
host.errorframe = 0;
|
||||
Cbuf_Execute();
|
||||
|
||||
SCR_CheckStartupVids(); // must be last
|
||||
|
||||
// post initializations
|
||||
switch( host.type )
|
||||
{
|
||||
|
@ -750,6 +748,8 @@ int EXPORT Host_Main( const char *progname, int bChangeGame, pfnChangeGame func
|
|||
break;
|
||||
}
|
||||
|
||||
SCR_CheckStartupVids(); // must be last
|
||||
|
||||
host.change_game = false; // done
|
||||
Cmd_RemoveCommand( "setr" ); // remove potentially backdoor for change render settings
|
||||
Cmd_RemoveCommand( "setgl" );
|
||||
|
|
|
@ -408,6 +408,7 @@ qboolean Image_LoadMIP( const char *name, const byte *buffer, size_t filesize )
|
|||
}
|
||||
|
||||
Image_GetPaletteLMP( pal, rendermode );
|
||||
image.d_currentpal[255] &= 0xFFFFFF;
|
||||
}
|
||||
else if( image.hint != IL_HINT_HL && filesize >= (int)sizeof(mip) + ((pixels * 85)>>6))
|
||||
{
|
||||
|
|
|
@ -544,6 +544,9 @@ static void Mod_LoadTextures( const dlump_t *l )
|
|||
tx->gl_texturenum = GL_LoadTexture( texname, NULL, 0, 0 );
|
||||
}
|
||||
|
||||
// set the emo-texture for missed
|
||||
if( !tx->gl_texturenum ) tx->gl_texturenum = tr.defaultTexture;
|
||||
|
||||
// check for luma texture
|
||||
if( R_GetTexture( tx->gl_texturenum )->flags & TF_HAS_LUMA )
|
||||
{
|
||||
|
@ -564,9 +567,12 @@ static void Mod_LoadTextures( const dlump_t *l )
|
|||
}
|
||||
}
|
||||
|
||||
// apply texture type (just for debug)
|
||||
GL_SetTextureType( tx->gl_texturenum, TEX_BRUSH );
|
||||
GL_SetTextureType( tx->fb_texturenum, TEX_BRUSH );
|
||||
if( tx->gl_texturenum != tr.defaultTexture )
|
||||
{
|
||||
// apply texture type (just for debug)
|
||||
GL_SetTextureType( tx->gl_texturenum, TEX_BRUSH );
|
||||
GL_SetTextureType( tx->fb_texturenum, TEX_BRUSH );
|
||||
}
|
||||
}
|
||||
|
||||
// sequence the animations
|
||||
|
|
|
@ -945,47 +945,43 @@ prevent data to out of range
|
|||
*/
|
||||
int Delta_ClampIntegerField( int iValue, qboolean bSigned, int bits )
|
||||
{
|
||||
uint uValue;
|
||||
|
||||
uValue = (uint)iValue;
|
||||
|
||||
switch( bits )
|
||||
{
|
||||
case 8:
|
||||
if( bSigned ) iValue = bound( -127, iValue, 128 );
|
||||
else iValue = bound( 0, uValue, 255 );
|
||||
if( bSigned ) iValue = bound( -127, (short)iValue, 128 );
|
||||
else iValue = bound( 0, (word)iValue, 255 );
|
||||
break;
|
||||
case 9:
|
||||
if( bSigned ) iValue = bound( -255, iValue, 256 );
|
||||
else iValue = bound( 0, uValue, 511 );
|
||||
if( bSigned ) iValue = bound( -255, (short)iValue, 256 );
|
||||
else iValue = bound( 0, (word)iValue, 511 );
|
||||
break;
|
||||
case 10:
|
||||
if( bSigned ) iValue = bound( -511, iValue, 511 );
|
||||
else iValue = bound( 0, uValue, 1023 );
|
||||
if( bSigned ) iValue = bound( -511, (short)iValue, 511 );
|
||||
else iValue = bound( 0, (word)iValue, 1023 );
|
||||
break;
|
||||
case 11:
|
||||
if( bSigned ) iValue = bound( -1023, iValue, 1023 );
|
||||
else iValue = bound( 0, uValue, 2047 );
|
||||
if( bSigned ) iValue = bound( -1023, (short)iValue, 1023 );
|
||||
else iValue = bound( 0, (word)iValue, 2047 );
|
||||
break;
|
||||
case 12:
|
||||
if( bSigned ) iValue = bound( -2047, iValue, 2047 );
|
||||
else iValue = bound( 0, uValue, 4095 );
|
||||
if( bSigned ) iValue = bound( -2047, (short)iValue, 2047 );
|
||||
else iValue = bound( 0, (word)iValue, 4095 );
|
||||
break;
|
||||
case 13:
|
||||
if( bSigned ) iValue = bound( -4095, iValue, 4095 );
|
||||
else iValue = bound( 0, uValue, 8191 );
|
||||
if( bSigned ) iValue = bound( -4095, (short)iValue, 4095 );
|
||||
else iValue = bound( 0, (word)iValue, 8191 );
|
||||
break;
|
||||
case 14:
|
||||
if( bSigned ) iValue = bound( -8191, iValue, 8191 );
|
||||
else iValue = bound( 0, uValue, 16383 );
|
||||
if( bSigned ) iValue = bound( -8191, (short)iValue, 8191 );
|
||||
else iValue = bound( 0, (word)iValue, 16383 );
|
||||
break;
|
||||
case 15:
|
||||
if( bSigned ) iValue = bound( -16383, iValue, 16383 );
|
||||
else iValue = bound( 0, uValue, 32767 );
|
||||
if( bSigned ) iValue = bound( -16383, (short)iValue, 16383 );
|
||||
else iValue = bound( 0, (word)iValue, 32767 );
|
||||
break;
|
||||
case 16:
|
||||
if( bSigned ) iValue = bound( -32767, iValue, 32767 );
|
||||
else iValue = bound( 0, uValue, 65535 );
|
||||
if( bSigned ) iValue = bound( -32767, (short)iValue, 32767 );
|
||||
else iValue = bound( 0, (word)iValue, 65535 );
|
||||
break;
|
||||
}
|
||||
return iValue; // clamped;
|
||||
|
|
|
@ -486,6 +486,9 @@ pmtrace_t PM_PlayerTrace( playermove_t *pmove, vec3_t start, vec3_t end, int fla
|
|||
total.ent = i;
|
||||
}
|
||||
|
||||
if( total.startsolid )
|
||||
total.fraction = 0.0f;
|
||||
|
||||
if( i == 0 && ( flags & PM_WORLD_ONLY ))
|
||||
break; // done
|
||||
|
||||
|
|
|
@ -572,10 +572,8 @@ SV_Kill_f
|
|||
*/
|
||||
void SV_Kill_f( void )
|
||||
{
|
||||
if( !Cvar_VariableInteger( "sv_cheats" )) return;
|
||||
if( !SV_SetPlayer() || sv.background ) return;
|
||||
|
||||
// NOTE: the CS 1.5 want to kill local player. i'm don't know why :(
|
||||
if( !svs.currentPlayer || !SV_IsValidEdict( svs.currentPlayer->edict ))
|
||||
return;
|
||||
|
||||
|
|
|
@ -37,7 +37,6 @@ convar_t *sv_accelerate;
|
|||
convar_t *sv_friction;
|
||||
convar_t *sv_edgefriction;
|
||||
convar_t *sv_waterfriction;
|
||||
convar_t *sv_synchthink;
|
||||
convar_t *sv_stopspeed;
|
||||
convar_t *hostname;
|
||||
convar_t *sv_fix_pushents;
|
||||
|
@ -669,7 +668,6 @@ void SV_Init( void )
|
|||
sv_stopspeed = Cvar_Get( "sv_stopspeed", "100", CVAR_PHYSICINFO, "how fast you come to a complete stop" );
|
||||
sv_maxclients = Cvar_Get( "maxplayers", "1", CVAR_LATCH|CVAR_SERVERNOTIFY, "server clients limit" );
|
||||
sv_check_errors = Cvar_Get( "sv_check_errors", "0", CVAR_ARCHIVE, "check edicts for errors" );
|
||||
sv_synchthink = Cvar_Get( "sv_fast_think", "0", CVAR_ARCHIVE, "allows entities to think more often than the server framerate" );
|
||||
physinfo = Cvar_Get( "@physinfo", "0", CVAR_READ_ONLY, "" ); // use ->modified value only
|
||||
serverinfo = Cvar_Get( "@serverinfo", "0", CVAR_READ_ONLY, "" ); // use ->modified value only
|
||||
public_server = Cvar_Get ("public", "0", 0, "change server type from private to public" );
|
||||
|
|
Reference in New Issue