refactor!: globals (#717)
* refactor(globals): use macro's for to_json/from_json * refactor(globals): switch from global pointer to global instance
This commit is contained in:
@ -40,10 +40,10 @@ namespace big
|
||||
}
|
||||
}
|
||||
|
||||
dl->AddRectFilled({ (float)*g_pointers->m_resolution_x - 360.f, 10.f + start_pos }, { (float)*g_pointers->m_resolution_x - 10.f, start_pos + 45.f + total_size }, g->window.color);
|
||||
dl->AddRectFilled({ (float)*g_pointers->m_resolution_x - 360.f, 10.f + start_pos }, { (float)*g_pointers->m_resolution_x - 10.f, start_pos + 45.f + total_size }, g.window.color);
|
||||
dl->AddRectFilledMultiColor({ (float)*g_pointers->m_resolution_x - 360.f, 10.f + start_pos }, { (float)*g_pointers->m_resolution_x - 255.f, start_pos + 45.f + total_size }, fadeBegin, fadeEnd, fadeEnd, fadeBegin);
|
||||
|
||||
dl->AddText(g->window.font_sub_title, 22.f, { (float)*g_pointers->m_resolution_x - 350.f, 15.f + start_pos }, textCol, title.c_str());
|
||||
dl->AddText(g.window.font_sub_title, 22.f, { (float)*g_pointers->m_resolution_x - 350.f, 15.f + start_pos }, textCol, title.c_str());
|
||||
int i = 0;
|
||||
for (std::string txt : split_points)
|
||||
{
|
||||
@ -68,8 +68,8 @@ namespace big
|
||||
prev_pos = draw_notification(prev_pos, draw_list, n.title, n.message, g_notification_service->notification_colors.at(n.type));
|
||||
}
|
||||
|
||||
/*ImGui::SetNextWindowSize({ (float)g->window.x * 0.2f, (float)g->window.y });
|
||||
ImGui::SetNextWindowPos({ (float)g->window.x - (float)g->window.x * 0.2f, 0 });
|
||||
/*ImGui::SetNextWindowSize({ (float)g.window.x * 0.2f, (float)g.window.y });
|
||||
ImGui::SetNextWindowPos({ (float)g.window.x - (float)g.window.x * 0.2f, 0 });
|
||||
if (ImGui::Begin("notifications", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoNav | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoBringToFrontOnFocus))
|
||||
{
|
||||
std::vector<notification> notifications = g_notification_service->get();
|
||||
|
@ -8,25 +8,25 @@ namespace big
|
||||
{
|
||||
if (ImGui::BeginTabItem("Logs"))
|
||||
{
|
||||
ImGui::Checkbox("Log Metrics", &g->debug.logs.metric_logs);
|
||||
ImGui::Checkbox("Log Metrics", &g.debug.logs.metric_logs);
|
||||
|
||||
ImGui::Checkbox("Native Script Hooks", &g->debug.logs.script_hook_logs);
|
||||
ImGui::Checkbox("Native Script Hooks", &g.debug.logs.script_hook_logs);
|
||||
|
||||
if (ImGui::TreeNode("Script Event Logging"))
|
||||
{
|
||||
ImGui::Checkbox("Enable Script Event Logging", &g->debug.logs.script_event.logs);
|
||||
ImGui::Checkbox("Enable Script Event Logging", &g.debug.logs.script_event.logs);
|
||||
ImGui::Separator();
|
||||
|
||||
ImGui::Checkbox("Filter by Player", &g->debug.logs.script_event.filter_player);
|
||||
ImGui::Checkbox("Filter by Player", &g.debug.logs.script_event.filter_player);
|
||||
|
||||
if (g->debug.logs.script_event.filter_player)
|
||||
if (g.debug.logs.script_event.filter_player)
|
||||
{
|
||||
ImGui::ListBoxHeader("##filter_player");
|
||||
for (const auto& [_, player] : g_player_service->players())
|
||||
{
|
||||
if (components::selectable(player->get_name(), g->debug.logs.script_event.player_id == player->id()))
|
||||
if (components::selectable(player->get_name(), g.debug.logs.script_event.player_id == player->id()))
|
||||
{
|
||||
g->debug.logs.script_event.player_id = player->id();
|
||||
g.debug.logs.script_event.player_id = player->id();
|
||||
}
|
||||
}
|
||||
ImGui::EndListBox();
|
||||
|
@ -22,7 +22,7 @@ namespace big
|
||||
!plyr->get_ped() ||
|
||||
!plyr->get_ped()->m_navigation)
|
||||
return;
|
||||
if (g->esp.hide_self && plyr->is_valid() && plyr->id() == g_player_service->get_self()->id())
|
||||
if (g.esp.hide_self && plyr->is_valid() && plyr->id() == g_player_service->get_self()->id())
|
||||
return;
|
||||
|
||||
auto& player_pos = *plyr->get_ped()->m_navigation->get_position();
|
||||
@ -30,9 +30,9 @@ namespace big
|
||||
float screen_x, screen_y;
|
||||
|
||||
const float distance = math::calculate_distance_from_game_cam(player_pos);
|
||||
const float multplr = distance > g->esp.global_render_distance[1] ? -1.f : 6.17757f / distance;
|
||||
const float multplr = distance > g.esp.global_render_distance[1] ? -1.f : 6.17757f / distance;
|
||||
|
||||
if (multplr == -1.f || g->esp.global_render_distance[0] > distance) return;
|
||||
if (multplr == -1.f || g.esp.global_render_distance[0] > distance) return;
|
||||
|
||||
uint32_t ped_damage_bits = plyr->get_ped()->m_damage_bits;
|
||||
|
||||
@ -43,34 +43,34 @@ namespace big
|
||||
|
||||
std::string name_str;
|
||||
ImVec2 name_pos = { esp_x - (62.5f * multplr), esp_y - (175.f * multplr) - 20.f };
|
||||
ImU32 esp_color = g->esp.default_color;
|
||||
ImU32 esp_color = g.esp.default_color;
|
||||
|
||||
if (plyr->is_friend())
|
||||
{
|
||||
esp_color = g->esp.friend_color;
|
||||
esp_color = g.esp.friend_color;
|
||||
}
|
||||
else if (g->esp.change_esp_color_from_dist) {
|
||||
if (distance <= g->esp.distance_threshold[0])
|
||||
esp_color = g->esp.enemy_color;
|
||||
else if (distance >= g->esp.distance_threshold[0] && distance < g->esp.distance_threshold[1])
|
||||
esp_color = g->esp.enemy_near_color;
|
||||
else if (g.esp.change_esp_color_from_dist) {
|
||||
if (distance <= g.esp.distance_threshold[0])
|
||||
esp_color = g.esp.enemy_color;
|
||||
else if (distance >= g.esp.distance_threshold[0] && distance < g.esp.distance_threshold[1])
|
||||
esp_color = g.esp.enemy_near_color;
|
||||
}
|
||||
|
||||
const auto armor_perc = plyr->get_ped()->m_armor / 50.f;
|
||||
const auto health_perc = plyr->get_ped()->m_health / (plyr->get_ped()->m_maxhealth + 0.001f);
|
||||
|
||||
if (distance < g->esp.tracer_render_distance[1] && distance > g->esp.tracer_render_distance[0] && g->esp.tracer)
|
||||
draw_list->AddLine({ (float)*g_pointers->m_resolution_x * g->esp.tracer_draw_position[0], (float)*g_pointers->m_resolution_y * g->esp.tracer_draw_position[1] }, { esp_x, esp_y }, esp_color);
|
||||
if (distance < g.esp.tracer_render_distance[1] && distance > g.esp.tracer_render_distance[0] && g.esp.tracer)
|
||||
draw_list->AddLine({ (float)*g_pointers->m_resolution_x * g.esp.tracer_draw_position[0], (float)*g_pointers->m_resolution_y * g.esp.tracer_draw_position[1] }, { esp_x, esp_y }, esp_color);
|
||||
|
||||
if (distance < g->esp.box_render_distance[1] && distance > g->esp.box_render_distance[0] && g->esp.box)
|
||||
if (distance < g.esp.box_render_distance[1] && distance > g.esp.box_render_distance[0] && g.esp.box)
|
||||
draw_list->AddRect({ esp_x - (62.5f * multplr), esp_y - (175.f * multplr) }, { esp_x - (62.5f * multplr) + (125.f * multplr), esp_y - (175.f * multplr) + (350.f * multplr) }, esp_color);
|
||||
|
||||
if (g->esp.name)
|
||||
if (g.esp.name)
|
||||
name_str = plyr->get_name();
|
||||
|
||||
if (g->esp.distance)
|
||||
if (g.esp.distance)
|
||||
{
|
||||
if (g->esp.name)
|
||||
if (g.esp.name)
|
||||
name_str += " | ";
|
||||
name_str += std::to_string((int)distance);
|
||||
name_str += "m";
|
||||
@ -78,7 +78,7 @@ namespace big
|
||||
|
||||
draw_list->AddText(name_pos, esp_color, name_str.c_str());
|
||||
|
||||
if (g->esp.god) {
|
||||
if (g.esp.god) {
|
||||
std::string mode_str = "";
|
||||
|
||||
if (ped_damage_bits & (uint32_t)eEntityProofs::GOD)
|
||||
@ -105,8 +105,8 @@ namespace big
|
||||
|
||||
if (!(ped_damage_bits & (uint32_t)eEntityProofs::GOD))
|
||||
{
|
||||
if (g->esp.health) {
|
||||
if (g->esp.scale_health_from_dist) {
|
||||
if (g.esp.health) {
|
||||
if (g.esp.scale_health_from_dist) {
|
||||
draw_list->AddLine({ esp_x - (62.5f * multplr), esp_y + (175.f * multplr) + 5.f }, { esp_x - (62.5f * multplr) + (125.f * multplr), esp_y + (175.f * multplr) + 5.f }, health_perc == 0.f ? death_bg : health_perc < 0.25f ? health_red_bg : health_perc < 0.65f ? health_yellow_bg : health_green_bg, 4);
|
||||
draw_list->AddLine({ esp_x - (62.5f * multplr), esp_y + (175.f * multplr) + 5.f }, { esp_x - (62.5f * multplr) + (125.f * multplr) * health_perc, esp_y + (175.f * multplr) + 5.f }, health_perc < 0.25f ? health_red : health_perc < 0.65f ? health_yellow : health_green, 4);
|
||||
}
|
||||
@ -115,10 +115,10 @@ namespace big
|
||||
draw_list->AddLine({ esp_x - (62.5f * multplr), esp_y + (175.f * multplr) + 5.f }, { esp_x - (62.5f * multplr) + (100.f * health_perc), esp_y + (175.f * multplr) + 5.f }, health_perc < 0.25f ? health_red : health_perc < 0.65f ? health_yellow : health_green, 4);
|
||||
}
|
||||
}
|
||||
if (g->esp.armor && plyr->get_ped()->m_armor > 0) {
|
||||
if (g.esp.armor && plyr->get_ped()->m_armor > 0) {
|
||||
float offset = 5.f;
|
||||
offset = g->esp.health ? 10.f : 5.f;
|
||||
if (g->esp.scale_armor_from_dist) {
|
||||
offset = g.esp.health ? 10.f : 5.f;
|
||||
if (g.esp.scale_armor_from_dist) {
|
||||
draw_list->AddLine({ esp_x - (62.5f * multplr), esp_y + (175.f * multplr) + offset }, { esp_x - (62.5f * multplr) + (125.f * multplr), esp_y + (175.f * multplr) + offset }, armor_blue_bg, 4);
|
||||
draw_list->AddLine({ esp_x - (62.5f * multplr), esp_y + (175.f * multplr) + offset }, { esp_x - (62.5f * multplr) + (125.f * multplr) * armor_perc, esp_y + (175.f * multplr) + offset }, armor_blue, 4);
|
||||
}
|
||||
@ -132,7 +132,7 @@ namespace big
|
||||
}
|
||||
|
||||
void esp::draw() {
|
||||
if (!g->esp.enabled) return;
|
||||
if (!g.esp.enabled) return;
|
||||
|
||||
if (const auto draw_list = ImGui::GetBackgroundDrawList(); draw_list)
|
||||
{
|
||||
|
@ -70,53 +70,53 @@ namespace big
|
||||
ImGui::EndListBox();
|
||||
}
|
||||
|
||||
ImGui::Checkbox("Join in SCTV slots", &g->session.join_in_sctv_slots);
|
||||
ImGui::Checkbox("Join in SCTV slots", &g.session.join_in_sctv_slots);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Allows you to join full and solo sessions but can be detected by other modders");
|
||||
|
||||
components::sub_title("Player Magnet");
|
||||
ImGui::Checkbox("Enabled", &g->session.player_magnet_enabled);
|
||||
if (g->session.player_magnet_enabled)
|
||||
ImGui::Checkbox("Enabled", &g.session.player_magnet_enabled);
|
||||
if (g.session.player_magnet_enabled)
|
||||
{
|
||||
ImGui::InputInt("Player Count", &g->session.player_magnet_count);
|
||||
ImGui::InputInt("Player Count", &g.session.player_magnet_count);
|
||||
}
|
||||
|
||||
components::sub_title("Chat");
|
||||
ImGui::Checkbox("Auto-kick Chat Spammers", &g->session.kick_chat_spammers);
|
||||
ImGui::Checkbox("Disable Filter", &g->session.disable_chat_filter);
|
||||
ImGui::Checkbox("Log Chat Messages", &g->session.log_chat_messages);
|
||||
ImGui::Checkbox("Log Text Messages", &g->session.log_text_messages);
|
||||
ImGui::Checkbox("Auto-kick Chat Spammers", &g.session.kick_chat_spammers);
|
||||
ImGui::Checkbox("Disable Filter", &g.session.disable_chat_filter);
|
||||
ImGui::Checkbox("Log Chat Messages", &g.session.log_chat_messages);
|
||||
ImGui::Checkbox("Log Text Messages", &g.session.log_text_messages);
|
||||
static char msg[256];
|
||||
ImGui::InputText("##message", msg, sizeof(msg));
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Is Team", &g->session.is_team);
|
||||
ImGui::Checkbox("Is Team", &g.session.is_team);
|
||||
ImGui::SameLine();
|
||||
components::button("Send", []
|
||||
{
|
||||
if(const auto net_game_player = gta_util::get_network_player_mgr()->m_local_net_player; net_game_player)
|
||||
{
|
||||
if(g_pointers->m_send_chat_message(*g_pointers->m_send_chat_ptr, net_game_player->get_net_data(), msg, g->session.is_team))
|
||||
notify::draw_chat(msg, net_game_player->get_name(), g->session.is_team);
|
||||
if(g_pointers->m_send_chat_message(*g_pointers->m_send_chat_ptr, net_game_player->get_net_data(), msg, g.session.is_team))
|
||||
notify::draw_chat(msg, net_game_player->get_name(), g.session.is_team);
|
||||
}
|
||||
});
|
||||
|
||||
components::sub_title("Decloak");
|
||||
components::script_patch_checkbox("Reveal OTR Players", &g->session.decloak_players);
|
||||
components::script_patch_checkbox("Reveal OTR Players", &g.session.decloak_players);
|
||||
|
||||
components::sub_title("Force Host");
|
||||
ImGui::Checkbox("Force Session Host", &g->session.force_session_host);
|
||||
ImGui::Checkbox("Force Session Host", &g.session.force_session_host);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Join another session to apply changes. The original host of the session must leave or be kicked. This feature is easily detectable by other mod menus, use with caution");
|
||||
ImGui::SameLine();
|
||||
if (g->session.force_session_host)
|
||||
if (g.session.force_session_host)
|
||||
{
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Kick Host During Join", &g->session.kick_host_when_forcing_host);
|
||||
ImGui::Checkbox("Kick Host During Join", &g.session.kick_host_when_forcing_host);
|
||||
}
|
||||
|
||||
if (ImGui::Checkbox("Force Script Host", &g->session.force_script_host))
|
||||
if (ImGui::Checkbox("Force Script Host", &g.session.force_script_host))
|
||||
{
|
||||
if (g->session.force_script_host)
|
||||
if (g.session.force_script_host)
|
||||
g_fiber_pool->queue_job([]
|
||||
{
|
||||
scripts::force_host(RAGE_JOAAT("freemode"));
|
||||
@ -126,40 +126,40 @@ namespace big
|
||||
}
|
||||
|
||||
components::sub_title("Remote Name Spoofing");
|
||||
ImGui::Checkbox("Spoof Other Players' Names", &g->session.name_spoof_enabled);
|
||||
ImGui::Checkbox("Spoof Other Players' Names", &g.session.name_spoof_enabled);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Requires session host. Spoofed names will not visible locally nor to the player that had their name spoofed. Requires players to join after becoming host");
|
||||
|
||||
if (g->session.name_spoof_enabled)
|
||||
if (g.session.name_spoof_enabled)
|
||||
{
|
||||
ImGui::Checkbox("Advertise YimMenu", &g->session.advertise_menu);
|
||||
ImGui::Checkbox("Advertise YimMenu", &g.session.advertise_menu);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Advertise YimMenu by spoofing player names to differently colored variants of 'YimMenu'. You will not be able to customize the name with this option enabled");
|
||||
|
||||
if (!g->session.advertise_menu)
|
||||
if (!g.session.advertise_menu)
|
||||
{
|
||||
constexpr size_t name_size = RTL_FIELD_SIZE(rage::rlGamerInfo, m_name);
|
||||
static char name[name_size];
|
||||
strcpy_s(name, sizeof(name), g->session.spoofed_name.c_str());
|
||||
strcpy_s(name, sizeof(name), g.session.spoofed_name.c_str());
|
||||
|
||||
ImGui::Text("Name: ");
|
||||
ImGui::InputText("##username_input", name, sizeof(name));
|
||||
|
||||
if (name != g->session.spoofed_name)
|
||||
g->session.spoofed_name = std::string(name);
|
||||
if (name != g.session.spoofed_name)
|
||||
g.session.spoofed_name = std::string(name);
|
||||
}
|
||||
}
|
||||
|
||||
components::sub_title("All Players");
|
||||
ImGui::Checkbox("Off The Radar", &g->session.off_radar_all);
|
||||
ImGui::Checkbox("Off The Radar", &g.session.off_radar_all);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Never Wanted", &g->session.never_wanted_all);
|
||||
ImGui::Checkbox("Never Wanted", &g.session.never_wanted_all);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Semi Godmode", &g->session.semi_godmode_all);
|
||||
ImGui::Checkbox("Semi Godmode", &g.session.semi_godmode_all);
|
||||
|
||||
ImGui::Checkbox("Explosion Karma", &g->session.explosion_karma);
|
||||
ImGui::Checkbox("Explosion Karma", &g.session.explosion_karma);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Damage Karma", &g->session.damage_karma);
|
||||
ImGui::Checkbox("Damage Karma", &g.session.damage_karma);
|
||||
|
||||
static int global_wanted_level = 0;
|
||||
|
||||
@ -169,7 +169,7 @@ namespace big
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Checkbox("Force", &g->session.wanted_level_all))
|
||||
if (ImGui::Checkbox("Force", &g.session.wanted_level_all))
|
||||
{
|
||||
*scr_globals::globalplayer_bd.at(self::id, scr_globals::size::globalplayer_bd).at(212).as<Player*>() = __rdtsc() + 32;
|
||||
*scr_globals::globalplayer_bd.at(self::id, scr_globals::size::globalplayer_bd).at(213).as<int*>() = global_wanted_level;
|
||||
@ -197,16 +197,16 @@ namespace big
|
||||
|
||||
components::small_text("Teleports");
|
||||
|
||||
if (ImGui::BeginCombo("##apartment", apartment_names[g->session.send_to_apartment_idx]))
|
||||
if (ImGui::BeginCombo("##apartment", apartment_names[g.session.send_to_apartment_idx]))
|
||||
{
|
||||
for (int i = 1; i < apartment_names.size(); i++)
|
||||
{
|
||||
if (ImGui::Selectable(apartment_names[i], i == g->session.send_to_apartment_idx))
|
||||
if (ImGui::Selectable(apartment_names[i], i == g.session.send_to_apartment_idx))
|
||||
{
|
||||
g->session.send_to_apartment_idx = i;
|
||||
g.session.send_to_apartment_idx = i;
|
||||
}
|
||||
|
||||
if (i == g->session.send_to_apartment_idx)
|
||||
if (i == g.session.send_to_apartment_idx)
|
||||
{
|
||||
ImGui::SetItemDefaultFocus();
|
||||
}
|
||||
@ -217,18 +217,18 @@ namespace big
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
components::button("TP All To Apartment", [] { g_player_service->iterate([](auto& plyr) { toxic::send_player_to_apartment(plyr.second, g->session.send_to_apartment_idx); }); });
|
||||
components::button("TP All To Apartment", [] { g_player_service->iterate([](auto& plyr) { toxic::send_player_to_apartment(plyr.second, g.session.send_to_apartment_idx); }); });
|
||||
|
||||
if (ImGui::BeginCombo("##warehouse", warehouse_names[g->session.send_to_warehouse_idx]))
|
||||
if (ImGui::BeginCombo("##warehouse", warehouse_names[g.session.send_to_warehouse_idx]))
|
||||
{
|
||||
for (int i = 1; i < warehouse_names.size(); i++)
|
||||
{
|
||||
if (ImGui::Selectable(warehouse_names[i], i == g->session.send_to_warehouse_idx))
|
||||
if (ImGui::Selectable(warehouse_names[i], i == g.session.send_to_warehouse_idx))
|
||||
{
|
||||
g->session.send_to_warehouse_idx = i;
|
||||
g.session.send_to_warehouse_idx = i;
|
||||
}
|
||||
|
||||
if (i == g->session.send_to_warehouse_idx)
|
||||
if (i == g.session.send_to_warehouse_idx)
|
||||
{
|
||||
ImGui::SetItemDefaultFocus();
|
||||
}
|
||||
@ -239,7 +239,7 @@ namespace big
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
components::button("TP All To Warehouse", [] { g_player_service->iterate([](auto& plyr) { toxic::send_player_to_warehouse(plyr.second, g->session.send_to_warehouse_idx); }); });
|
||||
components::button("TP All To Warehouse", [] { g_player_service->iterate([](auto& plyr) { toxic::send_player_to_warehouse(plyr.second, g.session.send_to_warehouse_idx); }); });
|
||||
|
||||
components::button("TP All To Darts", [] { g_player_service->iterate([](auto& plyr) { toxic::start_activity(plyr.second, eActivityType::Darts); }); });
|
||||
ImGui::SameLine();
|
||||
@ -313,17 +313,17 @@ namespace big
|
||||
components::button("Camhedz", [] { scripts::start_launcher_script(218); });
|
||||
ImGui::EndGroup();
|
||||
|
||||
ImGui::Checkbox("Disable Pedestrians", &g->session.disable_peds);
|
||||
ImGui::Checkbox("Disable Pedestrians", &g.session.disable_peds);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Disable Traffic", &g->session.disable_traffic);
|
||||
ImGui::Checkbox("Disable Traffic", &g.session.disable_traffic);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Force Thunder", &g->session.force_thunder);
|
||||
ImGui::Checkbox("Force Thunder", &g.session.force_thunder);
|
||||
|
||||
components::sub_title("Script Host Features");
|
||||
ImGui::Checkbox("Disable CEO Money", &g->session.block_ceo_money);
|
||||
ImGui::Checkbox("Disable CEO Money", &g.session.block_ceo_money);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Blocks CEO money drops across the entire session. This can also break other stuff, use with caution");
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Randomize CEO Colors", &g->session.randomize_ceo_colors);
|
||||
ImGui::Checkbox("Randomize CEO Colors", &g.session.randomize_ceo_colors);
|
||||
}
|
||||
}
|
||||
|
@ -87,22 +87,22 @@ namespace big
|
||||
|
||||
if (ImGui::TreeNode("Filters"))
|
||||
{
|
||||
ImGui::Checkbox("Region", &g->session_browser.region_filter_enabled);
|
||||
ImGui::Checkbox("Region", &g.session_browser.region_filter_enabled);
|
||||
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("It is highly recommended to keep this filter enabled");
|
||||
|
||||
if (g->session_browser.region_filter_enabled)
|
||||
if (g.session_browser.region_filter_enabled)
|
||||
{
|
||||
ImGui::SameLine();
|
||||
|
||||
if (ImGui::BeginCombo("###region_select", regions[g->session_browser.region_filter].name))
|
||||
if (ImGui::BeginCombo("###region_select", regions[g.session_browser.region_filter].name))
|
||||
{
|
||||
for (const auto& region : regions)
|
||||
{
|
||||
if (ImGui::Selectable(region.name, g->session_browser.region_filter == region.id))
|
||||
if (ImGui::Selectable(region.name, g.session_browser.region_filter == region.id))
|
||||
{
|
||||
g->session_browser.region_filter = region.id;
|
||||
g.session_browser.region_filter = region.id;
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
@ -110,34 +110,34 @@ namespace big
|
||||
|
||||
}
|
||||
|
||||
ImGui::Checkbox("Language", &g->session_browser.language_filter_enabled);
|
||||
ImGui::Checkbox("Language", &g.session_browser.language_filter_enabled);
|
||||
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Setting a correct region filter for the language will help tremendously");
|
||||
|
||||
if (g->session_browser.language_filter_enabled)
|
||||
if (g.session_browser.language_filter_enabled)
|
||||
{
|
||||
ImGui::SameLine();
|
||||
|
||||
if (ImGui::BeginCombo("###language_select", languages[g->session_browser.language_filter].name))
|
||||
if (ImGui::BeginCombo("###language_select", languages[g.session_browser.language_filter].name))
|
||||
{
|
||||
for (const auto& language : languages)
|
||||
{
|
||||
if (ImGui::Selectable(language.name, g->session_browser.language_filter == language.id))
|
||||
if (ImGui::Selectable(language.name, g.session_browser.language_filter == language.id))
|
||||
{
|
||||
g->session_browser.language_filter = language.id;
|
||||
g.session_browser.language_filter = language.id;
|
||||
};
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
}
|
||||
|
||||
ImGui::Checkbox("Players", &g->session_browser.player_count_filter_enabled);
|
||||
ImGui::Checkbox("Players", &g.session_browser.player_count_filter_enabled);
|
||||
|
||||
if (g->session_browser.player_count_filter_enabled)
|
||||
if (g.session_browser.player_count_filter_enabled)
|
||||
{
|
||||
ImGui::InputInt("Minimum", &g->session_browser.player_count_filter_minimum);
|
||||
ImGui::InputInt("Maximum", &g->session_browser.player_count_filter_maximum);
|
||||
ImGui::InputInt("Minimum", &g.session_browser.player_count_filter_minimum);
|
||||
ImGui::InputInt("Maximum", &g.session_browser.player_count_filter_maximum);
|
||||
}
|
||||
|
||||
ImGui::TreePop();
|
||||
@ -145,13 +145,13 @@ namespace big
|
||||
|
||||
if (ImGui::TreeNode("Sorting"))
|
||||
{
|
||||
ImGui::Combo("Sort By", &g->session_browser.sort_method, "Off\0Player Count");
|
||||
if (g->session_browser.sort_method != 0)
|
||||
ImGui::Combo("Direction", &g->session_browser.sort_direction, "Ascending\0Descending");
|
||||
ImGui::Combo("Sort By", &g.session_browser.sort_method, "Off\0Player Count");
|
||||
if (g.session_browser.sort_method != 0)
|
||||
ImGui::Combo("Direction", &g.session_browser.sort_direction, "Ascending\0Descending");
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
if (ImGui::Checkbox("Replace Game Matchmaking", &g->session_browser.replace_game_matchmaking));
|
||||
if (ImGui::Checkbox("Replace Game Matchmaking", &g.session_browser.replace_game_matchmaking));
|
||||
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("This will replace the default game matchmaking with a custom one that will use the filters and sorting set here");
|
||||
|
@ -17,17 +17,17 @@ namespace big
|
||||
PAD::DISABLE_ALL_CONTROL_ACTIONS(0);
|
||||
});
|
||||
|
||||
ImGui::Checkbox("Spoof Username", &g->spoofing.spoof_username);
|
||||
ImGui::Checkbox("Spoof Username", &g.spoofing.spoof_username);
|
||||
|
||||
constexpr size_t name_size = RTL_FIELD_SIZE(rage::rlGamerInfo, m_name);
|
||||
static char name[name_size];
|
||||
strcpy_s(name, sizeof(name), g->spoofing.username.c_str());
|
||||
strcpy_s(name, sizeof(name), g.spoofing.username.c_str());
|
||||
|
||||
ImGui::Text("Username:");
|
||||
ImGui::InputText("##username_input", name, sizeof(name));
|
||||
|
||||
if (name != g->spoofing.username)
|
||||
g->spoofing.username = std::string(name);
|
||||
if (name != g.spoofing.username)
|
||||
g.spoofing.username = std::string(name);
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
@ -37,10 +37,10 @@ namespace big
|
||||
PAD::DISABLE_ALL_CONTROL_ACTIONS(0);
|
||||
});
|
||||
|
||||
ImGui::Checkbox("Spoof IP", &g->spoofing.spoof_ip);
|
||||
ImGui::Checkbox("Spoof IP", &g.spoofing.spoof_ip);
|
||||
|
||||
ImGui::Text("IP Address:");
|
||||
ImGui::DragInt4("##ip_fields", g->spoofing.ip_address, 0, 255);
|
||||
ImGui::DragInt4("##ip_fields", g.spoofing.ip_address.data(), 0, 255);
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
@ -50,14 +50,14 @@ namespace big
|
||||
PAD::DISABLE_ALL_CONTROL_ACTIONS(0);
|
||||
});
|
||||
|
||||
ImGui::Checkbox("Spoof Rockstar ID", &g->spoofing.spoof_rockstar_id);
|
||||
ImGui::Checkbox("Spoof Rockstar ID", &g.spoofing.spoof_rockstar_id);
|
||||
|
||||
ImGui::Text("Rockstar ID:");
|
||||
ImGui::InputScalar("##rockstar_id_input", ImGuiDataType_U64, &g->spoofing.rockstar_id);
|
||||
ImGui::InputScalar("##rockstar_id_input", ImGuiDataType_U64, &g.spoofing.rockstar_id);
|
||||
|
||||
components::sub_title("Hide Features");
|
||||
ImGui::Checkbox("Hide God Mode", &g->spoofing.spoof_hide_god);
|
||||
ImGui::Checkbox("Hide Spectate", &g->spoofing.spoof_hide_spectate);
|
||||
ImGui::Checkbox("Hide God Mode", &g.spoofing.spoof_hide_god);
|
||||
ImGui::Checkbox("Hide Spectate", &g.spoofing.spoof_hide_spectate);
|
||||
|
||||
components::sub_title("Crew");
|
||||
|
||||
@ -65,70 +65,70 @@ namespace big
|
||||
PAD::DISABLE_ALL_CONTROL_ACTIONS(0);
|
||||
});
|
||||
|
||||
ImGui::Checkbox("Spoof Crew", &g->spoofing.spoof_crew_data);
|
||||
ImGui::Checkbox("Spoof Crew", &g.spoofing.spoof_crew_data);
|
||||
|
||||
constexpr size_t crew_tag_size = RTL_FIELD_SIZE(ClanData, m_clan_tag);
|
||||
static char crew_tag[crew_tag_size];
|
||||
strcpy_s(crew_tag, sizeof(crew_tag), g->spoofing.crew_tag.c_str());
|
||||
strcpy_s(crew_tag, sizeof(crew_tag), g.spoofing.crew_tag.c_str());
|
||||
|
||||
ImGui::Text("Crew Tag:");
|
||||
ImGui::InputText("##crew_tag_input", crew_tag, sizeof(crew_tag));
|
||||
|
||||
if (crew_tag != g->spoofing.crew_tag)
|
||||
g->spoofing.crew_tag = std::string(crew_tag);
|
||||
if (crew_tag != g.spoofing.crew_tag)
|
||||
g.spoofing.crew_tag = std::string(crew_tag);
|
||||
|
||||
ImGui::Checkbox("Is Rockstar Crew", &g->spoofing.rockstar_crew);
|
||||
ImGui::Checkbox("Is Rockstar Crew", &g.spoofing.rockstar_crew);
|
||||
|
||||
ImGui::Checkbox("Square Crew Tag", &g->spoofing.square_crew_tag);
|
||||
ImGui::Checkbox("Square Crew Tag", &g.spoofing.square_crew_tag);
|
||||
|
||||
components::sub_title("Extra - Only work when Spoofed RID");
|
||||
|
||||
ImGui::Checkbox("Is Cheater", &g->spoofing.spoof_cheater);
|
||||
ImGui::Checkbox("Is Rockstar Dev", &g->spoofing.spoof_rockstar_dev);
|
||||
ImGui::Checkbox("Is Rockstar QA", &g->spoofing.spoof_rockstar_qa);
|
||||
ImGui::Checkbox("Is Cheater", &g.spoofing.spoof_cheater);
|
||||
ImGui::Checkbox("Is Rockstar Dev", &g.spoofing.spoof_rockstar_dev);
|
||||
ImGui::Checkbox("Is Rockstar QA", &g.spoofing.spoof_rockstar_qa);
|
||||
|
||||
components::sub_title("Session Attributes");
|
||||
components::small_text("Only works when session host");
|
||||
|
||||
ImGui::Checkbox("Region", &g->spoofing.spoof_session_region_type);
|
||||
if (g->spoofing.spoof_session_region_type)
|
||||
ImGui::Checkbox("Region", &g.spoofing.spoof_session_region_type);
|
||||
if (g.spoofing.spoof_session_region_type)
|
||||
{
|
||||
ImGui::SameLine();
|
||||
if (ImGui::BeginCombo("###region_select", regions[g->spoofing.session_region_type].name))
|
||||
if (ImGui::BeginCombo("###region_select", regions[g.spoofing.session_region_type].name))
|
||||
{
|
||||
for (const auto& region : regions)
|
||||
{
|
||||
if (ImGui::Selectable(region.name, g->spoofing.session_region_type == region.id))
|
||||
if (ImGui::Selectable(region.name, g.spoofing.session_region_type == region.id))
|
||||
{
|
||||
g->spoofing.session_region_type = region.id;
|
||||
g.spoofing.session_region_type = region.id;
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
}
|
||||
ImGui::Checkbox("Language", &g->spoofing.spoof_session_language);
|
||||
if (g->spoofing.spoof_session_language)
|
||||
ImGui::Checkbox("Language", &g.spoofing.spoof_session_language);
|
||||
if (g.spoofing.spoof_session_language)
|
||||
{
|
||||
ImGui::SameLine();
|
||||
|
||||
if (ImGui::BeginCombo("###language_select", languages[g->spoofing.session_language].name))
|
||||
if (ImGui::BeginCombo("###language_select", languages[g.spoofing.session_language].name))
|
||||
{
|
||||
for (const auto& language : languages)
|
||||
{
|
||||
if (ImGui::Selectable(language.name, g->spoofing.session_language == language.id))
|
||||
if (ImGui::Selectable(language.name, g.spoofing.session_language == language.id))
|
||||
{
|
||||
g->spoofing.session_language = language.id;
|
||||
g.spoofing.session_language = language.id;
|
||||
};
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
}
|
||||
|
||||
ImGui::Checkbox("Player Count", &g->spoofing.spoof_session_player_count);
|
||||
if (g->spoofing.spoof_session_player_count)
|
||||
ImGui::Checkbox("Player Count", &g.spoofing.spoof_session_player_count);
|
||||
if (g.spoofing.spoof_session_player_count)
|
||||
{
|
||||
ImGui::SameLine();
|
||||
ImGui::InputInt("###player_count", &g->spoofing.session_player_count);
|
||||
ImGui::InputInt("###player_count", &g.spoofing.session_player_count);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -31,16 +31,16 @@ namespace big
|
||||
|
||||
components::small_text("Teleports");
|
||||
|
||||
if (ImGui::BeginCombo("##apartment", apartment_names[g->session.send_to_apartment_idx]))
|
||||
if (ImGui::BeginCombo("##apartment", apartment_names[g.session.send_to_apartment_idx]))
|
||||
{
|
||||
for (int i = 1; i < apartment_names.size(); i++)
|
||||
{
|
||||
if (ImGui::Selectable(apartment_names[i], i == g->session.send_to_apartment_idx))
|
||||
if (ImGui::Selectable(apartment_names[i], i == g.session.send_to_apartment_idx))
|
||||
{
|
||||
g->session.send_to_apartment_idx = i;
|
||||
g.session.send_to_apartment_idx = i;
|
||||
}
|
||||
|
||||
if (i == g->session.send_to_apartment_idx)
|
||||
if (i == g.session.send_to_apartment_idx)
|
||||
{
|
||||
ImGui::SetItemDefaultFocus();
|
||||
}
|
||||
@ -51,18 +51,18 @@ namespace big
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
components::button("TP To Apartment", [] { toxic::send_player_to_apartment(g_player_service->get_selected(), g->session.send_to_apartment_idx); });
|
||||
components::button("TP To Apartment", [] { toxic::send_player_to_apartment(g_player_service->get_selected(), g.session.send_to_apartment_idx); });
|
||||
|
||||
if (ImGui::BeginCombo("##warehouse", warehouse_names[g->session.send_to_warehouse_idx]))
|
||||
if (ImGui::BeginCombo("##warehouse", warehouse_names[g.session.send_to_warehouse_idx]))
|
||||
{
|
||||
for (int i = 1; i < warehouse_names.size(); i++)
|
||||
{
|
||||
if (ImGui::Selectable(warehouse_names[i], i == g->session.send_to_warehouse_idx))
|
||||
if (ImGui::Selectable(warehouse_names[i], i == g.session.send_to_warehouse_idx))
|
||||
{
|
||||
g->session.send_to_warehouse_idx = i;
|
||||
g.session.send_to_warehouse_idx = i;
|
||||
}
|
||||
|
||||
if (i == g->session.send_to_warehouse_idx)
|
||||
if (i == g.session.send_to_warehouse_idx)
|
||||
{
|
||||
ImGui::SetItemDefaultFocus();
|
||||
}
|
||||
@ -73,7 +73,7 @@ namespace big
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
components::button("TP To Warehouse", [] { toxic::send_player_to_warehouse(g_player_service->get_selected(), g->session.send_to_warehouse_idx); });
|
||||
components::button("TP To Warehouse", [] { toxic::send_player_to_warehouse(g_player_service->get_selected(), g.session.send_to_warehouse_idx); });
|
||||
|
||||
components::button("TP To Darts", [] { toxic::start_activity(g_player_service->get_selected(), eActivityType::Darts); });
|
||||
ImGui::SameLine();
|
||||
|
@ -32,7 +32,7 @@ namespace big
|
||||
Vehicle veh = PED::GET_VEHICLE_PED_IS_IN(PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(g_player_service->get_selected()->id()), FALSE);
|
||||
if (veh == 0)
|
||||
{
|
||||
if (g->player.spectating)
|
||||
if (g.player.spectating)
|
||||
g_notification_service->push_warning("Remote Control", "Player not in a vehicle");
|
||||
else
|
||||
g_notification_service->push_warning("Remote Control", "Player not in a vehicle, try spectating the player");
|
||||
@ -40,7 +40,7 @@ namespace big
|
||||
}
|
||||
|
||||
vehicle::remote_control_vehicle(veh);
|
||||
g->player.spectating = false;
|
||||
g.player.spectating = false;
|
||||
});
|
||||
|
||||
ImGui::TreePop();
|
||||
|
@ -7,7 +7,7 @@ namespace big
|
||||
std::string title = std::format("Player Options: {}", g_player_service->get_selected()->get_name());
|
||||
|
||||
ImGui::Text(title.c_str());
|
||||
ImGui::Checkbox("Spectate", &g->player.spectating);
|
||||
ImGui::Checkbox("Spectate", &g.player.spectating);
|
||||
|
||||
if (g_player_service->get_selected()->is_valid())
|
||||
{
|
||||
|
@ -30,7 +30,7 @@ namespace big
|
||||
|
||||
// calculate icons width
|
||||
const auto window = ImGui::GetCurrentWindow();
|
||||
ImGui::PushFont(g->window.font_icon);
|
||||
ImGui::PushFont(g.window.font_icon);
|
||||
const auto icons_size = ImGui::CalcTextSize(player_iconsc, player_icons_end);
|
||||
const ImVec2 icons_pos(window->DC.CursorPos.x + 300.0f - 32.0f - icons_size.x, window->DC.CursorPos.y + 2.0f);
|
||||
const ImRect icons_box(icons_pos, icons_pos + icons_size);
|
||||
@ -48,7 +48,7 @@ namespace big
|
||||
{
|
||||
g_player_service->set_selected(plyr);
|
||||
g_gui_service->set_selected(tabs::PLAYER);
|
||||
g->window.switched_view = true;
|
||||
g.window.switched_view = true;
|
||||
}
|
||||
ImGui::PopID();
|
||||
ImGui::PopStyleVar();
|
||||
@ -60,7 +60,7 @@ namespace big
|
||||
ImGui::PopStyleColor();
|
||||
|
||||
// render icons on top of the player button
|
||||
ImGui::PushFont(g->window.font_icon);
|
||||
ImGui::PushFont(g.window.font_icon);
|
||||
ImGui::RenderTextWrapped(icons_box.Min, player_iconsc, player_icons_end, icons_size.x);
|
||||
ImGui::PopFont();
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ namespace big
|
||||
|
||||
components::sub_title("Lester");
|
||||
|
||||
ImGui::Checkbox("Off Radar", &g->self.off_radar);
|
||||
ImGui::Checkbox("Off Radar", &g.self.off_radar);
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
|
@ -52,36 +52,36 @@ namespace big
|
||||
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("God Mode", &g->self.god_mode);
|
||||
ImGui::Checkbox("Off Radar", &g->self.off_radar);
|
||||
ImGui::Checkbox("Free Cam", &g->self.free_cam);
|
||||
ImGui::Checkbox("Disable Phone", &g->tunables.disable_phone);
|
||||
ImGui::Checkbox("Unlimited Oxygen", &g->self.unlimited_oxygen);
|
||||
ImGui::Checkbox("Fast Respawn", &g->self.fast_respawn);
|
||||
ImGui::Checkbox("God Mode", &g.self.god_mode);
|
||||
ImGui::Checkbox("Off Radar", &g.self.off_radar);
|
||||
ImGui::Checkbox("Free Cam", &g.self.free_cam);
|
||||
ImGui::Checkbox("Disable Phone", &g.tunables.disable_phone);
|
||||
ImGui::Checkbox("Unlimited Oxygen", &g.self.unlimited_oxygen);
|
||||
ImGui::Checkbox("Fast Respawn", &g.self.fast_respawn);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("No Clip", &g->self.noclip);
|
||||
ImGui::Checkbox("No Ragdoll", &g->self.no_ragdoll);
|
||||
ImGui::Checkbox("Super Run", &g->self.super_run);
|
||||
ImGui::Checkbox("No Idle Kick", &g->tunables.no_idle_kick);
|
||||
ImGui::Checkbox("No Water Collision", &g->self.no_water_collision);
|
||||
ImGui::Checkbox("No Clip", &g.self.noclip);
|
||||
ImGui::Checkbox("No Ragdoll", &g.self.no_ragdoll);
|
||||
ImGui::Checkbox("Super Run", &g.self.super_run);
|
||||
ImGui::Checkbox("No Idle Kick", &g.tunables.no_idle_kick);
|
||||
ImGui::Checkbox("No Water Collision", &g.self.no_water_collision);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Invisibility", &g->self.invisibility);
|
||||
if (g->self.invisibility) {
|
||||
ImGui::Checkbox("Locally Visible", &g->self.local_visibility);
|
||||
ImGui::Checkbox("Invisibility", &g.self.invisibility);
|
||||
if (g.self.invisibility) {
|
||||
ImGui::Checkbox("Locally Visible", &g.self.local_visibility);
|
||||
}
|
||||
ImGui::Checkbox("Keep Player Clean", &g->self.clean_player);
|
||||
ImGui::Checkbox("No Collision", &g->self.no_collision);
|
||||
ImGui::Checkbox("Mobile Radio", &g->self.mobile_radio);
|
||||
ImGui::Checkbox("Keep Player Clean", &g.self.clean_player);
|
||||
ImGui::Checkbox("No Collision", &g.self.no_collision);
|
||||
ImGui::Checkbox("Mobile Radio", &g.self.mobile_radio);
|
||||
|
||||
ImGui::Checkbox("Dance Mode", &g->self.dance_mode);
|
||||
ImGui::Checkbox("Dance Mode", &g.self.dance_mode);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Hold Right DPAD or E to enter dance mode");
|
||||
|
||||
@ -93,55 +93,55 @@ namespace big
|
||||
|
||||
if (ImGui::Button("Check all"))
|
||||
{
|
||||
g->self.proof_bullet = true;
|
||||
g->self.proof_fire = true;
|
||||
g->self.proof_collision = true;
|
||||
g->self.proof_melee = true;
|
||||
g->self.proof_explosion = true;
|
||||
g->self.proof_steam = true;
|
||||
g->self.proof_drown = true;
|
||||
g->self.proof_water = true;
|
||||
g.self.proof_bullet = true;
|
||||
g.self.proof_fire = true;
|
||||
g.self.proof_collision = true;
|
||||
g.self.proof_melee = true;
|
||||
g.self.proof_explosion = true;
|
||||
g.self.proof_steam = true;
|
||||
g.self.proof_drown = true;
|
||||
g.self.proof_water = true;
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
if (ImGui::Button("Uncheck all"))
|
||||
{
|
||||
g->self.proof_bullet = false;
|
||||
g->self.proof_fire = false;
|
||||
g->self.proof_collision = false;
|
||||
g->self.proof_melee = false;
|
||||
g->self.proof_explosion = false;
|
||||
g->self.proof_steam = false;
|
||||
g->self.proof_drown = false;
|
||||
g->self.proof_water = false;
|
||||
g.self.proof_bullet = false;
|
||||
g.self.proof_fire = false;
|
||||
g.self.proof_collision = false;
|
||||
g.self.proof_melee = false;
|
||||
g.self.proof_explosion = false;
|
||||
g.self.proof_steam = false;
|
||||
g.self.proof_drown = false;
|
||||
g.self.proof_water = false;
|
||||
}
|
||||
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Bullet", &g->self.proof_bullet);
|
||||
ImGui::Checkbox("Fire", &g->self.proof_fire);
|
||||
ImGui::Checkbox("Bullet", &g.self.proof_bullet);
|
||||
ImGui::Checkbox("Fire", &g.self.proof_fire);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Collision", &g->self.proof_collision);
|
||||
ImGui::Checkbox("Melee", &g->self.proof_melee);
|
||||
ImGui::Checkbox("Collision", &g.self.proof_collision);
|
||||
ImGui::Checkbox("Melee", &g.self.proof_melee);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Explosion", &g->self.proof_explosion);
|
||||
ImGui::Checkbox("Steam", &g->self.proof_steam);
|
||||
ImGui::Checkbox("Explosion", &g.self.proof_explosion);
|
||||
ImGui::Checkbox("Steam", &g.self.proof_steam);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Drown", &g->self.proof_drown);
|
||||
ImGui::Checkbox("Water", &g->self.proof_water);
|
||||
ImGui::Checkbox("Drown", &g.self.proof_drown);
|
||||
ImGui::Checkbox("Water", &g.self.proof_water);
|
||||
|
||||
ImGui::EndGroup();
|
||||
|
||||
@ -149,18 +149,18 @@ namespace big
|
||||
|
||||
components::sub_title("Police");
|
||||
|
||||
ImGui::Checkbox("Never Wanted", &g->self.never_wanted);
|
||||
ImGui::Checkbox("Never Wanted", &g.self.never_wanted);
|
||||
|
||||
if (!g->self.never_wanted)
|
||||
if (!g.self.never_wanted)
|
||||
{
|
||||
ImGui::Checkbox("Force Wanted Level", &g->self.force_wanted_level);
|
||||
ImGui::Checkbox("Force Wanted Level", &g.self.force_wanted_level);
|
||||
ImGui::Text("Wanted Level");
|
||||
if (
|
||||
ImGui::SliderInt("###wanted_level", &g->self.wanted_level, 0, 5) &&
|
||||
!g->self.force_wanted_level &&
|
||||
ImGui::SliderInt("###wanted_level", &g.self.wanted_level, 0, 5) &&
|
||||
!g.self.force_wanted_level &&
|
||||
g_local_player != nullptr
|
||||
) {
|
||||
g_local_player->m_player_info->m_wanted_level = g->self.wanted_level;
|
||||
g_local_player->m_player_info->m_wanted_level = g.self.wanted_level;
|
||||
}
|
||||
}
|
||||
|
||||
@ -170,86 +170,86 @@ namespace big
|
||||
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Hide Radar", &g->self.hide_radar);
|
||||
ImGui::Checkbox("Hide Radar", &g.self.hide_radar);
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::Checkbox("Hide Ammo", &g->self.hide_ammo);
|
||||
ImGui::Checkbox("Hide Ammo", &g.self.hide_ammo);
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::Checkbox("Force show HUD", &g->self.force_show_hud);
|
||||
ImGui::Checkbox("Force show HUD", &g.self.force_show_hud);
|
||||
|
||||
ImGui::Combo("##hud_comp_combo", &g->self.selected_hud_component, hud_component_names, (int)HudComponents::HUD_WEAPONS);
|
||||
ImGui::Combo("##hud_comp_combo", &g.self.selected_hud_component, hud_component_names, (int)HudComponents::HUD_WEAPONS);
|
||||
ImGui::SameLine();
|
||||
components::button("Hide", [] {
|
||||
g->self.hud_components_states[g->self.selected_hud_component] = true;
|
||||
g.self.hud_components_states[g.self.selected_hud_component] = true;
|
||||
});
|
||||
ImGui::SameLine();
|
||||
components::button("Show", [] {
|
||||
g->self.hud_components_states[g->self.selected_hud_component] = false;
|
||||
g.self.hud_components_states[g.self.selected_hud_component] = false;
|
||||
});
|
||||
|
||||
components::button("Hide all", [] {
|
||||
g->self.hide_radar = true;
|
||||
g->self.hide_ammo = true;
|
||||
g.self.hide_radar = true;
|
||||
g.self.hide_ammo = true;
|
||||
for (int i = 0; i < (int)HudComponents::HUD_WEAPONS; i++)
|
||||
{
|
||||
g->self.hud_components_states[i] = true;
|
||||
g.self.hud_components_states[i] = true;
|
||||
}
|
||||
});
|
||||
ImGui::SameLine();
|
||||
components::button("Show all", [] {
|
||||
g->self.hide_radar = false;
|
||||
g->self.hide_ammo = false;
|
||||
g.self.hide_radar = false;
|
||||
g.self.hide_ammo = false;
|
||||
for (int i = 0; i < (int)HudComponents::HUD_WEAPONS; i++)
|
||||
{
|
||||
g->self.hud_components_states[i] = false;
|
||||
g.self.hud_components_states[i] = false;
|
||||
}
|
||||
});
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Force show HUD element", &g->self.force_show_hud_element);
|
||||
ImGui::Checkbox("Force show HUD element", &g.self.force_show_hud_element);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("To force show a HUD specific element, click Hide all then click Show on the desired element.");
|
||||
|
||||
ImGui::EndGroup();
|
||||
|
||||
g->self.proof_mask = 0;
|
||||
if (g->self.god_mode)
|
||||
g.self.proof_mask = 0;
|
||||
if (g.self.god_mode)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::GOD);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::GOD);
|
||||
}
|
||||
if (g->self.proof_bullet)
|
||||
if (g.self.proof_bullet)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::BULLET);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::BULLET);
|
||||
}
|
||||
if (g->self.proof_fire)
|
||||
if (g.self.proof_fire)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::FIRE);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::FIRE);
|
||||
}
|
||||
if (g->self.proof_collision)
|
||||
if (g.self.proof_collision)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::COLLISION);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::COLLISION);
|
||||
}
|
||||
if (g->self.proof_melee)
|
||||
if (g.self.proof_melee)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::MELEE);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::MELEE);
|
||||
}
|
||||
if (g->self.proof_explosion)
|
||||
if (g.self.proof_explosion)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::EXPLOSION);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::EXPLOSION);
|
||||
}
|
||||
if (g->self.proof_steam)
|
||||
if (g.self.proof_steam)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::STEAM);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::STEAM);
|
||||
}
|
||||
if (g->self.proof_drown)
|
||||
if (g.self.proof_drown)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::DROWN);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::DROWN);
|
||||
}
|
||||
if (g->self.proof_water)
|
||||
if (g.self.proof_water)
|
||||
{
|
||||
g->self.proof_mask |= static_cast<int>(eEntityProofs::WATER);
|
||||
g.self.proof_mask |= static_cast<int>(eEntityProofs::WATER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ namespace big
|
||||
teleport::to_objective();
|
||||
});
|
||||
|
||||
ImGui::Checkbox("Auto-Teleport To Waypoint", &g->self.auto_tp);
|
||||
ImGui::Checkbox("Auto-Teleport To Waypoint", &g.self.auto_tp);
|
||||
|
||||
ImGui::Text("Vehicles:");
|
||||
|
||||
|
@ -15,30 +15,30 @@ namespace big
|
||||
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Infinite Ammo", &g->weapons.infinite_ammo);
|
||||
ImGui::Checkbox("Infinite Clip", &g->weapons.infinite_mag);
|
||||
ImGui::Checkbox("Infinite Ammo", &g.weapons.infinite_ammo);
|
||||
ImGui::Checkbox("Infinite Clip", &g.weapons.infinite_mag);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
if (ImGui::Checkbox("Bypass C4 Limit", &g->weapons.bypass_c4_limit))
|
||||
if (ImGui::Checkbox("Bypass C4 Limit", &g.weapons.bypass_c4_limit))
|
||||
{
|
||||
if (g->weapons.bypass_c4_limit)
|
||||
if (g.weapons.bypass_c4_limit)
|
||||
g_pointers->m_bypass_max_count_of_active_sticky_bombs->apply();
|
||||
else
|
||||
g_pointers->m_bypass_max_count_of_active_sticky_bombs->restore();
|
||||
}
|
||||
ImGui::Checkbox("Rapid Fire", &g->weapons.rapid_fire);
|
||||
ImGui::Checkbox("Rapid Fire", &g.weapons.rapid_fire);
|
||||
|
||||
ImGui::EndGroup();
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
ImGui::Checkbox("Enable Special Ammo", &g->weapons.ammo_special.toggle);
|
||||
ImGui::Checkbox("Enable Special Ammo", &g.weapons.ammo_special.toggle);
|
||||
|
||||
eAmmoSpecialType selected_ammo = g->weapons.ammo_special.type;
|
||||
eExplosionTag selected_explosion = g->weapons.ammo_special.explosion_tag;
|
||||
eAmmoSpecialType selected_ammo = g.weapons.ammo_special.type;
|
||||
eExplosionTag selected_explosion = g.weapons.ammo_special.explosion_tag;
|
||||
|
||||
if (ImGui::BeginCombo("Special Ammo", SPECIAL_AMMOS[(int)selected_ammo].name))
|
||||
{
|
||||
@ -46,7 +46,7 @@ namespace big
|
||||
{
|
||||
if (ImGui::Selectable(special_ammo.name, special_ammo.type == selected_ammo))
|
||||
{
|
||||
g->weapons.ammo_special.type = special_ammo.type;
|
||||
g.weapons.ammo_special.type = special_ammo.type;
|
||||
}
|
||||
|
||||
if (special_ammo.type == selected_ammo)
|
||||
@ -64,7 +64,7 @@ namespace big
|
||||
{
|
||||
if (ImGui::Selectable(name, type == selected_explosion))
|
||||
{
|
||||
g->weapons.ammo_special.explosion_tag = type;
|
||||
g.weapons.ammo_special.explosion_tag = type;
|
||||
}
|
||||
|
||||
if (type == selected_explosion)
|
||||
@ -80,15 +80,15 @@ namespace big
|
||||
|
||||
components::sub_title("Misc");
|
||||
|
||||
ImGui::Checkbox("Force Crosshairs", &g->weapons.force_crosshairs);
|
||||
ImGui::Checkbox("Force Crosshairs", &g.weapons.force_crosshairs);
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::Checkbox("No Recoil", &g->weapons.no_recoil);
|
||||
ImGui::Checkbox("No Recoil", &g.weapons.no_recoil);
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::Checkbox("No Spread", &g->weapons.no_spread);
|
||||
ImGui::Checkbox("No Spread", &g.weapons.no_spread);
|
||||
|
||||
components::button("Get All Weapons", []
|
||||
{
|
||||
@ -111,13 +111,13 @@ namespace big
|
||||
}
|
||||
});
|
||||
|
||||
ImGui::SliderFloat("Damage Multiplier", &g->weapons.increased_damage, 1.f, 10.f, "%.1f");
|
||||
ImGui::SliderFloat("Damage Multiplier", &g.weapons.increased_damage, 1.f, 10.f, "%.1f");
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
components::sub_title("Custom Weapons");
|
||||
|
||||
CustomWeapon selected = g->weapons.custom_weapon;
|
||||
CustomWeapon selected = g.weapons.custom_weapon;
|
||||
|
||||
if (ImGui::BeginCombo("Weapon", custom_weapons[(int)selected].name))
|
||||
{
|
||||
@ -125,7 +125,7 @@ namespace big
|
||||
{
|
||||
if (ImGui::Selectable(weapon.name, weapon.id == selected))
|
||||
{
|
||||
g->weapons.custom_weapon = weapon.id;
|
||||
g.weapons.custom_weapon = weapon.id;
|
||||
}
|
||||
|
||||
if (weapon.id == selected)
|
||||
@ -140,11 +140,20 @@ namespace big
|
||||
switch (selected)
|
||||
{
|
||||
case CustomWeapon::VEHICLE_GUN:
|
||||
components::input_text_with_hint(
|
||||
"Shooting Model",
|
||||
"Name of the vehicle model",
|
||||
g->weapons.vehicle_gun_model, sizeof(g->weapons.vehicle_gun_model)
|
||||
);
|
||||
// this some ugly ass looking code
|
||||
static char vehicle_gun[12];
|
||||
std::memcpy(vehicle_gun, g.weapons.vehicle_gun_model.c_str(), 12);
|
||||
if (ImGui::InputTextWithHint("Shooting Model", "Name of the vehicle model", vehicle_gun, sizeof(vehicle_gun)))
|
||||
{
|
||||
g.weapons.vehicle_gun_model = vehicle_gun;
|
||||
}
|
||||
if (ImGui::IsItemActive())
|
||||
{
|
||||
g_fiber_pool->queue_job([]
|
||||
{
|
||||
PAD::DISABLE_ALL_CONTROL_ACTIONS(0);
|
||||
});
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -5,35 +5,35 @@ namespace big
|
||||
{
|
||||
void view::context_menu_settings()
|
||||
{
|
||||
ImGui::Checkbox("Context Menu Enabled", &g->context_menu.enabled);
|
||||
ImGui::Checkbox("Context Menu Enabled", &g.context_menu.enabled);
|
||||
|
||||
if (g->context_menu.enabled)
|
||||
if (g.context_menu.enabled)
|
||||
{
|
||||
ImGui::Text("Allowed Entity Types:");
|
||||
ImGui::CheckboxFlags("Object", reinterpret_cast<int*>(&g->context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::OBJECT));
|
||||
ImGui::CheckboxFlags("Object", reinterpret_cast<int*>(&g.context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::OBJECT));
|
||||
ImGui::SameLine();
|
||||
ImGui::CheckboxFlags("Ped", reinterpret_cast<int*>(&g->context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::PED));
|
||||
ImGui::CheckboxFlags("Ped", reinterpret_cast<int*>(&g.context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::PED));
|
||||
ImGui::SameLine();
|
||||
ImGui::CheckboxFlags("Player", reinterpret_cast<int*>(&g->context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::PLAYER));
|
||||
ImGui::CheckboxFlags("Player", reinterpret_cast<int*>(&g.context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::PLAYER));
|
||||
ImGui::SameLine();
|
||||
ImGui::CheckboxFlags("Vehicle", reinterpret_cast<int*>(&g->context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::VEHICLE));
|
||||
ImGui::CheckboxFlags("Vehicle", reinterpret_cast<int*>(&g.context_menu.allowed_entity_types), static_cast<int>(ContextEntityType::VEHICLE));
|
||||
|
||||
static ImVec4 selected_option_color = ImGui::ColorConvertU32ToFloat4(g->context_menu.selected_option_color);
|
||||
static ImVec4 selected_option_color = ImGui::ColorConvertU32ToFloat4(g.context_menu.selected_option_color);
|
||||
ImGui::Text("Selected Option Color:");
|
||||
if (ImGui::ColorEdit4("###BSelected Option Color##cm_picker", (float*)&selected_option_color, ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_NoSidePreview))
|
||||
{
|
||||
g->context_menu.selected_option_color = ImGui::ColorConvertFloat4ToU32(selected_option_color);
|
||||
g.context_menu.selected_option_color = ImGui::ColorConvertFloat4ToU32(selected_option_color);
|
||||
}
|
||||
|
||||
ImGui::Checkbox("Bounding Box Enabled", &g->context_menu.bounding_box_enabled);
|
||||
ImGui::Checkbox("Bounding Box Enabled", &g.context_menu.bounding_box_enabled);
|
||||
|
||||
if (g->context_menu.bounding_box_enabled)
|
||||
if (g.context_menu.bounding_box_enabled)
|
||||
{
|
||||
static ImVec4 bounding_box_color = ImGui::ColorConvertU32ToFloat4(g->context_menu.bounding_box_color);
|
||||
static ImVec4 bounding_box_color = ImGui::ColorConvertU32ToFloat4(g.context_menu.bounding_box_color);
|
||||
ImGui::Text("Bounding Box Color:");
|
||||
if (ImGui::ColorEdit4("###Bounding Box Color##cm_picker", (float*)&bounding_box_color, ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_NoSidePreview))
|
||||
{
|
||||
g->context_menu.bounding_box_color = ImGui::ColorConvertFloat4ToU32(bounding_box_color);
|
||||
g.context_menu.bounding_box_color = ImGui::ColorConvertFloat4ToU32(bounding_box_color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,76 +4,76 @@ namespace big
|
||||
{
|
||||
void view::esp_settings()
|
||||
{
|
||||
ImGui::Checkbox("ESP Enabled", &g->esp.enabled);
|
||||
ImGui::Checkbox("ESP Enabled", &g.esp.enabled);
|
||||
|
||||
if (g->esp.enabled)
|
||||
if (g.esp.enabled)
|
||||
{
|
||||
ImGui::Checkbox("Hide Self", &g->esp.hide_self);
|
||||
ImGui::Checkbox("Hide Self", &g.esp.hide_self);
|
||||
|
||||
ImGui::Text("Global Render Distance (min, max)");
|
||||
ImGui::SliderFloat2("###Global Render Distance", g->esp.global_render_distance, 0.f, 1500.f);
|
||||
ImGui::SliderFloat2("###Global Render Distance", g.esp.global_render_distance, 0.f, 1500.f);
|
||||
|
||||
ImGui::Checkbox("Tracer", &g->esp.tracer);
|
||||
if (g->esp.tracer) {
|
||||
ImGui::Checkbox("Tracer", &g.esp.tracer);
|
||||
if (g.esp.tracer) {
|
||||
ImGui::Text("Tracer Draw Position (x, y)");
|
||||
ImGui::SliderFloat2("###Draw Position", g->esp.tracer_draw_position, 0.f, 1.f);
|
||||
ImGui::SliderFloat2("###Draw Position", g.esp.tracer_draw_position, 0.f, 1.f);
|
||||
ImGui::Text("Tracer Render Distance (min, max)");
|
||||
ImGui::SliderFloat2("###Tracer Render Distance", g->esp.tracer_render_distance, g->esp.global_render_distance[0], g->esp.global_render_distance[1]);
|
||||
ImGui::SliderFloat2("###Tracer Render Distance", g.esp.tracer_render_distance, g.esp.global_render_distance[0], g.esp.global_render_distance[1]);
|
||||
}
|
||||
|
||||
ImGui::Checkbox("Box ESP", &g->esp.box);
|
||||
if (g->esp.box) {
|
||||
ImGui::Checkbox("Box ESP", &g.esp.box);
|
||||
if (g.esp.box) {
|
||||
ImGui::Text("Box Render Distance (min, max)");
|
||||
ImGui::SliderFloat2("###Box Render Distance", g->esp.box_render_distance, g->esp.global_render_distance[0], g->esp.global_render_distance[1]);
|
||||
ImGui::SliderFloat2("###Box Render Distance", g.esp.box_render_distance, g.esp.global_render_distance[0], g.esp.global_render_distance[1]);
|
||||
}
|
||||
|
||||
ImGui::Checkbox("Show Player Name", &g->esp.name);
|
||||
ImGui::Checkbox("Show Player Distance", &g->esp.distance);
|
||||
ImGui::Checkbox("Show Player Godmode", &g->esp.god);
|
||||
ImGui::Checkbox("Show Player Health", &g->esp.health);
|
||||
ImGui::Checkbox("Show Player Armor", &g->esp.armor);
|
||||
ImGui::Checkbox("Show Player Name", &g.esp.name);
|
||||
ImGui::Checkbox("Show Player Distance", &g.esp.distance);
|
||||
ImGui::Checkbox("Show Player Godmode", &g.esp.god);
|
||||
ImGui::Checkbox("Show Player Health", &g.esp.health);
|
||||
ImGui::Checkbox("Show Player Armor", &g.esp.armor);
|
||||
|
||||
ImGui::Checkbox("Should ESP Color Change with Distance", &g->esp.change_esp_color_from_dist);
|
||||
if (g->esp.health)
|
||||
ImGui::Checkbox("Should Healthbar Scale with Distance", &g->esp.scale_health_from_dist);
|
||||
ImGui::Checkbox("Should ESP Color Change with Distance", &g.esp.change_esp_color_from_dist);
|
||||
if (g.esp.health)
|
||||
ImGui::Checkbox("Should Healthbar Scale with Distance", &g.esp.scale_health_from_dist);
|
||||
|
||||
if (g->esp.armor)
|
||||
ImGui::Checkbox("Should Armorbar Scale with Distance", &g->esp.scale_armor_from_dist);
|
||||
if (g.esp.armor)
|
||||
ImGui::Checkbox("Should Armorbar Scale with Distance", &g.esp.scale_armor_from_dist);
|
||||
|
||||
static ImVec4 col_enemy = ImGui::ColorConvertU32ToFloat4(g->esp.enemy_color);
|
||||
static ImVec4 col_enemy_near = ImGui::ColorConvertU32ToFloat4(g->esp.enemy_near_color);
|
||||
static ImVec4 col_default = ImGui::ColorConvertU32ToFloat4(g->esp.default_color);
|
||||
static ImVec4 col_friend = ImGui::ColorConvertU32ToFloat4(g->esp.friend_color);
|
||||
static ImVec4 col_enemy = ImGui::ColorConvertU32ToFloat4(g.esp.enemy_color);
|
||||
static ImVec4 col_enemy_near = ImGui::ColorConvertU32ToFloat4(g.esp.enemy_near_color);
|
||||
static ImVec4 col_default = ImGui::ColorConvertU32ToFloat4(g.esp.default_color);
|
||||
static ImVec4 col_friend = ImGui::ColorConvertU32ToFloat4(g.esp.friend_color);
|
||||
|
||||
ImGui::Text("Distance threshold (min, max)");
|
||||
ImGui::SliderFloat2("###Distance threshold", g->esp.distance_threshold, g->esp.global_render_distance[0], g->esp.global_render_distance[1]);
|
||||
ImGui::SliderFloat2("###Distance threshold", g.esp.distance_threshold, g.esp.global_render_distance[0], g.esp.global_render_distance[1]);
|
||||
|
||||
if (ImGui::TreeNode("ESP Colors (RGBA)"))
|
||||
{
|
||||
if (g->esp.change_esp_color_from_dist) {
|
||||
if (g.esp.change_esp_color_from_dist) {
|
||||
ImGui::Text("Enemy Close Color:");
|
||||
if (ImGui::ColorEdit4("###Enemy ESP Color##esp_picker", (float*)&col_enemy, ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_NoSidePreview))
|
||||
{
|
||||
g->esp.enemy_color = ImGui::ColorConvertFloat4ToU32(col_enemy);
|
||||
g.esp.enemy_color = ImGui::ColorConvertFloat4ToU32(col_enemy);
|
||||
}
|
||||
|
||||
ImGui::Text("Enemy Near Color:");
|
||||
if (ImGui::ColorEdit4("###Enemy Near ESP Color##esp_picker", (float*)&col_enemy_near, ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_NoSidePreview))
|
||||
{
|
||||
g->esp.enemy_near_color = ImGui::ColorConvertFloat4ToU32(col_enemy_near);
|
||||
g.esp.enemy_near_color = ImGui::ColorConvertFloat4ToU32(col_enemy_near);
|
||||
}
|
||||
}
|
||||
|
||||
ImGui::Text("Default Color:");
|
||||
if (ImGui::ColorEdit4("###Default ESP Color##esp_picker", (float*)&col_default, ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_NoSidePreview))
|
||||
{
|
||||
g->esp.default_color = ImGui::ColorConvertFloat4ToU32(col_default);
|
||||
g.esp.default_color = ImGui::ColorConvertFloat4ToU32(col_default);
|
||||
}
|
||||
|
||||
ImGui::Text("Friendly Color:");
|
||||
if (ImGui::ColorEdit4("###Friend ESP Color##friend_picker", (float*)&col_friend, ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_NoSidePreview))
|
||||
{
|
||||
g->esp.friend_color = ImGui::ColorConvertFloat4ToU32(col_friend);
|
||||
g.esp.friend_color = ImGui::ColorConvertFloat4ToU32(col_friend);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,18 +6,18 @@ namespace big
|
||||
void view::gui_settings()
|
||||
{
|
||||
components::sub_title("UI Scale");
|
||||
ImGui::SliderFloat("##gui-scale", &g->window.gui_scale, 1.f, 1.5f, "%.2f");
|
||||
ImGui::SliderFloat("##gui-scale", &g.window.gui_scale, 1.f, 1.5f, "%.2f");
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Apply##gui-scale"))
|
||||
g_renderer->rescale(g->window.gui_scale);
|
||||
g_renderer->rescale(g.window.gui_scale);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Changing the UI scale may break rendering and require you to unload and inject YimMenu again.");
|
||||
|
||||
components::sub_title("Colors");
|
||||
static ImVec4 col_gui = ImGui::ColorConvertU32ToFloat4(g->window.color);
|
||||
static ImVec4 col_gui = ImGui::ColorConvertU32ToFloat4(g.window.color);
|
||||
if (ImGui::ColorEdit4("Gui Color##gui_picker", (float*)&col_gui, ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_NoSidePreview))
|
||||
{
|
||||
g->window.color = ImGui::ColorConvertFloat4ToU32(col_gui);
|
||||
g.window.color = ImGui::ColorConvertFloat4ToU32(col_gui);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace big
|
||||
{
|
||||
void draw_pair_option(const std::string_view name, decltype(g->notifications.gta_thread_kill)& option)
|
||||
void draw_pair_option(const std::string_view name, decltype(g.notifications.gta_thread_kill)& option)
|
||||
{
|
||||
ImGui::Text("%s", name.data());
|
||||
|
||||
@ -16,25 +16,25 @@ namespace big
|
||||
{
|
||||
components::sub_title("GTA Threads");
|
||||
|
||||
draw_pair_option("Terminate", g->notifications.gta_thread_kill);
|
||||
draw_pair_option("Start", g->notifications.gta_thread_start);
|
||||
draw_pair_option("Terminate", g.notifications.gta_thread_kill);
|
||||
draw_pair_option("Start", g.notifications.gta_thread_start);
|
||||
|
||||
components::sub_title("Network Player Manager");
|
||||
|
||||
ImGui::Text("Player Join");
|
||||
|
||||
ImGui::Checkbox("Above Map", &g->notifications.player_join.above_map);
|
||||
ImGui::Checkbox("Log", &g->notifications.player_join.log);
|
||||
ImGui::Checkbox("Notify", &g->notifications.player_join.notify);
|
||||
ImGui::Checkbox("Above Map", &g.notifications.player_join.above_map);
|
||||
ImGui::Checkbox("Log", &g.notifications.player_join.log);
|
||||
ImGui::Checkbox("Notify", &g.notifications.player_join.notify);
|
||||
|
||||
draw_pair_option("Player Leave", g->notifications.player_leave);
|
||||
draw_pair_option("Player Leave", g.notifications.player_leave);
|
||||
|
||||
draw_pair_option("Init", g->notifications.network_player_mgr_init);
|
||||
draw_pair_option("Shutdown", g->notifications.network_player_mgr_shutdown);
|
||||
draw_pair_option("Init", g.notifications.network_player_mgr_init);
|
||||
draw_pair_option("Shutdown", g.notifications.network_player_mgr_shutdown);
|
||||
|
||||
components::sub_title("Received Event");
|
||||
|
||||
auto& received_event = g->notifications.received_event;
|
||||
auto& received_event = g.notifications.received_event;
|
||||
|
||||
ImGui::BeginGroup();
|
||||
draw_pair_option("Clear Ped Tasks", received_event.clear_ped_task);
|
||||
@ -52,7 +52,7 @@ namespace big
|
||||
|
||||
components::sub_title("Script Event Handler");
|
||||
|
||||
auto& script_event_handler = g->notifications.script_event_handler;
|
||||
auto& script_event_handler = g.notifications.script_event_handler;
|
||||
|
||||
ImGui::BeginGroup();
|
||||
draw_pair_option("Bounty", script_event_handler.bounty);
|
||||
@ -100,11 +100,11 @@ namespace big
|
||||
|
||||
components::sub_title("Other");
|
||||
|
||||
draw_pair_option("Reports", g->notifications.reports);
|
||||
draw_pair_option("Transaction Error / Rate Limit", g->notifications.transaction_rate_limit);
|
||||
draw_pair_option("Mismatch sync type", g->notifications.mismatch_sync_type);
|
||||
draw_pair_option("Out of allowed range sync type", g->notifications.out_of_allowed_range_sync_type);
|
||||
draw_pair_option("Invalid sync", g->notifications.invalid_sync);
|
||||
draw_pair_option("Reports", g.notifications.reports);
|
||||
draw_pair_option("Transaction Error / Rate Limit", g.notifications.transaction_rate_limit);
|
||||
draw_pair_option("Mismatch sync type", g.notifications.mismatch_sync_type);
|
||||
draw_pair_option("Out of allowed range sync type", g.notifications.out_of_allowed_range_sync_type);
|
||||
draw_pair_option("Invalid sync", g.notifications.invalid_sync);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,49 +5,49 @@ namespace big
|
||||
void view::protection_settings()
|
||||
{
|
||||
ImGui::BeginGroup();
|
||||
ImGui::Checkbox("Bounty", &g->protections.script_events.bounty);
|
||||
ImGui::Checkbox("CEO Ban", &g->protections.script_events.ceo_ban);
|
||||
ImGui::Checkbox("CEO Kick", &g->protections.script_events.ceo_kick);
|
||||
ImGui::Checkbox("CEO Money", &g->protections.script_events.ceo_money);
|
||||
ImGui::Checkbox("TSE Crash", &g->protections.script_events.crash);
|
||||
ImGui::Checkbox("Fake Deposit", &g->protections.script_events.fake_deposit);
|
||||
ImGui::Checkbox("Force Mission", &g->protections.script_events.force_mission);
|
||||
ImGui::Checkbox("Bounty", &g.protections.script_events.bounty);
|
||||
ImGui::Checkbox("CEO Ban", &g.protections.script_events.ceo_ban);
|
||||
ImGui::Checkbox("CEO Kick", &g.protections.script_events.ceo_kick);
|
||||
ImGui::Checkbox("CEO Money", &g.protections.script_events.ceo_money);
|
||||
ImGui::Checkbox("TSE Crash", &g.protections.script_events.crash);
|
||||
ImGui::Checkbox("Fake Deposit", &g.protections.script_events.fake_deposit);
|
||||
ImGui::Checkbox("Force Mission", &g.protections.script_events.force_mission);
|
||||
ImGui::EndGroup();
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::BeginGroup();
|
||||
ImGui::Checkbox("Force Teleport", &g->protections.script_events.force_teleport);
|
||||
ImGui::Checkbox("GTA Banner", &g->protections.script_events.gta_banner);
|
||||
ImGui::Checkbox("MC Teleport", &g->protections.script_events.mc_teleport);
|
||||
ImGui::Checkbox("Network Bail", &g->protections.script_events.network_bail);
|
||||
ImGui::Checkbox("Personal Vehicle Destroyed", &g->protections.script_events.personal_vehicle_destroyed);
|
||||
ImGui::Checkbox("Remote Off Radar", &g->protections.script_events.remote_off_radar);
|
||||
ImGui::Checkbox("Rotate Cam", &g->protections.script_events.rotate_cam);
|
||||
ImGui::Checkbox("Force Teleport", &g.protections.script_events.force_teleport);
|
||||
ImGui::Checkbox("GTA Banner", &g.protections.script_events.gta_banner);
|
||||
ImGui::Checkbox("MC Teleport", &g.protections.script_events.mc_teleport);
|
||||
ImGui::Checkbox("Network Bail", &g.protections.script_events.network_bail);
|
||||
ImGui::Checkbox("Personal Vehicle Destroyed", &g.protections.script_events.personal_vehicle_destroyed);
|
||||
ImGui::Checkbox("Remote Off Radar", &g.protections.script_events.remote_off_radar);
|
||||
ImGui::Checkbox("Rotate Cam", &g.protections.script_events.rotate_cam);
|
||||
ImGui::EndGroup();
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::BeginGroup();
|
||||
ImGui::Checkbox("Send to Cutscene", &g->protections.script_events.send_to_cutscene);
|
||||
ImGui::Checkbox("Send to Location", &g->protections.script_events.send_to_location);
|
||||
ImGui::Checkbox("Sound Spam", &g->protections.script_events.sound_spam);
|
||||
ImGui::Checkbox("Spectate", &g->protections.script_events.spectate);
|
||||
ImGui::Checkbox("Transaction Error", &g->protections.script_events.transaction_error);
|
||||
ImGui::Checkbox("Vehicle Kick", &g->protections.script_events.vehicle_kick);
|
||||
ImGui::Checkbox("Wanted Level", &g->protections.script_events.clear_wanted_level);
|
||||
ImGui::Checkbox("Send to Cutscene", &g.protections.script_events.send_to_cutscene);
|
||||
ImGui::Checkbox("Send to Location", &g.protections.script_events.send_to_location);
|
||||
ImGui::Checkbox("Sound Spam", &g.protections.script_events.sound_spam);
|
||||
ImGui::Checkbox("Spectate", &g.protections.script_events.spectate);
|
||||
ImGui::Checkbox("Transaction Error", &g.protections.script_events.transaction_error);
|
||||
ImGui::Checkbox("Vehicle Kick", &g.protections.script_events.vehicle_kick);
|
||||
ImGui::Checkbox("Wanted Level", &g.protections.script_events.clear_wanted_level);
|
||||
ImGui::EndGroup();
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::BeginGroup();
|
||||
ImGui::Checkbox("Teleport To Warehouse", &g->protections.script_events.teleport_to_warehouse);
|
||||
ImGui::Checkbox("Start Activity", &g->protections.script_events.start_activity);
|
||||
components::script_patch_checkbox("Script Host Kick", &g->protections.script_host_kick);
|
||||
ImGui::Checkbox("RID Join", &g->protections.rid_join);
|
||||
ImGui::Checkbox("Teleport To Warehouse", &g.protections.script_events.teleport_to_warehouse);
|
||||
ImGui::Checkbox("Start Activity", &g.protections.script_events.start_activity);
|
||||
components::script_patch_checkbox("Script Host Kick", &g.protections.script_host_kick);
|
||||
ImGui::Checkbox("RID Join", &g.protections.rid_join);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("This will block anyone trying to join you through Rockstar ID, including your friends");
|
||||
ImGui::Checkbox("Lessen Breakup Kicks As Host", &g->protections.lessen_breakups);
|
||||
ImGui::Checkbox("Lessen Breakup Kicks As Host", &g.protections.lessen_breakups);
|
||||
if (ImGui::IsItemHovered())
|
||||
ImGui::SetTooltip("Attacker must join after you have become host for this to work. There are anti-cheat concerns with this feature");
|
||||
ImGui::EndGroup();
|
||||
|
@ -27,23 +27,23 @@ namespace big
|
||||
void view::settings()
|
||||
{
|
||||
components::sub_title("Misc");
|
||||
ImGui::Checkbox("Enable Dev DLC", &g->settings.dev_dlc);
|
||||
ImGui::Checkbox("Enable Dev DLC", &g.settings.dev_dlc);
|
||||
|
||||
ImGui::Separator();
|
||||
components::sub_title("Hotkeys");
|
||||
|
||||
ImGui::PushItemWidth(350.f);
|
||||
|
||||
if (ImGui::Hotkey("Menu Toggle", &g->settings.hotkeys.menu_toggle))
|
||||
g->settings.hotkeys.editing_menu_toggle = true; // make our menu reappear
|
||||
if (ImGui::Hotkey("Menu Toggle", &g.settings.hotkeys.menu_toggle))
|
||||
g.settings.hotkeys.editing_menu_toggle = true; // make our menu reappear
|
||||
|
||||
if (ImGui::Hotkey("Teleport to waypoint", &g->settings.hotkeys.teleport_waypoint))
|
||||
g_hotkey_service->update_hotkey("waypoint", g->settings.hotkeys.teleport_waypoint);
|
||||
if (ImGui::Hotkey("Teleport to objective", &g->settings.hotkeys.teleport_objective))
|
||||
g_hotkey_service->update_hotkey("objective", g->settings.hotkeys.teleport_objective);
|
||||
if (ImGui::Hotkey("Teleport to waypoint", &g.settings.hotkeys.teleport_waypoint))
|
||||
g_hotkey_service->update_hotkey("waypoint", g.settings.hotkeys.teleport_waypoint);
|
||||
if (ImGui::Hotkey("Teleport to objective", &g.settings.hotkeys.teleport_objective))
|
||||
g_hotkey_service->update_hotkey("objective", g.settings.hotkeys.teleport_objective);
|
||||
|
||||
if (ImGui::Hotkey("Toggle Noclip", &g->settings.hotkeys.noclip))
|
||||
g_hotkey_service->update_hotkey("noclip", g->settings.hotkeys.noclip);
|
||||
if (ImGui::Hotkey("Toggle Noclip", &g.settings.hotkeys.noclip))
|
||||
g_hotkey_service->update_hotkey("noclip", g.settings.hotkeys.noclip);
|
||||
|
||||
|
||||
ImGui::PopItemWidth();
|
||||
|
@ -85,32 +85,32 @@ namespace big
|
||||
|
||||
components::sub_title("Auto Drive");
|
||||
{
|
||||
float auto_drive_speed_user_unit = vehicle::mps_to_speed(g->vehicle.auto_drive_speed, g->vehicle.speed_unit);
|
||||
float auto_drive_speed_user_unit = vehicle::mps_to_speed(g.vehicle.auto_drive_speed, g.vehicle.speed_unit);
|
||||
if (ImGui::SliderFloat(
|
||||
std::format("Top Speed({})", speed_unit_strings[(int)g->vehicle.speed_unit]).c_str(),
|
||||
std::format("Top Speed({})", speed_unit_strings[(int)g.vehicle.speed_unit]).c_str(),
|
||||
&auto_drive_speed_user_unit,
|
||||
vehicle::mps_to_speed(0.f, g->vehicle.speed_unit),
|
||||
vehicle::mps_to_speed(150.f, g->vehicle.speed_unit),
|
||||
vehicle::mps_to_speed(0.f, g.vehicle.speed_unit),
|
||||
vehicle::mps_to_speed(150.f, g.vehicle.speed_unit),
|
||||
"%.1f"
|
||||
)) {
|
||||
g->vehicle.auto_drive_speed = vehicle::speed_to_mps(auto_drive_speed_user_unit, g->vehicle.speed_unit);
|
||||
g.vehicle.auto_drive_speed = vehicle::speed_to_mps(auto_drive_speed_user_unit, g.vehicle.speed_unit);
|
||||
}
|
||||
|
||||
static constexpr char const* driving_style_names[] = { "Law-Abiding", "The Road Is Yours" };
|
||||
if (ImGui::BeginCombo("Driving Style", driving_style_names[(int)g->vehicle.auto_drive_style]))
|
||||
if (ImGui::BeginCombo("Driving Style", driving_style_names[(int)g.vehicle.auto_drive_style]))
|
||||
{
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
if (ImGui::Selectable(driving_style_names[i], g->vehicle.auto_drive_style == (AutoDriveStyle)i))
|
||||
if (ImGui::Selectable(driving_style_names[i], g.vehicle.auto_drive_style == (AutoDriveStyle)i))
|
||||
{
|
||||
g->vehicle.auto_drive_style = (AutoDriveStyle)i;
|
||||
g.vehicle.auto_drive_style = (AutoDriveStyle)i;
|
||||
g_notification_service->push_warning(
|
||||
"Auto Drive",
|
||||
std::format("Driving style set to {}.", driving_style_names[i])
|
||||
);
|
||||
}
|
||||
|
||||
if (g->vehicle.auto_drive_style == (AutoDriveStyle)i)
|
||||
if (g.vehicle.auto_drive_style == (AutoDriveStyle)i)
|
||||
{
|
||||
ImGui::SetItemDefaultFocus();
|
||||
}
|
||||
@ -120,19 +120,19 @@ namespace big
|
||||
}
|
||||
|
||||
if (components::button("To Objective")) {
|
||||
g->vehicle.auto_drive_destination = AutoDriveDestination::OBJECTITVE;
|
||||
g.vehicle.auto_drive_destination = AutoDriveDestination::OBJECTITVE;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (components::button("To Waypoint")) {
|
||||
g->vehicle.auto_drive_destination = AutoDriveDestination::WAYPOINT;
|
||||
g.vehicle.auto_drive_destination = AutoDriveDestination::WAYPOINT;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (components::button("Wander")) {
|
||||
g->vehicle.auto_drive_destination = AutoDriveDestination::WANDER;
|
||||
g.vehicle.auto_drive_destination = AutoDriveDestination::WANDER;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (components::button("Emergency Stop")) {
|
||||
g->vehicle.auto_drive_destination = AutoDriveDestination::EMERGENCY_STOP;
|
||||
g.vehicle.auto_drive_destination = AutoDriveDestination::EMERGENCY_STOP;
|
||||
}
|
||||
}
|
||||
ImGui::Separator();
|
||||
@ -140,26 +140,26 @@ namespace big
|
||||
|
||||
components::sub_title("Rainbow Paint");
|
||||
{
|
||||
ImGui::Checkbox("Primary", &g->vehicle.rainbow_paint.primary);
|
||||
ImGui::Checkbox("Primary", &g.vehicle.rainbow_paint.primary);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Secondary", &g->vehicle.rainbow_paint.secondary);
|
||||
ImGui::Checkbox("Secondary", &g.vehicle.rainbow_paint.secondary);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Neon", &g->vehicle.rainbow_paint.neon);
|
||||
ImGui::Checkbox("Neon", &g.vehicle.rainbow_paint.neon);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Smoke", &g->vehicle.rainbow_paint.smoke);
|
||||
ImGui::Checkbox("Smoke", &g.vehicle.rainbow_paint.smoke);
|
||||
|
||||
static constexpr char const* rgb_types[] = { "Off", "Fade", "Spasm" };
|
||||
|
||||
ImGui::SetNextItemWidth(120);
|
||||
if (ImGui::BeginCombo("RGB Type", rgb_types[(int)g->vehicle.rainbow_paint.type]))
|
||||
if (ImGui::BeginCombo("RGB Type", rgb_types[(int)g.vehicle.rainbow_paint.type]))
|
||||
{
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
bool itemSelected = (int)g->vehicle.rainbow_paint.type == i;
|
||||
bool itemSelected = (int)g.vehicle.rainbow_paint.type == i;
|
||||
|
||||
if (ImGui::Selectable(rgb_types[i], itemSelected))
|
||||
{
|
||||
g->vehicle.rainbow_paint.type = (RainbowPaintType)i;
|
||||
g.vehicle.rainbow_paint.type = (RainbowPaintType)i;
|
||||
}
|
||||
|
||||
if (itemSelected)
|
||||
@ -170,25 +170,25 @@ namespace big
|
||||
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
if (g->vehicle.rainbow_paint.type != RainbowPaintType::Off)
|
||||
if (g.vehicle.rainbow_paint.type != RainbowPaintType::Off)
|
||||
{
|
||||
ImGui::SameLine();
|
||||
ImGui::SetNextItemWidth(150);
|
||||
ImGui::SliderInt("RGB Speed", &g->vehicle.rainbow_paint.speed, 1, 10);
|
||||
ImGui::SliderInt("RGB Speed", &g.vehicle.rainbow_paint.speed, 1, 10);
|
||||
}
|
||||
}
|
||||
ImGui::Separator();
|
||||
|
||||
static constexpr char const* boost_behaviors[] = { "Default", "Instant Refill", "Infinite" };
|
||||
if (ImGui::BeginCombo("Boost Behavior", boost_behaviors[static_cast<int>(g->vehicle.boost_behavior)]))
|
||||
if (ImGui::BeginCombo("Boost Behavior", boost_behaviors[static_cast<int>(g.vehicle.boost_behavior)]))
|
||||
{
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
bool itemSelected = g->vehicle.boost_behavior == static_cast<eBoostBehaviors>(i);
|
||||
bool itemSelected = g.vehicle.boost_behavior == static_cast<eBoostBehaviors>(i);
|
||||
|
||||
if (ImGui::Selectable(boost_behaviors[i], itemSelected))
|
||||
{
|
||||
g->vehicle.boost_behavior = static_cast<eBoostBehaviors>(i);
|
||||
g.vehicle.boost_behavior = static_cast<eBoostBehaviors>(i);
|
||||
}
|
||||
|
||||
if (itemSelected)
|
||||
@ -207,27 +207,27 @@ namespace big
|
||||
{
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Enabled", &g->vehicle.fly.enabled);
|
||||
ImGui::Checkbox("Don't Stop", &g->vehicle.fly.dont_stop);
|
||||
ImGui::Checkbox("Enabled", &g.vehicle.fly.enabled);
|
||||
ImGui::Checkbox("Don't Stop", &g.vehicle.fly.dont_stop);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Disable Collision", &g->vehicle.fly.no_collision);
|
||||
ImGui::Checkbox("Stop On Exit", &g->vehicle.fly.stop_on_exit);
|
||||
ImGui::Checkbox("Disable Collision", &g.vehicle.fly.no_collision);
|
||||
ImGui::Checkbox("Stop On Exit", &g.vehicle.fly.stop_on_exit);
|
||||
|
||||
ImGui::EndGroup();
|
||||
|
||||
float fly_speed_user_unit = vehicle::mps_to_speed(g->vehicle.fly.speed, g->vehicle.speed_unit);
|
||||
float fly_speed_user_unit = vehicle::mps_to_speed(g.vehicle.fly.speed, g.vehicle.speed_unit);
|
||||
if (ImGui::SliderFloat(
|
||||
std::format("Speed({})", speed_unit_strings[(int)g->vehicle.speed_unit]).c_str(),
|
||||
std::format("Speed({})", speed_unit_strings[(int)g.vehicle.speed_unit]).c_str(),
|
||||
&fly_speed_user_unit,
|
||||
vehicle::mps_to_speed(0.f, g->vehicle.speed_unit),
|
||||
vehicle::mps_to_speed(150.f, g->vehicle.speed_unit),
|
||||
vehicle::mps_to_speed(0.f, g.vehicle.speed_unit),
|
||||
vehicle::mps_to_speed(150.f, g.vehicle.speed_unit),
|
||||
"%.1f"
|
||||
)) {
|
||||
g->vehicle.fly.speed = vehicle::speed_to_mps(fly_speed_user_unit, g->vehicle.speed_unit);
|
||||
g.vehicle.fly.speed = vehicle::speed_to_mps(fly_speed_user_unit, g.vehicle.speed_unit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -195,7 +195,7 @@ namespace big
|
||||
}
|
||||
|
||||
components::button("Start LS Customs", [] {
|
||||
g->vehicle.ls_customs = true;
|
||||
g.vehicle.ls_customs = true;
|
||||
});
|
||||
ImGui::SameLine();
|
||||
if (components::button("Max Vehicle"))
|
||||
|
@ -27,7 +27,7 @@ namespace big
|
||||
{
|
||||
g_notification_service->push_warning("Persist Car", "Vehicle failed to spawn, there is most likely too many spawned vehicles in the area");
|
||||
}
|
||||
else if (g->spawn_vehicle.spawn_inside)
|
||||
else if (g.spawn_vehicle.spawn_inside)
|
||||
teleport::into_vehicle(vehicle);
|
||||
|
||||
selected_vehicle_file.clear();
|
||||
|
@ -11,30 +11,30 @@ namespace big
|
||||
void view::pv() {
|
||||
ImGui::SetWindowSize({ 0.f, (float)*g_pointers->m_resolution_y }, ImGuiCond_Always);
|
||||
|
||||
if (ImGui::Checkbox("Preview", &g->clone_pv.preview_vehicle))
|
||||
if (ImGui::Checkbox("Preview", &g.clone_pv.preview_vehicle))
|
||||
{
|
||||
if (!g->clone_pv.preview_vehicle)
|
||||
if (!g.clone_pv.preview_vehicle)
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
}
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Spawn In", &g->clone_pv.spawn_inside);
|
||||
ImGui::Checkbox("Spawn In", &g.clone_pv.spawn_inside);
|
||||
ImGui::SameLine();
|
||||
|
||||
static char plate_buf[9] = { 0 };
|
||||
int num_of_rows = 3;
|
||||
|
||||
ImGui::Checkbox("Spawn Clone", &g->clone_pv.spawn_clone);
|
||||
if (g->clone_pv.spawn_clone)
|
||||
ImGui::Checkbox("Spawn Clone", &g.clone_pv.spawn_clone);
|
||||
if (g.clone_pv.spawn_clone)
|
||||
{
|
||||
num_of_rows = 5;
|
||||
|
||||
ImGui::Checkbox("Spawn Maxed", &g->clone_pv.spawn_maxed);
|
||||
ImGui::Checkbox("Spawn Maxed", &g.clone_pv.spawn_maxed);
|
||||
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Clone PV Plate", &g->clone_pv.clone_plate);
|
||||
if (g->clone_pv.clone_plate)
|
||||
ImGui::Checkbox("Clone PV Plate", &g.clone_pv.clone_plate);
|
||||
if (g.clone_pv.clone_plate)
|
||||
{
|
||||
num_of_rows = 4;
|
||||
}
|
||||
@ -42,9 +42,9 @@ namespace big
|
||||
{
|
||||
ImGui::SetNextItemWidth(300.f);
|
||||
|
||||
strncpy(plate_buf, g->clone_pv.plate.c_str(), 9);
|
||||
strncpy(plate_buf, g.clone_pv.plate.c_str(), 9);
|
||||
components::input_text_with_hint("Plate", "Plate Number", plate_buf, sizeof(plate_buf), ImGuiInputTextFlags_None, [] {
|
||||
g->clone_pv.plate = plate_buf;
|
||||
g.clone_pv.plate = plate_buf;
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -116,16 +116,16 @@ namespace big
|
||||
|
||||
ImGui::PushID('v' << 24 & personal_veh->get_id());
|
||||
components::selectable(label, false, [&personal_veh] {
|
||||
if (g->clone_pv.spawn_clone)
|
||||
if (g.clone_pv.spawn_clone)
|
||||
{
|
||||
Vector3 spawn_location = vehicle::get_spawn_location(g->spawn_vehicle.spawn_inside);
|
||||
Vector3 spawn_location = vehicle::get_spawn_location(g.spawn_vehicle.spawn_inside);
|
||||
float spawn_heading = ENTITY::GET_ENTITY_HEADING(self::ped);
|
||||
|
||||
auto vehicle_idx = personal_veh->get_vehicle_idx();
|
||||
auto owned_mods = vehicle::get_owned_mods_from_vehicle_idx(vehicle_idx);
|
||||
|
||||
const char* spawn_plate_buf = plate_buf;
|
||||
if (g->clone_pv.clone_plate)
|
||||
if (g.clone_pv.clone_plate)
|
||||
{
|
||||
spawn_plate_buf = personal_veh->get_plate();
|
||||
}
|
||||
@ -138,14 +138,14 @@ namespace big
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g->clone_pv.spawn_maxed)
|
||||
if (g.clone_pv.spawn_maxed)
|
||||
{
|
||||
vehicle::max_vehicle(veh);
|
||||
}
|
||||
|
||||
vehicle::set_plate(veh, spawn_plate_buf);
|
||||
|
||||
if (g->clone_pv.spawn_inside)
|
||||
if (g.clone_pv.spawn_inside)
|
||||
{
|
||||
vehicle::teleport_into_vehicle(veh);
|
||||
}
|
||||
@ -161,7 +161,7 @@ namespace big
|
||||
});
|
||||
ImGui::PopID();
|
||||
|
||||
if (!g->clone_pv.preview_vehicle || (g->clone_pv.preview_vehicle && !ImGui::IsAnyItemHovered()))
|
||||
if (!g.clone_pv.preview_vehicle || (g.clone_pv.preview_vehicle && !ImGui::IsAnyItemHovered()))
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
@ -170,7 +170,7 @@ namespace big
|
||||
g_fiber_pool->queue_job([&personal_veh] {
|
||||
g_model_preview_service->show_vehicle(
|
||||
vehicle::get_owned_mods_from_vehicle_idx(personal_veh->get_vehicle_idx()),
|
||||
g->clone_pv.spawn_maxed
|
||||
g.clone_pv.spawn_maxed
|
||||
);
|
||||
});
|
||||
}
|
||||
|
@ -11,24 +11,24 @@ namespace big
|
||||
{
|
||||
ImGui::SetWindowSize({ 0.f, (float)*g_pointers->m_resolution_y }, ImGuiCond_Always);
|
||||
|
||||
if (ImGui::Checkbox("Preview", &g->spawn_vehicle.preview_vehicle))
|
||||
if (ImGui::Checkbox("Preview", &g.spawn_vehicle.preview_vehicle))
|
||||
{
|
||||
if (!g->spawn_vehicle.preview_vehicle)
|
||||
if (!g.spawn_vehicle.preview_vehicle)
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
}
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Spawn In", &g->spawn_vehicle.spawn_inside);
|
||||
ImGui::Checkbox("Spawn In", &g.spawn_vehicle.spawn_inside);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Spawn Maxed", &g->spawn_vehicle.spawn_maxed);
|
||||
ImGui::Checkbox("Spawn Maxed", &g.spawn_vehicle.spawn_maxed);
|
||||
|
||||
static char plate_buf[9] = { 0 };
|
||||
strncpy(plate_buf, g->spawn_vehicle.plate.c_str(), 9);
|
||||
strncpy(plate_buf, g.spawn_vehicle.plate.c_str(), 9);
|
||||
|
||||
ImGui::SetNextItemWidth(300.f);
|
||||
components::input_text_with_hint("Plate", "Plate Number", plate_buf, sizeof(plate_buf), ImGuiInputTextFlags_None, [] {
|
||||
g->spawn_vehicle.plate = plate_buf;
|
||||
g.spawn_vehicle.plate = plate_buf;
|
||||
});
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ namespace big
|
||||
components::selectable(std::format("Current Vehicle [{}]", item.m_display_name), false, [] {
|
||||
if (self::veh)
|
||||
{
|
||||
Vector3 spawn_location = vehicle::get_spawn_location(g->spawn_vehicle.spawn_inside);
|
||||
Vector3 spawn_location = vehicle::get_spawn_location(g.spawn_vehicle.spawn_inside);
|
||||
float spawn_heading = ENTITY::GET_ENTITY_HEADING(self::ped);
|
||||
|
||||
auto owned_mods = vehicle::get_owned_mods_from_vehicle(self::veh);
|
||||
@ -96,14 +96,14 @@ namespace big
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g->spawn_vehicle.spawn_maxed)
|
||||
if (g.spawn_vehicle.spawn_maxed)
|
||||
{
|
||||
vehicle::max_vehicle(veh);
|
||||
}
|
||||
|
||||
vehicle::set_plate(veh, plate_buf);
|
||||
|
||||
if (g->spawn_vehicle.spawn_inside)
|
||||
if (g.spawn_vehicle.spawn_inside)
|
||||
{
|
||||
vehicle::teleport_into_vehicle(veh);
|
||||
}
|
||||
@ -113,7 +113,7 @@ namespace big
|
||||
g_model_preview_service->stop_preview();
|
||||
});
|
||||
|
||||
if (!g->spawn_vehicle.preview_vehicle || (g->spawn_vehicle.preview_vehicle && !ImGui::IsAnyItemHovered()))
|
||||
if (!g.spawn_vehicle.preview_vehicle || (g.spawn_vehicle.preview_vehicle && !ImGui::IsAnyItemHovered()))
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
@ -122,7 +122,7 @@ namespace big
|
||||
g_fiber_pool->queue_job([] {
|
||||
g_model_preview_service->show_vehicle(
|
||||
vehicle::get_owned_mods_from_vehicle(self::veh),
|
||||
g->spawn_vehicle.spawn_maxed
|
||||
g.spawn_vehicle.spawn_maxed
|
||||
);
|
||||
});
|
||||
}
|
||||
@ -155,7 +155,7 @@ namespace big
|
||||
ImGui::PushID(vehicle.m_hash);
|
||||
components::selectable(vehicle.m_display_name, false, [&vehicle]
|
||||
{
|
||||
const auto spawn_location = vehicle::get_spawn_location(g->spawn_vehicle.spawn_inside);
|
||||
const auto spawn_location = vehicle::get_spawn_location(g.spawn_vehicle.spawn_inside);
|
||||
const auto spawn_heading = ENTITY::GET_ENTITY_HEADING(self::ped);
|
||||
|
||||
const auto veh = vehicle::spawn(vehicle.m_hash, spawn_location, spawn_heading);
|
||||
@ -166,14 +166,14 @@ namespace big
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g->spawn_vehicle.spawn_maxed)
|
||||
if (g.spawn_vehicle.spawn_maxed)
|
||||
{
|
||||
vehicle::max_vehicle(veh);
|
||||
}
|
||||
|
||||
vehicle::set_plate(veh, plate_buf);
|
||||
|
||||
if (g->spawn_vehicle.spawn_inside)
|
||||
if (g.spawn_vehicle.spawn_inside)
|
||||
{
|
||||
vehicle::teleport_into_vehicle(veh);
|
||||
}
|
||||
@ -183,13 +183,13 @@ namespace big
|
||||
});
|
||||
ImGui::PopID();
|
||||
|
||||
if (!g->spawn_vehicle.preview_vehicle || (g->spawn_vehicle.preview_vehicle && !ImGui::IsAnyItemHovered()))
|
||||
if (!g.spawn_vehicle.preview_vehicle || (g.spawn_vehicle.preview_vehicle && !ImGui::IsAnyItemHovered()))
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
else if (ImGui::IsItemHovered())
|
||||
{
|
||||
g_model_preview_service->show_vehicle(vehicle.m_hash, g->spawn_vehicle.spawn_maxed);
|
||||
g_model_preview_service->show_vehicle(vehicle.m_hash, g.spawn_vehicle.spawn_maxed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ namespace big
|
||||
});
|
||||
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Keep Vehicle Repaired", &g->vehicle.keep_vehicle_repaired);
|
||||
ImGui::Checkbox("Keep Vehicle Repaired", &g.vehicle.keep_vehicle_repaired);
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
@ -45,8 +45,8 @@ namespace big
|
||||
vehicle::set_engine_state(
|
||||
self::veh,
|
||||
true,
|
||||
g->vehicle.change_engine_state_immediately,
|
||||
g->vehicle.disable_engine_auto_start
|
||||
g.vehicle.change_engine_state_immediately,
|
||||
g.vehicle.disable_engine_auto_start
|
||||
);
|
||||
});
|
||||
ImGui::SameLine();
|
||||
@ -54,42 +54,42 @@ namespace big
|
||||
vehicle::set_engine_state(
|
||||
self::veh,
|
||||
false,
|
||||
g->vehicle.change_engine_state_immediately,
|
||||
g->vehicle.disable_engine_auto_start
|
||||
g.vehicle.change_engine_state_immediately,
|
||||
g.vehicle.disable_engine_auto_start
|
||||
);
|
||||
});
|
||||
ImGui::Checkbox("Disable Engine Auto Start", &g->vehicle.disable_engine_auto_start);
|
||||
ImGui::Checkbox("Disable Engine Auto Start", &g.vehicle.disable_engine_auto_start);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Change State Immediately", &g->vehicle.change_engine_state_immediately);
|
||||
ImGui::Checkbox("Change State Immediately", &g.vehicle.change_engine_state_immediately);
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
components::sub_title("General");
|
||||
{
|
||||
ImGui::BeginGroup();
|
||||
ImGui::Checkbox("God Mode", &g->vehicle.god_mode);
|
||||
ImGui::Checkbox("Horn Boost", &g->vehicle.horn_boost);
|
||||
ImGui::Checkbox("Vehicle Jump", &g->vehicle.vehicle_jump);
|
||||
ImGui::Checkbox("God Mode", &g.vehicle.god_mode);
|
||||
ImGui::Checkbox("Horn Boost", &g.vehicle.horn_boost);
|
||||
ImGui::Checkbox("Vehicle Jump", &g.vehicle.vehicle_jump);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Instant Brake", &g->vehicle.instant_brake);
|
||||
ImGui::Checkbox("Can Be Targeted", &g->vehicle.is_targetable);
|
||||
ImGui::Checkbox("Drive On Water", &g->vehicle.drive_on_water);
|
||||
ImGui::Checkbox("Instant Brake", &g.vehicle.instant_brake);
|
||||
ImGui::Checkbox("Can Be Targeted", &g.vehicle.is_targetable);
|
||||
ImGui::Checkbox("Drive On Water", &g.vehicle.drive_on_water);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Seatbelt", &g->vehicle.seatbelt);
|
||||
ImGui::Checkbox("Turn Signals", &g->vehicle.turn_signals);
|
||||
if (g->vehicle.turn_signals)
|
||||
ImGui::Checkbox("Seatbelt", &g.vehicle.seatbelt);
|
||||
ImGui::Checkbox("Turn Signals", &g.vehicle.turn_signals);
|
||||
if (g.vehicle.turn_signals)
|
||||
{
|
||||
ImGui::Checkbox("Fully Automatic Signal", &g->vehicle.auto_turn_signals);
|
||||
ImGui::Checkbox("Fully Automatic Signal", &g.vehicle.auto_turn_signals);
|
||||
}
|
||||
ImGui::Checkbox("No Water Collision", &g->vehicle.no_water_collision);
|
||||
ImGui::Checkbox("No Water Collision", &g.vehicle.no_water_collision);
|
||||
|
||||
ImGui::EndGroup();
|
||||
}
|
||||
@ -100,52 +100,52 @@ namespace big
|
||||
{
|
||||
if (ImGui::Button("Check all"))
|
||||
{
|
||||
g->vehicle.proof_bullet = true;
|
||||
g->vehicle.proof_fire = true;
|
||||
g->vehicle.proof_collision = true;
|
||||
g->vehicle.proof_melee = true;
|
||||
g->vehicle.proof_explosion = true;
|
||||
g->vehicle.proof_steam = true;
|
||||
g->vehicle.proof_water = true;
|
||||
g.vehicle.proof_bullet = true;
|
||||
g.vehicle.proof_fire = true;
|
||||
g.vehicle.proof_collision = true;
|
||||
g.vehicle.proof_melee = true;
|
||||
g.vehicle.proof_explosion = true;
|
||||
g.vehicle.proof_steam = true;
|
||||
g.vehicle.proof_water = true;
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
if (ImGui::Button("Uncheck all"))
|
||||
{
|
||||
g->vehicle.proof_bullet = false;
|
||||
g->vehicle.proof_fire = false;
|
||||
g->vehicle.proof_collision = false;
|
||||
g->vehicle.proof_melee = false;
|
||||
g->vehicle.proof_explosion = false;
|
||||
g->vehicle.proof_steam = false;
|
||||
g->vehicle.proof_water = false;
|
||||
g.vehicle.proof_bullet = false;
|
||||
g.vehicle.proof_fire = false;
|
||||
g.vehicle.proof_collision = false;
|
||||
g.vehicle.proof_melee = false;
|
||||
g.vehicle.proof_explosion = false;
|
||||
g.vehicle.proof_steam = false;
|
||||
g.vehicle.proof_water = false;
|
||||
}
|
||||
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Bullet", &g->vehicle.proof_bullet);
|
||||
ImGui::Checkbox("Fire", &g->vehicle.proof_fire);
|
||||
ImGui::Checkbox("Bullet", &g.vehicle.proof_bullet);
|
||||
ImGui::Checkbox("Fire", &g.vehicle.proof_fire);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Collision", &g->vehicle.proof_collision);
|
||||
ImGui::Checkbox("Melee", &g->vehicle.proof_melee);
|
||||
ImGui::Checkbox("Collision", &g.vehicle.proof_collision);
|
||||
ImGui::Checkbox("Melee", &g.vehicle.proof_melee);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Explosion", &g->vehicle.proof_explosion);
|
||||
ImGui::Checkbox("Steam", &g->vehicle.proof_steam);
|
||||
ImGui::Checkbox("Explosion", &g.vehicle.proof_explosion);
|
||||
ImGui::Checkbox("Steam", &g.vehicle.proof_steam);
|
||||
|
||||
ImGui::EndGroup();
|
||||
ImGui::SameLine();
|
||||
ImGui::BeginGroup();
|
||||
|
||||
ImGui::Checkbox("Water", &g->vehicle.proof_water);
|
||||
ImGui::Checkbox("Water", &g.vehicle.proof_water);
|
||||
|
||||
ImGui::EndGroup();
|
||||
}
|
||||
@ -156,19 +156,19 @@ namespace big
|
||||
{
|
||||
ImGui::RadioButton(
|
||||
speed_unit_strings[(int)SpeedUnit::KMPH].c_str(),
|
||||
(int*)&g->vehicle.speed_unit,
|
||||
(int*)&g.vehicle.speed_unit,
|
||||
(int)SpeedUnit::KMPH
|
||||
);
|
||||
ImGui::SameLine();
|
||||
ImGui::RadioButton(
|
||||
speed_unit_strings[(int)SpeedUnit::MIPH].c_str(),
|
||||
(int*)&g->vehicle.speed_unit,
|
||||
(int*)&g.vehicle.speed_unit,
|
||||
(int)SpeedUnit::MIPH
|
||||
);
|
||||
ImGui::SameLine();
|
||||
ImGui::RadioButton(
|
||||
speed_unit_strings[(int)SpeedUnit::MPS].c_str(),
|
||||
(int*)&g->vehicle.speed_unit,
|
||||
(int*)&g.vehicle.speed_unit,
|
||||
(int)SpeedUnit::MPS
|
||||
);
|
||||
}
|
||||
@ -177,58 +177,58 @@ namespace big
|
||||
|
||||
components::sub_title("Speedo Meter");
|
||||
{
|
||||
ImGui::Checkbox("Enabled", &g->vehicle.speedo_meter.enabled);
|
||||
ImGui::Checkbox("Enabled", &g.vehicle.speedo_meter.enabled);
|
||||
|
||||
if (g->vehicle.speedo_meter.enabled)
|
||||
if (g.vehicle.speedo_meter.enabled)
|
||||
{
|
||||
ImGui::Text("Position (X, Y)");
|
||||
|
||||
float pos[2] = { g->vehicle.speedo_meter.x, g->vehicle.speedo_meter.y };
|
||||
float pos[2] = { g.vehicle.speedo_meter.x, g.vehicle.speedo_meter.y };
|
||||
|
||||
if (ImGui::SliderFloat2("###speedo_pos", pos, .001f, .999f, "%.3f"))
|
||||
{
|
||||
g->vehicle.speedo_meter.x = pos[0];
|
||||
g->vehicle.speedo_meter.y = pos[1];
|
||||
g.vehicle.speedo_meter.x = pos[0];
|
||||
g.vehicle.speedo_meter.y = pos[1];
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
ImGui::Checkbox("Left Sided", &g->vehicle.speedo_meter.left_side);
|
||||
ImGui::Checkbox("Left Sided", &g.vehicle.speedo_meter.left_side);
|
||||
}
|
||||
}
|
||||
|
||||
g->vehicle.proof_mask = 0;
|
||||
if (g->vehicle.god_mode)
|
||||
g.vehicle.proof_mask = 0;
|
||||
if (g.vehicle.god_mode)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::GOD);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::GOD);
|
||||
}
|
||||
if (g->vehicle.proof_bullet)
|
||||
if (g.vehicle.proof_bullet)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::BULLET);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::BULLET);
|
||||
}
|
||||
if (g->vehicle.proof_fire)
|
||||
if (g.vehicle.proof_fire)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::FIRE);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::FIRE);
|
||||
}
|
||||
if (g->vehicle.proof_collision)
|
||||
if (g.vehicle.proof_collision)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::COLLISION);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::COLLISION);
|
||||
}
|
||||
if (g->vehicle.proof_melee)
|
||||
if (g.vehicle.proof_melee)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::MELEE);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::MELEE);
|
||||
}
|
||||
if (g->vehicle.proof_explosion)
|
||||
if (g.vehicle.proof_explosion)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::EXPLOSION);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::EXPLOSION);
|
||||
}
|
||||
if (g->vehicle.proof_steam)
|
||||
if (g.vehicle.proof_steam)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::STEAM);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::STEAM);
|
||||
}
|
||||
if (g->vehicle.proof_water)
|
||||
if (g.vehicle.proof_water)
|
||||
{
|
||||
g->vehicle.proof_mask |= static_cast<int>(eEntityProofs::WATER);
|
||||
g.vehicle.proof_mask |= static_cast<int>(eEntityProofs::WATER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ namespace big
|
||||
static void draw_model_bounding_box(ImDrawList* draw_list, const model_bounding_box_screen_space& m_model_bounding_box_screen_space)
|
||||
{
|
||||
const auto& box = g_context_menu_service->m_model_bounding_box_screen_space;
|
||||
const auto& color = g->context_menu.bounding_box_color;
|
||||
const auto& color = g.context_menu.bounding_box_color;
|
||||
|
||||
draw_list->AddLine(box.edge1, box.edge2, color);
|
||||
draw_list->AddLine(box.edge1, box.edge4, color);
|
||||
@ -38,7 +38,7 @@ namespace big
|
||||
auto& context_target_pos = *g_context_menu_service->m_pointer->m_navigation->get_position();
|
||||
|
||||
const auto context_target_distance = math::calculate_distance_from_game_cam(context_target_pos);
|
||||
const auto context_target_multplr = context_target_distance > g->esp.global_render_distance[1] ? -1.f : 6.17757f / context_target_distance;
|
||||
const auto context_target_multplr = context_target_distance > g.esp.global_render_distance[1] ? -1.f : 6.17757f / context_target_distance;
|
||||
|
||||
if (g_pointers->m_get_screen_coords_for_world_coords(context_target_pos.data, &context_screen_x, &context_screen_y))
|
||||
{
|
||||
@ -56,10 +56,10 @@ namespace big
|
||||
for (std::uint32_t i = 0; i < cm->options.size(); i++)
|
||||
{
|
||||
const auto co = cm->options.at(i);
|
||||
draw_list->AddText({ cm_start_x + 7.f, cm_start_y + (20.f * static_cast<float>(i)) + 5.f }, cm->current_option == i ? g->context_menu.selected_option_color : ImGui::ColorConvertFloat4ToU32({ 1.f, 1.f, 1.f, 1.f }), co.name.c_str());
|
||||
draw_list->AddText({ cm_start_x + 7.f, cm_start_y + (20.f * static_cast<float>(i)) + 5.f }, cm->current_option == i ? g.context_menu.selected_option_color : ImGui::ColorConvertFloat4ToU32({ 1.f, 1.f, 1.f, 1.f }), co.name.c_str());
|
||||
}
|
||||
|
||||
if (g->context_menu.bounding_box_enabled)
|
||||
if (g.context_menu.bounding_box_enabled)
|
||||
draw_model_bounding_box(draw_list, g_context_menu_service->m_model_bounding_box_screen_space);
|
||||
}
|
||||
}
|
||||
|
@ -241,7 +241,7 @@ namespace big
|
||||
selected_ped_player_id = -1;
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
else if (!g->spawn_ped.preview_ped || (g->spawn_ped.preview_ped && !ImGui::IsAnyItemHovered()))
|
||||
else if (!g.spawn_ped.preview_ped || (g.spawn_ped.preview_ped && !ImGui::IsAnyItemHovered()))
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
@ -272,7 +272,7 @@ namespace big
|
||||
selected_ped_player_id = plyr_id;
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
else if (!g->spawn_ped.preview_ped || (g->spawn_ped.preview_ped && !ImGui::IsAnyItemHovered()))
|
||||
else if (!g.spawn_ped.preview_ped || (g.spawn_ped.preview_ped && !ImGui::IsAnyItemHovered()))
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
@ -386,7 +386,7 @@ namespace big
|
||||
|
||||
ped_model_dropdown_open = ped_model_dropdown_focused;
|
||||
|
||||
if (!g->spawn_ped.preview_ped || (g->spawn_ped.preview_ped && (!item_hovered || !ped_model_dropdown_open)))
|
||||
if (!g.spawn_ped.preview_ped || (g.spawn_ped.preview_ped && (!item_hovered || !ped_model_dropdown_open)))
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
@ -550,9 +550,9 @@ namespace big
|
||||
ImGui::Separator();
|
||||
|
||||
|
||||
if (ImGui::Checkbox("Preview", &g->spawn_ped.preview_ped))
|
||||
if (ImGui::Checkbox("Preview", &g.spawn_ped.preview_ped))
|
||||
{
|
||||
if (!g->spawn_ped.preview_ped)
|
||||
if (!g.spawn_ped.preview_ped)
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
}
|
||||
|
@ -8,13 +8,13 @@ namespace big
|
||||
{
|
||||
if (ImGui::TreeNode("Local Time"))
|
||||
{
|
||||
ImGui::Checkbox("Override Time", &g->session.override_time);
|
||||
ImGui::Checkbox("Override Time", &g.session.override_time);
|
||||
|
||||
if (g->session.override_time)
|
||||
if (g.session.override_time)
|
||||
{
|
||||
ImGui::SliderInt("Hour", &g->session.custom_time.hour, 0, 23);
|
||||
ImGui::SliderInt("Minute", &g->session.custom_time.minute, 0, 59);
|
||||
ImGui::SliderInt("Second", &g->session.custom_time.second, 0, 59);
|
||||
ImGui::SliderInt("Hour", &g.session.custom_time.hour, 0, 23);
|
||||
ImGui::SliderInt("Minute", &g.session.custom_time.minute, 0, 59);
|
||||
ImGui::SliderInt("Second", &g.session.custom_time.second, 0, 59);
|
||||
}
|
||||
|
||||
ImGui::TreePop();
|
||||
@ -27,7 +27,7 @@ namespace big
|
||||
MISC::CLEAR_OVERRIDE_WEATHER();
|
||||
});
|
||||
|
||||
if (ImGui::ListBox("", &g->session.local_weather, session::weathers, 15))
|
||||
if (ImGui::ListBox("", &g.session.local_weather, session::weathers, 15))
|
||||
{
|
||||
g_fiber_pool->queue_job([]
|
||||
{
|
||||
|
Reference in New Issue
Block a user