59 lines
1.4 KiB
C++
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);
|
|
};
|