From 66ab7d2b9c4627d8a9b9caf585fff823b0d6cdde Mon Sep 17 00:00:00 2001 From: valentin carmona Date: Fri, 25 Mar 2022 16:48:58 +0100 Subject: [PATCH] vraie opti de process rpz le meilleur du groupe --- model.c | 81 +++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 26 deletions(-) diff --git a/model.c b/model.c index 70ac8c7..603c36c 100644 --- a/model.c +++ b/model.c @@ -455,14 +455,6 @@ void play_mark(uint i, uint j, Env* env) { } } -void update_pressed(Env* env, bool undo, bool redo, bool restart, bool solve, bool save) { - env->pressed_undo = undo; - env->pressed_redo = redo; - env->pressed_restart = restart; - env->pressed_solve = solve; - env->pressed_save = save; -} - bool process(SDL_Window* win, Env* env, SDL_Event* e, SDL_Event* prec_e, int* nb_coups, int* nb_undo) { int w, h; SDL_GetWindowSize(win, &w, &h); @@ -511,27 +503,64 @@ bool process(SDL_Window* win, Env* env, SDL_Event* e, SDL_Event* prec_e, int* nb mouse.x = e->tfinger.x; mouse.y = e->tfinger.y; } - if (SDL_PointInRect(&mouse, env->rec_restart)) { - update_pressed(env, false, false, true, false, false); - } else if (SDL_PointInRect(&mouse, env->rec_undo)) { - if ((*nb_coups) > 0) - update_pressed(env, true, false, false, false, false); - else - update_pressed(env, false, false, false, false, false); - } else if (SDL_PointInRect(&mouse, env->rec_redo)) { - if ((*nb_undo) > 0) - update_pressed(env, false, true, false, false, false); - else - update_pressed(env, false, false, false, false, false); + bool list_buttons[] = {env->pressed_restart, env->pressed_undo, env->pressed_redo, env->pressed_solve, env->pressed_save}; + SDL_Rect* list_rect_button[] = {env->rec_restart, env->rec_undo, env->rec_redo, env->rec_solve, env->rec_save}; + /* 0 1 2 3 4 */ - } else if (SDL_PointInRect(&mouse, env->rec_solve)) { - update_pressed(env, false, false, false, true, false); + /**********************************************************************************************************************************/ - } else if (SDL_PointInRect(&mouse, env->rec_save)) { - update_pressed(env, false, false, false, false, true); - } else { - update_pressed(env, false, false, false, false, false); + for (int i = 0; i < 5; i++) { + if (SDL_PointInRect(&mouse, list_rect_button[i])) { + switch (i) { + case 1: + if ((*nb_coups) > 0) { + list_buttons[i] = true; + } else { + list_buttons[i] = false; + } + break; + case 2: + if ((*nb_undo) > 0) { + list_buttons[i] = true; + } else { + list_buttons[i] = false; + } + break; + default: + list_buttons[i] = true; + break; + } + } else { + list_buttons[i] = false; + } } + +/* for(int i = 0; i < 5; i ++){ + if (SDL_PointInRect(&mouse, list_rect_button[i])) { + if(list_rect_button[i] == env->rec_undo){ + if ((*nb_coups) > 0){ + list_button[i] = true; + }else{ + list_button[i] = false; + } + break; + }else if(list_rect_button[i] == env->rec_redo){ + if ((*nb_undo) > 0){ + list_button[i] = true; + }else{ + list_button[i] = false; + } + break; + }else{ + list_button[i] = true; + break; + } + }else{ + list_button[i] = false; + } + }*/ + +/**********************************************************************************************************************************/ #ifdef _ANDROID_ if (SDL_PointInRect(&mouse, env->rec_game)) { if (e->type != prec_e->type) {