MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / writeNetDelta

Method writeNetDelta

source/core/StarNetElementGroup.cpp:63–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63bool NetElementGroup::writeNetDelta(DataStream& ds, uint64_t fromVersion, NetCompatibilityRules rules) const {
64 if (!checkWithRules(rules)) return false;
65 if (m_elements.size() == 0) {
66 return false;
67 } else if (m_elements.size() == 1) {
68 return m_elements[0].first->writeNetDelta(ds, fromVersion, rules);
69 } else {
70 bool deltaWritten = false;
71 uint64_t i = 0;
72 m_buffer.setStreamCompatibilityVersion(rules);
73 for (auto& element : m_elements) {
74 if (!element.first->checkWithRules(rules))
75 continue;
76 ++i;
77 if (element.first->writeNetDelta(m_buffer, fromVersion, rules)) {
78 deltaWritten = true;
79 ds.writeVlqU(i);
80 ds.writeBytes(m_buffer.data());
81 m_buffer.clear();
82 }
83 }
84 if (deltaWritten)
85 ds.writeVlqU(0);
86 return deltaWritten;
87 }
88}
89
90void NetElementGroup::readNetDelta(DataStream& ds, float interpolationTime, NetCompatibilityRules rules) {
91 if (!checkWithRules(rules))

Callers

nothing calls this directly

Calls 7

checkWithRulesMethod · 0.80
writeVlqUMethod · 0.80
sizeMethod · 0.45
writeBytesMethod · 0.45
dataMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected