CheatMenuSA/src/neon.h
2022-06-13 00:01:43 +06:00

59 lines
1.4 KiB
C++

#pragma once
#include "extender/VehicleExtender.h"
/*
Vehicle Neon implementation class for GTA: San Andreas
Handles neon colors and neon color changing
TODO: Implement for VC & 3 too (maybe)
Dunno how it'd work with the d3d8to9 wrapper
*/
class Neon
{
private:
class NeonData
{
public:
CRGBA m_Color;
bool m_bNeonInstalled;
float m_fVal;
bool m_bIncrement;
bool m_bPulsing;
NeonData(CVehicle* pVeh)
{
m_bNeonInstalled = false;
m_fVal = 0.0;
m_bIncrement = true;
}
};
static inline RwTexture* m_pNeonTexture = nullptr; // pointer to the neon mask texture
static inline VehicleExtendedData<NeonData> m_VehNeon;
public:
Neon() = delete;
Neon(Neon&) = delete;
// Injects necessary hooks into the game
static void InjectHooks();
// Installs neons with color
static void Install(CVehicle* veh, int r, int g, int b);
// Is neon installer for particular vehicle
static bool IsInstalled(CVehicle* veh);
// Is neon pulsing enabled for vehicle
static bool IsPulsingEnabled(CVehicle* veh);
// Set neon pulsing state
static void SetPulsing(CVehicle* veh, bool state);
// Removes the neon game hooks
static void RemoveHooks();
// Removes neon from vehicle
static void Remove(CVehicle* veh);
};