From 37f3178d33ab77de064bcbf10b4b03ddb47cc979 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:15:47 +1000 Subject: Network compatibility changes --- source/core/StarNetElementSignal.hpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'source/core/StarNetElementSignal.hpp') diff --git a/source/core/StarNetElementSignal.hpp b/source/core/StarNetElementSignal.hpp index 9faa127..61a108d 100644 --- a/source/core/StarNetElementSignal.hpp +++ b/source/core/StarNetElementSignal.hpp @@ -16,15 +16,15 @@ public: void initNetVersion(NetElementVersion const* version = nullptr) override; - void netStore(DataStream& ds) const override; - void netLoad(DataStream& ds) override; + void netStore(DataStream& ds, NetCompatibilityRules rules = {}) const override; + void netLoad(DataStream& ds, NetCompatibilityRules rules) override; void enableNetInterpolation(float extrapolationHint = 0.0f) override; void disableNetInterpolation() override; void tickNetInterpolation(float dt) override; - bool writeNetDelta(DataStream& ds, uint64_t fromVersion) const override; - void readNetDelta(DataStream& ds, float interpolationTime = 0.0) override; + bool writeNetDelta(DataStream& ds, uint64_t fromVersion, NetCompatibilityRules rules = {}) const override; + void readNetDelta(DataStream& ds, float interpolationTime = 0.0f, NetCompatibilityRules rules = {}) override; void send(Signal signal); List receive(); @@ -55,10 +55,10 @@ void NetElementSignal::initNetVersion(NetElementVersion const* version) } template -void NetElementSignal::netStore(DataStream&) const {} +void NetElementSignal::netStore(DataStream&, NetCompatibilityRules) const {} template -void NetElementSignal::netLoad(DataStream&) { +void NetElementSignal::netLoad(DataStream&, NetCompatibilityRules) { } template @@ -83,7 +83,8 @@ void NetElementSignal::tickNetInterpolation(float dt) { } template -bool NetElementSignal::writeNetDelta(DataStream& ds, uint64_t fromVersion) const { +bool NetElementSignal::writeNetDelta(DataStream& ds, uint64_t fromVersion, NetCompatibilityRules rules) const { + if (!checkWithRules(rules)) return false; size_t numToWrite = 0; for (auto const& p : m_signals) { if (p.version >= fromVersion) @@ -103,7 +104,8 @@ bool NetElementSignal::writeNetDelta(DataStream& ds, uint64_t fromVersio } template -void NetElementSignal::readNetDelta(DataStream& ds, float interpolationTime) { +void NetElementSignal::readNetDelta(DataStream& ds, float interpolationTime, NetCompatibilityRules rules) { + if (!checkWithRules(rules)) return; size_t numToRead = ds.readVlqU(); for (size_t i = 0; i < numToRead; ++i) { Signal s; -- cgit v1.2.3