spring_ai_rs/ai_interface/callback/
mod.rs

1pub 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;
10// TODO: Was removed by BAR
11// pub mod gui;
12pub 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}