diff options
| author | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2025-02-12 18:05:18 +1100 |
|---|---|---|
| committer | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2025-02-12 18:05:18 +1100 |
| commit | 1cc08c51eb4b0f95c30c0a98ad1fc5ad3459b2df (patch) | |
| tree | 222dfcd07a1e40716127a347bbfd7119ce3d0984 /src/shared/player.hh | |
initial commit
Diffstat (limited to 'src/shared/player.hh')
| -rw-r--r-- | src/shared/player.hh | 46 |
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 |
