diff --git a/src/k_kart.c b/src/k_kart.c index dc61a89e..f276b44c 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4776,9 +4776,12 @@ fixed_t K_FindCheckX(fixed_t px, fixed_t py, angle_t ang, fixed_t mx, fixed_t my if (diff < ANGLE_90 || diff > ANGLE_270) return -320; else - x = (FixedMul(FINETANGENT(((diff+ANGLE_90)>>ANGLETOFINESHIFT) & 4095), 160<>ANGLETOFINESHIFT) & 4095), 160<>FRACBITS; - return (x>>FRACBITS); + if (cv_kartmirror.value) + x = 320-x; + + return x; } static void K_drawKartPlayerCheck(void) @@ -4920,7 +4923,10 @@ static void K_drawStartLakitu(void) else adjustY = 200; - V_DrawSmallScaledPatch(LAKI_X, STRINGY(LAKI_Y + adjustY), V_SNAPTOTOP, localpatch); + if (cv_kartmirror.value) + V_DrawSmallScaledPatch(320-LAKI_X, STRINGY(LAKI_Y + adjustY), V_SNAPTOTOP|V_FLIP, localpatch); + else + V_DrawSmallScaledPatch(LAKI_X, STRINGY(LAKI_Y + adjustY), V_SNAPTOTOP, localpatch); } static void K_drawLapLakitu(void) @@ -4990,7 +4996,10 @@ static void K_drawLapLakitu(void) adjustY = 200; } - V_DrawSmallScaledPatch(LAKI_X+14+(swoopTimer/4), STRINGY(LAKI_Y + adjustY), V_SNAPTOTOP, localpatch); + if (cv_kartmirror.value) + V_DrawSmallScaledPatch(320-(LAKI_X+14+(swoopTimer/4)), STRINGY(LAKI_Y + adjustY), V_SNAPTOTOP|V_FLIP, localpatch); + else + V_DrawSmallScaledPatch(LAKI_X+14+(swoopTimer/4), STRINGY(LAKI_Y + adjustY), V_SNAPTOTOP, localpatch); } void K_drawKartHUD(void) @@ -5016,12 +5025,12 @@ void K_drawKartHUD(void) if (stplyr->kartstuff[k_lapanimation]) K_drawLapLakitu(); - - // Draw the CHECK indicator before the other items too, so it's overlapped by everything else - if (cv_kartcheck.value) - K_drawKartPlayerCheck(); } + // Draw the CHECK indicator before the other items too, so it's overlapped by everything else + if (cv_kartcheck.value) + K_drawKartPlayerCheck(); + // If the item window is closing, draw it closing! if (stplyr->kartstuff[k_itemclose]) K_drawKartItemClose(); diff --git a/src/p_inter.c b/src/p_inter.c index ab0a1e0b..b269c0e1 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2911,7 +2911,7 @@ static void P_ShieldDamage(player_t *player, mobj_t *inflictor, mobj_t *source, } */ -/*static void P_RingDamage(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 damage) +static void P_RingDamage(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 damage) { if (!(inflictor && ((inflictor->flags & MF_MISSILE) || inflictor->player) && player->powers[pw_super] && ALL7EMERALDS(player->powers[pw_emeralds]))) { @@ -2943,7 +2943,7 @@ static void P_ShieldDamage(player_t *player, mobj_t *inflictor, mobj_t *source, // Ring loss sound plays despite hitting spikes P_PlayRinglossSound(player->mo); // Ringledingle! -}*/ +} /** Damages an object, which may or may not be a player. * For melee attacks, source and inflictor are the same.