2022-05-04 19:16:40 +02:00
|
|
|
#pragma once
|
|
|
|
#include "views/view.hpp"
|
|
|
|
|
|
|
|
namespace big
|
|
|
|
{
|
|
|
|
enum class tabs {
|
2022-08-10 08:42:34 +08:00
|
|
|
NONE,
|
|
|
|
|
|
|
|
SELF,
|
|
|
|
WEAPONS,
|
|
|
|
TELEPORT,
|
|
|
|
MOBILE,
|
|
|
|
|
|
|
|
VEHICLE,
|
|
|
|
HANDLING,
|
2022-05-04 19:16:40 +02:00
|
|
|
HANDLING_SEARCH,
|
|
|
|
HANDLING_SAVED_PROFILE,
|
|
|
|
HANDLING_MY_PROFILES,
|
|
|
|
HANDLING_CURRENT_PROFILE,
|
2022-06-26 00:14:00 +02:00
|
|
|
LSC,
|
2022-08-10 08:42:34 +08:00
|
|
|
SPAWN_VEHICLE,
|
2022-07-10 06:33:14 +08:00
|
|
|
PV,
|
2022-07-28 20:42:57 +02:00
|
|
|
PERSIST_CAR,
|
2022-08-10 08:42:34 +08:00
|
|
|
FUN_VEHICLE,
|
|
|
|
|
|
|
|
WORLD,
|
|
|
|
SPAWN_PED,
|
2022-10-26 20:27:15 +02:00
|
|
|
TIME_AND_WEATHER,
|
2022-08-10 08:42:34 +08:00
|
|
|
|
|
|
|
NETWORK,
|
|
|
|
SESSION,
|
2022-05-04 19:16:40 +02:00
|
|
|
SPOOFING,
|
2022-11-19 01:49:36 +00:00
|
|
|
PLAYER_DATABASE,
|
2022-11-24 21:49:05 +00:00
|
|
|
SESSION_BROWSER,
|
2022-08-10 08:42:34 +08:00
|
|
|
|
|
|
|
SETTINGS,
|
|
|
|
CONTEXT_MENU_SETTINGS,
|
|
|
|
ESP_SETTINGS,
|
|
|
|
GUI_SETTINGS,
|
|
|
|
NOTIFICATION_SETTINGS,
|
|
|
|
PROTECTION_SETTINGS,
|
|
|
|
DEBUG,
|
|
|
|
|
|
|
|
PLAYER
|
2022-05-04 19:16:40 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct navigation_struct
|
|
|
|
{
|
|
|
|
const char name[32] = "";
|
|
|
|
std::function<void()> func = nullptr;
|
2022-08-10 08:42:34 +08:00
|
|
|
std::map<tabs, navigation_struct> sub_nav{};
|
2022-05-04 19:16:40 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
class gui_service final
|
|
|
|
{
|
|
|
|
std::vector<tabs> current_tab{};
|
|
|
|
bool switched_view = true;
|
|
|
|
|
2022-08-10 08:42:34 +08:00
|
|
|
std::map<tabs, navigation_struct> nav = {
|
2022-05-04 19:16:40 +02:00
|
|
|
{tabs::SELF, { "Self",view::self, {
|
|
|
|
{ tabs::WEAPONS, { "Weapons", view::weapons }},
|
|
|
|
{ tabs::MOBILE, {"Mobile", view::mobile}},
|
|
|
|
{ tabs::TELEPORT, {"Teleport", view::teleport}},
|
|
|
|
}}},
|
2022-07-12 22:42:07 +08:00
|
|
|
{tabs::VEHICLE, { "Vehicle", view::vehicle, {
|
2022-05-04 19:16:40 +02:00
|
|
|
{ tabs::HANDLING, {"Handling", view::handling_current_profile, {
|
|
|
|
{ tabs::HANDLING_CURRENT_PROFILE, {"Current Profile", view::handling_current_profile } },
|
|
|
|
{ tabs::HANDLING_SAVED_PROFILE, {"Saved Profiles", view::handling_saved_profiles } },
|
|
|
|
}}},
|
2022-07-12 22:42:07 +08:00
|
|
|
{ tabs::LSC, { "LS Customs", view::lsc }},
|
2022-08-10 08:42:34 +08:00
|
|
|
{ tabs::SPAWN_VEHICLE, { "Spawn Vehicle", view::spawn_vehicle }},
|
2022-07-10 06:33:14 +08:00
|
|
|
{ tabs::PV, { "Personal Vehicle", view::pv }},
|
2022-07-28 20:42:57 +02:00
|
|
|
{ tabs::PERSIST_CAR, { "Persist Car", view::persist_car }},
|
2022-08-10 08:42:34 +08:00
|
|
|
{ tabs::FUN_VEHICLE, { "Fun Features", view::fun_vehicle }},
|
|
|
|
}}},
|
|
|
|
{ tabs::WORLD, { "World", nullptr, {
|
|
|
|
{ tabs::SPAWN_PED, { "Spawn Ped", view::spawn_ped }},
|
2022-10-26 20:27:15 +02:00
|
|
|
{ tabs::TIME_AND_WEATHER, { "Time And Weather", view::time_and_weather }},
|
2022-05-04 19:16:40 +02:00
|
|
|
}}},
|
|
|
|
{tabs::NETWORK, { "Network", nullptr, {
|
|
|
|
{ tabs::SPOOFING, { "Spoofing", view::spoofing }},
|
|
|
|
{ tabs::SESSION, { "Session", view::session }},
|
2022-11-19 01:49:36 +00:00
|
|
|
{ tabs::PLAYER_DATABASE, { "Player Database", view::player_database }},
|
2022-11-24 21:49:05 +00:00
|
|
|
{ tabs::SESSION_BROWSER, { "Session Browser", view::session_browser }},
|
2022-05-04 19:16:40 +02:00
|
|
|
}}},
|
|
|
|
{tabs::SETTINGS, { "Settings", view::settings, {
|
2022-06-02 12:36:16 +02:00
|
|
|
{ tabs::CONTEXT_MENU_SETTINGS, { "Context Menu", view::context_menu_settings}},
|
2022-05-04 19:16:40 +02:00
|
|
|
{ tabs::ESP_SETTINGS, { "ESP", view::esp_settings}},
|
|
|
|
{ tabs::GUI_SETTINGS, { "GUI", view::gui_settings}},
|
|
|
|
{ tabs::NOTIFICATION_SETTINGS, { "Notifications", view::notification_settings}},
|
|
|
|
{ tabs::PROTECTION_SETTINGS, { "Protection", view::protection_settings}},
|
2022-10-21 22:05:39 +02:00
|
|
|
{ tabs::DEBUG, { "Debug", nullptr }},
|
2022-05-04 19:16:40 +02:00
|
|
|
}}},
|
|
|
|
{tabs::PLAYER, {"", view::view_player}}
|
|
|
|
};
|
|
|
|
public:
|
|
|
|
gui_service();
|
|
|
|
virtual ~gui_service();
|
|
|
|
|
|
|
|
int nav_ctr = 0;
|
|
|
|
|
|
|
|
navigation_struct* get_selected();
|
2022-08-10 08:42:34 +08:00
|
|
|
std::vector<tabs>& get_selected_tab();
|
2022-05-04 19:16:40 +02:00
|
|
|
bool has_switched_view();
|
|
|
|
void set_selected(tabs);
|
|
|
|
void set_nav_size(int);
|
|
|
|
void increment_nav_size();
|
|
|
|
void reset_nav_size();
|
2022-08-10 08:42:34 +08:00
|
|
|
std::map<tabs, navigation_struct>& get_navigation();
|
2022-05-04 19:16:40 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
inline gui_service* g_gui_service{};
|
|
|
|
}
|