Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions Generals/Code/GameEngine/Source/GameClient/Drawable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2163,15 +2163,25 @@ void Drawable::setStealthLook(StealthLookType look)
//-------------------------------------------------------------------------------------------------
void Drawable::draw()
{

if ( getObject() && getObject()->isEffectivelyDead() )
m_heatVisionOpacity = 0.0f;//dead folks don't stealth anyway
else if ( m_heatVisionOpacity > VERY_TRANSPARENT_HEATVISION )// keep fading any heatvision unless something has set it to zero
m_heatVisionOpacity *= HEATVISION_FADE_SCALAR;
else
{
//dead folks don't stealth anyway
m_heatVisionOpacity = 0.0f;
}
else if ( m_heatVisionOpacity > VERY_TRANSPARENT_HEATVISION )
{
// keep fading any added material unless something has set it to zero
// TheSuperHackers @tweak The stealth opacity fade time step is now decoupled from the render update.
static_assert(HEATVISION_FADE_SCALAR > 0.0f && HEATVISION_FADE_SCALAR < 1.0f, "HEATVISION_FADE_SCALAR must be between 0 and 1");


const Real timeScale = TheFramePacer->getActualLogicTimeScaleOverFpsRatio();
const Real fadeScalar = 1.0f - (1.0f - HEATVISION_FADE_SCALAR) * timeScale;
m_heatVisionOpacity *= fadeScalar;
}
else
{
m_heatVisionOpacity = 0.0f;
}

if (m_hidden || m_hiddenByStealth || getFullyObscuredByShroud())
return; // my, that was easy
Expand Down
30 changes: 21 additions & 9 deletions GeneralsMD/Code/GameEngine/Source/GameClient/Drawable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2607,16 +2607,28 @@ void Drawable::setStealthLook(StealthLookType look)
//-------------------------------------------------------------------------------------------------
void Drawable::draw()
{
if ( testTintStatus( TINT_STATUS_FRENZY ) == FALSE )
{
if ( getObject() && getObject()->isEffectivelyDead() )
m_secondMaterialPassOpacity = 0.0f;//dead folks don't stealth anyway
else if ( m_secondMaterialPassOpacity > VERY_TRANSPARENT_MATERIAL_PASS_OPACITY )// keep fading any add'l material unless something has set it to zero
m_secondMaterialPassOpacity *= MATERIAL_PASS_OPACITY_FADE_SCALAR;
else
m_secondMaterialPassOpacity = 0.0f;
}
if ( testTintStatus( TINT_STATUS_FRENZY ) == FALSE )
{
if ( getObject() && getObject()->isEffectivelyDead() )
{
//dead folks don't stealth anyway
m_secondMaterialPassOpacity = 0.0f;
}
else if ( m_secondMaterialPassOpacity > VERY_TRANSPARENT_MATERIAL_PASS_OPACITY )
{
// keep fading any added material unless something has set it to zero
// TheSuperHackers @tweak The stealth opacity fade time step is now decoupled from the render update.
static_assert(MATERIAL_PASS_OPACITY_FADE_SCALAR > 0.0f && MATERIAL_PASS_OPACITY_FADE_SCALAR < 1.0f, "MATERIAL_PASS_OPACITY_FADE_SCALAR must be between 0 and 1");

const Real timeScale = TheFramePacer->getActualLogicTimeScaleOverFpsRatio();
const Real fadeScalar = 1.0f - (1.0f - MATERIAL_PASS_OPACITY_FADE_SCALAR) * timeScale;
m_secondMaterialPassOpacity *= fadeScalar;
}
else
{
m_secondMaterialPassOpacity = 0.0f;
}
}

if (m_hidden || m_hiddenByStealth || getFullyObscuredByShroud())
return; // my, that was easy
Expand Down
Loading