Gruß-Anfang und Ablehnung festschreiben
Ein Test hält fest, dass ein Gruß mit Kennung und Version beginnt und eine Ablehnung aus Kennung und Grund besteht. Beides bleibt auch bei einer neuen Protokollversion gleich, damit sich Spiele verschiedener Versionen weiter sagen können, dass sie nicht zusammenpassen. Die Meldung des festgeschriebenen Nachrichtenformats weist darauf hin. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,16 +19,20 @@ use crate::world::TICKS_PER_SECOND;
|
||||
/// Version of the messages. Raise it whenever a message changes.
|
||||
pub const PROTOCOL_VERSION: u32 = 1;
|
||||
/// Longest message a guest may send, in bytes. The longest one is a greeting
|
||||
/// with a name of full length, which needs 65 bytes.
|
||||
/// with a name of full length, which needs 65 bytes. Greetings of every
|
||||
/// future version must fit as well: a longer one is rejected unread instead
|
||||
/// of being recognised as another version.
|
||||
pub const MAX_GUEST_MESSAGE_BYTES: usize = 128;
|
||||
/// Ticks between two state checksums in the stream of ticks: one second.
|
||||
pub const CHECK_INTERVAL_TICKS: u64 = TICKS_PER_SECOND as u64;
|
||||
|
||||
// Never changes, see the module documentation.
|
||||
const TO_HOST_HELLO: u8 = 1;
|
||||
const TO_HOST_ACT: u8 = 2;
|
||||
const TO_HOST_DIVERGED: u8 = 3;
|
||||
|
||||
const TO_GUEST_WORLD: u8 = 1;
|
||||
// Never changes, see the module documentation.
|
||||
const TO_GUEST_REFUSED: u8 = 2;
|
||||
const TO_GUEST_TICK: u8 = 3;
|
||||
|
||||
@@ -75,7 +79,8 @@ impl Action {
|
||||
}
|
||||
}
|
||||
|
||||
/// Why a host turned a guest away.
|
||||
/// Why a host turned a guest away. The codes never change, because games of
|
||||
/// other versions read them.
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub enum Refusal {
|
||||
/// The guest's game speaks another version of these messages.
|
||||
|
||||
Reference in New Issue
Block a user