There is no "continually pressed key" state.
I know that there isn't, my phrasing was very weird. I meant that Cogmind seems to check whether there's a keypress, as opposed to checking whether the key is pressed.
0=release;
1=press;
2=repeat; (those are the values within key events that accompany each scancode (and other stuff), at least on Linux.)
As i understand it, the basics are :
To check whether there's been a keypress, you check if there's either 1 or 2 next.
To check if a key is being pressed, you check if there's 1 next, then you watch out for 0.
Consider the following two scenarios :
-The way it seems to me Cogmind (through Proton) is going with, is to check whether there's been a keypress like so :
If the next value is 1 or 2, wait until you can use that action, then check the next value, and repeat.
-To check if a key is being pressed for a turn-based game like this one, one way is to watch out for a 1, make one action, then check if the next value for that scancode is 0 or 2. If it's 0, don't repeat action. If it's 2, then repeat action every possible moment and ignore all further 2s until 0 is received.
The difference is that for the first will complete the action tied to the key a number of times equal to the number of 1s and 2s in the queue, which means possibly continuing to act long after the player has released the key, while the second will stop once the player releases the key.
At least i think that's how it works? I'm mostly guessing based on my knowledge about how key/relative events are sent, how some games sometimes behave, and how the Proton bug i mentioned behaves.
which implies that Cogmind receives a continually pressed key as constant key presses instead of, well, a continually pressed key.
That is the intended behavior of holding a key. There is no "continually pressed key" state. As per normal Windows OS key behavior, when you hold a key the game is receiving multiple keypresses (at an interval called the key repeat rate), and will continue to process them from the command queue until all of them have been cleared.
Are you sure it's
normal for Windows games (and other softwares too then?) to queue key events like Proton seems to do? Doesn't that have the consequences of, well, this bug exactly?
Holding keys in a roguelike is usually not a good idea, but you're allowed to do it if you want to reap the consequences
The main key you're intended to hold in some situations if you prefer is the wait key, as described in the list provided in the manual, which will indeed start blocking further wait actions for a bit once the assumed desired goal is achieved. Also keyboard-based movement to repeatedly bump targets in specific instances, also as listed in the manual--see Key Holding under Advanced Commands. Holding a fire key, or really almost any other keys, is not something where the game will protect you from the results of doing so.
I'm not sure why you're telling me this? You seem to be talking about the consequences of something suddenly changing while the player is holding a key, while i'm talking about how a key "stays pressed" long (as long as a few seconds) after i've stopped pressing the key on my keyboard, which is very different.
(Note the game you link there is a realtime game, all of which treat held keys differently than turn-based games by default due to their nature.)
I reproduced this bug successfully on two other real-time games, both of which are more fast-paced that that one.