diff --git a/src/p_mobj.c b/src/p_mobj.c index f9b5dae5d..9da6b8b80 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8208,13 +8208,26 @@ static boolean P_MobjRegularThink(mobj_t *mobj) invinc_rotation_delay = 8; } - if ((trans >= NUMTRANSMAPS) // not a valid visibility - || (myspeed < (tripspeed - basespeed/2) && (leveltime & 1)) // < 150% flickering - || (mobj->target->player->tripwirePass < TRIPWIRE_BOOST) // Not strong enough to make an aura - || mobj->target->player->flamedash) // Flameshield dash + if ((trans >= NUMTRANSMAPS) || mobj->target->player->flamedash || mobj->target->player->tripwirePass < TRIPWIRE_BOOST) { + // never show for flameshield dash, below tripwire minimum or transparency invalid + mobj->renderflags &= ~RF_TRANSMASK; mobj->renderflags |= RF_DONTDRAW; } + else if (myspeed < (tripspeed - basespeed/2)) + { + mobj->renderflags &= ~(RF_TRANSMASK|RF_DONTDRAW); + if (cv_reducevfx.value) + { + // < 150% make more transparent for reducevfx + mobj->renderflags |= RF_TRANS40; + } + else if (leveltime & 1) + { + // < 150% flickering normally + mobj->renderflags |= RF_DONTDRAW; + } + } else { boolean blastermode = (myspeed >= tripspeed) && (mobj->target->player->tripwirePass >= TRIPWIRE_BLASTER);