Use stepheight from CAO instead of hardcoded value
[oweals/minetest.git] / src / localplayer.cpp
index 9e30aeac8eee5a97fb12f2cf4c8c53a48e081c4d..37aef7afe88beaafab0da029c94368bccfd12a49 100644 (file)
@@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "environment.h"
 #include "map.h"
 #include "client.h"
+#include "content_cao.h"
 
 /*
        LocalPlayer
@@ -58,6 +59,7 @@ LocalPlayer::LocalPlayer(Client *client, const char *name):
        last_camera_fov(0),
        last_wanted_range(0),
        camera_impact(0.f),
+       makes_footstep_sound(true),
        last_animation(NO_ANIM),
        hotbar_image(""),
        hotbar_selected_image(""),
@@ -342,8 +344,10 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
                }
        }
 
-       // TODO: this shouldn't be hardcoded but transmitted from server
-       float player_stepheight = touching_ground ? (BS*0.6) : (BS*0.2);
+       float player_stepheight = (m_cao == 0) ? 0.0 :
+                               (touching_ground ?
+                               (m_cao->getStepheight() * BS) :
+                               (m_cao->getStepheight() -0.4 * BS));
 
 #ifdef __ANDROID__
        player_stepheight += (0.6 * BS);