From 5d0b18a0d0bd02a9b77b8948d6887bb661a385da Mon Sep 17 00:00:00 2001 From: pecksin <78765996+pecksin@users.noreply.github.com> Date: Wed, 16 Feb 2022 17:06:00 -0500 Subject: Use absolute value for bouncy in collision (#11969) * use abs(bouncy) in collision * test case for negative bouncy * send abs(bouncy) to old clients --- src/nodedef.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/nodedef.cpp') diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 8a5542837..fe0cc4bb0 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -452,7 +452,12 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) const writeU16(os, groups.size()); for (const auto &group : groups) { os << serializeString16(group.first); - writeS16(os, group.second); + if (protocol_version < 41 && group.first.compare("bouncy") == 0) { + // Old clients may choke on negative bouncy value + writeS16(os, abs(group.second)); + } else { + writeS16(os, group.second); + } } writeU8(os, param_type); writeU8(os, param_type_2); -- cgit v1.2.3