From 248eee819a4b7962149f89058fe2d7d52d4d2de9 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sun, 29 Jul 2018 21:37:55 -0300 Subject: [PATCH] Add support for line continuations (wtf) in obj format, fixes #7974 (cherry picked from commit 5a5614e8adcc49b92621dc2f39364385769d36a0) --- editor/import/resource_importer_obj.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/editor/import/resource_importer_obj.cpp b/editor/import/resource_importer_obj.cpp index 21803a2184b..867bda7ac6f 100644 --- a/editor/import/resource_importer_obj.cpp +++ b/editor/import/resource_importer_obj.cpp @@ -222,6 +222,13 @@ static Error _parse_obj(const String &p_path, List > &r_meshes, bool p while (true) { String l = f->get_line().strip_edges(); + while (l.length() && l[l.length() - 1] == '\\') { + String add = f->get_line().strip_edges(); + l += add; + if (add == String()) { + break; + } + } if (l.begins_with("v ")) { //vertex @@ -262,10 +269,12 @@ static Error _parse_obj(const String &p_path, List > &r_meshes, bool p face[0] = v[1].split("/"); face[1] = v[2].split("/"); ERR_FAIL_COND_V(face[0].size() == 0, ERR_FILE_CORRUPT); + ERR_FAIL_COND_V(face[0].size() != face[1].size(), ERR_FILE_CORRUPT); for (int i = 2; i < v.size() - 1; i++) { face[2] = v[i + 1].split("/"); + ERR_FAIL_COND_V(face[0].size() != face[2].size(), ERR_FILE_CORRUPT); for (int j = 0; j < 3; j++) {