mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-03-06 03:11:40 +00:00
my workflow is beyond your understanding
This commit is contained in:
parent
1e4bc482d0
commit
24b05451f6
4 changed files with 23 additions and 11 deletions
|
|
@ -510,6 +510,8 @@ static CV_PossibleValue_t perfstats_cons_t[] = {
|
|||
{0, "Off"}, {1, "Rendering"}, {2, "Logic"}, {3, "ThinkFrame"}, {0, NULL}};
|
||||
consvar_t cv_perfstats = CVAR_INIT ("perfstats", "Off", 0, perfstats_cons_t, NULL);
|
||||
|
||||
consvar_t cv_director = CVAR_INIT ("director", "Off", 0, CV_OnOff, NULL);
|
||||
|
||||
char timedemo_name[256];
|
||||
boolean timedemo_csv;
|
||||
char timedemo_csv_id[256];
|
||||
|
|
@ -742,6 +744,8 @@ void D_RegisterServerCommands(void)
|
|||
CV_RegisterVar(&cv_showping);
|
||||
CV_RegisterVar(&cv_showviewpointtext);
|
||||
|
||||
CV_RegisterVar(&cv_director);
|
||||
|
||||
CV_RegisterVar(&cv_dummyconsvar);
|
||||
|
||||
#ifdef USE_STUN
|
||||
|
|
|
|||
|
|
@ -113,6 +113,8 @@ extern consvar_t cv_sleep;
|
|||
|
||||
extern consvar_t cv_perfstats;
|
||||
|
||||
extern consvar_t cv_director;
|
||||
|
||||
extern char timedemo_name[256];
|
||||
extern boolean timedemo_csv;
|
||||
extern char timedemo_csv_id[256];
|
||||
|
|
|
|||
|
|
@ -12,13 +12,12 @@
|
|||
#include "d_netcmd.h"
|
||||
#include "p_local.h"
|
||||
|
||||
#define SWITCHTIME TICRATE*5
|
||||
#define DEBOUNCETIME TICRATE/6
|
||||
#define BOREDOMTIME 3*TICRATE/2
|
||||
#define TRANSFERTIME TICRATE
|
||||
#define BREAKAWAYDIST 4000
|
||||
#define WALKBACKDIST 600
|
||||
#define PINCHDIST 30000
|
||||
#define SWITCHTIME TICRATE*5 // cooldown between unforced switches
|
||||
#define BOREDOMTIME 3*TICRATE/2 // how long until players considered far apart?
|
||||
#define TRANSFERTIME TICRATE // how long to delay reaction shots?
|
||||
#define BREAKAWAYDIST 4000 // how *far* until players considered far apart?
|
||||
#define WALKBACKDIST 600 // how close should a trailing player be before we switch?
|
||||
#define PINCHDIST 30000 // how close should the leader be to be considered "end of race"?
|
||||
|
||||
void K_UpdateDirectorPositions(void);
|
||||
boolean K_CanSwitchDirector(void);
|
||||
|
|
@ -31,7 +30,7 @@ void K_DirectorForceSwitch(INT32 player, INT32 time);
|
|||
INT32 cooldown = 0; // how long has it been since we last switched?
|
||||
INT32 freeze = 0; // when nonzero, fixed switch pending, freeze logic!
|
||||
INT32 attacker = 0; // who to switch to when freeze delay elapses
|
||||
INT32 maxdist = 0;
|
||||
INT32 maxdist = 0; // how far is the closest player from finishing?
|
||||
|
||||
INT32 sortedplayers[MAXPLAYERS] = {0}; // position-1 goes in, player index comes out.
|
||||
INT32 gap[MAXPLAYERS] = {0}; // gap between a given position and their closest pursuer
|
||||
|
|
@ -74,7 +73,7 @@ boolean K_CanSwitchDirector(void) {
|
|||
INT32 *displayplayerp = &displayplayers[0];
|
||||
if (players[*displayplayerp].trickpanel > 0)
|
||||
return false;
|
||||
if (cooldown < SWITCHTIME);
|
||||
if (cooldown < SWITCHTIME)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
@ -111,20 +110,24 @@ void K_DrawDirectorDebugger(void) {
|
|||
INT32 leader;
|
||||
INT32 follower;
|
||||
INT32 ytxt;
|
||||
|
||||
if (!cv_kartdebugdirector.value)
|
||||
return;
|
||||
|
||||
V_DrawThinString(10, 0, V_70TRANS, va("PLACE"));
|
||||
V_DrawThinString(40, 0, V_70TRANS, va("CONF?"));
|
||||
V_DrawThinString(80, 0, V_70TRANS, va("GAP"));
|
||||
V_DrawThinString(120, 0, V_70TRANS, va("BORED"));
|
||||
V_DrawThinString(150, 0, V_70TRANS, va("COOLDOWN: %d", cooldown));
|
||||
V_DrawThinString(230, 0, V_70TRANS, va("MAXDIST: %d", maxdist));
|
||||
|
||||
for (playernum = 0; playernum < MAXPLAYERS-1; ++playernum) {
|
||||
ytxt = 10*playernum+10;
|
||||
leader = sortedplayers[playernum];
|
||||
follower = sortedplayers[playernum+1];
|
||||
if (leader == -1 || follower == -1)
|
||||
break;
|
||||
|
||||
V_DrawThinString(10, ytxt, V_70TRANS, va("%d", playernum));
|
||||
V_DrawThinString(20, ytxt, V_70TRANS, va("%d", playernum+1));
|
||||
if (players[leader].positiondelay)
|
||||
|
|
@ -143,6 +146,9 @@ void K_UpdateDirector(void) {
|
|||
INT32 *displayplayerp = &displayplayers[0];
|
||||
INT32 targetposition;
|
||||
|
||||
if (!cv_director.value)
|
||||
return;
|
||||
|
||||
K_UpdateDirectorPositions();
|
||||
cooldown++;
|
||||
|
||||
|
|
@ -180,7 +186,6 @@ void K_UpdateDirector(void) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
target = sortedplayers[targetposition+1];
|
||||
|
||||
// if we're certain the back half of the pair is actually in this position, try to switch
|
||||
|
|
|
|||
|
|
@ -3276,10 +3276,11 @@ static void K_RemoveGrowShrink(player_t *player)
|
|||
|
||||
void K_TumblePlayer(player_t *player, mobj_t *inflictor, mobj_t *source)
|
||||
{
|
||||
K_DirectorFollowAttack(player, inflictor, source);
|
||||
fixed_t gravityadjust;
|
||||
(void)source;
|
||||
|
||||
K_DirectorFollowAttack(player, inflictor, source);
|
||||
|
||||
player->tumbleBounces = 1;
|
||||
|
||||
if (player->tripWireState == TRIP_PASSED)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue