aboutsummaryrefslogtreecommitdiff
path: root/src/shared/player.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/player.hh')
-rw-r--r--src/shared/player.hh46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/shared/player.hh b/src/shared/player.hh
new file mode 100644
index 0000000..5929c5b
--- /dev/null
+++ b/src/shared/player.hh
@@ -0,0 +1,46 @@
+#ifndef SHARED_PLAYER_HH_
+#define SHARED_PLAYER_HH_
+
+#include <cstdint>
+
+#include <glm/glm.hpp>
+
+#include "shared/math.hh"
+
+namespace shared {
+
+// Anything here goes over the wire.
+struct player {
+public:
+ using index_t = std::uint32_t;
+
+ static constexpr float HEIGHT = 1.9f;
+ static constexpr float EYE_HEIGHT = HEIGHT * 0.8f;
+ static constexpr float HALFWIDTH = 0.25f;
+
+public:
+ std::uint32_t index = 0;
+ std::uint32_t commands = 0;
+
+ shared::math::coords chunk_pos = {};
+ glm::vec3 local_pos = {};
+
+ shared::math::angles viewangles = {};
+ glm::vec3 velocity = {};
+
+public:
+ enum mask : decltype(commands) {
+ forward = 1 << 0,
+ left = 1 << 1,
+ backward = 1 << 2,
+ right = 1 << 3,
+ jump = 1 << 4,
+ crouch = 1 << 5,
+ sprint = 1 << 6,
+ attack = 1 << 7
+ };
+};
+
+} // namespace shared
+
+#endif