VC & III build fixes

This commit is contained in:
Grinch_ 2022-07-01 14:27:11 +06:00
parent c249437dcc
commit 3d10fda889
10 changed files with 89 additions and 70 deletions

View File

@ -75,6 +75,7 @@
"xtree": "cpp", "xtree": "cpp",
"xutility": "cpp", "xutility": "cpp",
"*.rh": "cpp", "*.rh": "cpp",
"csignal": "cpp" "csignal": "cpp",
"coroutine": "cpp"
} }
} }

View File

@ -569,12 +569,13 @@ TotalSeats = "Total seats: %d"
TractionBias = "Traction bias" TractionBias = "Traction bias"
TractionLoss = "Traction loss" TractionLoss = "Traction loss"
TractionMul = "Traction multiplier" TractionMul = "Traction multiplier"
TrafficColor = "TrafficColor"
TrafficNeon = "Traffic neons" TrafficNeon = "Traffic neons"
TrafficNeonMSG = """ TrafficNeonMSG = """
Adds neon lights to traffic vehicles. Adds neon lights to traffic vehicles.
Only some vehicles will have them.""" Only some vehicles will have them."""
TrafficOpt = "Traffic options" TrafficType = "Traffic type"
TuneTab = "Tune" TuneTab = "Tune"
TurnMass = "Turn mass" TurnMass = "Turn mass"
Type = "Type" Type = "Type"

View File

@ -9,7 +9,7 @@
#define MENU_NAME "Cheat Menu" #define MENU_NAME "Cheat Menu"
#define MENU_VERSION_NUMBER "3.3" #define MENU_VERSION_NUMBER "3.3"
#define MENU_VERSION MENU_VERSION_NUMBER"-beta" #define MENU_VERSION MENU_VERSION_NUMBER"-beta"
#define BUILD_NUMBER "20220626" #define BUILD_NUMBER "20220701"
#define MENU_TITLE MENU_NAME " v" MENU_VERSION #define MENU_TITLE MENU_NAME " v" MENU_VERSION
#ifdef GTASA #ifdef GTASA

View File

@ -347,7 +347,6 @@ void Game::Init()
} }
RandomCheats::Process(); RandomCheats::Process();
#endif
if (freeCam.Pressed()) if (freeCam.Pressed())
{ {
@ -366,6 +365,7 @@ void Game::Init()
{ {
Freecam::Process(); Freecam::Process();
} }
#endif
// improve this later // improve this later
static uint syncTimer; static uint syncTimer;

View File

@ -18,8 +18,8 @@ static const char* pedTypeList = "Civ Male\0Civ Female\0Cop (crash)\0Cubans\0Hai
"\0Criminal\0Unused\0Prostitute\0Special\0"; "\0Criminal\0Unused\0Prostitute\0Special\0";
#else #else
static const char* pedTypeList = L"Civ Male\0Civ Female\0Cop\0Leones\0Triads\0Diablos\0Yakuza\0Yardies\0Colombians\0" static const char* pedTypeList = "Civ Male\0Civ Female\0Cop\0Leones\0Triads\0Diablos\0Yakuza\0Yardies\0Colombians\0"
L"Hoods\0unused\0unused\0Emergency\0Fireman\0Criminal\0unused\0Prostitute\0Special\0"; "Hoods\0unused\0unused\0Emergency\0Fireman\0Criminal\0unused\0Prostitute\0Special\0";
#endif #endif
@ -144,7 +144,7 @@ void Ped::SpawnPed(std::string& cat, std::string& name, std::string& model)
Command<Commands::LOAD_SPECIAL_CHARACTER>(currentSlot, model.c_str()); Command<Commands::LOAD_SPECIAL_CHARACTER>(currentSlot, model.c_str());
Command<Commands::LOAD_ALL_MODELS_NOW>(); Command<Commands::LOAD_ALL_MODELS_NOW>();
Command<Commands::CREATE_CHAR>(SpawnPed::m_nSelectedPedType + 4, 108+currentSlot, pos.x, pos.y, pos.z + 1, &hplayer); Command<Commands::CREATE_CHAR>(Spawner::m_nSelectedPedType + 4, 108+currentSlot, pos.x, pos.y, pos.z + 1, &hplayer);
Command<Commands::UNLOAD_SPECIAL_CHARACTER>(currentSlot); Command<Commands::UNLOAD_SPECIAL_CHARACTER>(currentSlot);
++currentSlot; ++currentSlot;
@ -369,7 +369,7 @@ void Ped::ShowPage()
Widget::DataList(Weapon::m_WeaponData, Widget::DataList(Weapon::m_WeaponData,
[](std::string& root, std::string& key, std::string& id) [](std::string& root, std::string& key, std::string& id)
{ {
SpawnPed::m_nWeaponId = std::stoi(id); Spawner::m_nWeaponId = std::stoi(id);
weaponName = key; weaponName = key;
}, },
nullptr); nullptr);

View File

@ -484,7 +484,7 @@ void Player::ShowPage()
} }
Widget::CheckboxAddr(TEXT("Player.InfSprint"), 0xB7CEE4); Widget::CheckboxAddr(TEXT("Player.InfSprint"), 0xB7CEE4);
#else #else
Widget::CheckboxAddr(TEXT("Player.InfSprint"),Ui::CheckboxBits (int)&pInfo->m_bInfiniteSprint); Widget::CheckboxAddr(TEXT("Player.InfSprint"), (int)&pInfo->m_bInfiniteSprint);
#endif #endif
ImGui::NextColumn(); ImGui::NextColumn();

View File

@ -887,27 +887,20 @@ void Vehicle::ShowPage()
} }
#ifndef GTA3 #ifndef GTA3
if (ImGui::CollapsingHeader(TEXT("Vehicle.TrafficOpt"))) std::vector<Widget::BindInfo> color
{ {
{TEXT("Vehicle.Black"), BY_GAME(0x969151, 0xA10B82, NULL)},
std::vector<Widget::BindInfo> color {TEXT("Vehicle.Pink"), BY_GAME(0x969150, 0xA10B26, NULL)}
{ };
{TEXT("Vehicle.Black"), BY_GAME(0x969151, 0xA10B82, NULL)}, Widget::EditRadioBtnAddr(TEXT("Vehicle.TrafficColor"), color);
{TEXT("Vehicle.Pink"), BY_GAME(0x969150, 0xA10B26, NULL)}
};
Widget::EditRadioBtnAddr(TEXT("Vehicle.Color"), color);
ImGui::Spacing();
#ifdef GTASA
std::vector<Widget::BindInfo> type
{
{TEXT("Vehicle.Cheap"), 0x96915E}, {TEXT("Vehicle.Country"), 0x96917B},
{TEXT("Vehicle.Fast"), 0x96915F}
};
Widget::EditRadioBtnAddr(TEXT("Vehicle.Type"), type);
#endif #endif
ImGui::Spacing(); #ifdef GTASA
ImGui::Separator(); std::vector<Widget::BindInfo> type
} {
{TEXT("Vehicle.Cheap"), 0x96915E}, {TEXT("Vehicle.Country"), 0x96917B},
{TEXT("Vehicle.Fast"), 0x96915F}
};
Widget::EditRadioBtnAddr(TEXT("Vehicle.TrafficType"), type);
#endif #endif
if (pPlayer && pPlayer->m_pVehicle) if (pPlayer && pPlayer->m_pVehicle)
{ {
@ -1049,7 +1042,8 @@ void Vehicle::ShowPage()
#ifdef GTASA #ifdef GTASA
SpawnVehicle(str); SpawnVehicle(str);
#else #else
SpawnVehicle("", "", str); std::string temp = "";
SpawnVehicle(temp, temp, str);
#endif #endif
} }
else else

View File

@ -286,35 +286,6 @@ int CalcArrayIndex()
return TOTAL_WEATHERS * hour + CWeather::OldWeatherType; return TOTAL_WEATHERS * hour + CWeather::OldWeatherType;
} }
bool TimeCycColorEdit3(const char* label, uchar* r, uchar* g, uchar* b)
{
bool rtn = false;
int val = CalcArrayIndex();
#ifdef GTASA
auto red = static_cast<uchar*>(patch::GetPointer(int(r)));
auto green = static_cast<uchar*>(patch::GetPointer(int(g)));
auto blue = static_cast<uchar*>(patch::GetPointer(int(b)));
#else
auto red = static_cast<uchar*>(r);
auto green = static_cast<uchar*>(g);
auto blue = static_cast<uchar*>(b);
#endif
float col[3] { red[val] / 255.0f, green[val] / 255.0f, blue[val] / 255.0f };
if (ImGui::ColorEdit3(label, col))
{
red[val] = col[0] * 255;
green[val] = col[1] * 255;
blue[val] = col[2] * 255;
rtn = true;
}
return rtn;
}
template <typename T> template <typename T>
void TimecycSlider(const char* label, T* ptr, int min, int max) void TimecycSlider(const char* label, T* ptr, int min, int max)
{ {
@ -331,26 +302,72 @@ void TimecycSlider(const char* label, T* ptr, int min, int max)
arr[val] = static_cast<T>(a); arr[val] = static_cast<T>(a);
} }
bool TimeCycColorEdit4(const char* label, uchar* r, uchar* g, uchar* b, uchar* a) template<typename T>
bool Visual::TimeCycColorEdit3(const char* label, T* r, T* g, T* b, ImGuiColorEditFlags flags)
{ {
bool rtn = false; bool rtn = false;
int val = CalcArrayIndex(); int val = CalcArrayIndex();
#ifdef GTASA #ifdef GTASA
auto red = static_cast<uchar*>(patch::GetPointer(int(r))); auto red = static_cast<T*>(patch::GetPointer(int(r)));
auto green = static_cast<uchar*>(patch::GetPointer(int(g))); auto green = static_cast<T*>(patch::GetPointer(int(g)));
auto blue = static_cast<uchar*>(patch::GetPointer(int(b))); auto blue = static_cast<T*>(patch::GetPointer(int(b)));
auto alpha = static_cast<uchar*>(patch::GetPointer(int(a)));
#else #else
auto red = static_cast<uchar*>(r); auto red = static_cast<T*>(r);
auto green = static_cast<uchar*>(g); auto green = static_cast<T*>(g);
auto blue = static_cast<uchar*>(b); auto blue = static_cast<T*>(b);
auto alpha = static_cast<uchar*>(a); #endif
float col[3] { red[val] / 255.0f, green[val] / 255.0f, blue[val] / 255.0f };
if (ImGui::ColorEdit3(label, col, flags))
{
red[val] = col[0] * 255;
green[val] = col[1] * 255;
blue[val] = col[2] * 255;
rtn = true;
}
return rtn;
}
template <typename T>
void Visual::TimecycSlider(const char* label, T* ptr, int min, int max)
{
int val = CalcArrayIndex();
#ifdef GTASA
// Compatable with 24h TimeCyc
T* arr = static_cast<T*>(patch::GetPointer(int(ptr)));
#else
T* arr = static_cast<T*>(ptr);
#endif
int a = arr[val];
if (ImGui::SliderInt(label, &a, min, max))
arr[val] = static_cast<T>(a);
}
template <typename T>
bool Visual::TimeCycColorEdit4(const char* label, T* r, T* g, T* b, T* a, ImGuiColorEditFlags flags)
{
bool rtn = false;
int val = CalcArrayIndex();
#ifdef GTASA
auto red = static_cast<T*>(patch::GetPointer(int(r)));
auto green = static_cast<T*>(patch::GetPointer(int(g)));
auto blue = static_cast<T*>(patch::GetPointer(int(b)));
auto alpha = static_cast<T*>(patch::GetPointer(int(a)));
#else
auto red = static_cast<T*>(r);
auto green = static_cast<T*>(g);
auto blue = static_cast<T*>(b);
auto alpha = static_cast<T*>(a);
#endif #endif
float col[4] { red[val] / 255.0f, green[val] / 255.0f, blue[val] / 255.0f, alpha[val] / 255.0f }; float col[4] { red[val] / 255.0f, green[val] / 255.0f, blue[val] / 255.0f, alpha[val] / 255.0f };
if (ImGui::ColorEdit4(label, col)) if (ImGui::ColorEdit4(label, col, flags))
{ {
red[val] = col[0] * 255; red[val] = col[0] * 255;
green[val] = col[1] * 255; green[val] = col[1] * 255;
@ -362,6 +379,7 @@ bool TimeCycColorEdit4(const char* label, uchar* r, uchar* g, uchar* b, uchar* a
return rtn; return rtn;
} }
static void ColorPickerAddr(const char* label, int addr, ImVec4&& default_color) static void ColorPickerAddr(const char* label, int addr, ImVec4&& default_color)
{ {
if (ImGui::CollapsingHeader(label)) if (ImGui::CollapsingHeader(label))

View File

@ -16,6 +16,13 @@ private:
static inline bool m_bNoTextures; static inline bool m_bNoTextures;
#endif #endif
template<typename T>
static bool TimeCycColorEdit3(const char* label, T* r, T* g, T* b, ImGuiColorEditFlags flags = 0);
template <typename T>
static bool TimeCycColorEdit4(const char* label, T* r, T* g, T* b, T* a, ImGuiColorEditFlags flags = 0);
template <typename T>
static void TimecycSlider(const char* label, T* data, int min, int max);
public: public:
Visual() = delete; Visual() = delete;
Visual(const Visual&) = delete; Visual(const Visual&) = delete;

View File

@ -46,8 +46,6 @@ public:
// Draws a dropdown editor for memory address // Draws a dropdown editor for memory address
template <typename T> template <typename T>
static void EditAddr(const char* label, uint address, int min = 0, int def = 0, int max = 100); static void EditAddr(const char* label, uint address, int min = 0, int def = 0, int max = 100);
// Draws a dropdown editor for memory address float
static void EditAddr(const char* label, uint address, float min = 0.0f, float def = 0.0f, static void EditAddr(const char* label, uint address, float min = 0.0f, float def = 0.0f,
float max = 100.0f, float mul = 1, float change = 1.0f); float max = 100.0f, float mul = 1, float change = 1.0f);