button save + effect

This commit is contained in:
Théophyl Hoguet committed 2022-03-24 18:52:02 +01:00
1 parent 7b02ddc4d7
commit dda1a40a98
1 file changed
+31 -30
+31 -30
View File
@@ -478,6 +478,14 @@ 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);
@@ -489,13 +497,17 @@ bool process(SDL_Window* win, Env* env, SDL_Event* e, SDL_Event* prec_e, int* nb
if (state[SDL_SCANCODE_F11]) {
ToggleFullscreen(win);
} else if (state[SDL_SCANCODE_Z]) {
game_undo(env->g);
(*nb_undo)++;
(*nb_coups)--;
if ((*nb_coups) <= 0) {
game_undo(env->g);
(*nb_undo)++;
(*nb_coups)--;
}
} else if (state[SDL_SCANCODE_Y]) {
game_redo(env->g);
(*nb_undo)--;
(*nb_coups)++;
if ((*nb_undo) <= 0) {
game_redo(env->g);
(*nb_undo)--;
(*nb_coups)++;
}
} else if (state[SDL_SCANCODE_S]) {
game_solve(env->g);
(*nb_undo) = 0;
@@ -528,34 +540,23 @@ bool process(SDL_Window* win, Env* env, SDL_Event* e, SDL_Event* prec_e, int* nb
}
if (SDL_PointInRect(&mouse, env->rec_restart)) {
env->pressed_restart = true;
env->pressed_undo = false;
env->pressed_redo = false;
env->pressed_solve = false;
update_pressed(env, false, false, true, false, false);
} else if (SDL_PointInRect(&mouse, env->rec_undo)) {
if ((*nb_coups) <= 0) {
env->pressed_undo = true;
env->pressed_restart = false;
env->pressed_redo = false;
env->pressed_solve = false;
}
if ((*nb_coups) <= 0)
update_pressed(env, true, false, false, false, false);
update_pressed(env, false, false, false, false, false);
} else if (SDL_PointInRect(&mouse, env->rec_redo)) {
if ((*nb_undo) <= 0) {
env->pressed_redo = true;
env->pressed_undo = false;
env->pressed_restart = false;
env->pressed_solve = false;
}
if ((*nb_undo) <= 0)
update_pressed(env, false, true, false, false, false);
update_pressed(env, false, false, false, false, false);
} else if (SDL_PointInRect(&mouse, env->rec_solve)) {
env->pressed_solve = true;
env->pressed_undo = false;
env->pressed_redo = false;
env->pressed_restart = false;
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 {
env->pressed_restart = false;
env->pressed_undo = false;
env->pressed_redo = false;
env->pressed_solve = false;
update_pressed(env, false, false, false, false, false);
}
#ifdef _ANDROID_
if (SDL_PointInRect(&mouse, env->rec_game)) {