--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rust/hedgewars-engine-messages/src/lib.rs Tue Nov 13 07:43:36 2018 +0100
@@ -0,0 +1,134 @@
+use crate::command::Command;
+
+pub enum KeystrokeAction {
+ Press,
+ Release,
+}
+
+pub enum SyncedEngineMessage {
+ Left(KeystrokeAction),
+ Right(KeystrokeAction),
+ Up(KeystrokeAction),
+ Down(KeystrokeAction),
+ Precise(KeystrokeAction),
+ Attack(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),
+ GameType(u8),
+ Warning(String),
+ StopSyncing,
+ GameOver,
+ GameInterrupted,
+ GameSetupChecksum(String),
+}
+
+pub enum ConfigEngineMessage {
+ ConfigRequest,
+ SetAmmo(String),
+ SetScript(String),
+ SetScriptParam(String),
+ Spectate,
+ TeamLocality(bool),
+ SetMap(String),
+ SetTheme(String),
+ SetSeed(String),
+ SetTemplateFilter(String),
+ SetMapGenerator(String),
+ SetFeatureSize(u8),
+ SetDelay(u32),
+ SetReadyDelay(u32),
+ SetCratesFrequency(u8),
+ SetHealthCrateProbability(u8),
+ SetHealthCratesNumber(u8),
+ SetRoundsTilSuddenDeath(u8),
+ SetSuddenDeathWaterRiseSpeed(u8),
+ SetSuddenDeathHealthDecreaseRate(u8),
+ SetDamageMultiplier(u32),
+ SetRopeLength(u32),
+ SetGetawayTime(u32),
+ SetDudMinesPercent(u8),
+ SetMinesNumber(u32),
+ SetAirMinesNumber(u32),
+ SetBarrelsNumber(u32),
+ SetTurnTime(u32),
+ SetMinesTime(u32),
+ SetWorldEdge(u8),
+ Draw, // TODO
+ SetVoicePack(String),
+ AddHedgehog(String, u8, u32),
+ AddTeam(String, u8),
+ SetHedgehogCoordinates(i32, i32),
+ SetFort(String),
+ SetGrave(String),
+ SetHat(String),
+ SetFlag(String),
+ SetOwner(String),
+ SetOneClanMode(bool),
+ SetMultishootMode(bool),
+ SetSolidLand(bool),
+ SetBorders(bool),
+ SetDivideTeams(bool),
+ SetLowGravity(bool),
+ SetLaserSight(bool),
+ SetInvulnerability(bool),
+ SetHealthReset(bool),
+ SetVampiric(bool),
+ SetKarma(bool),
+ SetArtilleryMode(bool),
+ SetHedgehogSwitch(bool),
+ SetRandomOrder(bool),
+ SetKingMode(bool),
+ SetPlaceHedgehog(bool),
+ SetSharedAmmo(bool),
+ SetGirdersEnabled(bool),
+ SetLandObjectsEnabled(bool),
+ SetAISurvivalMode(bool),
+ SetInfiniteAttack(bool),
+ SetResetWeapons(bool),
+ SetAmmoPerHedgehog(bool),
+ SetWindMode(u8),
+ SetTagTeam(bool),
+ SetBottomBorder(bool),
+ SetShoppaBorder(bool),
+}
+
+pub enum EngineMessage {
+ Synced(SyncedEngineMessage, u32),
+ Unsynced(UnsyncedEngineMessage),
+ Config(ConfigEngineMessage),
+}
+
+impl EngineMessage {
+ fn from_bytes(buf: &[u8]) -> Self {
+ unimplemented!()
+ }
+
+ fn to_bytes(&self) -> Vec<u8> {
+ unimplemented!()
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn it_works() {
+ assert_eq!(2 + 2, 4);
+ }
+}