From eadc539bc6b7b0090b7d0d0de0fcb70d4f51fdc3 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 30 May 2010 20:12:32 +0000 Subject: [PATCH] - fixed: Poison clouds spawned by the PoisonShroom should not be pushable by the Disc of Repulsion. SVN r2350 (trunk) --- src/actor.h | 1 + src/p_map.cpp | 3 ++- src/thingdef/thingdef_data.cpp | 1 + wadsrc/static/actors/hexen/flechette.txt | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/actor.h b/src/actor.h index 243c57c90f..9621ab733e 100644 --- a/src/actor.h +++ b/src/actor.h @@ -319,6 +319,7 @@ enum MF6_NOTRIGGER = 0x00010000, // actor cannot trigger any line actions MF6_SHATTERING = 0x00020000, // marks an ice corpse for forced shattering MF6_KILLED = 0x00040000, // Something that was killed (but not necessarily a corpse) + MF6_BLOCKEDBYSOLIDACTORS = 0x00080000, // Blocked by solid actors, even if not solid itself // --- mobj.renderflags --- diff --git a/src/p_map.cpp b/src/p_map.cpp index d13a12c3ff..4888f84795 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -1149,7 +1149,8 @@ bool PIT_CheckThing (AActor *thing, FCheckPosition &tm) } solid = (thing->flags & MF_SOLID) && !(thing->flags & MF_NOCLIP) && - (tm.thing->flags & MF_SOLID); + ((tm.thing->flags & MF_SOLID) || (tm.thing->flags6 & MF6_BLOCKEDBYSOLIDACTORS)); + // Check for special pickup if ((thing->flags & MF_SPECIAL) && (tm.thing->flags & MF_PICKUP) // [RH] The next condition is to compensate for the extra height diff --git a/src/thingdef/thingdef_data.cpp b/src/thingdef/thingdef_data.cpp index 87ac4f198d..7ebb680d82 100644 --- a/src/thingdef/thingdef_data.cpp +++ b/src/thingdef/thingdef_data.cpp @@ -224,6 +224,7 @@ static FFlagDef ActorFlags[]= DEFINE_FLAG(MF6, JUMPDOWN, AActor, flags6), DEFINE_FLAG(MF6, VULNERABLE, AActor, flags6), DEFINE_FLAG(MF6, NOTRIGGER, AActor, flags6), + DEFINE_FLAG(MF6, BLOCKEDBYSOLIDACTORS, AActor, flags6), // Effect flags DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects), diff --git a/wadsrc/static/actors/hexen/flechette.txt b/wadsrc/static/actors/hexen/flechette.txt index a0ad52268a..4820a706db 100644 --- a/wadsrc/static/actors/hexen/flechette.txt +++ b/wadsrc/static/actors/hexen/flechette.txt @@ -142,7 +142,7 @@ ACTOR PoisonCloud native Mass 0x7fffffff +NOBLOCKMAP +NOGRAVITY +DROPOFF +NODAMAGETHRUST - +DONTSPLASH +FOILINVUL +CANBLAST +BLOODLESSIMPACT + +DONTSPLASH +FOILINVUL +CANBLAST +BLOODLESSIMPACT +BLOCKEDBYSOLIDACTORS RenderStyle Translucent Alpha 0.6 DeathSound "PoisonShroomDeath"