Turn sparkles that warn you when you're about to hit a new drift spark!

This commit is contained in:
Sally Cochenour 2020-03-15 21:59:22 -04:00
parent 7d1c132ca2
commit c4dd88bbae
4 changed files with 63 additions and 4 deletions

View file

@ -6359,6 +6359,12 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_DRIFTDUST3",
"S_DRIFTDUST4",
// Drift Sparkles
"S_DRIFTWARNSPARK1",
"S_DRIFTWARNSPARK2",
"S_DRIFTWARNSPARK3",
"S_DRIFTWARNSPARK4",
// Fast lines
"S_FASTLINE1",
"S_FASTLINE2",

View file

@ -57,10 +57,10 @@ char sprnames[NUMSPRITES + 1][5] =
"SRBL","SRBM","SRBN","SRBO",
//SRB2kart Sprites
"RNDM","RPOP","SGNS","FAST","DSHR","BOST","BOSM","KFRE","KINV","KINF",
"WIPD","DRIF","BDRF","DUST","RSHE","FITM","BANA","ORBN","JAWZ","SSMN",
"KRBM","BHOG","BHBM","SPBM","THNS","SINK","SITR","KBLN","DEZL","POKE",
"AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB","CHOM","SACO","CRAB",
"BRNG","BUMP","FLEN","CLAS","PSHW","ISTA","ISTB","ARRO","ITEM",
"WIPD","DRIF","BDRF","DUST","DRWS","RSHE","FITM","BANA","ORBN","JAWZ",
"SSMN","KRBM","BHOG","BHBM","SPBM","THNS","SINK","SITR","KBLN","DEZL",
"POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB","CHOM","SACO",
"CRAB","BRNG","BUMP","FLEN","CLAS","PSHW","ISTA","ISTB","ARRO","ITEM",
"ITMO","ITMI","ITMN","WANT","PBOM","HIT1","HIT2","HIT3","RETI","AIDU",
"KSPK","LZI1","LZI2","KLIT","FZSM","FZBM","FPRT","SBUS","MARB","FUFO",
"RUST","BLON","VAPE","HTZA","HTZB","SGVA","SGVB","SGVC","PGTR","PGF1",
@ -2597,6 +2597,11 @@ state_t states[NUMSTATES] =
{SPR_DUST, FF_TRANS20|2, 3, {NULL}, 0, 0, S_DRIFTDUST4}, // S_DRIFTDUST3
{SPR_DUST, FF_TRANS20|3, 3, {NULL}, 0, 0, S_NULL}, // S_DRIFTDUST4
{SPR_DRWS, FF_FULLBRIGHT|0, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK2}, // S_DRIFTWARNSPARK1
{SPR_DRWS, FF_FULLBRIGHT|1, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK3}, // S_DRIFTWARNSPARK2
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|2, 3, {NULL}, 0, 0, S_DRIFTWARNSPARK4}, // S_DRIFTWARNSPARK3
{SPR_DRWS, FF_FULLBRIGHT|FF_TRANS20|3, 3, {NULL}, 0, 0, S_NULL}, // S_DRIFTWARNSPARK4
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_FASTLINE2}, // S_FASTLINE1
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_FASTLINE3}, // S_FASTLINE2
{SPR_FAST, FF_PAPERSPRITE|FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_FASTLINE4}, // S_FASTLINE3

View file

@ -608,6 +608,7 @@ typedef enum sprite
SPR_DRIF, // Drift Sparks
SPR_BDRF, // Brake drift sparks
SPR_DUST, // Drift Dust
SPR_DRWS, // Drift dust sparks
// Kart Items
SPR_RSHE, // Rocket sneaker
@ -3248,6 +3249,12 @@ typedef enum state
S_DRIFTDUST3,
S_DRIFTDUST4,
// Drift Sparkles
S_DRIFTWARNSPARK1,
S_DRIFTWARNSPARK2,
S_DRIFTWARNSPARK3,
S_DRIFTWARNSPARK4,
// Fast lines
S_FASTLINE1,
S_FASTLINE2,

View file

@ -3587,6 +3587,47 @@ void K_DriftDustHandling(mobj_t *spawner)
S_StartSound(spawner, sfx_screec);
K_MatchGenericExtraFlags(dust, spawner);
// Sparkle-y warning for when you're about to change drift sparks!
if (spawner->player && spawner->player->kartstuff[k_drift])
{
INT32 driftval = K_GetKartDriftSparkValue(spawner->player);
INT32 warntime = driftval/3;
INT32 dc = spawner->player->kartstuff[k_driftcharge];
UINT8 c = SKINCOLOR_NONE;
boolean rainbow = false;
if (dc < 0)
{
c = SKINCOLOR_GOLD;
}
else if (dc >= (driftval - warntime))
{
if (dc >= ((2*driftval) - warntime))
{
if (dc >= ((4*driftval) - warntime))
{
c = (UINT8)(1 + (leveltime % (MAXSKINCOLORS-1)));
rainbow = true;
}
else
{
c = SKINCOLOR_SAPPHIRE;
}
}
else
{
c = SKINCOLOR_KETCHUP;
}
}
if (c != SKINCOLOR_NONE)
{
P_SetMobjState(dust, S_DRIFTWARNSPARK1);
dust->color = c;
dust->colorized = rainbow;
}
}
}
}