Client: add ALC per-optic scalar helper functions and cvars

This commit is contained in:
Kawe Mazidjatari 2024-07-29 19:23:33 +02:00
parent 1be76bd0c4
commit 8c3daa4fe6
3 changed files with 54 additions and 0 deletions

View File

@ -201,6 +201,8 @@ add_sources( SOURCE_GROUP "Input"
"client/in_main.cpp"
"client/input.cpp"
"client/input.h"
"client/gamepad.cpp"
"client/gamepad.h"
"client/kbutton.h"
)

View File

@ -0,0 +1,30 @@
//===========================================================================//
//
// Purpose:
//
//===========================================================================//
#include "gamepad.h"
static ConVar gamepad_use_per_scope_sensitivity_scalars("gamepad_use_per_scope_sensitivity_scalars", "0", FCVAR_ARCHIVE, "Gamepad uses the per scope scalars.");
static ConVar s_gamepadAdvancedAdsScalars[WeaponScopeZoomLevel_e::kScopeCount] = {
{"gamepad_ads_advanced_sensitivity_scalar_0", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for 1x scopes / iron sights."},
{"gamepad_ads_advanced_sensitivity_scalar_1", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for 2x scopes."},
{"gamepad_ads_advanced_sensitivity_scalar_2", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for 3x scopes."},
{"gamepad_ads_advanced_sensitivity_scalar_3", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for 4x scopes."},
{"gamepad_ads_advanced_sensitivity_scalar_4", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for 6x scopes."},
{"gamepad_ads_advanced_sensitivity_scalar_5", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for 8x scopes."},
{"gamepad_ads_advanced_sensitivity_scalar_6", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for 10x scopes."},
{"gamepad_ads_advanced_sensitivity_scalar_7", "1.0", FCVAR_ARCHIVE, "Gamepad ads sensitivity for an unused scope."}
};
bool GamePad_UseAdvancedAdsScalarsPerScope()
{
return gamepad_use_per_scope_sensitivity_scalars.GetBool();
}
float GamePad_GetAdvancedAdsScalarForOptic(const WeaponScopeZoomLevel_e opticType)
{
Assert((int)opticType >= 0 && (int)opticType < V_ARRAYSIZE(s_gamepadAdvancedAdsScalars));
return s_gamepadAdvancedAdsScalars[opticType].GetFloat();
}

22
src/game/client/gamepad.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef CLIENT_GAMEPAD_H
#define CLIENT_GAMEPAD_H
enum WeaponScopeZoomLevel_e // TODO: move to shared game scripts!
{
kScope1X = 0,
kScope2X,
kScope3X,
kScope4X,
kScope6X,
kScope8X,
kScope10X,
kScopeUnused,
kScopeCount // NOTE: not a scope!
};
extern bool GamePad_UseAdvancedAdsScalarsPerScope();
extern float GamePad_GetAdvancedAdsScalarForOptic(const WeaponScopeZoomLevel_e opticType);
#endif // CLIENT_GAMEPAD_H