From 1fa545da736b95da9b29b8523a551fe008bfab67 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 3 May 2016 12:42:52 +0200 Subject: [PATCH] Utility/Formats: Fix MD5 loading Former-commit-id: 6eb5e2bc69277e0bd87284a66ed73f6fa7e5101c --- src/Nazara/Core/String.cpp | 10 ++++++---- src/Nazara/Utility/Formats/MD5MeshLoader.cpp | 2 +- src/Nazara/Utility/Formats/MD5MeshParser.cpp | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Nazara/Core/String.cpp b/src/Nazara/Core/String.cpp index b94715457..a57d89861 100644 --- a/src/Nazara/Core/String.cpp +++ b/src/Nazara/Core/String.cpp @@ -4240,7 +4240,7 @@ namespace Nz utf8::unchecked::iterator it(m_sharedString->string.get()); do { - if ((Unicode::GetCategory(*it) & Unicode::Category_Separator) == 0) + if (*it != '\t' && (Unicode::GetCategory(*it) & Unicode::Category_Separator) == 0) break; } while (*++it); @@ -4255,7 +4255,7 @@ namespace Nz utf8::unchecked::iterator it(&m_sharedString->string[m_sharedString->size]); while ((it--).base() != m_sharedString->string.get()) { - if ((Unicode::GetCategory(*it) & Unicode::Category_Separator) == 0) + if (*it != '\t' && (Unicode::GetCategory(*it) & Unicode::Category_Separator) == 0) break; } @@ -4271,7 +4271,8 @@ namespace Nz { for (; startPos < m_sharedString->size; ++startPos) { - if ((Unicode::GetCategory(m_sharedString->string[startPos]) & Unicode::Category_Separator) == 0) + char c = m_sharedString->string[startPos]; + if (c != '\t' && (Unicode::GetCategory(c) & Unicode::Category_Separator) == 0) break; } } @@ -4281,7 +4282,8 @@ namespace Nz { for (; endPos > 0; --endPos) { - if ((Unicode::GetCategory(m_sharedString->string[endPos]) & Unicode::Category_Separator) == 0) + char c = m_sharedString->string[endPos]; + if (c != '\t' && (Unicode::GetCategory(c) & Unicode::Category_Separator) == 0) break; } } diff --git a/src/Nazara/Utility/Formats/MD5MeshLoader.cpp b/src/Nazara/Utility/Formats/MD5MeshLoader.cpp index 9f7b6151c..cda183313 100644 --- a/src/Nazara/Utility/Formats/MD5MeshLoader.cpp +++ b/src/Nazara/Utility/Formats/MD5MeshLoader.cpp @@ -42,7 +42,7 @@ namespace Nz // Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette Quaternionf rotationQuat = Quaternionf::RotationBetween(Vector3f::UnitX(), Vector3f::Forward()) * - Quaternionf::RotationBetween(Vector3f::UnitZ(), Vector3f::Up()); + Quaternionf::RotationBetween(Vector3f::UnitZ(), Vector3f::Up()); String baseDir = stream.GetDirectory(); diff --git a/src/Nazara/Utility/Formats/MD5MeshParser.cpp b/src/Nazara/Utility/Formats/MD5MeshParser.cpp index d8dfcb304..56e384bf0 100644 --- a/src/Nazara/Utility/Formats/MD5MeshParser.cpp +++ b/src/Nazara/Utility/Formats/MD5MeshParser.cpp @@ -194,6 +194,7 @@ namespace Nz m_currentLine = m_stream.ReadLine(); m_currentLine = m_currentLine.SubStringTo("//"); // On ignore les commentaires m_currentLine.Simplify(); // Pour un traitement plus simple + m_currentLine.Trim(); } while (m_currentLine.IsEmpty()); }