diff options
| author | SmallJoker <SmallJoker@users.noreply.github.com> | 2022-08-12 11:17:02 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-12 10:17:02 +0100 |
| commit | c8ee755c05ca4410b9b1e816a9244b3cf303d3fe (patch) | |
| tree | 25a898cc692ba6a996f32d8248dde153847cd539 /src/server | |
| parent | df1d215f4823b82f704b06eae0179c5e6c6b97af (diff) | |
| download | minetest-c8ee755c05ca4410b9b1e816a9244b3cf303d3fe.tar.xz | |
Physics overrides: Move values to a common struct (#12591)
Co-authored-by: sfan5 <sfan5@live.de>
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/player_sao.cpp | 24 | ||||
| -rw-r--r-- | src/server/player_sao.h | 6 |
2 files changed, 15 insertions, 15 deletions
diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp index a58a0397f..9aa7ce39f 100644 --- a/src/server/player_sao.cpp +++ b/src/server/player_sao.cpp @@ -305,17 +305,23 @@ void PlayerSAO::step(float dtime, bool send_recommended) std::string PlayerSAO::generateUpdatePhysicsOverrideCommand() const { + if (!m_player) { + // Will output a format warning client-side + return ""; + } + + const auto &phys = m_player->physics_override; std::ostringstream os(std::ios::binary); // command writeU8(os, AO_CMD_SET_PHYSICS_OVERRIDE); // parameters - writeF32(os, m_physics_override_speed); - writeF32(os, m_physics_override_jump); - writeF32(os, m_physics_override_gravity); - // these are sent inverted so we get true when the server sends nothing - writeU8(os, !m_physics_override_sneak); - writeU8(os, !m_physics_override_sneak_glitch); - writeU8(os, !m_physics_override_new_move); + writeF32(os, phys.speed); + writeF32(os, phys.jump); + writeF32(os, phys.gravity); + // MT 0.4.10 legacy: send inverted for detault `true` if the server sends nothing + writeU8(os, !phys.sneak); + writeU8(os, !phys.sneak_glitch); + writeU8(os, !phys.new_move); return os.str(); } @@ -604,10 +610,10 @@ bool PlayerSAO::checkMovementCheat() player_max_walk = m_player->movement_speed_fast; // Fast speed else player_max_walk = m_player->movement_speed_walk; // Normal speed - player_max_walk *= m_physics_override_speed; + player_max_walk *= m_player->physics_override.speed; player_max_walk = MYMAX(player_max_walk, override_max_H); - player_max_jump = m_player->movement_speed_jump * m_physics_override_jump; + player_max_jump = m_player->movement_speed_jump * m_player->physics_override.jump; // FIXME: Bouncy nodes cause practically unbound increase in Y speed, // until this can be verified correctly, tolerate higher jumping speeds player_max_jump *= 2.0; diff --git a/src/server/player_sao.h b/src/server/player_sao.h index 5f48cae67..049e92cda 100644 --- a/src/server/player_sao.h +++ b/src/server/player_sao.h @@ -221,12 +221,6 @@ private: Metadata m_meta; public: - float m_physics_override_speed = 1.0f; - float m_physics_override_jump = 1.0f; - float m_physics_override_gravity = 1.0f; - bool m_physics_override_sneak = true; - bool m_physics_override_sneak_glitch = false; - bool m_physics_override_new_move = true; bool m_physics_override_sent = false; }; |
