diff options
author | Loic Blot <loic.blot@unix-experience.fr> | 2017-01-01 16:13:01 +0100 |
---|---|---|
committer | Loic Blot <loic.blot@unix-experience.fr> | 2017-01-01 23:11:26 +0100 |
commit | 52ba1f867e5edb579a59a44fbb8286d4f1e54931 (patch) | |
tree | d95e2032d3fcf18bd972cc018e6b44470664d75c /src/content_sao.h | |
parent | a1346c916e1d0f0cde2ccecc680857896c717a3d (diff) | |
download | minetest-52ba1f867e5edb579a59a44fbb8286d4f1e54931.tar.gz minetest-52ba1f867e5edb579a59a44fbb8286d4f1e54931.tar.bz2 minetest-52ba1f867e5edb579a59a44fbb8286d4f1e54931.zip |
Breath cheat fix: server side
Breath is now handled server side. Changing this behaviour required some modifications to core:
* Ignore TOSERVER_BREATH package, marking it as obsolete
* Clients doesn't send the breath to server anymore
* Use PlayerSAO pointer instead of peer_id in Server::SendPlayerBreath to prevent a useless lookup (little perf gain)
* drop a useless static_cast in emergePlayer
Diffstat (limited to 'src/content_sao.h')
-rw-r--r-- | src/content_sao.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/content_sao.h b/src/content_sao.h index 86255183d..9c66068b3 100644 --- a/src/content_sao.h +++ b/src/content_sao.h @@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef CONTENT_SAO_HEADER #define CONTENT_SAO_HEADER +#include <util/numeric.h> #include "serverobject.h" #include "itemgroup.h" #include "object_properties.h" @@ -232,7 +233,7 @@ public: void setHPRaw(s16 hp) { m_hp = hp; } s16 readDamage(); u16 getBreath() const { return m_breath; } - void setBreath(const u16 breath); + void setBreath(const u16 breath, bool send = true); void setArmorGroups(const ItemGroupList &armor_groups); ItemGroupList getArmorGroups(); void setAnimation(v2f frame_range, float frame_speed, float frame_blend, bool frame_loop); @@ -339,6 +340,10 @@ private: v3s16 m_nocheat_dig_pos; float m_nocheat_dig_time; + // Timers + IntervalLimiter m_breathing_interval; + IntervalLimiter m_drowning_interval; + int m_wield_index; bool m_position_not_sent; ItemGroupList m_armor_groups; |