This commit is contained in:
TehRealSalt 2017-11-01 16:24:40 -04:00
parent ec429ff425
commit 4fce06d80e

View file

@ -1006,24 +1006,24 @@ static void K_KartItemRouletteByDistance(player_t *player, ticcmd_t *cmd)
// Check the game type to differentiate odds.
//if (gametype == GT_RETRO)
//{
if (cv_magnet.value) SETITEMRESULT(useodds, 1); // Magnet
if (cv_boo.value) SETITEMRESULT(useodds, 2); // Boo
if (cv_mushroom.value) SETITEMRESULT(useodds, 3); // Mushroom
if (cv_mushroom.value) SETITEMRESULT(useodds, 4); // Triple Mushroom
if (cv_megashroom.value) SETITEMRESULT(useodds, 5); // Mega Mushroom
if (cv_goldshroom.value) SETITEMRESULT(useodds, 6); // Gold Mushroom
if (cv_star.value) SETITEMRESULT(useodds, 7); // Star
if (cv_triplebanana.value) SETITEMRESULT(useodds, 8); // Triple Banana
if (cv_fakeitem.value) SETITEMRESULT(useodds, 9); // Fake Item
if (cv_banana.value) SETITEMRESULT(useodds, 10); // Banana
if (cv_greenshell.value) SETITEMRESULT(useodds, 11); // Green Shell
if (cv_redshell.value) SETITEMRESULT(useodds, 12); // Red Shell
if (cv_triplegreenshell.value) SETITEMRESULT(useodds, 13); // Triple Green Shell
if (cv_bobomb.value) SETITEMRESULT(useodds, 14); // Bob-omb
if (cv_blueshell.value && pexiting == 0) SETITEMRESULT(useodds, 15); // Blue Shell
if (cv_fireflower.value) SETITEMRESULT(useodds, 16); // Fire Flower
if (cv_tripleredshell.value) SETITEMRESULT(useodds, 17); // Triple Red Shell
if (cv_lightning.value && pingame > pexiting) SETITEMRESULT(useodds, 18); // Lightning
if (cv_magnet.value) SETITEMRESULT(useodds, 1); // Magnet
if (cv_boo.value) SETITEMRESULT(useodds, 2); // Boo
if (cv_mushroom.value) SETITEMRESULT(useodds, 3); // Mushroom
if (cv_mushroom.value) SETITEMRESULT(useodds, 4); // Triple Mushroom
if (cv_megashroom.value && !player->kartstuff[k_poweritemtimer]) SETITEMRESULT(useodds, 5); // Mega Mushroom
if (cv_goldshroom.value) SETITEMRESULT(useodds, 6); // Gold Mushroom
if (cv_star.value && !player->kartstuff[k_poweritemtimer]) SETITEMRESULT(useodds, 7); // Star
if (cv_triplebanana.value) SETITEMRESULT(useodds, 8); // Triple Banana
if (cv_fakeitem.value) SETITEMRESULT(useodds, 9); // Fake Item
if (cv_banana.value) SETITEMRESULT(useodds, 10); // Banana
if (cv_greenshell.value) SETITEMRESULT(useodds, 11); // Green Shell
if (cv_redshell.value) SETITEMRESULT(useodds, 12); // Red Shell
if (cv_triplegreenshell.value) SETITEMRESULT(useodds, 13); // Triple Green Shell
if (cv_bobomb.value) SETITEMRESULT(useodds, 14); // Bob-omb
if (cv_blueshell.value && pexiting == 0) SETITEMRESULT(useodds, 15); // Blue Shell
if (cv_fireflower.value) SETITEMRESULT(useodds, 16); // Fire Flower
if (cv_tripleredshell.value) SETITEMRESULT(useodds, 17); // Triple Red Shell
if (cv_lightning.value && pingame > pexiting) SETITEMRESULT(useodds, 18); // Lightning
prandom = P_RandomKey(numchoices);
@ -1395,6 +1395,9 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
if (player->kartstuff[k_laserwisptimer])
player->kartstuff[k_laserwisptimer]--;
if (player->kartstuff[k_poweritemtimer])
player->kartstuff[k_poweritemtimer]--;
if (player->kartstuff[k_lapanimation])
player->kartstuff[k_lapanimation]--;
@ -2654,6 +2657,57 @@ static boolean K_CheckForHoldItem(player_t *player)
) return true;
return false;
}
static void K_StripItems(player_t *player)
{
if ( player->kartstuff[k_kitchensink]
|| player->kartstuff[k_lightning]
|| player->kartstuff[k_tripleredshell]
|| player->kartstuff[k_fireflower]
|| player->kartstuff[k_blueshell]
|| player->kartstuff[k_bobomb]
|| player->kartstuff[k_triplegreenshell]
|| player->kartstuff[k_redshell]
|| player->kartstuff[k_greenshell]
|| player->kartstuff[k_banana]
|| player->kartstuff[k_fakeitem] & 2
|| player->kartstuff[k_triplebanana]
|| player->kartstuff[k_star]
|| player->kartstuff[k_goldshroom]
|| player->kartstuff[k_megashroom]
|| player->kartstuff[k_mushroom]
|| player->kartstuff[k_boo]
|| player->kartstuff[k_magnet]
//|| player->kartstuff[k_bootaketimer] // uncomment when proper comeback mechanic is in
|| player->kartstuff[k_boostolentimer]
|| player->kartstuff[k_goldshroomtimer]
|| player->kartstuff[k_growshrinktimer]
) player->kartstuff[k_itemclose] = 10;
player->kartstuff[k_kitchensink] = 0;
player->kartstuff[k_lightning] = 0;
player->kartstuff[k_tripleredshell] = 0;
player->kartstuff[k_fireflower] = 0;
player->kartstuff[k_blueshell] = 0;
player->kartstuff[k_bobomb] = 0;
player->kartstuff[k_triplegreenshell] = 0;
player->kartstuff[k_redshell] = 0;
player->kartstuff[k_greenshell] = 0;
player->kartstuff[k_banana] = 0;
player->kartstuff[k_fakeitem] = 0;
player->kartstuff[k_triplebanana] = 0;
player->kartstuff[k_star] = 0;
player->kartstuff[k_goldshroom] = 0;
player->kartstuff[k_megashroom] = 0;
player->kartstuff[k_mushroom] = 0;
player->kartstuff[k_boo] = 0;
player->kartstuff[k_magnet] = 0;
//player->kartstuff[k_bootaketimer] = 0;
player->kartstuff[k_boostolentimer] = 0;
player->kartstuff[k_goldshroomtimer] = 0;
player->kartstuff[k_growshrinktimer] = 0;
player->kartstuff[k_magnettimer] = 0;
player->kartstuff[k_startimer] = 0;
}
//
// K_MoveKartPlayer
//
@ -2762,6 +2816,8 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
player->kartstuff[k_startimer] = itemtime; // Activate it
K_PlayTauntSound(player->mo);
player->kartstuff[k_star] = 0;
if (gametype != GT_RACE)
player->kartstuff[k_poweritemtimer] = 10*TICRATE;
player->kartstuff[k_itemclose] = 10;
player->pflags |= PF_ATTACKDOWN;
}
@ -3077,6 +3133,8 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
S_StartSound(player->mo, sfx_mario3);
player->pflags |= PF_ATTACKDOWN;
player->kartstuff[k_megashroom] = 0;
if (gametype != GT_RACE)
player->kartstuff[k_poweritemtimer] = 10*TICRATE;
player->kartstuff[k_itemclose] = 10;
}
// Boo
@ -3126,6 +3184,11 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (player->kartstuff[k_growshrinktimer] == 26)
S_StartSound(player->mo, sfx_mario8);
if ((gametype != GT_RACE)
&& (player->kartstuff[k_star] || player->kartstuff[k_megashroom]
|| player->kartstuff[k_startimer] || player->kartstuff[k_growshrinktimer] > 0))
player->kartstuff[k_poweritemtimer] = 10*TICRATE;
if (player->kartstuff[k_bootaketimer] > 0)
{
if ((player == &players[displayplayer] || (splitscreen && player == &players[secondarydisplayplayer]))
@ -3217,27 +3280,8 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (gametype == GT_MATCH && player->kartstuff[k_balloon] <= 0) // dead in match? BOO!
{
K_StripItems(player);
player->kartstuff[k_bootaketimer] = bootime;
player->kartstuff[k_magnet] = 0; // reset all those dang items
player->kartstuff[k_boo] = 0;
player->kartstuff[k_mushroom] = 0;
player->kartstuff[k_megashroom] = 0;
player->kartstuff[k_goldshroom] = 0;
player->kartstuff[k_star] = 0;
player->kartstuff[k_triplebanana] = 0;
player->kartstuff[k_fakeitem] = 0;
player->kartstuff[k_banana] = 0;
player->kartstuff[k_greenshell] = 0;
player->kartstuff[k_redshell] = 0;
player->kartstuff[k_laserwisp] = 0;
player->kartstuff[k_triplegreenshell] = 0;
player->kartstuff[k_bobomb] = 0;
player->kartstuff[k_blueshell] = 0;
player->kartstuff[k_jaws] = 0;
player->kartstuff[k_fireflower] = 0;
player->kartstuff[k_tripleredshell] = 0;
player->kartstuff[k_lightning] = 0;
player->kartstuff[k_kitchensink] = 0;
}
}