mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
- Blood: Revert "- Blood: Ensure looped QAVs interpolate using last frame in the array."
This commit is contained in:
parent
916241dcdb
commit
5bfdd74844
5 changed files with 12 additions and 14 deletions
|
@ -46,16 +46,14 @@ public:
|
|||
int lastTick;
|
||||
bool bWideScreen;
|
||||
bool bClearBackground;
|
||||
bool bLooped;
|
||||
CGameMenuItemQAV(int, int, const char*, bool widescreen = false, bool clearbackground = false, bool looped = false);
|
||||
CGameMenuItemQAV(int, int, const char*, bool widescreen = false, bool clearbackground = false);
|
||||
void Draw(void);
|
||||
};
|
||||
|
||||
CGameMenuItemQAV::CGameMenuItemQAV(int a3, int a4, const char* name, bool widescreen, bool clearbackground, bool looped)
|
||||
CGameMenuItemQAV::CGameMenuItemQAV(int a3, int a4, const char* name, bool widescreen, bool clearbackground)
|
||||
{
|
||||
bWideScreen = widescreen;
|
||||
bClearBackground = clearbackground;
|
||||
bLooped = looped;
|
||||
|
||||
if (name)
|
||||
{
|
||||
|
@ -96,13 +94,13 @@ void CGameMenuItemQAV::Draw(void)
|
|||
int backX = data->x;
|
||||
for (int i = 0; i < nCount; i++)
|
||||
{
|
||||
data->Draw(currentDuration, 10 + kQavOrientationLeft, 0, 0, false, smoothratio, bLooped);
|
||||
data->Draw(currentDuration, 10 + kQavOrientationLeft, 0, 0, false, smoothratio);
|
||||
data->x += 320;
|
||||
}
|
||||
data->x = backX;
|
||||
}
|
||||
else
|
||||
data->Draw(currentDuration, 10, 0, 0, false, smoothratio, bLooped);
|
||||
data->Draw(currentDuration, 10, 0, 0, false, smoothratio);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -137,7 +135,7 @@ void UpdateNetworkMenus(void)
|
|||
|
||||
void GameInterface::MenuOpened()
|
||||
{
|
||||
itemBloodQAV.reset(new CGameMenuItemQAV(160, 100, "BDRIP.QAV", true, false, true));
|
||||
itemBloodQAV.reset(new CGameMenuItemQAV(160, 100, "BDRIP.QAV", true));
|
||||
}
|
||||
|
||||
void GameInterface::MenuClosed()
|
||||
|
|
|
@ -6205,13 +6205,13 @@ void playerQavSceneDraw(PLAYER* pPlayer, int a2, double a3, double a4, int a5) {
|
|||
if (!(pSprite->flags & kModernTypeFlag1)) {
|
||||
|
||||
pQAV->x = int(a3); pQAV->y = int(a4);
|
||||
pQAV->Draw(a3, a4, v4, flags, a2, a5, true, smoothratio, pPlayer->qavLoop);
|
||||
pQAV->Draw(a3, a4, v4, flags, a2, a5, true, smoothratio);
|
||||
|
||||
// draw fullscreen (currently 4:3 only)
|
||||
} else {
|
||||
// What an awful hack. This throws proper ordering out of the window, but there is no way to reproduce this better with strict layering of elements.
|
||||
// From the above commit it seems to be incomplete anyway...
|
||||
pQAV->Draw(v4, flags, a2, a5, false, smoothratio, pPlayer->qavLoop);
|
||||
pQAV->Draw(v4, flags, a2, a5, false, smoothratio);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -139,7 +139,7 @@ void DrawFrame(double x, double y, double z, double a, TILE_FRAME *pTile, int st
|
|||
}
|
||||
}
|
||||
|
||||
void QAV::Draw(double x, double y, int ticks, int stat, int shade, int palnum, bool to3dview, double const smoothratio, bool const looped)
|
||||
void QAV::Draw(double x, double y, int ticks, int stat, int shade, int palnum, bool to3dview, double const smoothratio)
|
||||
{
|
||||
assert(ticksPerFrame > 0);
|
||||
|
||||
|
@ -148,7 +148,7 @@ void QAV::Draw(double x, double y, int ticks, int stat, int shade, int palnum, b
|
|||
auto const nFrame = clamp(ticks / ticksPerFrame, 0, nFrames - 1);
|
||||
FRAMEINFO* const thisFrame = &frames[nFrame];
|
||||
|
||||
auto const oFrame = clamp((nFrame == 0 && (looped || interpdata && (interpdata->flags & kQAVIsLoopable)) ? nFrames : nFrame) - 1, 0, nFrames - 1);
|
||||
auto const oFrame = clamp((nFrame == 0 && (interpdata && (interpdata->flags & kQAVIsLoopable)) ? nFrames : nFrame) - 1, 0, nFrames - 1);
|
||||
FRAMEINFO* const prevFrame = &frames[oFrame];
|
||||
|
||||
bool const interpolate = interpdata && cl_hudinterpolation && cl_bloodqavinterp && (nFrames > 1) && (nFrame != oFrame) && (smoothratio != MaxSmoothRatio);
|
||||
|
|
|
@ -232,8 +232,8 @@ struct QAV
|
|||
char pad3[2]; // 20
|
||||
unsigned short res_id;
|
||||
FRAMEINFO frames[1]; // 24
|
||||
void Draw(double x, double y, int ticks, int stat, int shade, int palnum, bool to3dview, double const smoothratio = 65536, bool const looped = false);
|
||||
void Draw(int ticks, int stat, int shade, int palnum, bool to3dview, double const smoothratio = 65536, bool const looped = false) { Draw(x, y, ticks, stat, shade, palnum, to3dview, smoothratio, looped); }
|
||||
void Draw(double x, double y, int ticks, int stat, int shade, int palnum, bool to3dview, double const smoothratio = 65536);
|
||||
void Draw(int ticks, int stat, int shade, int palnum, bool to3dview, double const smoothratio = 65536) { Draw(x, y, ticks, stat, shade, palnum, to3dview, smoothratio); }
|
||||
void Play(int, int, int, void *);
|
||||
void Precache(int palette = 0);
|
||||
};
|
||||
|
|
|
@ -264,7 +264,7 @@ void WeaponDraw(PLAYER *pPlayer, int shade, double xpos, double ypos, int palnum
|
|||
shade = -128;
|
||||
flags |= 1;
|
||||
}
|
||||
pQAV->Draw(xpos, ypos, duration, flags, shade, palnum, true, smoothratio, pPlayer->qavLoop);
|
||||
pQAV->Draw(xpos, ypos, duration, flags, shade, palnum, true, smoothratio);
|
||||
}
|
||||
|
||||
void WeaponPlay(PLAYER *pPlayer)
|
||||
|
|
Loading…
Reference in a new issue