rust/lib-hedgewars-engine/src/lib.rs
changeset 14854 aed75d439027
parent 14713 cc6ab1e3f7d5
child 15265 07e909ba4203
equal deleted inserted replaced
14853:b96ba3c1ab67 14854:aed75d439027
    19 pub struct PreviewInfo {
    19 pub struct PreviewInfo {
    20     width: u32,
    20     width: u32,
    21     height: u32,
    21     height: u32,
    22     hedgehogs_number: u8,
    22     hedgehogs_number: u8,
    23     land: *const u8,
    23     land: *const u8,
       
    24 }
       
    25 
       
    26 #[repr(C)]
       
    27 #[derive(Debug, PartialEq, Clone)]
       
    28 pub enum SimpleEventType {
       
    29     SwitchHedgehog,
       
    30     Timer,
       
    31     LongJump,
       
    32     HighJump,
       
    33     Accept,
       
    34     Deny,
       
    35 }
       
    36 
       
    37 #[repr(C)]
       
    38 #[derive(Debug, PartialEq, Clone)]
       
    39 pub enum LongEventType {
       
    40     ArrowUp,
       
    41     ArrowDown,
       
    42     ArrowLeft,
       
    43     ArrowRight,
       
    44     Precision,
       
    45     Attack,
       
    46 }
       
    47 
       
    48 #[repr(C)]
       
    49 #[derive(Debug, PartialEq, Clone)]
       
    50 pub enum LongEventState {
       
    51     Set,
       
    52     Unset,
       
    53 }
       
    54 
       
    55 #[repr(C)]
       
    56 #[derive(Debug, PartialEq, Clone)]
       
    57 pub enum PositionedEventType {
       
    58     CursorMove,
       
    59     CursorClick,
       
    60 }
       
    61 
       
    62 #[no_mangle]
       
    63 pub extern "C" fn simple_event(engine_state: &mut EngineInstance, event_type: SimpleEventType) {}
       
    64 
       
    65 #[no_mangle]
       
    66 pub extern "C" fn long_event(
       
    67     engine_state: &mut EngineInstance,
       
    68     event_type: LongEventType,
       
    69     state: LongEventState,
       
    70 ) {
       
    71     println!("{:?}: {:?}", event_type, state);
       
    72 }
       
    73 
       
    74 #[no_mangle]
       
    75 pub extern "C" fn positioned_event(
       
    76     engine_state: &mut EngineInstance,
       
    77     event_type: PositionedEventType,
       
    78     x: i32,
       
    79     y: i32,
       
    80 ) {
       
    81 
    24 }
    82 }
    25 
    83 
    26 #[no_mangle]
    84 #[no_mangle]
    27 pub extern "C" fn hedgewars_engine_protocol_version() -> u32 {
    85 pub extern "C" fn hedgewars_engine_protocol_version() -> u32 {
    28     58
    86     58