mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
- Blood: ported BloodGDX's fix for the double shotgun graphics glitch.
Fixes #114
This commit is contained in:
parent
2db60ae847
commit
182b8023ca
2 changed files with 21 additions and 1 deletions
|
@ -875,7 +875,7 @@ int GetClosestSpriteSectors(int nSector, int x, int y, int nDist, uint8_t *pSect
|
|||
}
|
||||
i++;
|
||||
}
|
||||
walls[m] = -1;
|
||||
if (walls) walls[m] = -1;
|
||||
return n;
|
||||
}
|
||||
|
||||
|
|
|
@ -261,6 +261,15 @@ void WeaponPrecache(HitList &hits)
|
|||
}
|
||||
}
|
||||
|
||||
bool isOriginalQAV()
|
||||
{
|
||||
static int cached = -1;
|
||||
if (cached != -1) return cached;
|
||||
int lump = fileSystem.FindResource(60, "QAV");
|
||||
cached = lump >= 0 && fileSystem.GetFileContainer(lump) < fileSystem.GetMaxIwadNum();
|
||||
return cached;
|
||||
}
|
||||
|
||||
void WeaponDraw(PLAYER *pPlayer, int shade, double xpos, double ypos, int palnum, int smoothratio)
|
||||
{
|
||||
assert(pPlayer != NULL);
|
||||
|
@ -268,6 +277,17 @@ void WeaponDraw(PLAYER *pPlayer, int shade, double xpos, double ypos, int palnum
|
|||
return;
|
||||
QAV * pQAV = weaponQAV[pPlayer->weaponQav];
|
||||
int duration;
|
||||
|
||||
if (pPlayer->weaponTimer == 0) // playing idle QAV?
|
||||
{
|
||||
// Double shotgun fix from BloodGDX.
|
||||
if (/*!IsOriginalDemo() &&*/ (pPlayer->weaponState == -1 || (pPlayer->curWeapon == 3 && pPlayer->weaponState == 7)) && isOriginalQAV())
|
||||
duration = pQAV->duration - 1;
|
||||
else duration = (gFrameClock + mulscale16(4, smoothratio)) % pQAV->duration;
|
||||
}
|
||||
else duration = pQAV->duration - pPlayer->weaponTimer;
|
||||
|
||||
|
||||
if (pPlayer->weaponTimer == 0)
|
||||
duration = (gFrameClock + mulscale16(4, smoothratio)) % pQAV->duration;
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue