confirmation menu
This commit is contained in:
parent
097c3f9ec2
commit
269fa59870
@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
#include "affichage_menu.h"
|
#include "affichage_menu.h"
|
||||||
#include "affichage_plateau.h"
|
#include "affichage_plateau.h"
|
||||||
|
#include "action_plateau.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
#include "sub_menu.h"
|
#include "sub_menu.h"
|
||||||
#include "sauvegarde.h"
|
#include "sauvegarde.h"
|
||||||
@ -135,7 +136,7 @@ int menu_save (plateau_t p)
|
|||||||
}
|
}
|
||||||
vec2 c = m->cur;
|
vec2 c = m->cur;
|
||||||
m->cur.x = 1;
|
m->cur.x = 1;
|
||||||
m->cur.x = 1;
|
m->cur.y = 1;
|
||||||
Affiche_entry (m, 0);
|
Affiche_entry (m, 0);
|
||||||
m->cur = c;
|
m->cur = c;
|
||||||
}
|
}
|
||||||
@ -152,7 +153,7 @@ int menu_save (plateau_t p)
|
|||||||
}
|
}
|
||||||
vec2 c = m->cur;
|
vec2 c = m->cur;
|
||||||
m->cur.x = 1;
|
m->cur.x = 1;
|
||||||
m->cur.x = 1;
|
m->cur.y = 1;
|
||||||
Affiche_entry (m, 0);
|
Affiche_entry (m, 0);
|
||||||
m->cur = c;
|
m->cur = c;
|
||||||
}
|
}
|
||||||
@ -163,7 +164,7 @@ int menu_save (plateau_t p)
|
|||||||
entries [2] [cur] = '_';
|
entries [2] [cur] = '_';
|
||||||
vec2 c = m->cur;
|
vec2 c = m->cur;
|
||||||
m->cur.x = 1;
|
m->cur.x = 1;
|
||||||
m->cur.x = 1;
|
m->cur.y = 1;
|
||||||
Affiche_entry (m, 0);
|
Affiche_entry (m, 0);
|
||||||
m->cur = c;
|
m->cur = c;
|
||||||
}
|
}
|
||||||
@ -178,23 +179,34 @@ int menu_save (plateau_t p)
|
|||||||
end = true;
|
end = true;
|
||||||
char** liste;
|
char** liste;
|
||||||
int nb = listeSauvegarde (&liste);
|
int nb = listeSauvegarde (&liste);
|
||||||
|
entries [2] [cur] = '\0';
|
||||||
for (int i = 0; i < nb && end; ++i)
|
for (int i = 0; i < nb && end; ++i)
|
||||||
if (!strcmp (entries [2], liste [i]))
|
if (!strcmp (entries [2], liste [i]))
|
||||||
{
|
{
|
||||||
strcpy (entries [2], "existe déjà");
|
|
||||||
cur = 1;
|
cur = 1;
|
||||||
vec2 c = m->cur;
|
vec2 c = m->cur;
|
||||||
m->cur.x = 1;
|
m->cur.x = 1;
|
||||||
m->cur.x = 1;
|
m->cur.y = 1;
|
||||||
Affiche_entry (m, 0);
|
Affiche_entry (m, 0);
|
||||||
m->cur = c;
|
m->cur = c;
|
||||||
end = 0;
|
end = 0;
|
||||||
}
|
}
|
||||||
free_liste (liste, nb);
|
free_liste (liste, nb);
|
||||||
if (end)
|
if (end || confirmation (p->window, NULL, "Écraser", entries [2]) == M_UP)
|
||||||
{
|
{
|
||||||
entries [2] [cur] = '\0';
|
|
||||||
sauvegarde (entries [2], p->hist, p->ia);
|
sauvegarde (entries [2], p->hist, p->ia);
|
||||||
|
end = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (cur != 8)
|
||||||
|
{
|
||||||
|
entries [2] [cur] = '_';
|
||||||
|
entries [2] [cur + 1] = '\0';
|
||||||
|
}
|
||||||
|
m->cur.x = 1;
|
||||||
|
m->cur.y = 1;
|
||||||
|
Affiche_menu(m);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -204,7 +216,7 @@ int menu_save (plateau_t p)
|
|||||||
cur = 8;
|
cur = 8;
|
||||||
vec2 c = m->cur;
|
vec2 c = m->cur;
|
||||||
m->cur.x = 1;
|
m->cur.x = 1;
|
||||||
m->cur.x = 1;
|
m->cur.y = 1;
|
||||||
Affiche_entry (m, 0);
|
Affiche_entry (m, 0);
|
||||||
m->cur = c;
|
m->cur = c;
|
||||||
break;
|
break;
|
||||||
@ -215,7 +227,7 @@ int menu_save (plateau_t p)
|
|||||||
cur = 8;
|
cur = 8;
|
||||||
vec2 c = m->cur;
|
vec2 c = m->cur;
|
||||||
m->cur.x = 1;
|
m->cur.x = 1;
|
||||||
m->cur.x = 1;
|
m->cur.y = 1;
|
||||||
Affiche_entry (m, 0);
|
Affiche_entry (m, 0);
|
||||||
m->cur = c;
|
m->cur = c;
|
||||||
break;
|
break;
|
||||||
@ -303,7 +315,7 @@ int menu_en_jeu_part1 (plateau_t p)
|
|||||||
retour = M_DOWN;
|
retour = M_DOWN;
|
||||||
else
|
else
|
||||||
retour = evenement_menu(p->window, m, event, 0);
|
retour = evenement_menu(p->window, m, event, 0);
|
||||||
if (retour == M_UP || retour == M_RIGHT)
|
if (retour == M_UP || retour == M_RIGHT || retour == M7_UP)
|
||||||
{
|
{
|
||||||
if (resize.x == p->window->w && resize.y == p->window->h)
|
if (resize.x == p->window->w && resize.y == p->window->h)
|
||||||
SDL_BlitSurface (save, NULL, p->window, NULL);
|
SDL_BlitSurface (save, NULL, p->window, NULL);
|
||||||
@ -339,7 +351,11 @@ int menu_en_jeu_part1 (plateau_t p)
|
|||||||
end = true;
|
end = true;
|
||||||
break;
|
break;
|
||||||
case M7_UP :
|
case M7_UP :
|
||||||
|
if (confirmation (p->window, NULL, "Annuler le ", "dernier coup") == M_UP)
|
||||||
annuler (p);
|
annuler (p);
|
||||||
|
m->cur.x = 1;
|
||||||
|
m->cur.y = 1;
|
||||||
|
Affiche_menu(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,6 +200,8 @@ int menu_charger (SDL_Surface* window, scrolling_t scroll, char** file)
|
|||||||
end = true;
|
end = true;
|
||||||
break;
|
break;
|
||||||
case M_MID :
|
case M_MID :
|
||||||
|
if (confirmation (window, scroll, "supprimer", entries [2]) == M_UP)
|
||||||
|
{
|
||||||
supprimer (entries [2]);
|
supprimer (entries [2]);
|
||||||
free_liste (liste, nb_sav);
|
free_liste (liste, nb_sav);
|
||||||
nb_sav = listeSauvegarde(&liste);
|
nb_sav = listeSauvegarde(&liste);
|
||||||
@ -211,6 +213,11 @@ int menu_charger (SDL_Surface* window, scrolling_t scroll, char** file)
|
|||||||
nb_sav = 1;
|
nb_sav = 1;
|
||||||
}
|
}
|
||||||
cur = 0;
|
cur = 0;
|
||||||
|
sprintf (entries [2], "%s", liste[cur]);
|
||||||
|
}
|
||||||
|
m->cur.x = 1;
|
||||||
|
m->cur.y = 1;
|
||||||
|
Affiche_menu(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,50 @@
|
|||||||
|
|
||||||
#define VOL(x) x * MIX_MAX_VOLUME / 100
|
#define VOL(x) x * MIX_MAX_VOLUME / 100
|
||||||
|
|
||||||
|
int confirmation (SDL_Surface* window, scrolling_t scroll, char* ask1, char* ask2)
|
||||||
|
{
|
||||||
|
char* entries [5] = {"?", " OUI ", "?", " NON ", "?"};
|
||||||
|
if (ask1 != NULL)
|
||||||
|
entries [0] = ask1;
|
||||||
|
if (ask2 != NULL)
|
||||||
|
entries [2] = ask2;
|
||||||
|
menu_t m = init_menu (window, entries);
|
||||||
|
Affiche_menu(m);
|
||||||
|
int retour;
|
||||||
|
bool end = false;
|
||||||
|
while (!end)
|
||||||
|
{
|
||||||
|
SDL_Event event;
|
||||||
|
if (scroll == NULL)
|
||||||
|
SDL_WaitEvent (&event);
|
||||||
|
else
|
||||||
|
event = scroll_msg (window, scroll);
|
||||||
|
if (event.type == SDL_QUIT || (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_ESCAPE))
|
||||||
|
retour = M_DOWN;
|
||||||
|
else
|
||||||
|
retour = evenement_menu(window, m, event, 1);
|
||||||
|
if ((event.type == SDL_VIDEORESIZE || (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_f)) && scroll != NULL)
|
||||||
|
scroll = resize_scroll(window, scroll);
|
||||||
|
switch (retour)
|
||||||
|
{
|
||||||
|
case M_UP:
|
||||||
|
end = true;
|
||||||
|
break;
|
||||||
|
case M_LEFT :
|
||||||
|
break;
|
||||||
|
case M_RIGHT :
|
||||||
|
break;
|
||||||
|
case M_DOWN :
|
||||||
|
end = true;
|
||||||
|
break;
|
||||||
|
case M_MID :
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
free_menu(m);
|
||||||
|
return retour;
|
||||||
|
}
|
||||||
|
|
||||||
int menu_music (SDL_Surface* window, scrolling_t scroll)
|
int menu_music (SDL_Surface* window, scrolling_t scroll)
|
||||||
{
|
{
|
||||||
bool en_jeu = Mix_PlayingMusic();
|
bool en_jeu = Mix_PlayingMusic();
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "scrolling.h"
|
#include "scrolling.h"
|
||||||
|
|
||||||
|
int confirmation (SDL_Surface* window, scrolling_t scroll, char* ask1, char* ask2);
|
||||||
|
|
||||||
int menu_music (SDL_Surface* window, scrolling_t scroll);
|
int menu_music (SDL_Surface* window, scrolling_t scroll);
|
||||||
|
|
||||||
int menu_son (SDL_Surface* window, scrolling_t scroll);
|
int menu_son (SDL_Surface* window, scrolling_t scroll);
|
||||||
|
Loading…
Reference in New Issue
Block a user