fixed roomName (folder) getting free'd before usage causing undefined behaviour
This commit is contained in:
parent
a273c643c6
commit
0bb2d0da9f
BIN
obj/display.o
BIN
obj/display.o
Binary file not shown.
BIN
obj/generation.o
BIN
obj/generation.o
Binary file not shown.
BIN
obj/main.o
BIN
obj/main.o
Binary file not shown.
|
@ -226,3 +226,13 @@ void gl_drawData(unsigned int shaderProg) {
|
||||||
gl_printf(shaderProg, -0.95f, 0.8f, 0.04f, 0.004f, 255, 255, 0, "coins %d", coins);
|
gl_printf(shaderProg, -0.95f, 0.8f, 0.04f, 0.004f, 255, 255, 0, "coins %d", coins);
|
||||||
//gl_drawInteger(shaderProg, player_hp, -0.95f, 0.9f, 0.05f, 255-player_hp/4, player_hp/4, 0, 0.005f, 1);
|
//gl_drawInteger(shaderProg, player_hp, -0.95f, 0.9f, 0.05f, 255-player_hp/4, player_hp/4, 0, 0.005f, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void read_ppm(char* filename) {
|
||||||
|
FILE* ptr = fopen(filename, "r");
|
||||||
|
char c = fgetc(ptr);
|
||||||
|
while(c != EOF) {
|
||||||
|
printf("%c\n", c);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
fclose(ptr);
|
||||||
|
}
|
|
@ -10,4 +10,6 @@ void init_vertices();
|
||||||
|
|
||||||
void gl_drawData(unsigned int shaderProg);
|
void gl_drawData(unsigned int shaderProg);
|
||||||
|
|
||||||
|
void read_ppm(char* filename);
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -224,8 +224,6 @@ void init_hashtbl() {
|
||||||
printf("+1\n"); fflush(stdout);
|
printf("+1\n"); fflush(stdout);
|
||||||
total_weight = 0;
|
total_weight = 0;
|
||||||
printf("+1\n"); fflush(stdout);
|
printf("+1\n"); fflush(stdout);
|
||||||
to_free = malloc(sizeof(char*)*100); // ------------------------------------------------------------------------------------------------- 100 max //
|
|
||||||
to_length = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_number_blocks(int* ret_cubes, int* ret_tps, int* ret_ent, FILE* ptr) {
|
void get_number_blocks(int* ret_cubes, int* ret_tps, int* ret_ent, FILE* ptr) {
|
||||||
|
@ -665,6 +663,11 @@ void free_pool() {
|
||||||
free(pool);
|
free(pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void init_to_free() {
|
||||||
|
to_free = malloc(sizeof(char*)*100); // ------------------------------------------------------------------------------------------------- 100 max //
|
||||||
|
to_length = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void free_to_free() {
|
void free_to_free() {
|
||||||
for(int k = 0; k < to_length; k++) {
|
for(int k = 0; k < to_length; k++) {
|
||||||
free(to_free[k]);
|
free(to_free[k]);
|
||||||
|
|
|
@ -56,6 +56,8 @@ void generate_nearby_chunks(int render_dist) ;
|
||||||
|
|
||||||
void free_pool();
|
void free_pool();
|
||||||
void free_ent_generator();
|
void free_ent_generator();
|
||||||
|
|
||||||
|
void init_to_free();
|
||||||
void free_to_free();
|
void free_to_free();
|
||||||
|
|
||||||
#endif
|
#endif
|
18
src/main.c
18
src/main.c
|
@ -70,7 +70,6 @@ void reset_everything(GLFWwindow *window, int count, char* folder) {
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
free_pool();
|
free_pool();
|
||||||
free_to_free();
|
|
||||||
|
|
||||||
printf("-------------------------------- done 2 --------------------------------\n");
|
printf("-------------------------------- done 2 --------------------------------\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
@ -86,7 +85,20 @@ void reset_everything(GLFWwindow *window, int count, char* folder) {
|
||||||
printf("-------------------------------- initializing rooms... --------------------------------\n");
|
printf("-------------------------------- initializing rooms... --------------------------------\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
parse_rooms(count, folder);
|
char* newFolder = malloc(sizeof(char)*52);
|
||||||
|
int i = 0;
|
||||||
|
while(folder[i] != '\0') {
|
||||||
|
newFolder[i] = folder[i];
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
newFolder[i] = '\0';
|
||||||
|
|
||||||
|
free_to_free();
|
||||||
|
init_to_free();
|
||||||
|
|
||||||
|
parse_rooms(count, newFolder);
|
||||||
|
|
||||||
|
free(newFolder);
|
||||||
|
|
||||||
printf("-------------------------------- Done 4 --------------------------------\n");
|
printf("-------------------------------- Done 4 --------------------------------\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
@ -313,6 +325,7 @@ int main_alt() {
|
||||||
build_all_menus();
|
build_all_menus();
|
||||||
init_ent_generator(30);
|
init_ent_generator(30);
|
||||||
init_proj();
|
init_proj();
|
||||||
|
init_to_free();
|
||||||
parse_rooms(7, "templates/");
|
parse_rooms(7, "templates/");
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------------------------------------------------------------- //
|
// ---------------------------------------------------------------------------------------------------------------------------------------------- //
|
||||||
|
@ -531,5 +544,6 @@ int main(int argc, char** argv) {
|
||||||
newRoomCount = 7;
|
newRoomCount = 7;
|
||||||
switchRoom = false;
|
switchRoom = false;
|
||||||
newRoomName = "templates/";
|
newRoomName = "templates/";
|
||||||
|
//read_ppm("res/smb-2.ppm");
|
||||||
return main_alt();
|
return main_alt();
|
||||||
}
|
}
|
Loading…
Reference in New Issue