#include "rSDL.h"
#include "gCycleMovement.h"
#include "tMath.h"
#include "nConfig.h"
#include "ePlayer.h"
#include "eDebugLine.h"
#include "eGrid.h"
#include "eLagCompensation.h"
#include "eTeam.h"
#include "eTimer.h"
#include "gWall.h"
#include "gSensor.h"
#include "gAIBase.h"
#include "tRecorder.h"
Go to the source code of this file.
Classes | |
struct | gMaxSpaceAheadHitInfo |
information about obstacle encountered by MaxSpaceAhead More... | |
class | gTurnDelayOverride |
class | gRecursionGuard |
Defines | |
#define | INLINE_DEF |
#define | MAXRUBBER 1 |
#define | MINDISTANCE_FACTOR 0 |
Functions | |
void | sg_RubberValues (ePlayerNetID const *player, REAL speed, REAL &max, REAL &effectiveness) |
static void | sg_ArchiveCoord (eCoord &coord, int level) |
static void | sg_ArchiveReal (REAL &real, int level) |
REAL | sg_GetSparksDistance () |
static void | blocks (const gSensor &s, const gCycleMovement *c, int lr) |
static REAL | sg_MaxSpeed (REAL maxAcceleration) |
static void | sg_DropTempWall (eCoord const &dir, gSensor const &sensor) |
static REAL | sg_Gap (gSensor const &front, gSensor const &side, eCoord const &dir, REAL norm, REAL def, REAL &tolerance) |
static bool | sg_UseAntiLagSliding (const eNetGameObject *obj) |
REAL | GetTurnSpeedFactor (void) |
Variables | |
static nVersionFeature | sg_verletIntegration (7) |
REAL | sg_brakeCycle = 30 |
static nSettingItem< REAL > | c_ab ("CYCLE_BRAKE", sg_brakeCycle) |
REAL | sg_cycleBrakeRefill = 0.0 |
REAL | sg_cycleBrakeDeplete = 0.0 |
static nSettingItemWatched< REAL > | sg_cycleBrakeRefillConf ("CYCLE_BRAKE_REFILL", sg_cycleBrakeRefill, nConfItemVersionWatcher::Group_Annoying, 2) |
static nSettingItemWatched< REAL > | sg_cycleBrakeDepleteConf ("CYCLE_BRAKE_DEPLETE", sg_cycleBrakeDeplete, nConfItemVersionWatcher::Group_Annoying, 2) |
REAL | sg_cycleWidth = 0 |
static nSettingItemWatched< REAL > | c_cw ("CYCLE_WIDTH", sg_cycleWidth, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_cycleWidthSide = 0 |
static nSettingItemWatched< REAL > | c_cws ("CYCLE_WIDTH_SIDE", sg_cycleWidthSide, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_cycleWidthRubberMin = 1 |
static nSettingItemWatched< REAL > | c_cwrmax ("CYCLE_WIDTH_RUBBER_MIN", sg_cycleWidthRubberMin, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_cycleWidthRubberMax = 1 |
static nSettingItemWatched< REAL > | c_cwrmin ("CYCLE_WIDTH_RUBBER_MAX", sg_cycleWidthRubberMax, nConfItemVersionWatcher::Group_Bumpy, 14) |
static REAL | sg_speedCycle = 10 |
static nSettingItem< REAL > | c_s ("CYCLE_SPEED", sg_speedCycle) |
static REAL | sg_speedCycleMin = .25 |
static nSettingItemWatched< REAL > | c_smin ("CYCLE_SPEED_MIN", sg_speedCycleMin, nConfItemVersionWatcher::Group_Bumpy, 9) |
static REAL | sg_speedCycleMax = 0 |
static nSettingItemWatched< REAL > | c_smax ("CYCLE_SPEED_MAX", sg_speedCycleMax, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_speedCycleDecayBelow = 5 |
static nSettingItemWatched< REAL > | c_sdb ("CYCLE_SPEED_DECAY_BELOW", sg_speedCycleDecayBelow, nConfItemVersionWatcher::Group_Bumpy, 8) |
REAL | sg_speedCycleDecayAbove = .1 |
static nSettingItemWatched< REAL > | c_sda ("CYCLE_SPEED_DECAY_ABOVE", sg_speedCycleDecayAbove, nConfItemVersionWatcher::Group_Bumpy, 8) |
static REAL | sg_speedCycleStart = 20 |
static tSettingItem< REAL > | c_st ("CYCLE_START_SPEED", sg_speedCycleStart) |
REAL | sg_delayCycle = .1 |
static nSettingItem< REAL > | c_d ("CYCLE_DELAY", sg_delayCycle) |
REAL | sg_delayCycleDoublebindBonus = 1. |
static nSettingItemWatched< REAL > | c_d_d_b ("CYCLE_DELAY_DOUBLEBIND_BONUS", sg_delayCycleDoublebindBonus, nConfItemVersionWatcher::Group_Bumpy, 14) |
int | sg_cycleTurnMemory = 3 |
static tSettingItem< int > | c_tm ("CYCLE_TURN_MEMORY", sg_cycleTurnMemory) |
REAL | sg_delayCycleTimeBased = 1 |
static nSettingItemWatched< REAL > | c_dt ("CYCLE_DELAY_TIMEBASED", sg_delayCycleTimeBased, nConfItemVersionWatcher::Group_Bumpy, 7) |
REAL | sg_delayCycleBonus = 1 |
REAL | sg_cycleTurnSpeedFactor = .95 |
static nSettingItemWatched< REAL > | c_ctf ("CYCLE_TURN_SPEED_FACTOR", sg_cycleTurnSpeedFactor, nConfItemVersionWatcher::Group_Bumpy, 7) |
static REAL | sg_accelerationCycle = 10 |
static nSettingItem< REAL > | c_a ("CYCLE_ACCEL", sg_accelerationCycle) |
REAL | sg_accelerationCycleSelf = 1 |
static nSettingItemWatched< REAL > | c_aco ("CYCLE_ACCEL_SELF", sg_accelerationCycleSelf, nConfItemVersionWatcher::Group_Bumpy, 8) |
REAL | sg_accelerationCycleTeam = 1 |
static nSettingItemWatched< REAL > | c_act ("CYCLE_ACCEL_TEAM", sg_accelerationCycleTeam, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_accelerationCycleEnemy = 1 |
static nSettingItemWatched< REAL > | c_ace ("CYCLE_ACCEL_ENEMY", sg_accelerationCycleEnemy, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_accelerationCycleRim = 0 |
static nSettingItemWatched< REAL > | c_acr ("CYCLE_ACCEL_RIM", sg_accelerationCycleRim, nConfItemVersionWatcher::Group_Bumpy, 8) |
REAL | sg_accelerationCycleSlingshot = 1 |
static nSettingItemWatched< REAL > | c_acs ("CYCLE_ACCEL_SLINGSHOT", sg_accelerationCycleSlingshot, nConfItemVersionWatcher::Group_Bumpy, 8) |
REAL | sg_accelerationCycleTunnel = 1 |
static nSettingItemWatched< REAL > | c_acu ("CYCLE_ACCEL_TUNNEL", sg_accelerationCycleTunnel, nConfItemVersionWatcher::Group_Bumpy, 14) |
static REAL | sg_accelerationCycleOffs = 2 |
static nSettingItem< REAL > | c_ao ("CYCLE_ACCEL_OFFSET", sg_accelerationCycleOffs) |
static REAL | sg_nearCycle = 6 |
static nSettingItem< REAL > | c_n ("CYCLE_WALL_NEAR", sg_nearCycle) |
REAL | sg_boostCycleSelf = 0 |
static nSettingItemWatched< REAL > | c_bco ("CYCLE_BOOST_SELF", sg_boostCycleSelf, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_boostCycleTeam = 0 |
static nSettingItemWatched< REAL > | c_bct ("CYCLE_BOOST_TEAM", sg_boostCycleTeam, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_boostCycleEnemy = 0 |
static nSettingItemWatched< REAL > | c_bce ("CYCLE_BOOST_ENEMY", sg_boostCycleEnemy, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_boostCycleRim = 0 |
static nSettingItemWatched< REAL > | c_bcr ("CYCLE_BOOST_RIM", sg_boostCycleRim, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_boostFactorCycleSelf = 1 |
static nSettingItemWatched< REAL > | c_bfco ("CYCLE_BOOSTFACTOR_SELF", sg_boostFactorCycleSelf, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_boostFactorCycleTeam = 1 |
static nSettingItemWatched< REAL > | c_bfct ("CYCLE_BOOSTFACTOR_TEAM", sg_boostFactorCycleTeam, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_boostFactorCycleEnemy = 1 |
static nSettingItemWatched< REAL > | c_bfce ("CYCLE_BOOSTFACTOR_ENEMY", sg_boostFactorCycleEnemy, nConfItemVersionWatcher::Group_Bumpy, 14) |
REAL | sg_boostFactorCycleRim = 1 |
static nSettingItemWatched< REAL > | c_bfcr ("CYCLE_BOOSTFACTOR_RIM", sg_boostFactorCycleRim, nConfItemVersionWatcher::Group_Bumpy, 14) |
static REAL | sg_packetLossTolerance = 0 |
static tSettingItem< REAL > | conf_packetLossTolerance ("CYCLE_PACKETLOSS_TOLERANCE", sg_packetLossTolerance) |
static REAL | sg_packetMissTolerance = 3 |
static tSettingItem< REAL > | conf_packetMissTolerance ("CYCLE_PACKETMISS_TOLERANCE", sg_packetMissTolerance) |
REAL | sg_rubberCycle = MAXRUBBER |
static nSettingItem< REAL > | c_r ("CYCLE_RUBBER", sg_rubberCycle) |
REAL | sg_rubberCycleTimeBased = 0 |
static nSettingItemWatched< REAL > | c_rtb ("CYCLE_RUBBER_TIMEBASED", sg_rubberCycleTimeBased, nConfItemVersionWatcher::Group_Visual, 7) |
bool | sg_rubberCycleLegacy = true |
static nSettingItem< bool > | c_rl ("CYCLE_RUBBER_LEGACY", sg_rubberCycleLegacy) |
static REAL | sg_rubberCyclePing = 3 |
static nSettingItem< REAL > | c_rp ("CYCLE_PING_RUBBER", sg_rubberCyclePing) |
REAL | sg_rubberCycleTime = 10 |
static nSettingItemWatched< REAL > | c_rt ("CYCLE_RUBBER_TIME", sg_rubberCycleTime, nConfItemVersionWatcher::Group_Visual, 7) |
static REAL | sg_rubberCycleSpeed = 40 |
static nSettingItemWatched< REAL > | c_rs ("CYCLE_RUBBER_SPEED", sg_rubberCycleSpeed, nConfItemVersionWatcher::Group_Cheating, 4) |
static REAL | sg_rubberCycleMinDistance = .001 * MINDISTANCE_FACTOR |
static nSettingItemWatched< REAL > | c_rmd ("CYCLE_RUBBER_MINDISTANCE", sg_rubberCycleMinDistance, nConfItemVersionWatcher::Group_Annoying, 4) |
static REAL | sg_rubberCycleMinDistanceRatio = .0001 * MINDISTANCE_FACTOR |
static nSettingItemWatched< REAL > | c_rmdr ("CYCLE_RUBBER_MINDISTANCE_RATIO", sg_rubberCycleMinDistanceRatio, nConfItemVersionWatcher::Group_Annoying, 4) |
static REAL | sg_rubberCycleMinDistanceReservoir = 0.005 * MINDISTANCE_FACTOR |
static nSettingItemWatched< REAL > | c_rmdres ("CYCLE_RUBBER_MINDISTANCE_RESERVOIR", sg_rubberCycleMinDistanceReservoir, nConfItemVersionWatcher::Group_Annoying, 7) |
static REAL | sg_rubberCycleMinDistanceUnprepared = 0.005 * MINDISTANCE_FACTOR |
static nSettingItemWatched< REAL > | c_rmdup ("CYCLE_RUBBER_MINDISTANCE_UNPREPARED", sg_rubberCycleMinDistanceUnprepared, nConfItemVersionWatcher::Group_Annoying, 7) |
static REAL | sg_rubberCycleMinDistancePreparation = 0.2 |
static nSettingItemWatched< REAL > | c_rmdp ("CYCLE_RUBBER_MINDISTANCE_PREPARATION", sg_rubberCycleMinDistancePreparation, nConfItemVersionWatcher::Group_Annoying, 7) |
static REAL | sg_rubberCycleMinDistanceLegacy = 1 |
static nSettingItem< REAL > | c_rmdl ("CYCLE_RUBBER_MINDISTANCE_LEGACY", sg_rubberCycleMinDistanceLegacy) |
static nVersionFeature | sg_nonRippable (4) |
static REAL | sg_rubberCycleMinAdjust = .05 |
static nSettingItemWatched< REAL > | c_rma ("CYCLE_RUBBER_MINADJUST", sg_rubberCycleMinAdjust, nConfItemVersionWatcher::Group_Annoying, 4) |
static REAL | sg_rubberCycleDelay = 0 |
static nSettingItemWatched< REAL > | c_rcd ("CYCLE_RUBBER_DELAY", sg_rubberCycleDelay, nConfItemVersionWatcher::Group_Visual, 6) |
static REAL | sg_rubberCycleDelayBonus = .5 |
static nSettingItemWatched< REAL > | c_rcdb ("CYCLE_RUBBER_DELAY_BONUS", sg_rubberCycleDelayBonus, nConfItemVersionWatcher::Group_Visual, 6) |
static REAL | sg_rubberCycleMalusTurn = 0 |
static nSettingItemWatched< REAL > | c_rctm ("CYCLE_RUBBER_MALUS_TURN", sg_rubberCycleMalusTurn, nConfItemVersionWatcher::Group_Visual, 6) |
static REAL | sg_rubberCycleMalusTime = 5 |
static nSettingItem< REAL > | c_rcmd ("CYCLE_RUBBER_MALUS_TIME", sg_rubberCycleMalusTime) |
static REAL | sg_timeTolerance = .1 |
static nSettingItemWatched< REAL > | c_tt ("CYCLE_TIME_TOLERANCE", sg_timeTolerance, nConfItemVersionWatcher::Group_Visual, 6) |
static int | sg_cycleMaxRefCount = 30000 |
static tSettingItem< int > | conf_sgCycleMaxRefCount ("CYCLE_MAX_REFCOUNT", sg_cycleMaxRefCount) |
static REAL | sg_enemyFriendTimePenalty = 2500.0f |
penalty for teammate influence | |
static REAL | sg_enemyDeadTimePenalty = 0.0f |
penalty for influence from dead players | |
REAL | sg_suicideTimeout = 10000.0f |
influences older than this don't count as kill cause | |
static REAL | sg_enemyCurrentTimeInfluence = 0.0f |
blends in the current time into the relevant time | |
static tSettingItem< REAL > | sg_enemyFriendTimePenaltyConf ("ENEMY_TEAMMATE_PENALTY", sg_enemyFriendTimePenalty) |
static tSettingItem< REAL > | sg_enemyDeadTimePenaltyConf ("ENEMY_DEAD_PENALTY", sg_enemyDeadTimePenalty) |
static tSettingItem< REAL > | sg_suicideTimeoutConf ("ENEMY_SUICIDE_TIMEOUT", sg_suicideTimeout) |
static tSettingItem< REAL > | sg_enemyCurrentTimeInfluenceConf ("ENEMY_CURRENTTIME_INFLUENCE", sg_enemyCurrentTimeInfluence) |
static float | sg_speedMultiplier = 1.0f |
static nSettingItem< float > | conf_mult ("REAL_CYCLE_SPEED_FACTOR", sg_speedMultiplier) |
static REAL | sg_rubberCycleMinDistanceGap = .0f |
static REAL | sg_rubberCycleMinDistanceGapSide = .5f |
static nSettingItemWatched< REAL > | c_rcmdg ("CYCLE_RUBBER_MINDISTANCE_GAP", sg_rubberCycleMinDistanceGap, nConfItemVersionWatcher::Group_Bumpy, 14) |
static nSettingItem< REAL > | c_rcmdgs ("CYCLE_RUBBER_MINDISTANCE_GAP_SIDE", sg_rubberCycleMinDistanceGapSide) |
static nVersionFeature | sg_CommandTime (4) |
determines how much a given cycle is allowed to drive ahead without getting too close to the next wall. Looks at least lookAhead into the future, but never reports more than maxReport as result. The next timestep is assumed to be ts seconds long. | |
static nVersionFeature | sg_AntiLag (5) |
static bool | sg_fairAntiLagSliding = true |
static nSettingItem< bool > | c_fals ("CYCLE_FAIR_ANTILAG", sg_fairAntiLagSliding) |
static nVersionFeature | sg_noRedundantBrakeCommands (13) |
static nVersionFeature | sg_sendCorrectLastTurn (8) |
static nVersionFeature | sg_correctAccelerationScaling (8) |
#define INLINE_DEF |
Definition at line 60 of file gCycleMovement.cpp.
#define MAXRUBBER 1 |
Definition at line 63 of file gCycleMovement.cpp.
#define MINDISTANCE_FACTOR 0 |
Definition at line 361 of file gCycleMovement.cpp.
static void blocks | ( | const gSensor & | s, | |
const gCycleMovement * | c, | |||
int | lr | |||
) | [static] |
Definition at line 451 of file gCycleMovement.cpp.
References eSensor::before_hit, gPlayerWall::Cycle(), gAIPlayer::CycleBlocksRim(), gAIPlayer::CycleBlocksWay(), gSENSOR_ENEMY, gSENSOR_RIM, gSENSOR_TEAMMATE, eSensor::lr, nCLIENT, gPlayerWall::Pos(), sn_GetNetState(), gSensor::type, gPlayerWall::WindingNumber(), and gCycleMovement::WindingNumber().
Referenced by gCycleMovement::CalculateAcceleration().
00453 { 00454 if ( nCLIENT == sn_GetNetState() ) 00455 return; 00456 00457 if (s.type == gSENSOR_RIM) 00458 gAIPlayer::CycleBlocksRim(c, lr); 00459 else if (s.type == gSENSOR_TEAMMATE || s.type == gSENSOR_ENEMY && s.ehit) 00460 { 00461 gPlayerWall *w = dynamic_cast<gPlayerWall*>(s.ehit->GetWall()); 00462 if (w) 00463 { 00464 // int turn = c->Grid()->WindingNumber(); 00465 // int halfTurn = turn >> 1; 00466 00467 // calculate the winding number. 00468 int windingBefore = c->WindingNumber(); // we start driving in c's direction 00469 // we need to make a sharp turn in the lr-direction 00470 // windingBefore += lr * halfTurn; 00471 00472 // after the transfer, we need to drive in the direction of the other 00473 // wall: 00474 int windingAfter = w->WindingNumber(); 00475 00476 // if the other wall drives in the opposite direction, we 00477 // need to turn around again: 00478 // if (s.lr == lr) 00479 // windingAfter -= lr * halfTurn; 00480 00481 // make the winding difference a multiple of the winding number 00482 /* 00483 int compensation = ((windingAfter - windingBefore - halfTurn) % turn) 00484 + halfTurn; 00485 while (compensation < -halfTurn) 00486 compensation += turn; 00487 */ 00488 00489 // only if the two walls are parallel/antiparallel, there is true blocking. 00490 if (((windingBefore - windingAfter) & 1) == 0) 00491 gAIPlayer::CycleBlocksWay(c, w->Cycle(), 00492 lr, s.lr, 00493 w->Pos(s.ehit->Ratio(s.before_hit)), 00494 - windingAfter + windingBefore); 00495 } 00496 }
REAL GetTurnSpeedFactor | ( | void | ) |
Definition at line 4107 of file gCycleMovement.cpp.
References sg_cycleTurnSpeedFactor.
04108 { 04109 return sg_cycleTurnSpeedFactor;
static void sg_ArchiveCoord | ( | eCoord & | coord, | |
int | level | |||
) | [static] |
Definition at line 81 of file gCycleMovement.cpp.
References tRecorderSync< DATA >::Archive(), and section.
00083 { 00084 static char const * section = "_COORD"; 00085 tRecorderSync< eCoord >::Archive( section, level, coord );
static void sg_ArchiveReal | ( | REAL & | real, | |
int | level | |||
) | [static] |
Definition at line 87 of file gCycleMovement.cpp.
References tRecorderSync< DATA >::Archive(), and section.
00089 { 00090 static char const * section = "_REAL"; 00091 tRecorderSync< REAL >::Archive( section, level, real );
static void sg_DropTempWall | ( | eCoord const & | dir, | |
gSensor const & | sensor | |||
) | [static] |
Definition at line 1458 of file gCycleMovement.cpp.
References eSensor::before_hit, gPlayerWall::CycleMovement(), gCycleMovement::DropTempWall(), eCoord, nCLIENT, sn_GetNetState(), and tASSERT.
Referenced by gCycleMovement::CalculateAcceleration(), gCycleMovement::DoTurn(), and gCycleMovement::GetMaxSpaceAhead().
01460 { 01461 tASSERT( sensor.ehit ); 01462 01463 if (sn_GetNetState() != nCLIENT ) 01464 { 01465 // if the wall is temporary, let its cycle drop it so it gets copied into the grid 01466 // and makes less phasing problems 01467 // don't drop parallel walls 01468 eCoord vec = sensor.ehit->Vec(); 01469 if ( fabs( dir * vec ) < vec.Norm() * .5 ) 01470 return; 01471 01472 // get the wall 01473 eWall * ew = sensor.ehit->GetWall(); 01474 tASSERT( ew ); 01475 gPlayerWall* w = dynamic_cast< gPlayerWall * >( ew ); 01476 01477 // check if wall exists 01478 if ( w ) 01479 { 01480 // get the cycle 01481 gCycleMovement* other = w->CycleMovement(); 01482 01483 // let it drop wall 01484 if ( other ) 01485 other->DropTempWall( w, sensor.before_hit, dir ); 01486 } 01487 }
static REAL sg_Gap | ( | gSensor const & | front, | |
gSensor const & | side, | |||
eCoord const & | dir, | |||
REAL | norm, | |||
REAL | def, | |||
REAL & | tolerance | |||
) | [static] |
Definition at line 1519 of file gCycleMovement.cpp.
References EPS, eSensor::hit, and REAL.
Referenced by gCycleMovement::GetMaxSpaceAhead().
01521 { 01522 if ( side.ehit && side.ehit->Other() ) 01523 { 01524 // determine the adistance of the two endpoints of the side edge 01525 // to the wall in front of us 01526 REAL gap1 = ( front.ehit->Vec()*( *side.ehit->Point() - *front.ehit->Point() ) )/norm; 01527 REAL gap2 = ( front.ehit->Vec()*( *side.ehit->Other()->Point() - *front.ehit->Point() ) )/norm; 01528 01529 // correct for orientation using the current driving direction 01530 REAL sign = (dir * front.ehit->Vec())/norm; 01531 if ( sign != 0 ) 01532 { 01533 sign = 1/sign; 01534 gap1 *= sign; 01535 gap2 *= sign; 01536 } 01537 01538 // if both values are positive, update the cache with the smaller one 01539 tolerance = ( fabs(gap1) + fabs(gap2) ) * EPS * 10; 01540 REAL minGap = gap1 < gap2 ? gap1 : gap2; 01541 01542 return minGap; 01543 } 01544 else 01545 { 01546 // return something close to the front wall 01547 tolerance = EPS * 10 * front.hit; 01548 return def; 01549 }
REAL sg_GetSparksDistance | ( | ) |
Definition at line 122 of file gCycleMovement.cpp.
References sg_cycleWidth, and sg_cycleWidthSide.
Referenced by gCycle::TimestepCore().
00124 { 00125 if ( sg_cycleWidth < 2 * sg_cycleWidthSide ) 00126 return sg_cycleWidth; 00127 else if ( sg_cycleWidthSide > 0 ) 00128 return sg_cycleWidthSide * 2; 00129 else 00130 return .25; // return 0.2.8.2 default
Definition at line 769 of file gCycleMovement.cpp.
References sg_speedCycle, and sg_speedCycleDecayAbove.
Referenced by gCycleMovement::MaximalSpeed().
00771 { 00772 if ( sg_speedCycleDecayAbove > 0 ) 00773 return sg_speedCycle + maxAcceleration / sg_speedCycleDecayAbove; 00774 else 00775 return sg_speedCycle * 100;
void sg_RubberValues | ( | ePlayerNetID const * | player, | |
REAL | speed, | |||
REAL & | max, | |||
REAL & | effectiveness | |||
) |
static bool sg_UseAntiLagSliding | ( | const eNetGameObject * | obj | ) | [static] |
Definition at line 1898 of file gCycleMovement.cpp.
References nCLIENT, nNetObject::Owner(), sg_AntiLag, sg_CommandTime, sg_fairAntiLagSliding, sn_GetNetState(), nVersionFeature::Supported(), and tASSERT.
Referenced by gCycleMovement::Timestep().
01900 { 01901 tASSERT( obj ); 01902 01903 // cant do anyting for old clients that don't send the time of commands 01904 if ( !sg_CommandTime.Supported( obj->Owner() ) ) 01905 return false; 01906 01907 // likewise if the server does not support anti lag code and this is the client 01908 if ( sn_GetNetState() == nCLIENT && !sg_AntiLag.Supported( obj->Owner() ) ) 01909 return false; 01910 01911 // check whether the command time is sent by everyone or at least the object owner ( depending on fairness ) 01912 if ( sg_fairAntiLagSliding ) 01913 { 01914 return sg_CommandTime.Supported(); 01915 } 01916 else 01917 { 01918 // we already checked whether the command time was sent 01919 return true; 01920 }
nSettingItem<REAL> c_a("CYCLE_ACCEL", sg_accelerationCycle) [static] |
nSettingItem<REAL> c_ab("CYCLE_BRAKE", sg_brakeCycle) [static] |
nSettingItemWatched<REAL> c_ace("CYCLE_ACCEL_ENEMY", sg_accelerationCycleEnemy, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_aco("CYCLE_ACCEL_SELF", sg_accelerationCycleSelf, nConfItemVersionWatcher::Group_Bumpy, 8) [static] |
nSettingItemWatched<REAL> c_acr("CYCLE_ACCEL_RIM", sg_accelerationCycleRim, nConfItemVersionWatcher::Group_Bumpy, 8) [static] |
nSettingItemWatched<REAL> c_acs("CYCLE_ACCEL_SLINGSHOT", sg_accelerationCycleSlingshot, nConfItemVersionWatcher::Group_Bumpy, 8) [static] |
nSettingItemWatched<REAL> c_act("CYCLE_ACCEL_TEAM", sg_accelerationCycleTeam, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_acu("CYCLE_ACCEL_TUNNEL", sg_accelerationCycleTunnel, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItem<REAL> c_ao("CYCLE_ACCEL_OFFSET", sg_accelerationCycleOffs) [static] |
nSettingItemWatched<REAL> c_bce("CYCLE_BOOST_ENEMY", sg_boostCycleEnemy, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_bco("CYCLE_BOOST_SELF", sg_boostCycleSelf, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_bcr("CYCLE_BOOST_RIM", sg_boostCycleRim, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_bct("CYCLE_BOOST_TEAM", sg_boostCycleTeam, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_bfce("CYCLE_BOOSTFACTOR_ENEMY", sg_boostFactorCycleEnemy, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_bfco("CYCLE_BOOSTFACTOR_SELF", sg_boostFactorCycleSelf, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_bfcr("CYCLE_BOOSTFACTOR_RIM", sg_boostFactorCycleRim, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_bfct("CYCLE_BOOSTFACTOR_TEAM", sg_boostFactorCycleTeam, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_ctf("CYCLE_TURN_SPEED_FACTOR", sg_cycleTurnSpeedFactor, nConfItemVersionWatcher::Group_Bumpy, 7) [static] |
nSettingItemWatched<REAL> c_cw("CYCLE_WIDTH", sg_cycleWidth, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_cwrmax("CYCLE_WIDTH_RUBBER_MIN", sg_cycleWidthRubberMin, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_cwrmin("CYCLE_WIDTH_RUBBER_MAX", sg_cycleWidthRubberMax, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_cws("CYCLE_WIDTH_SIDE", sg_cycleWidthSide, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItem<REAL> c_d("CYCLE_DELAY", sg_delayCycle) [static] |
nSettingItemWatched<REAL> c_d_d_b("CYCLE_DELAY_DOUBLEBIND_BONUS", sg_delayCycleDoublebindBonus, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_dt("CYCLE_DELAY_TIMEBASED", sg_delayCycleTimeBased, nConfItemVersionWatcher::Group_Bumpy, 7) [static] |
nSettingItem<bool> c_fals("CYCLE_FAIR_ANTILAG", sg_fairAntiLagSliding) [static] |
nSettingItem<REAL> c_n("CYCLE_WALL_NEAR", sg_nearCycle) [static] |
nSettingItem<REAL> c_r("CYCLE_RUBBER", sg_rubberCycle) [static] |
nSettingItemWatched<REAL> c_rcd("CYCLE_RUBBER_DELAY", sg_rubberCycleDelay, nConfItemVersionWatcher::Group_Visual, 6) [static] |
nSettingItemWatched<REAL> c_rcdb("CYCLE_RUBBER_DELAY_BONUS", sg_rubberCycleDelayBonus, nConfItemVersionWatcher::Group_Visual, 6) [static] |
nSettingItem<REAL> c_rcmd("CYCLE_RUBBER_MALUS_TIME", sg_rubberCycleMalusTime) [static] |
nSettingItemWatched<REAL> c_rcmdg("CYCLE_RUBBER_MINDISTANCE_GAP", sg_rubberCycleMinDistanceGap, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItem<REAL> c_rcmdgs("CYCLE_RUBBER_MINDISTANCE_GAP_SIDE", sg_rubberCycleMinDistanceGapSide) [static] |
nSettingItemWatched<REAL> c_rctm("CYCLE_RUBBER_MALUS_TURN", sg_rubberCycleMalusTurn, nConfItemVersionWatcher::Group_Visual, 6) [static] |
nSettingItem<bool> c_rl("CYCLE_RUBBER_LEGACY", sg_rubberCycleLegacy) [static] |
nSettingItemWatched<REAL> c_rma("CYCLE_RUBBER_MINADJUST", sg_rubberCycleMinAdjust, nConfItemVersionWatcher::Group_Annoying, 4) [static] |
nSettingItemWatched<REAL> c_rmd("CYCLE_RUBBER_MINDISTANCE", sg_rubberCycleMinDistance, nConfItemVersionWatcher::Group_Annoying, 4) [static] |
nSettingItem<REAL> c_rmdl("CYCLE_RUBBER_MINDISTANCE_LEGACY", sg_rubberCycleMinDistanceLegacy) [static] |
nSettingItemWatched<REAL> c_rmdp("CYCLE_RUBBER_MINDISTANCE_PREPARATION", sg_rubberCycleMinDistancePreparation, nConfItemVersionWatcher::Group_Annoying, 7) [static] |
nSettingItemWatched<REAL> c_rmdr("CYCLE_RUBBER_MINDISTANCE_RATIO", sg_rubberCycleMinDistanceRatio, nConfItemVersionWatcher::Group_Annoying, 4) [static] |
nSettingItemWatched<REAL> c_rmdres("CYCLE_RUBBER_MINDISTANCE_RESERVOIR", sg_rubberCycleMinDistanceReservoir, nConfItemVersionWatcher::Group_Annoying, 7) [static] |
nSettingItemWatched<REAL> c_rmdup("CYCLE_RUBBER_MINDISTANCE_UNPREPARED", sg_rubberCycleMinDistanceUnprepared, nConfItemVersionWatcher::Group_Annoying, 7) [static] |
nSettingItem<REAL> c_rp("CYCLE_PING_RUBBER", sg_rubberCyclePing) [static] |
nSettingItemWatched<REAL> c_rs("CYCLE_RUBBER_SPEED", sg_rubberCycleSpeed, nConfItemVersionWatcher::Group_Cheating, 4) [static] |
nSettingItemWatched<REAL> c_rt("CYCLE_RUBBER_TIME", sg_rubberCycleTime, nConfItemVersionWatcher::Group_Visual, 7) [static] |
nSettingItemWatched<REAL> c_rtb("CYCLE_RUBBER_TIMEBASED", sg_rubberCycleTimeBased, nConfItemVersionWatcher::Group_Visual, 7) [static] |
nSettingItem<REAL> c_s("CYCLE_SPEED", sg_speedCycle) [static] |
nSettingItemWatched<REAL> c_sda("CYCLE_SPEED_DECAY_ABOVE", sg_speedCycleDecayAbove, nConfItemVersionWatcher::Group_Bumpy, 8) [static] |
nSettingItemWatched<REAL> c_sdb("CYCLE_SPEED_DECAY_BELOW", sg_speedCycleDecayBelow, nConfItemVersionWatcher::Group_Bumpy, 8) [static] |
nSettingItemWatched<REAL> c_smax("CYCLE_SPEED_MAX", sg_speedCycleMax, nConfItemVersionWatcher::Group_Bumpy, 14) [static] |
nSettingItemWatched<REAL> c_smin("CYCLE_SPEED_MIN", sg_speedCycleMin, nConfItemVersionWatcher::Group_Bumpy, 9) [static] |
tSettingItem<REAL> c_st("CYCLE_START_SPEED", sg_speedCycleStart) [static] |
tSettingItem<int> c_tm("CYCLE_TURN_MEMORY", sg_cycleTurnMemory) [static] |
nSettingItemWatched<REAL> c_tt("CYCLE_TIME_TOLERANCE", sg_timeTolerance, nConfItemVersionWatcher::Group_Visual, 6) [static] |
nSettingItem<float> conf_mult("REAL_CYCLE_SPEED_FACTOR", sg_speedMultiplier) [static] |
tSettingItem<REAL> conf_packetLossTolerance("CYCLE_PACKETLOSS_TOLERANCE", sg_packetLossTolerance) [static] |
tSettingItem<REAL> conf_packetMissTolerance("CYCLE_PACKETMISS_TOLERANCE", sg_packetMissTolerance) [static] |
tSettingItem<int> conf_sgCycleMaxRefCount("CYCLE_MAX_REFCOUNT", sg_cycleMaxRefCount) [static] |
REAL sg_accelerationCycle = 10 [static] |
Definition at line 213 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
Definition at line 230 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
REAL sg_accelerationCycleOffs = 2 [static] |
Definition at line 255 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), gCycleMovement::DoTurn(), and gCycleMovement::MaximalSpeed().
Definition at line 236 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
Definition at line 218 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
Definition at line 242 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
Definition at line 224 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
Definition at line 248 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
nVersionFeature sg_AntiLag(5) [static] |
Referenced by sg_UseAntiLagSliding().
REAL sg_boostCycleRim = 0 |
REAL sg_brakeCycle = 30 |
Definition at line 98 of file gCycleMovement.cpp.
Referenced by gCycleChatBot::Activate(), gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
nVersionFeature sg_CommandTime(4) [static] |
determines how much a given cycle is allowed to drive ahead without getting too close to the next wall. Looks at least lookAhead into the future, but never reports more than maxReport as result. The next timestep is assumed to be ts seconds long.
cycle | the cycle to investigate | |
ts | the next timestep | |
lookAhead | minimum distance to look ahead | |
maxReport | maximum return value |
Referenced by sg_UseAntiLagSliding(), and gCycleMovement::Timestep().
nVersionFeature sg_correctAccelerationScaling(8) [static] |
Referenced by gCycleMovement::ApplyAcceleration(), and gCycleMovement::CalculateAcceleration().
REAL sg_cycleBrakeDeplete = 0.0 |
Definition at line 103 of file gCycleMovement.cpp.
Referenced by gCycleChatBot::Activate(), gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
nSettingItemWatched<REAL> sg_cycleBrakeDepleteConf("CYCLE_BRAKE_DEPLETE", sg_cycleBrakeDeplete, nConfItemVersionWatcher::Group_Annoying, 2) [static] |
REAL sg_cycleBrakeRefill = 0.0 |
Definition at line 102 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::MaximalSpeed().
nSettingItemWatched<REAL> sg_cycleBrakeRefillConf("CYCLE_BRAKE_REFILL", sg_cycleBrakeRefill, nConfItemVersionWatcher::Group_Annoying, 2) [static] |
int sg_cycleMaxRefCount = 30000 [static] |
int sg_cycleTurnMemory = 3 |
REAL sg_cycleTurnSpeedFactor = .95 |
Definition at line 206 of file gCycleMovement.cpp.
Referenced by gCycleMovement::DoTurn(), and GetTurnSpeedFactor().
REAL sg_cycleWidth = 0 |
Definition at line 114 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and sg_GetSparksDistance().
Definition at line 138 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::TimestepCore().
Definition at line 134 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and gCycleMovement::TimestepCore().
Definition at line 118 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), and sg_GetSparksDistance().
REAL sg_delayCycle = .1 |
Definition at line 178 of file gCycleMovement.cpp.
Referenced by Delay(), gCycleExtrapolator::EdgeIsDangerous(), gCycleMovement::GetTurnDelay(), gTurnDelayOverride::gTurnDelayOverride(), and gTurnDelayOverride::~gTurnDelayOverride().
Definition at line 182 of file gCycleMovement.cpp.
REAL sg_enemyCurrentTimeInfluence = 0.0f [static] |
blends in the current time into the relevant time
Definition at line 503 of file gCycleMovement.cpp.
Referenced by gEnemyInfluence::AddWall().
tSettingItem<REAL> sg_enemyCurrentTimeInfluenceConf("ENEMY_CURRENTTIME_INFLUENCE", sg_enemyCurrentTimeInfluence) [static] |
REAL sg_enemyDeadTimePenalty = 0.0f [static] |
penalty for influence from dead players
Definition at line 501 of file gCycleMovement.cpp.
Referenced by gEnemyInfluence::AddWall().
tSettingItem<REAL> sg_enemyDeadTimePenaltyConf("ENEMY_DEAD_PENALTY", sg_enemyDeadTimePenalty) [static] |
REAL sg_enemyFriendTimePenalty = 2500.0f [static] |
penalty for teammate influence
Definition at line 499 of file gCycleMovement.cpp.
Referenced by gEnemyInfluence::AddWall().
tSettingItem<REAL> sg_enemyFriendTimePenaltyConf("ENEMY_TEAMMATE_PENALTY", sg_enemyFriendTimePenalty) [static] |
bool sg_fairAntiLagSliding = true [static] |
REAL sg_nearCycle = 6 [static] |
Definition at line 261 of file gCycleMovement.cpp.
Referenced by gCycleMovement::CalculateAcceleration(), gCycleMovement::DoTurn(), and gCycleMovement::MaximalSpeed().
nVersionFeature sg_nonRippable(4) [static] |
Referenced by gCycleMovement::GetMaxSpaceAhead(), and gCycleMovement::TimestepCore().
nVersionFeature sg_noRedundantBrakeCommands(13) [static] |
Referenced by gCycleMovement::Timestep().
REAL sg_packetLossTolerance = 0 [static] |
REAL sg_packetMissTolerance = 3 [static] |
REAL sg_rubberCycle = MAXRUBBER |
Definition at line 324 of file gCycleMovement.cpp.
Referenced by gCycle::MaxWallsLength(), gCycle::ReadSync(), sg_RubberValues(), gCycleMovement::Timestep(), and gCycle::WriteSync().
REAL sg_rubberCycleDelay = 0 [static] |
REAL sg_rubberCycleDelayBonus = .5 [static] |
bool sg_rubberCycleLegacy = true |
Definition at line 335 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead(), and gCycleMovement::TimestepCore().
REAL sg_rubberCycleMalusTime = 5 [static] |
REAL sg_rubberCycleMalusTurn = 0 [static] |
Definition at line 430 of file gCycleMovement.cpp.
Referenced by gCycleMovement::DoTurn(), and gCycleMovement::RubberMalusActive().
REAL sg_rubberCycleMinAdjust = .05 [static] |
Definition at line 409 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCycleMinDistance = .001 * MINDISTANCE_FACTOR [static] |
Definition at line 365 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead(), and gCycleMovement::TimestepCore().
REAL sg_rubberCycleMinDistanceGap = .0f [static] |
Definition at line 1551 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCycleMinDistanceGapSide = .5f [static] |
Definition at line 1552 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCycleMinDistanceLegacy = 1 [static] |
Definition at line 401 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCycleMinDistancePreparation = 0.2 [static] |
Definition at line 393 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCycleMinDistanceRatio = .0001 * MINDISTANCE_FACTOR [static] |
Definition at line 372 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCycleMinDistanceReservoir = 0.005 * MINDISTANCE_FACTOR [static] |
Definition at line 379 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCycleMinDistanceUnprepared = 0.005 * MINDISTANCE_FACTOR [static] |
Definition at line 386 of file gCycleMovement.cpp.
Referenced by gCycleMovement::GetMaxSpaceAhead().
REAL sg_rubberCyclePing = 3 [static] |
REAL sg_rubberCycleSpeed = 40 [static] |
Definition at line 352 of file gCycleMovement.cpp.
Referenced by gCycleMovement::RubberSpeed(), and gCycleMovement::TimestepCore().
REAL sg_rubberCycleTime = 10 |
nVersionFeature sg_sendCorrectLastTurn(8) [static] |
Referenced by gCycleMovement::CopyFrom().
REAL sg_speedCycle = 10 [static] |
Definition at line 143 of file gCycleMovement.cpp.
Referenced by gCycleMovement::ApplyAcceleration(), gCycleMovement::CalculateAcceleration(), gCycleMovement::GetTurnDelay(), sg_MaxSpeed(), and sg_RubberValues().
Definition at line 166 of file gCycleMovement.cpp.
Referenced by gCycleMovement::ApplyAcceleration(), gCycleMovement::CalculateAcceleration(), and sg_MaxSpeed().
Definition at line 160 of file gCycleMovement.cpp.
Referenced by gCycleMovement::ApplyAcceleration(), and gCycleMovement::CalculateAcceleration().
REAL sg_speedCycleMax = 0 [static] |
Definition at line 154 of file gCycleMovement.cpp.
Referenced by gCycleMovement::ApplyAcceleration().
REAL sg_speedCycleMin = .25 [static] |
Definition at line 147 of file gCycleMovement.cpp.
Referenced by gCycleMovement::ApplyAcceleration().
REAL sg_speedCycleStart = 20 [static] |
float sg_speedMultiplier = 1.0f [static] |
Definition at line 720 of file gCycleMovement.cpp.
Referenced by gCycleMovement::MaximalSpeed(), and gCycleMovement::SpeedMultiplier().
REAL sg_suicideTimeout = 10000.0f |
influences older than this don't count as kill cause
Definition at line 502 of file gCycleMovement.cpp.
Referenced by gEnemyInfluence::gEnemyInfluence(), and gCycle::KillAt().
tSettingItem<REAL> sg_suicideTimeoutConf("ENEMY_SUICIDE_TIMEOUT", sg_suicideTimeout) [static] |
REAL sg_timeTolerance = .1 [static] |
nVersionFeature sg_verletIntegration(7) [static] |