mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Rocket sneaker boost type separated from normal sneaker
monkey copypaste
This commit is contained in:
parent
80c02ca6db
commit
6c790348b3
11 changed files with 74 additions and 31 deletions
|
|
@ -828,6 +828,8 @@ struct player_t
|
||||||
UINT8 numsneakers; // Number of stacked sneaker effects
|
UINT8 numsneakers; // Number of stacked sneaker effects
|
||||||
UINT16 panelsneakertimer;
|
UINT16 panelsneakertimer;
|
||||||
UINT8 numpanelsneakers;
|
UINT8 numpanelsneakers;
|
||||||
|
UINT16 weaksneakertimer;
|
||||||
|
UINT8 numweaksneakers;
|
||||||
UINT8 floorboost; // (0 to 3) - Prevents Sneaker sounds for a brief duration when triggered by a floor panel
|
UINT8 floorboost; // (0 to 3) - Prevents Sneaker sounds for a brief duration when triggered by a floor panel
|
||||||
|
|
||||||
INT16 growshrinktimer; // > 0 = Big, < 0 = small
|
INT16 growshrinktimer; // > 0 = Big, < 0 = small
|
||||||
|
|
|
||||||
|
|
@ -973,6 +973,7 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim)
|
||||||
attackerPlayer->spindashboost = 0;
|
attackerPlayer->spindashboost = 0;
|
||||||
attackerPlayer->sneakertimer = 0;
|
attackerPlayer->sneakertimer = 0;
|
||||||
attackerPlayer->panelsneakertimer = 0;
|
attackerPlayer->panelsneakertimer = 0;
|
||||||
|
attackerPlayer->weaksneakertimer = 0;
|
||||||
attackerPlayer->instaWhipCharge = 0;
|
attackerPlayer->instaWhipCharge = 0;
|
||||||
attackerPlayer->flashing = 0;
|
attackerPlayer->flashing = 0;
|
||||||
|
|
||||||
|
|
@ -1211,7 +1212,7 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2)
|
||||||
{
|
{
|
||||||
auto shouldSteal = [](mobj_t *t1, mobj_t *t2)
|
auto shouldSteal = [](mobj_t *t1, mobj_t *t2)
|
||||||
{
|
{
|
||||||
return ((t1->player->sneakertimer > 0 || t1->player->panelsneakertimer > 0)
|
return ((t1->player->sneakertimer > 0 || t1->player->panelsneakertimer > 0 || t1->player->weaksneakertimer > 0)
|
||||||
&& !P_PlayerInPain(t1->player)
|
&& !P_PlayerInPain(t1->player)
|
||||||
&& (t1->player->flashing == 0));
|
&& (t1->player->flashing == 0));
|
||||||
};
|
};
|
||||||
|
|
|
||||||
80
src/k_kart.c
80
src/k_kart.c
|
|
@ -3012,7 +3012,7 @@ void K_MomentumToFacing(player_t *player)
|
||||||
|
|
||||||
boolean K_ApplyOffroad(const player_t *player)
|
boolean K_ApplyOffroad(const player_t *player)
|
||||||
{
|
{
|
||||||
if (player->invincibilitytimer || player->hyudorotimer || player->sneakertimer || player->panelsneakertimer)
|
if (player->invincibilitytimer || player->hyudorotimer || player->sneakertimer || player->panelsneakertimer|| player->weaksneakertimer)
|
||||||
return false;
|
return false;
|
||||||
if (K_IsRidingFloatingTop(player))
|
if (K_IsRidingFloatingTop(player))
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -3021,7 +3021,7 @@ boolean K_ApplyOffroad(const player_t *player)
|
||||||
|
|
||||||
boolean K_SlopeResistance(const player_t *player)
|
boolean K_SlopeResistance(const player_t *player)
|
||||||
{
|
{
|
||||||
if (player->invincibilitytimer || player->sneakertimer || player->panelsneakertimer || player->tiregrease || player->flamedash)
|
if (player->invincibilitytimer || player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer || player->tiregrease || player->flamedash)
|
||||||
return true;
|
return true;
|
||||||
if (player->curshield == KSHIELD_TOP)
|
if (player->curshield == KSHIELD_TOP)
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -3162,6 +3162,7 @@ boolean K_WaterRun(mobj_t *mobj)
|
||||||
if (mobj->player->invincibilitytimer
|
if (mobj->player->invincibilitytimer
|
||||||
|| mobj->player->sneakertimer
|
|| mobj->player->sneakertimer
|
||||||
|| mobj->player->panelsneakertimer
|
|| mobj->player->panelsneakertimer
|
||||||
|
|| mobj->player->weaksneakertimer
|
||||||
|| mobj->player->tiregrease
|
|| mobj->player->tiregrease
|
||||||
|| mobj->player->flamedash
|
|| mobj->player->flamedash
|
||||||
|| mobj->player->speed > minspeed)
|
|| mobj->player->speed > minspeed)
|
||||||
|
|
@ -3526,19 +3527,29 @@ static void K_GetKartBoostPower(player_t *player)
|
||||||
UINT8 i;
|
UINT8 i;
|
||||||
for (i = 0; i < player->numsneakers; i++)
|
for (i = 0; i < player->numsneakers; i++)
|
||||||
{
|
{
|
||||||
ADDBOOST(FRACUNIT, 8*FRACUNIT, HANDLESCALING+HANDLESCALING/3); // + 100% top speed, + 800% acceleration, +50% handling
|
ADDBOOST(FRACUNIT, 8*FRACUNIT, HANDLESCALING+HANDLESCALING/3); // + 100% top speed, + 800% acceleration, +50%(???) handling
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->panelsneakertimer) // Sneaker
|
if (player->panelsneakertimer) // Sneaker panel
|
||||||
{
|
{
|
||||||
UINT8 i;
|
UINT8 i;
|
||||||
for (i = 0; i < player->numpanelsneakers; i++)
|
for (i = 0; i < player->numpanelsneakers; i++)
|
||||||
{
|
{
|
||||||
ADDBOOST(FRACUNIT/2, 8*FRACUNIT, HANDLESCALING); // + 50% top speed, + 800% acceleration, +50% handling
|
ADDBOOST(FRACUNIT/2, 8*FRACUNIT, HANDLESCALING); // + 50% top speed, + 800% acceleration, +50%(???) handling
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player->weaksneakertimer) // Rocket sneaker boost
|
||||||
|
{
|
||||||
|
UINT8 i;
|
||||||
|
for (i = 0; i < player->numweaksneakers; i++)
|
||||||
|
{
|
||||||
|
ADDBOOST((FRACUNIT*85)/100, 8*FRACUNIT, HANDLESCALING+HANDLESCALING/3); // + 85% top speed, + 800% acceleration, +50%(???) handling
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//NOTE: The various sneaker booth strengths are also defined in K_DoSneaker()!
|
||||||
|
|
||||||
if (player->invincibilitytimer) // Invincibility
|
if (player->invincibilitytimer) // Invincibility
|
||||||
{
|
{
|
||||||
// S-Monitor: no extra %
|
// S-Monitor: no extra %
|
||||||
|
|
@ -4002,7 +4013,7 @@ SINT8 K_GetForwardMove(const player_t *player)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->sneakertimer || player->panelsneakertimer || player->spindashboost
|
if (player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer || player->spindashboost
|
||||||
|| (((gametyperules & (GTR_ROLLINGSTART|GTR_CIRCUIT)) == (GTR_ROLLINGSTART|GTR_CIRCUIT)) && (leveltime < TICRATE/2)))
|
|| (((gametyperules & (GTR_ROLLINGSTART|GTR_CIRCUIT)) == (GTR_ROLLINGSTART|GTR_CIRCUIT)) && (leveltime < TICRATE/2)))
|
||||||
{
|
{
|
||||||
return MAXPLMOVE;
|
return MAXPLMOVE;
|
||||||
|
|
@ -5065,7 +5076,7 @@ static boolean K_IsLosingWavedash(player_t *player)
|
||||||
if (!K_Sliptiding(player) && player->wavedash < MIN_WAVEDASH_CHARGE)
|
if (!K_Sliptiding(player) && player->wavedash < MIN_WAVEDASH_CHARGE)
|
||||||
return true;
|
return true;
|
||||||
if (!K_Sliptiding(player) && player->drift == 0
|
if (!K_Sliptiding(player) && player->drift == 0
|
||||||
&& P_IsObjectOnGround(player->mo) && player->sneakertimer == 0 && player->panelsneakertimer == 0
|
&& P_IsObjectOnGround(player->mo) && player->sneakertimer == 0 && player->panelsneakertimer == 0 && player->weaksneakertimer == 0
|
||||||
&& player->driftboost == 0)
|
&& player->driftboost == 0)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -7204,8 +7215,14 @@ void K_DoSneaker(player_t *player, INT32 type)
|
||||||
|
|
||||||
fixed_t intendedboost = FRACUNIT/2;
|
fixed_t intendedboost = FRACUNIT/2;
|
||||||
|
|
||||||
// If you've already got an item sneaker type boost, panel sneakers will instead turn into item sneaker boosts
|
// If you've already got an rocket sneaker type boost, panel sneakers will instead turn into rocket sneaker boosts
|
||||||
if (player->numsneakers && type == 0)
|
if (player->numweaksneakers && type == 0)
|
||||||
|
{
|
||||||
|
type = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If you've already got an item sneaker type boost, other sneakers will instead turn into item sneaker boosts
|
||||||
|
if (player->numsneakers && type != 1)
|
||||||
{
|
{
|
||||||
type = 1;
|
type = 1;
|
||||||
}
|
}
|
||||||
|
|
@ -7216,10 +7233,13 @@ void K_DoSneaker(player_t *player, INT32 type)
|
||||||
intendedboost = FRACUNIT/2;
|
intendedboost = FRACUNIT/2;
|
||||||
break;
|
break;
|
||||||
case 1: // Single item sneaker
|
case 1: // Single item sneaker
|
||||||
case 2: // Rocket sneaker
|
intendedboost = 100*FRACUNIT/100;
|
||||||
|
break;
|
||||||
|
case 2: // Rocket sneaker (aka. weaksneaker)
|
||||||
intendedboost = 85*FRACUNIT/100;
|
intendedboost = 85*FRACUNIT/100;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
//NOTE: The various sneaker booth strengths are also defined in K_GetKartBoostPower()!
|
||||||
|
|
||||||
if (player->roundconditions.touched_sneakerpanel == false
|
if (player->roundconditions.touched_sneakerpanel == false
|
||||||
&& !(player->exiting || (player->pflags & PF_NOCONTEST))
|
&& !(player->exiting || (player->pflags & PF_NOCONTEST))
|
||||||
|
|
@ -7235,7 +7255,7 @@ void K_DoSneaker(player_t *player, INT32 type)
|
||||||
const sfxenum_t smallsfx = sfx_cdfm40;
|
const sfxenum_t smallsfx = sfx_cdfm40;
|
||||||
sfxenum_t sfx = normalsfx;
|
sfxenum_t sfx = normalsfx;
|
||||||
|
|
||||||
if (player->numsneakers || player->numpanelsneakers)
|
if (player->numsneakers || player->numpanelsneakers || player->numweaksneakers)
|
||||||
{
|
{
|
||||||
// Use a less annoying sound when stacking sneakers.
|
// Use a less annoying sound when stacking sneakers.
|
||||||
sfx = smallsfx;
|
sfx = smallsfx;
|
||||||
|
|
@ -7251,17 +7271,19 @@ void K_DoSneaker(player_t *player, INT32 type)
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0: // Panel sneaker
|
||||||
player->numpanelsneakers++;
|
player->numpanelsneakers++;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1: // Single item sneaker
|
||||||
case 2:
|
|
||||||
player->numsneakers++;
|
player->numsneakers++;
|
||||||
break;
|
break;
|
||||||
|
case 2: // Rocket sneaker (aka. weaksneaker)
|
||||||
|
player->numweaksneakers++;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->sneakertimer == 0 && player->panelsneakertimer == 0)
|
if (player->sneakertimer == 0 && player->panelsneakertimer == 0 && player->weaksneakertimer == 0)
|
||||||
{
|
{
|
||||||
if (type == 2)
|
if (type == 2)
|
||||||
{
|
{
|
||||||
|
|
@ -7293,16 +7315,16 @@ void K_DoSneaker(player_t *player, INT32 type)
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0: // Panel sneaker
|
||||||
player->panelsneakertimer = sneakertime;
|
player->panelsneakertimer = sneakertime;
|
||||||
player->overshield += 1;
|
player->overshield += 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1: // Single item sneaker
|
||||||
player->sneakertimer = sneakertime;
|
player->sneakertimer = sneakertime;
|
||||||
player->overshield += TICRATE/2;
|
player->overshield += TICRATE/2;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2: // Rocket sneaker (aka. weaksneaker)
|
||||||
player->sneakertimer = 3*sneakertime/4;
|
player->weaksneakertimer = 3*sneakertime/4;
|
||||||
player->overshield += TICRATE/2;
|
player->overshield += TICRATE/2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -7438,7 +7460,7 @@ void K_DoPogoSpring(mobj_t *mo, fixed_t vertispeed, UINT8 sound)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mo->player->sneakertimer || mo->player->panelsneakertimer || mo->player->invincibilitytimer)
|
if (mo->player->sneakertimer || mo->player->panelsneakertimer || mo->player->weaksneakertimer || mo->player->invincibilitytimer)
|
||||||
{
|
{
|
||||||
thrust = FixedMul(thrust, (3*FRACUNIT)/2);
|
thrust = FixedMul(thrust, (3*FRACUNIT)/2);
|
||||||
}
|
}
|
||||||
|
|
@ -9198,7 +9220,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
if (player->speed > 0)
|
if (player->speed > 0)
|
||||||
{
|
{
|
||||||
// Speed lines
|
// Speed lines
|
||||||
if (player->sneakertimer || player->panelsneakertimer || player->ringboost
|
if (player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer || player->ringboost
|
||||||
|| player->driftboost || player->startboost
|
|| player->driftboost || player->startboost
|
||||||
|| player->eggmanexplode || player->trickboost
|
|| player->eggmanexplode || player->trickboost
|
||||||
|| player->gateBoost || player->wavedashboost)
|
|| player->gateBoost || player->wavedashboost)
|
||||||
|
|
@ -9439,7 +9461,8 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
if (((P_IsObjectOnGround(player->mo)
|
if (((P_IsObjectOnGround(player->mo)
|
||||||
|| ( player->spinouttype & KSPIN_AIRTIMER ))
|
|| ( player->spinouttype & KSPIN_AIRTIMER ))
|
||||||
&& (!player->sneakertimer)
|
&& (!player->sneakertimer)
|
||||||
&& (!player->panelsneakertimer))
|
&& (!player->panelsneakertimer)
|
||||||
|
&& (!player->weaksneakertimer))
|
||||||
|| (player->respawn.state != RESPAWNST_NONE
|
|| (player->respawn.state != RESPAWNST_NONE
|
||||||
&& player->spinouttimer > 1
|
&& player->spinouttimer > 1
|
||||||
&& (leveltime & 1)))
|
&& (leveltime & 1)))
|
||||||
|
|
@ -9635,6 +9658,16 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player->weaksneakertimer)
|
||||||
|
{
|
||||||
|
player->weaksneakertimer--;
|
||||||
|
|
||||||
|
if (player->weaksneakertimer <= 0)
|
||||||
|
{
|
||||||
|
player->numweaksneakers = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (player->trickboost)
|
if (player->trickboost)
|
||||||
player->trickboost--;
|
player->trickboost--;
|
||||||
|
|
||||||
|
|
@ -9654,7 +9687,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
if (player->counterdash)
|
if (player->counterdash)
|
||||||
player->counterdash--;
|
player->counterdash--;
|
||||||
|
|
||||||
if ((player->sneakertimer || player->panelsneakertimer) && player->wipeoutslow > 0 && player->wipeoutslow < wipeoutslowtime+1)
|
if ((player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer) && player->wipeoutslow > 0 && player->wipeoutslow < wipeoutslowtime+1)
|
||||||
player->wipeoutslow = wipeoutslowtime+1;
|
player->wipeoutslow = wipeoutslowtime+1;
|
||||||
|
|
||||||
if (player->floorboost > 0)
|
if (player->floorboost > 0)
|
||||||
|
|
@ -9958,6 +9991,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
player->tiregrease = 0;
|
player->tiregrease = 0;
|
||||||
player->sneakertimer = 0;
|
player->sneakertimer = 0;
|
||||||
player->panelsneakertimer = 0;
|
player->panelsneakertimer = 0;
|
||||||
|
player->weaksneakertimer = 0;
|
||||||
player->spindashboost = 0;
|
player->spindashboost = 0;
|
||||||
player->flashing = TICRATE/2;
|
player->flashing = TICRATE/2;
|
||||||
player->ringboost = 0;
|
player->ringboost = 0;
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,7 @@ struct Side : Graphic
|
||||||
|
|
||||||
struct Toucher : Mobj
|
struct Toucher : Mobj
|
||||||
{
|
{
|
||||||
bool boosting() const { return player && (player->sneakertimer || player->panelsneakertimer || K_PlayerCanPunt(player)); }
|
bool boosting() const { return player && (player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer || K_PlayerCanPunt(player)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct AnyBox : Graphic
|
struct AnyBox : Graphic
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ private:
|
||||||
{
|
{
|
||||||
const player_t* p = toucher->player;
|
const player_t* p = toucher->player;
|
||||||
|
|
||||||
if (p->sneakertimer || p->panelsneakertimer || p->invincibilitytimer || p->growshrinktimer > 0 || p->hyudorotimer)
|
if (p->sneakertimer || p->panelsneakertimer || p->weaksneakertimer || p->invincibilitytimer || p->growshrinktimer > 0 || p->hyudorotimer)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -895,7 +895,7 @@ static UINT8 GetUFODamage(mobj_t *inflictor, UINT8 damageType)
|
||||||
{
|
{
|
||||||
// Players deal damage relative to how many sneakers they used.
|
// Players deal damage relative to how many sneakers they used.
|
||||||
targetdamaging = UFOD_BOOST;
|
targetdamaging = UFOD_BOOST;
|
||||||
ret = 15 * max(1, inflictor->player->numsneakers + inflictor->player->numpanelsneakers);
|
ret = 15 * max(1, inflictor->player->numsneakers + inflictor->player->numpanelsneakers + inflictor->player->numweaksneakers);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MT_SPECIAL_UFO:
|
case MT_SPECIAL_UFO:
|
||||||
|
|
@ -1056,6 +1056,8 @@ void Obj_PlayerUFOCollide(mobj_t *ufo, mobj_t *other)
|
||||||
other->player->numsneakers = 0;
|
other->player->numsneakers = 0;
|
||||||
other->player->panelsneakertimer = 0;
|
other->player->panelsneakertimer = 0;
|
||||||
other->player->numpanelsneakers = 0;
|
other->player->numpanelsneakers = 0;
|
||||||
|
other->player->weaksneakertimer = 0;
|
||||||
|
other->player->numweaksneakers = 0;
|
||||||
|
|
||||||
// Copied from Obj_OrbinautThrown
|
// Copied from Obj_OrbinautThrown
|
||||||
const ffloor_t *rover = P_IsObjectFlipped(other) ? other->ceilingrover : other->floorrover;
|
const ffloor_t *rover = P_IsObjectFlipped(other) ? other->ceilingrover : other->floorrover;
|
||||||
|
|
|
||||||
|
|
@ -3288,6 +3288,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
||||||
|
|
||||||
player->sneakertimer = player->numsneakers = 0;
|
player->sneakertimer = player->numsneakers = 0;
|
||||||
player->panelsneakertimer = player->numpanelsneakers = 0;
|
player->panelsneakertimer = player->numpanelsneakers = 0;
|
||||||
|
player->weaksneakertimer = player->numweaksneakers = 0;
|
||||||
player->driftboost = player->strongdriftboost = 0;
|
player->driftboost = player->strongdriftboost = 0;
|
||||||
player->gateBoost = 0;
|
player->gateBoost = 0;
|
||||||
player->fastfall = 0;
|
player->fastfall = 0;
|
||||||
|
|
|
||||||
|
|
@ -7989,7 +7989,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
|
|
||||||
if (p)
|
if (p)
|
||||||
{
|
{
|
||||||
UINT16 timer = max(p->sneakertimer, p->panelsneakertimer);
|
UINT16 timer = max(max(p->sneakertimer, p->panelsneakertimer), p->weaksneakertimer);
|
||||||
if (timer > mobj->movecount)
|
if (timer > mobj->movecount)
|
||||||
P_SetMobjState(mobj, S_BOOSTFLAME);
|
P_SetMobjState(mobj, S_BOOSTFLAME);
|
||||||
mobj->movecount = timer;
|
mobj->movecount = timer;
|
||||||
|
|
|
||||||
|
|
@ -550,6 +550,8 @@ static void P_NetArchivePlayers(savebuffer_t *save)
|
||||||
WRITEUINT8(save->p, players[i].numsneakers);
|
WRITEUINT8(save->p, players[i].numsneakers);
|
||||||
WRITEUINT16(save->p, players[i].panelsneakertimer);
|
WRITEUINT16(save->p, players[i].panelsneakertimer);
|
||||||
WRITEUINT8(save->p, players[i].numpanelsneakers);
|
WRITEUINT8(save->p, players[i].numpanelsneakers);
|
||||||
|
WRITEUINT16(save->p, players[i].weaksneakertimer);
|
||||||
|
WRITEUINT8(save->p, players[i].numweaksneakers);
|
||||||
|
|
||||||
WRITEUINT8(save->p, players[i].floorboost);
|
WRITEUINT8(save->p, players[i].floorboost);
|
||||||
|
|
||||||
|
|
@ -1196,6 +1198,7 @@ static void P_NetUnArchivePlayers(savebuffer_t *save)
|
||||||
players[i].numsneakers = READUINT8(save->p);
|
players[i].numsneakers = READUINT8(save->p);
|
||||||
players[i].panelsneakertimer = READUINT16(save->p);
|
players[i].panelsneakertimer = READUINT16(save->p);
|
||||||
players[i].numpanelsneakers = READUINT8(save->p);
|
players[i].numpanelsneakers = READUINT8(save->p);
|
||||||
|
players[i].numweaksneakers = READUINT8(save->p);
|
||||||
players[i].floorboost = READUINT8(save->p);
|
players[i].floorboost = READUINT8(save->p);
|
||||||
|
|
||||||
players[i].growshrinktimer = READINT16(save->p);
|
players[i].growshrinktimer = READINT16(save->p);
|
||||||
|
|
|
||||||
|
|
@ -599,9 +599,9 @@ static inline void P_DeviceRumbleTick(void)
|
||||||
{
|
{
|
||||||
low = high = 65536 / 2;
|
low = high = 65536 / 2;
|
||||||
}
|
}
|
||||||
else if (player->sneakertimer > (sneakertime-(TICRATE/2)) || player->panelsneakertimer > (sneakertime-(TICRATE/2)))
|
else if (player->sneakertimer > (sneakertime-(TICRATE/2)) || player->panelsneakertimer > (sneakertime-(TICRATE/2)) || player->weaksneakertimer > (sneakertime-(TICRATE/2)))
|
||||||
{
|
{
|
||||||
low = high = 65536 / (3+player->numsneakers+player->numpanelsneakers);
|
low = high = 65536 / (3+player->numsneakers+player->numpanelsneakers+player->numweaksneakers);
|
||||||
}
|
}
|
||||||
else if (((player->boostpower < FRACUNIT) || (player->stairjank > 8))
|
else if (((player->boostpower < FRACUNIT) || (player->stairjank > 8))
|
||||||
&& P_IsObjectOnGround(player->mo) && player->speed != 0)
|
&& P_IsObjectOnGround(player->mo) && player->speed != 0)
|
||||||
|
|
|
||||||
|
|
@ -2618,7 +2618,7 @@ void P_MovePlayer(player_t *player)
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
|
|
||||||
// SRB2kart - Drifting smoke and fire
|
// SRB2kart - Drifting smoke and fire
|
||||||
if ((player->sneakertimer || player->panelsneakertimer || player->flamedash)
|
if ((player->sneakertimer || player->panelsneakertimer || player->weaksneakertimer || player->flamedash)
|
||||||
&& onground && (leveltime & 1))
|
&& onground && (leveltime & 1))
|
||||||
K_SpawnBoostTrail(player);
|
K_SpawnBoostTrail(player);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue