diff options
-rw-r--r-- | sim.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
@@ -419,15 +419,8 @@ void sim_frame(Frame *frame) { keys_pressed[KEY_SPACE] = 0; setup_reset(state); } - if (keys_pressed[KEY_ESCAPE]) { - // back to evolve menu - state->simulating = false; - state->evolve_menu = true; - keys_pressed[KEY_ESCAPE] = 0; - } } - { float half_height = 10.0f; float half_width = half_height * state->win_width / state->win_height; @@ -870,6 +863,21 @@ void sim_frame(Frame *frame) { } + if (state->simulating || state->building) { + if (keys_pressed[KEY_ESCAPE]) { + // back to evolve menu + if (ball->body) { + // destroy ball if needed + state->world->DestroyBody(ball->body); + ball->body = NULL; + } + state->simulating = false; + state->building = false; + state->evolve_menu = true; + keys_pressed[KEY_ESCAPE] = 0; + } + } + #if DEBUG GLuint error = glGetError(); if (error) { |