mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-15 01:01:43 +00:00
Fix capslock not working outside of chat/console and shifting non letter characters
This commit is contained in:
parent
e85e621d2c
commit
e9767df4ff
2 changed files with 34 additions and 16 deletions
|
@ -1098,8 +1098,17 @@ boolean CON_Responder(event_t *ev)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (capslock ^ shiftdown) // gets capslock to work because capslock is cool
|
// same capslock code as hu_stuff.c's HU_responder. Check there for details.
|
||||||
key = shiftxform[key];
|
if ((key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z'))
|
||||||
|
{
|
||||||
|
if (shiftdown ^ capslock)
|
||||||
|
key = shiftxform[key];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (shiftdown)
|
||||||
|
key = shiftxform[key];
|
||||||
|
}
|
||||||
|
|
||||||
// enter a char into the command prompt
|
// enter a char into the command prompt
|
||||||
if (key < 32 || key > 127)
|
if (key < 32 || key > 127)
|
||||||
|
|
|
@ -1074,6 +1074,18 @@ boolean HU_Responder(event_t *ev)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c = (INT32)ev->data1;
|
||||||
|
|
||||||
|
// capslock (now handled outside of chat on so that it works everytime......)
|
||||||
|
if (c && c == KEY_CAPSLOCK) // it's a toggle.
|
||||||
|
{
|
||||||
|
if (capslock)
|
||||||
|
capslock = false;
|
||||||
|
else
|
||||||
|
capslock = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!chat_on)
|
if (!chat_on)
|
||||||
{
|
{
|
||||||
// enter chat mode
|
// enter chat mode
|
||||||
|
@ -1109,21 +1121,18 @@ boolean HU_Responder(event_t *ev)
|
||||||
|
|
||||||
c = (INT32)ev->data1;
|
c = (INT32)ev->data1;
|
||||||
|
|
||||||
// capslock
|
// I know this looks very messy but this works. If it ain't broke, don't fix it!
|
||||||
if (c && c == KEY_CAPSLOCK) // it's a toggle.
|
// shift LETTERS to uppercase if we have capslock or are holding shift
|
||||||
|
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
|
||||||
{
|
{
|
||||||
if (capslock)
|
if (shiftdown ^ capslock)
|
||||||
capslock = false;
|
c = shiftxform[c];
|
||||||
else
|
|
||||||
capslock = true;
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
else // if we're holding shift we should still shift non letter symbols
|
||||||
// use console translations
|
{
|
||||||
if (shiftdown ^ capslock)
|
if (shiftdown)
|
||||||
c = shiftxform[c];
|
c = shiftxform[c];
|
||||||
|
}
|
||||||
// TODO: make chat behave like the console, so that we can go back and edit stuff when we fuck up.
|
|
||||||
|
|
||||||
// pasting. pasting is cool. chat is a bit limited, though :(
|
// pasting. pasting is cool. chat is a bit limited, though :(
|
||||||
if (((c == 'v' || c == 'V') && ctrldown) && !CHAT_MUTE)
|
if (((c == 'v' || c == 'V') && ctrldown) && !CHAT_MUTE)
|
||||||
|
@ -2114,7 +2123,7 @@ void HU_Drawer(void)
|
||||||
LUAh_ScoresHUD();
|
LUAh_ScoresHUD();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gamestate != GS_LEVEL)
|
if (gamestate != GS_LEVEL)
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue