grav well only follows mouse when space is pressed
authorPatrik Gornicz <Gornicz.P@gmail.com>
Fri, 22 Aug 2008 15:31:20 +0000 (11:31 -0400)
committerPatrik Gornicz <Gornicz.P@gmail.com>
Fri, 22 Aug 2008 15:31:20 +0000 (11:31 -0400)
src/config/config.cpp
src/config/config.h
src/effectManager.cpp

index ae569fa..895c1d9 100644 (file)
@@ -48,4 +48,9 @@ bool cfg::endGame()
     return input::wasReleased(SDLK_ESCAPE);
 }
 
+bool cfg::mouseWellOn()
+{
+    return input::isPressed(SDLK_SPACE);
+}
+
 /// ***** Private Methods *****
index c02a5fc..b13a075 100644 (file)
@@ -26,10 +26,12 @@ namespace cfg
     void init();
     void clean();
 
+    bool endGame();
+
     bool pause();
     bool unPause();
 
-    bool endGame();
+    bool mouseWellOn();
 }
 
 #endif // CONFIG_H
index 2e50c65..b77fc1d 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "Vector2.h"
 #include "input/inputManager.h"
+#include "config/config.h"
 
 /// ***** Private Variables *****
 
@@ -41,9 +42,9 @@ void effect::init()
 
     mouseWell = new GravityWell(input::mousePosition());
 
-    effects[0] = mouseWell;
+    effects[0] = new Screen();
     effects[1] = new Gravity();
-    effects[2] = new Screen();
+    effects[2] = mouseWell;
 }
 void effect::clean()
 {
@@ -63,7 +64,15 @@ void effect::update(float)
 }
 void effect::handleInput()
 {
-    mouseWell->setPosition(input::mousePosition());
+    if(cfg::mouseWellOn())
+    {
+        numEffects = 3;
+        mouseWell->setPosition(input::mousePosition());
+    }
+    else
+    {
+        numEffects = 2;
+    }
 }
 
 Vector2 effect::positionDelta(const PhysicsEntity* e, float time_step)