Skip to content
Snippets Groups Projects
Commit eb20b6d3 authored by Montjoie Henri's avatar Montjoie Henri
Browse files

correction d'erreurs dans classes.xml, creation du menu deroulant avec les skins

parent cdf9c68e
No related branches found
No related tags found
No related merge requests found
Pipeline #
<?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>
......@@ -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;
}
......@@ -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{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment