diff options
author | Olivier Gayot <duskcoder@gmail.com> | 2015-01-07 15:05:59 +0100 |
---|---|---|
committer | Olivier Gayot <duskcoder@gmail.com> | 2015-01-07 15:05:59 +0100 |
commit | 5b6986f617c554ac27b57373be0b874807e2d49d (patch) | |
tree | f3149809f78dd31ec091d95d78f466ea058d3cbc | |
parent | 7a9de9f475fcf4ba3cc4b5b6ef6b220af1c7d7bd (diff) |
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 <duskcoder@gmail.com>
-rw-r--r-- | main.c | 5 | ||||
-rw-r--r-- | menuchoixpersos.c | 23 |
2 files changed, 16 insertions, 12 deletions
@@ -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(); + } } } |