use crate::dynamic_data::{BattleStatCalculator, DamageLibrary, DynamicLibrary, MiscLibrary, ScriptResolver}; use crate::ffi::{IdentifiablePointer, OwnedPtr}; use crate::static_data::StaticData; #[no_mangle] extern "C" fn dynamic_library_new( static_data: OwnedPtr, stat_calculator: OwnedPtr>, damage_library: OwnedPtr>, misc_library: OwnedPtr>, script_resolver: OwnedPtr>, ) -> IdentifiablePointer { unsafe { Box::new(DynamicLibrary::new( *Box::from_raw(static_data), *Box::from_raw(stat_calculator), *Box::from_raw(damage_library), *Box::from_raw(misc_library), *Box::from_raw(script_resolver), )) .into() } }