Apply 4344 update

This commit is contained in:
Alibek Omarov
2018-12-30 01:43:07 +03:00
parent 622de7a7f1
commit bf07a9e61e
13 changed files with 148 additions and 58 deletions

View File

@@ -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 );

View File

@@ -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 )
{

View File

@@ -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 );

View File

@@ -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;

View File

@@ -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;