summaryrefslogtreecommitdiff
path: root/src/loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/loader.c')
-rw-r--r--src/loader.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/loader.c b/src/loader.c
index e6e748d..0d16c48 100644
--- a/src/loader.c
+++ b/src/loader.c
@@ -35,11 +35,11 @@ int loadStyleRes(SDL_Renderer *rend, gameIni_t *gIni, char data_basepath[], game
void unloadStyleRes(gameRess_t *gRess) {
int i;
for(i=0; i<MAX_TILES_COUNT;i++) {
- SDL_DestroyTexture(gRess->tiles[i].t);
+ DESTROYTEXTURE_SAFE(gRess->tiles[i].t);
}
for(i=0; i<MAX_OBJECTS_COUNT;i++) {
- SDL_DestroyTexture(gRess->objects[i].t);
- SDL_DestroyTexture(gRess->objectMasks[i].t);
+ DESTROYTEXTURE_SAFE(gRess->objects[i].t);
+ DESTROYTEXTURE_SAFE(gRess->objectMasks[i].t);
}
}
@@ -77,7 +77,7 @@ int loadMiscRes(SDL_Renderer *rend, char data_basepath[], gameRess_t *gRess) {
if (res != 0) return res;
(void) SDL_snprintf(filepath, MAX_PATH_LEN, "%s/misc/countdown.gif", data_basepath);
- res=loadSprite(rend,filepath,6,&gRess->countdown);
+ res=loadSprite(rend,filepath,5,&gRess->countdown);
if (res != 0) return res;
(void) SDL_snprintf(filepath, MAX_PATH_LEN, "%s/misc/lemmfont.gif", data_basepath);
@@ -94,14 +94,14 @@ int loadMiscRes(SDL_Renderer *rend, char data_basepath[], gameRess_t *gRess) {
void unloadMiscRes(gameRess_t *gRess) {
int i;
for(i=0; i<MAX_LEMMANIM_COUNT; i++) {
- SDL_DestroyTexture(gRess->lemmingAnims[i].t);
- SDL_DestroyTexture(gRess->lemmingMasks[i].t);
- SDL_DestroyTexture(gRess->lemmingIMasks[i].t);
+ DESTROYTEXTURE_SAFE(gRess->lemmingAnims[i].t);
+ DESTROYTEXTURE_SAFE(gRess->lemmingMasks[i].t);
+ DESTROYTEXTURE_SAFE(gRess->lemmingIMasks[i].t);
}
- SDL_DestroyTexture(gRess->cursor.t);
- SDL_DestroyTexture(gRess->countdown.t);
- SDL_DestroyTexture(gRess->font1.t);
- SDL_DestroyTexture(gRess->font2.t);
+ DESTROYTEXTURE_SAFE(gRess->cursor.t);
+ DESTROYTEXTURE_SAFE(gRess->countdown.t);
+ DESTROYTEXTURE_SAFE(gRess->font1.t);
+ DESTROYTEXTURE_SAFE(gRess->font2.t);
}
/* frames is for animated sprites and is the number of images. Assumed to be all in a column */
@@ -110,10 +110,18 @@ int loadSprite(SDL_Renderer *rend, char *giffilepath, int frames, sprite_t *spri
SDL_RWops *rwop;
//int res;
+ MPL_CHECK(
+ frames > 0,
+ {return 1;},
+ SDL_LOG_PRIORITY_WARN,
+ "loadSprite(rend, \"%s\", frames, sprite) failed : invalid frames value %i",
+ giffilepath, frames
+ );
+
rwop = SDL_RWFromFile(giffilepath,"r");
MPL_CHECK(
rwop,
- {return 1;},
+ {return 2;},
SDL_LOG_PRIORITY_WARN,
"loadSprite(rend, \"%s\", frames, sprite) failed : problem opening file", giffilepath
);
@@ -122,7 +130,7 @@ int loadSprite(SDL_Renderer *rend, char *giffilepath, int frames, sprite_t *spri
MPL_CHECK(
surf,
- {return 2;},
+ {return 3;},
SDL_LOG_PRIORITY_WARN,
"loadSprite(rend, \"%s\", frames, sprite) failed : can't decode file", giffilepath
);
@@ -130,7 +138,7 @@ int loadSprite(SDL_Renderer *rend, char *giffilepath, int frames, sprite_t *spri
sprite->t = SDL_CreateTextureFromSurface(rend, surf);
MPL_CHECK(
sprite->t,
- {SDL_FreeSurface(surf); return 2;},
+ {SDL_FreeSurface(surf); return 4;},
SDL_LOG_PRIORITY_WARN,
"loadSprite(rend, \"%s\", frames, sprite) failed : can't convert surface to texture", giffilepath
);