1use omp_codegen::native;
2
3use std::ffi::c_void;
4
5use crate::players::Player;
6
7use super::Vehicle;
8
9native!(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);
10native!(Vehicle_Destroy, vehicle: struct Vehicle, -> bool);
11native!(Vehicle_FromID, vehicleid: i32, -> struct Vehicle);
12native!(Vehicle_GetID, vehicle: struct Vehicle, -> i32);
13native!(Vehicle_GetMaxPassengerSeats, modelid: i32, -> i32);
14native!(Vehicle_IsStreamedIn, vehicle: struct Vehicle, player: struct Player, -> bool);
15native!(Vehicle_GetPos, vehicle: struct Vehicle, x: mut f32, y: mut f32, z: mut f32, -> bool);
16native!(Vehicle_SetPos, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> bool);
17native!(Vehicle_GetZAngle, vehicle: struct Vehicle, -> f32);
18native!(Vehicle_GetRotationQuat, vehicle: struct Vehicle, w: mut f32, x: mut f32, y: mut f32, z: mut f32, -> bool);
19native!(Vehicle_GetDistanceFromPoint, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> f32);
20native!(Vehicle_SetZAngle, vehicle: struct Vehicle, angle: f32, -> bool);
21native!(Vehicle_SetParamsForPlayer, vehicle: struct Vehicle, player: struct Player, objective: i32, doors: i32, -> bool);
22native!(Vehicle_UseManualEngineAndLights, -> bool);
23native!(Vehicle_SetParamsEx, vehicle: struct Vehicle, engine: i32, lights: i32, alarm: i32, doors: i32, bonnet: i32, boot: i32, objective: i32, -> bool);
24native!(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);
25native!(Vehicle_GetParamsSirenState, vehicle: struct Vehicle, -> i32);
26native!(Vehicle_SetParamsCarDoors, vehicle: struct Vehicle, frontLeft: i32, frontRight: i32, rearLeft: i32, rearRight: i32, -> bool);
27native!(Vehicle_GetParamsCarDoors, vehicle: struct Vehicle, frontLeft: mut i32, frontRight: mut i32, rearLeft: mut i32, rearRight: mut i32, -> bool);
28native!(Vehicle_SetParamsCarWindows, vehicle: struct Vehicle, frontLeft: i32, frontRight: i32, rearLeft: i32, rearRight: i32, -> bool);
29native!(Vehicle_GetParamsCarWindows, vehicle: struct Vehicle, frontLeft: mut i32, frontRight: mut i32, rearLeft: mut i32, rearRight: mut i32, -> bool);
30native!(Vehicle_SetToRespawn, vehicle: struct Vehicle, -> bool);
31native!(Vehicle_LinkToInterior, vehicle: struct Vehicle, interiorid: i32, -> bool);
32native!(Vehicle_AddComponent, vehicle: struct Vehicle, componentid: i32, -> bool);
33native!(Vehicle_RemoveComponent, vehicle: struct Vehicle, componentid: i32, -> bool);
34native!(Vehicle_ChangeColor, vehicle: struct Vehicle, color1: i32, color2: i32, -> bool);
35native!(Vehicle_ChangePaintjob, vehicle: struct Vehicle, paintjobid: i32, -> bool);
36native!(Vehicle_SetHealth, vehicle: struct Vehicle, health: f32, -> bool);
37native!(Vehicle_GetHealth, vehicle: struct Vehicle, -> f32);
38native!(Vehicle_AttachTrailer, trailer: struct Vehicle, vehicle: struct Vehicle, -> bool);
39native!(Vehicle_DetachTrailer, vehicle: struct Vehicle, -> bool);
40native!(Vehicle_IsTrailerAttached, vehicle: struct Vehicle, -> bool);
41native!(Vehicle_GetTrailer, vehicle: struct Vehicle, -> struct Vehicle);
42native!(Vehicle_SetNumberPlate, vehicle: struct Vehicle, numberPlate: str, -> bool);
43native!(Vehicle_GetModel, vehicle: struct Vehicle, -> i32);
44native!(Vehicle_GetComponentInSlot, vehicle: struct Vehicle, slot: i32, -> i32);
45native!(Vehicle_GetComponentType, componentid: i32, -> i32);
46native!(Vehicle_CanHaveComponent, modelid: i32, componentid: i32, -> bool);
47native!(Vehicle_GetRandomColorPair, modelid: i32, color1: mut i32, color2: mut i32, color3: mut i32, color4: mut i32, -> bool);
48native!(Vehicle_ColorIndexToColor, colorIndex: i32, alpha: i32, -> i32);
49native!(Vehicle_Repair, vehicle: struct Vehicle, -> bool);
50native!(Vehicle_GetVelocity, vehicle: struct Vehicle, x: mut f32, y: mut f32, z: mut f32, -> bool);
51native!(Vehicle_SetVelocity, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> bool);
52native!(Vehicle_SetAngularVelocity, vehicle: struct Vehicle, x: f32, y: f32, z: f32, -> bool);
53native!(Vehicle_GetDamageStatus, vehicle: struct Vehicle, panels: mut i32, doors: mut i32, lights: mut i32, tires: mut i32, -> bool);
54native!(Vehicle_UpdateDamageStatus, vehicle: struct Vehicle, panels: i32, doors: i32, lights: i32, tires: i32, -> bool);
55native!(Vehicle_GetModelInfo, vehiclemodel: i32, infotype: i32, x: mut f32, y: mut f32, z: mut f32, -> bool);
56native!(Vehicle_SetVirtualWorld, vehicle: struct Vehicle, virtualWorld: i32, -> bool);
57native!(Vehicle_GetVirtualWorld, vehicle: struct Vehicle, -> i32);
58native!(Vehicle_GetLandingGearState, vehicle: struct Vehicle, -> i32);
59native!(Vehicle_IsValid, vehicle: struct Vehicle, -> bool);
60native!(Vehicle_AddStatic, modelid: i32, x: f32, y: f32, z: f32, angle: f32, color1: i32, color2: i32, id: mut i32, -> struct Vehicle);
61native!(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);
62native!(Vehicle_EnableFriendlyFire, -> bool);
63native!(Vehicle_GetSpawnInfo, vehicle: struct Vehicle, x: mut f32, y: mut f32, z: mut f32, rotation: mut f32, color1: mut i32, color2: mut i32, -> bool);
64native!(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);
65native!(Vehicle_GetModelCount, modelid: i32, -> i32);
66native!(Vehicle_GetModelsUsed, -> i32);
67native!(Vehicle_GetPaintjob, vehicle: struct Vehicle, -> i32);
68native!(Vehicle_GetColor, vehicle: struct Vehicle, color1: mut i32, color2: mut i32, -> bool);
69native!(Vehicle_GetInterior, vehicle: struct Vehicle, -> i32);
70native!(Vehicle_GetNumberPlate, vehicle: struct Vehicle, numberPlate: mut str, numberPlate_len: usize, -> bool);
71native!(Vehicle_SetRespawnDelay, vehicle: struct Vehicle, respawn_delay: i32, -> bool);
72native!(Vehicle_GetRespawnDelay, vehicle: struct Vehicle, -> i32);
73native!(Vehicle_GetCab, vehicle: struct Vehicle, -> struct Vehicle);
74native!(Vehicle_GetTower, vehicle: struct Vehicle, -> struct Vehicle);
75native!(Vehicle_GetOccupiedTick, vehicle: struct Vehicle, -> i32);
76native!(Vehicle_GetRespawnTick, vehicle: struct Vehicle, -> i32);
77native!(Vehicle_HasBeenOccupied, vehicle: struct Vehicle, -> bool);
78native!(Vehicle_IsOccupied, vehicle: struct Vehicle, -> bool);
79native!(Vehicle_IsDead, vehicle: struct Vehicle, -> bool);
80native!(Vehicle_SetParamsSirenState, vehicle: struct Vehicle, siren_state: bool, -> bool);
81native!(Vehicle_ToggleSirenEnabled, vehicle: struct Vehicle, status: bool, -> bool);
82native!(Vehicle_IsSirenEnabled, vehicle: struct Vehicle, -> bool);
83native!(Vehicle_GetLastDriver, vehicle: struct Vehicle, -> struct Player);
84native!(Vehicle_GetDriver, vehicle: struct Vehicle, -> struct Player);
85native!(Vehicle_GetSirenState, vehicle: struct Vehicle, -> i32);
86native!(Vehicle_GetHydraReactorAngle, vehicle: struct Vehicle, -> u32);
87native!(Vehicle_GetTrainSpeed, vehicle: struct Vehicle, -> f32);
88native!(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);
89native!(Vehicle_GetOccupant, vehicle: struct Vehicle, seat: i32, -> struct Player);
90native!(Vehicle_CountOccupants, vehicle: struct Vehicle, -> i32);
91
92#[doc(hidden)]
93pub fn load_functions() {
94 load_function!(Vehicle_Create);
95 load_function!(Vehicle_Destroy);
96 load_function!(Vehicle_FromID);
97 load_function!(Vehicle_GetID);
98 load_function!(Vehicle_GetMaxPassengerSeats);
99 load_function!(Vehicle_IsStreamedIn);
100 load_function!(Vehicle_GetPos);
101 load_function!(Vehicle_SetPos);
102 load_function!(Vehicle_GetZAngle);
103 load_function!(Vehicle_GetRotationQuat);
104 load_function!(Vehicle_GetDistanceFromPoint);
105 load_function!(Vehicle_SetZAngle);
106 load_function!(Vehicle_SetParamsForPlayer);
107 load_function!(Vehicle_UseManualEngineAndLights);
108 load_function!(Vehicle_SetParamsEx);
109 load_function!(Vehicle_GetParamsEx);
110 load_function!(Vehicle_GetParamsSirenState);
111 load_function!(Vehicle_SetParamsCarDoors);
112 load_function!(Vehicle_GetParamsCarDoors);
113 load_function!(Vehicle_SetParamsCarWindows);
114 load_function!(Vehicle_GetParamsCarWindows);
115 load_function!(Vehicle_SetToRespawn);
116 load_function!(Vehicle_LinkToInterior);
117 load_function!(Vehicle_AddComponent);
118 load_function!(Vehicle_RemoveComponent);
119 load_function!(Vehicle_ChangeColor);
120 load_function!(Vehicle_ChangePaintjob);
121 load_function!(Vehicle_SetHealth);
122 load_function!(Vehicle_GetHealth);
123 load_function!(Vehicle_AttachTrailer);
124 load_function!(Vehicle_DetachTrailer);
125 load_function!(Vehicle_IsTrailerAttached);
126 load_function!(Vehicle_GetTrailer);
127 load_function!(Vehicle_SetNumberPlate);
128 load_function!(Vehicle_GetModel);
129 load_function!(Vehicle_GetComponentInSlot);
130 load_function!(Vehicle_GetComponentType);
131 load_function!(Vehicle_CanHaveComponent);
132 load_function!(Vehicle_GetRandomColorPair);
133 load_function!(Vehicle_ColorIndexToColor);
134 load_function!(Vehicle_Repair);
135 load_function!(Vehicle_GetVelocity);
136 load_function!(Vehicle_SetVelocity);
137 load_function!(Vehicle_SetAngularVelocity);
138 load_function!(Vehicle_GetDamageStatus);
139 load_function!(Vehicle_UpdateDamageStatus);
140 load_function!(Vehicle_GetModelInfo);
141 load_function!(Vehicle_SetVirtualWorld);
142 load_function!(Vehicle_GetVirtualWorld);
143 load_function!(Vehicle_GetLandingGearState);
144 load_function!(Vehicle_IsValid);
145 load_function!(Vehicle_AddStatic);
146 load_function!(Vehicle_AddStaticEx);
147 load_function!(Vehicle_EnableFriendlyFire);
148 load_function!(Vehicle_GetSpawnInfo);
149 load_function!(Vehicle_SetSpawnInfo);
150 load_function!(Vehicle_GetModelCount);
151 load_function!(Vehicle_GetModelsUsed);
152 load_function!(Vehicle_GetPaintjob);
153 load_function!(Vehicle_GetColor);
154 load_function!(Vehicle_GetInterior);
155 load_function!(Vehicle_GetNumberPlate);
156 load_function!(Vehicle_SetRespawnDelay);
157 load_function!(Vehicle_GetRespawnDelay);
158 load_function!(Vehicle_GetCab);
159 load_function!(Vehicle_GetTower);
160 load_function!(Vehicle_GetOccupiedTick);
161 load_function!(Vehicle_GetRespawnTick);
162 load_function!(Vehicle_HasBeenOccupied);
163 load_function!(Vehicle_IsOccupied);
164 load_function!(Vehicle_IsDead);
165 load_function!(Vehicle_SetParamsSirenState);
166 load_function!(Vehicle_ToggleSirenEnabled);
167 load_function!(Vehicle_IsSirenEnabled);
168 load_function!(Vehicle_GetLastDriver);
169 load_function!(Vehicle_GetDriver);
170 load_function!(Vehicle_GetSirenState);
171 load_function!(Vehicle_GetHydraReactorAngle);
172 load_function!(Vehicle_GetTrainSpeed);
173 load_function!(Vehicle_GetMatrix);
174 load_function!(Vehicle_GetOccupant);
175 load_function!(Vehicle_CountOccupants);
176}