commencement des commentaires

This commit is contained in:
valentin carmona committed 2022-03-25 17:55:02 +01:00
1 parent b9838aa1b9
commit 8f470b43ef
1 file changed
+18 -8
+18 -8
View File
@@ -15,6 +15,7 @@
/* **************************************************************** */ /* **************************************************************** */
/* names of assets fichier*/
#define LIGHTBULB_WHITE "lightbulb_white.png" #define LIGHTBULB_WHITE "lightbulb_white.png"
#define LIGHTBULB_RED "lightbulb_red.png" #define LIGHTBULB_RED "lightbulb_red.png"
#define LB1 "lb1.mp3" #define LB1 "lb1.mp3"
@@ -28,6 +29,7 @@
#define MARK3 "mark3.wav" #define MARK3 "mark3.wav"
#define WIN "win.mp3" #define WIN "win.mp3"
#define FONT "Roboto-Regular.ttf" #define FONT "Roboto-Regular.ttf"
#define NB_MUSIC 10 #define NB_MUSIC 10
#define NB_BUTTONS 5 #define NB_BUTTONS 5
#define FONTSIZE 200 #define FONTSIZE 200
@@ -60,6 +62,7 @@ static void copy_asset(char* src, char* dst) {
/* **************************************************************** */ /* **************************************************************** */
/* Fonction Min */
int int_min_intero(int a, int b) { int int_min_intero(int a, int b) {
if (a < b) if (a < b)
return a; return a;
@@ -78,6 +81,7 @@ bool game_has_error_general_intero(cgame g) {
struct Env_t { struct Env_t {
game g; game g;
SDL_Texture** zero; // array of two texture one white and one red for each number (red color = r:255 g:50 b:50) SDL_Texture** zero; // array of two texture one white and one red for each number (red color = r:255 g:50 b:50)
SDL_Texture** one; SDL_Texture** one;
SDL_Texture** two; SDL_Texture** two;
@@ -89,18 +93,21 @@ struct Env_t {
SDL_Texture** text_redo; SDL_Texture** text_redo;
SDL_Texture** text_solve; SDL_Texture** text_solve;
SDL_Texture** text_save; // this one have three textures one white, one black and one green SDL_Texture** text_save; // this one have three textures one white, one black and one green
bool pressed_restart; bool pressed_restart;
bool pressed_undo; bool pressed_undo;
bool pressed_redo; bool pressed_redo;
bool pressed_solve; bool pressed_solve;
bool pressed_save; bool pressed_save;
bool pressed_savED; bool pressed_savED;
SDL_Rect* rec_game; // rectangle of the grid SDL_Rect* rec_game; // rectangle of the grid
SDL_Rect* rec_redo; // rectangle of each buttons SDL_Rect* rec_redo; // rectangle of each buttons
SDL_Rect* rec_undo; SDL_Rect* rec_undo;
SDL_Rect* rec_restart; SDL_Rect* rec_restart;
SDL_Rect* rec_solve; SDL_Rect* rec_solve;
SDL_Rect* rec_save; SDL_Rect* rec_save;
Mix_Music** lb_music; Mix_Music** lb_music;
uint lb_music_cpt; uint lb_music_cpt;
Mix_Music** err_music; Mix_Music** err_music;
@@ -118,6 +125,7 @@ void usage(char* argv[]) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
/* Fonction for return a texture of a given text */
SDL_Texture* render_blended_text(SDL_Renderer* ren, SDL_Color color, char* text) { SDL_Texture* render_blended_text(SDL_Renderer* ren, SDL_Color color, char* text) {
TTF_Font* font = TTF_OpenFont(FONT, FONTSIZE); // TO EDIT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (ANDROID) TTF_Font* font = TTF_OpenFont(FONT, FONTSIZE); // TO EDIT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (ANDROID)
if (!font) if (!font)
@@ -132,9 +140,10 @@ SDL_Texture* render_blended_text(SDL_Renderer* ren, SDL_Color color, char* text)
return tmp; return tmp;
} }
/* Fonction for allocating automaticly */
void init_malloc(void** tab[], unsigned long* sizeof_tab, uint size_tab) { void init_malloc(void** tab[], unsigned long* sizeof_tab, uint size_tab) {
for (uint i = 0; i < size_tab; i++) { for (uint i = 0; i < size_tab; i++) {
*(tab[i]) = malloc(sizeof_tab[i]); *(tab[i]) = malloc(sizeof_tab[i]); //malloc with the corressponding size
if (*(tab[i]) == NULL) if (*(tab[i]) == NULL)
ERROR("%s", "Not enough memory.\n"); ERROR("%s", "Not enough memory.\n");
} }
@@ -474,31 +483,32 @@ bool process(SDL_Window* win, Env* env, SDL_Event* e, SDL_Event* prec_e, int* nb
if (e->type == SDL_QUIT) { if (e->type == SDL_QUIT) {
return true; return true;
} }
if (e->type == SDL_KEYDOWN) { /*Tests of the differents types of inputs for interact with the game*/
if (e->type == SDL_KEYDOWN) { //differents shortcuts for differents types of actions
const Uint8* state = SDL_GetKeyboardState(NULL); const Uint8* state = SDL_GetKeyboardState(NULL);
if (state[SDL_SCANCODE_F11]) { if (state[SDL_SCANCODE_F11]) { //F11 forr toggle fullscreen (pretty obvious)
ToggleFullscreen(win); ToggleFullscreen(win);
} else if (state[SDL_SCANCODE_Z]) { } else if (state[SDL_SCANCODE_Z]) { //Z for undo a move only if you have done at least 1 move before
if ((*nb_coups) > 0) { if ((*nb_coups) > 0) {
game_undo(env->g); game_undo(env->g);
(*nb_undo)++; (*nb_undo)++;
(*nb_coups)--; (*nb_coups)--;
} }
} else if (state[SDL_SCANCODE_Y]) { } else if (state[SDL_SCANCODE_Y]) { //Y for redo a move can only be used if u heve done one or many undo before
if ((*nb_undo) > 0) { if ((*nb_undo) > 0) {
game_redo(env->g); game_redo(env->g);
(*nb_undo)--; (*nb_undo)--;
(*nb_coups)++; (*nb_coups)++;
} }
} else if (state[SDL_SCANCODE_S]) { } else if (state[SDL_SCANCODE_S]) { //S for solving the game immediatly
game_solve(env->g); game_solve(env->g);
(*nb_undo) = 0; (*nb_undo) = 0;
(*nb_coups)++; (*nb_coups)++;
} else if (state[SDL_SCANCODE_R] || state[SDL_SCANCODE_F5]) { } else if (state[SDL_SCANCODE_R] || state[SDL_SCANCODE_F5]) { //R or F5 for restart the game
game_restart(env->g); game_restart(env->g);
(*nb_undo) = 0; (*nb_undo) = 0;
(*nb_coups) = 0; (*nb_coups) = 0;
} else if (state[SDL_SCANCODE_W]) { } else if (state[SDL_SCANCODE_W]) { //W for save the game in the save.txt file
game_save(env->g, "save.txt"); game_save(env->g, "save.txt");
} }
} }