|
@@ -67,7 +67,7 @@ revision history:
|
|
#define VOX_SUCCESS (0)
|
|
#define VOX_SUCCESS (0)
|
|
#define VOX_ERROR_FILE_NOT_FOUND (-1)
|
|
#define VOX_ERROR_FILE_NOT_FOUND (-1)
|
|
#define VOX_ERROR_INVALID_FORMAT (-2)
|
|
#define VOX_ERROR_INVALID_FORMAT (-2)
|
|
-#define VOX_ERROR_FILE_VERSION_TOO_OLD (-3)
|
|
|
|
|
|
+#define VOX_ERROR_FILE_VERSION_NOT_MATCH (-3)
|
|
|
|
|
|
// VoxColor, 4 components, R8G8B8A8 (32bit)
|
|
// VoxColor, 4 components, R8G8B8A8 (32bit)
|
|
typedef struct {
|
|
typedef struct {
|
|
@@ -538,31 +538,26 @@ int Vox_LoadFromMemory(unsigned char* pvoxData, unsigned int voxDataSize, VoxArr
|
|
// @raysan5: Reviewed (unsigned long) -> (unsigned int), possible issue with Ubuntu 18.04 64bit
|
|
// @raysan5: Reviewed (unsigned long) -> (unsigned int), possible issue with Ubuntu 18.04 64bit
|
|
|
|
|
|
// @raysan5: reviewed signature loading
|
|
// @raysan5: reviewed signature loading
|
|
- unsigned char signature[4] = { 0 };
|
|
|
|
|
|
|
|
unsigned char* fileData = pvoxData;
|
|
unsigned char* fileData = pvoxData;
|
|
unsigned char* fileDataPtr = fileData;
|
|
unsigned char* fileDataPtr = fileData;
|
|
unsigned char* endfileDataPtr = fileData + voxDataSize;
|
|
unsigned char* endfileDataPtr = fileData + voxDataSize;
|
|
|
|
|
|
- signature[0] = fileDataPtr[0];
|
|
|
|
- signature[1] = fileDataPtr[1];
|
|
|
|
- signature[2] = fileDataPtr[2];
|
|
|
|
- signature[3] = fileDataPtr[3];
|
|
|
|
- fileDataPtr += 4;
|
|
|
|
-
|
|
|
|
- if ((signature[0] != 'V') && (signature[0] != 'O') && (signature[0] != 'X') && (signature[0] != ' '))
|
|
|
|
|
|
+ if (strncmp((char*)fileDataPtr, "VOX ", 4) != 0)
|
|
{
|
|
{
|
|
return VOX_ERROR_INVALID_FORMAT; //"Not an MagicaVoxel File format"
|
|
return VOX_ERROR_INVALID_FORMAT; //"Not an MagicaVoxel File format"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ fileDataPtr += 4;
|
|
|
|
+
|
|
// @raysan5: reviewed version loading
|
|
// @raysan5: reviewed version loading
|
|
unsigned int version = 0;
|
|
unsigned int version = 0;
|
|
version = ((unsigned int*)fileDataPtr)[0];
|
|
version = ((unsigned int*)fileDataPtr)[0];
|
|
fileDataPtr += 4;
|
|
fileDataPtr += 4;
|
|
|
|
|
|
- if (version < 150)
|
|
|
|
|
|
+ if (version != 150)
|
|
{
|
|
{
|
|
- return VOX_ERROR_FILE_VERSION_TOO_OLD; //"MagicaVoxel version too old"
|
|
|
|
|
|
+ return VOX_ERROR_FILE_VERSION_NOT_MATCH; //"MagicaVoxel version doesn't match"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|