/* Interact with the player */
while (TRUE)
{
+ int dir;
+
/* Prompt XXX XXX XXX */
#ifdef JP
sprintf(buf, "%s ( ¥ê¥¿¡¼¥ó¤Ç¼¡¤Ø, y/n ¤Ç¥»¥Ã¥È, ESC ¤Ç·èÄê )", info);
/* Get a key */
ch = inkey();
+ /*
+ * HACK - Try to translate the key into a direction
+ * to allow using the roguelike keys for navigation.
+ */
+ dir = get_keymap_dir(ch);
+ if ((dir == 2) || (dir == 4) || (dir == 6) || (dir == 8))
+ ch = I2D(dir);
+
/* Analyze */
switch (ch)
{
/* Interact with the player */
while (TRUE)
{
+ int dir;
+
/* Prompt XXX XXX XXX */
#ifdef JP
sprintf(buf, "%s ( ¥ê¥¿¡¼¥ó¤Ç¼¡¤Ø, y/n ¤Ç¥»¥Ã¥È, ESC ¤Ç·èÄê ) ", info);
if ((page == PAGE_AUTODESTROY) && (k > 2)) l = 3;
else l = 0;
+
/* Hilite current option */
move_cursor(k + 2 + l, 50);
/* Get a key */
ch = inkey();
+ /*
+ * HACK - Try to translate the key into a direction
+ * to allow using the roguelike keys for navigation.
+ */
+ dir = get_keymap_dir(ch);
+ if ((dir == 2) || (dir == 4) || (dir == 6) || (dir == 8))
+ ch = I2D(dir);
+
/* Analyze */
switch (ch)
{
case '-':
case '8':
- case 'k':
- case 'K':
{
k = (n + k - 1) % n;
break;
case '\n':
case '\r':
case '2':
- case 'j':
- case 'J':
{
k = (k + 1) % n;
break;
case 'y':
case 'Y':
case '6':
- case 'l':
- case 'L':
{
(*option_info[opt[k]].o_var) = TRUE;
k = (k + 1) % n;
case 'n':
case 'N':
case '4':
- case 'h':
- case 'H':
{
(*option_info[opt[k]].o_var) = FALSE;
k = (k + 1) % n;