Revert "- Blood: Use more precision for flicker, quake and tilt effects."

This reverts commit 3c09f41b43.

* Fixes #554.
This commit is contained in:
Mitch Richters 2021-10-05 08:43:32 +11:00
parent 5267c1aea6
commit 5732ea0233
2 changed files with 37 additions and 22 deletions

View file

@ -561,11 +561,6 @@ inline int QRandom2(int a1)
return MulScale(qrand(), a1, 14)-a1; return MulScale(qrand(), a1, 14)-a1;
} }
inline double QRandom2F(double a1)
{
return MulScaleF(qrand(), a1, 14)-a1;
}
template<class T> template<class T>
inline void SetBitString(T *pArray, int nIndex) inline void SetBitString(T *pArray, int nIndex)
{ {

View file

@ -359,23 +359,43 @@ void viewUpdateDelirium(void)
void viewUpdateShake(int& cX, int& cY, int& cZ, binangle& cA, fixedhoriz& cH, double& pshakeX, double& pshakeY) void viewUpdateShake(int& cX, int& cY, int& cZ, binangle& cA, fixedhoriz& cH, double& pshakeX, double& pshakeY)
{ {
auto doEffect = [&](const int& effectType) int shakeHoriz = 0;
int shakeAngle = 0;
int shakeX = 0;
int shakeY = 0;
int shakeZ = 0;
int shakeBobX = 0;
int shakeBobY = 0;
if (gView->flickerEffect)
{ {
if (effectType) int nValue = ClipHigh(gView->flickerEffect * 8, 2000);
{ shakeHoriz += QRandom2(nValue >> 8);
int nValue = ClipHigh(effectType * 8, 2000); shakeAngle += QRandom2(nValue >> 8);
cH += buildfhoriz(QRandom2F(nValue * (1. / 256.))); shakeX += QRandom2(nValue >> 4);
cA += buildfang(QRandom2F(nValue * (1. / 256.))); shakeY += QRandom2(nValue >> 4);
cX += QRandom2(nValue >> 4); shakeZ += QRandom2(nValue);
cY += QRandom2(nValue >> 4); shakeBobX += QRandom2(nValue);
cZ += QRandom2(nValue); shakeBobY += QRandom2(nValue);
pshakeX += QRandom2F(nValue); }
pshakeY += QRandom2F(nValue); if (gView->quakeEffect)
} {
}; int nValue = ClipHigh(gView->quakeEffect * 8, 2000);
shakeHoriz += QRandom2(nValue >> 8);
shakeAngle += QRandom2(nValue >> 8);
shakeX += QRandom2(nValue >> 4);
shakeY += QRandom2(nValue >> 4);
shakeZ += QRandom2(nValue);
shakeBobX += QRandom2(nValue);
shakeBobY += QRandom2(nValue);
}
cH += buildhoriz(shakeHoriz);
cA += buildang(shakeAngle);
cX += shakeX;
cY += shakeY;
cZ += shakeZ;
pshakeX += shakeBobX;
pshakeY += shakeBobY;
doEffect(gView->flickerEffect);
doEffect(gView->quakeEffect);
} }
@ -463,7 +483,7 @@ void SetupView(int &cX, int& cY, int& cZ, binangle& cA, fixedhoriz& cH, int& nSe
} }
viewUpdateShake(cX, cY, cZ, cA, cH, shakeX, shakeY); viewUpdateShake(cX, cY, cZ, cA, cH, shakeX, shakeY);
cH += q16horiz(xs_CRoundToInt(MulScaleF(double(0x40000000) - bcosf(gView->tiltEffect << 2, 16), 30, 14))); cH += buildhoriz(MulScale(0x40000000 - Cos(gView->tiltEffect << 2), 30, 30));
if (gViewPos == 0) if (gViewPos == 0)
{ {
if (cl_viewhbob) if (cl_viewhbob)
@ -475,7 +495,7 @@ void SetupView(int &cX, int& cY, int& cZ, binangle& cA, fixedhoriz& cH, int& nSe
{ {
cZ += bobHeight; cZ += bobHeight;
} }
cZ += xs_CRoundToInt(cH.asq16() * (1. / 6553.6)); cZ += xs_CRoundToInt(cH.asq16() / 6553.6);
cameradist = -1; cameradist = -1;
cameraclock = PlayClock + MulScale(4, (int)gInterpolate, 16); cameraclock = PlayClock + MulScale(4, (int)gInterpolate, 16);
} }