From 76a049b62b900f801c6a4a908c95ad88fa401e58 Mon Sep 17 00:00:00 2001 From: aa15032261 Date: Sun, 17 Jul 2022 04:37:44 +0800 Subject: [PATCH] Added seat changer feature. (#346) --- .../src/views/vehicle/view_vehicle_fun.cpp | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/BigBaseV2/src/views/vehicle/view_vehicle_fun.cpp b/BigBaseV2/src/views/vehicle/view_vehicle_fun.cpp index f07c8ef0..f302fab5 100644 --- a/BigBaseV2/src/views/vehicle/view_vehicle_fun.cpp +++ b/BigBaseV2/src/views/vehicle/view_vehicle_fun.cpp @@ -10,6 +10,78 @@ namespace big { void view::vehicle_fun() { + static std::map seats; + static bool ready = true; + + if (self::veh == 0) + { + seats.clear(); + } + + if (self::veh != 0 && ready == true) + { + ready = false; + + g_fiber_pool->queue_job([] { + + std::map tmp_seats; + + Hash model = ENTITY::GET_ENTITY_MODEL(self::veh); + int num_of_seats = VEHICLE::GET_VEHICLE_MODEL_NUMBER_OF_SEATS(model); + + for (int i = -1; i < num_of_seats - 1; i++) + { + tmp_seats[i] = VEHICLE::IS_VEHICLE_SEAT_FREE(self::veh, i, true); + } + + seats = tmp_seats; + ready = true; + }); + } + + + components::small_text("Seat Changer"); + + if (seats.size() == 0) + { + ImGui::Text("Please enter a vehicle."); + } + else + { + for (auto& it : seats) + { + int idx = it.first; + + if (!it.second) + { + ImGui::BeginDisabled(); + } + + std::string name = "Driver"; + + if (idx >= 0) + { + name = "Seat " + std::to_string(idx + 1); + } + + if ((idx + 1) % 4 != 0) { + ImGui::SameLine(); + } + + components::button(name, [idx] { + PED::SET_PED_INTO_VEHICLE(self::ped, self::veh, idx); + }); + if (!it.second) + { + ImGui::EndDisabled(); + } + } + } + + ImGui::Separator(); + + + components::small_text("Auto Drive"); components::button("Drive To Waypoint", [] {