- Changed pickup sounds of local player to unpaused to resolve problems with

the time freezer and make them behave better.
- Fixed: When sounds are paused not all newly started sounds should actually
  be played.
- Fixed: SBARINFO had no means to check if a weapon uses any ammo at all and
  as a result the inventory icon was misplaced if a no-ammo weapon was selected.

SVN r1343 (trunk)
This commit is contained in:
Christoph Oelckers 2009-01-01 15:09:49 +00:00
commit 6a321fd8f5
11 changed files with 166 additions and 45 deletions

View file

@ -29,18 +29,35 @@ void AFastProjectile::Tick ()
// [RH] Ripping is a little different than it was in Hexen
FCheckPosition tm(!!(flags2 & MF2_RIP));
int shift = 3;
int count = 8;
if (radius > 0)
{
while ( ((momx >> shift) > radius) || ((momy >> shift) > radius))
{
// we need to take smaller steps.
shift++;
count<<=1;
}
}
// Handle movement
if (momx || momy || (z != floorz) || momz)
{
xfrac = momx>>3;
yfrac = momy>>3;
zfrac = momz>>3;
xfrac = momx>>shift;
yfrac = momy>>shift;
zfrac = momz>>shift;
changexy = xfrac || yfrac;
for (i = 0; i < 8; i++)
int ripcount = count >> 3;
for (i = 0; i < count; i++)
{
if (changexy)
{
tm.LastRipped = NULL; // [RH] Do rip damage each step, like Hexen
if (--ripcount <= 0)
{
tm.LastRipped = NULL; // [RH] Do rip damage each step, like Hexen
ripcount = count >> 3;
}
if (!P_TryMove (this, x + xfrac,y + yfrac, true, false, tm))
{ // Blocked move
P_ExplodeMissile (this, BlockingLine, BlockingMobj);