mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-15 09:11:59 +00:00
Merge branch 'grow-shrink-fixes' into 'master'
Invincibility item & Shrink fixes See merge request KartKrew/Kart!68
This commit is contained in:
commit
07a31c20d6
1 changed files with 27 additions and 12 deletions
31
src/k_kart.c
31
src/k_kart.c
|
@ -666,7 +666,7 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed)
|
|||
break;
|
||||
case KITEM_INVINCIBILITY:
|
||||
POWERITEMODDS(newodds);
|
||||
if ((!cv_invincibility.value) || (pinvin > 2)) newodds = 0;
|
||||
if ((!cv_invincibility.value) || (pinvin >= 2)) newodds = 0;
|
||||
break;
|
||||
case KITEM_BANANA:
|
||||
if (!cv_banana.value) newodds = 0;
|
||||
|
@ -700,7 +700,7 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed)
|
|||
break;
|
||||
case KITEM_GROW:
|
||||
POWERITEMODDS(newodds);
|
||||
if ((!cv_grow.value) || (pinvin > 2)) newodds = 0;
|
||||
if ((!cv_grow.value) || (pinvin >= 2)) newodds = 0;
|
||||
break;
|
||||
case KITEM_SHRINK:
|
||||
POWERITEMODDS(newodds);
|
||||
|
@ -1362,8 +1362,8 @@ void K_RespawnChecker(player_t *player)
|
|||
fixed_t newx, newy, newz;
|
||||
|
||||
newangle = FixedAngle(((360/8)*i)*FRACUNIT);
|
||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle, 31*player->mo->scale);
|
||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle, 31*player->mo->scale);
|
||||
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle, 31<<FRACBITS); // does NOT use scale, since this effect doesn't scale properly
|
||||
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle, 31<<FRACBITS);
|
||||
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||
newz = player->mo->z + player->mo->height;
|
||||
else
|
||||
|
@ -1383,11 +1383,19 @@ void K_RespawnChecker(player_t *player)
|
|||
}
|
||||
else if (player->kartstuff[k_respawn] == 1)
|
||||
{
|
||||
if (!P_IsObjectOnGround(player->mo))
|
||||
if (player->kartstuff[k_growshrinktimer] < 0)
|
||||
{
|
||||
player->mo->scalespeed = mapheaderinfo[gamemap-1]->mobj_scale/TICRATE;
|
||||
player->mo->destscale = 6*(mapheaderinfo[gamemap-1]->mobj_scale)/8;
|
||||
if (cv_kartdebugshrink.value && !player->bot)
|
||||
player->mo->destscale = 6*player->mo->destscale/8;
|
||||
}
|
||||
|
||||
if (!P_IsObjectOnGround(player->mo) && !mapreset)
|
||||
{
|
||||
player->powers[pw_flashing] = 2;
|
||||
|
||||
// Sal: That's stupid and prone to accidental usage.
|
||||
// Sal: The old behavior was stupid and prone to accidental usage.
|
||||
// Let's rip off Mania instead, and turn this into a Drop Dash!
|
||||
|
||||
if (cmd->buttons & BT_ACCELERATE)
|
||||
|
@ -3875,7 +3883,12 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
fast->momz = 3*player->mo->momz/4;
|
||||
}
|
||||
|
||||
if (player->kartstuff[k_eggmanexplode]) // You're gonna diiiiie
|
||||
if (player->playerstate == PST_DEAD || player->kartstuff[k_respawn] > 1) // Ensure these are set correctly here
|
||||
{
|
||||
player->mo->colorized = false;
|
||||
player->mo->color = player->skincolor;
|
||||
}
|
||||
else if (player->kartstuff[k_eggmanexplode]) // You're gonna diiiiie
|
||||
{
|
||||
const INT32 flashtime = 4<<(player->kartstuff[k_eggmanexplode]/TICRATE);
|
||||
if (player->kartstuff[k_eggmanexplode] == 1 || (player->kartstuff[k_eggmanexplode] % (flashtime/2) != 0))
|
||||
|
@ -4013,11 +4026,13 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
if (player->kartstuff[k_invincibilitytimer])
|
||||
player->kartstuff[k_invincibilitytimer]--;
|
||||
|
||||
if (!player->kartstuff[k_respawn])
|
||||
{
|
||||
if (player->kartstuff[k_growshrinktimer] > 0)
|
||||
player->kartstuff[k_growshrinktimer]--;
|
||||
|
||||
if (player->kartstuff[k_growshrinktimer] < 0)
|
||||
player->kartstuff[k_growshrinktimer]++;
|
||||
}
|
||||
|
||||
if (player->kartstuff[k_growshrinktimer] == 1 || player->kartstuff[k_growshrinktimer] == -1)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue