number_pad:3,4,-1 (trunk only)

[See the cvs log from flag.h for comments pertaining to iflags.num_pad
and Cmd.num_pad, Cmd.commands[], Cmd.serialno.]
This commit is contained in:
nethack.rankin
2005-11-26 02:34:23 +00:00
parent 0076d5fc00
commit ea61a13add
14 changed files with 279 additions and 144 deletions

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)macwin.c 3.5 1996/01/15 */
/* SCCS Id: @(#)macwin.c 3.5 2005/11/19 */
/* Copyright (c) Jon W{tte, Hao-Yang Wang, Jonathan Handler 1992. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1366,8 +1366,11 @@ mac_destroy_nhwindow (winid win) {
void
mac_number_pad (int pad) {
iflags.num_pad = pad;
mac_number_pad (int pad) { /* no effect */
#if defined(__SC__) || defined(__MRC__)
# pragma unused(pad)
#endif
return;
}
@@ -1382,7 +1385,7 @@ trans_num_keys(EventRecord *theEvent) {
* The number_pad option controls how digits are interpreted.
*/
#if 0
if (iflags.num_pad) {
if (Cmd.num_pad) {
Handle h = GetResource('Nump', theEvent->modifiers & shiftKey ? 129 : 128);
if (h) {
short inkey = (theEvent->message & keyCodeMask), *ab = (short *)*h;
@@ -2146,7 +2149,7 @@ BaseCursor(NhWindow *wind, Point pt)
if (cursor_locked)
dir = (char *)0;
else {
dir_bas = iflags.num_pad ? (char *) ndir : (char *) sdir;
dir_bas = (char *)Cmd.dirchars;
dir = strchr(dir_bas, *click_to_cmd(pt.h / wind->char_width + 1 ,
pt.v / wind->row_height, CLICK_1));
}

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)vmstty.c 3.5 2003/09/18 */
/* SCCS Id: @(#)vmstty.c 3.5 2005/11/19 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
/* tty.c - (VMS) version */
@@ -137,10 +137,10 @@ vms_getchar()
key = (short)'\n';
} else if (kb_buf == ESC || kb_buf == CSI || kb_buf == SS3) {
switch(parse_function_key((int)kb_buf)) {
case SMG$K_TRM_UP: key = iflags.num_pad ? '8' : 'k'; break;
case SMG$K_TRM_DOWN: key = iflags.num_pad ? '2' : 'j'; break;
case SMG$K_TRM_LEFT: key = iflags.num_pad ? '4' : 'h'; break;
case SMG$K_TRM_RIGHT: key = iflags.num_pad ? '6' : 'l'; break;
case SMG$K_TRM_UP: key = Cmd.move_N; break;
case SMG$K_TRM_DOWN: key = Cmd.move_S; break;
case SMG$K_TRM_LEFT: key = Cmd.move_W; break;
case SMG$K_TRM_RIGHT: key = Cmd.move_E; break;
default: key = ESC; break;
}
} else {
@@ -157,10 +157,10 @@ vms_getchar()
if (recurse++ == 0 && kb != 0) {
smg$read_keystroke(&kb, &key);
switch (key) {
case SMG$K_TRM_UP: iflags.num_pad ? '8' : key = 'k'; break;
case SMG$K_TRM_DOWN: iflags.num_pad ? '2' : key = 'j'; break;
case SMG$K_TRM_LEFT: iflags.num_pad ? '4' : key = 'h'; break;
case SMG$K_TRM_RIGHT: iflags.num_pad ? '6' : key = 'l'; break;
case SMG$K_TRM_UP: key = Cmd.move_N; break;
case SMG$K_TRM_DOWN: key = Cmd.move_S; break;
case SMG$K_TRM_LEFT: key = Cmd.move_W; break;
case SMG$K_TRM_RIGHT: key = Cmd.move_E; break;
case '\r': key = '\n'; break;
default: if (key > 255) key = ESC;
break;