Merge branch 'master' into jgrpp
# Conflicts: # .github/workflows/ci-build.yml # .github/workflows/release-linux.yml # .github/workflows/release-macos.yml # .github/workflows/release-source.yml # .github/workflows/release.yml # CMakeLists.txt # COMPILING.md # src/ai/ai_core.cpp # src/ai/ai_gui.cpp # src/bridge_gui.cpp # src/company_gui.cpp # src/console_cmds.cpp # src/core/CMakeLists.txt # src/core/smallmap_type.hpp # src/disaster_vehicle.h # src/effectvehicle_base.h # src/fontcache.cpp # src/game/game_core.cpp # src/game/game_gui.cpp # src/gamelog.cpp # src/gamelog_internal.h # src/group_gui.cpp # src/linkgraph/linkgraph.h # src/misc.cpp # src/network/core/config.h # src/network/core/udp.cpp # src/network/network_chat_gui.cpp # src/network/network_content_gui.cpp # src/network/network_gui.cpp # src/newgrf.cpp # src/newgrf_gui.cpp # src/newgrf_profiling.cpp # src/newgrf_profiling.h # src/object_gui.cpp # src/openttd.cpp # src/openttd.h # src/order_gui.cpp # src/os/windows/font_win32.cpp # src/rail_gui.cpp # src/road.cpp # src/road_gui.cpp # src/saveload/afterload.cpp # src/saveload/saveload.h # src/script/api/script_controller.cpp # src/script/api/script_roadtypelist.cpp # src/script/script_config.cpp # src/script/script_config.hpp # src/script/script_instance.cpp # src/script/script_scanner.cpp # src/script/squirrel.cpp # src/script/squirrel_helper.hpp # src/settings_gui.cpp # src/settings_internal.h # src/settings_type.h # src/table/settings/network_private_settings.ini # src/timetable_gui.cpp # src/vehicle.cpp # src/vehicle_base.h # src/window_gui.h
This commit is contained in:
@@ -170,53 +170,41 @@ static void ParseHotkeys(Hotkey *hotkey, const char *value)
|
||||
* by a '+'.
|
||||
* @param keycode The keycode to convert to a string.
|
||||
* @return A string representation of this keycode.
|
||||
* @note The return value is a static buffer, stredup the result before calling
|
||||
* this function again.
|
||||
*/
|
||||
static const char *KeycodeToString(uint16 keycode)
|
||||
static std::string KeycodeToString(uint16 keycode)
|
||||
{
|
||||
static char buf[32];
|
||||
buf[0] = '\0';
|
||||
bool first = true;
|
||||
std::string str;
|
||||
if (keycode & WKC_GLOBAL_HOTKEY) {
|
||||
strecat(buf, "GLOBAL", lastof(buf));
|
||||
first = false;
|
||||
str += "GLOBAL";
|
||||
}
|
||||
if (keycode & WKC_SHIFT) {
|
||||
if (!first) strecat(buf, "+", lastof(buf));
|
||||
strecat(buf, "SHIFT", lastof(buf));
|
||||
first = false;
|
||||
if (!str.empty()) str += "+";
|
||||
str += "SHIFT";
|
||||
}
|
||||
if (keycode & WKC_CTRL) {
|
||||
if (!first) strecat(buf, "+", lastof(buf));
|
||||
strecat(buf, "CTRL", lastof(buf));
|
||||
first = false;
|
||||
if (!str.empty()) str += "+";
|
||||
str += "CTRL";
|
||||
}
|
||||
if (keycode & WKC_ALT) {
|
||||
if (!first) strecat(buf, "+", lastof(buf));
|
||||
strecat(buf, "ALT", lastof(buf));
|
||||
first = false;
|
||||
if (!str.empty()) str += "+";
|
||||
str += "ALT";
|
||||
}
|
||||
if (keycode & WKC_META) {
|
||||
if (!first) strecat(buf, "+", lastof(buf));
|
||||
strecat(buf, "META", lastof(buf));
|
||||
first = false;
|
||||
if (!str.empty()) str += "+";
|
||||
str += "META";
|
||||
}
|
||||
if (!first) strecat(buf, "+", lastof(buf));
|
||||
if (!str.empty()) str += "+";
|
||||
keycode = keycode & ~WKC_SPECIAL_KEYS;
|
||||
|
||||
for (uint i = 0; i < lengthof(_keycode_to_name); i++) {
|
||||
if (_keycode_to_name[i].keycode == keycode) {
|
||||
strecat(buf, _keycode_to_name[i].name, lastof(buf));
|
||||
return buf;
|
||||
str += _keycode_to_name[i].name;
|
||||
return str;
|
||||
}
|
||||
}
|
||||
assert(keycode < 128);
|
||||
char key[2];
|
||||
key[0] = keycode;
|
||||
key[1] = '\0';
|
||||
strecat(buf, key, lastof(buf));
|
||||
return buf;
|
||||
str.push_back(keycode);
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -224,19 +212,15 @@ static const char *KeycodeToString(uint16 keycode)
|
||||
* keycodes are attached to the hotkey they are split by a comma.
|
||||
* @param hotkey The keycodes of this hotkey need to be converted to a string.
|
||||
* @return A string representation of all keycodes.
|
||||
* @note The return value is a static buffer, stredup the result before calling
|
||||
* this function again.
|
||||
*/
|
||||
const char *SaveKeycodes(const Hotkey *hotkey)
|
||||
std::string SaveKeycodes(const Hotkey *hotkey)
|
||||
{
|
||||
static char buf[128];
|
||||
buf[0] = '\0';
|
||||
std::string str;
|
||||
for (uint i = 0; i < hotkey->keycodes.size(); i++) {
|
||||
const char *str = KeycodeToString(hotkey->keycodes[i]);
|
||||
if (i > 0) strecat(buf, ",", lastof(buf));
|
||||
strecat(buf, str, lastof(buf));
|
||||
if (i > 0) str += ",";
|
||||
str += KeycodeToString(hotkey->keycodes[i]);
|
||||
}
|
||||
return buf;
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user