rust/lib-hedgewars-engine/src/engine_message.rs
author unc0rr
Thu, 08 Nov 2018 00:00:58 +0100
changeset 14169 e2c51c8e0b2e
child 14176 5ad911992460
permissions -rw-r--r--
Start outlining some core engine stuff

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<u8> {
        unimplemented!()
    }
}