diff --git a/src/p_user.c b/src/p_user.c index a395aa7cd3b3630ef11ec0274f3ecf5b14c71ec4..312465d753d8b4dc601336055394c169e8859371 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1717,16 +1717,25 @@ static void P_CheckBustableBlocks(player_t *player) continue; // if it's not an FF_SHATTER, you must be spinning (and not jumping) - // or have Knuckles's abilities (or Super Sonic) - // ...or are drilling in NiGHTS (or Metal Sonic) + // or be super + // or have CA_GLIDEANDCLIMB + // or be in dashmode with CA_DASHMODE + // or be using CA_TWINSPIN + // or are drilling in NiGHTS + // or are recording for Metal Sonic if (!(rover->flags & FF_SHATTER) && !(rover->flags & FF_SPINBUST) && !((player->pflags & PF_SPINNING) && !(player->pflags & PF_JUMPED)) - && (player->charability != CA_GLIDEANDCLIMB && !player->powers[pw_super]) - && !(player->pflags & PF_DRILLING) && !metalrecording) + && !(player->powers[pw_super]) + && !(player->charability == CA_GLIDEANDCLIMB) + && !((player->charability == CA_DASHMODE) && (player->dashmode >= 3*TICRATE)) + && !((player->charability == CA_TWINSPIN) && (player->panim == PA_ABILITY)) + && !(player->pflags & PF_DRILLING) + && !metalrecording) continue; - // Only Knuckles can break this rock... - if (!(rover->flags & FF_SHATTER) && (rover->flags & FF_ONLYKNUX) && !(player->charability == CA_GLIDEANDCLIMB)) + // Only CA_GLIDEANDCLIMB or CA_TWINSPIN users can break this rock... + if (!(rover->flags & FF_SHATTER) && (rover->flags & FF_ONLYKNUX) + && !(player->charability == CA_GLIDEANDCLIMB || ((player->charability == CA_TWINSPIN) && (player->panim == PA_ABILITY)))) continue; // Height checks