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 |