summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-09-06 03:26:24 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-09-06 03:26:24 +0000
commitb97ff40fcb0212a3e295b44269fe9552c4acf754 (patch)
treee77879f58916c5437202425514f8c50b5e222c2f
parenta8a183dca9dfa75807dadc556e84b20aab993ce8 (diff)
downloadcrawl-ref-b97ff40fcb0212a3e295b44269fe9552c4acf754.tar.gz
crawl-ref-b97ff40fcb0212a3e295b44269fe9552c4acf754.zip
Adding back in a menu keymap context so (for example) numpad telnet users can map numpad enter to normal enter.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6876 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/macro.cc8
-rw-r--r--crawl-ref/source/macro.h4
-rw-r--r--crawl-ref/source/menu.cc2
3 files changed, 11 insertions, 3 deletions
diff --git a/crawl-ref/source/macro.cc b/crawl-ref/source/macro.cc
index 7b6d1d2f76..e40fad3f3f 100644
--- a/crawl-ref/source/macro.cc
+++ b/crawl-ref/source/macro.cc
@@ -749,7 +749,7 @@ void macro_add_query( void )
mesclr();
mpr("(m)acro, keymap "
- "[(k) default, (x) level-map, (t)argeting, (c)onfirm], "
+ "[(k) default, (x) level-map, (t)argeting, (c)onfirm, m(e)nu], "
"(s)ave?",
MSGCH_PROMPT);
input = m_getch();
@@ -774,6 +774,11 @@ void macro_add_query( void )
keymap = true;
keymc = KC_CONFIRM;
}
+ else if (input == 'e')
+ {
+ keymap = true;
+ keymc = KC_MENU;
+ }
else if (input == 'm')
keymap = false;
else if (input == 's')
@@ -796,6 +801,7 @@ void macro_add_query( void )
keymc == KC_LEVELMAP ? "level-map " :
keymc == KC_TARGETING ? "targeting " :
keymc == KC_CONFIRM ? "confirm " :
+ keymc == KC_MENU ? "menu " :
"buggy") : "",
(keymap ? "keymap" : "macro") );
diff --git a/crawl-ref/source/macro.h b/crawl-ref/source/macro.h
index 16c13f358c..7ebeee3318 100644
--- a/crawl-ref/source/macro.h
+++ b/crawl-ref/source/macro.h
@@ -28,13 +28,15 @@ enum KeymapContext {
KC_LEVELMAP, // When in the 'X' level map
KC_TARGETING, // Only during 'x' and other targeting modes
KC_CONFIRM, // When being asked y/n/q questions
+ KC_MENU, // For menus
#ifdef USE_TILE
KC_TILE, // For context_for_command()
#endif
KC_CONTEXT_COUNT, // Must always be the last real context
- KC_NONE // Don't apply any keymaps (for menus)
+
+ KC_NONE
};
class key_recorder;
diff --git a/crawl-ref/source/menu.cc b/crawl-ref/source/menu.cc
index 228be0ac72..456fda7c7f 100644
--- a/crawl-ref/source/menu.cc
+++ b/crawl-ref/source/menu.cc
@@ -210,7 +210,7 @@ void Menu::do_menu()
alive = true;
while (alive)
{
- int keyin = getchm(KC_NONE, c_getch);
+ int keyin = getchm(KC_MENU, c_getch);
if (!process_key( keyin ))
return;