omp_gdk/scripting/checkpoints/
events.rs

1#![allow(clippy::all)]
2use crate::{events::EventArgs, players::Player, runtime::each_module};
3
4#[repr(C)]
5pub struct OnPlayerEnterCheckpointArgs {
6    player: *const *const std::ffi::c_void,
7}
8
9#[no_mangle]
10pub unsafe extern "C" fn OMPRS_OnPlayerEnterCheckpoint(
11    args: *const EventArgs<OnPlayerEnterCheckpointArgs>,
12) {
13    each_module(move |mut script| {
14        script.on_player_enter_checkpoint(Player::new(*(*(*args).list).player));
15        None
16    });
17}
18
19#[repr(C)]
20pub struct OnPlayerLeaveCheckpointArgs {
21    player: *const *const std::ffi::c_void,
22}
23
24#[no_mangle]
25pub unsafe extern "C" fn OMPRS_OnPlayerLeaveCheckpoint(
26    args: *const EventArgs<OnPlayerLeaveCheckpointArgs>,
27) {
28    each_module(move |mut script| {
29        script.on_player_leave_checkpoint(Player::new(*(*(*args).list).player));
30        None
31    });
32}
33
34#[repr(C)]
35pub struct OnPlayerEnterRaceCheckpointArgs {
36    player: *const *const std::ffi::c_void,
37}
38
39#[no_mangle]
40pub unsafe extern "C" fn OMPRS_OnPlayerEnterRaceCheckpoint(
41    args: *const EventArgs<OnPlayerEnterRaceCheckpointArgs>,
42) {
43    each_module(move |mut script| {
44        script.on_player_enter_race_checkpoint(Player::new(*(*(*args).list).player));
45        None
46    });
47}
48
49#[repr(C)]
50pub struct OnPlayerLeaveRaceCheckpointArgs {
51    player: *const *const std::ffi::c_void,
52}
53
54#[no_mangle]
55pub unsafe extern "C" fn OMPRS_OnPlayerLeaveRaceCheckpoint(
56    args: *const EventArgs<OnPlayerLeaveRaceCheckpointArgs>,
57) {
58    each_module(move |mut script| {
59        script.on_player_leave_race_checkpoint(Player::new(*(*(*args).list).player));
60        None
61    });
62}