mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-25 05:21:16 +00:00
- Gave Strife's PhosphorousFire the MF2_NODMGTHRUST flag so that its
damage is truly thrustless. The 'thrustless' parameter disabled all thrust done by PIT_RadiusDamage but not the one done by P_DamageMobj. Also gave Hexen's poison cloud the MF3_BLOODLESSIMPACT flag and made spawning of blood decals in PIT_RadiusAttack depend on that. Since with these changes the 'bombthrustless' argument to P_RadiusAttack is no longer useful I removed it. SVN r285 (trunk)
This commit is contained in:
parent
8e2c37957e
commit
b8312a9bd8
6 changed files with 18 additions and 14 deletions
|
@ -1,4 +1,11 @@
|
|||
August 10, 2006 (Changes by Graf Zahl)
|
||||
- Gave Strife's PhosphorousFire the MF2_NODMGTHRUST flag so that its
|
||||
damage is truly thrustless. The 'thrustless' parameter disabled all
|
||||
thrust done by PIT_RadiusDamage but not the one done by P_DamageMobj.
|
||||
Also gave Hexen's poison cloud the MF3_BLOODLESSIMPACT flag and made
|
||||
spawning of blood decals in PIT_RadiusAttack depend on that. Since with
|
||||
these changes the 'bombthrustless' argument to P_RadiusAttack is no
|
||||
longer useful I removed it.
|
||||
- Fixed: CheckActorInventory stored the return value in the wrong address
|
||||
on the ACS stack.
|
||||
- Fixed: Skin sounds weren't properly restored after a SNDINFO reset.
|
||||
|
|
|
@ -403,7 +403,7 @@ IMPLEMENT_ACTOR (APoisonCloud, Hexen, -1, 0)
|
|||
PROP_MassLong (0x7fffffff)
|
||||
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DROPOFF)
|
||||
PROP_Flags2 (MF2_NODMGTHRUST)
|
||||
PROP_Flags3 (MF3_DONTSPLASH|MF3_FOILINVUL|MF3_CANBLAST)
|
||||
PROP_Flags3 (MF3_DONTSPLASH|MF3_FOILINVUL|MF3_CANBLAST|MF3_BLOODLESSIMPACT)
|
||||
PROP_RenderStyle (STYLE_Translucent)
|
||||
PROP_Alpha (HX_SHADOW)
|
||||
|
||||
|
|
|
@ -1565,7 +1565,7 @@ IMPLEMENT_ACTOR (APhosphorousFire, Strife, -1, 0)
|
|||
PROP_ReactionTime (120)
|
||||
PROP_DamageType (MOD_FIRE)
|
||||
PROP_Flags (MF_NOBLOCKMAP)
|
||||
PROP_Flags2 (MF2_FLOORCLIP|MF2_NOTELEPORT)
|
||||
PROP_Flags2 (MF2_FLOORCLIP|MF2_NOTELEPORT|MF2_NODMGTHRUST)
|
||||
PROP_RenderStyle (STYLE_Add)
|
||||
END_DEFAULTS
|
||||
|
||||
|
@ -1585,7 +1585,7 @@ void A_SpawnBurn (AActor *self)
|
|||
|
||||
void A_BurnArea (AActor *self)
|
||||
{
|
||||
P_RadiusAttack (self, self->target, 128, 128, self->DamageType, true, true);
|
||||
P_RadiusAttack (self, self->target, 128, 128, self->DamageType, true);
|
||||
}
|
||||
|
||||
void A_Burnination (AActor *self)
|
||||
|
|
|
@ -315,7 +315,7 @@ extern fixed_t CameraX, CameraY, CameraZ;
|
|||
extern sector_t *CameraSector;
|
||||
|
||||
// [RH] Means of death
|
||||
void P_RadiusAttack (AActor *spot, AActor *source, int damage, int distance, int damageType, bool hurtSelf, bool thrustless=false, bool dodamage=true);
|
||||
void P_RadiusAttack (AActor *spot, AActor *source, int damage, int distance, int damageType, bool hurtSelf, bool dodamage=true);
|
||||
|
||||
void P_DelSector_List();
|
||||
void P_DelSeclist(msecnode_t *); // phares 3/16/98
|
||||
|
|
|
@ -3415,7 +3415,6 @@ float bombdistancefloat;
|
|||
bool DamageSource;
|
||||
int bombmod;
|
||||
vec3_t bombvec;
|
||||
bool bombthrustless;
|
||||
bool bombdodamage;
|
||||
|
||||
//=============================================================================
|
||||
|
@ -3525,13 +3524,12 @@ BOOL PIT_RadiusAttack (AActor *thing)
|
|||
|
||||
if (bombdodamage) P_DamageMobj (thing, bombspot, bombsource, damage, bombmod);
|
||||
else thing->flags2 |= MF2_BLASTED;
|
||||
|
||||
if (!(bombspot->flags2 & MF2_NODMGTHRUST) &&
|
||||
!(thing->flags & MF_ICECORPSE))
|
||||
{
|
||||
if (bombdodamage) P_TraceBleed (damage, thing, bombspot);
|
||||
|
||||
if (!bombthrustless)
|
||||
if (!(thing->flags & MF_ICECORPSE))
|
||||
{
|
||||
if (bombdodamage && !(bombspot->flags3 & MF3_BLOODLESSIMPACT)) P_TraceBleed (damage, thing, bombspot);
|
||||
|
||||
if (!(bombspot->flags2 & MF2_NODMGTHRUST))
|
||||
{
|
||||
thrust = points * 0.5f / (float)thing->Mass;
|
||||
if (bombsource == thing)
|
||||
|
@ -3593,7 +3591,7 @@ BOOL PIT_RadiusAttack (AActor *thing)
|
|||
// Source is the creature that caused the explosion at spot.
|
||||
//
|
||||
void P_RadiusAttack (AActor *spot, AActor *source, int damage, int distance, int damageType,
|
||||
bool hurtSource, bool thrustless, bool dodamage)
|
||||
bool hurtSource, bool dodamage)
|
||||
{
|
||||
static TArray<AActor *> radbt;
|
||||
|
||||
|
@ -3614,7 +3612,6 @@ void P_RadiusAttack (AActor *spot, AActor *source, int damage, int distance, int
|
|||
bombdamage = damage;
|
||||
bombdistance = distance;
|
||||
bombdistancefloat = 1.f / (float)distance;
|
||||
bombthrustless = thrustless;
|
||||
DamageSource = hurtSource;
|
||||
bombdamagefloat = (float)damage;
|
||||
bombmod = damageType;
|
||||
|
|
|
@ -505,7 +505,7 @@ void A_RadiusThrust (AActor *self)
|
|||
if (force == 0) force = 128;
|
||||
if (distance == 0) distance = force;
|
||||
|
||||
P_RadiusAttack (self, self->target, force, distance, self->DamageType, affectSource, false, false);
|
||||
P_RadiusAttack (self, self->target, force, distance, self->DamageType, affectSource, false);
|
||||
if (self->z <= self->floorz + (distance<<FRACBITS))
|
||||
{
|
||||
P_HitFloor (self);
|
||||
|
|
Loading…
Reference in a new issue