From 522a7514012da86f7b9643179f0763746f3b232e Mon Sep 17 00:00:00 2001 From: untodesu Date: Fri, 12 Sep 2025 16:15:32 +0500 Subject: Protocol and versioning changes --- game/shared/protocol.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'game/shared/protocol.cc') diff --git a/game/shared/protocol.cc b/game/shared/protocol.cc index 576502e..7115807 100644 --- a/game/shared/protocol.cc +++ b/game/shared/protocol.cc @@ -21,7 +21,7 @@ ENetPacket* protocol::encode(const protocol::StatusRequest& packet, enet_uint32 { write_buffer.reset(); write_buffer.write(protocol::StatusRequest::ID); - write_buffer.write(packet.version); + write_buffer.write(packet.game_version_major); return write_buffer.to_packet(flags); } @@ -29,10 +29,12 @@ ENetPacket* protocol::encode(const protocol::StatusResponse& packet, enet_uint32 { write_buffer.reset(); write_buffer.write(protocol::StatusResponse::ID); - write_buffer.write(packet.version); + write_buffer.write(packet.game_version_major); write_buffer.write(packet.max_players); write_buffer.write(packet.num_players); write_buffer.write(packet.motd); + write_buffer.write(packet.game_version_minor); + write_buffer.write(packet.game_version_patch); return write_buffer.to_packet(flags); } @@ -40,11 +42,13 @@ ENetPacket* protocol::encode(const protocol::LoginRequest& packet, enet_uint32 f { write_buffer.reset(); write_buffer.write(protocol::LoginRequest::ID); - write_buffer.write(packet.version); + write_buffer.write(packet.game_version_major); write_buffer.write(packet.voxel_registry_checksum); write_buffer.write(packet.item_registry_checksum); write_buffer.write(packet.password_hash); write_buffer.write(packet.username.substr(0, protocol::MAX_USERNAME)); + write_buffer.write(packet.game_version_minor); + write_buffer.write(packet.game_version_patch); return write_buffer.to_packet(flags); } @@ -268,26 +272,30 @@ void protocol::decode(entt::dispatcher& dispatcher, const ENetPacket* packet, EN switch(id) { case protocol::StatusRequest::ID: status_request.peer = peer; - status_request.version = read_buffer.read(); + status_request.game_version_major = read_buffer.read(); dispatcher.trigger(status_request); break; case protocol::StatusResponse::ID: status_response.peer = peer; - status_response.version = read_buffer.read(); + status_response.game_version_major = read_buffer.read(); status_response.max_players = read_buffer.read(); status_response.num_players = read_buffer.read(); status_response.motd = read_buffer.read(); + status_response.game_version_minor = read_buffer.read(); + status_response.game_version_patch = read_buffer.read(); dispatcher.trigger(status_response); break; case protocol::LoginRequest::ID: login_request.peer = peer; - login_request.version = read_buffer.read(); + login_request.game_version_major = read_buffer.read(); login_request.voxel_registry_checksum = read_buffer.read(); login_request.item_registry_checksum = read_buffer.read(); login_request.password_hash = read_buffer.read(); login_request.username = read_buffer.read(); + login_request.game_version_minor = read_buffer.read(); + login_request.game_version_patch = read_buffer.read(); dispatcher.trigger(login_request); break; -- cgit