mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2024-12-22 20:17:24 +08:00
feat(HandlingModals): Added update handling profile modal
This commit is contained in:
parent
42bad537ec
commit
226ff6adcb
@ -23,5 +23,6 @@ namespace big
|
||||
{
|
||||
public:
|
||||
static void modal_save_handling();
|
||||
static void modal_update_handling();
|
||||
};
|
||||
}
|
91
BigBaseV2/src/gui/window/handling/modals/update_handling.cpp
Normal file
91
BigBaseV2/src/gui/window/handling/modals/update_handling.cpp
Normal file
@ -0,0 +1,91 @@
|
||||
#include "../current_profile/current_profile_tabs.hpp"
|
||||
#include "fiber_pool.hpp"
|
||||
#include "thread_pool.hpp"
|
||||
#include "natives.hpp"
|
||||
#include "script.hpp"
|
||||
|
||||
namespace big
|
||||
{
|
||||
void modal_handling::modal_update_handling()
|
||||
{
|
||||
ImGui::SetNextWindowSize({ 520, 325 }, ImGuiCond_FirstUseEver);
|
||||
if (ImGui::BeginPopupModal("Update Handling"))
|
||||
{
|
||||
auto share_code = g_vehicle_service->get_active_profile(g_local_player->m_vehicle->m_handling->m_model_hash);
|
||||
if (share_code.empty())
|
||||
{
|
||||
// should be impossible to trigger but still
|
||||
|
||||
return ImGui::EndPopup();
|
||||
}
|
||||
auto it = g_vehicle_service->m_handling_profiles.find(share_code);
|
||||
if (it == g_vehicle_service->m_handling_profiles.end())
|
||||
return ImGui::EndPopup();
|
||||
auto profile = it->second;
|
||||
|
||||
static char name[32], description[256] = "No description.";
|
||||
|
||||
strcpy(name, profile.name.c_str());
|
||||
strcpy(description, profile.description.c_str());
|
||||
|
||||
switch (g_vehicle_service->publish_status())
|
||||
{
|
||||
case PublishStatus::SAVING:
|
||||
ImGui::Text("Saving...");
|
||||
|
||||
return ImGui::EndPopup();
|
||||
case PublishStatus::SAVED:
|
||||
strcpy(name, "");
|
||||
strcpy(description, "No description.");
|
||||
|
||||
g_vehicle_service->publish_status(PublishStatus::IDLE);
|
||||
g_vehicle_service->update_mine(true);
|
||||
|
||||
ImGui::CloseCurrentPopup();
|
||||
|
||||
return ImGui::EndPopup();
|
||||
case PublishStatus::FAILED:
|
||||
ImGui::TextColored({ 255, 0, 0, 1 }, "Failed to update handling profile.");
|
||||
|
||||
ImGui::Separator();
|
||||
}
|
||||
|
||||
QUEUE_JOB_BEGIN_CLAUSE()
|
||||
{
|
||||
PAD::DISABLE_ALL_CONTROL_ACTIONS(0);
|
||||
}QUEUE_JOB_END_CLAUSE
|
||||
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Text("Name:");
|
||||
ImGui::Text("Description:");
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::InputText("##modal_handling_name", name, sizeof(name));
|
||||
ImGui::InputTextMultiline("##modal_handling_description", description, sizeof(description));
|
||||
|
||||
ImGui::EndGroup();
|
||||
|
||||
if (ImGui::Button("Cancel"))
|
||||
{
|
||||
strcpy(name, "");
|
||||
strcpy(description, "No description.");
|
||||
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Update"))
|
||||
{
|
||||
g_thread_pool->push([&]
|
||||
{
|
||||
g_vehicle_service->publish_profile(name, description, profile.share_code);
|
||||
});
|
||||
}
|
||||
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user