Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/ps/Hotkey.cpp
/* Copyright (C) 2015 Wildfire Games. | /* Copyright (C) 2017 Wildfire Games. | ||||
* This file is part of 0 A.D. | * This file is part of 0 A.D. | ||||
* | * | ||||
* 0 A.D. is free software: you can redistribute it and/or modify | * 0 A.D. is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
* the Free Software Foundation, either version 2 of the License, or | * the Free Software Foundation, either version 2 of the License, or | ||||
* (at your option) any later version. | * (at your option) any later version. | ||||
* | * | ||||
* 0 A.D. is distributed in the hope that it will be useful, | * 0 A.D. is distributed in the hope that it will be useful, | ||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
* GNU General Public License for more details. | * GNU General Public License for more details. | ||||
* | * | ||||
* You should have received a copy of the GNU General Public License | * You should have received a copy of the GNU General Public License | ||||
* along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. | * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. | ||||
*/ | */ | ||||
#include "precompiled.h" | #include "precompiled.h" | ||||
#include "Hotkey.h" | #include "Hotkey.h" | ||||
#include <boost/tokenizer.hpp> | #include <boost/tokenizer.hpp> | ||||
#include "lib/input.h" | |||||
#include "ps/CConsole.h" | #include "ps/CConsole.h" | ||||
#include "ps/CLogger.h" | #include "ps/CLogger.h" | ||||
#include "ps/CStr.h" | #include "ps/CStr.h" | ||||
#include "ps/ConfigDB.h" | #include "ps/ConfigDB.h" | ||||
#include "ps/Globals.h" | #include "ps/Globals.h" | ||||
#include "ps/KeyName.h" | #include "ps/KeyName.h" | ||||
static bool unified[UNIFIED_LAST - UNIFIED_SHIFT]; | static bool unified[UNIFIED_LAST - UNIFIED_SHIFT]; | ||||
▲ Show 20 Lines • Show All 105 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
bool isNegated(const SKey& key) | bool isNegated(const SKey& key) | ||||
{ | { | ||||
// Normal keycodes are below EXTRA_KEYS_BASE | // Normal keycodes are below EXTRA_KEYS_BASE | ||||
if ((int)key.code < EXTRA_KEYS_BASE && g_keys[key.code] == key.negated) | if ((int)key.code < EXTRA_KEYS_BASE && g_keys[key.code] == key.negated) | ||||
return false; | return false; | ||||
// Mouse 'keycodes' are after the modifier keys | // Mouse 'keycodes' are after the modifier keys | ||||
else if ((int)key.code > UNIFIED_LAST && g_mouse_buttons[key.code - UNIFIED_LAST] == key.negated) | else if ((int)key.code < MOUSE_LAST && (int)key.code > MOUSE_BASE && g_mouse_buttons[key.code - MOUSE_BASE] == key.negated) | ||||
return false; | return false; | ||||
// Modifier keycodes are between the normal keys and the mouse 'keys' | // Modifier keycodes are between the normal keys and the mouse 'keys' | ||||
else if ((int)key.code < UNIFIED_LAST && (int)key.code > SDL_SCANCODE_TO_KEYCODE(SDL_NUM_SCANCODES) && unified[key.code - UNIFIED_SHIFT] == key.negated) | else if ((int)key.code < UNIFIED_LAST && (int)key.code > SDL_SCANCODE_TO_KEYCODE(SDL_NUM_SCANCODES) && unified[key.code - UNIFIED_SHIFT] == key.negated) | ||||
return false; | return false; | ||||
else | else | ||||
return true; | return true; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 194 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator