diff --git a/src/graphics/graphics.c b/src/graphics/graphics.c index 0900cb3..d4decf8 100644 --- a/src/graphics/graphics.c +++ b/src/graphics/graphics.c @@ -672,13 +672,15 @@ static inline int create_arrow (int arrows_nb, return arrows_nb; } -static inline int erase_arrow (int arrows_nb, int address_of_the_arrow_to_erase_in_the_arrows_list, +static inline int erase_arrow (int arrows_nb, int arrow_address_in_list, int site, int x, int y, int z, int console) { if (arrows_nb == 0) assert (buffer_lines_size == buffer_lines_0_arrow); // ? if (arrows_nb == 0) {buffer_lines_size = buffer_lines_0_arrow; return 0;} + if (1) print_arrows_array (arrows_ptr, arrows_nb, 0); + assert (arrows_nb); arrows_nb --; @@ -699,30 +701,27 @@ static inline int erase_arrow (int arrows_nb, int address_of_the_arrow_to_erase_ /* if (new_arrows_lines_ptr) buffer_lines_origin = new_arrows_lines_ptr; */ /* else perror("In graphics.erase_arrow(), can't re_allocate for arrows lines buffer.\n"); */ - if (address_of_the_arrow_to_erase_in_the_arrows_list < arrows_nb) + if (arrow_address_in_list < arrows_nb) { - int mem = arrows_ptr[address_of_the_arrow_to_erase_in_the_arrows_list].site; + int mem = arrows_ptr[arrow_address_in_list].site; - arrows_ptr[address_of_the_arrow_to_erase_in_the_arrows_list].load = arrows_ptr[arrows_nb].load; - arrows_ptr[address_of_the_arrow_to_erase_in_the_arrows_list].site = arrows_ptr[arrows_nb].site; - arrows_ptr[address_of_the_arrow_to_erase_in_the_arrows_list].x = arrows_ptr[arrows_nb].x; - arrows_ptr[address_of_the_arrow_to_erase_in_the_arrows_list].y = arrows_ptr[arrows_nb].y; - arrows_ptr[address_of_the_arrow_to_erase_in_the_arrows_list].z = arrows_ptr[arrows_nb].z; + arrows_ptr[arrow_address_in_list].load = arrows_ptr[arrows_nb].load; + arrows_ptr[arrow_address_in_list].site = arrows_ptr[arrows_nb].site; + arrows_ptr[arrow_address_in_list].x = arrows_ptr[arrows_nb].x; + arrows_ptr[arrow_address_in_list].y = arrows_ptr[arrows_nb].y; + arrows_ptr[arrow_address_in_list].z = arrows_ptr[arrows_nb].z; if (console) printf("in erase_arrow() : arrows_nb decreases from %d to %d. the erased arrow was at address : %d\n\ : arrows_ptr[%d].site (value: %d) was replaced by %d (%d was the value of the last arrow.site)\n",\ - arrows_nb + 1, arrows_nb, address_of_the_arrow_to_erase_in_the_arrows_list, address_of_the_arrow_to_erase_in_the_arrows_list, \ + arrows_nb + 1, arrows_nb, arrow_address_in_list, arrow_address_in_list, \ mem, arrows_ptr[arrows_nb].site, arrows_ptr[arrows_nb].site); - for (long i = 0 + address_of_the_arrow_to_erase_in_the_arrows_list * 6; - i < 6 + address_of_the_arrow_to_erase_in_the_arrows_list * 6; i++) - buffer_vertex_origin [buffer_vertex_0_arrow + i] - = buffer_vertex_origin [buffer_vertex_size - 6 + i]; + for (long i = 0 + arrow_address_in_list * 6; i < 6 + arrow_address_in_list * 6; i++) + buffer_vertex_origin [buffer_vertex_0_arrow + i] = buffer_vertex_origin [buffer_vertex_size - 6 + i]; for (long i = 0; i < 6; i++) - buffer_colors_origin [buffer_colors_0_arrow + (address_of_the_arrow_to_erase_in_the_arrows_list + 4) * 6 + i] - = buffer_colors_origin [buffer_colors_size - 6 + i]; + buffer_colors_origin [buffer_colors_0_arrow + i] = buffer_colors_origin [buffer_colors_size - 6 + i]; } if (console) print_arrows_array (arrows_ptr, arrows_nb, 0); @@ -766,15 +765,15 @@ static inline int set_arrow (struct arrow_t *arrows_ptr, int arrows_nb, int spac void main_test_graphics (void) { srand(time(NULL)); int rand(void); void srand(unsigned int seed); - int arbitrary = 3, randomize = 1, console = 0; - int arrows_nb = 0, space_X = 1, space_Y = 1, space_Z = 1; + int randomize = 0, console = 0, arrows_nb = 0, space_X = 1, space_Y = 1, space_Z = 1; if (randomize) { - space_X = 1 + rand() % arbitrary; - space_Y = 1 + rand() % arbitrary; - space_Z = 1 + rand() % arbitrary; + space_X = 1 + rand() % randomize; + space_Y = 1 + rand() % randomize; + space_Z = 1 + rand() % randomize; } int density_max = space_X * space_Y * space_Z, specified_arrows_nb = rand() % density_max; - printf("density_max = %d; specified_arrows_nb = %d\n", density_max, specified_arrows_nb); + if (randomize) printf("density_max = %d; specified_arrows_nb = %d\n",\ + density_max, specified_arrows_nb); int max = fmax(space_X, space_Y); max = fmax(max, space_Z); /* S P A C E */ @@ -789,7 +788,7 @@ void main_test_graphics (void) /* A R R O W S */ - if (1) for (int i = 0; i < specified_arrows_nb; i++) + if (randomize) for (int i = 0; i < specified_arrows_nb; i++) arrows_nb = set_arrow (arrows_ptr, arrows_nb, space_X, space_Y, space_Z, 1, // load rand() % 6, // site @@ -797,9 +796,11 @@ void main_test_graphics (void) rand() % space_Y, // y rand() % space_Z, // z console); + else for (int i = 0; i < 6; i++) + arrows_nb = set_arrow (arrows_ptr, arrows_nb, 1, 1, 1, 1, i, 0, 0, 0, 1); int max_arrows_nb = arrows_nb; - if (1) for (int i = 0; i < specified_arrows_nb * 6; i++) + if (randomize) for (int i = 0; i < specified_arrows_nb * 6; i++) arrows_nb = set_arrow (arrows_ptr, arrows_nb, space_X, space_Y, space_Z, 0, // load rand() % 6, // site @@ -807,8 +808,10 @@ void main_test_graphics (void) rand() % space_Y, // y rand() % space_Z, // z console); + else for (int i = 0; i < 6; i++) + arrows_nb = set_arrow (arrows_ptr, arrows_nb, 1, 1, 1, 0, i, 0, 0, 0, 1); - if (1) print_user_choices(arrows_ptr, max_arrows_nb, arrows_nb, space_X, space_Y, space_Z, 1, 0); + if (randomize || 1) print_user_choices(arrows_ptr, max_arrows_nb, arrows_nb, space_X, space_Y, space_Z, 1, 0); /*--------------------------------------------------------------------------------*/