added hard reset option (reset room bit not player coords)

This commit is contained in:
Alexandre 2025-02-24 16:48:44 +01:00
parent 0ab04bb603
commit b5e7357f66
3 changed files with 31 additions and 13 deletions

BIN
bin/back

Binary file not shown.

Binary file not shown.

View File

@ -41,21 +41,16 @@ bool pPress = false;
unsigned int textures[16];
bool paused = false;
bool hardReset = true;
double oldx, oldy, oldz;
int oldchx, oldchy;
void reset_everything(GLFWwindow *window, int count, char* folder) {
/*hashtbl_free(visited);
free_proj();
free_interf();
free_pool();
init_csts();
init_hashtbl();
init_interf(window);
build_all_menus();
init_ent_generator(30);
init_proj();
parse_rooms(count, folder);
interface_set(-1);*/
oldx = camx;
oldy = camy;
oldz = camz;
oldchx = player_chx;
oldchy = player_chy;
camx = /*2*room_width*player_chx+*/0.0;
camy = 5.0;
@ -116,6 +111,16 @@ void reset_everything(GLFWwindow *window, int count, char* folder) {
generate_nearby_chunks(1);
printf("-------------------------------- Done 5 --------------------------------\n");
if(!hardReset) {
camx = oldx;
camy = oldy;
camz = oldz;
player_chx = oldchx;
player_chy = oldchy;
generate_nearby_chunks(1);
current_room = hashtbl_find_opt(visited, player_chx, player_chy);
}
}
void processInput(GLFWwindow *window, float dtime) {
@ -250,6 +255,19 @@ void processInput(GLFWwindow *window, float dtime) {
if(glfwGetKey(window, GLFW_KEY_R) == GLFW_PRESS) {
if(!isMenuOpen() && !rPress) {
rPress = true;
hardReset = true;
//reset_everything(window, 4, "levels/level_00/");
//reset_everything(window, 7, "levels/level_01/");
reset_everything(window, 1, "levels/level_02/");
}
} else {
rPress = false;
}
if(glfwGetKey(window, GLFW_KEY_T) == GLFW_PRESS) {
if(!isMenuOpen() && !rPress) {
rPress = true;
hardReset = false;
//reset_everything(window, 4, "levels/level_00/");
//reset_everything(window, 7, "levels/level_01/");
reset_everything(window, 1, "levels/level_02/");