diff options
Diffstat (limited to 'crawl-ref/source/libdos.cc')
-rw-r--r-- | crawl-ref/source/libdos.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/crawl-ref/source/libdos.cc b/crawl-ref/source/libdos.cc index 8c197e1c8e..02e1b7f85c 100644 --- a/crawl-ref/source/libdos.cc +++ b/crawl-ref/source/libdos.cc @@ -93,4 +93,38 @@ int get_number_of_cols() return (80); } +int getch_ck() +{ + int c = getch(); + if (!c) + { + switch (c = getch()) + { + case 'O': return CK_END; + case 'P': return CK_DOWN; + case 'I': return CK_PGUP; + case 'H': return CK_UP; + case 'G': return CK_HOME; + case 'K': return CK_LEFT; + case 'Q': return CK_PGDN; + case 'M': return CK_RIGHT; + case 119: return CK_CTRL_HOME; + case 141: return CK_CTRL_UP; + case 132: return CK_CTRL_PGUP; + case 116: return CK_CTRL_RIGHT; + case 118: return CK_CTRL_PGDN; + case 145: return CK_CTRL_DOWN; + case 117: return CK_CTRL_END; + case 115: return CK_CTRL_LEFT; + case 'S': return CK_DELETE; + } + } + return c; +} + +int m_getch() +{ + return getch(); +} + #endif /* #if defined(DOS) */ |