This commit is contained in:
Sryder13 2017-11-11 03:28:39 +00:00
commit 3eb3a74b5d
9 changed files with 67 additions and 35 deletions

View file

@ -317,6 +317,8 @@ consvar_t cv_feather = {"feathers", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NU
consvar_t cv_karthud = {"karthud", "Default", CV_SAVE|CV_CALL, karthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_kartcheck = {"kartcheck", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
static CV_PossibleValue_t kartstarsfx_cons_t[] = {{0, "Music"}, {1, "SMK"}, {0, NULL}};
consvar_t cv_kartstarsfx = {"kartstarsfx", "Music", CV_SAVE, kartstarsfx_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // change default to "SMK"?
consvar_t cv_kartcc = {"kartcc", "100cc", CV_NETVAR, kartcc_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
static CV_PossibleValue_t kartballoons_cons_t[] = {{1, "MIN"}, {12, "MAX"}, {0, NULL}};
consvar_t cv_kartballoons = {"kartballoons", "3", CV_NETVAR, kartballoons_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};

View file

@ -107,6 +107,7 @@ extern consvar_t cv_feather;
extern consvar_t cv_karthud;
extern consvar_t cv_kartcheck;
extern consvar_t cv_kartstarsfx;
extern consvar_t cv_kartcc;
extern consvar_t cv_kartballoons;
extern consvar_t cv_kartfrantic;

View file

@ -303,6 +303,7 @@ void K_RegisterKartStuff(void)
CV_RegisterVar(&cv_feather);
CV_RegisterVar(&cv_kartcheck);
CV_RegisterVar(&cv_kartstarsfx);
CV_RegisterVar(&cv_kartcc);
CV_RegisterVar(&cv_kartballoons);
CV_RegisterVar(&cv_kartfrantic);
@ -1382,6 +1383,8 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
if (player->kartstuff[k_spinouttimer])
player->kartstuff[k_spinouttimer]--;
else if (player->kartstuff[k_comebacktimer])
player->kartstuff[k_comebacktimer]--;
if (player->kartstuff[k_spinout] == 0 && player->kartstuff[k_spinouttimer] == 0 && player->powers[pw_flashing] == flashingtics)
player->powers[pw_flashing]--;
@ -1438,9 +1441,6 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
if (player->kartstuff[k_poweritemtimer])
player->kartstuff[k_poweritemtimer]--;
if (player->kartstuff[k_comebacktimer])
player->kartstuff[k_comebacktimer]--;
if (player->kartstuff[k_lapanimation])
player->kartstuff[k_lapanimation]--;
@ -1493,6 +1493,15 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
S_StopSoundByID(player->mo, sfx_mega); // Stop it
}
if (player->mo->health > 0 && (player->mo->player->kartstuff[k_startimer] > 0
|| player->mo->player->kartstuff[k_growshrinktimer] > 0))
{
if (leveltime % 13 == 0 && !P_IsLocalPlayer(player))
S_StartSound(player->mo, sfx_smkinv);
}
else if (S_SoundPlaying(player->mo, sfx_smkinv))
S_StopSoundByID(player->mo, sfx_smkinv);
// Plays the music after the starting countdown.
if (P_IsLocalPlayer(player) && leveltime == 158)
S_ChangeMusicInternal(mapmusname, true);
@ -1652,7 +1661,7 @@ fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove
fixed_t p_speed = K_GetKartSpeed(player, true);
fixed_t p_accel = K_GetKartAccel(player);
if (!onground) return 0; // If the player isn't on the ground, there is no change in speed
if (!onground && !(player->kartstuff[k_feather] & 2)) return 0; // If the player isn't on the ground, there is no change in speed
// ACCELCODE!!!1!11!
oldspeed = R_PointToDist2(0, 0, player->rmomx, player->rmomy); // FixedMul(P_AproxDistance(player->rmomx, player->rmomy), player->mo->scale);
@ -2942,7 +2951,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{
if (P_IsLocalPlayer(player) && !player->exiting)
S_ChangeMusicInternal("minvnc", true);
if (!P_IsLocalPlayer(player))
if (!cv_kartstarsfx.value && !P_IsLocalPlayer(player))
S_StartSound(player->mo, sfx_star);
player->kartstuff[k_startimer] = itemtime; // Activate it
K_PlayTauntSound(player->mo);
@ -3257,7 +3266,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{
if (P_IsLocalPlayer(player) && !player->exiting)
S_ChangeMusicInternal("mega", true);
if (!P_IsLocalPlayer(player))
if (!cv_kartstarsfx.value && !P_IsLocalPlayer(player))
S_StartSound(player->mo, sfx_mega);
K_PlayTauntSound(player->mo);
player->kartstuff[k_growshrinktimer] = itemtime + TICRATE*2;
@ -3286,7 +3295,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (ATTACK_IS_DOWN && !HOLDING_ITEM && player->kartstuff[k_feather] & 1 && NO_BOO)
{
K_PlayTauntSound(player->mo);
K_DoBouncePad(player, 16<<FRACBITS);
K_DoBouncePad(player, 30<<FRACBITS);
player->pflags |= PF_ATTACKDOWN;
player->kartstuff[k_feather] |= 2;
@ -3367,10 +3376,10 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (player->kartstuff[k_comebacktimer] > 0)
{
if (leveltime & 1)
player->mo->tracer->flags2 |= MF2_DONTDRAW;
else
if (player->kartstuff[k_comebacktimer] < TICRATE && (leveltime & 1))
player->mo->tracer->flags2 &= ~MF2_DONTDRAW;
else
player->mo->tracer->flags2 |= MF2_DONTDRAW;
player->powers[pw_flashing] = player->kartstuff[k_comebacktimer];
}
@ -4609,6 +4618,10 @@ void K_drawKartHUD(void)
// Draw the speedometer
// TODO: Make a better speedometer.
K_drawKartSpeedometer();
if (gametype != GT_RACE && !stplyr->kartstuff[k_spinouttimer]
&& stplyr->kartstuff[k_balloon] <= 0 && stplyr->kartstuff[k_comebacktimer])
V_DrawCenteredString(BASEVIDWIDTH/2, STRINGY(176), 0, va("%d", (stplyr->kartstuff[k_comebacktimer]+TICRATE)/TICRATE));
}
//}

View file

@ -3163,12 +3163,13 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
else if (player->kartstuff[k_startimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->powers[pw_flashing])
return false;
else
{
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_REDITEM || inflictor->type == MT_REDITEMDUD))
{
player->kartstuff[k_spinouttype] = 1;
K_SpinPlayer(player, source);
damage = player->mo->health - 1;
P_RingDamage(player, inflictor, source, damage);
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_REDITEM || inflictor->type == MT_REDITEMDUD))
P_PlayerRingBurst(player, 5);
player->mo->momx = player->mo->momy = 0;
if (P_IsLocalPlayer(player))
@ -3176,6 +3177,12 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
quake.intensity = 32*FRACUNIT;
quake.time = 5;
}
}
else
{
player->kartstuff[k_spinouttype] = -1;
K_SpinPlayer(player, source);
}
return true;
}
/* // SRB2kart - don't need these

View file

@ -1628,6 +1628,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
K_StealBalloon(thing->player, tmthing->player);
K_ExplodePlayer(tmthing->player, thing);
P_AddPlayerScore(thing->player, 1); // 2 points instead of 1 for getting someone in comeback mode
thing->player->kartstuff[k_comebackhits]++;
thing->player->kartstuff[k_comebacktimer] = comebacktime * (thing->player->kartstuff[k_comebackhits]+1);
@ -1639,6 +1640,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
K_StealBalloon(tmthing->player, thing->player);
K_ExplodePlayer(thing->player, tmthing);
P_AddPlayerScore(thing->player, 1); // 2 points instead of 1 for getting someone in comeback mode
tmthing->player->kartstuff[k_comebackhits]++;
tmthing->player->kartstuff[k_comebacktimer] = comebacktime * (tmthing->player->kartstuff[k_comebackhits]+1);
@ -1663,7 +1665,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
if (P_IsObjectOnGround(thing) && tmthing->momz < 0)
{
K_KartBouncing(tmthing, thing, true);
if (tmthing->player->kartstuff[k_feather] & 2)
if (gametype != GT_RACE && tmthing->player->kartstuff[k_feather] & 2)
{
K_StealBalloon(tmthing->player, thing->player);
K_SpinPlayer(thing->player, tmthing);
@ -1672,7 +1674,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
else if (P_IsObjectOnGround(tmthing) && thing->momz < 0)
{
K_KartBouncing(thing, tmthing, true);
if (thing->player->kartstuff[k_feather] & 2)
if (gametype != GT_RACE && thing->player->kartstuff[k_feather] & 2)
{
K_StealBalloon(thing->player, tmthing->player);
K_SpinPlayer(tmthing->player, thing);
@ -1681,6 +1683,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
else
K_KartBouncing(tmthing, thing, false);
if (gametype != GT_RACE)
{
if (thing->player->kartstuff[k_mushroomtimer] && !(tmthing->player->kartstuff[k_mushroomtimer]))
{
K_StealBalloon(thing->player, tmthing->player);
@ -1691,6 +1695,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
K_StealBalloon(tmthing->player, thing->player);
K_SpinPlayer(thing->player, tmthing);
}
}
thing->player->kartstuff[k_justbumped] = 6;
tmthing->player->kartstuff[k_justbumped] = 6;

View file

@ -1331,6 +1331,8 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
}
if (wasflip == !(mo->eflags & MFE_VERTICALFLIP)) // note!! == ! is not equivalent to != here - turns numeric into bool this way
P_PlayerFlip(mo);
if (mo->player->kartstuff[k_feather] & 2)
gravityadd = FixedMul(gravityadd, 5*FRACUNIT/2);
}
else
{

View file

@ -9465,7 +9465,7 @@ void P_PlayerThink(player_t *player)
// SRB2kart - fixes boo not flashing when it should. Mega doesn't flash either. Flashing is local.
if ((player == &players[displayplayer] || (splitscreen && player == &players[secondarydisplayplayer]))
&& player->kartstuff[k_bootimer] == 0 && player->kartstuff[k_growshrinktimer] <= 0
&& (player->kartstuff[k_comebacktimer] == 0 || (gametype != GT_RACE && player->kartstuff[k_balloon] > 0)))
&& (player->kartstuff[k_comebacktimer] == 0 || (gametype == GT_RACE || player->kartstuff[k_balloon] > 0)))
{
if (player->powers[pw_flashing] > 0 && player->powers[pw_flashing] < flashingtics && (leveltime & 1))
player->mo->flags2 |= MF2_DONTDRAW;

View file

@ -503,6 +503,7 @@ sfxinfo_t S_sfx[NUMSFX] =
{"shelit", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR},
{"vroom", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"boing", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
{"smkinv", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR},
// SRB2kart - Skin sounds
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},

View file

@ -575,6 +575,7 @@ typedef enum
sfx_shelit,
sfx_vroom,
sfx_boing,
sfx_smkinv,
sfx_kwin,
sfx_klose,