void CLedgeManagerEdit::RegisterCVars()
{
	REGISTER_CVAR(g_LedgeGrabManager_DebugDrawInEditor, 1, VF_DUMPTODISK, "Toggles debug rendering on ledges in editor: 0 - Disabled / 1 - Enabled in editing mode / 2 - Enabled in game mode / 3 - Visualize only deprecated ledge entities");
	REGISTER_CVAR(g_LedgeGrabManager_DebugDrawInEditor_Distance, 35.0f, VF_CHEAT, "Max distance from camera at which ledges are rendered");

	m_lastDebugDrawValue = g_LedgeGrabManager_DebugDrawInEditor;
}
Exemple #2
0
void SCVars::InitCVars(IConsole *pConsole)
{
	EVarFlags nullOrCheatFlag = VF_NULL;
#ifdef RELEASE
	nullOrCheatFlag = VF_CHEAT;
#endif

	REGISTER_CVAR(mono_exceptionsTriggerMessageBoxes, 1, VF_NULL, "If true, exceptions will trigger a message box to appear");
	REGISTER_CVAR(mono_exceptionsTriggerFatalErrors, 0, VF_NULL, "If true, exceptions will trigger a fatal error");

	REGISTER_CVAR(mono_realtimeScripting, 1, nullOrCheatFlag, "Enables / Disables Realtime Scripting functionality. (Editor-only)");
	REGISTER_CVAR(mono_realtimeScriptingDebug, 0, nullOrCheatFlag, "Toggles on realtime scripting debug, useful for finding serialization bugs");
	REGISTER_CVAR(mono_realtimeScriptingDetectChanges, 1, nullOrCheatFlag, "Toggles whether realtime scripting should automatically reload scripts when any *.cs file is modified in the scripts directory.");

	REGISTER_CVAR(mono_softBreakpoints, 1, VF_REQUIRE_APP_RESTART, "[Performance Warning] Enables / Disables soft breakpoints, preventing managed null reference exceptions causing crashes in unmanaged code. \n Not supported along with -DEBUG command line option");

	REGISTER_CVAR(mono_generateMdbIfPdbIsPresent, 1, VF_NULL, "Toggles on mono debug database (.mdb) generation, if a pdb file is present");

	REGISTER_CVAR(mono_compileScripts, 1, nullOrCheatFlag, "Determines whether source files found in the Scripts directory will be compiled and loaded");
	REGISTER_CVAR(mono_scriptDirectory, "", nullOrCheatFlag, "If set, CryMono will attempt to load its script files (e.g. *.cs) from this directory. Full path only.");

	REGISTER_CVAR(mono_entityDeleteExtensionOnNetworkBindFailure, 1, nullOrCheatFlag, "If set, the game object extension will delete itself if IGameObject::BindToNetwork returns false in the IGameObjectExtension::Init function");

	REGISTER_COMMAND("mono_reload", CmdReload, nullOrCheatFlag, "[Realtime Scripting] Reloads / recompiles all scripts");
}
void CLedgeManager::RegisterCVars()
{
	if (m_editorManager.IsInEditorMode() == false)
	{
		REGISTER_CVAR(g_LedgeGrabManager_DebugDraw, 0, VF_CHEAT, "Toggles debug rendering on ledges: 0 - Disabled / 1 - Enabled");
		REGISTER_CVAR(g_LedgeGrabManager_DebugDraw_Distance, 35.0f, VF_CHEAT, "Max distance from camera at which ledges are rendered");
	}
}
//---------------------------------------
CAreaAnnouncer::CAreaAnnouncer()
{
	REGISTER_CVAR(aa_peopleNeeded, aa_peopleNeeded, VF_NULL, "Number of people needed to play area announcement");
	REGISTER_CVAR(aa_enabled, aa_enabled, VF_NULL, "Stops area announcements being played or updated");
	
#if !defined(_RELEASE)
	REGISTER_CVAR(aa_debug, aa_debug, VF_NULL, "Enable/Disables Area announcer debug messages");
	REGISTER_COMMAND("aa_play", CmdPlay, VF_CHEAT, "play area announcement");
	REGISTER_COMMAND("aa_reload", CmdReload, VF_CHEAT, "Init area announcement");
#endif
}
Exemple #5
0
void SCVars::InitCVars(IConsole *pConsole)
{
	EVarFlags nullOrCheatFlag = VF_NULL;
#ifdef RELEASE
	nullOrCheatFlag = VF_CHEAT;
#endif

	REGISTER_CVAR(mono_exceptionsTriggerMessageBoxes, 1, VF_NULL, "If true, exceptions will trigger a message box to appear");
	REGISTER_CVAR(mono_exceptionsTriggerFatalErrors, 0, VF_NULL, "If true, exceptions will trigger a fatal error");

	REGISTER_CVAR(mono_generateMdbIfPdbIsPresent, 1, VF_NULL, "Toggles on mono debug database (.mdb) generation, if a pdb file is present");

	REGISTER_CVAR(mono_entityDeleteExtensionOnNetworkBindFailure, 1, nullOrCheatFlag, "If set, the game object extension will delete itself if IGameObject::BindToNetwork returns false in the IGameObjectExtension::Init function");

	REGISTER_CVAR(mono_log, 0, VF_CHEAT, "");
}
//---------------------------------------
CMiscAnnouncer::CMiscAnnouncer() 
{
	CryLog("CMiscAnnouncer::CMiscAnnouncer()");

	REGISTER_CVAR(ma_enabled, ma_enabled, VF_NULL, "Stops misc announcements being played or updated");
	REGISTER_CVAR_DEV_ONLY(ma_debug, ma_debug, VF_NULL, "Enable/Disables Misc announcer debug messages: >= 1 - verbose logging; 2 - debug onWeaponFired map; 3 - debug actor listener map");
}
SForceFeedbackSystemCVars::SForceFeedbackSystemCVars()
{
	REGISTER_CVAR(ffs_debug, 0, 0, "Turns on/off force feedback system debug." );

	REGISTER_COMMAND("ffs_PlayEffect", FFSPlayEffect, 0, "Play force feedback effect, passed by name as first parameter");
	REGISTER_COMMAND("ffs_StopAllEffects", FFSStopAllEffects, 0, "Stop force feedback effect, passed by name as first parameter");
	REGISTER_COMMAND("ffs_Reload", FFSReload, 0, "Reload force feedback system data");
}
Exemple #8
0
CAutoAimManager::CAutoAimManager()
: m_closeCombatSnapTargetId(0)
, m_closeCombatSnapTargetRange(0.f)
, m_closeCombatSnapTargetMoveSpeed(0.f)
, m_localPlayerFaction(IFactionMap::InvalidFactionID)
{
	CRY_ASSERT(kMaxAutoaimTargets > 0);
	
	m_autoaimTargets.reserve(kMaxAutoaimTargets);

#if DEBUG_AUTOAIM_MANAGER
	REGISTER_CVAR(g_autoAimManagerDebug, 0, 0, "Debug auto aim manager");
#endif
}
Exemple #9
0
void SCVars::InitCVars(IConsole *pConsole)
{
	REGISTER_CVAR(mono_exceptionsTriggerMessageBoxes, 1, VF_NULL, "If true, exceptions will trigger a message box to appear");
	REGISTER_CVAR(mono_exceptionsTriggerFatalErrors, 0, VF_NULL, "If true, exceptions will trigger a fatal error");

	REGISTER_CVAR(mono_realtimeScripting, 1, VF_NULL, "Enables / Disables Realtime Scripting functionality. (Editor-only)");
	
#ifndef RELEASE
	REGISTER_CVAR(mono_realtimeScriptingDebug, 1, VF_NULL, "Toggles on realtime scripting debug, useful for finding serialization bugs");
#endif

	REGISTER_CVAR(mono_realtimeScriptingDetectChanges, 1, VF_NULL, "Toggles whether realtime scripting should automatically reload scripts when any *.cs file is modified in the scripts directory.");
	REGISTER_COMMAND("mono_reload", CmdReload, VF_NULL, "[Realtime Scripting] Reloads / recompiles all scripts");

	REGISTER_CVAR(mono_softBreakpoints, 1, VF_REQUIRE_APP_RESTART, "[Performance Warning] Enables / Disables soft breakpoints, preventing managed null reference exceptions causing crashes in unmanaged code. \n Not supported along with -DEBUG command line option");
}
CMaterialEffectsCVars::CMaterialEffectsCVars()
{
	assert (s_pThis == 0);
	s_pThis = this;

	REGISTER_CVAR(mfx_ParticleImpactThresh, 2.0f, VF_CHEAT, "Impact threshold for particle effects. Default: 2.0" );
	REGISTER_CVAR(mfx_SoundImpactThresh, 1.5f, VF_CHEAT, "Impact threshold for sound effects. Default: 1.5" );
	REGISTER_CVAR(mfx_RaisedSoundImpactThresh, 3.5f, VF_CHEAT, "Impact threshold for sound effects if we're rolling. Default: 3.5" );
	REGISTER_CVAR(mfx_Debug, 0, 0, "Turns on MaterialEffects debug messages. 1=Collisions, 2=Breakage, 3=Both" );
	REGISTER_CVAR(mfx_DebugVisual, 0, 0, "Turns on/off visual debugging for MFX system");
	mfx_DebugVisualFilter = REGISTER_STRING("mfx_DebugVisualFilter","",VF_CHEAT,"");
	REGISTER_CVAR(mfx_DebugFlowGraphFX, 0, 0, "Turns on Material FlowGraph FX manager debug messages." );
	REGISTER_CVAR(mfx_Enable, 1, VF_CHEAT, "Enables MaterialEffects." );
	REGISTER_CVAR(mfx_pfx_minScale, .5f, 0, "Min scale (when particle is close)");
	REGISTER_CVAR(mfx_pfx_maxScale, 1.5f, 0, "Max scale (when particle is far)");
	REGISTER_CVAR(mfx_pfx_maxDist, 35.0f, 0, "Max dist (how far away before scale is clamped)");
	REGISTER_CVAR(mfx_Timeout, 0.01f, 0, "Timeout (in seconds) to avoid playing effects too often");
	REGISTER_CVAR(mfx_EnableFGEffects, 1, VF_CHEAT, "Enabled Flowgraph based Material effects. Default: On" );
	REGISTER_CVAR(mfx_EnableAttachedEffects, 1, VF_CHEAT, "Enable attached effects (characters, entities...)");
	REGISTER_CVAR(mfx_SerializeFGEffects, 1, VF_CHEAT, "Serialize Flowgraph based effects. Default: On" );

	//FlowGraph HUD effects
	REGISTER_COMMAND("mfx_ReloadFGEffects", FGEffectsReload, 0, "Reload MaterialEffect's FlowGraphs");
	//Reload Excel Spreadsheet
	REGISTER_COMMAND("mfx_Reload", MFXReload, 0, "Reload MFX Spreadsheet");
}
Exemple #11
0
void CVar::Init( struct IConsole *pConsole )
{
	assert(gEnv->pConsole);
	PREFAST_ASSUME(gEnv->pConsole);

	REGISTER_COMMAND("es_dump_entities", (ConsoleCommandFunc)DumpEntities, 0, "Dumps current entities and their states!");
	REGISTER_COMMAND("es_dump_entity_classes_in_use", (ConsoleCommandFunc)DumpEntityClassesInUse, 0, "Dumps all used entity classes");
	REGISTER_COMMAND("es_compile_area_grid", (ConsoleCommandFunc)CompileAreaGrid, 0, "Trigger a recompile of the area grid");
	REGISTER_COMMAND("es_dump_bookmarks", (ConsoleCommandFunc)DumpEntityBookmarks, 0, "Dumps information about all bookmarked entities");
	REGISTER_COMMAND("es_AudioListenerOffset", (ConsoleCommandFunc)SetAudioListenerOffsets, 0,
		"Sets by how much the audio listener offsets its position and rotation in regards to its entity.\n"
		"Usage: es_AudioListenerOffset PosX PosY PosZ RotX RotY RotZ\n");

	REGISTER_CVAR( es_SortUpdatesByClass, 0, 0, "Sort entity updates by class (possible optimization)" );
	pDebug = REGISTER_INT("es_debug",0,VF_CHEAT,
		"Enable entity debugging info\n"
		"Usage: es_debug [0/1]\n"
		"Default is 0 (on).");
	pCharacterIK = REGISTER_INT("p_CharacterIK",1,VF_CHEAT,
		"Toggles character IK.\n"
		"Usage: p_characterik [0/1]\n"
		"Default is 1 (on). Set to 0 to disable inverse kinematics.");	
	pEntityBBoxes = REGISTER_INT("es_bboxes",0,VF_CHEAT,
		"Toggles entity bounding boxes.\n"
		"Usage: es_bboxes [0/1]\n"
		"Default is 0 (off). Set to 1 to display bounding boxes.");
	pEntityHelpers = REGISTER_INT("es_helpers",0,VF_CHEAT,
		"Toggles helpers.\n"
		"Usage: es_helpers [0/1]\n"
		"Default is 0 (off). Set to 1 to display entity helpers.");
	pProfileEntities = REGISTER_INT("es_profileentities",0,VF_CHEAT,
		"Usage: es_profileentities 1,2,3\n"
		"Default is 0 (off).");
/*	pUpdateInvisibleCharacter = REGISTER_INT("es_UpdateInvisibleCharacter",0,VF_CHEAT,
		"Usage: \n"
		"Default is 0 (off).");
	pUpdateBonePositions = REGISTER_INT("es_UpdateBonePositions",1,VF_CHEAT,
		"Usage: \n"
		"Default is 1 (on).");
*/	pUpdateScript = REGISTER_INT("es_UpdateScript",1,VF_CHEAT,
		"Usage: es_UpdateScript [0/1]\n"
		"Default is 1 (on).");
	pUpdatePhysics = REGISTER_INT("es_UpdatePhysics",1,VF_CHEAT,
		"Toggles updating of entity physics.\n"
		"Usage: es_UpdatePhysics [0/1]\n"
		"Default is 1 (on). Set to 0 to prevent entity physics from updating.");
	pUpdateAI = REGISTER_INT("es_UpdateAI",1,VF_CHEAT,
		"Toggles updating of AI entities.\n"
		"Usage: es_UpdateAI [0/1]\n"
		"Default is 1 (on). Set to 0 to prevent AI entities from updating.");
	pUpdateEntities = REGISTER_INT("es_UpdateEntities",1,VF_CHEAT,
		"Toggles entity updating.\n"
		"Usage: es_UpdateEntities [0/1]\n"
		"Default is 1 (on). Set to 0 to prevent all entities from updating.");
	pUpdateCollision= REGISTER_INT("es_UpdateCollision",1,VF_CHEAT,
		"Toggles updating of entity collisions.\n"
		"Usage: es_UpdateCollision [0/1]\n"
		"Default is 1 (on). Set to 0 to disable entity collision updating.");
	pUpdateContainer= REGISTER_INT("es_UpdateContainer",1,VF_CHEAT,
		"Usage: es_UpdateContainer [0/1]\n"
		"Default is 1 (on).");
	pUpdateTimer = REGISTER_INT("es_UpdateTimer",1,VF_CHEAT,
		"Usage: es_UpdateTimer [0/1]\n"
		"Default is 1 (on).");
	pUpdateCollisionScript = REGISTER_INT("es_UpdateCollisionScript",1,VF_CHEAT,
		"Usage: es_UpdateCollisionScript [0/1]\n"
		"Default is 1 (on).");
	pVisCheckForUpdate = REGISTER_INT("es_VisCheckForUpdate",1,VF_CHEAT,
		"Usage: es_VisCheckForUpdate [0/1]\n"
		"Default is 1 (on).");
	pMinImpulseVel = REGISTER_FLOAT("es_MinImpulseVel",0.0f,VF_CHEAT,
		"Usage: es_MinImpulseVel 0.0");
	pImpulseScale = REGISTER_FLOAT("es_ImpulseScale",0.0f,VF_CHEAT,
		"Usage: es_ImpulseScale 0.0");
	pMaxImpulseAdjMass = REGISTER_FLOAT("es_MaxImpulseAdjMass",2000.0f,VF_CHEAT,
		"Usage: es_MaxImpulseAdjMass 2000.0");
	pDebrisLifetimeScale = REGISTER_FLOAT("es_DebrisLifetimeScale",1.0f,0,
		"Usage: es_DebrisLifetimeScale 1.0");
	pSplashThreshold = REGISTER_FLOAT("es_SplashThreshold",1.0f,VF_CHEAT,
		"minimum instantaneous water resistance that is detected as a splash"
		"Usage: es_SplashThreshold 200.0");
	pSplashTimeout = REGISTER_FLOAT("es_SplashTimeout",3.0f,VF_CHEAT,
		"minimum time interval between consecutive splashes"
		"Usage: es_SplashTimeout 3.0");
	pHitCharacters = REGISTER_INT("es_HitCharacters",1,0,
		"specifies whether alive characters are affected by bullet hits (0 or 1)");
	pHitDeadBodies = REGISTER_INT("es_HitDeadBodies",1,0,
		"specifies whether dead bodies are affected by bullet hits (0 or 1)");
	pCharZOffsetSpeed = REGISTER_FLOAT("es_CharZOffsetSpeed",2.0f,VF_DUMPTODISK,
		"sets the character Z-offset change speed (in m/s), used for IK");

	pNotSeenTimeout = REGISTER_INT("es_not_seen_timeout", 30, VF_DUMPTODISK,
		"number of seconds after which to cleanup temporary render buffers in entity");
	pDebugNotSeenTimeout = REGISTER_INT("es_debug_not_seen_timeout", 0, VF_DUMPTODISK,
		"if true, log messages when entities undergo not seen timeout");

	pEnableFullScriptSave = REGISTER_INT("es_enable_full_script_save",0,
		VF_DUMPTODISK,"Enable (experimental) full script save functionality");
	
	pLogCollisions = REGISTER_INT("es_log_collisions",0,0,"Enables collision events logging" );
	REGISTER_CVAR(es_DebugTimers,0,VF_CHEAT,
		"This is for profiling and debugging (for game coders and level designer)\n"
		"By enabling this you get a lot of console printouts that show all entities that receive OnTimer\n"
		"events - it's good to minimize the call count. Certain entities might require this feature and\n"
		"using less active entities can often be defined by the level designer.\n"
		"Usage: es_DebugTimers 0/1");
	REGISTER_CVAR(es_DebugFindEntity,0,VF_CHEAT,"" );
	REGISTER_CVAR(es_DebugEvents,0,VF_CHEAT,"Enables logging of entity events" );
	REGISTER_CVAR(es_DisableTriggers,0,0,"Disable enter/leave events for proximity and area triggers");
	REGISTER_CVAR(es_DrawProximityTriggers,0,0,
		"Shows Proximity Triggers.\n"
		"Usage: es_DrawProximityTriggers [0-255].  The parameter sets the transparency (alpha) level.\n"
		"Value 1 will be changed to 70.\n"
		"Default is 0 (off)\n");

	REGISTER_CVAR(es_DebugEntityUsage,0,0,
		"Draws information to the screen to show how entities are being used, per class, including total, active and hidden counts and memory usage"
		"\nUsage: es_DebugEntityUsage update_rate"
		"\nupdate_rate - Time in ms to refresh memory usage calculation or 0 to disable");
	REGISTER_CVAR(es_DebugEntityUsageFilter,"",0,"Filter entity usage debugging to classes which have this string in their name");

	REGISTER_CVAR(es_EnablePoolUse,-1,0,
		"Force toggle the use of entity pools on/off.\n"
		"Usage: es_EnablePoolUse 1\n"
		"Default is -1, or normal behavior. 0 forces system off. 1 forces system on.");

	REGISTER_CVAR(es_DebugPool,0,0,"Enable debug drawing of entity pools");
	REGISTER_CVAR(es_TestPoolSignatures,0,VF_CHEAT,"Enable signature testing on entity classes the first time they're prepared from an entity pool");
	REGISTER_CVAR(es_DebugPoolFilter,"",0,"Filter entity pool debugging for just this pool and draw more info about it");

	REGISTER_CVAR(es_LayerSaveLoadSerialization, 0, VF_CHEAT, 
		"Switches layer entity serialization: \n" 
		"0 - serialize all \n"
		"1 - automatically ignore entities on disabled layers \n"
		"2 - only ignore entities on non-save layers.");
	REGISTER_CVAR(es_LayerDebugInfo, 0, VF_CHEAT, 
		"Render debug info on active layers: \n"
		"0 - inactive \n"
		"1 - active brush layers \n"
		"2 - all layer info \n"
		"3 - all layer and all layer pak info");
	REGISTER_CVAR(es_SaveLoadUseLUANoSaveFlag, 0, VF_CHEAT, "Save&Load optimization : use lua flag to not serialize entities, for example rigid bodies.");
	
	REGISTER_CVAR(es_ClearPoolBookmarksOnLayerUnload, 1, VF_CHEAT, "Clear pool bookmarks when a layer is unloaded (saves memory and makes smaller saves)");
	pUpdateType = REGISTER_INT_CB("es_updateType", CComponentEventDistributer::EEventUpdatePolicy_UseDistributer, VF_CHEAT, "Defines how we update type for the entities", OnUpdateTypeChange);

	pDrawAreas = REGISTER_INT("es_DrawAreas",0,VF_CHEAT,"Enables drawing of Areas" );
	pDrawAreaGrid = REGISTER_INT("es_DrawAreaGrid",0,VF_CHEAT,"Enables drawing of Area Grid" );
	pDrawAreaDebug = REGISTER_INT("es_DrawAreaDebug",0,VF_CHEAT,"Enables debug drawing of Areas, set 2 for log details" );
	pDrawAudioProxyZRay = REGISTER_INT("es_DrawAudioProxyZRay",0,VF_CHEAT,"Enables drawing of Z ray on check for Z visibility" );

	REGISTER_CVAR(es_UsePhysVisibilityChecks, 1, 0,
		"Activates physics quality degradation and forceful sleeping for invisible and faraway entities" );
	REGISTER_CVAR(es_MaxPhysDist, 300.0f, 0,
		"Physical entities farther from the camera than this are forcefully deactivated" );
	REGISTER_CVAR(es_MaxPhysDistCloth, 300.0f, 0,
		"Cloth entities farther from the camera than this are forcefully deactivated" );
	REGISTER_CVAR(es_MaxPhysDistInvisible, 40.0f, 0,
		"Invisible physical entities farther from the camera than this are forcefully deactivated" );
	REGISTER_CVAR(es_FarPhysTimeout, 4.0f, 0,
		"Timeout for faraway physics forceful deactivation" );

  pMotionBlur = gEnv->pConsole->GetCVar("r_MotionBlur");
	pSysSpecLight = gEnv->pConsole->GetCVar("sys_spec_light");
	if (pSysSpecLight && gEnv->IsEditor())
		pSysSpecLight->SetOnChangeCallback( OnSysSpecLightChange );

 	REGISTER_CVAR(es_debugEntityLifetime,0,0,
		"Debug entities creation and deletion time" );

	REGISTER_COMMAND("es_debugAnim", (ConsoleCommandFunc)EnableDebugAnimText, 0, "Debug entity animation (toggle on off)");

  REGISTER_CVAR(es_EntityUpdatePosDelta, 0.1f, 0,
    "Indicates the position delta by which an entity must move before the AreaManager updates position relevant data.\n"
    "Default: 0.1 (10 cm)");

	REGISTER_CVAR(es_debugDrawEntityIDs, 0, VF_CHEAT,
		"Displays the EntityId of all entities.\n"
		"Default is 0 (off), any other number enables it.\n"
		"Note: es_debug must be set to 1 also (or else the EntityId won't be displayed)");
}
void CGameAIRecorderCVars::RegisterVariables()
{
	REGISTER_CVAR(ai_remoteRecorder_serverDir, "", 0, "Server directory where to copy the remote archive");
	REGISTER_CVAR(ai_remoteRecorder_enabled, 0, 0, "Enable remote archive copying for AI recorder information");
	REGISTER_CVAR(ai_remoteRecorder_onlyBookmarked, 1, 0, "Only copy the archive over if it contains a bookmark");
}
CLocalPlayerComponent::CLocalPlayerComponent(CPlayer& rParentPlayer)
: m_playedMidHealthSound(false)
, m_fpCompleteBodyVisible(false)
, m_freeFallDeathFadeTimer(0.0f)
, m_screenFadeEffectId(InvalidEffectId)
, m_bIsInFreeFallDeath(false)
, m_rPlayer(rParentPlayer)
, m_currentFollowCameraSettingsIndex(0)
, m_autoArmourFlags(0)
, m_nMusicLogicPlayerHealthEventID(MUSICLOGIC_INVALID_EVENT_ID)
{
	m_freeFallLookTarget.Set(0.f, 0.f, 0.f);
	
	m_lastMeleeParams.m_boostedMelee = false;
	m_lastMeleeParams.m_hitNormal.Set(0.f, 0.f, 0.f);
	m_lastMeleeParams.m_hitOffset.Set(0.f, 0.f, 0.f);
	m_lastMeleeParams.m_surfaceIdx = 0;
	m_lastMeleeParams.m_targetId = 0;

	m_timeForBreath = 0;

	m_stapElevLimit = gf_PI * 0.5f;
	m_lastSTAPCameraDelta.SetIdentity();

	if( gEnv->bMultiplayer )
	{
		m_rPlayer.GetInventory()->AddListener( this );
	}

	IMusicLogic* const pMusicLogic = gEnv->pMusicSystem->GetMusicLogic();

	if (pMusicLogic != NULL)
	{
		m_nMusicLogicPlayerHealthEventID = pMusicLogic->GetEventId("PLAYER_HEALTH_SET");
	}

#ifndef _RELEASE
	REGISTER_CVAR(g_spectate_follow_debug_enable, 0, 0, "Enables A cvar controlled camera mode");
	REGISTER_CVAR(g_spectate_follow_debug_setDebugSettingsToCurrentViewSettings, 0, 0, "Sets the debug camera mode settings to match the currently selected camera settings");
	REGISTER_CVAR(g_spectate_follow_debug_targetOffset_x, 0.f, 0, "where the camera should point at relative to the target entity. The value is in the target's local space");
	REGISTER_CVAR(g_spectate_follow_debug_targetOffset_y, 0.f, 0, "where the camera should point at relative to the target entity. The value is in the target's local space");
	REGISTER_CVAR(g_spectate_follow_debug_targetOffset_z, 1.5f,  0, "where the camera should point at relative to the target entity. The value is in the target's local space");
	REGISTER_CVAR(g_spectate_follow_debug_viewOffset_x, 0.f, 0, "the amount the camera should be shifted by. Does not affect rotation. The value is in the view space.");
	REGISTER_CVAR(g_spectate_follow_debug_viewOffset_y, 0.f, 0, "the amount the camera should be shifted by. Does not affect rotation. The value is in the view space.");
	REGISTER_CVAR(g_spectate_follow_debug_viewOffset_z, 0.f, 0, "the amount the camera should be shifted by. Does not affect rotation. The value is in the view space.");
	REGISTER_CVAR(g_spectate_follow_debug_offsetspeed_x, 1.f, 0, "the speed for the left-right camera offset from the target (in cam space).");
	REGISTER_CVAR(g_spectate_follow_debug_offsetspeed_y, 1.f, 0, "the speed for the in-out camera offset from the target (in cam space).");
	REGISTER_CVAR(g_spectate_follow_debug_offsetspeed_z, 1.f, 0, "the speed for the up-down camera offset from the target (in cam space).");
	REGISTER_CVAR(g_spectate_follow_debug_desiredDistance, 3.0f,  0, "how far the camera should be placed from the target. This is an ideal value which will change to avoid obstructions");
	REGISTER_CVAR(g_spectate_follow_debug_cameraHeightOffset, 0.75f,  0, "how high/low the camera should be placed in relation to the target entity");
	REGISTER_CVAR(g_spectate_follow_debug_cameraYaw, 0.0f,  0, "camera's rotation about the target entity. The value is in degrees and moves clockwise about the target. 0.0 faces the same direction as the target");
	REGISTER_CVAR(g_spectate_follow_debug_cameraSpeed, 5.f,  0, "how much the camera 'lags' when following a moving target. A value of 0 is an instant snap");
	REGISTER_CVAR(g_spectate_follow_debug_cameraFov, 0.0f,  0, "camera's Field of view. The value is in degrees. 0.0 uses the default existing");
	REGISTER_CVAR(g_spectate_follow_debug_allowOrbitYaw, 1, 0, "allows the player to adjust the camera yaw value themselves");
	REGISTER_CVAR(g_spectate_follow_debug_allowOrbitPitch, 1, 0, "allows the player to adjust the camera pitch value themselves");
	REGISTER_CVAR(g_spectate_follow_debug_useEyeDir, 0, 0, "uses the target's eye direction to control the camera rather than the entity matrix");
	REGISTER_CVAR(g_spectate_follow_debug_userSelectable, 1, 0, "allows the view to be used changed to during the follow mode.");

	m_followCameraDebugSettings.m_settingsName = "Debug";
#endif //_RELEASE
}
Exemple #14
0
CInputCVars::CInputCVars()
{
	REGISTER_CVAR(i_debug, 0, 0,
		"Toggles input event debugging.\n"
		"Usage: i_debug [0/1]\n"
		"Default is 0 (off). Set to 1 to spam console with key events (only press and release).");
	REGISTER_CVAR(i_forcefeedback, 1, 0, "Enable/Disable force feedback output.");

	// mouse
	REGISTER_CVAR(i_mouse_buffered, 0, 0,
		"Toggles mouse input buffering.\n"
		"Usage: i_mouse_buffered [0/1]\n"
		"Default is 0 (off). Set to 1 to process buffered mouse input.");
	REGISTER_CVAR(i_mouse_sensitivity, 1, 0,
		"Changes mouse sensitivity.\n"
		"Usage: i_mouse_sensitivity [float number]\n"
		"Default is 1 (raw movement), Set to 0 for no movement, [0/1] for slower movement and [1/n] for faster movement" );
	REGISTER_CVAR(i_mouse_accel, 0.0f, VF_DUMPTODISK,
		"Set mouse acceleration, 0.0 means no acceleration.\n"
		"Usage: i_mouse_accel [float number] (usually a small number, 0.1 is a good one)\n"
		"Default is 0.0 (off)");
	REGISTER_CVAR(i_mouse_accel_max, 100.0f, VF_DUMPTODISK,
		"Set mouse max mouse delta when using acceleration.\n"
		"Usage: i_mouse_accel_max [float number]\n"
		"Default is 100.0");	
	REGISTER_CVAR(i_mouse_smooth, 0.0f, VF_DUMPTODISK,
		"Set mouse smoothing value, also if 0 (disabled) there will be a simple average\n"
		"between the old and the actual input.\n"
		"Usage: i_mouse_smooth [float number]\n"
		"(1.0 = very very smooth, 30 = almost instant)\n"
		"Default is 0.0");	
	REGISTER_CVAR(i_mouse_inertia, 0.0f, VF_DUMPTODISK,
		"Set mouse inertia. It is disabled (0.0) by default.\n"
		"Usage: i_mouse_inertia [float number]\n"
		"Default is 0.0");

	// keyboard
	REGISTER_CVAR(i_bufferedkeys, 1, 0,
		"Toggles key buffering.\n"
		"Usage: i_bufferedkeys [0/1]\n"
		"Default is 0 (off). Set to 1 to process buffered key strokes.");

	// xinput
	REGISTER_CVAR(i_xinput, 1, 0,
		"Number of XInput controllers to process\n"
		"Usage: i_xinput [0/1/2/3/4]\n"
		"Default is 1.");
	REGISTER_CVAR(i_xinput_poll_time, 1000, 0,
		"Number of ms between device polls in polling thread\n"
		"Usage: i_xinput_poll_time 500\n"
		"Default is 1000ms. Value must be >=0.");

  REGISTER_CVAR(i_xinput_deadzone_handling, 1, 0,
    "deadzonehandling\n"
    "Usage: i_xinput_deadzone_handling 0/1 (0 - old deadzone/ 1 - new deadzone)\n"
    "Default is 1. Value must be >=0.");

	REGISTER_CVAR(i_debugDigitalButtons, 0, 0,
		"render controller's digital button pressed info\n"
		"Usage: 0 (off), 1(on)"
		"Default is 0. Value must be >=0");

#if CRY_PLATFORM_WINDOWS
	REGISTER_CVAR(i_kinectXboxConnect, 1, 0,
		"Allow connection to Xbox for Kinect input.\n"
		"Usage: 0 = disabled, 1 = allow connection, 2 = force connection (don't try local Kinect on system) \n"
		"Default is 1");
	REGISTER_CVAR(i_kinectXboxConnectPort, 62455, 0,
		"Port used to connect to Xbox for Kinect input.\n"
		"Default is 62455 (random value different than remote compiler)");
	i_kinectXboxConnectIP = REGISTER_STRING("i_kinectXboxConnectIP","", VF_NULL,
		"Usage: force set a specific Xbox Game IP to connect to for Kinect input (use default xbox from neighbourhood when empty) \n"
		"Default is empty ");
#endif

	REGISTER_CVAR(i_useKinect, 1, 0,
		"Use Kinect");
	REGISTER_CVAR(i_kinSkeletonSmoothType, 1, 0,
		"Kinect skeleton tracking smooth type: 0 = not smoothed, 1 = using Double Exponential Smoothing");
	REGISTER_CVAR(i_kinectDebug, 1, 0,
		"1 = Draws skeleton on screen \n2 = Draws colour + depth buffers on screen \n3 = Draws both skeleton and buffers");
	REGISTER_CVAR(i_seatedTracking, 1, 0,
		"1 = Enable seated skeleton tracking");
	REGISTER_CVAR(i_kinSkeletonMovedDistance, 0.125f, 0,
		"Distance used to determine if kinect skeleton has moved in the play space.");

#if CRY_PLATFORM_DURANGO
	REGISTER_CVAR(i_useDurangoKinectSpeech, 1, 0,
		"Use Kinect Speech Recognition for Durango");
	REGISTER_CVAR(i_useDurangoKinectSpeechMode, 0, 0,
		"Use Kinect Speech Recognition Mode (for Durango): 0 (Continuous), 1 (Pausing)");
	REGISTER_CVAR(i_showDurangoKinectAudioStatus, 0, 0,
		"Show Kinect Audio status for Durango");
	REGISTER_CVAR(i_durangoKinectSpeechConfidenceThreshold, 0.2f, 0, 
		"Default Minimum confidence of a speech recognition result in Durango's Kinect to accept it as valid.");
#endif

	//Exponential Smoothing Factors
	REGISTER_CVAR(i_kinGlobalExpSmoothFactor, 0.5f, 0, "Smoothing factor for double exponential smoothing.");
	REGISTER_CVAR(i_kinGlobalExpCorrectionFactor, 0.5f, 0, "Trend correction factor for double exponential smoothing.");
	REGISTER_CVAR(i_kinGlobalExpPredictionFactor, 0.5f, 0, "Prediction factor for double exponential smoothing.");
	REGISTER_CVAR(i_kinGlobalExpJitterRadius, 0.05f, 0, "Radius to determine jitter correction for double exponential smoothing.");
	REGISTER_CVAR(i_kinGlobalExpDeviationRadius, 0.04f, 0, "Maximum deviation radius from prediction for double exponential smoothing.");

#ifdef USE_SYNERGY_INPUT
	i_synergyServer = REGISTER_STRING("i_synergyServer","", VF_NULL,
		"Usage: Set the host ip or hostname for the synergy client to connect to\n"
		"Default is empty ");
	i_synergyScreenName = REGISTER_STRING("i_synergyScreenName","Console", VF_NULL,
		"Usage: Set a screen name for this target\n"
		"Default is \"Console\"");
#endif
}
CGameLobbyCVars::CGameLobbyCVars()
{
	m_pThis = this;

	REGISTER_CVAR(gl_initialTime, 10.f, 0, "How long you spend in the lobby on a newly created lobby");
	REGISTER_CVAR(gl_findGameTimeoutBase, 3.f, 0, "How long to wait for results when finding a game");
	REGISTER_CVAR(gl_findGameTimeoutPerPlayer, 5.f, 0, "Extension to findGameTimeout for each player in session");
	REGISTER_CVAR(gl_findGameTimeoutRandomRange, 5.f, 0, "Randomization for the findGameTimeout");
	REGISTER_CVAR(gl_leaveGameTimeout, 10.f, 0, "Timeout for waiting for other players to leave the game before leaving ourselves");
	REGISTER_CVAR(gl_ignoreBadServers, GAME_LOBBY_IGNORE_BAD_SERVERS_LIST, 0, "Don't ignore bad servers (ones we have failed to connect to before)");
	REGISTER_CVAR(gl_allowLobbyMerging, 1, 0, "Set to 0 to stop matchmaking games from attempting to merge");
	REGISTER_CVAR(gl_allowEnsureBestHostCalls, 1, 0, "Set to 0 to stop the game doing pushed lobby-migrations");
	REGISTER_CVAR(gl_timeTillEndOfGameForNoMatchMaking, 120.f, 0, "Amount of game time remaining in which no matchmaking should occur");
	REGISTER_CVAR(gl_timeBeforeStartOfGameForNoMatchMaking, 5.f , 0, "Amount of time at the end of the start countdown before we disable matchmaking (enabled after InGame is hit)");
	REGISTER_CVAR(gl_skillChangeUpdateDelayTime, 3.f, 0, "Amount of time after detecting a change in skill ranking, before we call SessionUpdate");
	REGISTER_CVAR(gl_gameTimeRemainingRestrictLoad, 30.f, 0, "Don't start loading a level if there's only a limited amount of time remaining");
	REGISTER_CVAR(gl_startTimerMinTimeAfterPlayerJoined, 10.f , 0, "Minimum time before a game can start after a player has joined");
	REGISTER_CVAR(gl_startTimerMaxPlayerJoinResets, 8, 0, "Amount of times the start timer can be reset due to players joining before they are ignored");

	REGISTER_CVAR(gl_findGameNumJoinRetries, 2, 0, "Number of times to retry joining before creating our own game");
	REGISTER_CVAR(gl_findGamePingMultiplier, 2.f, 0, "Multiplier for ping submetric");
	REGISTER_CVAR(gl_findGamePlayerMultiplier, 1.f, 0, "Multiplier for player submetric");
	REGISTER_CVAR(gl_findGameLobbyMultiplier, 0.25f, 0, "Multiplier for lobby state submetric");
	REGISTER_CVAR(gl_findGameSkillMultiplier, 1.f, 0, "Multiplier for skill submetric");
	REGISTER_CVAR(gl_findGameLanguageMultiplier, 0.5f, 0, "Multiplier for language submetric");
	REGISTER_CVAR(gl_findGameRandomMultiplier, 0.5f , 0, "Multiplier for random submetric");
	REGISTER_CVAR(gl_findGameStandardVariantMultiplier, 4.f, 0, "Multiplier for variant submetric if standard variant");
	REGISTER_CVAR(gl_findGamePingScale, 300.f, 0, "Amount to divide the ping by before clamping to 0->1");
	REGISTER_CVAR(gl_findGameIdealPlayerCount, 6.f, 0, "Minimum number of players required for full score in the player submetric");

#if GAMELOBBY_USE_COUNTRY_FILTERING
	REGISTER_CVAR(gl_findGameExpandSearchTime, 30.f, 0, "Amount of time to search the local region before expanding the search to all regions");
#endif

	REGISTER_CVAR(gl_hostMigrationEnsureBestHostDelayTime, 10.f, 0, "Time after a player joins before we call ensurebesthost");
	REGISTER_CVAR(gl_hostMigrationEnsureBestHostOnStartCountdownDelayTime, 3.f, 0, "Time after the game countdown starts before we call ensurebesthost");
	REGISTER_CVAR(gl_hostMigrationEnsureBestHostOnReturnToLobbyDelayTime, 5.f, 0, "Time after the game countdown starts before we call ensurebesthost");
	REGISTER_CVAR(gl_hostMigrationEnsureBestHostGameStartMinimumTime, 4.f, 0, "Minimum amount of time before the game starts that we're allowed to check for a better host");

	REGISTER_CVAR(gl_precachePaks, 1, 0, "Precache pak files in lobby");
	REGISTER_CVAR(gl_slotReservationTimeout, 5.f, 0, "How long it takes for slot reservations to time out");

#ifndef _RELEASE
	REGISTER_CVAR(gl_debug, 0, 0, "Turn on some debugging");
	REGISTER_CVAR(gl_voteDebug, 0, 0, "Turn on some map vote debugging");
	REGISTER_CVAR(gl_voip_debug, 0, 0, "Turn on game lobby voice debug");
	REGISTER_CVAR(gl_skipPreSearch, 0, 0, "Just create game before start searching");
	REGISTER_CVAR(gl_dummyUserlist, 0, 0, "Number of debug dummy users to display.");
	REGISTER_CVAR(gl_dummyUserlistNumTeams, 3, 0, "Sets the number of teams to split dummy players across, 0: Team 0,  1: Team 1,  2: Team 1&2,  3: Team 0,1&2.");
	REGISTER_CVAR(gl_debugBadServersList, 0, 0, "Set alternate servers to be bad");
	REGISTER_CVAR(gl_debugBadServersTestPerc, 50, 0, "Percentage chance of setting a bad server (if gl_debugBadServersList=1)");
	REGISTER_CVAR(gl_debugForceLobbyMigrations, 0, 0, "1=Force a lobby migration every gl_debugForceLobbyMigrationsTimer seconds");
	REGISTER_CVAR(gl_debugLobbyRejoin, 0, 0, "1=Leave the lobby and rejoin after gl_debugLobbyRejoinTimer seconds");
	REGISTER_CVAR(gl_debugForceLobbyMigrationsTimer, 12.5f, 0, "Time between forced lobby migrations, 2=Start the leave lobby timer after a host migration starts");
	REGISTER_CVAR(gl_debugLobbyRejoinTimer, 25.f, 0, "Time till auto leaving the session");
	REGISTER_CVAR(gl_debugLobbyRejoinRandomTimer, 2.f, 0, "Random element to leave game timer");
	REGISTER_CVAR(gl_lobbyForceShowTeams, 0, 0, "Force the lobby to display teams all the time");
	REGISTER_CVAR(gl_debugLobbyBreaksGeneral, 0, 0, "Counter: General lobby breaks");
	REGISTER_CVAR(gl_debugLobbyHMAttempts, 0, 0, "Counter: host migration attempts");
	REGISTER_CVAR(gl_debugLobbyHMTerminations, 0, 0, "Counter: host migration terminations");
	REGISTER_CVAR(gl_debugLobbyBreaksHMShard, 0, 0, "Counter: Host Migration sharding detected in lobby");
	REGISTER_CVAR(gl_debugLobbyBreaksHMHints, 0, 0, "Counter: Host Migration hinting error detected");
	REGISTER_CVAR(gl_debugLobbyBreaksHMTasks, 0, 0, "Counter: Host Migration task error detected");
	REGISTER_CVAR(gl_resetWrongVersionProfiles, 1, 0, "Reset player profiles rather than kicking players if the version doesn't match");
	REGISTER_CVAR(gl_enableOfflinePlaylistVoting, 0, VF_CHEAT, "Enabled voting on offline games, just to make testing easier. Requires gl_enablePlaylistVoting to also be set");
	REGISTER_CVAR(gl_hostMigrationUseAutoLobbyMigrateInPrivateGames, 0, VF_CHEAT, "1=Make calls to EnsureBestHost when in private games");
	REGISTER_CVAR(gl_allowDevLevels, 1, VF_CHEAT, "Allow levels which aren't on the standard level list or dlc" );
#endif

#ifdef USE_SESSION_SEARCH_SIMULATOR
	REGISTER_CVAR(gl_searchSimulatorEnabled, 0, 0, "Enable/Disable the Session Search Simulator for testing Matchmaking");
	gEnv->pConsole->RegisterString("gl_searchSimulatorFilepath", NULL, 0,"Set the source XML file for the Session Search Simulator");
#endif

	REGISTER_CVAR(gl_skip, 0, 0, "Skips the game lobby");
	REGISTER_CVAR(gl_votingCloseTimeBeforeStart, 5.f, 0, "Playlist voting will close this many secs before game start countdown finishes");
	REGISTER_CVAR(gl_experimentalPlaylistRotationAdvance, 1, 0, "Testing code that gets the first level from the playlist and advances it when the server enters the lobby. Here so can be easily disabled! Currently needed for gl_enablePlaylistVoting");
	REGISTER_CVAR(gl_enablePlaylistVoting, 1, 0, "Enabled voting on which level to play next within playlists that support it. Currently also needs gl_experimentalPlaylistRotationAdvance");
	REGISTER_CVAR(gl_minPlaylistSizeToEnableVoting, 2, 0, "A playlist must contain at least this many levels for voting to be enabled, even when gl_enablePlaylistVoting is set. Note that setting it to 1 and having a playlist with 1 level in it will still work, but it'll present a vote with the same level as both voting candidates");
	REGISTER_CVAR(gl_time, 45.f, 0, "Time in lobby between games");
	REGISTER_CVAR(gl_checkDLCBeforeStartTime, 20.f, 0, "When the server game start countdown gets to this time between games it will do DLC checks to make sure it has the DLC needed for both the levels being voted on");
	REGISTER_CVAR(gl_maxSessionNameTimeWithoutConnection, 5.f, 0, "Time a session name is allowed to persist before being removed");
	REGISTER_CVAR_DEV_ONLY(gl_precacheLogging, 0, 0, "Debug logging for the pre-caching of pak files in lobby");

	REGISTER_CVAR(gl_getServerFromDedicatedServerArbitrator, 0, 0, "Should game lobby request server from dedicated server arbitrator");
	REGISTER_CVAR(gl_serverIsAllocatedFromDedicatedServerArbitrator, 0, 0, "Indicates if this server should be allocated by the dedicated arbitrator");
	
#if defined(DEDICATED_SERVER)
	REGISTER_CVAR(g_pingLimit, 0, 0, "Max ping a player can have before being kicked (0=disabled)");
	REGISTER_CVAR(g_pingLimitTimer, 15.f, 0, "Time after which a player will be kicked if they are over the specified ping limit");
#endif
}
Exemple #16
0
//------------------------------------------------------------------------
CVehicleCVars::CVehicleCVars()
{
	assert (s_pThis == 0);
	s_pThis = this;
  
	IConsole *pConsole = gEnv->pConsole;
	assert(pConsole);

#if ENABLE_VEHICLE_DEBUG
  // debug draw
  REGISTER_STRING("v_debugVehicle", "", 0, "Vehicle entity name to use for debugging output");    
  REGISTER_CVAR_CB(v_draw_components, 0, VF_DUMPTODISK, "Enables/disables display of components and their damage count", OnDebugDrawVarChanged);
  REGISTER_CVAR_CB(v_draw_helpers, 0, 0, "Enables/disables display of vehicle helpers", OnDebugDrawVarChanged);
  REGISTER_CVAR_CB(v_draw_seats, 0, 0, "Enables/disables display of seat positions", OnDebugDrawVarChanged);
  REGISTER_CVAR(v_draw_tm, 0, 0, "Enables/disables drawing of local part matrices");  
  REGISTER_CVAR(v_draw_passengers, 0, VF_CHEAT, "draw passenger TMs set by VehicleSeat");
  REGISTER_CVAR(v_debugdraw, 0, VF_DUMPTODISK, 
    "Displays vehicle status info on HUD\n"
    "Values:\n"
    "1:  common stuff\n"
    "2:  vehicle particles\n"
    "3:  parts\n"
    "4:  views\n"          
    "6:  parts + partIds\n"
    "7:  parts + transformations and bboxes\n"
    "8:  component damage\n"    
    "10: vehicle editor");
	REGISTER_CVAR(v_debug_mem, 0, 0, "display memory statistic for vehicles");

	REGISTER_CVAR_CB(v_debugView, 0, VF_CHEAT|VF_DUMPTODISK, "Activate a 360 degree rotating third person camera instead of the camera usually available on the vehicle class", OnDebugViewVarChanged);  
	REGISTER_CVAR(v_debugViewDetach, 0, VF_CHEAT|VF_DUMPTODISK, "Freeze vehicle camera position, (1) fixed rotation, (2) track the vehicle");
	REGISTER_CVAR(v_debugViewAbove, 0, VF_CHEAT|VF_DUMPTODISK, "Debug camera, looking down on vehicle");
	REGISTER_CVAR(v_debugViewAboveH, 10.f, VF_CHEAT|VF_DUMPTODISK, "Debug camera, looking down on vehicle, height ");
	REGISTER_CVAR(v_debugCollisionDamage, 0, VF_CHEAT, "Enable debug output for vehicle collisions");  

	REGISTER_CVAR(v_debug_flip_over, 0, VF_CHEAT, "flip over the current vehicle that the player is driving");
	REGISTER_CVAR(v_debug_reorient, 0, VF_CHEAT, "reset the orientation of the vehicle that the player is driving so that it is upright again");

	REGISTER_COMMAND("v_dump_classes", CVehicleSystem::DumpClasses, 0, "Outputs a list of vehicle classes in use");
#endif
      
  // dev vars
  REGISTER_CVAR(v_lights, 2, 0, "Controls vehicle lights.\n"
		"0: disable all lights\n"
		"1: enable lights only for local player\n"
		"2: enable all lights");
  REGISTER_CVAR(v_lights_enable_always, 0, VF_CHEAT, "Vehicle lights are always on (debugging)");    
  REGISTER_CVAR(v_autoDisable, 1, VF_CHEAT, "Enables/disables vehicle autodisabling");
  REGISTER_CVAR(v_set_passenger_tm, 1, VF_CHEAT, "enable/disable passenger entity tm update"); 
  REGISTER_CVAR(v_disable_hull, 0, 0, "Disable hull proxies");  
  REGISTER_CVAR(v_treadUpdateTime, 0, 0, "delta time for tread UV update, 0 means always update");    
  REGISTER_CVAR(v_show_all, 0, VF_CHEAT, "");  
  REGISTER_CVAR(v_transitionAnimations, 1, VF_CHEAT, "Enables enter/exit transition animations for vehicles");
	REGISTER_CVAR(v_playerTransitions, 1, VF_CHEAT, "Enables enter/exit transition animations for vehicles");
  REGISTER_CVAR(v_ragdollPassengers, 0, VF_CHEAT, "Forces vehicle passenger to detach and ragdoll when they die inside of a vehicle");
  REGISTER_CVAR(v_goliathMode, 0, VF_CHEAT, "Makes all vehicles invincible");  
	REGISTER_CVAR(v_enableMannequin, 1, VF_CHEAT, "Enables enter/exit transition animations for vehicles");

  // #AfroStalin . This fix physics lags in multiplayer. Use this dll in GameServer and Clients.
  REGISTER_CVAR(v_serverControlled, 0, VF_CHEAT|VF_REQUIRE_LEVEL_RELOAD, "Makes the vehicles server authoritative, clients only send inputs to the server who then drives the vehicles");
  //
  
  REGISTER_CVAR(v_clientPredict, 1, VF_CHEAT, "Enable client-side prediction on vehicle movement");
  REGISTER_CVAR(v_clientPredictSmoothing, 1, VF_CHEAT, "Enable client-side prediction smoothing on vehicle movement");
  REGISTER_CVAR(v_testClientPredict, 0, VF_CHEAT, "Test client-side prediction on a listen server with no clients, the value represents the number of frames to rewind and replay");
  REGISTER_CVAR(v_clientPredictSmoothingConst, 8.0f, VF_CHEAT, "The amount of smoothing to use, lower values result in smoothing looking movement but more lag behind the true position");
  REGISTER_CVAR(v_clientPredictAdditionalTime, 0.033f, VF_CHEAT, "Additional time offset to calibrate client prediction, will be added to ping and p_net_interp cvar");
  REGISTER_CVAR(v_clientPredictMaxTime, 0.5f, VF_CHEAT, "The maximum time the client can predict ahead of the server position (should be roughly equal to the maximum ping we expect in the real world)");

  // for tweaking  
  REGISTER_CVAR(v_slipSlopeFront, 0.f, VF_CHEAT, "coefficient for slip friction slope calculation (front wheels)");
  REGISTER_CVAR(v_slipSlopeRear, 0.f, VF_CHEAT, "coefficient for slip friction slope calculation (rear wheels)");  
  REGISTER_CVAR(v_slipFrictionModFront, 0.f, VF_CHEAT, "if non-zero, used as slip friction modifier (front wheels)");
  REGISTER_CVAR(v_slipFrictionModRear, 0.f, VF_CHEAT, "if non-zero, used as slip friction modifier (rear wheels)");

  REGISTER_CVAR(v_FlippedExplosionTimeToExplode, 20.f, VF_CHEAT, "The number of seconds to wait after a vehicle is flipped to attempt exploding");
  REGISTER_CVAR(v_FlippedExplosionPlayerMinDistance, 25.f, VF_CHEAT, "If a player is within this distance then don't explode yet");
  REGISTER_CVAR(v_FlippedExplosionRetryTimeMS, 10000, VF_CHEAT, "If a nearby player blocked explosion then try again after this time period");

  
  REGISTER_COMMAND("v_reload_system", "VehicleSystem.ReloadVehicleSystem()", 0, "Reloads VehicleSystem script");  
  REGISTER_COMMAND("v_exit_player", CmdExitPlayer, VF_CHEAT, "Makes the local player exit his current vehicle.");
  
	REGISTER_CVAR(v_disableEntry, 0, 0, "Don't allow players to enter vehicles");
	
  REGISTER_CVAR(v_vehicle_quality, 4, 0, "Geometry/Physics quality (1-lowspec, 4-highspec)");
  REGISTER_CVAR_CB(v_driverControlledMountedGuns, 1, VF_CHEAT, "Specifies if the driver can control the vehicles mounted gun when driving without gunner.", OnDriverControlledGunsChanged);
  REGISTER_CVAR(v_independentMountedGuns, 1, 0, "Whether mounted gunners operate their turret independently from the parent vehicle");
	
	REGISTER_CVAR(v_debugSuspensionIK, 0, 0, "Debug draw the suspension ik");
}