1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #include "Input.hpp"
- Input::Input(const Input& other): _type(other._type)
- {
- std::memcpy(&_event, &other._event, sizeof(sf::Event));
- }
- Input& Input::operator=(const Input& other)
- {
- std::memcpy(&_event, &other._event, sizeof(sf::Event));
- _type = other._type;
- return *this;
- }
- Input::Input(const sf::Keyboard::Key& key, int type): _type(type)
- {
- _event.type = sf::Event::EventType::KeyPressed;
- _event.key.code = key;
- }
- Input::Input(const sf::Mouse::Button& button, int type): _type(type)
- {
- _event.type = sf::Event::EventType::MouseButtonPressed;
- _event.mouseButton.button = button;
- }
- bool Input::test() const
- {
- switch(_event.type)
- {
- case sf::Event::EventType::KeyPressed:
- if(_type & Type::Pressed)
- return sf::Keyboard::isKeyPressed(_event.key.code);
- break;
- case sf::Event::EventType::MouseButtonPressed:
- if(_type & Type::Pressed)
- return sf::Mouse::isButtonPressed(_event.mouseButton.button);
- break;
- default:
- break;
- }
- return false;
- }
- bool Input::operator==(const sf::Event& event) const
- {
- switch(event.type)
- {
- case sf::Event::EventType::KeyPressed:
- if(_type & Type::Pressed and _event.type == sf::Event::EventType::KeyPressed)
- return event.key.code == _event.key.code;
- break;
- case sf::Event::EventType::KeyReleased:
- if(_type & Type::Released and _event.type == sf::Event::EventType::KeyPressed)
- return event.key.code == _event.key.code;
- break;
- case sf::Event::EventType::MouseButtonPressed:
- if(_type & Type::Pressed and _event.type == sf::Event::EventType::MouseButtonPressed)
- return event.mouseButton.button == _event.mouseButton.button;
- break;
- case sf::Event::EventType::MouseButtonReleased:
- if(_type & Type::Released and _event.type == sf::Event::EventType::MouseButtonPressed)
- return event.mouseButton.button == _event.mouseButton.button;
- break;
- default:
- break;
- }
- return false;
- }
- bool Input::operator==(const Input& other) const
- {
- return _type == other._type and other == _event;
- }
|