mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-22 10:52:23 +00:00
Allow machine skins to damage objects in dashmode
This commit is contained in:
parent
c201879d69
commit
6d498fe357
3 changed files with 14 additions and 8 deletions
|
@ -511,6 +511,10 @@ typedef struct player_s
|
|||
#endif
|
||||
} player_t;
|
||||
|
||||
// Values for dashmode
|
||||
#define DASHMODE_THRESHOLD (3*TICRATE)
|
||||
#define DASHMODE_MAX (DASHMODE_THRESHOLD + 3)
|
||||
|
||||
// Value for infinite lives
|
||||
#define INFLIVES 0x7F
|
||||
|
||||
|
|
|
@ -1096,6 +1096,9 @@ boolean P_PlayerCanDamage(player_t *player, mobj_t *thing)
|
|||
// Spinning.
|
||||
if (player->pflags & PF_SPINNING)
|
||||
return true;
|
||||
|
||||
if (player->dashmode >= DASHMODE_THRESHOLD && player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE))
|
||||
return true;
|
||||
|
||||
// From the front.
|
||||
if (((player->pflags & PF_GLIDING) || (player->charability2 == CA2_MELEE && player->panim == PA_ABILITY2))
|
||||
|
@ -2204,9 +2207,6 @@ boolean P_InSpaceSector(mobj_t *mo) // Returns true if you are in space
|
|||
return false; // No vacuum here, Captain!
|
||||
}
|
||||
|
||||
#define DASHMODE_THRESHOLD (3*TICRATE)
|
||||
#define DASHMODE_MAX (DASHMODE_THRESHOLD + 3)
|
||||
|
||||
//
|
||||
// P_PlayerHitFloor
|
||||
//
|
||||
|
@ -2477,7 +2477,7 @@ static void P_CheckBustableBlocks(player_t *player)
|
|||
&& !(player->powers[pw_super])
|
||||
&& !(player->charability == CA_GLIDEANDCLIMB)
|
||||
&& !(player->pflags & PF_BOUNCING)
|
||||
&& !((player->charflags & SF_DASHMODE) && (player->dashmode >= DASHMODE_THRESHOLD))
|
||||
&& !((player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE)) && (player->dashmode >= DASHMODE_THRESHOLD))
|
||||
&& !((player->charability == CA_TWINSPIN) && (player->panim == PA_ABILITY))
|
||||
&& !(player->charability2 == CA2_MELEE && player->panim == PA_ABILITY2)
|
||||
&& !(player->pflags & PF_DRILLING)
|
||||
|
|
|
@ -754,8 +754,9 @@ static void R_DrawVisSprite(vissprite_t *vis)
|
|||
if (!(vis->cut & SC_PRECIP) && vis->mobj->colorized)
|
||||
dc_translation = R_GetTranslationColormap(TC_RAINBOW, vis->mobj->color, GTC_CACHE);
|
||||
else if (!(vis->cut & SC_PRECIP)
|
||||
&& vis->mobj->player && vis->mobj->player->dashmode >= 108 && vis->mobj->player->charflags & SF_MACHINE
|
||||
&&((leveltime/2) & 1))
|
||||
&& vis->mobj->player && vis->mobj->player->dashmode >= DASHMODE_THRESHOLD
|
||||
&& vis->mobj->player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE)
|
||||
&& ((leveltime/2) & 1))
|
||||
{
|
||||
dc_translation = R_GetTranslationColormap(TC_DASHMODE, 0, GTC_CACHE);
|
||||
}
|
||||
|
@ -781,8 +782,9 @@ static void R_DrawVisSprite(vissprite_t *vis)
|
|||
if (!(vis->cut & SC_PRECIP) && vis->mobj->colorized)
|
||||
dc_translation = R_GetTranslationColormap(TC_RAINBOW, vis->mobj->color, GTC_CACHE);
|
||||
else if (!(vis->cut & SC_PRECIP)
|
||||
&& vis->mobj->player && vis->mobj->player->dashmode >= 108 && vis->mobj->player->charflags & SF_MACHINE
|
||||
&&((leveltime/2) & 1))
|
||||
&& vis->mobj->player && vis->mobj->player->dashmode >= DASHMODE_THRESHOLD
|
||||
&& vis->mobj->player->charflags & (SF_DASHMODE|SF_MACHINE) == (SF_DASHMODE|SF_MACHINE)
|
||||
&& ((leveltime/2) & 1))
|
||||
{
|
||||
dc_translation = R_GetTranslationColormap(TC_DASHMODE, 0, GTC_CACHE);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue