From c458fab4297b7f569ebdebfeae6c66b89054d4d1 Mon Sep 17 00:00:00 2001 From: tovjemam Date: Wed, 11 Feb 2026 20:47:39 +0100 Subject: [PATCH] Make WriteDelta/ReadDelta write/read 1-byte valeus directly instead of using varint differences --- src/net/utils.hpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/net/utils.hpp b/src/net/utils.hpp index bfbf1c6..5b7538d 100644 --- a/src/net/utils.hpp +++ b/src/net/utils.hpp @@ -127,7 +127,14 @@ inline bool ReadRGB(InMessage& msg, glm::vec3& color) } // DELTA -template +template requires (sizeof(T) == 1) +inline void WriteDelta(OutMessage& msg, T previous, T current) +{ + // 1 byte => just write current + msg.Write(current); +} + +template requires (sizeof(T) > 1) inline void WriteDelta(OutMessage& msg, T previous, T current) { static_assert(sizeof(T) <= 4); @@ -146,7 +153,14 @@ inline void WriteDelta(OutMessage& msg, T current, T previous) WriteDelta(msg, previous.value, current.value); } -template +template requires (sizeof(T) == 1) +inline bool ReadDelta(InMessage& msg, T previous, T& current) +{ + // 1 byte => just read current + return msg.Read(current); +} + +template requires (sizeof(T) > 1) inline bool ReadDelta(InMessage& msg, T previous, T& current) { static_assert(sizeof(T) <= 4);