- fixed: MF3_DONTSPLASH disabled all terrain effects, not just the splash.

Untested for now because the report came without any example to check it with.
This commit is contained in:
Christoph Oelckers 2018-06-02 12:10:06 +02:00
parent 58f4af6ded
commit 0c5a47ac90

View file

@ -6504,9 +6504,6 @@ DEFINE_ACTION_FUNCTION(AActor, GetFloorTerrain)
bool P_HitWater (AActor * thing, sector_t * sec, const DVector3 &pos, bool checkabove, bool alert, bool force) bool P_HitWater (AActor * thing, sector_t * sec, const DVector3 &pos, bool checkabove, bool alert, bool force)
{ {
if (thing->flags3 & MF3_DONTSPLASH)
return false;
if (thing->player && (thing->player->cheats & CF_PREDICTING)) if (thing->player && (thing->player->cheats & CF_PREDICTING))
return false; return false;
@ -6595,6 +6592,8 @@ foundone:
if (thing->Mass < 10) if (thing->Mass < 10)
smallsplash = true; smallsplash = true;
if (!(thing->flags3 & MF3_DONTSPLASH))
{
if (smallsplash && splash->SmallSplash) if (smallsplash && splash->SmallSplash)
{ {
mo = Spawn(splash->SmallSplash, pos, ALLOW_REPLACE); mo = Spawn(splash->SmallSplash, pos, ALLOW_REPLACE);
@ -6637,6 +6636,7 @@ foundone:
splash->SmallSplashSound : splash->NormalSplashSound, splash->SmallSplashSound : splash->NormalSplashSound,
1, ATTN_IDLE); 1, ATTN_IDLE);
} }
}
// Don't let deep water eat missiles // Don't let deep water eat missiles
return plane == &sec->floorplane ? Terrains[terrainnum].IsLiquid : false; return plane == &sec->floorplane ? Terrains[terrainnum].IsLiquid : false;
@ -6676,9 +6676,6 @@ bool P_HitFloor (AActor *thing)
return false; return false;
} }
if (thing->flags3 & MF3_DONTSPLASH)
return false;
// don't splash if landing on the edge above water/lava/etc.... // don't splash if landing on the edge above water/lava/etc....
DVector3 pos; DVector3 pos;
for (m = thing->touching_sectorlist; m; m = m->m_tnext) for (m = thing->touching_sectorlist; m; m = m->m_tnext)