rust/lib-hedgewars-engine/src/engine_message.rs
author unc0rr
Thu, 08 Nov 2018 21:57:05 +0100
changeset 14176 5ad911992460
parent 14169 e2c51c8e0b2e
permissions -rw-r--r--
A bit of rethinking of game messages and command
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14169
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     1
use crate::command::Command;
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     2
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     3
pub enum KeystrokeAction {
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     4
    Press,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     5
    Release,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     6
}
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     7
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     8
pub enum SyncedEngineMessage {
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
     9
    Left(KeystrokeAction),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    10
    Right(KeystrokeAction),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    11
    Up(KeystrokeAction),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    12
    Down(KeystrokeAction),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    13
    Precise(KeystrokeAction),
14176
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    14
    Attack(KeystrokeAction),
14169
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    15
    NextTurn,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    16
    Switch,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    17
    Empty,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    18
    Timer(u8),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    19
    Slot(u8),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    20
    SetWeapon(u8),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    21
    Put(i32, i32),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    22
    HighJump,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    23
    LowJump,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    24
    Skip,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    25
    TeamControlGained(String),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    26
    TeamControlLost(String),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    27
}
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    28
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    29
pub enum UnsyncedEngineMessage {
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    30
    Ping,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    31
    Pong,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    32
    Say(String),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    33
    Taunt(u8),
14176
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    34
    GameType(u8),
14169
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    35
    Warning(String),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    36
    StopSyncing,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    37
    GameOver,
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
    38
    GameInterrupted,
14176
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    39
    GameSetupChecksum(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    40
}
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    41
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    42
pub enum ConfigEngineMessage {
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    43
    ConfigRequest,
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    44
    SetAmmo(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    45
    SetScript(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    46
    SetScriptParam(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    47
    Spectate,
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    48
    TeamLocality(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    49
    SetMap(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    50
    SetTheme(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    51
    SetSeed(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    52
    SetTemplateFilter(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    53
    SetMapGenerator(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    54
    SetFeatureSize(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    55
    SetDelay(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    56
    SetReadyDelay(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    57
    SetCratesFrequency(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    58
    SetHealthCrateProbability(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    59
    SetHealthCratesNumber(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    60
    SetRoundsTilSuddenDeath(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    61
    SetSuddenDeathWaterRiseSpeed(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    62
    SetSuddenDeathHealthDecreaseRate(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    63
    SetDamageMultiplier(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    64
    SetRopeLength(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    65
    SetGetawayTime(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    66
    SetDudMinesPercent(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    67
    SetMinesNumber(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    68
    SetAirMinesNumber(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    69
    SetBarrelsNumber(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    70
    SetTurnTime(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    71
    SetMinesTime(u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    72
    SetWorldEdge(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    73
    Draw, // TODO
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    74
    SetVoicePack(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    75
    AddHedgehog(String, u8, u32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    76
    AddTeam(String, u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    77
    SetHedgehogCoordinates(i32, i32),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    78
    SetFort(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    79
    SetGrave(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    80
    SetHat(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    81
    SetFlag(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    82
    SetOwner(String),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    83
    SetOneClanMode(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    84
    SetMultishootMode(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    85
    SetSolidLand(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    86
    SetBorders(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    87
    SetDivideTeams(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    88
    SetLowGravity(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    89
    SetLaserSight(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    90
    SetInvulnerability(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    91
    SetHealthReset(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    92
    SetVampiric(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    93
    SetKarma(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    94
    SetArtilleryMode(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    95
    SetHedgehogSwitch(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    96
    SetRandomOrder(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    97
    SetKingMode(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    98
    SetPlaceHedgehog(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
    99
    SetSharedAmmo(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   100
    SetGirdersEnabled(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   101
    SetLandObjectsEnabled(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   102
    SetAISurvivalMode(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   103
    SetInfiniteAttack(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   104
    SetResetWeapons(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   105
    SetAmmoPerHedgehog(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   106
    SetWindMode(u8),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   107
    SetTagTeam(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   108
    SetBottomBorder(bool),
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   109
    SetShoppaBorder(bool),
14169
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   110
}
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   111
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   112
pub enum EngineMessage {
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   113
    Synced(SyncedEngineMessage, u32),
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   114
    Unsynced(UnsyncedEngineMessage),
14176
5ad911992460 A bit of rethinking of game messages and command
unc0rr
parents: 14169
diff changeset
   115
    Config(ConfigEngineMessage),
14169
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   116
}
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   117
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   118
impl EngineMessage {
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   119
    fn from_bytes(buf: &[u8]) -> Self {
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   120
        unimplemented!()
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   121
    }
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   122
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   123
    fn to_bytes(&self) -> Vec<u8> {
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   124
        unimplemented!()
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   125
    }
e2c51c8e0b2e Start outlining some core engine stuff
unc0rr
parents:
diff changeset
   126
}