|
@@ -62,7 +62,7 @@
|
|
#if defined(RRES_STANDALONE)
|
|
#if defined(RRES_STANDALONE)
|
|
// rRES data returned when reading a resource, it contains all required data for user (24 byte)
|
|
// rRES data returned when reading a resource, it contains all required data for user (24 byte)
|
|
// NOTE: Using void *data pointer, so we can load to image.data, wave.data, mesh.*, (unsigned char *)
|
|
// NOTE: Using void *data pointer, so we can load to image.data, wave.data, mesh.*, (unsigned char *)
|
|
- typedef struct {
|
|
|
|
|
|
+ typedef struct RRESData {
|
|
unsigned int type; // Resource type (4 byte)
|
|
unsigned int type; // Resource type (4 byte)
|
|
|
|
|
|
unsigned int param1; // Resouce parameter 1 (4 byte)
|
|
unsigned int param1; // Resouce parameter 1 (4 byte)
|
|
@@ -73,6 +73,7 @@
|
|
void *data; // Resource data pointer (4 byte)
|
|
void *data; // Resource data pointer (4 byte)
|
|
} RRESData;
|
|
} RRESData;
|
|
|
|
|
|
|
|
+ // RRESData type
|
|
typedef enum {
|
|
typedef enum {
|
|
RRES_TYPE_RAW = 0,
|
|
RRES_TYPE_RAW = 0,
|
|
RRES_TYPE_IMAGE,
|
|
RRES_TYPE_IMAGE,
|
|
@@ -84,6 +85,7 @@
|
|
RRES_TYPE_DIRECTORY
|
|
RRES_TYPE_DIRECTORY
|
|
} RRESDataType;
|
|
} RRESDataType;
|
|
|
|
|
|
|
|
+ // RRES type (pointer to RRESData array)
|
|
typedef struct RRESData *RRES;
|
|
typedef struct RRESData *RRES;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -96,8 +98,8 @@
|
|
// Module Functions Declaration
|
|
// Module Functions Declaration
|
|
//----------------------------------------------------------------------------------
|
|
//----------------------------------------------------------------------------------
|
|
//RRESDEF RRESData LoadResourceData(const char *rresFileName, int rresId, int part);
|
|
//RRESDEF RRESData LoadResourceData(const char *rresFileName, int rresId, int part);
|
|
-RRESDEF RRES LoadResource(const char *rresFileName, int rresId);
|
|
|
|
-RRESDEF void UnloadResource(RRESData *rres);
|
|
|
|
|
|
+RRESDEF RRES LoadResource(const char *fileName, int rresId);
|
|
|
|
+RRESDEF void UnloadResource(RRES rres);
|
|
|
|
|
|
#endif // RRES_H
|
|
#endif // RRES_H
|
|
|
|
|
|
@@ -242,7 +244,7 @@ static void *DecompressData(const unsigned char *data, unsigned long compSize, i
|
|
RRESDEF RRES LoadResource(const char *fileName, int rresId)
|
|
RRESDEF RRES LoadResource(const char *fileName, int rresId)
|
|
{
|
|
{
|
|
RRES rres;
|
|
RRES rres;
|
|
-
|
|
|
|
|
|
+
|
|
RRESFileHeader fileHeader;
|
|
RRESFileHeader fileHeader;
|
|
RRESInfoHeader infoHeader;
|
|
RRESInfoHeader infoHeader;
|
|
|
|
|
|
@@ -271,7 +273,7 @@ RRESDEF RRES LoadResource(const char *fileName, int rresId)
|
|
// Read resource info and parameters
|
|
// Read resource info and parameters
|
|
fread(&infoHeader, sizeof(RRESInfoHeader), 1, rresFile);
|
|
fread(&infoHeader, sizeof(RRESInfoHeader), 1, rresFile);
|
|
|
|
|
|
- rres = (RRES)malloc(sizeof(RRESData)*infoHeader.partsCount)
|
|
|
|
|
|
+ rres = (RRES)malloc(sizeof(RRESData)*infoHeader.partsCount);
|
|
|
|
|
|
if (infoHeader.id == rresId)
|
|
if (infoHeader.id == rresId)
|
|
{
|
|
{
|
|
@@ -314,7 +316,7 @@ RRESDEF RRES LoadResource(const char *fileName, int rresId)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if (rres.data == NULL) TraceLog(WARNING, "[%s][ID %i] Requested resource could not be found", fileName, (int)rresId);
|
|
|
|
|
|
+ if (rres[0].data == NULL) TraceLog(WARNING, "[%s][ID %i] Requested resource could not be found", fileName, (int)rresId);
|
|
}
|
|
}
|
|
|
|
|
|
fclose(rresFile);
|
|
fclose(rresFile);
|
|
@@ -323,9 +325,9 @@ RRESDEF RRES LoadResource(const char *fileName, int rresId)
|
|
return rres;
|
|
return rres;
|
|
}
|
|
}
|
|
|
|
|
|
-RRESDEF void UnloadResource(RRESData rres)
|
|
|
|
|
|
+RRESDEF void UnloadResource(RRES rres)
|
|
{
|
|
{
|
|
- if (rres.data != NULL) free(rres.data);
|
|
|
|
|
|
+ if (rres[0].data != NULL) free(rres[0].data);
|
|
}
|
|
}
|
|
|
|
|
|
//----------------------------------------------------------------------------------
|
|
//----------------------------------------------------------------------------------
|