spring_ai_rs/ai_interface/callback/game_mod/
mip.rs1use std::error::Error;
2
3use crate::get_callback;
4
5#[derive(Debug, Copy, Clone)]
6pub struct GameModMipLevel {
7 pub ai_id: i32,
8}
9
10#[derive(Debug, Clone)]
11pub struct GameModMipLevelAll {
12 los: i32,
13 air: i32,
14 radar: i32,
15}
16
17impl GameModMipLevel {
18 pub fn los(&self) -> Result<i32, Box<dyn Error>> {
19 let get_los_level = get_callback!(self.ai_id, Mod_getLosMipLevel)?;
20
21 Ok(unsafe { get_los_level(self.ai_id) })
22 }
23
24 pub fn air(&self) -> Result<i32, Box<dyn Error>> {
25 let get_air_level = get_callback!(self.ai_id, Mod_getAirMipLevel)?;
26
27 Ok(unsafe { get_air_level(self.ai_id) })
28 }
29
30 pub fn radar(&self) -> Result<i32, Box<dyn Error>> {
31 let get_radar_level = get_callback!(self.ai_id, Mod_getRadarMipLevel)?;
32
33 Ok(unsafe { get_radar_level(self.ai_id) })
34 }
35
36 pub fn all(&self) -> Result<GameModMipLevelAll, Box<dyn Error>> {
37 Ok(GameModMipLevelAll {
38 los: self.los()?,
39 air: self.air()?,
40 radar: self.radar()?,
41 })
42 }
43}