aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRay <raysan5@gmail.com>2017-02-16 00:19:30 +0100
committerRay <raysan5@gmail.com>2017-02-16 00:19:30 +0100
commit1c364cc5074fe8abb482ed9985705eeb249b93ae (patch)
tree37d89e5254f32e3356d2177f871e5fd39c66073b /src
parent177af272f0713ee42bdb32201b1fff3aa75e345f (diff)
downloadraylib-1c364cc5074fe8abb482ed9985705eeb249b93ae.tar.gz
raylib-1c364cc5074fe8abb482ed9985705eeb249b93ae.zip
Review rres loading to support multiple parts
Diffstat (limited to 'src')
-rw-r--r--src/rres.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/rres.h b/src/rres.h
index 32f0ab6b..bed28723 100644
--- a/src/rres.h
+++ b/src/rres.h
@@ -62,7 +62,7 @@
#if defined(RRES_STANDALONE)
// 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 *)
- typedef struct {
+ typedef struct RRESData {
unsigned int type; // Resource type (4 byte)
unsigned int param1; // Resouce parameter 1 (4 byte)
@@ -73,6 +73,7 @@
void *data; // Resource data pointer (4 byte)
} RRESData;
+ // RRESData type
typedef enum {
RRES_TYPE_RAW = 0,
RRES_TYPE_IMAGE,
@@ -84,6 +85,7 @@
RRES_TYPE_DIRECTORY
} RRESDataType;
+ // RRES type (pointer to RRESData array)
typedef struct RRESData *RRES;
#endif
@@ -96,8 +98,8 @@
// Module Functions Declaration
//----------------------------------------------------------------------------------
//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
@@ -242,7 +244,7 @@ static void *DecompressData(const unsigned char *data, unsigned long compSize, i
RRESDEF RRES LoadResource(const char *fileName, int rresId)
{
RRES rres;
-
+
RRESFileHeader fileHeader;
RRESInfoHeader infoHeader;
@@ -271,7 +273,7 @@ RRESDEF RRES LoadResource(const char *fileName, int rresId)
// Read resource info and parameters
fread(&infoHeader, sizeof(RRESInfoHeader), 1, rresFile);
- rres = (RRES)malloc(sizeof(RRESData)*infoHeader.partsCount)
+ rres = (RRES)malloc(sizeof(RRESData)*infoHeader.partsCount);
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);
@@ -323,9 +325,9 @@ RRESDEF RRES LoadResource(const char *fileName, int rresId)
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);
}
//----------------------------------------------------------------------------------