This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
YimMenu/src/util/vehicle.hpp

61 lines
2.4 KiB
C++

#pragma once
#include "core/scr_globals.hpp"
#include "entity.hpp"
#include "gta/enums.hpp"
#include "gta/joaat.hpp"
#include "gta/vehicle_values.hpp"
#include "math.hpp"
#include "natives.hpp"
#include "pointers.hpp"
#include "script.hpp"
#include "script_global.hpp"
#include "services/vehicle_helper/vehicle_helper.hpp"
namespace big::vehicle
{
struct disable_collisions
{
inline static memory::byte_patch* m_patch;
};
float mps_to_speed(float mps, SpeedUnit speed_unit);
float speed_to_mps(float speed, SpeedUnit speed_unit);
Vector3 get_spawn_location(bool spawn_inside, Hash hash, Ped ped = self::ped);
void set_mp_bitset(Vehicle veh);
void bring(Vehicle veh, Vector3 location, bool put_in = true, int seatIdx = -1);
Vehicle get_closest_to_location(Vector3 location, float range);
bool set_plate(Vehicle veh, const char* plate);
void repair_engine_from_water(Vehicle veh);
bool repair(Vehicle veh);
Vehicle spawn(Hash hash, Vector3 location, float heading, bool is_networked = true, bool script_veh = false);
Vehicle clone_from_vehicle_data(std::map<int, int32_t>& data, Vector3 location, float heading);
std::map<int, int32_t> get_owned_mods_from_vehicle_idx(script_global vehicle_idx);
Vehicle clone_from_owned_mods(std::map<int, int32_t> owned_mods, Vector3 location, float heading, bool is_networked = true, bool is_script_vehicle = false);
std::map<int, int32_t> get_owned_mods_from_vehicle(Vehicle vehicle);
void teleport_into_vehicle(Vehicle veh);
void max_vehicle(Vehicle veh);
void max_vehicle_performance(Vehicle veh);
void set_engine_state(Vehicle current_vehicle, bool state, bool immediately, bool disable_auto_start);
void downgrade(Vehicle vehicle);
bool remote_control_vehicle(Vehicle veh);
/*
Set doorId to eDoorId::VEH_EXT_DOOR_INVALID_ID or simply -1 to apply to all vehicle doors.
*/
bool change_vehicle_door_lock_state(Vehicle veh, eDoorId doorId, eVehicleLockState state);
/*
* Set 'open' to false to close the door.
* Set doorId to eDoorId::VEH_EXT_DOOR_INVALID_ID or simply -1 to apply to all doors.
*/
bool operate_vehicle_door(Vehicle veh, eDoorId doorId, bool open);
bool operate_vehicle_window(Vehicle veh, eWindowId windowId, bool open);
bool operate_vehicle_headlights(Vehicle veh, bool lights, bool highbeams);
/*
* Input index -1 to apply to all neons.
*/
bool operate_vehicle_neons(Vehicle veh, int index, bool toggle);
}