diff options
| author | Ray <raysan5@gmail.com> | 2017-02-16 00:19:30 +0100 |
|---|---|---|
| committer | Ray <raysan5@gmail.com> | 2017-02-16 00:19:30 +0100 |
| commit | 1c364cc5074fe8abb482ed9985705eeb249b93ae (patch) | |
| tree | 37d89e5254f32e3356d2177f871e5fd39c66073b /src | |
| parent | 177af272f0713ee42bdb32201b1fff3aa75e345f (diff) | |
| download | raylib-1c364cc5074fe8abb482ed9985705eeb249b93ae.tar.gz raylib-1c364cc5074fe8abb482ed9985705eeb249b93ae.zip | |
Review rres loading to support multiple parts
Diffstat (limited to 'src')
| -rw-r--r-- | src/rres.h | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -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); } //---------------------------------------------------------------------------------- |
