Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////// FILE KeyboardKey.hh
- #pragma once
- #include <SDL.h>
- #include <action/KeyboardKey.forw.hpp>
- #include <action/InputController.forw.hpp>
- #include <action/Key.hpp>
- #include <event/KeyDownEvent.hpp>
- #include <event/KeyUpEvent.hpp>
- #include <msg/message_bus.hh>
- #include <vector>
- namespace action {
- class KeyboardKey : public Key {
- friend class InputController;
- private:
- SDL_Keycode _keycode;
- InputController& _controller;
- public:
- KeyboardKey(InputController& input,
- SDL_Keycode code) : _keycode(code), _controller(input) {} // <- THIS sets a wrong value
- KeyboardKey(KeyboardKey& key) = delete;
- KeyboardKey(KeyboardKey&& key)
- : _keycode(key._keycode), _controller(key._controller) {}
- KeyboardKey&
- operator=(KeyboardKey& other) = delete;
- KeyboardKey&
- operator=(KeyboardKey&& other) {
- _keycode = other._keycode;
- _controller = std::move(other._controller);
- return *this;
- }
- virtual bool
- is_pressed() override;
- virtual msg::listener_handle<event::KeyDownEvent>
- listen_down(std::function<void(event::KeyDownEvent*)> func) override;
- virtual msg::listener_handle<event::KeyUpEvent>
- listen_up(std::function<void(event::KeyUpEvent*)> func) override;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement