mirror of
https://github.com/FWGS/xash3d-fwgs.git
synced 2026-08-08 05:11:51 +08:00
Apply 4344 update
This commit is contained in:
@@ -201,7 +201,11 @@ static void CL_ParseQuakeServerInfo( sizebuf_t *msg )
|
||||
i = MSG_ReadLong( msg );
|
||||
|
||||
if( i != PROTOCOL_VERSION_QUAKE )
|
||||
Host_Error( "Server use invalid protocol (%i should be %i)\n", i, PROTOCOL_VERSION_QUAKE );
|
||||
{
|
||||
Con_Printf( "\n" S_ERROR "Server use invalid protocol (%i should be %i)\n", i, PROTOCOL_VERSION_QUAKE );
|
||||
CL_StopPlayback();
|
||||
Host_AbortCurrentFrame();
|
||||
}
|
||||
|
||||
cl.maxclients = MSG_ReadByte( msg );
|
||||
gametype = MSG_ReadByte( msg );
|
||||
|
||||
@@ -433,12 +433,15 @@ rgbdata_t *Mod_CreateSkinData( model_t *mod, byte *data, int width, int height )
|
||||
skin.palette = (byte *)&clgame.palette;
|
||||
skin.size = width * height;
|
||||
|
||||
for( i = 0; i < skin.width * skin.height; i++ )
|
||||
if( !Image_CustomPalette() )
|
||||
{
|
||||
if( data[i] > 224 && data[i] != 255 )
|
||||
for( i = 0; i < skin.width * skin.height; i++ )
|
||||
{
|
||||
SetBits( skin.flags, IMAGE_HAS_LUMA );
|
||||
break;
|
||||
if( data[i] > 224 && data[i] != 255 )
|
||||
{
|
||||
SetBits( skin.flags, IMAGE_HAS_LUMA );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -478,11 +481,14 @@ rgbdata_t *Mod_CreateSkinData( model_t *mod, byte *data, int width, int height )
|
||||
void *Mod_LoadSingleSkin( daliasskintype_t *pskintype, int skinnum, int size )
|
||||
{
|
||||
string name, lumaname;
|
||||
string checkname;
|
||||
rgbdata_t *pic;
|
||||
|
||||
Q_snprintf( name, sizeof( name ), "%s:frame%i", loadmodel->name, skinnum );
|
||||
Q_snprintf( lumaname, sizeof( lumaname ), "%s:luma%i", loadmodel->name, skinnum );
|
||||
pic = Mod_CreateSkinData( loadmodel, (byte *)(pskintype + 1), m_pAliasHeader->skinwidth, m_pAliasHeader->skinheight );
|
||||
Q_snprintf( checkname, sizeof( checkname ), "%s_%i.tga", loadmodel->name, skinnum );
|
||||
if( !FS_FileExists( checkname, false ) || ( pic = FS_LoadImage( checkname, NULL, 0 )) == NULL )
|
||||
pic = Mod_CreateSkinData( loadmodel, (byte *)(pskintype + 1), m_pAliasHeader->skinwidth, m_pAliasHeader->skinheight );
|
||||
|
||||
m_pAliasHeader->gl_texturenum[skinnum][0] =
|
||||
m_pAliasHeader->gl_texturenum[skinnum][1] =
|
||||
@@ -1445,7 +1451,17 @@ void R_DrawAliasModel( cl_entity_t *e )
|
||||
GL_Bind( GL_TEXTURE0, tr.whiteTexture );
|
||||
else if( pinfo != NULL && pinfo->textures[skin] != 0 )
|
||||
GL_Bind( GL_TEXTURE0, pinfo->textures[skin] ); // FIXME: allow remapping for skingroups someday
|
||||
else GL_Bind( GL_TEXTURE0, m_pAliasHeader->gl_texturenum[skin][anim] );
|
||||
else
|
||||
{
|
||||
GL_Bind( GL_TEXTURE0, m_pAliasHeader->gl_texturenum[skin][anim] );
|
||||
|
||||
if( FBitSet( R_GetTexture( m_pAliasHeader->gl_texturenum[skin][anim] )->flags, TF_HAS_ALPHA ))
|
||||
{
|
||||
pglEnable( GL_ALPHA_TEST );
|
||||
pglAlphaFunc( GL_GREATER, 0.0f );
|
||||
tr.blend = 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
pglTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
|
||||
|
||||
@@ -1472,6 +1488,8 @@ void R_DrawAliasModel( cl_entity_t *e )
|
||||
R_AliasDrawLightTrace( e );
|
||||
|
||||
pglTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE );
|
||||
pglAlphaFunc( GL_GREATER, DEFAULT_ALPHATEST );
|
||||
pglDisable( GL_ALPHA_TEST );
|
||||
|
||||
if( r_shadows.value )
|
||||
{
|
||||
|
||||
@@ -2003,7 +2003,7 @@ void CL_ReadLineFile_f( void )
|
||||
|
||||
count++;
|
||||
|
||||
if( !R_BeamPoints( p1, p2, modelIndex, 99999, 2, 0, 255, 0, 0, 0, 255.0f, 0.0f, 0.0f ))
|
||||
if( !R_BeamPoints( p1, p2, modelIndex, 0, 2, 0, 255, 0, 0, 0, 255.0f, 0.0f, 0.0f ))
|
||||
{
|
||||
if( !model || model->type != mod_sprite )
|
||||
Con_Printf( S_ERROR "failed to load \"%s\"!\n", DEFAULT_LASERBEAM_PATH );
|
||||
|
||||
@@ -723,12 +723,20 @@ void DrawGLPoly( glpoly_t *p, float xScale, float yScale )
|
||||
|
||||
if( p->flags & SURF_CONVEYOR )
|
||||
{
|
||||
gl_texture_t *texture;
|
||||
float flConveyorSpeed;
|
||||
float flConveyorSpeed = 0.0f;
|
||||
float flRate, flAngle;
|
||||
gl_texture_t *texture;
|
||||
|
||||
flConveyorSpeed = (e->curstate.rendercolor.g<<8|e->curstate.rendercolor.b) / 16.0f;
|
||||
if( e->curstate.rendercolor.r ) flConveyorSpeed = -flConveyorSpeed;
|
||||
if( CL_IsQuakeCompatible() && RI.currententity == clgame.entities )
|
||||
{
|
||||
// same as doom speed
|
||||
flConveyorSpeed = -35.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
flConveyorSpeed = (e->curstate.rendercolor.g<<8|e->curstate.rendercolor.b) / 16.0f;
|
||||
if( e->curstate.rendercolor.r ) flConveyorSpeed = -flConveyorSpeed;
|
||||
}
|
||||
texture = R_GetTexture( glState.currentTextures[glState.activeTMU] );
|
||||
|
||||
flRate = abs( flConveyorSpeed ) / (float)texture->srcWidth;
|
||||
|
||||
@@ -189,6 +189,11 @@ void Mod_LoadSpriteModel( model_t *mod, const void *buffer, qboolean *loaded, ui
|
||||
psprite->radius = pinq1->boundingradius;
|
||||
psprite->synctype = pinq1->synctype;
|
||||
|
||||
// LordHavoc: hack to allow sprites to be non-fullbright
|
||||
for( i = 0; i < MAX_QPATH && mod->name[i]; i++ )
|
||||
if( mod->name[i] == '!' )
|
||||
psprite->texFormat = SPR_ALPHTEST;
|
||||
|
||||
mod->mins[0] = mod->mins[1] = -pinq1->bounds[0] * 0.5f;
|
||||
mod->maxs[0] = mod->maxs[1] = pinq1->bounds[0] * 0.5f;
|
||||
mod->mins[2] = -pinq1->bounds[1] * 0.5f;
|
||||
|
||||
Reference in New Issue
Block a user