LoadIQM: attempt to load texture from IQM at loadtime.

tries to load the texture with the base path of the original IQM file, relative paths should work.
This commit is contained in:
Jett 2024-06-02 09:50:07 -04:00
parent 11202bf299
commit 9cd87a26bb

View File

@ -4268,6 +4268,8 @@ static Model LoadIQM(const char *fileName)
// In case file can not be read, return an empty model // In case file can not be read, return an empty model
if (fileDataPtr == NULL) return model; if (fileDataPtr == NULL) return model;
const char* basePath = GetDirectoryPath(fileName);
// Read IQM header // Read IQM header
IQMHeader *iqmHeader = (IQMHeader *)fileDataPtr; IQMHeader *iqmHeader = (IQMHeader *)fileDataPtr;
@ -4312,6 +4314,7 @@ static Model LoadIQM(const char *fileName)
memcpy(material, fileDataPtr + iqmHeader->ofs_text + imesh[i].material, MATERIAL_NAME_LENGTH*sizeof(char)); memcpy(material, fileDataPtr + iqmHeader->ofs_text + imesh[i].material, MATERIAL_NAME_LENGTH*sizeof(char));
model.materials[i] = LoadMaterialDefault(); model.materials[i] = LoadMaterialDefault();
model.materials[i].maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture(TextFormat("%s/%s", basePath, material));
TRACELOG(LOG_DEBUG, "MODEL: [%s] mesh name (%s), material (%s)", fileName, name, material); TRACELOG(LOG_DEBUG, "MODEL: [%s] mesh name (%s), material (%s)", fileName, name, material);