From 7244f1681c3c0d984f2d1536fb57484a6f4bca09 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 21 Apr 2018 00:29:53 +0200 Subject: [PATCH] Utility: Fix MD5/MTL/OBJ file parsing --- src/Nazara/Utility/Formats/MD5AnimParser.cpp | 3 +++ src/Nazara/Utility/Formats/MD5MeshParser.cpp | 3 +++ src/Nazara/Utility/Formats/MTLParser.cpp | 3 +++ src/Nazara/Utility/Formats/OBJParser.cpp | 3 +++ 4 files changed, 12 insertions(+) diff --git a/src/Nazara/Utility/Formats/MD5AnimParser.cpp b/src/Nazara/Utility/Formats/MD5AnimParser.cpp index 2d343f07c..10acc9975 100644 --- a/src/Nazara/Utility/Formats/MD5AnimParser.cpp +++ b/src/Nazara/Utility/Formats/MD5AnimParser.cpp @@ -250,6 +250,9 @@ namespace Nz m_lineCount++; m_currentLine = m_stream.ReadLine(); + if (m_currentLine.IsEmpty()) + continue; + m_currentLine = m_currentLine.SubStringTo("//"); // On ignore les commentaires m_currentLine.Simplify(); // Pour un traitement plus simple } diff --git a/src/Nazara/Utility/Formats/MD5MeshParser.cpp b/src/Nazara/Utility/Formats/MD5MeshParser.cpp index 0e719c90f..c6af0ed96 100644 --- a/src/Nazara/Utility/Formats/MD5MeshParser.cpp +++ b/src/Nazara/Utility/Formats/MD5MeshParser.cpp @@ -182,6 +182,9 @@ namespace Nz m_lineCount++; m_currentLine = m_stream.ReadLine(); + if (m_currentLine.IsEmpty()) + continue; + m_currentLine = m_currentLine.SubStringTo("//"); // On ignore les commentaires m_currentLine.Simplify(); // Pour un traitement plus simple m_currentLine.Trim(); diff --git a/src/Nazara/Utility/Formats/MTLParser.cpp b/src/Nazara/Utility/Formats/MTLParser.cpp index 29810b14a..31a377e38 100644 --- a/src/Nazara/Utility/Formats/MTLParser.cpp +++ b/src/Nazara/Utility/Formats/MTLParser.cpp @@ -450,6 +450,9 @@ namespace Nz m_lineCount++; m_currentLine = m_currentStream->ReadLine(); + if (m_currentLine.IsEmpty()) + continue; + m_currentLine = m_currentLine.SubStringTo("#"); // On ignore les commentaires m_currentLine.Simplify(); // Pour un traitement plus simple } diff --git a/src/Nazara/Utility/Formats/OBJParser.cpp b/src/Nazara/Utility/Formats/OBJParser.cpp index 6827641a9..b4766fc56 100644 --- a/src/Nazara/Utility/Formats/OBJParser.cpp +++ b/src/Nazara/Utility/Formats/OBJParser.cpp @@ -617,6 +617,9 @@ namespace Nz m_lineCount++; m_currentLine = m_currentStream->ReadLine(); + if (m_currentLine.IsEmpty()) + continue; + m_currentLine.Simplify(); // Simplify lines (convert multiple blanks into a single space and trims) } while (m_currentLine.IsEmpty());