From 7b3a28065b49ec657ad7f8385ac48c1fd6fd2df0 Mon Sep 17 00:00:00 2001 From: Foxar Date: Mon, 19 Apr 2021 10:07:38 +0200 Subject: [PATCH] Fixed loading errors when loading models without Normals or UVMaps, by modifying the fscanf format, and adding a missing break statement. --- src/engine/loaders/obj_loader.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/engine/loaders/obj_loader.cpp b/src/engine/loaders/obj_loader.cpp index 7c7662d..45844f8 100644 --- a/src/engine/loaders/obj_loader.cpp +++ b/src/engine/loaders/obj_loader.cpp @@ -76,7 +76,6 @@ void ObjLoader::load(MeshFrame *o_result, char *t_filename, float t_scale, u8 t_ int matches = fscanf(file, "%d/%d/%d %d/%d/%d %d/%d/%d\n", x, x, x, x, x, x, x, x, x); fsetpos(file, &start); int newerMatches = 0; - switch (matches) { /** Vs, VTs and VNs all set */ @@ -101,12 +100,12 @@ void ObjLoader::load(MeshFrame *o_result, char *t_filename, float t_scale, u8 t_ case 1: { /** Check for existance of V/// configuration.. */ - newerMatches = fscanf(file, "%d/// %d/// %d///\n", x, x, x); + newerMatches = fscanf(file, "%d// %d// %d//\n", x, x, x); fsetpos(file, &start); if (newerMatches == 3) { /** Configuration confirmed. */ - fscanf(file, "%d/// %d/// %d///\n", &vertexIndex[0], &vertexIndex[1], &vertexIndex[2]); + fscanf(file, "%d// %d// %d//\n", &vertexIndex[0], &vertexIndex[1], &vertexIndex[2]); } else { @@ -129,10 +128,13 @@ void ObjLoader::load(MeshFrame *o_result, char *t_filename, float t_scale, u8 t_ } break; } + break; default: + { PRINT_ERR("Unknown faces format in .obj file!"); break; } + } if (matches == 9 || matches == 2 || matches == 1) {