83 lines
1.6 KiB
C++
83 lines
1.6 KiB
C++
#include "view.hpp"
|
|
#include "gui.hpp"
|
|
#include "pointers.hpp"
|
|
#include "services/gta_data/gta_data_service.hpp"
|
|
|
|
namespace big
|
|
{
|
|
void view::gta_data()
|
|
{
|
|
if (!g_gta_data_service)
|
|
return;
|
|
|
|
if (g_gta_data_service->cache_needs_update())
|
|
{
|
|
g_gui->toggle(true);
|
|
ImGui::OpenPopup("GAME_CACHE"_T.data());
|
|
}
|
|
|
|
ImGui::SetNextWindowSize({ 800, 210 }, ImGuiCond_FirstUseEver);
|
|
ImGui::SetNextWindowPos({ 200, 200 }, ImGuiCond_FirstUseEver);
|
|
if (ImGui::BeginPopupModal("GAME_CACHE"_T.data()))
|
|
{
|
|
switch (g_gta_data_service->state())
|
|
{
|
|
case eGtaDataUpdateState::NEEDS_UPDATE:
|
|
{
|
|
ImGui::Text("GAME_CACHE_UPDATE"_T.data());
|
|
|
|
if (*g_pointers->m_is_session_started)
|
|
{
|
|
if (ImGui::Button("GAME_CACHE_UPDATE_CACHE"_T.data()))
|
|
{
|
|
g_gta_data_service->update_now();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ImGui::TextWrapped("GAME_CACHE_SINGLE_PLAYER_DESCRIPTION"_T.data());
|
|
|
|
if (ImGui::Button("GAME_CACHE_DONT_CARE"_T.data()))
|
|
{
|
|
g_gta_data_service->update_now();
|
|
}
|
|
|
|
if (ImGui::Button("GAME_CACHE_GO_ONLINE"_T.data()))
|
|
{
|
|
g_gta_data_service->update_in_online();
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
case eGtaDataUpdateState::WAITING_FOR_SINGLE_PLAYER:
|
|
{
|
|
ImGui::Text("GAME_CACHE_WAITING_FOR_SINGLE_PLAYER"_T.data());
|
|
|
|
break;
|
|
}
|
|
case eGtaDataUpdateState::WAITING_FOR_ONLINE:
|
|
{
|
|
ImGui::Text("GAME_CACHE_WAITING_FOR_ONLINE"_T.data());
|
|
|
|
break;
|
|
}
|
|
case eGtaDataUpdateState::UPDATING:
|
|
{
|
|
ImGui::Text("GAME_CACHE_UPDATING"_T.data());
|
|
|
|
break;
|
|
}
|
|
case eGtaDataUpdateState::IDLE:
|
|
{
|
|
ImGui::CloseCurrentPopup();
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
ImGui::EndPopup();
|
|
}
|
|
}
|
|
}
|