#pragma once
#include "../../../external/imgui/imgui.h"

// CBA to make proper atm, it's 03:42 right now.
// For now just stores config values don't mind it too much
//
// (FYI THIS IS A HORRID SOLUTION BUT FUNCTIONS) 

namespace Config {
	extern bool esp;
	extern bool showHealth;
	extern bool teamCheck;
	extern bool espFill;
	extern float espThickness;
	extern float espFillOpacity;
	extern ImVec4 espColor;
	extern bool showNameTags;

	extern bool Night;
	extern ImVec4 NightColor;

	extern bool enemyChamsInvisible;
	extern bool enemyChams;
	extern bool teamChams;
	extern bool teamChamsInvisible;
	extern int chamsMaterial;

	extern ImVec4 colVisualChams;
	extern ImVec4 colVisualChamsIgnoreZ;
	extern ImVec4 teamcolVisualChamsIgnoreZ;
	extern ImVec4 teamcolVisualChams;

	extern bool armChams;
	extern bool viewmodelChams;
	extern ImVec4 colViewmodelChams;
	extern ImVec4 colArmChams;

	extern bool fovEnabled;
	extern float fov;

	extern bool antiflash;

	extern bool Night;

	extern bool aimbot;
	extern float aimbot_fov;
	extern bool team_check;
	extern bool rcs;
	extern bool fov_circle;
	extern ImVec4 fovCircleColor;
	extern float aimbot_smooth;
	extern bool aimbot_dynamic_smooth;
	extern float aimbot_dynamic_smooth_factor;
	extern bool aimbot_on_lmb;
	extern bool shooterAfterAim;
	extern bool triggerbot_hold_lmb; // Если true, триггербот удерживает ЛКМ пока наведён на врага

	// --- Для аимбота ---
	enum AimbotBone {
		BONE_HEAD = 0,
		BONE_NECK = 1,
		BONE_BODY = 2,
		BONE_NEAREST = 3
	};
	extern int aimbot_bone; // Используется как int для сериализации
	extern int aimbot_key;
	extern bool always_on_aimbot;

	// --- Для триггербота ---
	extern bool triggerbot;
	extern bool always_on_triggerbot;
	extern int triggerbot_key;
	extern int triggerbot_alt_key; // Альтернативная кнопка для триггербота
	extern float triggerbot_delay;
	extern int rcsActivationShots;

	// --- Для отображения наблюдателей ---
	extern bool showSpectators;
	extern ImVec4 spectatorListColor;
	extern ImVec4 spectatorListBgColor;
	extern float spectatorListOpacity;

	extern bool silent_aim;
	extern float silent_aim_fov;
	extern float silent_aim_smooth;
	extern int silent_aim_bone;
	extern int silent_aim_key;
	extern bool always_on_silent_aim;
	extern float silent_aim_smooth_slider; // Новый параметр для ползунка смуза
	extern bool silent_shooterAfterAim; // Аналог shooterAfterAim для сайлент аимбота
}
