- Fixed: Floor and ceiling huggers' velocity was wrong when used with

P_SpawnPlayerMissile.
- Fixed: When hitting a voodoo doll the real player needs to be checked for 
  invulnerability.


SVN r1885 (trunk)
This commit is contained in:
Christoph Oelckers 2009-09-27 20:54:46 +00:00
parent c628ac48cd
commit f2c77c5f08
3 changed files with 15 additions and 9 deletions

View file

@ -1,4 +1,8 @@
September 27, 2009 (Changes by Graf Zahl) September 27, 2009 (Changes by Graf Zahl)
- Fixed: Floor and ceiling huggers' velocity was wrong when used with
P_SpawnPlayerMissile.
- Fixed: When hitting a voodoo doll the real player needs to be checked for
invulnerability.
- Fixed: G_QueueBody was not notifying the translation that it was changed. - Fixed: G_QueueBody was not notifying the translation that it was changed.
- Fixed: The multitexture composition code was missing a NULL pointer check. - Fixed: The multitexture composition code was missing a NULL pointer check.
- fixed: The changes for new colormap handling in FMultipatchtexture were incomplete. - fixed: The changes for new colormap handling in FMultipatchtexture were incomplete.

View file

@ -1088,6 +1088,7 @@ void P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage
// //
if (player) if (player)
{ {
//Added by MC: Lets bots look allround for enemies if they survive an ambush. //Added by MC: Lets bots look allround for enemies if they survive an ambush.
if (player->isbot) if (player->isbot)
{ {
@ -1103,8 +1104,9 @@ void P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage
if (!(flags & DMG_FORCED)) if (!(flags & DMG_FORCED))
{ {
if (damage < TELEFRAG_DAMAGE && ((target->flags2 & MF2_INVULNERABLE) || // check the real player, not a voodoo doll here for invulnerability effects
(target->player->cheats & CF_GODMODE))) if (damage < TELEFRAG_DAMAGE && ((player->mo->flags2 & MF2_INVULNERABLE) ||
(player->cheats & CF_GODMODE)))
{ // player is invulnerable, so don't hurt him { // player is invulnerable, so don't hurt him
return; return;
} }

View file

@ -5177,16 +5177,16 @@ AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z,
vz = -finesine[pitch>>ANGLETOFINESHIFT]; vz = -finesine[pitch>>ANGLETOFINESHIFT];
speed = MissileActor->Speed; speed = MissileActor->Speed;
MissileActor->velx = FixedMul (vx, speed); FVector3 vec(vx, vy, vz);
MissileActor->vely = FixedMul (vy, speed);
if (MissileActor->flags3 & (MF3_FLOORHUGGER|MF3_CEILINGHUGGER)) if (MissileActor->flags3 & (MF3_FLOORHUGGER|MF3_CEILINGHUGGER))
{ {
MissileActor->velz = 0; vec.Z = 0;
}
else
{
MissileActor->velz = FixedMul (vz, speed);
} }
vec.Resize(speed);
MissileActor->velx = (fixed_t)vec.X;
MissileActor->vely = (fixed_t)vec.Y;
MissileActor->velz = (fixed_t)vec.Z;
if (MissileActor->flags4 & MF4_SPECTRAL) if (MissileActor->flags4 & MF4_SPECTRAL)
MissileActor->health = -1; MissileActor->health = -1;