make this change operation order instead of use snapshots
This commit is contained in:
parent
c6b875b336
commit
2327f02529
6 changed files with 27 additions and 22 deletions
|
|
@ -674,7 +674,7 @@ consvar_t cv_kartairsquish = CVAR_INIT ("kartairsquish", "None", CV_NETVAR, kart
|
|||
|
||||
consvar_t cv_kartdebugshrink = CVAR_INIT ("kartdebugshrink", "Off", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL);
|
||||
|
||||
consvar_t cv_kartdrift_snapshot = CVAR_INIT ("kartdriftsnapshot", "Off", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL);
|
||||
consvar_t cv_kartdrift_operationorder = CVAR_INIT ("kartdriftoperationorder", "Off", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL);
|
||||
|
||||
consvar_t cv_kartdebugdistribution = CVAR_INIT ("kartdebugdistribution", "Off", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL);
|
||||
consvar_t cv_kartdebughuddrop = CVAR_INIT ("kartdebughuddrop", "Off", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL);
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ extern consvar_t cv_votetime;
|
|||
|
||||
extern consvar_t cv_kartdebugitem, cv_kartdebugamount, cv_kartdebugdistribution, cv_kartdebughuddrop;
|
||||
extern consvar_t cv_kartdebugshrink;
|
||||
extern consvar_t cv_kartdrift_snapshot;
|
||||
extern consvar_t cv_kartdrift_operationorder;
|
||||
extern consvar_t cv_kartdebugcheckpoint, cv_kartdebugnodes, cv_kartdebugcolorize, cv_kartdebugdirector;
|
||||
extern consvar_t cv_kartdebugwaypoints, cv_kartdebuglap, cv_kartdebugbot, cv_kartdebugcluster, cv_kartdebugrings;
|
||||
extern consvar_t cv_gptest;
|
||||
|
|
|
|||
|
|
@ -567,7 +567,6 @@ struct player_t
|
|||
boolean noclip; // Fix Grow breaking the "noclip" cheat. Also applies noclip as a bonus.
|
||||
|
||||
SINT8 drift; // (-5 to 5) - Drifting Left or Right, plus a bigger counter = sharper turn
|
||||
INT16 driftturnsnapshot;
|
||||
SINT8 driftlock; // Prevents you from using drift angle for x tics. Used for zipper fix.
|
||||
fixed_t driftcharge; // Charge your drift so you can release a burst of speed
|
||||
UINT8 driftboost; // (0 to 125) - Boost you get from drifting
|
||||
|
|
|
|||
30
src/k_kart.c
30
src/k_kart.c
|
|
@ -453,7 +453,7 @@ void K_RegisterKartStuff(void)
|
|||
CV_RegisterVar(&cv_karteggmine_slotlock);
|
||||
CV_RegisterVar(&cv_karteggmine_slotbrick);
|
||||
|
||||
CV_RegisterVar(&cv_kartdrift_snapshot);
|
||||
CV_RegisterVar(&cv_kartdrift_operationorder);
|
||||
}
|
||||
|
||||
//}
|
||||
|
|
@ -7572,17 +7572,16 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
player->flamecamtime -= 1;
|
||||
}
|
||||
|
||||
if (cmd->buttons & BT_DRIFT)
|
||||
if (!cv_kartdrift_operationorder.value)
|
||||
{
|
||||
player->pflags |= PF_DRIFTINPUT;
|
||||
|
||||
player->driftturnsnapshot = player->cmd.turning;
|
||||
}
|
||||
else
|
||||
{
|
||||
player->pflags &= ~PF_DRIFTINPUT;
|
||||
|
||||
player->driftturnsnapshot = 0;
|
||||
if (cmd->buttons & BT_DRIFT)
|
||||
{
|
||||
player->pflags |= PF_DRIFTINPUT;
|
||||
}
|
||||
else
|
||||
{
|
||||
player->pflags &= ~PF_DRIFTINPUT;
|
||||
}
|
||||
}
|
||||
|
||||
// Respawn Checker
|
||||
|
|
@ -9369,19 +9368,14 @@ static void K_KartDrift(player_t *player, boolean onground)
|
|||
player->driftcharge = 0;
|
||||
}
|
||||
|
||||
// experiment disabled, drop the snapshot and use the turning value from this tick
|
||||
if (!cv_kartdrift_snapshot.value)
|
||||
{
|
||||
player->driftturnsnapshot = player->cmd.turning;
|
||||
}
|
||||
// Drifting: left or right?
|
||||
if ((player->driftturnsnapshot > 0) && player->speed > minspeed && (player->pflags & PF_DRIFTINPUT) && (player->drift == 0 || (player->pflags & PF_DRIFTEND)))
|
||||
if ((player->cmd.turning > 0) && player->speed > minspeed && (player->pflags & PF_DRIFTINPUT) && (player->drift == 0 || (player->pflags & PF_DRIFTEND)))
|
||||
{
|
||||
// Starting left drift
|
||||
player->drift = 1;
|
||||
player->pflags &= ~PF_DRIFTEND;
|
||||
}
|
||||
else if ((player->driftturnsnapshot < 0) && player->speed > minspeed && (player->pflags & PF_DRIFTINPUT) && (player->drift == 0 || (player->pflags & PF_DRIFTEND)))
|
||||
else if ((player->cmd.turning < 0) && player->speed > minspeed && (player->pflags & PF_DRIFTINPUT) && (player->drift == 0 || (player->pflags & PF_DRIFTEND)))
|
||||
{
|
||||
// Starting right drift
|
||||
player->drift = -1;
|
||||
|
|
|
|||
|
|
@ -607,7 +607,6 @@ static void P_NetSyncPlayers(savebuffer_t *save)
|
|||
SYNCBOOLEAN(players[i].noclip);
|
||||
|
||||
SYNC(players[i].drift);
|
||||
SYNC(players[i].driftturnsnapshot);
|
||||
SYNC(players[i].driftlock);
|
||||
SYNC(players[i].driftcharge);
|
||||
SYNC(players[i].driftboost);
|
||||
|
|
|
|||
13
src/p_user.c
13
src/p_user.c
|
|
@ -4298,6 +4298,19 @@ void P_PlayerThink(player_t *player)
|
|||
}
|
||||
|
||||
player->pflags &= ~PF_HITFINISHLINE;
|
||||
|
||||
// experiment: process the drift input *before* player movement instead of after
|
||||
if (cv_kartdrift_operationorder.value)
|
||||
{
|
||||
if (cmd->buttons & BT_DRIFT)
|
||||
{
|
||||
player->pflags |= PF_DRIFTINPUT;
|
||||
}
|
||||
else
|
||||
{
|
||||
player->pflags &= ~PF_DRIFTINPUT;
|
||||
}
|
||||
}
|
||||
|
||||
// check water content, set stuff in mobj
|
||||
P_MobjCheckWater(player->mo);
|
||||
|
|
|
|||
Loading…
Reference in a new issue