Added QF_3D flag for quakes. When used, the quake thinker will perform a 3D distance check instead of 2D.

This commit is contained in:
Major Cooke 2022-05-08 00:03:05 -05:00 committed by Christoph Oelckers
parent c12c4444e4
commit 9dea7cbaf9
3 changed files with 7 additions and 1 deletions

View file

@ -112,6 +112,7 @@ enum
QF_MAX = 1 << 3, QF_MAX = 1 << 3,
QF_FULLINTENSITY = 1 << 4, QF_FULLINTENSITY = 1 << 4,
QF_WAVE = 1 << 5, QF_WAVE = 1 << 5,
QF_3D = 1 << 6,
}; };
struct FQuakeJiggers struct FQuakeJiggers

View file

@ -297,7 +297,11 @@ int DEarthquake::StaticGetQuakeIntensities(double ticFrac, AActor *victim, FQuak
{ {
if (quake->m_Spot != nullptr) if (quake->m_Spot != nullptr)
{ {
const double dist = quake->m_Spot->Distance2D(victim, true); double dist;
if (quake->m_Flags & QF_3D) dist = quake->m_Spot->Distance3D(victim, true);
else dist = quake->m_Spot->Distance2D(victim, true);
if (dist < quake->m_TremorRadius) if (dist < quake->m_TremorRadius)
{ {
++count; ++count;

View file

@ -633,6 +633,7 @@ enum EQuakeFlags
QF_MAX = 1 << 3, QF_MAX = 1 << 3,
QF_FULLINTENSITY = 1 << 4, QF_FULLINTENSITY = 1 << 4,
QF_WAVE = 1 << 5, QF_WAVE = 1 << 5,
QF_3D = 1 << 6,
}; };
// A_CheckProximity flags // A_CheckProximity flags