Noise: Prevent unittest crash caused by division by zero
[oweals/minetest.git] / src / collision.cpp
index 595fa80598445ebbb08aa31379f948e7895afc0a..61972b2e84dbf8aeaffb0fa9e9d2943e6297eb0f 100644 (file)
@@ -22,9 +22,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "map.h"
 #include "nodedef.h"
 #include "gamedef.h"
+#ifndef SERVER
 #include "clientenvironment.h"
+#endif
 #include "serverenvironment.h"
 #include "serverobject.h"
+#include "util/timetaker.h"
 #include "profiler.h"
 
 // float error is 10 - 9.96875 = 0.03125
@@ -36,7 +39,6 @@ struct NearbyCollisionInfo {
        NearbyCollisionInfo(bool is_ul, bool is_obj, int bouncy,
                        const v3s16 &pos, const aabb3f &box) :
                is_unloaded(is_ul),
-               is_step_up(false),
                is_object(is_obj),
                bouncy(bouncy),
                position(pos),
@@ -44,7 +46,7 @@ struct NearbyCollisionInfo {
        {}
 
        bool is_unloaded;
-       bool is_step_up;
+       bool is_step_up = false;
        bool is_object;
        int bouncy;
        v3s16 position;
@@ -466,7 +468,6 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
                                                        d));
 
                        // Get bounce multiplier
-                       bool bouncy = (nearest_info.bouncy >= 1);
                        float bounce = -(float)nearest_info.bouncy / 100.0;
 
                        // Move to the point of collision and reduce dtime by nearest_dtime
@@ -496,7 +497,6 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
                                info.type = COLLISION_NODE;
 
                        info.node_p = nearest_info.position;
-                       info.bouncy = bouncy;
                        info.old_speed = *speed_f;
 
                        // Set the speed component that caused the collision to zero
@@ -510,7 +510,6 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
                                else
                                        speed_f->X = 0;
                                result.collides = true;
-                               result.collides_xz = true;
                        } else if (nearest_collided == 1) { // Y
                                if(fabs(speed_f->Y) > BS * 3)
                                        speed_f->Y *= bounce;
@@ -523,7 +522,6 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
                                else
                                        speed_f->Z = 0;
                                result.collides = true;
-                               result.collides_xz = true;
                        }
 
                        info.new_speed = *speed_f;
@@ -569,8 +567,6 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
 
                                if (box_info.is_object)
                                        result.standing_on_object = true;
-                               if (box_info.is_unloaded)
-                                       result.standing_on_unloaded = true;
                        }
                }
        }