diff options
Diffstat (limited to 'src/crepe/api')
-rw-r--r-- | src/crepe/api/Event.h | 10 | ||||
-rw-r--r-- | src/crepe/api/KeyCodes.h | 4 | ||||
-rw-r--r-- | src/crepe/api/Script.cpp | 7 | ||||
-rw-r--r-- | src/crepe/api/Script.h | 10 |
4 files changed, 23 insertions, 8 deletions
diff --git a/src/crepe/api/Event.h b/src/crepe/api/Event.h index 17ae809..d353a5b 100644 --- a/src/crepe/api/Event.h +++ b/src/crepe/api/Event.h @@ -39,7 +39,7 @@ public: */ class MousePressEvent : public Event { public: - //! mouse position + //! mouse position in game units vec2 mouse_pos = {0, 0}; //! The mouse button that was pressed. @@ -51,7 +51,7 @@ public: */ class MouseClickEvent : public Event { public: - //! mouse position + //! mouse position in game units vec2 mouse_pos = {0, 0}; //! The mouse button that was clicked. @@ -63,7 +63,7 @@ public: */ class MouseReleaseEvent : public Event { public: - //! mouse position + //! mouse position in game units vec2 mouse_pos = {0, 0}; //! The mouse button that was released. @@ -75,7 +75,7 @@ public: */ class MouseMoveEvent : public Event { public: - //! new mouse position + //! mouse position in game units vec2 mouse_pos = {0, 0}; //! The change in mouse position relative to the last position (in pixels). ivec2 mouse_delta = {0, 0}; @@ -86,7 +86,7 @@ public: */ class MouseScrollEvent : public Event { public: - //! mouse position when the scroll happened. + //! mouse position in game units when the scroll happened. vec2 mouse_pos = {0, 0}; //! scroll direction (-1 = down, 1 = up) int scroll_direction = 0; diff --git a/src/crepe/api/KeyCodes.h b/src/crepe/api/KeyCodes.h index dc3219a..1b9573a 100644 --- a/src/crepe/api/KeyCodes.h +++ b/src/crepe/api/KeyCodes.h @@ -3,6 +3,7 @@ #include <unordered_map> namespace crepe { + //! Enumeration for mouse button inputs, including standard and extended buttons. enum class MouseButton { NONE = 0, //!< No mouse button input. @@ -154,5 +155,6 @@ enum class Keycode { /// \} MENU = 348, //!< Menu key. }; - +//! Typedef for keyboard state. +typedef std::unordered_map<Keycode, bool> keyboard_state_t; } // namespace crepe diff --git a/src/crepe/api/Script.cpp b/src/crepe/api/Script.cpp index 753a9e3..7b56f61 100644 --- a/src/crepe/api/Script.cpp +++ b/src/crepe/api/Script.cpp @@ -1,7 +1,7 @@ #include <string> #include "../manager/SceneManager.h" - +#include "../facade/SDLContext.h" #include "Script.h" using namespace crepe; @@ -25,3 +25,8 @@ void Script::set_next_scene(const string & name) { } SaveManager & Script::get_save_manager() const { return this->mediator->save_manager; } + +const keyboard_state_t& Script::get_keyboard_state() const{ + SDLContext& sdl_context = this->mediator->sdl_context; + return sdl_context.get_keyboard_state(); +} diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h index 668e5d1..4fbf344 100644 --- a/src/crepe/api/Script.h +++ b/src/crepe/api/Script.h @@ -6,6 +6,7 @@ #include "../manager/Mediator.h" #include "../system/CollisionSystem.h" #include "../types.h" +#include "../api/KeyCodes.h" #include "../util/OptionalRef.h" namespace crepe { @@ -134,7 +135,14 @@ protected: //! Retrieve SaveManager reference SaveManager & get_save_manager() const; - + /** + * \brief Utility function to retrieve the keyboard state + * \see SDLContext::get_keyboard_state + * + * \return current keyboard state map with Keycode as key and bool as value(true = pressed, false = not pressed) + * + */ + const keyboard_state_t& get_keyboard_state() const; //! \} private: |