Skip to main content

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}