mirror of
https://github.com/ZDoom/gzdoom-last-svn.git
synced 2025-06-04 19:20:53 +00:00
Update to ZDoom r1921:
- added 'defaultterrain' option to terrain parser for mods that want to have a different default terrain than a generic solid surface. - added format char processing to A_Print(Bold) and all printable messages that can be defined in DECORATE. - Fixed: The railgun code ignored MF3_ALWAYSPUFF. - added desaturated translations. - added optional state parameters to A_ReFire and A_GunFlash and A_CountdownArg. - added ACS CheckActorClass function - fixed: When a blasted actor collided with another one this other actor's DONTBLAST flag was not checked. - added a global DamageFactor actor property. All damage this actor takes is multiplied by this factor in addition to damage type specific damage factors. - added better earthquake functions for ACS and DECORATE. git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@549 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
parent
8bc4df43d0
commit
daf0e06890
22 changed files with 306 additions and 82 deletions
|
@ -886,8 +886,9 @@ bool PIT_CheckThing (AActor *thing, FCheckPosition &tm)
|
|||
// Check for blasted thing running into another
|
||||
if ((tm.thing->flags2 & MF2_BLASTED) && (thing->flags & MF_SHOOTABLE))
|
||||
{
|
||||
if (!(thing->flags2 & MF2_BOSS) && (thing->flags3 & MF3_ISMONSTER))
|
||||
if (!(thing->flags2 & MF2_BOSS) && (thing->flags3 & MF3_ISMONSTER) && !(thing->flags3 & MF3_DONTBLAST))
|
||||
{
|
||||
// ideally this should take the mass factor into account
|
||||
thing->velx += tm.thing->velx;
|
||||
thing->vely += tm.thing->vely;
|
||||
if ((thing->velx + thing->vely) > 3*FRACUNIT)
|
||||
|
@ -3766,6 +3767,7 @@ void P_RailAttack (AActor *source, int damage, int offset, int color1, int color
|
|||
for (i = 0; i < RailHits.Size (); i++)
|
||||
{
|
||||
fixed_t x, y, z;
|
||||
bool spawnpuff;
|
||||
|
||||
x = x1 + FixedMul (RailHits[i].Distance, vx);
|
||||
y = y1 + FixedMul (RailHits[i].Distance, vy);
|
||||
|
@ -3774,13 +3776,15 @@ void P_RailAttack (AActor *source, int damage, int offset, int color1, int color
|
|||
if ((RailHits[i].HitActor->flags & MF_NOBLOOD) ||
|
||||
(RailHits[i].HitActor->flags2 & (MF2_DORMANT|MF2_INVULNERABLE)))
|
||||
{
|
||||
if (puffclass != NULL) P_SpawnPuff (source, puffclass, x, y, z, source->angle - ANG90, 1, PF_HITTHING);
|
||||
spawnpuff = puffclass != NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
spawnpuff = (puffclass != NULL && puffDefaults->flags3 & MF3_ALWAYSPUFF);
|
||||
P_SpawnBlood (x, y, z, source->angle - ANG180, damage, RailHits[i].HitActor);
|
||||
P_TraceBleed (damage, x, y, z, RailHits[i].HitActor, source->angle, pitch);
|
||||
}
|
||||
if (spawnpuff) P_SpawnPuff (source, puffclass, x, y, z, source->angle - ANG90, 1, PF_HITTHING);
|
||||
P_DamageMobj (RailHits[i].HitActor, thepuff? thepuff:source, source, damage, damagetype, DMG_INFLICTOR_IS_PUFF);
|
||||
}
|
||||
|
||||
|
@ -3788,6 +3792,11 @@ void P_RailAttack (AActor *source, int damage, int offset, int color1, int color
|
|||
if (trace.HitType == TRACE_HitWall)
|
||||
{
|
||||
SpawnShootDecal (source, trace);
|
||||
if (puffclass != NULL && puffDefaults->flags3 & MF3_ALWAYSPUFF)
|
||||
{
|
||||
P_SpawnPuff (source, puffclass, trace.X, trace.Y, trace.Z, source->angle - ANG90, 1, 0);
|
||||
}
|
||||
|
||||
}
|
||||
if (trace.HitType == TRACE_HitFloor &&
|
||||
trace.CrossedWater == NULL &&
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue