- Added MF5_PIERCEARMOR flag that allows damaging objects that aren't

affected by armor.
- Added an unfreeze CCMD so that frozen players can be unfrozen for testing.
- Added special death states for projectiles hitting actors.
- Added ACS SetActorPitch/GetActorPitch functions.
- Added cameraheight property for actors.


SVN r359 (trunk)
This commit is contained in:
Christoph Oelckers 2006-10-22 10:32:41 +00:00
commit 0d5e3cf97e
17 changed files with 128 additions and 28 deletions

View file

@ -1007,7 +1007,7 @@ bool AActor::Massacre ()
//
//----------------------------------------------------------------------------
void P_ExplodeMissile (AActor *mo, line_t *line)
void P_ExplodeMissile (AActor *mo, line_t *line, AActor *target)
{
if (mo->flags3 & MF3_EXPLOCOUNT)
{
@ -1018,7 +1018,17 @@ void P_ExplodeMissile (AActor *mo, line_t *line)
}
mo->momx = mo->momy = mo->momz = 0;
mo->effects = 0; // [RH]
mo->SetState (mo->DeathState);
FState *nextstate=NULL;
if (target != NULL && target->flags & MF_SHOOTABLE)
{
if (target->flags & MF_NOBLOOD) nextstate = mo->CrashState;
if (nextstate == NULL) nextstate = mo->XDeathState;
}
if (nextstate == NULL) nextstate = mo->DeathState;
mo->SetState (nextstate);
if (mo->ObjectFlags & OF_MassDestruction)
{
return;
@ -1131,7 +1141,7 @@ bool AActor::FloorBounceMissile (secplane_t &plane)
// Landed in some sort of liquid
if (flags5 & MF5_EXPLODEONWATER)
{
P_ExplodeMissile(this, NULL);
P_ExplodeMissile(this, NULL, NULL);
return true;
}
if (!(flags3 & MF3_CANBOUNCEWATER))
@ -1144,7 +1154,7 @@ bool AActor::FloorBounceMissile (secplane_t &plane)
// The amount of bounces is limited
if (bouncecount>0 && --bouncecount==0)
{
P_ExplodeMissile(this, NULL);
P_ExplodeMissile(this, NULL, NULL);
return true;
}
@ -1589,7 +1599,7 @@ void P_XYMovement (AActor *mo, fixed_t scrollx, fixed_t scrolly)
}
else
{ // Struck a player/creature
P_ExplodeMissile (mo, NULL);
P_ExplodeMissile (mo, NULL, BlockingMobj);
DoRipping = false;
return;
}
@ -1656,7 +1666,7 @@ explode:
DoRipping = false;
return;
}
P_ExplodeMissile (mo, BlockingLine);
P_ExplodeMissile (mo, BlockingLine, BlockingMobj);
DoRipping = false;
return;
}
@ -1926,7 +1936,7 @@ void P_ZMovement (AActor *mo)
return;
}
P_HitFloor (mo);
P_ExplodeMissile (mo, NULL);
P_ExplodeMissile (mo, NULL, NULL);
return;
}
}
@ -2026,7 +2036,7 @@ void P_ZMovement (AActor *mo)
mo->Destroy ();
return;
}
P_ExplodeMissile (mo, NULL);
P_ExplodeMissile (mo, NULL, NULL);
return;
}
}
@ -4230,7 +4240,7 @@ bool P_CheckMissileSpawn (AActor* th)
}
else
{
P_ExplodeMissile (th, NULL);
P_ExplodeMissile (th, NULL, NULL);
}
return false;
}