# HG changeset patch # User zzzzrrr # Date 1238431725 14400 # Node ID 1cc6b8c0acd21a0d57497f40c2b976b914444c43 # Parent d63faa81a5e4bc5dc7f19e3df6a3e23a9e1c0e0e fixed window close diff -r d63faa81a5e4 -r 1cc6b8c0acd2 melee/melee.d --- a/melee/melee.d Mon Mar 30 12:41:29 2009 -0400 +++ b/melee/melee.d Mon Mar 30 12:48:45 2009 -0400 @@ -129,7 +129,6 @@ ai = new AI(ship2, objectList); render = new Render(world, ship1, ship2, human, settings); - render.keys(); objectList.add(planet); objectList.add(ship1); @@ -138,7 +137,7 @@ void run() { // Main game loop - while (running && !human.quit) { + while (running && !human.quit && render.running) { float delta = timer.stop; timer.start; diff -r d63faa81a5e4 -r 1cc6b8c0acd2 render/render.d --- a/render/render.d Mon Mar 30 12:41:29 2009 -0400 +++ b/render/render.d Mon Mar 30 12:48:45 2009 -0400 @@ -98,6 +98,7 @@ bool full = false; Settings settings; Ship ship1, ship2; + bool running = true; this(bzWorld world, Ship s1, Ship s2, Human h, Settings settings) { @@ -126,6 +127,9 @@ glfwSetWindowTitle("OpenMelee"); glfwEnable(GLFW_STICKY_KEYS); + GLFWkeyfun cbfun; + cbfun = &key; + glfwSetKeyCallback(cbfun); } ~this() { @@ -137,12 +141,7 @@ glfwSwapInterval(1); draw(); glfwSwapBuffers(); - } - - void keys() { - GLFWkeyfun cbfun; - cbfun = &key; - glfwSetKeyCallback(cbfun); + running = cast(bool) glfwGetWindowParam(GLFW_OPENED); } void drawCircle(bzVec2 center, float radius, bool water = false, float theta = float.nan)