# HG changeset patch # User unc0rr # Date 1541631658 -3600 # Node ID e2c51c8e0b2e403eb5c84eeb736238aa18fa3a57 # Parent 5c6f947c342c1537fe9e78c266c760485ff0336a Start outlining some core engine stuff diff -r 5c6f947c342c -r e2c51c8e0b2e rust/lib-hedgewars-engine/src/command.rs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rust/lib-hedgewars-engine/src/command.rs Thu Nov 08 00:00:58 2018 +0100 @@ -0,0 +1,4 @@ +pub enum Command { + SetAmmo(String), + ChatMessage(String), +} diff -r 5c6f947c342c -r e2c51c8e0b2e rust/lib-hedgewars-engine/src/engine_message.rs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rust/lib-hedgewars-engine/src/engine_message.rs Thu Nov 08 00:00:58 2018 +0100 @@ -0,0 +1,55 @@ +use crate::command::Command; + +pub enum KeystrokeAction { + Press, + Release, +} + +pub enum SyncedEngineMessage { + Left(KeystrokeAction), + Right(KeystrokeAction), + Up(KeystrokeAction), + Down(KeystrokeAction), + Precise(KeystrokeAction), + NextTurn, + Switch, + Empty, + Timer(u8), + Slot(u8), + SetWeapon(u8), + Put(i32, i32), + HighJump, + LowJump, + Skip, + TeamControlGained(String), + TeamControlLost(String), +} + +pub enum UnsyncedEngineMessage { + Ping, + Pong, + Say(String), + Taunt(u8), + ExecCommand(Command), + GameType(u8),// TODO: use enum + Warning(String), + StopSyncing, + ConfigRequest, + GameOver, + GameInterrupted, +} + +pub enum EngineMessage { + Synced(SyncedEngineMessage, u32), + Unsynced(UnsyncedEngineMessage), +} + +impl EngineMessage { + fn from_bytes(buf: &[u8]) -> Self { + unimplemented!() + } + + fn to_bytes(&self) -> Vec { + unimplemented!() + } +} diff -r 5c6f947c342c -r e2c51c8e0b2e rust/lib-hedgewars-engine/src/lib.rs --- a/rust/lib-hedgewars-engine/src/lib.rs Wed Nov 07 23:43:15 2018 +0100 +++ b/rust/lib-hedgewars-engine/src/lib.rs Thu Nov 08 00:00:58 2018 +0100 @@ -4,6 +4,8 @@ extern crate lfprng; mod world; +mod engine_message; +mod command; #[repr(C)] pub struct EngineInstance {