diff --git a/src/p_map.c b/src/p_map.c index c534ee137c67d03ad3e8e722dc9959571b5ce93a..65a5fefabdd16c487bd8e564666d6c480980231e 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -448,9 +448,12 @@ static boolean PIT_CheckThing(mobj_t *thing) return true; } - // Dashmode users destroy spikes and monitors. - if ((tmthing->player) && (tmthing->player->charability == CA_DASHMODE) && (tmthing->player->dashmode >= 3*TICRATE) - && (thing->flags & (MF_MONITOR) || thing->type == MT_SPIKE)) + // CA_DASHMODE users destroy spikes and monitors, CA_TWINSPIN users destroy spikes. + if ((tmthing->player) + && (((tmthing->player->charability == CA_DASHMODE) && (tmthing->player->dashmode >= 3*TICRATE) + && (thing->flags & (MF_MONITOR) || thing->type == MT_SPIKE)) + || ((tmthing->player->charability == CA_TWINSPIN) && (tmthing->player->panim == PA_ABILITY) + && (thing->type == MT_SPIKE)))) { if ((thing->flags & (MF_MONITOR)) && (thing->health <= 0 || !(thing->flags & MF_SHOOTABLE))) return true;