FIx III & VC builds

This commit is contained in:
Grinch_ 2022-09-23 20:53:51 +06:00
parent 79727292a8
commit 95c573d194
2 changed files with 92 additions and 85 deletions

View File

@ -33,6 +33,7 @@ static std::vector<std::string> m_ModelFlagNames = // 32 flags
VehCustmzrMgr& VehMod = VehCustmzrMgr::Get(); VehCustmzrMgr& VehMod = VehCustmzrMgr::Get();
#ifdef GTASA
void VehCustmzrMgr::AddComponent(const std::string& component, const bool display_message) void VehCustmzrMgr::AddComponent(const std::string& component, const bool display_message)
{ {
try try
@ -79,90 +80,6 @@ void VehCustmzrMgr::RemoveComponent(const std::string& component, const bool dis
} }
} }
VehCustmzrMgr& VehCustmzr = VehCustmzrMgr::Get();
VehCustmzrMgr::VehCustmzrMgr()
{
m_CustomizeData.m_bAllowRemoveAll = true;
FileHandler::FetchColorData(m_ColorData);
#ifdef GTASA
FileHandler::FetchHandlingID(m_VehicleIDE);
Events::processScriptsEvent += [this]
{
uint timer = CTimer::m_snTimeInMilliseconds;
CPlayerPed* pPlayer = FindPlayerPed();
CVehicle* pVeh = BY_GAME(FindPlayerVehicle(-1, false), FindPlayerVehicle(), FindPlayerVehicle());
if (pPlayer && Util::IsInCar())
{
if (m_Neon.m_bRainbowEffect && timer - m_Neon.m_nRainbowTimer > 50)
{
int red, green, blue;
Util::RainbowValues(red, green, blue, 0.25);
Neon.Install(pVeh, red, green, blue);
m_Neon.m_nRainbowTimer = timer;
}
}
// Traffic neons
if (m_Neon.m_bApplyOnTraffic && timer - m_Neon.m_nTrafficTimer > 1000)
{
for (CVehicle* veh : CPools::ms_pVehiclePool)
{
int chance = 0;
if (veh->m_nVehicleClass == CLASS_NORMAL) // Normal
{
chance = Random(1, 20);
}
if (veh->m_nVehicleClass == CLASS_RICHFAMILY) // Rich family
{
chance = Random(1, 4);
}
if (veh->m_nVehicleClass == CLASS_EXECUTIVE) // Executive
{
chance = Random(1, 3);
}
if (chance == 1 && !Neon.IsInstalled(veh) && veh->m_pDriver != pPlayer)
{
Neon.Install(veh, Random(0, 255), Random(0, 255), Random(0, 255));
}
}
m_Neon.m_nTrafficTimer = timer;
}
if (m_Nitro.m_bEnabled && FindPlayerVehicle(-1, false)->m_nVehicleSubClass == VEHICLE_AUTOMOBILE)
{
patch::Set<BYTE>(0x969165, 0, true); // All cars have nitro
patch::Set<BYTE>(0x96918B, 0, true); // All taxis have nitro
if (KeyPressed(VK_LBUTTON))
{
if (!m_Nitro.m_bCompAdded)
{
AddComponent("1010", false);
m_Nitro.m_bCompAdded = true;
}
}
else
{
if (m_Nitro.m_bCompAdded)
{
RemoveComponent("1010", false);
m_Nitro.m_bCompAdded = false;
}
}
}
};
#endif
}
void VehCustmzrMgr::ApplyCustomizations(std::string& cat, std::string& key, std::string& val) void VehCustmzrMgr::ApplyCustomizations(std::string& cat, std::string& key, std::string& val)
{ {
CVehicle *pVeh = BY_GAME(FindPlayerVehicle(-1, false), FindPlayerVehicle(), FindPlayerVehicle()); CVehicle *pVeh = BY_GAME(FindPlayerVehicle(-1, false), FindPlayerVehicle(), FindPlayerVehicle());
@ -176,7 +93,10 @@ void VehCustmzrMgr::ApplyCustomizations(std::string& cat, std::string& key, std:
toml::array *temp = m_CustomizeData.m_pData->GetArray((index + "ColorMat").c_str()); toml::array *temp = m_CustomizeData.m_pData->GetArray((index + "ColorMat").c_str());
CRGBA col {static_cast<uchar>(temp->at(0).value_or(0)), static_cast<uchar>(temp->at(1).value_or(0)), CRGBA col {static_cast<uchar>(temp->at(0).value_or(0)), static_cast<uchar>(temp->at(1).value_or(0)),
static_cast<uchar>(temp->at(2).value_or(0)), static_cast<uchar>(temp->at(3).value_or(0))}; static_cast<uchar>(temp->at(2).value_or(0)), static_cast<uchar>(temp->at(3).value_or(0))};
if (col.a != 0)
{
Paint.SetColor(pVeh, col); Paint.SetColor(pVeh, col);
}
temp = m_CustomizeData.m_pData->GetArray((index + "ColorCarcols").c_str()); temp = m_CustomizeData.m_pData->GetArray((index + "ColorCarcols").c_str());
Paint.SetCarcols(pVeh, temp->at(0).value_or(0), temp->at(1).value_or(0), temp->at(2).value_or(0), temp->at(3).value_or(0), false); Paint.SetCarcols(pVeh, temp->at(0).value_or(0), temp->at(1).value_or(0), temp->at(2).value_or(0), temp->at(3).value_or(0), false);
@ -278,6 +198,91 @@ void VehCustmzrMgr::SaveCustomizations()
m_CustomizeData.UpdateSearchList(); m_CustomizeData.UpdateSearchList();
} }
} }
#endif
VehCustmzrMgr& VehCustmzr = VehCustmzrMgr::Get();
VehCustmzrMgr::VehCustmzrMgr()
{
m_CustomizeData.m_bAllowRemoveAll = true;
FileHandler::FetchColorData(m_ColorData);
#ifdef GTASA
FileHandler::FetchHandlingID(m_VehicleIDE);
Events::processScriptsEvent += [this]
{
uint timer = CTimer::m_snTimeInMilliseconds;
CPlayerPed* pPlayer = FindPlayerPed();
CVehicle* pVeh = BY_GAME(FindPlayerVehicle(-1, false), FindPlayerVehicle(), FindPlayerVehicle());
if (pPlayer && Util::IsInCar())
{
if (m_Neon.m_bRainbowEffect && timer - m_Neon.m_nRainbowTimer > 50)
{
int red, green, blue;
Util::RainbowValues(red, green, blue, 0.25);
Neon.Install(pVeh, red, green, blue);
m_Neon.m_nRainbowTimer = timer;
}
}
// Traffic neons
if (m_Neon.m_bApplyOnTraffic && timer - m_Neon.m_nTrafficTimer > 1000)
{
for (CVehicle* veh : CPools::ms_pVehiclePool)
{
int chance = 0;
if (veh->m_nVehicleClass == CLASS_NORMAL) // Normal
{
chance = Random(1, 20);
}
if (veh->m_nVehicleClass == CLASS_RICHFAMILY) // Rich family
{
chance = Random(1, 4);
}
if (veh->m_nVehicleClass == CLASS_EXECUTIVE) // Executive
{
chance = Random(1, 3);
}
if (chance == 1 && !Neon.IsInstalled(veh) && veh->m_pDriver != pPlayer)
{
Neon.Install(veh, Random(0, 255), Random(0, 255), Random(0, 255));
}
}
m_Neon.m_nTrafficTimer = timer;
}
if (m_Nitro.m_bEnabled && FindPlayerVehicle(-1, false)->m_nVehicleSubClass == VEHICLE_AUTOMOBILE)
{
patch::Set<BYTE>(0x969165, 0, true); // All cars have nitro
patch::Set<BYTE>(0x96918B, 0, true); // All taxis have nitro
if (KeyPressed(VK_LBUTTON))
{
if (!m_Nitro.m_bCompAdded)
{
AddComponent("1010", false);
m_Nitro.m_bCompAdded = true;
}
}
else
{
if (m_Nitro.m_bCompAdded)
{
RemoveComponent("1010", false);
m_Nitro.m_bCompAdded = false;
}
}
}
};
#endif
}
void VehCustmzrMgr::Draw() void VehCustmzrMgr::Draw()
{ {

View File

@ -27,6 +27,7 @@ private:
VehCustmzrMgr(); VehCustmzrMgr();
VehCustmzrMgr(const VehCustmzrMgr&); VehCustmzrMgr(const VehCustmzrMgr&);
#ifdef GTASA
// Add/ Remove vehicle mod // Add/ Remove vehicle mod
void AddComponent(const std::string& component, bool displayMessage = true); void AddComponent(const std::string& component, bool displayMessage = true);
void RemoveComponent(const std::string& component, bool displayMessage = true); void RemoveComponent(const std::string& component, bool displayMessage = true);
@ -34,6 +35,7 @@ private:
// customization // customization
void ApplyCustomizations(std::string& cat, std::string& key, std::string& val); void ApplyCustomizations(std::string& cat, std::string& key, std::string& val);
void SaveCustomizations(); void SaveCustomizations();
#endif
public: public:
struct struct