Added type checking for __custom functions
[supertux.git] / src / physic.cpp
index 518ce83..cdc3787 100644 (file)
@@ -23,7 +23,7 @@
 #include "physic.hpp"
 
 Physic::Physic()
-    : ax(0), ay(0), vx(0), vy(0), gravity_enabled_flag(true)
+    : ax(0), ay(0), vx(0), vy(0), gravity_enabled_flag(true), gravity(10 * 100)
 {
 }
 
@@ -141,18 +141,26 @@ Physic::gravity_enabled() const
   return gravity_enabled_flag;
 }
 
+void
+Physic::set_gravity(float gravity)
+{
+  this->gravity = gravity * 100;
+}
+
+float
+Physic::get_gravity() const
+{
+  return gravity / 100;
+}
+
 Vector
 Physic::get_movement(float elapsed_time)
 {
-  float grav = gravity_enabled_flag ? 1000 : 0;
-  
-  Vector result(
-      vx * elapsed_time + ax * elapsed_time * elapsed_time,
-      vy * elapsed_time + (ay + grav) * elapsed_time * elapsed_time
-  );
+  float grav = gravity_enabled_flag ? gravity : 0;
+
   vx += ax * elapsed_time;
-  vy += (ay + grav) * elapsed_time;  
+  vy += (ay + grav) * elapsed_time;
+  Vector result(vx * elapsed_time, vy * elapsed_time);
 
   return result;
 }
-