Qt toolbar 'rest' button

An issue in the core made the "Zz" button in the Qt toolbar only
work if rest_on_space was enabled.  cmd_from_func() was returning
' ' instead of '.' for the keystroke to run the rest command.
This commit is contained in:
PatR
2020-10-13 13:41:57 -07:00
parent 060bfe6f5d
commit 267228d0dd
2 changed files with 14 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.326 $ $NHDT-Date: 1602355548 2020/10/10 18:45:48 $
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.327 $ $NHDT-Date: 1602621704 2020/10/13 20:41:44 $
General Fixes and Modified Features
-----------------------------------
@@ -439,6 +439,8 @@ Qt: implement --More-- prompt to support MSGTYPE=stop
Qt: for menu search, don't require clicking on the search target popup before
typing target string (was using typed letters to make menu selections
if player didn't click on the popup first)
Qt: rest ("Zz") button on the toolbar only worked when 'rest_on_space' was On
(core issue, not Qt's fault)
Qt+QSX: fix control key
Qt+OSX: rename menu entry "nethack->Preferences..." for invoking nethack's
'O' command to "Game->Run-time options" and entry "Game->Qt settings"

View File

@@ -1,4 +1,4 @@
/* NetHack 3.7 cmd.c $NHDT-Date: 1597069374 2020/08/10 14:22:54 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.422 $ */
/* NetHack 3.7 cmd.c $NHDT-Date: 1602621705 2020/10/13 20:41:45 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.423 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2272,9 +2272,18 @@ int NDECL((*fn));
{
int i;
for (i = 0; i < 256; ++i)
/* skip NUL; allowing it would wreak havoc */
for (i = 1; i < 256; ++i) {
/* skip space; we'll use it below as last resort if no other
keystroke invokes space's command */
if (i == ' ')
continue;
if (g.Cmd.commands[i] && g.Cmd.commands[i]->ef_funct == fn)
return (char) i;
}
if (g.Cmd.commands[' '] && g.Cmd.commands[' ']->ef_funct == fn)
return ' ';
return '\0';
}