diff options
Diffstat (limited to 'src/loader.c')
-rw-r--r-- | src/loader.c | 36 |
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 ); |