#pragma once
#include "../panel.qh"
#include <client/hud/panel/strafehud/_mod.qh>

int autocvar_hud_panel_strafehud = 3;
bool autocvar__hud_panel_strafehud_demo = false;
bool autocvar_hud_panel_strafehud_dynamichud = true;
int autocvar_hud_panel_strafehud_mode = 0;
float autocvar_hud_panel_strafehud_range = 90;
float autocvar_hud_panel_strafehud_range_sidestrafe = -2;
int autocvar_hud_panel_strafehud_style = 2;
bool autocvar_hud_panel_strafehud_unit_show = true;
int autocvar_hud_panel_strafehud_onground_mode = 2;
bool autocvar_hud_panel_strafehud_onground_friction = true;

float autocvar_hud_panel_strafehud_timeout_ground = 0.1;
float autocvar_hud_panel_strafehud_timeout_turn = 0.1;
float autocvar_hud_panel_strafehud_antiflicker_angle = 0.01;
float autocvar_hud_panel_strafehud_fps_update = 0.5;

bool autocvar_hud_panel_strafehud_bar_preaccel = true;
vector autocvar_hud_panel_strafehud_bar_preaccel_color = '0 1 0';
float autocvar_hud_panel_strafehud_bar_preaccel_alpha = 0.5;
vector autocvar_hud_panel_strafehud_bar_neutral_color = '1 1 1';
float autocvar_hud_panel_strafehud_bar_neutral_alpha = 0.1;
vector autocvar_hud_panel_strafehud_bar_accel_color = '0 1 0';
float autocvar_hud_panel_strafehud_bar_accel_alpha = 0.5;
vector autocvar_hud_panel_strafehud_bar_overturn_color = '1 0 1';
float autocvar_hud_panel_strafehud_bar_overturn_alpha = 0.5;

float autocvar_hud_panel_strafehud_angle_alpha = 0.8;
vector autocvar_hud_panel_strafehud_angle_preaccel_color = '0 1 1';
vector autocvar_hud_panel_strafehud_angle_neutral_color = '1 1 0';
vector autocvar_hud_panel_strafehud_angle_accel_color = '0 1 1';
vector autocvar_hud_panel_strafehud_angle_overturn_color = '1 0 1';
int autocvar_hud_panel_strafehud_angle_line = 0;
float autocvar_hud_panel_strafehud_angle_line_width = 0.001;
float autocvar_hud_panel_strafehud_angle_line_height = 1;
int autocvar_hud_panel_strafehud_angle_arrow = 1;
float autocvar_hud_panel_strafehud_angle_arrow_size = 0.5;
int autocvar_hud_panel_strafehud_bestangle = 1;
vector autocvar_hud_panel_strafehud_bestangle_color = '1 1 1';
float autocvar_hud_panel_strafehud_bestangle_alpha = 0.5;
int autocvar_hud_panel_strafehud_bestangle_line = 0;
float autocvar_hud_panel_strafehud_bestangle_line_width = 0.001;
float autocvar_hud_panel_strafehud_bestangle_line_height = 1;
int autocvar_hud_panel_strafehud_bestangle_arrow = 1;
float autocvar_hud_panel_strafehud_bestangle_arrow_size = 0.5;
int autocvar_hud_panel_strafehud_switch = 1;
float autocvar_hud_panel_strafehud_switch_minspeed = -1;
vector autocvar_hud_panel_strafehud_switch_color = '1 1 0';
float autocvar_hud_panel_strafehud_switch_alpha = 0.5;
int autocvar_hud_panel_strafehud_switch_line = 0;
float autocvar_hud_panel_strafehud_switch_line_width = 0.001;
float autocvar_hud_panel_strafehud_switch_line_height = 1;
int autocvar_hud_panel_strafehud_switch_arrow = 1;
float autocvar_hud_panel_strafehud_switch_arrow_size = 0.5;
int autocvar_hud_panel_strafehud_wturn = 1;
vector autocvar_hud_panel_strafehud_wturn_color = '0 0 1';
float autocvar_hud_panel_strafehud_wturn_alpha = 0.5;
bool autocvar_hud_panel_strafehud_wturn_proper = false;
bool autocvar_hud_panel_strafehud_wturn_unrestricted = false;
int autocvar_hud_panel_strafehud_wturn_line = 0;
float autocvar_hud_panel_strafehud_wturn_line_width = 0.001;
float autocvar_hud_panel_strafehud_wturn_line_height = 1;
int autocvar_hud_panel_strafehud_wturn_arrow = 1;
float autocvar_hud_panel_strafehud_wturn_arrow_size = 0.5;

bool autocvar_hud_panel_strafehud_direction = false;
vector autocvar_hud_panel_strafehud_direction_color = '0 0.5 1';
float autocvar_hud_panel_strafehud_direction_alpha = 1;
float autocvar_hud_panel_strafehud_direction_width = 0.25;
float autocvar_hud_panel_strafehud_direction_length = 0.02;

bool autocvar_hud_panel_strafehud_slickdetector = true;
float autocvar_hud_panel_strafehud_slickdetector_range = 200;
int autocvar_hud_panel_strafehud_slickdetector_granularity = 1;
vector autocvar_hud_panel_strafehud_slickdetector_color = '0 1 1';
float autocvar_hud_panel_strafehud_slickdetector_alpha = 0.5;
float autocvar_hud_panel_strafehud_slickdetector_height = 0.125;

bool autocvar_hud_panel_strafehud_startspeed = true;
float autocvar_hud_panel_strafehud_startspeed_fade = 4;
vector autocvar_hud_panel_strafehud_startspeed_color = '1 0.75 0';
vector autocvar_hud_panel_strafehud_startspeed_pos = '0 -1 0';
float autocvar_hud_panel_strafehud_startspeed_size = 1.5;
bool autocvar_hud_panel_strafehud_jumpheight = false;
float autocvar_hud_panel_strafehud_jumpheight_fade = 4;
float autocvar_hud_panel_strafehud_jumpheight_min = 50;
vector autocvar_hud_panel_strafehud_jumpheight_color = '0 1 0.75';
vector autocvar_hud_panel_strafehud_jumpheight_pos = '0 -2 0';
float autocvar_hud_panel_strafehud_jumpheight_size = 1.5;
bool autocvar_hud_panel_strafehud_vangle = false;
vector autocvar_hud_panel_strafehud_vangle_color = '0.75 0.75 0.75';
vector autocvar_hud_panel_strafehud_vangle_pos = '-0.25 1 0';
float autocvar_hud_panel_strafehud_vangle_size = 1;
bool autocvar_hud_panel_strafehud_strafeefficiency = false;
vector autocvar_hud_panel_strafehud_strafeefficiency_pos = '0.25 1 0';
float autocvar_hud_panel_strafehud_strafeefficiency_size = 1;
int autocvar_hud_panel_strafehud_projection = 0;

bool autocvar_hud_panel_strafehud_sonar = false;
string autocvar_hud_panel_strafehud_sonar_audio = "misc/talk";
float autocvar_hud_panel_strafehud_sonar_start = 0.5;
float autocvar_hud_panel_strafehud_sonar_interval_start = 0.333333;
float autocvar_hud_panel_strafehud_sonar_interval_range = -0.222222;
float autocvar_hud_panel_strafehud_sonar_interval_exponent = 1;
float autocvar_hud_panel_strafehud_sonar_volume_start = 0.333333;
float autocvar_hud_panel_strafehud_sonar_volume_range = 0.666666;
float autocvar_hud_panel_strafehud_sonar_volume_exponent = 1;
float autocvar_hud_panel_strafehud_sonar_pitch_start = 0.9;
float autocvar_hud_panel_strafehud_sonar_pitch_range = 0.1;
float autocvar_hud_panel_strafehud_sonar_pitch_exponent = 1;

const int STRAFEHUD_MODE_VIEW_CENTERED      = 0;
const int STRAFEHUD_MODE_VELOCITY_CENTERED  = 1;

const int STRAFEHUD_ONGROUND_OVERTURN  = 0;
const int STRAFEHUD_ONGROUND_GROUND    = 1;
const int STRAFEHUD_ONGROUND_AIR       = 2;

const int STRAFEHUD_DIRECTION_NONE   = 0;
const int STRAFEHUD_DIRECTION_LEFT   = 1;
const int STRAFEHUD_DIRECTION_RIGHT  = 2;

const int STRAFEHUD_SWITCH_NONE        = 0;
const int STRAFEHUD_SWITCH_ACTUAL      = 1;
const int STRAFEHUD_SWITCH_NORMAL      = 2;
const int STRAFEHUD_SWITCH_SIDESTRAFE  = 3;

const int STRAFEHUD_WTURN_NONE        = 0;
const int STRAFEHUD_WTURN_ONLY        = 1;
const int STRAFEHUD_WTURN_NORMAL      = 2;
const int STRAFEHUD_WTURN_SIDESTRAFE  = 3;

const int STRAFEHUD_KEYS_NONE      = 0;
const int STRAFEHUD_KEYS_FORWARD   = 1;
const int STRAFEHUD_KEYS_BACKWARD  = 2;

const int STRAFEHUD_STYLE_DRAWFILL       = 0;
const int STRAFEHUD_STYLE_PROGRESSBAR    = 1;
const int STRAFEHUD_STYLE_GRADIENT       = 2;
const int STRAFEHUD_STYLE_SOFT_GRADIENT  = 3;

const int STRAFEHUD_GRADIENT_NONE   = 0;
const int STRAFEHUD_GRADIENT_LEFT   = 1;
const int STRAFEHUD_GRADIENT_RIGHT  = 2;
const int STRAFEHUD_GRADIENT_BOTH   = 3;

const int STRAFEHUD_PROJECTION_LINEAR       = 0;
const int STRAFEHUD_PROJECTION_PERSPECTIVE  = 1;
const int STRAFEHUD_PROJECTION_PANORAMIC    = 2;

const float ACOS_SQRT2_3_DEG = 35.2643896827546543153;  /* acos(sqrt(2/3)) * RAD2DEG */
