omp-gdk 2.1.0

Rust SDK for developing open.mp gamemodes
Documentation
use omp_codegen::native;

use std::ffi::c_void;

use crate::players::Player;

use super::Vehicle;

native!(Vehicle_Create, modelid: i32, x: f32, y: f32, z: f32, rotation: f32, color1: i32, color2: i32, respawnDelay: i32, addSiren: bool, id: mut i32, -> struct Vehicle);
native!(Vehicle_Destroy, vehicle: struct Vehicle, -> bool);
native!(Vehicle_FromID, vehicleid: i32, -> struct Vehicle);
native!(Vehicle_GetID, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetMaxPassengerSeats, modelid: i32, -> i32);
native!(Vehicle_IsStreamedIn, vehicle: struct Vehicle, player: struct Player, -> bool);
native!(Vehicle_GetPos, vehicle: struct Vehicle, x: mut f32, y: mut f32, z: mut f32, -> bool);
native!(Vehicle_SetPos, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> bool);
native!(Vehicle_GetZAngle, vehicle: struct Vehicle, -> f32);
native!(Vehicle_GetRotationQuat, vehicle: struct Vehicle, w: mut f32, x: mut f32, y: mut f32, z: mut f32, -> bool);
native!(Vehicle_GetDistanceFromPoint, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> f32);
native!(Vehicle_SetZAngle, vehicle: struct Vehicle, angle: f32, -> bool);
native!(Vehicle_SetParamsForPlayer, vehicle: struct Vehicle, player: struct Player, objective: i32, doors: i32, -> bool);
native!(Vehicle_UseManualEngineAndLights, -> bool);
native!(Vehicle_SetParamsEx, vehicle: struct Vehicle, engine: i32, lights: i32, alarm: i32, doors: i32, bonnet: i32, boot: i32, objective: i32, -> bool);
native!(Vehicle_GetParamsEx, vehicle: struct Vehicle, engine: mut i8, lights: mut i8, alarm: mut i8, doors: mut i8, bonnet: mut i8, boot: mut i8, objective: mut i8, -> bool);
native!(Vehicle_GetParamsSirenState, vehicle: struct Vehicle, -> i32);
native!(Vehicle_SetParamsCarDoors, vehicle: struct Vehicle, frontLeft: i32, frontRight: i32, rearLeft: i32, rearRight: i32, -> bool);
native!(Vehicle_GetParamsCarDoors, vehicle: struct Vehicle, frontLeft: mut i32, frontRight: mut i32, rearLeft: mut i32, rearRight: mut i32, -> bool);
native!(Vehicle_SetParamsCarWindows, vehicle: struct Vehicle, frontLeft: i32, frontRight: i32, rearLeft: i32, rearRight: i32, -> bool);
native!(Vehicle_GetParamsCarWindows, vehicle: struct Vehicle, frontLeft: mut i32, frontRight: mut i32, rearLeft: mut i32, rearRight: mut i32, -> bool);
native!(Vehicle_SetToRespawn, vehicle: struct Vehicle, -> bool);
native!(Vehicle_LinkToInterior, vehicle: struct Vehicle, interiorid: i32, -> bool);
native!(Vehicle_AddComponent, vehicle: struct Vehicle, componentid: i32, -> bool);
native!(Vehicle_RemoveComponent, vehicle: struct Vehicle, componentid: i32, -> bool);
native!(Vehicle_ChangeColor, vehicle: struct Vehicle, color1: i32, color2: i32, -> bool);
native!(Vehicle_ChangePaintjob, vehicle: struct Vehicle, paintjobid: i32, -> bool);
native!(Vehicle_SetHealth, vehicle: struct Vehicle, health: f32, -> bool);
native!(Vehicle_GetHealth, vehicle: struct Vehicle, -> f32);
native!(Vehicle_AttachTrailer, trailer: struct Vehicle, vehicle: struct Vehicle, -> bool);
native!(Vehicle_DetachTrailer, vehicle: struct Vehicle, -> bool);
native!(Vehicle_IsTrailerAttached, vehicle: struct Vehicle, -> bool);
native!(Vehicle_GetTrailer, vehicle: struct Vehicle, -> struct Vehicle);
native!(Vehicle_SetNumberPlate, vehicle: struct Vehicle, numberPlate: str, -> bool);
native!(Vehicle_GetModel, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetComponentInSlot, vehicle: struct Vehicle, slot: i32, -> i32);
native!(Vehicle_GetComponentType, componentid: i32, -> i32);
native!(Vehicle_CanHaveComponent, modelid: i32, componentid: i32, -> bool);
native!(Vehicle_GetRandomColorPair, modelid: i32, color1: mut i32, color2: mut i32, color3: mut i32, color4: mut i32, -> bool);
native!(Vehicle_ColorIndexToColor, colorIndex: i32, alpha: i32, -> i32);
native!(Vehicle_Repair, vehicle: struct Vehicle, -> bool);
native!(Vehicle_GetVelocity, vehicle: struct Vehicle, x: mut f32, y: mut f32, z: mut f32, -> bool);
native!(Vehicle_SetVelocity, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> bool);
native!(Vehicle_SetAngularVelocity, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> bool);
native!(Vehicle_GetDamageStatus, vehicle: struct Vehicle, panels: mut i32, doors: mut i32, lights: mut i32, tires: mut i32, -> bool);
native!(Vehicle_UpdateDamageStatus, vehicle: struct Vehicle, panels: i32, doors: i32, lights: i32, tires: i32, -> bool);
native!(Vehicle_GetModelInfo, vehiclemodel: i32, infotype: i32, x: mut f32, y: mut f32, z: mut f32, -> bool);
native!(Vehicle_SetVirtualWorld, vehicle: struct Vehicle, virtualWorld: i32, -> bool);
native!(Vehicle_GetVirtualWorld, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetLandingGearState, vehicle: struct Vehicle, -> i32);
native!(Vehicle_IsValid, vehicle: struct Vehicle, -> bool);
native!(Vehicle_AddStatic, modelid: i32, x: f32, y: f32, z: f32, angle: f32, color1: i32, color2: i32, id: mut i32, -> struct Vehicle);
native!(Vehicle_AddStaticEx, modelid: i32, x: f32, y: f32, z: f32, angle: f32, color1: i32, color2: i32, respawnDelay: i32, addSiren: bool, id: mut i32, -> struct Vehicle);
native!(Vehicle_EnableFriendlyFire, -> bool);
native!(Vehicle_GetSpawnInfo, vehicle: struct Vehicle, x: mut f32, y: mut f32, z: mut f32, rotation: mut f32, color1: mut i32, color2: mut i32, -> bool);
native!(Vehicle_SetSpawnInfo, vehicle: struct Vehicle, modelid: i32, x: f32, y: f32, z: f32, rotation: f32, color1: i32, color2: i32, respawn_time: i32, interior: i32, -> bool);
native!(Vehicle_GetModelCount, modelid: i32, -> i32);
native!(Vehicle_GetModelsUsed, -> i32);
native!(Vehicle_GetPaintjob, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetColor, vehicle: struct Vehicle, color1: mut i32, color2: mut i32, -> bool);
native!(Vehicle_GetInterior, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetNumberPlate, vehicle: struct Vehicle, numberPlate: mut str, numberPlate_len: usize, -> bool);
native!(Vehicle_SetRespawnDelay, vehicle: struct Vehicle, respawn_delay: i32, -> bool);
native!(Vehicle_GetRespawnDelay, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetCab, vehicle: struct Vehicle, -> struct Vehicle);
native!(Vehicle_GetTower, vehicle: struct Vehicle, -> struct Vehicle);
native!(Vehicle_GetOccupiedTick, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetRespawnTick, vehicle: struct Vehicle, -> i32);
native!(Vehicle_HasBeenOccupied, vehicle: struct Vehicle, -> bool);
native!(Vehicle_IsOccupied, vehicle: struct Vehicle, -> bool);
native!(Vehicle_IsDead, vehicle: struct Vehicle, -> bool);
native!(Vehicle_SetParamsSirenState, vehicle: struct Vehicle, siren_state: bool, -> bool);
native!(Vehicle_ToggleSirenEnabled, vehicle: struct Vehicle, status: bool, -> bool);
native!(Vehicle_IsSirenEnabled, vehicle: struct Vehicle, -> bool);
native!(Vehicle_GetLastDriver, vehicle: struct Vehicle, -> struct Player);
native!(Vehicle_GetDriver, vehicle: struct Vehicle, -> struct Player);
native!(Vehicle_GetSirenState, vehicle: struct Vehicle, -> i32);
native!(Vehicle_GetHydraReactorAngle, vehicle: struct Vehicle, -> u32);
native!(Vehicle_GetTrainSpeed, vehicle: struct Vehicle, -> f32);
native!(Vehicle_GetMatrix, vehicle: struct Vehicle, rightX: mut f32, rightY: mut f32, rightZ: mut f32, upX: mut f32, upY: mut f32, upZ: mut f32, atX: mut f32, atY: mut f32, atZ: mut f32, -> bool);
native!(Vehicle_GetOccupant, vehicle: struct Vehicle, seat: i32, -> struct Player);
native!(Vehicle_CountOccupants, vehicle: struct Vehicle, -> i32);

#[doc(hidden)]
pub fn load_functions() {
    load_function!(Vehicle_Create);
    load_function!(Vehicle_Destroy);
    load_function!(Vehicle_FromID);
    load_function!(Vehicle_GetID);
    load_function!(Vehicle_GetMaxPassengerSeats);
    load_function!(Vehicle_IsStreamedIn);
    load_function!(Vehicle_GetPos);
    load_function!(Vehicle_SetPos);
    load_function!(Vehicle_GetZAngle);
    load_function!(Vehicle_GetRotationQuat);
    load_function!(Vehicle_GetDistanceFromPoint);
    load_function!(Vehicle_SetZAngle);
    load_function!(Vehicle_SetParamsForPlayer);
    load_function!(Vehicle_UseManualEngineAndLights);
    load_function!(Vehicle_SetParamsEx);
    load_function!(Vehicle_GetParamsEx);
    load_function!(Vehicle_GetParamsSirenState);
    load_function!(Vehicle_SetParamsCarDoors);
    load_function!(Vehicle_GetParamsCarDoors);
    load_function!(Vehicle_SetParamsCarWindows);
    load_function!(Vehicle_GetParamsCarWindows);
    load_function!(Vehicle_SetToRespawn);
    load_function!(Vehicle_LinkToInterior);
    load_function!(Vehicle_AddComponent);
    load_function!(Vehicle_RemoveComponent);
    load_function!(Vehicle_ChangeColor);
    load_function!(Vehicle_ChangePaintjob);
    load_function!(Vehicle_SetHealth);
    load_function!(Vehicle_GetHealth);
    load_function!(Vehicle_AttachTrailer);
    load_function!(Vehicle_DetachTrailer);
    load_function!(Vehicle_IsTrailerAttached);
    load_function!(Vehicle_GetTrailer);
    load_function!(Vehicle_SetNumberPlate);
    load_function!(Vehicle_GetModel);
    load_function!(Vehicle_GetComponentInSlot);
    load_function!(Vehicle_GetComponentType);
    load_function!(Vehicle_CanHaveComponent);
    load_function!(Vehicle_GetRandomColorPair);
    load_function!(Vehicle_ColorIndexToColor);
    load_function!(Vehicle_Repair);
    load_function!(Vehicle_GetVelocity);
    load_function!(Vehicle_SetVelocity);
    load_function!(Vehicle_SetAngularVelocity);
    load_function!(Vehicle_GetDamageStatus);
    load_function!(Vehicle_UpdateDamageStatus);
    load_function!(Vehicle_GetModelInfo);
    load_function!(Vehicle_SetVirtualWorld);
    load_function!(Vehicle_GetVirtualWorld);
    load_function!(Vehicle_GetLandingGearState);
    load_function!(Vehicle_IsValid);
    load_function!(Vehicle_AddStatic);
    load_function!(Vehicle_AddStaticEx);
    load_function!(Vehicle_EnableFriendlyFire);
    load_function!(Vehicle_GetSpawnInfo);
    load_function!(Vehicle_SetSpawnInfo);
    load_function!(Vehicle_GetModelCount);
    load_function!(Vehicle_GetModelsUsed);
    load_function!(Vehicle_GetPaintjob);
    load_function!(Vehicle_GetColor);
    load_function!(Vehicle_GetInterior);
    load_function!(Vehicle_GetNumberPlate);
    load_function!(Vehicle_SetRespawnDelay);
    load_function!(Vehicle_GetRespawnDelay);
    load_function!(Vehicle_GetCab);
    load_function!(Vehicle_GetTower);
    load_function!(Vehicle_GetOccupiedTick);
    load_function!(Vehicle_GetRespawnTick);
    load_function!(Vehicle_HasBeenOccupied);
    load_function!(Vehicle_IsOccupied);
    load_function!(Vehicle_IsDead);
    load_function!(Vehicle_SetParamsSirenState);
    load_function!(Vehicle_ToggleSirenEnabled);
    load_function!(Vehicle_IsSirenEnabled);
    load_function!(Vehicle_GetLastDriver);
    load_function!(Vehicle_GetDriver);
    load_function!(Vehicle_GetSirenState);
    load_function!(Vehicle_GetHydraReactorAngle);
    load_function!(Vehicle_GetTrainSpeed);
    load_function!(Vehicle_GetMatrix);
    load_function!(Vehicle_GetOccupant);
    load_function!(Vehicle_CountOccupants);
}