use crate::edicts::Edict;
use crate::ffi::vcall;
use std::ffi::CStr;
use std::ptr::NonNull;
interface! {
#[doc(alias = "IBotManager")]
pub struct BotManager(sys::IBotManager) = GameServer c"BotManager001";
}
impl<'s> BotManager<'s> {
#[doc(alias = "CreateBot")]
pub fn create_bot(self, name: &CStr) -> Option<Edict<'s>> {
let edict = unsafe { vcall!(self.as_ptr() => IBotManager_CreateBot(name.as_ptr())) };
NonNull::new(edict).map(|edict| unsafe { Edict::from_raw(edict) })
}
}