feat(world): load ipl's (#1283)
This commit is contained in:
parent
4422655b32
commit
68435ebd6d
62
src/core/data/ipls.hpp
Normal file
62
src/core/data/ipls.hpp
Normal file
File diff suppressed because one or more lines are too long
@ -262,6 +262,12 @@ namespace big
|
||||
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ptfx_effects, show, size)
|
||||
} ptfx_effects{};
|
||||
|
||||
struct ipls
|
||||
{
|
||||
int select = 0;
|
||||
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ipls, select)
|
||||
} ipls{};
|
||||
|
||||
bool clean_player = false;
|
||||
bool force_wanted_level = false;
|
||||
bool free_cam = false;
|
||||
@ -315,7 +321,7 @@ namespace big
|
||||
// do not save below entries
|
||||
bool dance_mode = false;
|
||||
|
||||
NLOHMANN_DEFINE_TYPE_INTRUSIVE(self, ptfx_effects, clean_player, force_wanted_level, free_cam, invisibility, local_visibility, never_wanted, no_ragdoll, noclip, off_radar, super_run, no_collision, unlimited_oxygen, no_water_collision, wanted_level, god_mode, part_water, proof_bullet, proof_fire, proof_collision, proof_melee, proof_explosion, proof_steam, proof_drown, proof_water, proof_mask, mobile_radio, fast_respawn, auto_tp, super_jump, beast_jump, healthregen, healthregenrate, hud, superman, custom_weapon_stop)
|
||||
NLOHMANN_DEFINE_TYPE_INTRUSIVE(self, ipls, ptfx_effects, clean_player, force_wanted_level, free_cam, invisibility, local_visibility, never_wanted, no_ragdoll, noclip, off_radar, super_run, no_collision, unlimited_oxygen, no_water_collision, wanted_level, god_mode, part_water, proof_bullet, proof_fire, proof_collision, proof_melee, proof_explosion, proof_steam, proof_drown, proof_water, proof_mask, mobile_radio, fast_respawn, auto_tp, super_jump, beast_jump, healthregen, healthregenrate, hud, superman, custom_weapon_stop)
|
||||
} self{};
|
||||
|
||||
struct session
|
||||
|
@ -117,7 +117,7 @@ namespace big
|
||||
view::world,
|
||||
{
|
||||
{tabs::SPAWN_PED, {"GUI_TAB_SPAWN_PED", view::spawn_ped}},
|
||||
{tabs::SQUAD_SPAWNER, {"Squad spawner", view::squad_spawner}},
|
||||
{tabs::SQUAD_SPAWNER, {"Squad spawner", view::squad_spawner}},
|
||||
{tabs::CREATOR, {"GUI_TAB_CREATOR", view::creator}},
|
||||
{tabs::TRAIN, {"GUI_TAB_TRAIN", view::train}},
|
||||
{tabs::BLACKHOLE, {"GUI_TAB_BLACKHOLE", view::blackhole}},
|
||||
@ -150,7 +150,7 @@ namespace big
|
||||
{
|
||||
{tabs::CONTEXT_MENU_SETTINGS, {"GUI_TAB_CONTEXT_MENU", view::context_menu_settings}},
|
||||
{tabs::ESP_SETTINGS, {"GUI_TAB_ESP", view::esp_settings}},
|
||||
{tabs::GTA_CACHE_SETTINGS, {"GTA Cache", view::gta_cache}},
|
||||
{tabs::GTA_CACHE_SETTINGS, {"GTA Cache", view::gta_cache}},
|
||||
{tabs::GUI_SETTINGS, {"GUI_TAB_GUI", view::gui_settings}},
|
||||
{tabs::HOTKEY_SETTINGS, {"GUI_TAB_HOTKEYS", view::hotkey_settings}},
|
||||
{tabs::REACTION_SETTINGS, {"GUI_TAB_REACTIONS", view::reaction_settings}},
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include "core/data/ipls.hpp"
|
||||
#include "fiber_pool.hpp"
|
||||
#include "util/globals.hpp"
|
||||
#include "util/mobile.hpp"
|
||||
@ -22,5 +23,56 @@ namespace big
|
||||
components::command_button<"bringpv">();
|
||||
ImGui::SameLine();
|
||||
components::command_button<"pvtp">();
|
||||
|
||||
components::title("GUI_TAB_IPL"_T.data());
|
||||
|
||||
if (ImGui::BeginCombo("IPL_LOCATION"_T.data(), ipls[g.self.ipls.select].friendly_name))
|
||||
{
|
||||
for (int i = 0; i < IM_ARRAYSIZE(ipls); i++)
|
||||
{
|
||||
if (ImGui::Selectable(ipls[i].friendly_name, i == g.self.ipls.select))
|
||||
g.self.ipls.select = i;
|
||||
|
||||
if (i == g.self.ipls.select)
|
||||
ImGui::SetItemDefaultFocus();
|
||||
}
|
||||
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
|
||||
auto selected_ipl = ipls[g.self.ipls.select];
|
||||
if (components::button("LOAD_IPL"_T.data()))
|
||||
{
|
||||
//unload all previous ipls
|
||||
for (auto& ipl : ipls)
|
||||
for (auto& ipl_name : ipl.ipl_names)
|
||||
{
|
||||
if (STREAMING::IS_IPL_ACTIVE(ipl_name))
|
||||
{
|
||||
LOG(INFO) << "unloading existing ipl " << ipl_name;
|
||||
STREAMING::REMOVE_IPL(ipl_name);
|
||||
}
|
||||
}
|
||||
|
||||
//load the new ipl
|
||||
for (auto& ipl_name : selected_ipl.ipl_names)
|
||||
STREAMING::REQUEST_IPL(ipl_name);
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
if (components::button("TP_TO_IPL"_T.data()))
|
||||
{
|
||||
PED::SET_PED_COORDS_KEEP_VEHICLE(self::ped,
|
||||
selected_ipl.location.x,
|
||||
selected_ipl.location.y,
|
||||
selected_ipl.location.z);
|
||||
}
|
||||
|
||||
components::sub_title("IPL_INFOS"_T.data());
|
||||
ImGui::Text(std::vformat("IPL_CNT"_T, std::make_format_args(selected_ipl.ipl_names.size())).data());
|
||||
ImGui::Text(std::vformat("IPL_POSITION"_T,
|
||||
std::make_format_args(selected_ipl.location.x, selected_ipl.location.y, selected_ipl.location.z))
|
||||
.data());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user