164 lines
1.8 KiB
C++
164 lines
1.8 KiB
C++
#include "../include/keys.h"
|
|
|
|
char OpenArena::KeyToASCII(Keys key, bool shift)
|
|
{
|
|
if(key == KEY_UNKNOWN)
|
|
{
|
|
return '\0';
|
|
}
|
|
else
|
|
{
|
|
switch(key)
|
|
{
|
|
case KEY_OEM_1:
|
|
if(shift)
|
|
{
|
|
return ':';
|
|
}
|
|
else
|
|
{
|
|
return ';';
|
|
}
|
|
case KEY_OEM_2:
|
|
if(shift)
|
|
{
|
|
return '?';
|
|
}
|
|
else
|
|
{
|
|
return '/';
|
|
}
|
|
case KEY_OEM_3:
|
|
if(shift)
|
|
{
|
|
return '~';
|
|
}
|
|
else
|
|
{
|
|
return '`';
|
|
}
|
|
case KEY_OEM_4:
|
|
if(shift)
|
|
{
|
|
return '{';
|
|
}
|
|
else
|
|
{
|
|
return '[';
|
|
}
|
|
case KEY_OEM_5:
|
|
if(shift)
|
|
{
|
|
return '|';
|
|
}
|
|
else
|
|
{
|
|
return '\\';
|
|
}
|
|
case KEY_OEM_6:
|
|
if(shift)
|
|
{
|
|
return '}';
|
|
}
|
|
else
|
|
{
|
|
return ']';
|
|
}
|
|
case KEY_OEM_7:
|
|
if(shift)
|
|
{
|
|
return '\'';
|
|
}
|
|
else
|
|
{
|
|
return '"';
|
|
}
|
|
case KEY_OEM_PERIOD:
|
|
if(shift)
|
|
{
|
|
return '>';
|
|
}
|
|
else
|
|
{
|
|
return '.';
|
|
}
|
|
case KEY_OEM_PLUS:
|
|
if(shift)
|
|
{
|
|
return '+';
|
|
}
|
|
else
|
|
{
|
|
return '=';
|
|
}
|
|
case KEY_OEM_COMMA:
|
|
if(shift)
|
|
{
|
|
return '<';
|
|
}
|
|
else
|
|
{
|
|
return ',';
|
|
}
|
|
case KEY_OEM_MINUS:
|
|
if(shift)
|
|
{
|
|
return '_';
|
|
}
|
|
else
|
|
{
|
|
return '-';
|
|
}
|
|
default:
|
|
if(key >= KEY_A && key <= KEY_Z)
|
|
{
|
|
if(shift)
|
|
{
|
|
return key - KEY_A + 'A';
|
|
}
|
|
else
|
|
{
|
|
return key - KEY_A + 'a';
|
|
}
|
|
}
|
|
else if(key >= KEY_0 && key <= KEY_9)
|
|
{
|
|
if(shift)
|
|
{
|
|
switch(key - KEY_0)
|
|
{
|
|
case 0:
|
|
return ')';
|
|
case 1:
|
|
return '!';
|
|
case 2:
|
|
return '@';
|
|
case 3:
|
|
return '#';
|
|
case 4:
|
|
return '$';
|
|
case 5:
|
|
return '%';
|
|
case 6:
|
|
return '^';
|
|
case 7:
|
|
return '&';
|
|
case 8:
|
|
return '*';
|
|
case 9:
|
|
return '(';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return key - KEY_0 + '0';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return '\0';
|
|
}
|
|
}
|
|
}
|
|
}
|