diff --git a/src/k_kart.c b/src/k_kart.c index 4f294b8a..9a00b3ce 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1303,7 +1303,7 @@ void K_LakituChecker(player_t *player) player->kartstuff[k_lakitu]--; // Quick! You only have three tics to boost! if (cmd->buttons & BT_ACCELERATE) - K_DoMushroom(player, true); + K_DoMushroom(player, true, false); } } } @@ -2228,10 +2228,14 @@ static void K_DoBooSteal(player_t *player) } } -void K_DoMushroom(player_t *player, boolean doPFlag) +void K_DoMushroom(player_t *player, boolean doPFlag, boolean startboost) { + sfxenum_t boostsound = sfx_mush; + if (startboost) + boostsound = sfx_sboost; + if (!player->kartstuff[k_floorboost] || player->kartstuff[k_floorboost] == 3) - S_StartSound(player->mo, sfx_mush); + S_StartSound(player->mo, boostsound); player->kartstuff[k_mushroomtimer] = mushroomtime; @@ -2624,14 +2628,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground) if (ATTACK_IS_DOWN && !HOLDING_ITEM && onground && player->kartstuff[k_goldshroom] == 1 && player->kartstuff[k_goldshroomtimer] == 0 && NO_BOO) { - K_DoMushroom(player, true); + K_DoMushroom(player, true, false); player->kartstuff[k_goldshroomtimer] = itemtime; player->kartstuff[k_goldshroom] = 0; } // GoldenMushroom power else if (ATTACK_IS_DOWN && player->kartstuff[k_goldshroomtimer] > 1 && onground && NO_BOO) { - K_DoMushroom(player, true); + K_DoMushroom(player, true, false); //player->kartstuff[k_goldshroomtimer] -= 10; //if (player->kartstuff[k_goldshroomtimer] < 1) // player->kartstuff[k_goldshroomtimer] = 1; @@ -2639,19 +2643,19 @@ void K_MoveKartPlayer(player_t *player, boolean onground) // TripleMushroom power else if (ATTACK_IS_DOWN && !HOLDING_ITEM && player->kartstuff[k_mushroom] == 4 && onground && NO_BOO) { - K_DoMushroom(player, true); + K_DoMushroom(player, true, false); player->kartstuff[k_mushroom] = 2; } // DoubleMushroom power else if (ATTACK_IS_DOWN && !HOLDING_ITEM && player->kartstuff[k_mushroom] == 2 && onground && NO_BOO) { - K_DoMushroom(player, true); + K_DoMushroom(player, true, false); player->kartstuff[k_mushroom] = 1; } // Mushroom power else if (ATTACK_IS_DOWN && !HOLDING_ITEM && player->kartstuff[k_mushroom] == 1 && onground && NO_BOO) { - K_DoMushroom(player, true); + K_DoMushroom(player, true, false); player->kartstuff[k_mushroom] = 0; } // Star power @@ -3105,7 +3109,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) // Get an instant boost! if (player->kartstuff[k_boostcharge] >= 7 && player->kartstuff[k_boostcharge] <= 10) { - K_DoMushroom(player, false); + K_DoMushroom(player, false, true); } // You overcharged your engine? Those things are expensive!!! if (player->kartstuff[k_boostcharge] > 10) diff --git a/src/k_kart.h b/src/k_kart.h index dfe7ec39..1cc5e9a1 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -22,7 +22,7 @@ void K_SquishPlayer(player_t *player, mobj_t *source); void K_ExplodePlayer(player_t *player, mobj_t *source); void K_SpawnKartExplosion(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT32 number, mobjtype_t type, angle_t rotangle, boolean spawncenter, boolean ghostit); void K_SpawnDriftTrail(player_t *player); -void K_DoMushroom(player_t *player, boolean doPFlag); +void K_DoMushroom(player_t *player, boolean doPFlag, boolean startboost); INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue); void K_MomentumToFacing(player_t *player); fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower); diff --git a/src/p_spec.c b/src/p_spec.c index 27a408c7..275d6f08 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -3934,7 +3934,7 @@ DoneSection2: player->kartstuff[k_floorboost] = 3; else player->kartstuff[k_floorboost] = 2; - K_DoMushroom(player, false); + K_DoMushroom(player, false, false); break; case 7: // SRB2kart 190117 - Oil Slick diff --git a/src/sounds.c b/src/sounds.c index 07777514..bf2453e2 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -474,6 +474,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"kart2", false, 48, 16, -1, NULL, 0, -1, -1, LUMPERROR}, {"kart3", false, 48, 16, -1, NULL, 0, -1, -1, LUMPERROR}, {"mlap", true, 127, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"sboost", true, 90, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"mush", false, 90, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"star", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR}, {"mega", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR}, diff --git a/src/sounds.h b/src/sounds.h index 66a9b729..57571771 100644 --- a/src/sounds.h +++ b/src/sounds.h @@ -545,6 +545,7 @@ typedef enum sfx_kart2, sfx_kart3, sfx_mlap, + sfx_sboost, sfx_mush, sfx_star, sfx_mega,