omp-gdk 2.1.0

Rust SDK for developing open.mp gamemodes
Documentation
#![allow(clippy::all)]
use crate::{events::EventArgs, players::Player, runtime::each_module};

#[repr(C)]
pub struct OnPlayerEnterCheckpointArgs {
    player: *const *const std::ffi::c_void,
}

#[no_mangle]
pub unsafe extern "C" fn OMPRS_OnPlayerEnterCheckpoint(
    args: *const EventArgs<OnPlayerEnterCheckpointArgs>,
) {
    each_module(move |mut script| {
        script.on_player_enter_checkpoint(Player::new(*(*(*args).list).player));
        None
    });
}

#[repr(C)]
pub struct OnPlayerLeaveCheckpointArgs {
    player: *const *const std::ffi::c_void,
}

#[no_mangle]
pub unsafe extern "C" fn OMPRS_OnPlayerLeaveCheckpoint(
    args: *const EventArgs<OnPlayerLeaveCheckpointArgs>,
) {
    each_module(move |mut script| {
        script.on_player_leave_checkpoint(Player::new(*(*(*args).list).player));
        None
    });
}

#[repr(C)]
pub struct OnPlayerEnterRaceCheckpointArgs {
    player: *const *const std::ffi::c_void,
}

#[no_mangle]
pub unsafe extern "C" fn OMPRS_OnPlayerEnterRaceCheckpoint(
    args: *const EventArgs<OnPlayerEnterRaceCheckpointArgs>,
) {
    each_module(move |mut script| {
        script.on_player_enter_race_checkpoint(Player::new(*(*(*args).list).player));
        None
    });
}

#[repr(C)]
pub struct OnPlayerLeaveRaceCheckpointArgs {
    player: *const *const std::ffi::c_void,
}

#[no_mangle]
pub unsafe extern "C" fn OMPRS_OnPlayerLeaveRaceCheckpoint(
    args: *const EventArgs<OnPlayerLeaveRaceCheckpointArgs>,
) {
    each_module(move |mut script| {
        script.on_player_leave_race_checkpoint(Player::new(*(*(*args).list).player));
        None
    });
}