- Fixed: The code that checked hitscans entering an actor from above and below

calculated the hit position wrong.


SVN r553 (trunk)
This commit is contained in:
Christoph Oelckers 2007-10-08 09:54:00 +00:00
parent 90db40c70f
commit c81fe8d061
3 changed files with 12 additions and 3 deletions

View file

@ -1,3 +1,7 @@
October 8, 2007 (Changes by Graf Zahl)
- Fixed: The code that checked hitscans entering an actor from above and below
calculated the hit position wrong.
October 5, 2007 (Changes by Graf Zahl) October 5, 2007 (Changes by Graf Zahl)
- Fixed: Tne Imp's raise state sequence was wrong due to a typo. - Fixed: Tne Imp's raise state sequence was wrong due to a typo.
- Fixed: The shotgun had spawn ID 21 instead of 27. - Fixed: The shotgun had spawn ID 21 instead of 27.

View file

@ -1709,7 +1709,11 @@ void M_VerifyNightmare (int ch)
return; return;
G_DeferedInitNew (EpisodeMaps[epi], 4); G_DeferedInitNew (EpisodeMaps[epi], 4);
gamestate = gamestate == GS_FULLCONSOLE ? GS_HIDECONSOLE : gamestate; if (gamestate == GS_FULLCONSOLE)
{
gamestate = GS_HIDECONSOLE;
gameaction = ga_newgame;
}
M_ClearMenus (); M_ClearMenus ();
} }

View file

@ -311,7 +311,8 @@ static bool PTR_TraceIterator (intercept_t *in)
if (Vz >= 0) return true; // Going up: can't hit if (Vz >= 0) return true; // Going up: can't hit
// Does it hit the top of the actor? // Does it hit the top of the actor?
dist = StartZ - (in->d.thing->z + in->d.thing->height); dist = FixedDiv(in->d.thing->z + in->d.thing->height - StartZ, Vz);
if (dist > MaxDist) return true; if (dist > MaxDist) return true;
in->frac = FixedDiv(dist, MaxDist); in->frac = FixedDiv(dist, MaxDist);
@ -324,7 +325,7 @@ static bool PTR_TraceIterator (intercept_t *in)
if (Vz <= 0) return true; // Going down: can't hit if (Vz <= 0) return true; // Going down: can't hit
// Does it hit the bottom of the actor? // Does it hit the bottom of the actor?
dist = in->d.thing->z - StartZ; dist = FixedDiv(in->d.thing->z - StartZ, Vz);
if (dist > MaxDist) return true; if (dist > MaxDist) return true;
in->frac = FixedDiv(dist, MaxDist); in->frac = FixedDiv(dist, MaxDist);