diff -r 8d9e3af8abce -r 7d3b94cdc3c4 rust/hedgewars-engine/src/lib.rs --- a/rust/hedgewars-engine/src/lib.rs Wed Nov 07 15:18:09 2018 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -extern crate integral_geometry; -extern crate land2d; -extern crate landgen; -extern crate lfprng; - -mod world; - -#[repr(C)] -pub struct EngineInstance { - world: world::World, -} - -#[repr(C)] -#[derive(Copy, Clone)] -pub struct PreviewInfo { - width: u32, - height: u32, - hedgehogs_number: u8, - land: *const u8, -} - -#[no_mangle] -pub extern "C" fn protocol_version() -> u32 { - 56 -} - -#[no_mangle] -pub extern "C" fn start_engine() -> *mut EngineInstance { - let engine_state = Box::new(EngineInstance { - world: world::World::new(), - }); - - Box::leak(engine_state) -} - -#[no_mangle] -pub extern "C" fn generate_preview(engine_state: &mut EngineInstance, preview: &mut PreviewInfo) { - (*engine_state).world.generate_preview(); - - let land_preview = (*engine_state).world.preview(); - - *preview = PreviewInfo { - width: land_preview.width() as u32, - height: land_preview.height() as u32, - hedgehogs_number: 0, - land: land_preview.raw_pixels().as_ptr(), - }; -} - -#[no_mangle] -pub extern "C" fn cleanup(engine_state: *mut EngineInstance) { - unsafe { - Box::from_raw(engine_state); - } -}