diff --git a/src/p_mobj.c b/src/p_mobj.c index 7a3ce36e3..bd86b2d4c 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7881,7 +7881,9 @@ static boolean P_MobjPushableThink(mobj_t *mobj) P_PushableThinker(mobj); // Extinguish fire objects in water. (Yes, it's extraordinarily rare to have a pushable flame object, but Brak uses such a case.) - if ((mobj->flags & MF_FIRE) && !(mobj->eflags & MFE_TOUCHLAVA) + if (mapnamespace != MNS_RINGRACERS + && mobj->flags & MF_FIRE + && (mapnamespace == MNS_SRB2KART ? mobj->type != MT_PUMA && mobj->type != MT_FIREBALL : !(mobj->eflags & MFE_TOUCHLAVA)) && (mobj->eflags & (MFE_UNDERWATER | MFE_TOUCHWATER))) { P_KillMobj(mobj, NULL, NULL, 0); @@ -10283,7 +10285,9 @@ static boolean P_MobjRegularThink(mobj_t *mobj) // check mobj against possible water content, before movement code P_MobjCheckWater(mobj); // Extinguish fire objects in water - if ((mobj->flags & MF_FIRE) && !(mobj->eflags & MFE_TOUCHLAVA) + if (mapnamespace != MNS_RINGRACERS + && mobj->flags & MF_FIRE + && (mapnamespace == MNS_SRB2KART ? mobj->type != MT_PUMA && mobj->type != MT_FIREBALL : !(mobj->eflags & MFE_TOUCHLAVA)) && (mobj->eflags & (MFE_UNDERWATER|MFE_TOUCHWATER))) { P_KillMobj(mobj, NULL, NULL, 0);