mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-03 13:42:31 +00:00
Slidey wall transfers
This commit is contained in:
parent
f8c5764276
commit
184e2e3c5d
3 changed files with 27 additions and 4 deletions
21
src/k_kart.c
21
src/k_kart.c
|
|
@ -9625,7 +9625,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
fixed_t fuckfactor = FRACUNIT;
|
||||
fixed_t transfergravity = 10*FRACUNIT/100;
|
||||
|
||||
fixed_t transferclamp = min(abs(player->transfer), (player->mo->scale*100));
|
||||
fixed_t transferclamp = min(abs(player->transfer), player->mo->scale*100);
|
||||
if (player->transfer < 0)
|
||||
transferclamp *= -1;
|
||||
|
||||
|
|
@ -9646,8 +9646,16 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
spdl->renderflags |= RF_REDUCEVFX;
|
||||
P_InstaScale(spdl, 4*player->mo->scale/2);
|
||||
|
||||
if (abs(player->mo->momz) < (3*transferclamp/2))
|
||||
player->mo->momz -= FixedMul(transferclamp, FixedMul(fuckfactor, transfergravity));
|
||||
fixed_t diff = abs(transferclamp) - abs(player->mo->momz);
|
||||
|
||||
if (diff > 0) // we have room to speed up
|
||||
{
|
||||
fixed_t sub = FixedMul(transferclamp, FixedMul(fuckfactor, transfergravity));
|
||||
if (abs(sub) > diff) // don't one-tic error to speed up beyond clamp
|
||||
sub = diff * (sub > 0 ? 1 : -1);
|
||||
player->mo->momz -= sub;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -13318,6 +13326,13 @@ static void K_KartSpindash(player_t *player)
|
|||
if (K_CanSuperTransfer(player))
|
||||
{
|
||||
S_StartSound(player->mo, sfx_ggfall);
|
||||
/*
|
||||
fixed_t movepenalty = min(abs(player->transfer*3/4), abs(player->mo->momz));
|
||||
if (player->transfer > 0)
|
||||
player->transfer -= movepenalty;
|
||||
else
|
||||
player->transfer += movepenalty;
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4127,7 +4127,8 @@ static void P_BouncePlayerMove(mobj_t *mo, TryMoveResult_t *result)
|
|||
else
|
||||
{
|
||||
// Some walls aren't bouncy even if you are
|
||||
if (bestslideline && (bestslideline->flags & ML_NOTBOUNCY))
|
||||
if ((bestslideline && (bestslideline->flags & ML_NOTBOUNCY))
|
||||
|| (mo->player && mo->player->transfer))
|
||||
{
|
||||
// SRB2Kart: Non-bouncy line!
|
||||
P_SlideMove(mo, result);
|
||||
|
|
|
|||
|
|
@ -1807,6 +1807,13 @@ boolean P_XYMovement(mobj_t *mo)
|
|||
{
|
||||
if (abs(transfermomz) > 10*mo->scale)
|
||||
{
|
||||
/*
|
||||
fixed_t clamp = 3*K_GetKartSpeed(mo->player, false, false)/2;
|
||||
if (transfermomz > 0)
|
||||
mo->player->transfer = min(transfermomz, clamp);
|
||||
else
|
||||
mo->player->transfer = max(transfermomz, clamp);
|
||||
*/
|
||||
mo->player->transfer = transfermomz;
|
||||
S_StartSound(mo, sfx_s3k98);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue