]> git.localhorst.tv Git - blank.git/blobdiff - src/ui/PlayerController.hpp
glm backwards compatibility
[blank.git] / src / ui / PlayerController.hpp
index b29795b7313cf9cb5b8d2308e72cfcfa0f03a182..69a15e9846ef7e7b42bd72f9b281682184eb015a 100644 (file)
@@ -1,9 +1,9 @@
 #ifndef BLANK_UI_PLAYERCONTROLLER_HPP_
 #define BLANK_UI_PLAYERCONTROLLER_HPP_
 
-#include <glm/glm.hpp>
-
+#include "../graphics/glm.hpp"
 #include "../world/EntityCollision.hpp"
+#include "../world/EntityController.hpp"
 #include "../world/WorldCollision.hpp"
 
 
@@ -12,11 +12,15 @@ namespace blank {
 class Player;
 class World;
 
-class PlayerController {
+class PlayerController
+: public EntityController {
 
 public:
        PlayerController(World &, Player &);
+       ~PlayerController();
 
+       World &GetWorld() noexcept { return world; }
+       const World &GetWorld() const noexcept { return world; }
        Player &GetPlayer() noexcept { return player; }
        const Player &GetPlayer() const noexcept { return player; }
 
@@ -29,13 +33,14 @@ public:
        /// the magnitude (clamped to [0..1]) can be used to attenuate target velocity
        void SetMovement(const glm::vec3 &) noexcept;
        const glm::vec3 &GetMovement() const noexcept { return move_dir; }
+
        /// turn the controlled entity's head by given pitch and yaw deltas
        void TurnHead(float pitch, float yaw) noexcept;
 
        /// get player pitch in radians, normalized to [-PI/2,PI/2]
-       float GetPitch() const noexcept { return pitch; }
+       float GetPitch() const noexcept;
        /// get player yaw in radians, normalized to [-PI,PI]
-       float GetYaw() const noexcept { return yaw; }
+       float GetYaw() const noexcept;
 
        /// start doing primary action
        /// what exactly this means depends on the active item
@@ -60,8 +65,6 @@ private:
        World &world;
        Player &player;
        glm::vec3 move_dir;
-       float pitch;
-       float yaw;
        bool dirty;
 
        WorldCollision aim_world;