X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=3a303fa5e5fc20155b1e179401e3e79b9ed881e6;hb=3107a4558d89655d39413a1fa3da127d4e8b2c1e;hp=d912e8206f80834dda3e85e2cebcff2f6d729e2f;hpb=181dedd1aa7ede55254598c09f6fc1c3736decf5;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index d912e820..3a303fa5 100644 --- a/src/events.c +++ b/src/events.c @@ -1386,6 +1386,10 @@ static boolean checkTextInputKey(Key key) if (game_status == GAME_MODE_PLAYING) return FALSE; + // ignore raw keys as text input when not in text input mode + if (KSYM_RAW(key) && !textinput_status) + return FALSE; + // else handle all printable keys as text input return KSYM_PRINTABLE(key); } @@ -1855,19 +1859,15 @@ static void HandleKeysSpecial(Key key) { DumpTape(&tape); } + else if (strSuffix(cheat_input, ":undo-tape") || + strSuffix(cheat_input, ":ut")) + { + UndoTape(); + } else if (strSuffix(cheat_input, ":fix-tape") || strSuffix(cheat_input, ":ft")) { - /* fix single-player tapes that contain player input for more than one - player (due to a bug in 3.3.1.2 and earlier versions), which results - in playing levels with more than one player in multi-player mode, - even though the tape was originally recorded in single-player mode */ - - // remove player input actions for all players but the first one - for (i = 1; i < MAX_PLAYERS; i++) - tape.player_participates[i] = FALSE; - - tape.changed = TRUE; + FixTape_ForceSinglePlayer(); } else if (strSuffix(cheat_input, ":save-native-level") || strSuffix(cheat_input, ":snl"))