summaryrefslogtreecommitdiff
path: root/sim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sim.cpp')
-rw-r--r--sim.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/sim.cpp b/sim.cpp
index 9f7b071..0924305 100644
--- a/sim.cpp
+++ b/sim.cpp
@@ -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) {