summaryrefslogtreecommitdiff
path: root/src/inputmanager.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-08-31 21:33:50 +0300
committerAndrei Karas <akaras@inbox.ru>2013-08-31 21:49:21 +0300
commit8a999b66fd697404c6640778a6dd1ce0e747334a (patch)
treeb9d16368acff30878f28264286b1b8be8b01b168 /src/inputmanager.h
parentb310c51796d1632aeefc834dc0e931c52f909a41 (diff)
downloadmv-8a999b66fd697404c6640778a6dd1ce0e747334a.tar.gz
mv-8a999b66fd697404c6640778a6dd1ce0e747334a.tar.bz2
mv-8a999b66fd697404c6640778a6dd1ce0e747334a.tar.xz
mv-8a999b66fd697404c6640778a6dd1ce0e747334a.zip
move input related files into input dir.
Diffstat (limited to 'src/inputmanager.h')
-rw-r--r--src/inputmanager.h191
1 files changed, 0 insertions, 191 deletions
diff --git a/src/inputmanager.h b/src/inputmanager.h
deleted file mode 100644
index d8b39f6b8..000000000
--- a/src/inputmanager.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2012-2013 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef INPUTMANAGER_H
-#define INPUTMANAGER_H
-
-#include "inputevent.h"
-#include "keydata.h"
-
-#include <string>
-#include <map>
-
-#include <SDL.h>
-
-const unsigned int KeyFunctionSize = 3;
-
-// hack to avoid conflicts with windows headers.
-#ifdef INPUT_KEYBOARD
-#undef INPUT_KEYBOARD
-#endif
-#ifdef INPUT_MOUSE
-#undef INPUT_MOUSE
-#endif
-
-struct KeyData;
-
-class Setup_Input;
-
-enum KeyTypes
-{
- INPUT_UNKNOWN = 0,
- INPUT_KEYBOARD = 1,
- INPUT_MOUSE = 2,
- INPUT_JOYSTICK = 3
-};
-
-struct KeyItem final
-{
- KeyItem() :
- type(-1), value(-1)
- { }
-
- KeyItem(const int type0, const int value0) :
- type(type0), value(value0)
- { }
-
- int type;
-
- int value;
-};
-
-struct KeyFunction final
-{
- KeyItem values[KeyFunctionSize];
-};
-
-enum KeyCondition
-{
- COND_DEFAULT = 1, // default condition
- COND_ENABLED = 2, // keyboard must be enabled
- COND_NOINPUT = 4, // input items must be unfocused
- COND_NOAWAY = 8, // player not in away mode
- COND_NOSETUP = 16, // setup window is hidde
- COND_VALIDSPEED = 32, // valid speed
- COND_NOMODAL = 64, // modal windows inactive
- COND_NONPCINPUT = 128, // npc input field inactive
- COND_EMODS = 256, // game modifiers enabled
- COND_NOTARGET = 512, // no target/untarget keys
- // pressed
- COND_NOFOLLOW = 1024, // follow mode disabled
- COND_INGAME = 2048, // game must be started
- COND_SHORTCUT = 2 + 4 + 16 + 512 + 2048, // flags for shortcut keys
- COND_SHORTCUT0 = 2 + 4 + 16 + 512, // flags for shortcut keys
- COND_GAME = 2 + 4 + 8 + 16 + 64 + 2048, // main game key
- COND_GAME2 = 2 + 8 + 16 + 64 + 2048
-};
-
-class InputManager final
-{
- public:
- InputManager();
-
- A_DELETE_COPY(InputManager)
-
- void init();
-
- bool handleEvent(const SDL_Event &event);
-
- bool checkKey(const KeyData *const key) const A_WARN_UNUSED;
-
- void retrieve();
-
- void store() const;
-
- void resetKeys();
-
- void makeDefault(const int i);
-
- bool hasConflicts(int &key1, int &key2) const A_WARN_UNUSED;
-
- void callbackNewKey();
-
- KeyFunction &getKey(int index) A_WARN_UNUSED;
-
- std::string getKeyValueString(const int index) const A_WARN_UNUSED;
-
- std::string getKeyStringLong(const int index) const A_WARN_UNUSED;
-
- std::string getKeyValueByName(const std::string &keyName);
-
- void addActionKey(const int action, const int type, const int val);
-
- void setNewKey(const SDL_Event &event, const int type);
-
- void unassignKey();
-
- static bool isActionActive(const int index) A_WARN_UNUSED;
-
- /**
- * Set the index of the new key to be assigned.
- */
- void setNewKeyIndex(const int value)
- { mNewKeyIndex = value; }
-
- /**
- * Set a reference to the key setup window.
- */
- void setSetupInput(Setup_Input *const setupInput)
- { mSetupInput = setupInput; }
-
- /**
- * Get the index of the new key to be assigned.
- */
- int getNewKeyIndex() const A_WARN_UNUSED
- { return mNewKeyIndex; }
-
- void updateKeyActionMap(KeyToActionMap &actionMap,
- KeyToIdMap &idMap, KeyTimeMap &keyTimeMap,
- const int type) const;
-
- bool invokeKey(const KeyData *const key, const int keyNum);
-
- bool handleAssignKey(const SDL_Event &event, const int type);
-
- void handleRepeat() const;
-
- bool triggerAction(const KeysVector *const ptrs);
-
- int getKeyIndex(const int value, const int grp,
- const int type) const A_WARN_UNUSED;
-
- void update() const;
-
- void updateConditionMask();
-
- int getActionByKey(const SDL_Event &event) const A_WARN_UNUSED;
-
- void executeAction(const int keyNum);
-
- protected:
- Setup_Input *mSetupInput; /**< Reference to setup window */
-
- int mNewKeyIndex; /**< Index of new key to be assigned */
-
- int mMask;
-
- std::map<std::string, int> mNameMap;
-
- KeyFunction mKey[Input::KEY_TOTAL]; /**< Pointer to all the key data */
-};
-
-extern InputManager inputManager;
-
-#endif // INPUTMANAGER_H