mirror of
https://github.com/ValveSoftware/source-sdk-2013.git
synced 2025-04-08 11:01:33 +00:00
Detail props/Aspect ratio fix for multiplayer
https://developer.valvesoftware.com/wiki/Detail_props/Aspect_ratio_fix
This commit is contained in:
parent
162827b8f0
commit
ec3abfa601
1 changed files with 22 additions and 24 deletions
|
@ -1471,25 +1471,6 @@ void CDetailObjectSystem::LevelInitPreEntity()
|
|||
}
|
||||
}
|
||||
|
||||
if ( m_DetailObjects.Count() || m_DetailSpriteDict.Count() )
|
||||
{
|
||||
// There are detail objects in the level, so precache the material
|
||||
PrecacheMaterial( DETAIL_SPRITE_MATERIAL );
|
||||
IMaterial *pMat = m_DetailSpriteMaterial;
|
||||
// adjust for non-square textures (cropped)
|
||||
float flRatio = (float)( pMat->GetMappingWidth() ) / pMat->GetMappingHeight();
|
||||
if ( flRatio > 1.0 )
|
||||
{
|
||||
for( int i = 0; i<m_DetailSpriteDict.Count(); i++ )
|
||||
{
|
||||
m_DetailSpriteDict[i].m_TexUL.y *= flRatio;
|
||||
m_DetailSpriteDict[i].m_TexLR.y *= flRatio;
|
||||
m_DetailSpriteDictFlipped[i].m_TexUL.y *= flRatio;
|
||||
m_DetailSpriteDictFlipped[i].m_TexLR.y *= flRatio;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int detailPropLightingLump;
|
||||
if( g_pMaterialSystemHardwareConfig->GetHDRType() != HDR_TYPE_NONE )
|
||||
{
|
||||
|
@ -1512,13 +1493,30 @@ void CDetailObjectSystem::LevelInitPreEntity()
|
|||
|
||||
void CDetailObjectSystem::LevelInitPostEntity()
|
||||
{
|
||||
const char *pDetailSpriteMaterial = DETAIL_SPRITE_MATERIAL;
|
||||
C_World *pWorld = GetClientWorldEntity();
|
||||
if ( pWorld && pWorld->GetDetailSpriteMaterial() && *(pWorld->GetDetailSpriteMaterial()) )
|
||||
if ( m_DetailObjects.Count() || m_DetailSpriteDict.Count() )
|
||||
{
|
||||
pDetailSpriteMaterial = pWorld->GetDetailSpriteMaterial();
|
||||
const char *pDetailSpriteMaterial = DETAIL_SPRITE_MATERIAL;
|
||||
C_World *pWorld = GetClientWorldEntity();
|
||||
if ( pWorld && pWorld->GetDetailSpriteMaterial() && *(pWorld->GetDetailSpriteMaterial()) )
|
||||
pDetailSpriteMaterial = pWorld->GetDetailSpriteMaterial();
|
||||
|
||||
m_DetailSpriteMaterial.Init( pDetailSpriteMaterial, TEXTURE_GROUP_OTHER );
|
||||
PrecacheMaterial( pDetailSpriteMaterial );
|
||||
IMaterial *pMat = m_DetailSpriteMaterial;
|
||||
|
||||
// adjust for non-square textures (cropped)
|
||||
float flRatio = pMat->GetMappingWidth() / pMat->GetMappingHeight();
|
||||
if ( flRatio > 1.0 )
|
||||
{
|
||||
for( int i = 0; i<m_DetailSpriteDict.Count(); i++ )
|
||||
{
|
||||
m_DetailSpriteDict[i].m_TexUL.y *= flRatio;
|
||||
m_DetailSpriteDict[i].m_TexLR.y *= flRatio;
|
||||
m_DetailSpriteDictFlipped[i].m_TexUL.y *= flRatio;
|
||||
m_DetailSpriteDictFlipped[i].m_TexLR.y *= flRatio;
|
||||
}
|
||||
}
|
||||
}
|
||||
m_DetailSpriteMaterial.Init( pDetailSpriteMaterial, TEXTURE_GROUP_OTHER );
|
||||
|
||||
if ( GetDetailController() )
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue