New papersprite sparkle effect

This commit is contained in:
TehRealSalt 2019-05-27 00:03:02 -04:00
parent 1e2c7e3461
commit 127935edc2
4 changed files with 8 additions and 30 deletions

View file

@ -266,6 +266,7 @@ typedef enum
k_ringdelay, // 3 tic delay between every ring usage
k_ringboost, // Ring boost timer
k_ringlock, // Prevent picking up rings while SPB is locked on
k_sparkleanim, // Angle offset for ring sparkle animation
k_jmp, // In Mario Kart, letting go of the jump button stops the drift
k_offroad, // In Super Mario Kart, going offroad has lee-way of about 1 second before you start losing speed
k_pogospring, // Pogo spring bounce effect

View file

@ -8418,6 +8418,7 @@ static const char *const KARTSTUFF_LIST[] = {
"RINGDELAY",
"RINGBOOST",
"RINGLOCK",
"SPARKLEANIM",
"JMP",
"OFFROAD",
"POGOSPRING",

View file

@ -3582,22 +3582,17 @@ void A_AttractChase(mobj_t *actor)
if (actor->extravalue1 >= 21)
{
#if 0
UINT8 i;
#endif
mobj_t *sparkle;
// Base add is 3 tics for 9,9, adds 1 tic for each point closer to the 1,1 end
actor->target->player->kartstuff[k_ringboost] += RINGBOOSTPWR+3;
S_StartSound(actor->target, sfx_s1b5);
#if 0
// ring sparkle effect
for (i = 0; i < 4; i++)
{
mobj_t *sparkle = P_SpawnMobj(actor->target->x, actor->target->y, actor->target->z, MT_RINGSPARKS);
P_SetTarget(&sparkle->target, actor->target);
sparkle->extravalue1 = i;
}
#endif
sparkle = P_SpawnMobj(actor->target->x, actor->target->y, actor->target->z, MT_RINGSPARKS);
P_SetTarget(&sparkle->target, actor->target);
sparkle->angle = FixedAngle(18<<FRACBITS) * actor->target->player->kartstuff[k_sparkleanim];
actor->target->player->kartstuff[k_sparkleanim] = (actor->target->player->kartstuff[k_sparkleanim]+1) % 20;
P_KillMobj(actor, actor->target, actor->target);
return;

View file

@ -8347,25 +8347,6 @@ void P_MobjThinker(mobj_t *mobj)
}
K_MatchGenericExtraFlags(mobj, mobj->target);
mobj->angle = mobj->target->angle;
switch (mobj->extravalue1)
{
case 0:
default:
mobj->angle += ANGLE_90;
break;
case 1:
mobj->angle -= ANGLE_90;
break;
case 2:
mobj->angle += ANGLE_45;
break;
case 3:
mobj->angle -= ANGLE_45;
break;
}
P_TeleportMove(mobj, mobj->target->x + FINECOSINE(mobj->angle >> ANGLETOFINESHIFT),
mobj->target->y + FINESINE(mobj->angle >> ANGLETOFINESHIFT),
mobj->target->z + mobj->target->height);