From c5e14436a2a2f43737f70f8b3ad09100b419c8eb Mon Sep 17 00:00:00 2001 From: JackCarterSmith Date: Sat, 20 Aug 2022 13:07:29 +0200 Subject: [PATCH] Facegroup count fix Cause seg.fault with different facegrp/objpart count when exporting. --- RSEModel/src/obj | 2 +- RSEModel/src/obj_exporter.c | 2 +- RSPModelLib/src/hob_parser.c | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/RSEModel/src/obj b/RSEModel/src/obj index 63f5977..59191c2 160000 --- a/RSEModel/src/obj +++ b/RSEModel/src/obj @@ -1 +1 @@ -Subproject commit 63f5977aaed661f6176daca101680bfcd80e80ec +Subproject commit 59191c204ab030aabc34cf758efefdaf2de65401 diff --git a/RSEModel/src/obj_exporter.c b/RSEModel/src/obj_exporter.c index e3e3e4c..1c59024 100644 --- a/RSEModel/src/obj_exporter.c +++ b/RSEModel/src/obj_exporter.c @@ -42,7 +42,7 @@ unsigned char exportOBJModel(T_RSPMODEL_OBJECT* hob_objects, const char *out_pat objConstruct = obj_create(NULL); // Build face/surface material group - for ( i = 0; i < hob_objects->face_group_count; i++) { + for ( i = 0; i < hob_objects->object_part_count; i++) { surfID = obj_add_surf(objConstruct); materialID = obj_add_mtrl(objConstruct); diff --git a/RSPModelLib/src/hob_parser.c b/RSPModelLib/src/hob_parser.c index 68ad686..33cb963 100644 --- a/RSPModelLib/src/hob_parser.c +++ b/RSPModelLib/src/hob_parser.c @@ -151,6 +151,7 @@ static unsigned int ExtractObjects(T_RSPMODEL_HOB* pHobStruct, const MEMFILE pMe pHobStruct->objects[i].face_group_count = ((T_HOBFILE_FACEGROUP_HEADER *)(pMemfile + pHobStruct->objects[i].object_part_header_offset))->facegroup_count; if (pParams->verbose_mode) printf("[DBG] > Face groups count: %d\n", pHobStruct->objects[i].face_group_count); + //TODO: Caution with obj/facegrp count difference. What is facegroup count??? if (pHobStruct->objects[i].object_part_count != pHobStruct->objects[i].face_group_count && (pParams->verbose_mode)) printf("[DBG] > Object parts / facegroup count are different!\n");