summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/libdos.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/libdos.cc')
-rw-r--r--crawl-ref/source/libdos.cc34
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) */