From 5b6986f617c554ac27b57373be0b874807e2d49d Mon Sep 17 00:00:00 2001 From: Olivier Gayot Date: Wed, 7 Jan 2015 15:05:59 +0100 Subject: do not duplicate surfaces but make them point to each other There is no need to reopen the bitmap files each time we need a new paladin or priest or whatever. Instead, just load them at startup and them make them point to the good destination. Signed-off-by: Olivier Gayot --- main.c | 5 +---- menuchoixpersos.c | 23 +++++++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/main.c b/main.c index e6fc307..3167cb0 100644 --- a/main.c +++ b/main.c @@ -298,10 +298,7 @@ void Fdechargerimages (SURFACES *surfaces)//dechargement des surfaces alouĂ©es SDL_FreeSurface(surfaces->Ppmcible); SDL_FreeSurface(surfaces->Ppvpersos); SDL_FreeSurface(surfaces->Ppmpersos); - for(i = 0;i < 3;i++) - { - SDL_FreeSurface(surfaces->Tperso[i]); - } + for(i=0;i<3;i++) { SDL_FreeSurface (surfaces->Pnomactions[i]); diff --git a/menuchoixpersos.c b/menuchoixpersos.c index 2d20ef2..7790255 100644 --- a/menuchoixpersos.c +++ b/menuchoixpersos.c @@ -119,14 +119,21 @@ void Fremplirpersos2 (SURFACES *surfaces, PERSONNAGES persos[]) { int i; - for (i=0;i<3;i++) - { - if (persos[i].classe==PALADIN) - surfaces->Tperso[i]=IMG_Load("images/paladin.bmp"); - else if (persos[i].classe==PRETRE) - surfaces->Tperso[i]=IMG_Load("images/prĂȘtre.bmp"); - else if (persos[i].classe==VOLEUR) - surfaces->Tperso[i]=IMG_Load("images/voleur.bmp"); + + for (i = 0; i < 3; i++) { + switch (persos[i].classe) { + case PALADIN: + surfaces->Tperso[i] = surfaces->Ppaladin; + break; + case PRETRE: + surfaces->Tperso[i] = surfaces->Ppretre; + break; + case VOLEUR: + surfaces->Tperso[i] = surfaces->Pvoleur; + break; + default: + abort(); + } } } -- cgit v1.2.3