From 519dd16c9a2f351fd9e59d6a2f826680f9e80cbd Mon Sep 17 00:00:00 2001 From: Blue Shadow Date: Sun, 28 Jul 2024 08:07:43 +0300 Subject: [PATCH 1/2] - fixed alignment issue in SBARINFO's DrawString command --- src/g_statusbar/sbarinfo_commands.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/g_statusbar/sbarinfo_commands.cpp b/src/g_statusbar/sbarinfo_commands.cpp index bbb3bc90f..73462f384 100644 --- a/src/g_statusbar/sbarinfo_commands.cpp +++ b/src/g_statusbar/sbarinfo_commands.cpp @@ -924,6 +924,7 @@ class CommandDrawString : public SBarInfoCommand break; default: str = GStrings.localize(label.GetChars()); + RealignString(); break; } } From d697eafbe16d8f76e01759ac033451386dfa3bb8 Mon Sep 17 00:00:00 2001 From: Boondorl Date: Mon, 29 Jul 2024 00:19:56 -0400 Subject: [PATCH 2/2] Fixed subnormal float viewpos values breaking rendering --- src/common/utility/vectors.h | 39 ++++++++++++++++++++++++++++++++++++ src/playsim/actor.h | 3 +++ 2 files changed, 42 insertions(+) diff --git a/src/common/utility/vectors.h b/src/common/utility/vectors.h index 77e41d2a9..47eb59793 100644 --- a/src/common/utility/vectors.h +++ b/src/common/utility/vectors.h @@ -1019,6 +1019,45 @@ struct TVector4 } }; +inline void ZeroSubnormalsF(double& num) +{ + if (fabs(num) < FLT_MIN) num = 0; +} + +inline void ZeroSubnormals(double& num) +{ + if (fabs(num) < DBL_MIN) num = 0; +} + +inline void ZeroSubnormals(float& num) +{ + if (fabsf(num) < FLT_MIN) num = 0; +} + +template +inline void ZeroSubnormals(TVector2& vec) +{ + ZeroSubnormals(vec.X); + ZeroSubnormals(vec.Y); +} + +template +inline void ZeroSubnormals(TVector3& vec) +{ + ZeroSubnormals(vec.X); + ZeroSubnormals(vec.Y); + ZeroSubnormals(vec.Z); +} + +template +inline void ZeroSubnormals(TVector4& vec) +{ + ZeroSubnormals(vec.X); + ZeroSubnormals(vec.Y); + ZeroSubnormals(vec.Z); + ZeroSubnormals(vec.W); +} + template struct TMatrix3x3 { diff --git a/src/playsim/actor.h b/src/playsim/actor.h index 4a0a3cf14..d0ea86cb6 100644 --- a/src/playsim/actor.h +++ b/src/playsim/actor.h @@ -774,6 +774,9 @@ public: void Set(DVector3 &off, int f = -1) { + ZeroSubnormalsF(off.X); + ZeroSubnormalsF(off.Y); + ZeroSubnormalsF(off.Z); Offset = off; if (f > -1)