From 9c5d90e4cbee1c10e3168938fc591862ffe12f86 Mon Sep 17 00:00:00 2001 From: MajorCooke Date: Fri, 20 Feb 2015 01:33:30 -0600 Subject: [PATCH] - Removed QF_SCALEUP until I can figure out a proper way to implement it. --- src/g_shared/a_quake.cpp | 13 ++++--------- src/g_shared/a_sharedglobal.h | 6 +++--- src/r_utility.cpp | 33 +++++++++++++++++++-------------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/g_shared/a_quake.cpp b/src/g_shared/a_quake.cpp index d8e7a13a0..1f13ffd61 100644 --- a/src/g_shared/a_quake.cpp +++ b/src/g_shared/a_quake.cpp @@ -45,9 +45,8 @@ DEarthquake::DEarthquake (AActor *center, int intensityX, int intensityY, int in m_IntensityX = intensityX; m_IntensityY = intensityY; m_IntensityZ = intensityZ; + m_CountdownStart = (double)duration; m_Countdown = duration; - m_Countup = 0; - m_ScaleDownStart = duration; m_Flags = flags; } @@ -133,7 +132,6 @@ void DEarthquake::Tick () } } } - ++m_Countup; if (--m_Countdown == 0) { if (S_IsActorPlayingSomething(m_Spot, CHAN_BODY, m_QuakeSFX)) @@ -154,7 +152,7 @@ void DEarthquake::Tick () //========================================================================== int DEarthquake::StaticGetQuakeIntensities(AActor *victim, - int &x, int &y, int &z, int &relx, int &rely, int &relz, double &scaleDown, double &scaleDownStart, double &scaleUp) + int &x, int &y, int &z, int &relx, int &rely, int &relz, double &scaleDown, double &scaleDownStart) { if (victim->player != NULL && (victim->player->cheats & CF_NOCLIP)) { @@ -188,18 +186,15 @@ int DEarthquake::StaticGetQuakeIntensities(AActor *victim, y = MAX(y, quake->m_IntensityY); z = MAX(z, quake->m_IntensityZ); } - scaleDownStart = scaleDown = scaleUp = 1; if (quake->m_Flags & QF_SCALEDOWN) { + scaleDownStart = quake->m_CountdownStart; scaleDown = (double)quake->m_Countdown; } else { - scaleDownStart = 0.0; - scaleDown = 0.0; + scaleDownStart = scaleDown = 0.0; } - if (quake->m_Flags & QF_SCALEUP) - scaleUp = (double)quake->m_Countup; } } } diff --git a/src/g_shared/a_sharedglobal.h b/src/g_shared/a_sharedglobal.h index 3a8a2c011..f45005856 100644 --- a/src/g_shared/a_sharedglobal.h +++ b/src/g_shared/a_sharedglobal.h @@ -149,14 +149,14 @@ public: void Tick (); TObjPtr m_Spot; fixed_t m_TremorRadius, m_DamageRadius; - int m_ScaleDownStart; int m_Countdown; - int m_Countup; + double m_CountdownStart; + double m_Countup; FSoundID m_QuakeSFX; int m_Flags; int m_IntensityX, m_IntensityY, m_IntensityZ; - static int StaticGetQuakeIntensities(AActor *viewer, int &x, int &y, int &z, int &relx, int &rely, int &relz, double &scaleDown, double &scaleDownStart, double &scaleUp); + static int StaticGetQuakeIntensities(AActor *viewer, int &x, int &y, int &z, int &relx, int &rely, int &relz, double &scaleDown, double &scaleDownStart); private: DEarthquake (); diff --git a/src/r_utility.cpp b/src/r_utility.cpp index bd3cd40e6..ca602a745 100644 --- a/src/r_utility.cpp +++ b/src/r_utility.cpp @@ -770,21 +770,26 @@ bool R_GetViewInterpolationStatus() // //========================================================================== -static double QuakePower(double factor, int intensity, double scaleDown, double scaleDownStart, double scaleUp) +static double QuakePower(double factor, int intensity, double scaleDown, double scaleDownStart) { - double ss = (double)((pr_torchflicker() % (intensity << 2)) - (intensity << 1)); + if (intensity == 0) { return 0; } - else if (!scaleDownStart) - { - return factor * ss; - } else { - return ((factor * ss) * ((scaleDown / scaleDownStart) / 256.0f)); + double ss = (double)((pr_torchflicker() % (intensity << 2)) - (intensity << 1)); + if (scaleDownStart == 0) + { + return factor * ss; + } + else + { + return ((factor * ss) * ((scaleDown / scaleDownStart))); + } } + } //========================================================================== @@ -898,41 +903,41 @@ void R_SetupFrame (AActor *actor) if (!paused) { int intensityX, intensityY, intensityZ, relIntensityX, relIntensityY, relIntensityZ; - double scaleDown, scaleDownStart, scaleUp; + double scaleDown, scaleDownStart; //double sdown = (double)scaleDown; double sdownstart = (double)scaleDownStart; if (DEarthquake::StaticGetQuakeIntensities(camera, intensityX, intensityY, intensityZ, - relIntensityX, relIntensityY, relIntensityZ, scaleDown, scaleDownStart, scaleUp) > 0) + relIntensityX, relIntensityY, relIntensityZ, scaleDown, scaleDownStart) > 0) { double quakefactor = r_quakeintensity; if (relIntensityX != 0) { int ang = (camera->angle) >> ANGLETOFINESHIFT; - fixed_t power = FLOAT2FIXED(QuakePower(quakefactor, relIntensityX, scaleDown, scaleDownStart, scaleUp)); + fixed_t power = FLOAT2FIXED(QuakePower(quakefactor, relIntensityX, scaleDown, scaleDownStart)); viewx += FixedMul(finecosine[ang], power); viewy += FixedMul(finesine[ang], power); } if (relIntensityY != 0) { int ang = (camera->angle + ANG90) >> ANGLETOFINESHIFT; - fixed_t power = FLOAT2FIXED(QuakePower(quakefactor, relIntensityY, scaleDown, scaleDownStart, scaleUp)); + fixed_t power = FLOAT2FIXED(QuakePower(quakefactor, relIntensityY, scaleDown, scaleDownStart)); viewx += FixedMul(finecosine[ang], power); viewy += FixedMul(finesine[ang], power); } if (intensityX != 0) { - viewx += FLOAT2FIXED(QuakePower(quakefactor, intensityX, scaleDown, scaleDownStart, scaleUp)); + viewx += FLOAT2FIXED(QuakePower(quakefactor, intensityX, scaleDown, scaleDownStart)); } if (intensityY != 0) { - viewy += FLOAT2FIXED(QuakePower(quakefactor, intensityY, scaleDown, scaleDownStart, scaleUp)); + viewy += FLOAT2FIXED(QuakePower(quakefactor, intensityY, scaleDown, scaleDownStart)); } // FIXME: Relative Z is not relative intensityZ = MAX(intensityZ, relIntensityZ); if (intensityZ != 0) { - viewz += FLOAT2FIXED(QuakePower(quakefactor, intensityZ, scaleDown, scaleDownStart, scaleUp)); + viewz += FLOAT2FIXED(QuakePower(quakefactor, intensityZ, scaleDown, scaleDownStart)); } } }