std::string KeyEventDetails::getKeynameStringFromKey(UInt32 k, UInt32 Modifier) { std::string Result(getStringFromNonDisplayedKey(k,Modifier)); if(Result.empty()) { UChar8 ResultChar = getCharFromKey(k,Modifier); if(ResultChar != 0) { Result += ResultChar; } } return Result; }
std::string KeyEventDetails::getStringFromKey(UInt32 k, UInt32 Modifier) { UChar8 ResultChar = getCharFromKey(k,Modifier); if(ResultChar != 0) { std::string Result(""); Result += ResultChar; return Result; } else { return getStringFromNonDisplayedKey(k,Modifier); } }
static void HandleKeysSpecial(Key key) { static char cheat_input[2 * MAX_CHEAT_INPUT_LEN + 1] = ""; char letter = getCharFromKey(key); int cheat_input_len = strlen(cheat_input); int i; if (letter == 0) return; if (cheat_input_len >= 2 * MAX_CHEAT_INPUT_LEN) { for (i = 0; i < MAX_CHEAT_INPUT_LEN + 1; i++) cheat_input[i] = cheat_input[MAX_CHEAT_INPUT_LEN + i]; cheat_input_len = MAX_CHEAT_INPUT_LEN; } cheat_input[cheat_input_len++] = letter; cheat_input[cheat_input_len] = '\0'; #if DEBUG_EVENTS printf("::: '%s' [%d]\n", cheat_input, cheat_input_len); #endif if (game_status == GAME_MODE_MAIN) { if (is_string_suffix(cheat_input, ":insert-solution-tape") || is_string_suffix(cheat_input, ":ist")) { InsertSolutionTape(); } else if (is_string_suffix(cheat_input, ":reload-graphics") || is_string_suffix(cheat_input, ":rg")) { ReloadCustomArtwork(1 << ARTWORK_TYPE_GRAPHICS); DrawMainMenu(); } else if (is_string_suffix(cheat_input, ":reload-sounds") || is_string_suffix(cheat_input, ":rs")) { ReloadCustomArtwork(1 << ARTWORK_TYPE_SOUNDS); DrawMainMenu(); } else if (is_string_suffix(cheat_input, ":reload-music") || is_string_suffix(cheat_input, ":rm")) { ReloadCustomArtwork(1 << ARTWORK_TYPE_MUSIC); DrawMainMenu(); } else if (is_string_suffix(cheat_input, ":reload-artwork") || is_string_suffix(cheat_input, ":ra")) { ReloadCustomArtwork(1 << ARTWORK_TYPE_GRAPHICS | 1 << ARTWORK_TYPE_SOUNDS | 1 << ARTWORK_TYPE_MUSIC); DrawMainMenu(); } else if (is_string_suffix(cheat_input, ":dump-level") || is_string_suffix(cheat_input, ":dl")) { DumpLevel(&level); } else if (is_string_suffix(cheat_input, ":dump-tape") || is_string_suffix(cheat_input, ":dt")) { DumpTape(&tape); } else if (is_string_suffix(cheat_input, ":save-native-level") || is_string_suffix(cheat_input, ":snl")) { SaveNativeLevel(&level); } } else if (game_status == GAME_MODE_PLAYING) { #ifdef DEBUG if (is_string_suffix(cheat_input, ".q")) DEBUG_SetMaximumDynamite(); #endif } else if (game_status == GAME_MODE_EDITOR) { if (is_string_suffix(cheat_input, ":dump-brush") || is_string_suffix(cheat_input, ":DB")) { DumpBrush(); } else if (is_string_suffix(cheat_input, ":DDB")) { DumpBrush_Small(); } } }