#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 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); };