samp_sdk/omp/generated/race_checkpoint.rs
1//! `IRaceCheckpointData` — generated by `cargo xtask gen-omp` from `Server/Components/Checkpoints/checkpoints.hpp`.
2//! Implemented by `RaceCheckpointData` in the server's `Checkpoints`.
3//!
4//! Do not edit: change `xtask/omp-wrappers.toml` or the generator and
5//! regenerate. Slots are clang's layout of the header for each ABI, checked
6//! against the official binaries by `cargo xtask check-abi --generated`.
7
8#![allow(unused_imports)]
9
10use crate::omp::containers::{FlatSet, HybridString, Pair, Span};
11use crate::omp::types::{
12 Colour, GTAQuat, Hours, Microseconds, Milliseconds, Minutes, Seconds, StringView, TimePoint,
13 UID, Vector2, Vector3, Vector4, WorldTimePoint,
14};
15use crate::omp::vtable::{call_vtable_small_struct, opaque, slots, virtual_fns};
16use crate::omp::*;
17
18opaque! {
19 /// Opaque handle for `IRaceCheckpointData*`.
20 pub IRaceCheckpointData;
21}
22
23slots! {
24 /// `Vector3 ICheckpointDataBase::getPosition()`
25 SLOT_GET_POSITION: usize = 0, 0;
26 /// `void ICheckpointDataBase::setPosition(const Vector3 &)`
27 SLOT_SET_POSITION: usize = 1, 1;
28 /// `float ICheckpointDataBase::getRadius()`
29 SLOT_GET_RADIUS: usize = 2, 2;
30 /// `void ICheckpointDataBase::setRadius(float)`
31 SLOT_SET_RADIUS: usize = 3, 3;
32 /// `bool ICheckpointDataBase::isPlayerInside()`
33 SLOT_IS_PLAYER_INSIDE: usize = 4, 4;
34 /// `void ICheckpointDataBase::setPlayerInside(bool)`
35 SLOT_SET_PLAYER_INSIDE: usize = 5, 5;
36 /// `void ICheckpointDataBase::enable()`
37 SLOT_ENABLE: usize = 6, 6;
38 /// `void ICheckpointDataBase::disable()`
39 SLOT_DISABLE: usize = 7, 7;
40 /// `bool ICheckpointDataBase::isEnabled()`
41 SLOT_IS_ENABLED: usize = 8, 8;
42 /// `RaceCheckpointType IRaceCheckpointData::getType()`
43 SLOT_GET_TYPE: usize = 9, 9;
44 /// `void IRaceCheckpointData::setType(RaceCheckpointType)`
45 SLOT_SET_TYPE: usize = 10, 10;
46 /// `Vector3 IRaceCheckpointData::getNextPosition()`
47 SLOT_GET_NEXT_POSITION: usize = 11, 11;
48 /// `void IRaceCheckpointData::setNextPosition(const Vector3 &)`
49 SLOT_SET_NEXT_POSITION: usize = 12, 12;
50}
51
52virtual_fns! {
53 /// `Vector3 ICheckpointDataBase::getPosition()`.
54 ///
55 /// # Safety
56 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
57 #[must_use]
58 pub fn race_checkpoint_position(
59 race_checkpoint: IRaceCheckpointData,
60 ) -> Vector3 = [0, SLOT_GET_POSITION] or Vector3::ZERO;
61
62 /// `void ICheckpointDataBase::setPosition(const Vector3 &)`.
63 ///
64 /// # Safety
65 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
66 pub fn race_checkpoint_set_position(
67 race_checkpoint: IRaceCheckpointData,
68 position: &Vector3,
69 ) = [0, SLOT_SET_POSITION];
70
71 /// `float ICheckpointDataBase::getRadius()`.
72 ///
73 /// # Safety
74 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
75 #[must_use]
76 pub fn race_checkpoint_radius(
77 race_checkpoint: IRaceCheckpointData,
78 ) -> f32 = [0, SLOT_GET_RADIUS] or 0.0;
79
80 /// `void ICheckpointDataBase::setRadius(float)`.
81 ///
82 /// # Safety
83 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
84 pub fn race_checkpoint_set_radius(
85 race_checkpoint: IRaceCheckpointData,
86 radius: f32,
87 ) = [0, SLOT_SET_RADIUS];
88
89 /// `bool ICheckpointDataBase::isPlayerInside()`.
90 ///
91 /// # Safety
92 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
93 #[must_use]
94 pub fn race_checkpoint_is_player_inside(
95 race_checkpoint: IRaceCheckpointData,
96 ) -> bool = [0, SLOT_IS_PLAYER_INSIDE] or false;
97
98 /// `void ICheckpointDataBase::setPlayerInside(bool)`.
99 ///
100 /// # Safety
101 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
102 pub fn race_checkpoint_set_player_inside(
103 race_checkpoint: IRaceCheckpointData,
104 inside: bool,
105 ) = [0, SLOT_SET_PLAYER_INSIDE];
106
107 /// `void ICheckpointDataBase::enable()`.
108 ///
109 /// # Safety
110 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
111 pub fn race_checkpoint_enable(race_checkpoint: IRaceCheckpointData) = [0, SLOT_ENABLE];
112
113 /// `void ICheckpointDataBase::disable()`.
114 ///
115 /// # Safety
116 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
117 pub fn race_checkpoint_disable(race_checkpoint: IRaceCheckpointData) = [0, SLOT_DISABLE];
118
119 /// `bool ICheckpointDataBase::isEnabled()`.
120 ///
121 /// # Safety
122 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
123 #[must_use]
124 pub fn race_checkpoint_is_enabled(
125 race_checkpoint: IRaceCheckpointData,
126 ) -> bool = [0, SLOT_IS_ENABLED] or false;
127
128 /// `RaceCheckpointType IRaceCheckpointData::getType()`.
129 ///
130 /// # Safety
131 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
132 #[must_use]
133 pub fn race_checkpoint_type(
134 race_checkpoint: IRaceCheckpointData,
135 ) -> i32 = [0, SLOT_GET_TYPE] or 0;
136
137 /// `void IRaceCheckpointData::setType(RaceCheckpointType)`.
138 ///
139 /// # Safety
140 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
141 pub fn race_checkpoint_set_type(
142 race_checkpoint: IRaceCheckpointData,
143 type_value: i32,
144 ) = [0, SLOT_SET_TYPE];
145
146 /// `Vector3 IRaceCheckpointData::getNextPosition()`.
147 ///
148 /// # Safety
149 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
150 #[must_use]
151 pub fn race_checkpoint_next_position(
152 race_checkpoint: IRaceCheckpointData,
153 ) -> Vector3 = [0, SLOT_GET_NEXT_POSITION] or Vector3::ZERO;
154
155 /// `void IRaceCheckpointData::setNextPosition(const Vector3 &)`.
156 ///
157 /// # Safety
158 /// `race_checkpoint` must be a live `IRaceCheckpointData`.
159 pub fn race_checkpoint_set_next_position(
160 race_checkpoint: IRaceCheckpointData,
161 next_position: &Vector3,
162 ) = [0, SLOT_SET_NEXT_POSITION];
163}