mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-19 01:02:20 +00:00
Move CBinds::GetKeyId
function to IInput::FindKeyByName
This commit is contained in:
parent
585615a7cd
commit
b28bac89d4
|
@ -367,6 +367,26 @@ bool CInput::KeyState(int Key) const
|
|||
return m_aInputState[Key];
|
||||
}
|
||||
|
||||
int CInput::FindKeyByName(const char *pKeyName) const
|
||||
{
|
||||
// check for numeric
|
||||
if(pKeyName[0] == '&')
|
||||
{
|
||||
int Key = str_toint(pKeyName + 1);
|
||||
if(Key > KEY_FIRST && Key < KEY_LAST)
|
||||
return Key; // numeric
|
||||
}
|
||||
|
||||
// search for key
|
||||
for(int Key = KEY_FIRST; Key < KEY_LAST; Key++)
|
||||
{
|
||||
if(str_comp_nocase(pKeyName, KeyName(Key)) == 0)
|
||||
return Key;
|
||||
}
|
||||
|
||||
return KEY_UNKNOWN;
|
||||
}
|
||||
|
||||
void CInput::UpdateMouseState()
|
||||
{
|
||||
const int MouseState = SDL_GetMouseState(nullptr, nullptr);
|
||||
|
|
|
@ -136,6 +136,7 @@ public:
|
|||
bool AltIsPressed() const override { return KeyState(KEY_LALT) || KeyState(KEY_RALT); }
|
||||
bool KeyIsPressed(int Key) const override { return KeyState(Key); }
|
||||
bool KeyPress(int Key, bool CheckCounter) const override { return CheckCounter ? (m_aInputCount[Key] == m_InputCounter) : m_aInputCount[Key]; }
|
||||
int FindKeyByName(const char *pKeyName) const override;
|
||||
|
||||
size_t NumJoysticks() const override { return m_vJoysticks.size(); }
|
||||
CJoystick *GetJoystick(size_t Index) override { return &m_vJoysticks[Index]; }
|
||||
|
|
|
@ -58,6 +58,7 @@ public:
|
|||
virtual bool KeyIsPressed(int Key) const = 0;
|
||||
virtual bool KeyPress(int Key, bool CheckCounter = false) const = 0;
|
||||
const char *KeyName(int Key) const { return (Key >= 0 && Key < g_MaxKeys) ? g_aaKeyStrings[Key] : g_aaKeyStrings[0]; }
|
||||
virtual int FindKeyByName(const char *pKeyName) const = 0;
|
||||
|
||||
// joystick
|
||||
class IJoystick
|
||||
|
|
|
@ -376,26 +376,6 @@ void CBinds::ConUnbindAll(IConsole::IResult *pResult, void *pUserData)
|
|||
pBinds->UnbindAll();
|
||||
}
|
||||
|
||||
int CBinds::GetKeyId(const char *pKeyName)
|
||||
{
|
||||
// check for numeric
|
||||
if(pKeyName[0] == '&')
|
||||
{
|
||||
int i = str_toint(pKeyName + 1);
|
||||
if(i > 0 && i < KEY_LAST)
|
||||
return i; // numeric
|
||||
}
|
||||
|
||||
// search for key
|
||||
for(int i = 0; i < KEY_LAST; i++)
|
||||
{
|
||||
if(str_comp_nocase(pKeyName, Input()->KeyName(i)) == 0)
|
||||
return i;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int CBinds::GetBindSlot(const char *pBindString, int *pModifierCombination)
|
||||
{
|
||||
*pModifierCombination = MODIFIER_NONE;
|
||||
|
@ -420,7 +400,7 @@ int CBinds::GetBindSlot(const char *pBindString, int *pModifierCombination)
|
|||
else
|
||||
break;
|
||||
}
|
||||
return GetKeyId(*pModifierCombination == MODIFIER_NONE ? aMod : pKey + 1);
|
||||
return Input()->FindKeyByName(*pModifierCombination == MODIFIER_NONE ? aMod : pKey + 1);
|
||||
}
|
||||
|
||||
const char *CBinds::GetModifierName(int Modifier)
|
||||
|
|
|
@ -12,8 +12,6 @@ class IConfigManager;
|
|||
|
||||
class CBinds : public CComponent
|
||||
{
|
||||
int GetKeyId(const char *pKeyName);
|
||||
|
||||
static void ConBind(IConsole::IResult *pResult, void *pUserData);
|
||||
static void ConBinds(IConsole::IResult *pResult, void *pUserData);
|
||||
static void ConUnbind(IConsole::IResult *pResult, void *pUserData);
|
||||
|
|
Loading…
Reference in a new issue