From f1ac5006f0e3f2182942c1d5807b96bcad1a6384 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathis=20Rib=C3=A9mont?= Date: Mon, 14 Feb 2022 08:52:06 +0100 Subject: [PATCH] new enum for button, drawn become enable --- Pontu/entryPoints/main.c | 5 ++- Pontu/include/engine/AudioHandler.h | 3 +- Pontu/include/engine/Button.h | 4 +- Pontu/rsrc/sfx/menu_sound_effect.wav | Bin 12794 -> 13410 bytes Pontu/rsrc/sfx/validate_sound.wav | Bin 0 -> 16478 bytes Pontu/src/engine/Button.c | 15 +++---- Pontu/src/view/MainMenu.c | 43 +++++++------------- Pontu/src/view/MenuEndGame.c | 56 +++++++++++++-------------- 8 files changed, 58 insertions(+), 68 deletions(-) create mode 100644 Pontu/rsrc/sfx/validate_sound.wav diff --git a/Pontu/entryPoints/main.c b/Pontu/entryPoints/main.c index 834c110..1470c8e 100644 --- a/Pontu/entryPoints/main.c +++ b/Pontu/entryPoints/main.c @@ -11,7 +11,7 @@ int main(int argc, char *argv[]) { SDL_Rect windowSize = {10, 10, 900, 900}; - + SDL_Window* window = NULL; SDL_Renderer* renderer = NULL; @@ -48,6 +48,7 @@ int main(int argc, char *argv[]) { switch (generalState) { case GS_MainMenu: mainMenu(renderer,window,&generalState, fontHandler, audioHandler); + playSFX(validate_sound, audioHandler) break; case GS_GameCreationMenu:{ int windowW; @@ -73,7 +74,7 @@ int main(int argc, char *argv[]) { generalState = GS_Game; gameView(&generalState, window, renderer, players, nbPlayers, &fontHandler); - + //Pour tester le endGameMenu directement /*generalState = GS_EndOfGameMenu; players[0].eliminationTurn = 10; diff --git a/Pontu/include/engine/AudioHandler.h b/Pontu/include/engine/AudioHandler.h index 01be82c..21910ea 100644 --- a/Pontu/include/engine/AudioHandler.h +++ b/Pontu/include/engine/AudioHandler.h @@ -32,7 +32,8 @@ */ #define MACRO_FOR_ALL_SFX(M) \ M(testClick) \ - M(menu_sound_effect) + M(menu_sound_effect) \ + M(validate_sound) /** * Macro used to generate the entries for the musics in #EnumAudios. diff --git a/Pontu/include/engine/Button.h b/Pontu/include/engine/Button.h index 079390c..c4ec395 100644 --- a/Pontu/include/engine/Button.h +++ b/Pontu/include/engine/Button.h @@ -13,6 +13,8 @@ struct P_buttonArg; +enum {BUTTON_NOTHING, BUTTON_ENTRY, BUTTON_EXIT}; + /** * \struct P_Button * \brief Represents a button @@ -23,7 +25,7 @@ typedef struct P_button SDL_Texture* hoverTexture; ///> texture to draw when the button is hovered SDL_Rect rect; ///> defines coordinates and size for hitbox and display void (*onClick)(struct P_button* buttonCaller); ///> action done on click - bool drawn; ///> is the button drawn + bool enable; ///> is the button enable and drawable bool hover; ///> is the button hovered void* arg; } P_Button; diff --git a/Pontu/rsrc/sfx/menu_sound_effect.wav b/Pontu/rsrc/sfx/menu_sound_effect.wav index 97c4e872f1670bb53375dfc54468a5da177a33e5..4e79194d6dedcaf702a04b702c0c596541499462 100644 GIT binary patch literal 13410 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 literal 12794 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 literal 0 HcmV?d00001 diff --git a/Pontu/src/engine/Button.c b/Pontu/src/engine/Button.c index 475930f..c711ef6 100644 --- a/Pontu/src/engine/Button.c +++ b/Pontu/src/engine/Button.c @@ -6,7 +6,7 @@ P_Button createButton(SDL_Texture* texture, SDL_Texture* hoverTexture ,const int coordx, const int coordy, const int sizex, const int sizey, void (*onClick)(P_Button* buttonCaller)) { // Declarations - P_Button b = { .rect = { .x = coordx, .y = coordy, .w = sizex, .h = sizey }, .onClick = onClick, .drawn = false}; + P_Button b = { .rect = { .x = coordx, .y = coordy, .w = sizex, .h = sizey }, .onClick = onClick, .enable = true}; if(onClick == NULL) fprintf(stderr, "Attention: aucune action onClick n'est passé au bouton.\n"); b.texture = texture; @@ -18,19 +18,20 @@ P_Button createButton(SDL_Texture* texture, SDL_Texture* hoverTexture ,const int bool drawButtonOnRenderer(SDL_Renderer* renderer, P_Button* button) { SDL_SetRenderTarget(renderer, NULL); + if(button->enable == false) + return false; if(SDL_RenderCopy(renderer,button->hover && button->hoverTexture != NULL ? button->hoverTexture : button->texture,NULL,&(button->rect))) { fprintf(stderr,"SDLWarning: %s\n",SDL_GetError()); return false; } - button->drawn = true; //printf("Redraw de %p\n",button); return true; } bool isHover(P_Button* button) { - return button->hover && button->drawn; + return button->hover && button->enable; } bool changeButtonTexture(P_Button* button, SDL_Texture* texture) @@ -65,12 +66,12 @@ int isButtonInteractWithCursor(P_Button * button,const int x,const int y){ if(isHover(button)){ button->hover = SDL_PointInRect(&coord,&(button->rect)); if(button->hover == false){ - return 2; + return BUTTON_EXIT; } - return 0; + return BUTTON_NOTHING; } button->hover = SDL_PointInRect(&coord,&(button->rect)); if(button->hover) - return 1; - return 0; + return BUTTON_ENTRY; + return BUTTON_NOTHING; } diff --git a/Pontu/src/view/MainMenu.c b/Pontu/src/view/MainMenu.c index 5f0d734..0e98b89 100644 --- a/Pontu/src/view/MainMenu.c +++ b/Pontu/src/view/MainMenu.c @@ -114,32 +114,16 @@ int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * general } break; case SDL_MOUSEMOTION: - switch (isButtonInteractWithCursor(&(buttons[0]),event.motion.x,event.motion.y)) { - case 1: - drawButtonOnRenderer(renderer,&(buttons[0])); - playSFX(SFX_menu_sound_effect, audioHandler); - break; - case 2: - drawButtonOnRenderer(renderer,&(buttons[0])); - break; - } - switch (isButtonInteractWithCursor(&(buttons[1]),event.motion.x,event.motion.y)) { - case 1: - drawButtonOnRenderer(renderer,&(buttons[1])); - playSFX(SFX_menu_sound_effect, audioHandler); - break; - case 2: - drawButtonOnRenderer(renderer,&(buttons[1])); - break; - } - switch (isButtonInteractWithCursor(&(buttons[2]),event.motion.x,event.motion.y)) { - case 1: - drawButtonOnRenderer(renderer,&(buttons[2])); - playSFX(SFX_menu_sound_effect, audioHandler); - break; - case 2: - drawButtonOnRenderer(renderer,&(buttons[2])); - break; + for (size_t i = 0; i < nb; i++) { + switch (isButtonInteractWithCursor(&(buttons[i]),event.motion.x,event.motion.y)) { + case 1: + drawButtonOnRenderer(renderer,&(buttons[i])); + playSFX(SFX_menu_sound_effect, audioHandler); + break; + case 2: + drawButtonOnRenderer(renderer,&(buttons[i])); + break; + } } break; case SDL_WINDOWEVENT: @@ -152,9 +136,10 @@ int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * general event.window.data2); windowSize.w = event.window.data1; windowSize.h = event.window.data2; - buttons[0].rect.x = (windowSize.w/2)-(buttons[0].rect.w/2); - buttons[1].rect.x = (windowSize.w/2)-(buttons[1].rect.w/2); - buttons[2].rect.x = (windowSize.w/2)-(buttons[2].rect.w/2); + for (size_t i = 0; i < nb; i++) { + buttons[i].rect.x = (windowSize.w/2)-(buttons[i].rect.w/2); + drawButtonOnRenderer(renderer,&(buttons[i])); + } } break; default: diff --git a/Pontu/src/view/MenuEndGame.c b/Pontu/src/view/MenuEndGame.c index 7aeba34..81d3c9f 100644 --- a/Pontu/src/view/MenuEndGame.c +++ b/Pontu/src/view/MenuEndGame.c @@ -16,7 +16,7 @@ struct endGameMenuTextLabel { /** * @brief Button handle which set a generalState to GS_MainMenu - * + * * @param caller The button clicked */ void setStateToMainMenu(P_Button* caller) { @@ -29,9 +29,9 @@ SDL_Rect getEndGameMenuRect(SDL_Window* window) { SDL_GetWindowSize(window, &windowW, &windowH); SDL_Rect rect = { - .x=windowW/10, - .y=0, - .w=windowW*80/100, + .x=windowW/10, + .y=0, + .w=windowW*80/100, .h=windowH }; return rect; @@ -39,17 +39,17 @@ SDL_Rect getEndGameMenuRect(SDL_Window* window) { /** * @brief Create button For EndGameMenu - * - * @param renderer The renderer where buttons will be drawn + * + * @param renderer The renderer where buttons will be enable * @param font Font used by buttons - * @param rect Rect in which the endGameMenu is drawn - * @param state generalState which will be attached to the button - * @return P_Button + * @param rect Rect in which the endGameMenu is enable + * @param state generalState which will be attached to the button + * @return P_Button */ P_Button createButtonForEndGameMenu(SDL_Renderer* renderer, TTF_Font* font, const SDL_Rect* rect, GeneralState* state) { int sizeX; int sizeY; - + SDL_Texture* texture = createGenericButtonTexture("Retour menu", font, 50, COLOR_GENERIC_BUTTON_BORDER, COLOR_GENERIC_BUTTON_BACKGROUND, 4, 4, &sizeX, &sizeY, renderer); if (texture == NULL) { perror(SDL_GetError()); @@ -60,7 +60,7 @@ P_Button createButtonForEndGameMenu(SDL_Renderer* renderer, TTF_Font* font, cons perror(SDL_GetError()); exit(errno); } - + P_Button buttonMenuEndGame = createButton(texture, textureHover, rect->x, rect->y, sizeX, sizeY, &setStateToMainMenu); buttonMenuEndGame.arg = state; @@ -85,7 +85,7 @@ TextLabel createEliminationTurnLabel(SDL_Renderer* renderer, TTF_Font* font, con sprintf(text, "Tour: %d", eliminationTurn); TextLabel label = createUnsizedTextLabel(text, color, font, renderer); - + free(text); return label; @@ -150,7 +150,7 @@ struct endGameMenuTextLabel createLabels(SDL_Renderer* renderer, const Player pl for (size_t i=0; ifonts[FONT_retro], &PLAYER_SDL_COLORS[players[i].color], players[i].rank, players[i].pseudo)); array_PositionSpecifier_AddElement(&labels.positionSpecifiers, getPseudoAndRankPositionSpecifier(&array_TextLabel_Last(&labels.textLabels)->textZone, players[i].rank)); - + array_TextLabel_AddElement(&labels.textLabels, createEliminationTurnLabel(renderer, fontHandler->fonts[FONT_retro], &PLAYER_SDL_COLORS[players[i].color], players[i].eliminationTurn)); array_PositionSpecifier_AddElement(&labels.positionSpecifiers, getEliminationTurnPositionSpecifier(&array_TextLabel_Last(&labels.textLabels)->textZone, players[i].rank)); } @@ -159,10 +159,10 @@ struct endGameMenuTextLabel createLabels(SDL_Renderer* renderer, const Player pl void drawEndGameMenu(SDL_Renderer* renderer, const SDL_Rect rectMenuEndGame, struct endGameMenuTextLabel* labels) { - + SDL_SetRenderDrawColor(renderer, 220,220,220,255); SDL_RenderFillRect(renderer, &rectMenuEndGame); - + for (size_t i=0; itextLabels.size; ++i) { labels->textLabels.elems[i].textZone = adaptPosToRect(&labels->positionSpecifiers.elems[i], &rectMenuEndGame); drawTextLabel(renderer, &labels->textLabels.elems[i]); @@ -184,10 +184,10 @@ void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* r }; PositionSpecifier positionSpecifierButtonRetour = newPositionSpecifier(&base100, POSX_CENTER, POSY_BOTTOM, ASPECT_KEEP_FIT); buttonMenuEndGame->rect = adaptPosToRect(&positionSpecifierButtonRetour, &endGameMenuRect); - buttonMenuEndGame->drawn = false; - + buttonMenuEndGame->enable = false; + struct endGameMenuTextLabel labels = createLabels(renderer, players, nbPlayers, fontHandler); - + drawEndGameMenu(renderer, endGameMenuRect, &labels); while(*generalState == GS_EndOfGameMenu) @@ -213,36 +213,36 @@ void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* r } break; case InputType_Window_Resize: { - + const SDL_Rect rectM = { - .x=inputElement.data.windowSize.w/10, - .y=0, - .w=inputElement.data.windowSize.w*80/100, + .x=inputElement.data.windowSize.w/10, + .y=0, + .w=inputElement.data.windowSize.w*80/100, .h=inputElement.data.windowSize.h }; drawEndGameMenu(renderer, rectM, &labels); - + buttonMenuEndGame->rect = adaptPosToRect(&positionSpecifierButtonRetour, &rectM); - buttonMenuEndGame->drawn = false; + buttonMenuEndGame->enable = false; fprintf(stderr, "Resize\n"); fflush(stderr); - } + } default: break; } } } - if (!buttonMenuEndGame->drawn) { + if (!buttonMenuEndGame->enable) { drawButtonOnRenderer(renderer, buttonMenuEndGame); SDL_RenderPresent(renderer); } - + SDL_Delay(50); } freeInputProcessor(&inputProcessor); - + for (size_t i=0; i