spring_ai_rs/ai_interface/callback/
mod.rs1pub mod cheat;
2pub mod command;
3pub mod data_dir;
4pub mod engine;
5pub mod feature;
6pub mod feature_def;
7pub mod game;
8pub mod game_mod;
9pub mod group;
10pub mod drawer;
13pub mod facing;
14pub mod fire_state;
15pub mod idle_mode;
16pub mod lua;
17pub mod map;
18pub mod move_state;
19pub mod other;
20pub mod path;
21pub mod position;
22pub mod resource;
23pub mod send;
24pub mod skirmish_ai;
25pub mod teams;
26pub mod trace;
27pub mod trajectory;
28pub mod unit;
29pub mod unit_def;
30pub mod weapon_def;
31
32#[macro_export]
33macro_rules! get_callback {
34 ($ai_id:expr, $command_name:ident) => {
35 unsafe {
36 $crate::skirmish_ai::get_skirmish_ai($ai_id)
37 .ok_or("Cannot get skirmish ai")
38 .and_then(|skirmish_ai| {
39 skirmish_ai
40 .get_callback()
41 .ok_or("Cannot get callback")
42 .and_then(|callback| {
43 callback
44 .as_ref()
45 .$command_name
46 .ok_or(stringify!("No callback function exists:" $command_name))
47 })
48 })
49 }
50 };
51}