@@ -905,6 +905,9 @@ void C_OP_RenderSprites::RenderUnsortedNonSpriteCardOriented( CParticleCollectio
905
905
void C_OP_RenderSprites::RenderSpriteCard ( CMeshBuilder &meshBuilder, C_OP_RenderSpritesContext_t *pCtx, SpriteRenderInfo_t& info, int hParticle, ParticleRenderData_t const *pSortList, Vector *pCamera ) const
906
906
{
907
907
Assert ( hParticle != -1 );
908
+ unsigned char ac = pSortList->m_nAlpha ;
909
+ if (! ac )
910
+ return ;
908
911
int nGroup = hParticle / 4 ;
909
912
int nOffset = hParticle & 0x3 ;
910
913
@@ -921,7 +924,6 @@ void C_OP_RenderSprites::RenderSpriteCard( CMeshBuilder &meshBuilder, C_OP_Rende
921
924
unsigned char rc = FastFToC ( r );
922
925
unsigned char gc = FastFToC ( g );
923
926
unsigned char bc = FastFToC ( b );
924
- unsigned char ac = pSortList->m_nAlpha ;
925
927
926
928
float rad = pSortList->m_flRadius ;
927
929
if ( !IsFinite ( rad ) )
@@ -959,16 +961,15 @@ void C_OP_RenderSprites::RenderSpriteCard( CMeshBuilder &meshBuilder, C_OP_Rende
959
961
// float flLifetime = SubFloat( pLifeDuration[ nGroup * ld_stride ], nOffset );
960
962
// flAgeScale = ( flLifetime > 0.0f ) ? ( 1.0f / flLifetime ) * SEQUENCE_SAMPLE_COUNT : 0.0f;
961
963
// }
964
+ int nSequence = SubFloat ( info.m_pSequenceNumber [ nGroup * info.m_nSequenceStride ], nOffset );
962
965
if ( m_bAnimateInFPS )
963
966
{
964
- int nSequence = SubFloat ( info.m_pSequenceNumber [ nGroup * info.m_nSequenceStride ], nOffset );
965
967
flAgeScale = flAgeScale / info.m_pParticles ->m_Sheet ()->m_flFrameSpan [nSequence];
966
968
}
967
969
pSample = GetSampleForSequence ( info.m_pSheet ,
968
970
SubFloat ( info.m_pCreationTimeStamp [ nGroup * info.m_nCreationTimeStride ], nOffset ),
969
971
info.m_pParticles ->m_flCurTime ,
970
- flAgeScale,
971
- SubFloat ( info.m_pSequenceNumber [ nGroup * info.m_nSequenceStride ], nOffset ) );
972
+ flAgeScale, nSequence );
972
973
}
973
974
974
975
const SequenceSampleTextureCoords_t *pSample0 = &(pSample->m_TextureCoordData [0 ]);
@@ -1015,12 +1016,7 @@ void C_OP_RenderSprites::RenderSpriteCard( CMeshBuilder &meshBuilder, C_OP_Rende
1015
1016
meshBuilder.TexCoord4f ( 4 , pSecondTexture0->m_fLeft_U0 , pSecondTexture0->m_fTop_V0 , pSecondTexture0->m_fRight_U0 , pSecondTexture0->m_fBottom_V0 );
1016
1017
meshBuilder.AdvanceVertex ();
1017
1018
1018
- meshBuilder.FastIndex ( info.m_nVertexOffset );
1019
- meshBuilder.FastIndex ( info.m_nVertexOffset + 1 );
1020
- meshBuilder.FastIndex ( info.m_nVertexOffset + 2 );
1021
- meshBuilder.FastIndex ( info.m_nVertexOffset );
1022
- meshBuilder.FastIndex ( info.m_nVertexOffset + 2 );
1023
- meshBuilder.FastIndex ( info.m_nVertexOffset + 3 );
1019
+ meshBuilder.FastQuad ( info.m_nVertexOffset );
1024
1020
info.m_nVertexOffset += 4 ;
1025
1021
}
1026
1022
}
0 commit comments