1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-01 17:38:41 +00:00

Rework object attachment handling to fix bugs (#14825)

This commit is contained in:
sfan5 2024-08-12 15:32:18 +02:00 committed by GitHub
parent a0e33ba9ea
commit 85e717fcd1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 245 additions and 172 deletions

View file

@ -439,6 +439,17 @@ inline u32 npot2(u32 orig) {
return orig + 1;
}
// Distance between two values in a wrapped (circular) system
template<typename T>
inline unsigned wrappedDifference(T a, T b, const T maximum)
{
if (a > b)
std::swap(a, b);
// now b >= a
unsigned s = b - a, l = static_cast<unsigned>(maximum - b) + a + 1;
return std::min(s, l);
}
// Gradual steps towards the target value in a wrapped (circular) system
// using the shorter of both ways
template<typename T>