diff --git a/resources/Classes.xml b/resources/Classes.xml index c5fbe36cba73590bb68fa4647ab966222acd8e60..d15fd042a631d2ddc816c3d97f61cfd9d94d9950 100644 --- a/resources/Classes.xml +++ b/resources/Classes.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="UTF-8"?> <Classes> <Classe id="C_MAGE" name="Mage" PV="100" PM="150" MV="2" Desc="Le feu, ça brûle "> <Skills> @@ -31,7 +31,7 @@ <Skin id="SP_WAR" f_default="../resources/Skins/guerrier.bmp" f_selected="../resources/Skins/guerrier_selected.bmp" f_healed="../resources/Skins/guerrier_healed.bmp" f_damaged="../resources/Skins/guerrier_damaged.bmp"> </Skin> </Classe> - <Classe id="C_HEAL" name="Guerrisseur" PV="100" PM="150" MV="2" Desc="Heal est des notres"> + <Classe id="C_HEAL" name="Guerisseur" PV="100" PM="150" MV="2" Desc="Heal est des notres"> <Skills> <Skill id="S_HEAL" name="Soin" RG="" MN=""> <Effect id="" name="" TURNS="" DM="" DM_DUR="" HL="" HL_DUR="" PARA="" /> @@ -73,7 +73,7 @@ <Effect id="" name="" TURNS="" DM="" DM_DUR="" HL="" HL_DUR="" PARA="" /> </Skill> </Skills> - <Skin id="SP_ARCHER" f_default="../resources/Skins/voleurarcher.bmp" f_selected="../resources/Skins/archer_selected.bmp" f_healed="../resources/Skins/archer_healed.bmp" f_damaged="../resources/Skins/archer_damaged.bmp"> + <Skin id="SP_ARCHER" f_default="../resources/Skins/archer.bmp" f_selected="../resources/Skins/archer_selected.bmp" f_healed="../resources/Skins/archer_healed.bmp" f_damaged="../resources/Skins/archer_damaged.bmp"> <Skin> </Classe> </Classes> diff --git a/src/SDL_bis.c b/src/SDL_bis.c index ef378bb9c311e83af370060a25a7e10d54605aa1..0133f3a0d3eb64ebb06075f210fe5e1a66cdc4b1 100644 --- a/src/SDL_bis.c +++ b/src/SDL_bis.c @@ -6,39 +6,87 @@ #include "structures.h" #include "controleur.h" -int afficherListe(char** tabChoix, int nbChoix, TTF_Font* police,SDL_Color couleurTexte) +char* afficherListe(char** nomsClasses, char** skinsClasses, int nbChoix, TTF_Font* police,SDL_Color couleurTexte) { - int i; + int i, quitter; + char* classeChoisie; SDL_Surface* fenetre=NULL; SDL_Event event; - SDL_Surface* tabTextes[]={NULL}; + SDL_Surface* tabTextes[nbChoix]; + SDL_Surface* tabSkins[nbChoix]; SDL_Rect positionsTextes[nbChoix]; + SDL_Rect positionsSkins[nbChoix]; SDL_Color couleurNoire = {0, 0, 0}; - fenetre = SDL_SetVideoMode(400, 400, 32, SDL_HWSURFACE|SDL_DOUBLEBUF); + for(i=0;i<nbChoix;i++){ + tabSkins[i]=SDL_LoadBMP(skinsClasses[i]); + if (!tabSkins[i]) + { + printf("Unable to load bitmap: %s\n", skinsClasses[i]); + return 1; + } + SDL_SetColorKey(tabSkins[i], SDL_SRCCOLORKEY, SDL_MapRGB(tabSkins[i]->format, 0, 0, 255)); + } + + fenetre = SDL_SetVideoMode(260, nbChoix*tabSkins[0]->h, 32, SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_RESIZABLE); SDL_FillRect(fenetre,NULL,SDL_MapRGB(fenetre->format,0,0,0)); - while(i!=20) + quitter=0; + while(quitter==0) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: - i=20; + quitter=1; + break; + case SDL_MOUSEBUTTONDOWN: + for(i=0;i<nbChoix;i++) + { + if(event.button.y/positionsSkins[0].h==i) + { + classeChoisie=nomsClasses[i]; + quitter=1; + } + } break; default: break; } for(i=0;i<nbChoix;i++) { - tabTextes[i]=TTF_RenderText_Shaded(police, tabChoix[i], couleurTexte,couleurNoire); - positionsTextes[i].x=0; - positionsTextes[i].y=i*tabTextes[i]->h+4; + tabTextes[i]=TTF_RenderText_Shaded(police, nomsClasses[i], couleurTexte,couleurNoire); + positionsSkins[i].y=i*tabSkins[0]->h; + positionsSkins[i].x=0; + positionsTextes[i].x=tabSkins[i]->w+4; + positionsTextes[i].y=positionsSkins[i].y+(tabSkins[i]->h/3); SDL_BlitSurface(tabTextes[i],NULL,fenetre,&positionsTextes[i]); + SDL_BlitSurface(tabSkins[i],NULL,fenetre,&positionsSkins[i]); } SDL_Flip(fenetre); } - return 0; + SDL_FreeSurface(fenetre); + return classeChoisie; +} + +int ecranConfiguration(EtatsJeu* etat, SDL_Surface* ecran) +{ + SDL_Event event; + SDL_Color couleurBlanche = {255, 255, 255}; + while(*etat==CONFIGURATION) + { + SDL_WaitEvent(&event); + switch(event.type) + { + case SDL_QUIT: + etat=FERMER; + break; + case SDL_MOUSEBUTTONDOWN: + afficherListe(obtenirNomsClasses(), obtenirSkinsClasses(),nbClasses(), TTF_OpenFont("../resources/fonts/arial.ttf",26),couleurBlanche); + break; + } + SDL_Flip(ecran); + } } int SDL_bis() @@ -185,23 +233,10 @@ int SDL_bis() SDL_BlitSurface(texte3,NULL,ecran,&pos_texte3_bis); SDL_Flip(ecran); - afficherListe(obtenirNomsClasses(), nbClasses(), TTF_OpenFont("../resources/fonts/arial.ttf",26),couleurBlanche); - while(etat==CONFIGURATION) + if(etat==CONFIGURATION) { - SDL_WaitEvent(&event); - switch(event.type) - { - case SDL_QUIT: - etat=FERMER; - break;/* - case SDL_MOUSEBUTTONDOWN: - if (event.button.x<pos_texte.x+texte->w&&event.button.x>pos_texte.x&&event.button.y<pos_texte.y+texte->h&&event.button.y>pos_texte.y) - etat=CONFIGURATION; - break; - } - SDL_BlitSurface(texte,NULL,ecran,&pos_texte);*/ - SDL_Flip(ecran); - } + ecranConfiguration(&etat, ecran); } + return 0; } diff --git a/src/controleur.c b/src/controleur.c index c593c4f5e0c49fc4a0835f4157c9ef7d66bec7a8..399de853898c79e3917b52ec57297af112c888f8 100644 --- a/src/controleur.c +++ b/src/controleur.c @@ -39,7 +39,7 @@ void initJeu(){ Joueur * j = nouveauJoueur(); if(j!=NULL){ setNomJoueur(j,nomDuJoueur); - if(addParticipant(partieGlobale,j)==0){ + if(addParticipant(partieGlobale,j)==1){ *etat =LANCEMENT; } else{