From 518483434a78c0577e2bc8d009486cb9ce08627d Mon Sep 17 00:00:00 2001 From: Tropicananass Date: Sun, 8 May 2016 18:27:20 +0200 Subject: [PATCH] affichage en jeu --- bin/hex | Bin 122168 -> 132648 bytes makefile | 2 +- src/action_menu_principal.c | 5 +- src/affichage_menu_principal.c | 131 ------------------ src/affichage_menu_principal.h | 15 --- src/affichage_plateau.c | 86 ++---------- src/en_jeu.c | 6 +- src/hex.c | 2 +- src/menu_principal.c | 10 +- src/sauvegarde.c | 6 +- src/scrolling.c | 239 +++++++++++++++++++++++++++++++++ src/scrolling.h | 42 ++++++ src/sound.c | 2 +- 13 files changed, 312 insertions(+), 234 deletions(-) create mode 100644 src/scrolling.c create mode 100644 src/scrolling.h diff --git a/bin/hex b/bin/hex index 63f8dd60e6d66d090244c46066a826b45341b639..ebc1734ce5fc76e977dd41594c06a68ca0850cd8 100644 GIT binary patch literal 132648 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 literal 122168 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 diff --git a/makefile b/makefile index a6715db..db53758 100644 --- a/makefile +++ b/makefile @@ -5,7 +5,7 @@ LDFLAGS=-std=c99 -lm `sdl-config --cflags --libs` -lSDL_ttf -lSDL_gfx -lSDL_mixe EXEC=bin/hex SRCDIR=src OBJDIR=obj -SRC=hex.c affichage_plateau.c action_plateau.c affichage_menu_principal.c window.c param.c en_jeu.c menu_principal.c draw.c action_menu_principal.c sound.c testJeu.c sauvegarde.c +SRC=hex.c affichage_plateau.c action_plateau.c affichage_menu_principal.c window.c param.c en_jeu.c menu_principal.c draw.c action_menu_principal.c sound.c testJeu.c sauvegarde.c scrolling.c #$(wildcard src/*.c) OBJ=$(SRC:.c=.o) diff --git a/src/action_menu_principal.c b/src/action_menu_principal.c index 436d1c2..1737601 100644 --- a/src/action_menu_principal.c +++ b/src/action_menu_principal.c @@ -9,11 +9,12 @@ #include #include +#include +#include + #include "globals.h" #include "affichage_menu_principal.h" #include "sound.h" -#include "SDL/SDL_mixer.h" - void deplacement_menu_mouse (menu_t m, const SDL_Event* event) { char* entries [3][3] = {{"", "Charger", ""}, {"Jouer", "HEX", "Quitter"}, {"", "Options", ""}}; diff --git a/src/affichage_menu_principal.c b/src/affichage_menu_principal.c index 9ae89c3..1fa7531 100644 --- a/src/affichage_menu_principal.c +++ b/src/affichage_menu_principal.c @@ -259,137 +259,6 @@ void Affiche_menu_options (SDL_Surface* window, int rayon, int l) SDL_Flip (window); } -/* Scroll */ -/* Interne */ - -int Cadre_scroll (SDL_Surface* window) -{ - int size = window->h / 24; - SDL_Rect bande = {0, window->h * 45. / 48, window->w, size}; - SDL_FillRect (window, &bande, param->in); - SDL_Flip (window); - return size; -} - -void create_messages_surfaces (scrolling_t s, int size, int bpp) -{ - char* message [NBMESS] = {"Crédits : petite bite & gros chakal Corp.", "Breaking News : Le Soudan en manque de soudeurs", "lmqsdkmq", "There is nothing to see here ... BASTARD !"}; - // Also modify NBMESS - SDL_Color c [NBMESS] = {{170,10,107}, {60,255,1}, {0, 0, 0}, {200, 180, 201}}; - for (int i = 0; i < NBMESS; ++i) - { - assert (message [i] != NULL); - SDL_Surface* texte = TTF_RenderUTF8_Blended(param->font, message [i], c [i]);//, param->rgb_ex); - Redim_entry(&texte, size, texte->w); - s->msg [i] = SDL_CreateRGBSurface (SDL_HWSURFACE, texte->w + 1, texte->h, bpp, 0, 0, 0, 0); - SDL_Rect temp = {0, 0, s->msg [i]->w, s->msg [i]->h}; - SDL_FillRect (s->msg [i], &temp, param->in); - SDL_BlitSurface (texte, NULL, s->msg [i], &temp); - SDL_FreeSurface (texte); - } -} - -void nb_msg_max (scrolling_t s, SDL_Surface* window) -{ - s->nb_msg_max = 1; - for (int i = 0; i < NBMESS; ++i) - { - int nb_msg = 1; - int taille_cumule = s->msg [i]->w; - while (window->w > taille_cumule) - { - taille_cumule += s->msg [(i + nb_msg)%NBMESS]->w + 10; - ++nb_msg; - } - if (s->nb_msg_max < nb_msg) - s->nb_msg_max = nb_msg; - } - ++s->nb_msg_max; - while (s->nb_msg_max % NBMESS != 0) - ++s->nb_msg_max; -} - -void init_pos_dim (scrolling_t s, SDL_Surface* window) -{ - s->pos = malloc (sizeof (SDL_Rect) * s->nb_msg_max); - s->dim = malloc (sizeof (SDL_Rect) * s->nb_msg_max); - for (int i = 0; i < s->nb_msg_max; ++i) - { - s->pos [i].x = window->w; - s->pos [i].y = window->h * 45. / 48; - s->dim [i].x = 0; - s->dim [i].y = 0; - s->dim [i].w = s->msg [i%NBMESS]->w; - s->dim [i].h = s->msg [i%NBMESS]->h; - } -} - -/* Externe */ - -scrolling_t init_scroll (SDL_Surface* window) -{ - scrolling_t s = malloc (sizeof (struct s_scrolling)); - - int size = Cadre_scroll (window); - - /* Creation surfaces */ - create_messages_surfaces (s, size, window->format->BitsPerPixel); - - nb_msg_max (s, window); - - init_pos_dim (s, window); - - s->first_msg = 0; - s->nb_msg = 1; - return s; -} - -void free_scroll (scrolling_t s) -{ - free (s->pos); - free (s->dim); - - for (int i = 0; i < NBMESS; ++i) - SDL_FreeSurface(s->msg [i]); - - free (s); -} - -SDL_Event scroll_msg (SDL_Surface* window, scrolling_t s) -{ - int t0 = SDL_GetTicks(); - SDL_Event event = {0}; - bool delay; - while ((delay = !SDL_PollEvent(&event)) && SDL_GetTicks() - t0 < 200) - { - for (int i = s->first_msg; i < s->first_msg + s->nb_msg; ++i) - { - int c = i % (s->nb_msg_max); - SDL_BlitSurface (s->msg [c % NBMESS], s->dim + c, window, s->pos + c); - s->pos [c].x -= 1; - if (s->pos [c].x == -1) - s->dim [c].x += 1; - } - - if (s->dim [s->first_msg].x == s->msg [s->first_msg%NBMESS]->w) - { - s->dim [s->first_msg].x = 0; - s->pos [s->first_msg].x = window->w; - s->first_msg = (s->first_msg + 1) % (s->nb_msg_max); - --(s->nb_msg); - } - - int last = (s->first_msg + s->nb_msg - 1) % (s->nb_msg_max); - if (s->pos[last].x + s->msg [last%NBMESS]->w - s->dim[last].x < window->w - 20 && s->nb_msg < s->nb_msg_max) - s->nb_msg = (s->nb_msg + 1) % ((s->nb_msg_max) + 1); - - SDL_Flip(window); - if (delay) - SDL_Delay(5); - } - return event; -} - void banane (SDL_Surface* window) { SDL_Surface* gif [8]; diff --git a/src/affichage_menu_principal.h b/src/affichage_menu_principal.h index 1e11dbe..71f7d34 100644 --- a/src/affichage_menu_principal.h +++ b/src/affichage_menu_principal.h @@ -4,27 +4,12 @@ #include #include "globals.h" -#define NBMESS 4 - -typedef struct s_scrolling { - SDL_Surface* msg [NBMESS]; - SDL_Rect* pos; - SDL_Rect* dim; - int first_msg, nb_msg, nb_msg_max; -}* scrolling_t; - void Affiche_menu_principal (menu_t m); void Affiche_menu_options (SDL_Surface* window, int rayon, int l); void Affiche_entry (menu_t m, char* entry, bool pointe); -scrolling_t init_scroll (SDL_Surface* window); - -void free_scroll (scrolling_t s); - -SDL_Event scroll_msg (SDL_Surface* window, scrolling_t s); - void east1 (SDL_Surface* window, SDLKey key); #endif /* _AFFICHAGE_MENU_PRICIPAL_ */ diff --git a/src/affichage_plateau.c b/src/affichage_plateau.c index 476b7a3..2798a1a 100644 --- a/src/affichage_plateau.c +++ b/src/affichage_plateau.c @@ -12,22 +12,27 @@ void Define_rayon (plateau_t p) { - int decal_droite = 40; - p->marge_vert = p->window->h / 6; - int width = p->window->w - 2 * decal_droite; + p->marge_hori = p->window->w / 96; + p->marge_vert = p->window->h / 12; + int width = p->window->w - 2 * p->marge_hori; int height = p->window->h - 2 * p->marge_vert; - int r1 = (height - (NBSIDE - 1)) / (.5 + NBSIDE * 1.5); - int r2 = width / ((3 * NBSIDE - 1) * cos (PI/6)); + int r1 = height / (.5 + NBSIDE * 1.5); + int r2 = width / ((NBSIDE + NBSIDE / 2.) * RAC3); if (r1 < r2) { p->r = r1 - r1%2; - p->marge_hori = p->window->w - decal_droite - 1.5 * (NBSIDE) * 2 * p->r * cos(PI/6); + int l = p->r * RAC3; + p->marge_hori = (p->window->w - NBSIDE * l - NBSIDE * l / 2) / 2; + p->marge_vert = (p->window->h - 1.5 * (NBSIDE) * p->r - p->r / 2) / 2 - p->window->h / 24; } else { p->r = r2 - r2%2; - p->marge_hori = p->window->w - decal_droite - 1.5 * (NBSIDE) * 2 * p->r * cos(PI/6); + int l = p->r * RAC3; + p->marge_hori = (p->window->w - NBSIDE * l - NBSIDE * l / 2) / 2; + p->marge_vert = (p->window->h - 1.5 * (NBSIDE) * p->r - p->r / 2) / 2; } + printf ("%d - %d - %d\n", p->r, r1, r2); } void Bordures (plateau_t p) @@ -85,11 +90,6 @@ void Bordures (plateau_t p) y [0] -= 2 * RAC3 + 1; y [NBSIDE * 4 - 1] -= 1; - for (int i = 0; i < NBSIDE * 2; ++i) - { - printf ("%d - %d - %d - %d\n", x [i], x [NBSIDE * 2 + i], y [i], y [NBSIDE * 2 + i]); - } - filledPolygonRGBA(p->window, x, y, NBSIDE * 4, param->rgb_j1.r, param->rgb_j1.g, param->rgb_j1.b, 255); dx = p->marge_hori + p->r - p->l / 2 + NBSIDE * (p->l + 1) - p->l / 2 - 1; @@ -109,68 +109,6 @@ void Bordures (plateau_t p) filledPolygonRGBA(p->window, x, y, NBSIDE * 4 + 2, param->rgb_j1.r, param->rgb_j1.g, param->rgb_j1.b, 255); - - /*for (int i = 0; i < NBSIDE * 2 + 1; ++i) - { - printf ("%d - %d - %d - %d\n", x [i], x [NBSIDE * 2 + 1 + i], y [i], y [NBSIDE * 2 + 1 + i]); - }*/ - - /*// (horizontales) player 2 - int l = (cos (PI / 6) - cos (5 * PI / 6)) * p->r; - int dx = p->marge_hori+ p->r - l / 2; - Sint16 x1 [5] = {dx, - dx - l / 2, - dx, - dx + NBSIDE * (l + 1) - .25 * l, - dx + NBSIDE * (l + 1)}; - Sint16 y1 [5] = {p->marge_vert - p->r / 2, - p->marge_vert, - p->marge_vert + p->r / 2, - p->marge_vert + p->r / 2, - p->marge_vert - p->r / 2}; - filledPolygonRGBA(p->window, x1, y1, 5, param->rgb_j2.r, param->rgb_j2.g, param->rgb_j2.b, 255); - dx += (NBSIDE - 1) * (l + 1) / 2; - Sint16 x2 [5] = {dx + .25 * l, - dx + NBSIDE * (l + 1), - dx + NBSIDE * (l + 1) + l / 2, - dx + NBSIDE * (l + 1), - dx}; - int dy = p->marge_vert + 1.5 * p->r * NBSIDE + .5 * p->r; - Sint16 y2 [5] = {dy - p->r / 2, - dy - p->r / 2, - dy, - dy + p->r / 2, - dy + p->r / 2}; - filledPolygonRGBA(p->window, x2, y2, 5, param->rgb_j2.r, param->rgb_j2.g, param->rgb_j2.b, 255); - Sint16 x3 [5] = {x1 [1], - x1 [1] - l / 2, - x2 [4], - x2 [0], - x1 [2]}; - Sint16 y3 [5] = {y1 [1], - y1 [2], - y2 [4], - y2 [0], - y1 [2]}; - filledPolygonRGBA(p->window, x3, y3, 5, param->rgb_j1.r, param->rgb_j1.g, param->rgb_j1.b, 255);*/ - - /*x [0] = ; - x [1] = ; - x [2] = ; - x [3] = ; - x [4] = ; - y [0] = ; - y [1] = ; - y [2] = ; - y [3] = ; - y [4] = ; - pos.x += (NBSIDE - 1) * (l + 1) / 2.; - pos.y += 1.5 * p->r * NBSIDE + .5 * p->r; - SDL_FillRect (p->window, &pos, param->j2); - - // (Verticales) player 1 - filledPolygonRGBA(p->window, x, y, 4, 255, 0, 255, 255);*/ - SDL_Flip (p->window); } diff --git a/src/en_jeu.c b/src/en_jeu.c index 6f1b1f8..fce7976 100644 --- a/src/en_jeu.c +++ b/src/en_jeu.c @@ -13,6 +13,7 @@ #include "window.h" #include "param.h" #include "sauvegarde.h" +#include "scrolling.h" void en_jeu (SDL_Surface* window, int* hist) { @@ -24,10 +25,11 @@ void en_jeu (SDL_Surface* window, int* hist) plateau = load_plateau (window, hist); vec2 c = {0, 0}; bool end = false; + scrolling_t s = init_dynamic_scroll (window, plateau); while (!end) { - SDL_Event event; - SDL_WaitEvent (&event); + SDL_Event event = dynamic_scroll (window, s, plateau); + //SDL_WaitEvent (&event); switch (event.type) { case SDL_VIDEORESIZE: diff --git a/src/hex.c b/src/hex.c index 45b08e3..1d6a4c8 100644 --- a/src/hex.c +++ b/src/hex.c @@ -40,7 +40,7 @@ int main(int argc, char **argv) end = 1; } } - //en_jeu (window); + //en_jeu (window, NULL); save_param(window); Free_window (window); return 0; diff --git a/src/menu_principal.c b/src/menu_principal.c index 343bafb..de4472c 100644 --- a/src/menu_principal.c +++ b/src/menu_principal.c @@ -4,6 +4,7 @@ #include "affichage_menu_principal.h" #include "globals.h" #include "window.h" +#include "scrolling.h" menu_t init_menu_principal (SDL_Surface* window) { @@ -31,8 +32,11 @@ void free_menu (menu_t m) scrolling_t resize_scroll (SDL_Surface* w, scrolling_t s) { + char** msg = s->msgstr; + SDL_Color* c = s->c; + int nb = s->nb_surf; free_scroll (s); - s = init_scroll (w); + s = init_scroll (w, msg, c, nb); return s; } @@ -88,7 +92,9 @@ int menu_principal (SDL_Surface* window) Affiche_menu_principal(m); int retour; bool end = 0; - scrolling_t scroll = init_scroll (window); + char* message [] = {"Crédits : petite bite & gros chakal Corp.", "Breaking News : Le Soudan en manque de soudeurs", "lmqsdkmq", "There is nothing to see here ... BASTARD !"}; + SDL_Color c [] = {{170,10,107}, {60,255,1}, {0, 0, 0}, {200, 180, 201}}; + scrolling_t scroll = init_scroll (window, message, c, 4); while (!end) { SDL_Event event; diff --git a/src/sauvegarde.c b/src/sauvegarde.c index 5453cd3..adb716f 100644 --- a/src/sauvegarde.c +++ b/src/sauvegarde.c @@ -92,21 +92,17 @@ int chargement(char *nom , int **tab, int *IA) return ERROR_OPENFILE; a=fscanf(f_chargement, "%d", IA); - printf ("1\n"); if(!a || *IA>2 || *IA<0){ return ERROR_IA; } - printf ("2\n"); fscanf(f_chargement, "%d", &taille); - if(taille<1){ + if(taille<1 || taille > 25){ return ERROR_SIZE; } - printf ("3\n"); t=malloc(sizeof(int)*taille*taille); a=1, i = -1; - printf ("4\n"); while(a>0){ i++; a=fscanf(f_chargement, "%d" , &t[i]); diff --git a/src/scrolling.c b/src/scrolling.c new file mode 100644 index 0000000..e4d92a8 --- /dev/null +++ b/src/scrolling.c @@ -0,0 +1,239 @@ +/* + * scrolling.c + * + * Created on: 8 mai 2016 + * Author: nathan + */ + +#include "scrolling.h" + +#include +#include +#include +#include +#include + +/* Scroll */ +/* Interne */ + +void Redim (SDL_Surface** entry, int size) +{ + SDL_Surface* entry_dim; + entry_dim = rotozoomSurface(*entry, 0, size/(float)(*entry)->h, 1); + SDL_FreeSurface (*entry); + *entry = entry_dim; +} + +int Cadre_scroll (SDL_Surface* window) +{ + int size = window->h / 24; + SDL_Rect bande = {0, window->h * 45. / 48, window->w, size}; + SDL_FillRect (window, &bande, param->in); + SDL_Flip (window); + return size; +} + +void create_messages_surfaces (scrolling_t s, int size, int bpp) +{ + s->msg = malloc (sizeof (SDL_Surface*) * s->nb_surf); + for (int i = 0; i < s->nb_surf; ++i) + { + SDL_Surface* texte = TTF_RenderUTF8_Blended(param->font, s->msgstr [i], s->c [i]);//, param->rgb_ex); + Redim(&texte, size); + s->msg [i] = SDL_CreateRGBSurface (SDL_HWSURFACE, texte->w + 2, texte->h, bpp, 0, 0, 0, 0); + SDL_Rect temp = {0, 0, s->msg [i]->w, s->msg [i]->h}; + SDL_FillRect (s->msg [i], &temp, param->in); + SDL_BlitSurface (texte, NULL, s->msg [i], &temp); + SDL_FreeSurface (texte); + } +} + +SDL_Surface* create_one_surface (char* msgstr, SDL_Color c, int size, int bpp) +{ + SDL_Surface* texte = TTF_RenderUTF8_Blended(param->font, msgstr, c); + Redim(&texte, size); + SDL_Surface *msg = SDL_CreateRGBSurface (SDL_HWSURFACE, texte->w + 1, texte->h, bpp, 0, 0, 0, 0); + SDL_Rect temp = {0, 0, msg->w, msg ->h}; + SDL_FillRect (msg, &temp, param->in); + SDL_BlitSurface (texte, NULL, msg, &temp); + SDL_FreeSurface (texte); + return msg; + +} + +void nb_msg_max (scrolling_t s, SDL_Surface* window) +{ + s->nb_msg_max = 1; + for (int i = 0; i < s->nb_surf; ++i) + { + int nb_msg = 1; + int taille_cumule = s->msg [i]->w; + while (window->w > taille_cumule) + { + taille_cumule += s->msg [(i + nb_msg)%s->nb_surf]->w + 10; + ++nb_msg; + } + if (s->nb_msg_max < nb_msg) + s->nb_msg_max = nb_msg; + } + ++s->nb_msg_max; + while (s->nb_msg_max % s->nb_surf != 0) + ++s->nb_msg_max; +} + +void init_pos_dim (scrolling_t s, SDL_Surface* window) +{ + s->pos = malloc (sizeof (SDL_Rect) * s->nb_msg_max); + s->dim = malloc (sizeof (SDL_Rect) * s->nb_msg_max); + for (int i = 0; i < s->nb_msg_max; ++i) + { + s->pos [i].x = window->w; + s->pos [i].y = window->h * 45. / 48; + s->dim [i].x = 0; + s->dim [i].y = 0; + s->dim [i].w = s->msg [i%s->nb_surf]->w; + s->dim [i].h = s->msg [i%s->nb_surf]->h; + } +} + +/* Externe */ + +scrolling_t init_scroll (SDL_Surface* window, char** msg, SDL_Color* c, int nb_mess) +{ + scrolling_t s = malloc (sizeof (struct s_scrolling)); + + int size = Cadre_scroll (window); + s->nb_surf = nb_mess; + s->msgstr = msg; + s->c = c; + /* Creation surfaces */ + create_messages_surfaces (s, size, window->format->BitsPerPixel); + + nb_msg_max (s, window); + + init_pos_dim (s, window); + + s->first_msg = 0; + s->nb_msg = 1; + return s; +} + +void free_scroll (scrolling_t s) +{ + free (s->pos); + free (s->dim); + + for (int i = 0; i < s->nb_surf; ++i) + SDL_FreeSurface(s->msg [i]); + + free (s->msg); + free (s); +} + +SDL_Event scroll_msg (SDL_Surface* window, scrolling_t s) +{ + int t0 = SDL_GetTicks(); + SDL_Event event = {0}; + bool delay; + while ((delay = !SDL_PollEvent(&event)) && SDL_GetTicks() - t0 < 200) + { + for (int i = s->first_msg; i < s->first_msg + s->nb_msg; ++i) + { + int c = i % (s->nb_msg_max); + SDL_BlitSurface (s->msg [c % s->nb_surf], s->dim + c, window, s->pos + c); + s->pos [c].x -= 1; + if (s->pos [c].x == -1) + s->dim [c].x += 1; + } + + if (s->dim [s->first_msg].x == s->msg [s->first_msg%s->nb_surf]->w) + { + s->dim [s->first_msg].x = 0; + s->pos [s->first_msg].x = window->w; + s->first_msg = (s->first_msg + 1) % (s->nb_msg_max); + --(s->nb_msg); + } + + int last = (s->first_msg + s->nb_msg - 1) % (s->nb_msg_max); + if (s->pos[last].x + s->msg [last%s->nb_surf]->w - s->dim[last].x < window->w - 20 && s->nb_msg < s->nb_msg_max) + s->nb_msg = (s->nb_msg + 1) % ((s->nb_msg_max) + 1); + + SDL_Flip(window); + if (delay) + SDL_Delay(5); + } + return event; +} + +d_scrolling_t init_dynamic_scroll (SDL_Surface* window, plateau_t p) +{ + d_scrolling_t d = malloc (sizeof (struct s_d_scrolling)); + d->s = malloc (sizeof (struct s_scrolling)); + char* msg [2] = {"Au tour du Joueur 2", "Au tour du Joueur 1"}; + SDL_Color c [2] = {param->rgb_j2, param->rgb_j1}; + + int size = Cadre_scroll (window); + d->s->nb_surf = 2; + d->s->c = c; + d->s->msgstr = msg; + create_messages_surfaces (d->s, size, window->format->BitsPerPixel); + + d->id = 0; + d->precedent = NULL; + + nb_msg_max (d->s, window); + + SDL_Surface* j1 = d->s->msg [1]; + + char new [50] = "Dernier coup : joueur 2 en 00 - 00"; + d->s->msg[1] = create_one_surface (new, param->rgb_j1, d->s->msg[0]->h, window->format->BitsPerPixel); + + + init_pos_dim (d->s, window); + + d->s->first_msg = 0; + d->s->nb_msg = 1; + + d->s->msg [1] = j1; + d->s->nb_surf = 1; + + return d; +} + +SDL_Event dynamic_scroll (SDL_Surface* window, d_scrolling_t d, plateau_t p) +{ + SDL_Surface* j1 = d->s->msg [1]; + SDL_Surface* j2 = d->s->msg [0]; + if (p->nb_coups != 0) + { + if (d->id != p->nb_coups%2) + { + d->s->nb_surf = 2; + Cadre_scroll (window); + d->id = !d->id; + char new [50]; + sprintf (new, "Dernier coup : joueur %d en %2d - %2d", PLAYER(!p->player), p->hist[p->nb_coups - 1] / NBSIDE + 1, p->hist[p->nb_coups - 1] % NBSIDE + 1); + if (p->player) + d->s->msg[1] = create_one_surface (new, param->rgb_j1, d->s->msg[0]->h, window->format->BitsPerPixel); + else + d->s->msg[1] = create_one_surface (new, param->rgb_j2, d->s->msg[0]->h, window->format->BitsPerPixel); + } + else + d->s->msg [1] = d->precedent; + } + + if (PLAYER(p->player) == J1) + d->s->msg [0] = j1; + SDL_Event e = scroll_msg (window, d->s); + + if (p->nb_coups != 0) + { + if (d->precedent != NULL && d->precedent != d->s->msg [1]) + SDL_FreeSurface (d->precedent); + d->precedent = d->s->msg [1]; + } + d->s->msg [1] = j1; + d->s->msg [0] = j2; + + return e; +} diff --git a/src/scrolling.h b/src/scrolling.h new file mode 100644 index 0000000..0d05a2c --- /dev/null +++ b/src/scrolling.h @@ -0,0 +1,42 @@ +/* + * scrolling.h + * + * Created on: 8 mai 2016 + * Author: nathan + */ + +#ifndef _SCROLLING_H_ +#define _SCROLLING_H_ + +#include +#include "globals.h" + +typedef struct s_scrolling* scrolling_t; + +struct s_scrolling{ + char** msgstr; + SDL_Color* c; + SDL_Surface** msg; + int nb_surf; + SDL_Rect* pos; + SDL_Rect* dim; + int first_msg, nb_msg, nb_msg_max; +}; + +typedef struct s_d_scrolling{ + scrolling_t s; + SDL_Surface* precedent; + bool id; +}* d_scrolling_t; + +scrolling_t init_scroll (SDL_Surface* window, char** msg, SDL_Color* c, int nb_mess); + +void free_scroll (scrolling_t s); + +SDL_Event scroll_msg (SDL_Surface* window, scrolling_t s); + +d_scrolling_t init_dynamic_scroll (SDL_Surface* window, plateau_t p); + +SDL_Event dynamic_scroll (SDL_Surface* window, d_scrolling_t d, plateau_t p); + +#endif /* _SCROLLING_H_ */ diff --git a/src/sound.c b/src/sound.c index 194350c..720e171 100644 --- a/src/sound.c +++ b/src/sound.c @@ -13,7 +13,7 @@ void Load_sound (void) { param->music_vol = .5 * MIX_MAX_VOLUME; param->music = Mix_LoadMUS ("ressources/theme.mp3"); - Mix_VolumeMusic (param->music_vol);//param->music_vol); + Mix_VolumeMusic (0);//param->music_vol); param->chunk_vol = .25 * MIX_MAX_VOLUME; printf ("%d\n", param->chunk_vol);