summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-04-03 23:09:23 +0300
committerAndrei Karas <akaras@inbox.ru>2012-04-03 23:09:23 +0300
commit933791ef82d6a4566b15c25cf1db2762f4716a87 (patch)
treef603318581518a2a49d868c75282988d52e6058d /src/game.cpp
parente848a47b6ceb86cb2a40d094d608b791aff674e6 (diff)
downloadmv-933791ef82d6a4566b15c25cf1db2762f4716a87.tar.gz
mv-933791ef82d6a4566b15c25cf1db2762f4716a87.tar.bz2
mv-933791ef82d6a4566b15c25cf1db2762f4716a87.tar.xz
mv-933791ef82d6a4566b15c25cf1db2762f4716a87.zip
Move some input handling code from game to inputmanager.
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp55
1 files changed, 2 insertions, 53 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 5c4785ef0..670188038 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -958,65 +958,14 @@ void Game::handleInput()
updateHistory(event);
checkKeys();
- if (event.type == SDL_KEYDOWN)
- {
- if (setupWindow && setupWindow->isVisible() &&
- keyboard.getNewKeyIndex() > keyboard.KEY_NO_VALUE)
- {
- keyboard.setNewKey(event);
- keyboard.callbackNewKey();
- keyboard.setNewKeyIndex(keyboard.KEY_NO_VALUE);
- return;
- }
-
- // send straight to gui for certain windows
- if (quitDialog || TextDialog::isActive() ||
- NpcPostDialog::isActive())
- {
- try
- {
- if (guiInput)
- guiInput->pushInput(event);
- if (gui)
- gui->handleInput();
- }
- catch (const gcn::Exception &e)
- {
- const char* err = e.getMessage().c_str();
- logger->log("Warning: guichan input exception: %s", err);
- }
- return;
- }
- }
-
- try
- {
- if (guiInput)
- guiInput->pushInput(event);
- }
- catch (const gcn::Exception &e)
- {
- const char *err = e.getMessage().c_str();
- logger->log("Warning: guichan input exception: %s", err);
- }
- if (gui)
- {
- bool res = gui->handleInput();
- if (res && event.type == SDL_KEYDOWN)
- return;
- }
+ if (inputManager.handleEvent(event))
+ return;
if (event.type == SDL_VIDEORESIZE)
{
// Let the client deal with this one (it'll pass down from there)
Client::resize(event.resize.w, event.resize.h);
}
- // Keyboard events (for discontinuous keys)
- else if (event.type == SDL_KEYDOWN)
- {
- if (inputManager.handleKeyEvent(event))
- return;
- }
// Active event
else if (event.type == SDL_ACTIVEEVENT)
{