mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Merge branch 'common-garden-shield' into 'master'
Don't lose Garden Top when stumbling; normalize item odds See merge request KartKrew/Kart!1076
This commit is contained in:
commit
42f860a838
2 changed files with 25 additions and 33 deletions
22
src/k_kart.c
22
src/k_kart.c
|
|
@ -6109,15 +6109,19 @@ void K_PopPlayerShield(player_t *player)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Doesn't apply to non-S3K shields.
|
switch (shield)
|
||||||
if (shield == KSHIELD_NONE || shield == KSHIELD_TOP)
|
|
||||||
{
|
{
|
||||||
return;
|
case KSHIELD_NONE:
|
||||||
}
|
// Doesn't apply to non-S3K shields.
|
||||||
|
return;
|
||||||
|
|
||||||
if (shield == KSHIELD_LIGHTNING)
|
case KSHIELD_TOP:
|
||||||
{
|
Obj_GardenTopDestroy(player);
|
||||||
K_DoLightningShield(player);
|
return; // everything is handled by Obj_GardenTopDestroy
|
||||||
|
|
||||||
|
case KSHIELD_LIGHTNING:
|
||||||
|
K_DoLightningShield(player);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
player->curshield = KSHIELD_NONE;
|
player->curshield = KSHIELD_NONE;
|
||||||
|
|
@ -6180,12 +6184,10 @@ void K_DropHnextList(player_t *player)
|
||||||
orbit = false;
|
orbit = false;
|
||||||
type = MT_EGGMANITEM;
|
type = MT_EGGMANITEM;
|
||||||
break;
|
break;
|
||||||
case MT_GARDENTOP:
|
|
||||||
Obj_GardenTopDestroy(player);
|
|
||||||
return;
|
|
||||||
// intentionally do nothing
|
// intentionally do nothing
|
||||||
case MT_ROCKETSNEAKER:
|
case MT_ROCKETSNEAKER:
|
||||||
case MT_SINK_SHIELD:
|
case MT_SINK_SHIELD:
|
||||||
|
case MT_GARDENTOP:
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -441,40 +441,30 @@ static UINT32 K_GetItemRouletteDistance(const player_t *player, UINT8 numPlayers
|
||||||
--------------------------------------------------*/
|
--------------------------------------------------*/
|
||||||
static boolean K_DenyShieldOdds(kartitems_t item)
|
static boolean K_DenyShieldOdds(kartitems_t item)
|
||||||
{
|
{
|
||||||
INT32 shieldType = K_GetShieldFromItem(item);
|
const INT32 shieldType = K_GetShieldFromItem(item);
|
||||||
|
size_t i;
|
||||||
|
|
||||||
if ((gametyperules & GTR_CIRCUIT) == 0)
|
if ((gametyperules & GTR_CIRCUIT) == 0)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (shieldType)
|
if (shieldType == KSHIELD_NONE)
|
||||||
{
|
{
|
||||||
case KSHIELD_NONE:
|
return false;
|
||||||
/* Marble Garden Top is not REALLY
|
}
|
||||||
a Sonic 3 shield */
|
|
||||||
case KSHIELD_TOP:
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
|
{
|
||||||
|
if (playeringame[i] == false || players[i].spectator == true)
|
||||||
{
|
{
|
||||||
break;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
if (shieldType == K_GetShieldFromItem(players[i].itemtype))
|
||||||
{
|
{
|
||||||
size_t i;
|
// Don't allow more than one of each shield type at a time
|
||||||
|
return true;
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
|
||||||
{
|
|
||||||
if (playeringame[i] == false || players[i].spectator == true)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (shieldType == K_GetShieldFromItem(players[i].itemtype))
|
|
||||||
{
|
|
||||||
// Don't allow more than one of each shield type at a time
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue