TmpMenu/src/services/gui/gui_service.hpp
Seanghost117 93e2be4262 Feature Additions, GUI Tweaks, Fixes (#975)
* Added view nearby to view header, moved get_entities function to entities and refactored some code. Also implemented a sphere scale to the blackhole as it can get big
* added delete and kill nearby peds and updated ped header
* added some nearby ped looped commands, and some changes to extend the buttons
* add vehicle options to nearby
* add most ciritcal feature kill enemies
* changes to ignore peds based off of some of maybegreat's suggestions, same with ped_rain, removed loose comment. Updated vehicle.hpp, changed size of vehicle buttons and inlined kill enemies
* fixed a problem where the vehicle options crashed + added color
* updated colors and added on disable for ped_rush
* finished and added vehicle rain feature
* added aimbot and triggerbot, added templating to buttons
* update vehicle rain desc
* added vdistance check, player check, police check, enemy check. Added even more commenting... sue me. 3 toggles added for the checks and slider for dist. Will tweak more later
* switched to goto statements instead of continue, should be done now
* removed delete nearby vehicles
* there was no check in get_entities for our local vehicle
2023-02-25 21:33:16 +01:00

134 lines
3.7 KiB
C++

#pragma once
#include "views/view.hpp"
namespace big
{
enum class tabs {
NONE,
SELF,
WEAPONS,
TELEPORT,
MOBILE,
VEHICLE,
HANDLING,
HANDLING_SEARCH,
HANDLING_SAVED_PROFILE,
HANDLING_MY_PROFILES,
HANDLING_CURRENT_PROFILE,
LSC,
SPAWN_VEHICLE,
PV,
PERSIST_CAR,
FUN_VEHICLE,
WORLD,
SPAWN_PED,
TIME_AND_WEATHER,
CREATOR,
TRAIN,
WATER,
BLACKHOLE,
MODEL_SWAPPER,
NEARBY,
NETWORK,
SESSION,
MISSIONS,
SPOOFING,
PLAYER_DATABASE,
SESSION_BROWSER,
SETTINGS,
STAT_EDITOR,
CONTEXT_MENU_SETTINGS,
ESP_SETTINGS,
GUI_SETTINGS,
HOTKEY_SETTINGS,
REACTION_SETTINGS,
PROTECTION_SETTINGS,
TRANSLATION_SETTINGS,
DEBUG,
PLAYER
};
struct navigation_struct
{
const char name[32] = "";
std::function<void()> func = nullptr;
std::map<tabs, navigation_struct> sub_nav{};
};
class gui_service final
{
std::vector<tabs> current_tab{};
bool switched_view = true;
std::map<tabs, navigation_struct> nav = {
{tabs::SELF, { "Self",view::self, {
{ tabs::WEAPONS, { "Weapons", view::weapons }},
{ tabs::MOBILE, {"Mobile", view::mobile}},
{ tabs::TELEPORT, {"Teleport", view::teleport}},
}}},
{tabs::VEHICLE, { "Vehicle", view::vehicle, {
{ 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 } },
}}},
{ tabs::LSC, { "LS Customs", view::lsc }},
{ tabs::SPAWN_VEHICLE, { "Spawn Vehicle", view::spawn_vehicle }},
{ tabs::PV, { "Personal Vehicle", view::pv }},
{ tabs::PERSIST_CAR, { "Persist Car", view::persist_car }},
{ tabs::FUN_VEHICLE, { "Fun Features", view::fun_vehicle }},
}}},
{ tabs::WORLD, { "World", nullptr, {
{ tabs::SPAWN_PED, { "Spawn Ped", view::spawn_ped }},
{ tabs::TIME_AND_WEATHER, { "Time And Weather", view::time_and_weather }},
{ tabs::CREATOR, { "Creator", view::creator }},
{ tabs::TRAIN, { "Train", view::train }},
{ tabs::WATER, { "Water", view::water }},
{ tabs::BLACKHOLE, { "Blackhole", view::blackhole }},
{ tabs::MODEL_SWAPPER, { "Model Swapper", view::model_swapper }},
{ tabs::NEARBY, { "Nearby", view::nearby }}
}}},
{tabs::NETWORK, { "Network", nullptr, {
{ tabs::SPOOFING, { "Spoofing", view::spoofing }},
{ tabs::SESSION, { "Session", view::session }},
{ tabs::MISSIONS, { "Missions", view::missions }},
{ tabs::PLAYER_DATABASE, { "Player Database", view::player_database }},
{ tabs::SESSION_BROWSER, { "Session Browser", view::session_browser }},
}}},
{tabs::SETTINGS, { "Settings", view::settings, {
{ tabs::STAT_EDITOR, { "Stat Editor", view::stat_editor}},
{ tabs::CONTEXT_MENU_SETTINGS, { "Context Menu", view::context_menu_settings}},
{ tabs::ESP_SETTINGS, { "ESP", view::esp_settings}},
{ tabs::GUI_SETTINGS, { "GUI", view::gui_settings}},
{ tabs::HOTKEY_SETTINGS, { "Hotkeys", view::hotkey_settings }},
{ tabs::REACTION_SETTINGS, { "Reactions", view::reaction_settings}},
{ tabs::PROTECTION_SETTINGS, { "Protection", view::protection_settings}},
{ tabs::TRANSLATION_SETTINGS, { "Translation", view::translation_settings}},
{ tabs::DEBUG, { "Debug", nullptr }},
}}},
{tabs::PLAYER, {"", view::view_player}}
};
public:
gui_service();
virtual ~gui_service();
int nav_ctr = 0;
navigation_struct* get_selected();
std::vector<tabs>& get_selected_tab();
bool has_switched_view();
void set_selected(tabs);
void set_nav_size(int);
void increment_nav_size();
void reset_nav_size();
std::map<tabs, navigation_struct>& get_navigation();
};
inline gui_service* g_gui_service{};
}