diff options
| author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-10-04 10:50:07 +0200 |
|---|---|---|
| committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-10-04 10:50:07 +0200 |
| commit | b9f8f0a232d9d00a323084e0e4807b3e3469720d (patch) | |
| tree | 564679fd09da5cb4ef7da82dde5b7d8d5c2d7aee /src/client/inputhandler.h | |
| parent | af085acbd32707576ff9e67c3b267ad6cf267288 (diff) | |
| download | dragonfireclient-b9f8f0a232d9d00a323084e0e4807b3e3469720d.tar.xz | |
The Robot Update
Diffstat (limited to 'src/client/inputhandler.h')
| -rw-r--r-- | src/client/inputhandler.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/client/inputhandler.h b/src/client/inputhandler.h index fc7998f20..e006affb2 100644 --- a/src/client/inputhandler.h +++ b/src/client/inputhandler.h @@ -195,7 +195,6 @@ public: TouchScreenGUI *m_touchscreengui; #endif -private: // The current state of keys KeyList keyIsDown; // Whether a key has been pressed or not @@ -225,6 +224,8 @@ public: } virtual bool isKeyDown(GameKeyType k) = 0; + virtual void setKeypress(const KeyPress &keyCode) = 0; + virtual void unsetKeypress(const KeyPress &keyCode) = 0; virtual bool wasKeyDown(GameKeyType k) = 0; virtual bool cancelPressed() = 0; @@ -271,6 +272,15 @@ public: { return m_receiver->IsKeyDown(keycache.key[k]) || joystick.isKeyDown(k); } + virtual void setKeypress(const KeyPress &keyCode) + { + m_receiver->keyIsDown.set(keyCode); + m_receiver->keyWasDown.set(keyCode); + } + virtual void unsetKeypress(const KeyPress &keyCode) + { + m_receiver->keyIsDown.unset(keyCode); + } virtual bool wasKeyDown(GameKeyType k) { return m_receiver->WasKeyDown(keycache.key[k]) || joystick.wasKeyDown(k); @@ -367,7 +377,7 @@ public: m_receiver->clearInput(); } -private: + private: MyEventReceiver *m_receiver = nullptr; v2s32 m_mousepos; }; @@ -383,6 +393,14 @@ public: } virtual bool isKeyDown(GameKeyType k) { return keydown[keycache.key[k]]; } + virtual void setKeypress(const KeyPress &keyCode) + { + keydown.set(keyCode); + } + virtual void unsetKeypress(const KeyPress &keyCode) + { + keydown.unset(keyCode); + } virtual bool wasKeyDown(GameKeyType k) { return false; } virtual bool cancelPressed() { return false; } virtual v2s32 getMousePos() { return mousepos; } |
