147 lines
3.8 KiB
C++
147 lines
3.8 KiB
C++
#include "core/data/speedo_meters.hpp"
|
|
#include "fiber_pool.hpp"
|
|
#include "gui/handling/handling_tabs.hpp"
|
|
#include "script.hpp"
|
|
#include "util/vehicle.hpp"
|
|
#include "views/view.hpp"
|
|
|
|
|
|
namespace big
|
|
{
|
|
void view::vehicle() {
|
|
ImGui::BeginGroup();
|
|
ImGui::Checkbox("Can Be Targeted", &g->vehicle.is_targetable);
|
|
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("Instant Brake", &g->vehicle.instant_brake);
|
|
ImGui::Checkbox("Drive On Water", &g->vehicle.drive_on_water);
|
|
|
|
ImGui::EndGroup();
|
|
ImGui::SameLine();
|
|
ImGui::BeginGroup();
|
|
|
|
ImGui::Checkbox("Seatbelt", &g->vehicle.seatbelt);
|
|
|
|
components::button("Repair", [] {
|
|
vehicle::repair(self::veh);
|
|
});
|
|
|
|
components::button("Instant in personal vehicle", [] {
|
|
if (!*g_pointers->m_is_session_started) return g_notification_service->push_warning("WARNING", "Go into GTA V Online to use this option");
|
|
|
|
vehicle::go_into_personal_vehicle();
|
|
});
|
|
|
|
if (ImGui::TreeNode("Paint"))
|
|
{
|
|
ImGui::ListBox("RGB Type", &g->vehicle.rainbow_paint, vehicle::rgb_types, 3);
|
|
|
|
if (g->vehicle.rainbow_paint)
|
|
{
|
|
ImGui::SliderInt("RGB Speed", &g->rgb.speed, 1, 10);
|
|
}
|
|
|
|
ImGui::TreePop();
|
|
}
|
|
|
|
ImGui::Checkbox("Turn Signals", &g->vehicle.turn_signals);
|
|
|
|
if (g->vehicle.turn_signals)
|
|
{
|
|
ImGui::Checkbox("Fully Automatic Signal", &g->vehicle.auto_turn_signals);
|
|
}
|
|
|
|
ImGui::EndGroup();
|
|
|
|
ImGui::Separator();
|
|
|
|
components::small_text("Auto Drive");
|
|
|
|
components::button("Drive To Waypoint", [] {
|
|
|
|
g->vehicle.auto_drive_to_waypoint = true;
|
|
});
|
|
|
|
components::button("Wander", [] {
|
|
|
|
g->vehicle.auto_drive_wander = true;
|
|
});
|
|
|
|
ImGui::SliderInt("Top Speed", &g->vehicle.auto_drive_speed, 1, 200);
|
|
|
|
components::button("E-Stop", [] {
|
|
|
|
g->vehicle.auto_drive_to_waypoint = false;
|
|
g->vehicle.auto_drive_wander = false;
|
|
VEHICLE::SET_VEHICLE_FORWARD_SPEED(self::veh, 0);
|
|
TASK::CLEAR_VEHICLE_TASKS_(self::veh);
|
|
TASK::CLEAR_PED_TASKS(self::ped);
|
|
});
|
|
|
|
if (ImGui::ListBox("Driving Style", &g->vehicle.driving_style_id, vehicle::driving_style_names, 2))
|
|
{
|
|
g->vehicle.driving_style_flags = vehicle::driving_styles[g->vehicle.driving_style_id];
|
|
g_notification_service->push_warning("Auto Drive", fmt::format("Driving style set to {}.", vehicle::driving_style_names[g->vehicle.driving_style_id]));
|
|
}
|
|
|
|
ImGui::Separator();
|
|
|
|
components::small_text("Vehicle Fly");
|
|
|
|
ImGui::Checkbox("Enabled", &g->vehicle.fly.enabled);
|
|
ImGui::SameLine();
|
|
ImGui::Checkbox("Disable Collision", &g->vehicle.fly.no_collision);
|
|
|
|
ImGui::Checkbox("Don't Stop", &g->vehicle.fly.dont_stop);
|
|
ImGui::SameLine();
|
|
ImGui::Checkbox("Stop On Exit", &g->vehicle.fly.stop_on_exit);
|
|
|
|
ImGui::SliderFloat("Speed", &g->vehicle.fly.speed, 1.f, 100.f, "%.0f", 1);
|
|
|
|
ImGui::Separator();
|
|
|
|
components::small_text("LS Customs");
|
|
|
|
components::button("Start LS Customs", [] {
|
|
g->vehicle.ls_customs = true;
|
|
});
|
|
|
|
ImGui::Separator();
|
|
|
|
components::small_text("Speedo Meter");
|
|
|
|
SpeedoMeter selected = g->vehicle.speedo_meter.type;
|
|
|
|
ImGui::Text("Type:");
|
|
if (ImGui::BeginCombo("###speedo_type", speedo_meters[(int)selected].name))
|
|
{
|
|
for (const speedo_meter& speedo : speedo_meters)
|
|
{
|
|
if (ImGui::Selectable(speedo.name, speedo.id == selected))
|
|
{
|
|
g->vehicle.speedo_meter.type = speedo.id;
|
|
}
|
|
|
|
if (speedo.id == selected)
|
|
ImGui::SetItemDefaultFocus();
|
|
}
|
|
|
|
ImGui::EndCombo();
|
|
}
|
|
|
|
ImGui::Text("Position");
|
|
|
|
float pos[2];
|
|
pos[0] = g->vehicle.speedo_meter.x;
|
|
pos[1] = 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];
|
|
}
|
|
|
|
ImGui::Checkbox("Left Sided", &g->vehicle.speedo_meter.left_side);
|
|
}
|
|
}
|