Files
marohook/Andromeda-CS2-Base/Andromeda-CS2-Base/AndromedaClient/Features/CMisc/CMisc.hpp
T

56 lines
1.6 KiB
C++

#pragma once
#include <Common/Common.hpp>
#include <chrono>
#include <atomic>
#include <CS2/SDK/Math/QAngle.hpp>
#include <CS2/SDK/Math/Vector3.hpp>
class CCSGOInput;
class CUserCmd;
class IGameEvent;
class C_CSPlayerPawn;
class IMisc
{
public:
virtual void OnRender() = 0;
virtual void OnClientOutput() = 0;
virtual void OnCreateMove( CCSGOInput* pInput , CUserCmd* pUserCmd ) = 0;
virtual void OnFrameStageNotify( int FrameStage ) = 0;
virtual void OnFireEventClientSide( IGameEvent* pGameEvent ) = 0;
};
class CMisc final : public IMisc
{
public:
virtual void OnRender() override;
virtual void OnClientOutput() override;
virtual void OnCreateMove( CCSGOInput* pInput , CUserCmd* pUserCmd ) override;
virtual void OnFrameStageNotify( int FrameStage ) override;
virtual void OnFireEventClientSide( IGameEvent* pGameEvent ) override;
private:
auto RunTriggerbot( CCSGOInput* pInput , CUserCmd* pUserCmd ) -> void;
auto CalculateHitchance( CCSGOInput* pInput , C_CSPlayerPawn* pTarget , const QAngle& ViewAngles , const int Samples ) -> float;
auto CalculateSeedDirection( CCSGOInput* pInput , CUserCmd* pUserCmd , Vector3* vOutDirection ) -> bool;
private:
std::chrono::steady_clock::time_point m_HitTime{};
std::chrono::steady_clock::time_point m_HitSoundTime{};
private:
bool m_bTriggerToggledOn = false;
bool m_bTriggerKeyDown = false;
bool m_bTriggerShooting = false;
std::chrono::steady_clock::time_point m_TriggerArmTime{};
std::chrono::steady_clock::time_point m_ShotStartTime{};
std::atomic_bool m_bTargetInCrosshair = false;
std::atomic_bool m_bTriggerFiring = false;
};
auto GetMisc() -> CMisc*;