diff --git a/src/d_player.h b/src/d_player.h index e794f4903..29cb171bf 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -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 diff --git a/src/dehacked.c b/src/dehacked.c index 609eec42a..0f0c57ac2 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -8418,6 +8418,7 @@ static const char *const KARTSTUFF_LIST[] = { "RINGDELAY", "RINGBOOST", "RINGLOCK", + "SPARKLEANIM", "JMP", "OFFROAD", "POGOSPRING", diff --git a/src/p_enemy.c b/src/p_enemy.c index 91268b504..14f2dc9fb 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -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<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; diff --git a/src/p_mobj.c b/src/p_mobj.c index a3a73b7ff..9919b2266 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -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);