]> granicus.if.org Git - nethack/log
nethack
4 years ago\#include "fnamesiz.h"
PatR [Fri, 8 Jan 2021 22:59:36 +0000 (14:59 -0800)]
\#include "fnamesiz.h"

The inclusion shouldn't really come before *conf.h because the
things it sets up could depend on those.  This is better, but
having Amiga 90% dead and 10% comatose seems to be more trouble
that it's worth.

4 years agocurses: fix unused label 'bail'
PatR [Fri, 8 Jan 2021 21:57:52 +0000 (13:57 -0800)]
curses: fix unused label 'bail'

when SELECTSAVED isn't defined by using a goto for it even when
an 'if' was easily avoiding the need for that.

4 years agounix Makefile.src update
PatR [Fri, 8 Jan 2021 21:51:08 +0000 (13:51 -0800)]
unix Makefile.src update

'make depend' found a bunch of stuff besides Qt headers not
being up to date.

4 years agoQt key handling
PatR [Fri, 8 Jan 2021 21:47:34 +0000 (13:47 -0800)]
Qt key handling

Fix the popup versions of qt_yn_function() to handle control
characters by using the same key press event decoding routine
and menus and extended commands.  Moves 'keyValue()' to
qt_key.cpp and its declaration to qt_key.h, requring several
files to start using #include "qt_key.h".

'make depend' update to follow.

4 years ago'make depend' fix
PatR [Fri, 8 Jan 2021 21:33:27 +0000 (13:33 -0800)]
'make depend' fix

The gone but still referenced state of amiconf.h broke 'make depend'.
Fixing that turns it into a comment in the generated dependencies
but that ran into a problem with it being followed by fnamesiz.h
instead of being last in the list containing it.  So in addition to
the depend fix, move #include "fnamesiz.h" from config.h to global.h
in order to have it come before amiconf.h.

4 years agodowhatdoes ('&') vs prefix characters
PatR [Fri, 8 Jan 2021 20:44:45 +0000 (12:44 -0800)]
dowhatdoes ('&') vs prefix characters

I noticed that the & command was claiming that ^A is an unknown
command.  Unlike the old static version, or the replaced-before-
ever-released conditional version, the fully dynamic variation
of '&' didn't know about any of the special commands:  prefix
letters, ESC, and ^A.

4 years agoQt: ^V on OSX
PatR [Fri, 8 Jan 2021 09:37:38 +0000 (01:37 -0800)]
Qt: ^V on OSX

I can't take credit for this and still have no idea why it is
needed, but it fixes use of ^V as a command and as input to
to the regular version of yn_function().  In particular, '&'
command reports it as ^V.  Unfortunately when 'popup_dialog' is
set, no control characters seem to be accepted by the part of
NetHackQtYnDialog(Exec+KeyPressEvent) responsible for arbitrary
input.

It also causes getlin() to terminate but I can't think of any
situation where ^V would be considered to be valid input for
getlin() so won't worry about that.

I put it in as '#if MACOSX' because I don't know whether any
other Qt platforms need it.

4 years agoAdd missing flag for count support with drop command
Patric Mueller [Fri, 8 Jan 2021 00:39:56 +0000 (01:39 +0100)]
Add missing flag for count support with drop command

The recent getobj refactoring missed the flag GETOBJ_ALLOWCNT for the drop
command.

4 years agomore Guidebook.tex
nhmall [Thu, 7 Jan 2021 23:28:33 +0000 (18:28 -0500)]
more Guidebook.tex

4 years agoTeX corrections in Guidebook
nhmall [Thu, 7 Jan 2021 23:18:14 +0000 (18:18 -0500)]
TeX corrections in Guidebook

4 years agoThis is cron-daily v1-Jan-20-2020. guidebook updated: doc/Guidebook.txt
nhw_cron [Thu, 7 Jan 2021 03:24:05 +0000 (22:24 -0500)]
This is cron-daily v1-Jan-20-2020.  guidebook updated: doc/Guidebook.txt

4 years agoobj.h - expand documentation of obj->spe uses
PatR [Thu, 7 Jan 2021 22:02:52 +0000 (14:02 -0800)]
obj.h - expand documentation of obj->spe uses

Started out adding spe==2 for eggs but ended up changing other
things too.

FIXME?  The line "special for uball and amulet" baffles me:

    uball->spe is set to 1 during punishment (with an ambiguous
comment "special ball (see save)"), and back to 0 afterwards, but
otherwise seems to be unused.

    "and amulet" is ambiguous; it should either be "and the Amulet"
or "and amulets".  I assume it probably referred to the former but
it doesn't seem to be used for either kind as far as I can tell.

4 years agofix another regression in pager.c
nhmall [Thu, 7 Jan 2021 20:52:38 +0000 (15:52 -0500)]
fix another regression in pager.c

4 years agoFix glyph lookup
Pasi Kallinen [Thu, 7 Jan 2021 19:53:53 +0000 (21:53 +0200)]
Fix glyph lookup

Seems to have been a mistake in c9673b3d9e

4 years agoAdd Sokoban penalty for dismounting onto a boulder
Michael Meyer [Thu, 24 Dec 2020 20:07:10 +0000 (15:07 -0500)]
Add Sokoban penalty for dismounting onto a boulder

Because landing_spot will select a square containing a boulder as a
last-resort option, provided no other squares are accessible, it is
possible for the player to maneuver into a place where this could be
exploited when completing Sokoban (e.g. to get into a corner that would
normally be inaccessible, from which position an otherwise-blocked
boulder can be pushed away). This behavior should incur the same penalty
as exploitation of other Sokoban 'loopholes'.

4 years agoPrevent inappropriate diagonal dismounts
Michael Meyer [Thu, 24 Dec 2020 19:52:59 +0000 (14:52 -0500)]
Prevent inappropriate diagonal dismounts

Dismounting a steed checked whether the target spot was accessible and
whether there was a monster on it, but not whether it could actually be
accessed by the hero through normal movement. As a result, dismounting
allowed the hero to pass between diagonal gaps that would normally cause
a "you are carrying too much to get through" pline; this could leave
them in a position where they are effectively stuck, unable to remount
their steed or move away without dropping their inventory.

This also could be abused by dismounting in Sokoban to squeeze between
boulders in a way that would normally be impossible.

Using a successful result test_move as one of the requirements for a
spot to be valid prevents this and limits valid dismount targets to
squares that would normally be accessible through standard movement.

4 years agoRefactor getobj() to use callbacks on candidate objects
copperwater [Thu, 7 Jan 2021 16:05:59 +0000 (11:05 -0500)]
Refactor getobj() to use callbacks on candidate objects

This replaces the arcane system previously used by getobj where the
caller would pass in a "string" whose characters were object class
numbers, with the first up to four characters being special constants
that effectively acted as flags and had to be in a certain order.
Because there are many places where getobj must behave more granularly
than just object class filtering, this was supplemented by over a
hundred lines enumerating all these special cases and "ugly checks", as
well as other ugly code spread around in getobj callers that formatted
the "string".

Now, getobj callers pass in a callback which will return one of five
possible values for any given object in the player's inventory. The
logic of determining the eligibility of a given object is handled in the
caller, which greatly simplifies the code and makes it clearer to read.
Particularly since there's no real need to cram everything into one if
statement.

This is related to pull request #77 by FIQ; it's largely a
reimplementation of its callbacks system, without doing a bigger than
necessary refactor of getobj or adding the ability to select a
floor/trap/dungeon feature with getobj. Differences in implementation
are mostly minor:
- using enum constants for returns instead of magic numbers
- 5 possible return values for callbacks instead of 3, due to trying to
  make it behave exactly as it did previously. PR #77 would sometimes
  outright exclude objects because it lacked semantics for invalid
  objects that should be selectable anyway, or give slightly different
  messages.
- passing a bitmask of flags to getobj rather than booleans (easier to
  add more flags later - such as FIQ's "allow floor features" flag, if
  that becomes desirable)
- renaming some of getobj's variables to clearer versions
- naming all callbacks consistently with "_ok"
- generally more comments explaining things

The callbacks use the same logic from getobj_obj_exclude,
getobj_obj_exclude_too and getobj_obj_acceptable_unlisted (and in a few
cases, from special cases still within getobj). In a number of them, I
added comments suggesting possible further refinements to what is and
isn't eligible (e.g. should a bullwhip really be presented as a
candidate for readying a thrown weapon?)

This also removed ALLOW_COUNT and ALLOW_NONE, relics of the old system,
and moved ALLOW_ALL's definition into detect.c which is the only place
it's used now (unrelated to getobj). The ALLOW_ALL functionality still
exists as the GETOBJ_PROMPT flag, because its main use is to force
getobj to prompt for input even if nothing is valid.

I did not refactor ggetobj() as part of this change.

4 years agoGuidebook update
PatR [Thu, 7 Jan 2021 02:54:42 +0000 (18:54 -0800)]
Guidebook update

Document m\ and m`.

Several years ago there was a suggestion--aka complaint--that
"menustyle:Traditional was the only alternative for early versions"
was too vague and requested that the version be included.  It was
probably accurate at the time it was included, but I've changed it
from "early versions" to "very early versions" now.  :-}

4 years agocurses line-of-input prompting
PatR [Wed, 6 Jan 2021 23:59:55 +0000 (15:59 -0800)]
curses line-of-input prompting

Redo the fake ESC handling for curses' wgetnstr() so that it
applies to all popup prompts rather than just to "Who are you?",
in case the player sets the 'popup_dialog' option.

4 years agoAdd liquid flow to land mine explosions
Michael Meyer [Thu, 19 Nov 2020 17:42:09 +0000 (12:42 -0500)]
Add liquid flow to land mine explosions

Land mine explosions did not call liquid_flow(dig.c), and as a result
the pit created by an exploding land mine would never fill with adjacent
water or lava, as pits created by other sources -- digging, breaking a
wand, and earthquake -- can do.

This commit adds the appropriate calls to liquid_flow and fillholetyp to
blow_up_landmine so that land mine explosions may fill with water like
other pits do.

The call to losehp in dotrap had to be moved from after to before
blow_up_landmine, since waiting to call losehp when the pit can fill
with water could lead to silly messages (``That was a close one. You
die...''). After this change, a land mine that killed a character would
be retained unexploded in a bones file, because death would occur before
the call to blow_up_landmine. To avoid this issue, the land mine is
converted to a pit before calling losehp; blow_up_landmine does not
check whether the target trap is in fact a landmine so works as usual
even if the trap is converted to a pit, and will delete the pit in cases
where it should not exist.

4 years agoMonster ranged attacks and staying away from hero
Pasi Kallinen [Wed, 6 Jan 2021 12:38:22 +0000 (14:38 +0200)]
Monster ranged attacks and staying away from hero

Move the check for monsters that want to stay away from hero
due to having a ranged attack into a separate function.

Add monsters with polearms and breath attacks to it.
Monsters with breath attacks stay away only if they haven't
used their breath recently, or if they are injured.

4 years agoadjust some disabled code in curses window port
nhmall [Tue, 5 Jan 2021 21:06:58 +0000 (16:06 -0500)]
adjust some disabled code in curses window port

4 years agoa couple of display.c follow-up bits
nhmall [Tue, 5 Jan 2021 21:06:04 +0000 (16:06 -0500)]
a couple of display.c follow-up bits

4 years agoplace a reminder in glyph_info comment
nhmall [Tue, 5 Jan 2021 16:00:07 +0000 (11:00 -0500)]
place a reminder in glyph_info comment

4 years agofield order in initializer after earlier change
nhmall [Tue, 5 Jan 2021 15:55:12 +0000 (10:55 -0500)]
field order in initializer after earlier change

4 years agoFix zero-damage attacks
Pasi Kallinen [Tue, 5 Jan 2021 15:47:53 +0000 (17:47 +0200)]
Fix zero-damage attacks

Disenchanters dealt 0 damage with their disenchanting attack,
as did monsters with sleeping and slowing attacks.

Fixes #439

4 years agotypo in comments
nhmall [Tue, 5 Jan 2021 15:44:19 +0000 (10:44 -0500)]
typo in comments

4 years agoMSDOS and TTY_TILES_ESCCODES bit
nhmall [Tue, 5 Jan 2021 15:28:43 +0000 (10:28 -0500)]
MSDOS and TTY_TILES_ESCCODES bit

4 years agomore window port interface adjustments
nhmall [Tue, 5 Jan 2021 15:09:37 +0000 (10:09 -0500)]
more window port interface adjustments

further adjustments to the window port interface to pass a pointer
to a glyph_info struct which describes not just the glyph number
itself, but also the ttychar, the color, the glyphflags, and the
symset index.

This affects two existing window port calls that get passed glyphs
and does the parameter consistently for both of them using the
glyph_info struct pointer:
print_glyph()
add_menu().

The recently added glyphmod parameter is now unnecessary and has been
removed.

4 years agocurses askname()
PatR [Tue, 5 Jan 2021 02:01:49 +0000 (18:01 -0800)]
curses askname()

Noticed when implementing restore-via-menu for curses a couple
of days ago:  The "Who are you?" prompt wouldn't let me cancel
out via <escape>.  I created a character named '\033' which was
displayed as "^[" during play and produced a save file shown by
'ls' as "501?.Z".

To fix this properly, we will need to replace use of wgetnstr()
with something of our own.  That's more work than I feel like
tackling.  This fakes ESC handling if the player is willing to
type <escape><return> rather than just <escape> when terminating
the prompt.

4 years agoThis is cron-daily v1-Jan-20-2020. manpages updated: makedefs.txt
nhw_cron [Sun, 3 Jan 2021 20:24:07 +0000 (15:24 -0500)]
This is cron-daily v1-Jan-20-2020.  manpages updated: makedefs.txt

4 years agoThis is cron-daily v1-Jan-20-2020. files updated: Files
nhw_cron [Sun, 3 Jan 2021 20:24:07 +0000 (15:24 -0500)]
This is cron-daily v1-Jan-20-2020.  files updated: Files

4 years agoRemove vision tables from makedefs
Dean Luick [Sun, 3 Jan 2021 19:37:25 +0000 (13:37 -0600)]
Remove vision tables from makedefs

Update makdefs source and its man page.

Remove all mentions of the vision table files from:
o .gitattributes
o .gitignore
o Files
o Cross-compiling

Add a brief note in the fixes file.

4 years agoUnix 'make clean' and 'make spotless'
PatR [Sun, 3 Jan 2021 19:27:17 +0000 (11:27 -0800)]
Unix 'make clean' and 'make spotless'

Provide a reasonably straightforward way to leave lua alone when
changing git branches (which I precede with 'make spotless').
 make clean-keep-lib
and
 make spotless-keep-lib
are new alternate forms of top level 'make clean' and 'make spotless'
that won't touch lib/lua/.

4 years agocron doc/Guidebook.txt update
nhmall [Sun, 3 Jan 2021 03:57:14 +0000 (22:57 -0500)]
cron doc/Guidebook.txt update

4 years agoWindows SELECTSAVED follow-up
nhmall [Sun, 3 Jan 2021 03:28:54 +0000 (22:28 -0500)]
Windows SELECTSAVED follow-up

set_savefile_name() was misbehaving on Windows if the regularize argument
was false.

4 years agocurses: restoring via menu
PatR [Sun, 3 Jan 2021 02:50:04 +0000 (18:50 -0800)]
curses: restoring via menu

Clone the tty SELECTSAVED code in curses.  If you would be getting
the "who are you?" prompt (perhaps via 'nethack -u player') and
you have at least one save file, you'll get a menu of save files
(plus entries for 'new game' and 'quit') to choose from.  Requires
'#define SELECTDSAVED' at build time (only ntconf.h does that by
default) and when present, can be disabled by setting 'selectsaved'
to False in NETHACKOPTIONS or .nethackrc.

4 years agopickup_types documentation
PatR [Sun, 3 Jan 2021 01:07:46 +0000 (17:07 -0800)]
pickup_types documentation

Another one from several years ago.  Document 'pickup_types:.'
as a way to set pickup_types to a value that won't ever cause
anything to be picked up, in order to leave all autopickup
decisions to player's autopickup exceptions.

Actually implementing pickup_types:none would require just as
much documentation plus extra code.

4 years agoquickmimic fixes
PatR [Sat, 2 Jan 2021 19:59:40 +0000 (11:59 -0800)]
quickmimic fixes

Reported by a beta tester four years ago:  if you telepathically
observed a pet eat a mimic corpse and temporarily change shape,
you were told that you sensed it happening but the map continued
to show its true form (because telepathy overrides mimicking).
Attempting to force the map to show the alternate shape in that
situation was hopeless, so give an alternate message instead.

While trying to fix this, I noticed my dog mimicking a throne
several times.  The list of alternate shapes for quickmimic
included SINK which happens to have the same value as S_throne.
Change that to S_sink.

4 years agoremove mapglyph() remnants from win/curses/
PatR [Sat, 2 Jan 2021 18:46:17 +0000 (10:46 -0800)]
remove mapglyph() remnants from win/curses/

Remove a couple of leftover references to mapglyph() from the
curses code (present inside '#if 0' blocks).  I've tried to
substitute code which should work but have no idea whether it
actually will.

4 years agoThis is cron-daily v1-Jan-20-2020. files updated: Files
nhw_cron [Sat, 2 Jan 2021 15:24:08 +0000 (10:24 -0500)]
This is cron-daily v1-Jan-20-2020.  files updated: Files

4 years agofixes37.0 update
nhmall [Sat, 2 Jan 2021 15:49:48 +0000 (10:49 -0500)]
fixes37.0 update

4 years agoanother unused variable
nhmall [Sat, 2 Jan 2021 14:44:09 +0000 (09:44 -0500)]
another unused variable

4 years agounused variables
nhmall [Sat, 2 Jan 2021 14:35:56 +0000 (09:35 -0500)]
unused variables

4 years agofinish mapglyph() removal
nhmall [Sat, 2 Jan 2021 14:22:53 +0000 (09:22 -0500)]
finish mapglyph() removal

4 years agoupdate for 2021
nhmall [Sat, 2 Jan 2021 03:07:54 +0000 (22:07 -0500)]
update for 2021

4 years agoMerge branch 'actual-nh-patch-1' into NetHack-3.7
nhmall [Fri, 1 Jan 2021 03:57:52 +0000 (22:57 -0500)]
Merge branch 'actual-nh-patch-1' into NetHack-3.7

4 years agoMerge branch 'patch-1' of https://github.com/actual-nh/NetHack into actual-nh-patch-1
nhmall [Fri, 1 Jan 2021 03:57:33 +0000 (22:57 -0500)]
Merge branch 'patch-1' of https://github.com/actual-nh/NetHack into actual-nh-patch-1

4 years agoCheck bones data directly for deja vu messages PR #374
nhmall [Fri, 1 Jan 2021 02:31:13 +0000 (21:31 -0500)]
Check bones data directly for deja vu messages PR #374

Closes #374
Closes #322

4 years agoMerge branch 'entrez-fix322' into NetHack-3.7
nhmall [Fri, 1 Jan 2021 02:25:16 +0000 (21:25 -0500)]
Merge branch 'entrez-fix322' into NetHack-3.7

4 years agoMerge branch 'fix322' of https://github.com/entrez/NetHack into entrez-fix322
nhmall [Fri, 1 Jan 2021 02:18:51 +0000 (21:18 -0500)]
Merge branch 'fix322' of https://github.com/entrez/NetHack into entrez-fix322

4 years agoMissing quote mark
actual-nh [Fri, 1 Jan 2021 00:54:39 +0000 (19:54 -0500)]
Missing quote mark

Again, checked vs my copy.

4 years agoTypo (Hogfather)
actual-nh [Fri, 1 Jan 2021 00:51:04 +0000 (19:51 -0500)]
Typo (Hogfather)

One typo in a quotation from Hogfather; I have checked (Corgi edition (13th printing?), 1997, page 310) and corrected it to match the original.

4 years agotermcap followup
PatR [Fri, 1 Jan 2021 00:09:46 +0000 (16:09 -0800)]
termcap followup

A little more testing for ANSI_DEFAULT forced on has revealed
that hilites[Black] has also been left Null, a problem that
MS-DOS hid.

4 years agogender-specific names can be used in .lua files with the gender upheld
nhmall [Thu, 31 Dec 2020 23:49:43 +0000 (18:49 -0500)]
gender-specific names can be used in .lua files with the gender upheld

Revert "monster name references in .lua files"
This reverts commit 0e0aa7bdf602fd8e3c382a40ae7ebe9823b9951b.

4 years agopull request #411 - freeing termcap hilite entries
PatR [Thu, 31 Dec 2020 22:49:21 +0000 (14:49 -0800)]
pull request #411 - freeing termcap hilite entries

(strings to switch color) for ANSI_DEFAULT.  Instead of lumping
more conditional code into tty_shutdown() I put the new code
into a separate routine and also pulled the existing setup code
out of tty_startup() into a separate routine too.

It will be a miracle if this doesn't break anything due to the
crazy amount of convoluted conditionals present in termcap.c.

On the other hand, I found and fixed a bug while trying to test.
The ANSI_DEFAULT hilites for Gray and No_Color were null instead
of an empty string.  MS-DOS stdio apparently fixes that up, but
on OSX (after #undef UNIX and TERMLIB and TERMINFO and #define
ANSI_DEFAULT in termcap.c) I started seeing instances of "(null)"
on the map (OSX stdio does a different fix up for Null pointers)
as soon as I enabled 'color'.  It was an attempt to set No_Color.

Closes #411

4 years agofix github issue #431 - failed displacing
PatR [Thu, 31 Dec 2020 19:23:29 +0000 (11:23 -0800)]
fix github issue #431 - failed displacing

Being able to swap places with peaceful monsters instead of just
with pets made it possible to cause them to flee. Shopkeepers
wouldn't abandon the shop door but temple priests would attack
if hero tried to chat while they were fleeing.

4 years agoRefactor bones search loop
Michael Meyer [Thu, 31 Dec 2020 03:42:48 +0000 (22:42 -0500)]
Refactor bones search loop

Using a for loop instead of an if and a do/while makes the code much
more clear and concise, so that it's easier to understand what the
function does at a glance.  The actual approach to iterating through the
current level's bones files and searching for a match is more or less
unchanged.

4 years agotribute typo: Lords and Ladies #5
PatR [Thu, 31 Dec 2020 01:55:30 +0000 (17:55 -0800)]
tribute typo: Lords and Ladies #5

Add a missing opening quote mark near the end of passage 5 of
Lords and Ladies.

4 years agomonster name references in .lua files
nhmall [Thu, 31 Dec 2020 00:18:25 +0000 (19:18 -0500)]
monster name references in .lua files

Closes #434

4 years agopmnames follow-up
nhmall [Wed, 30 Dec 2020 23:57:24 +0000 (18:57 -0500)]
pmnames follow-up

replace references to "aligned priest" in several lua files with "aligned cleric"

also accept "aligned priest" during ^G parsing

4 years agoMerge branch 'NetHack-3.7' into fix322
Michael Meyer [Wed, 30 Dec 2020 19:05:16 +0000 (14:05 -0500)]
Merge branch 'NetHack-3.7' into fix322

4 years agoanother vision table bit for gcc Makefile for Windows
nhmall [Wed, 30 Dec 2020 17:30:09 +0000 (12:30 -0500)]
another vision table bit for gcc Makefile for Windows

4 years ago Xcode updates for vision table removal part 3
nhmall [Wed, 30 Dec 2020 17:16:33 +0000 (12:16 -0500)]
 Xcode updates for vision table removal part 3

4 years agovis_tab removal for VMS
PatR [Wed, 30 Dec 2020 16:58:15 +0000 (08:58 -0800)]
vis_tab removal for VMS

Get rid of vis_tab.{c,h}, also the commented out remnants of
{dgn_comp,lev_comp}.*, and put back sfstruct.* that erroneously
got removed along with some other stuff way back when.

Untested, and the lua stuff needs to be modularized.

4 years agoremove some obsolete references from the outdated tree
nhmall [Wed, 30 Dec 2020 15:42:56 +0000 (10:42 -0500)]
remove some obsolete references from the outdated tree

untested, of course

4 years agoXcode updates for vision table removal part 2
nhmall [Wed, 30 Dec 2020 15:01:08 +0000 (10:01 -0500)]
Xcode updates for vision table removal part 2

4 years agoXcode updates for vision table removal
nhmall [Wed, 30 Dec 2020 14:56:32 +0000 (09:56 -0500)]
Xcode updates for vision table removal

4 years ago^G prompting revisited
PatR [Wed, 30 Dec 2020 10:24:59 +0000 (02:24 -0800)]
^G prompting revisited

CP_TRYLIM-1 was the right value when the prompt augmentation
was at the top of the loop before the first prompt, but should
been changed to CP_TRYLIM when that got moved to the bottom of
the loop.

First prompt:
|Create what kind of monster?
Second and subsequent prompts if first attempt is unsuccessful:
|Create what kind of monster? [type name or symbol]

Prior to this fix, the shorter prompt was being used on the
first and second tries and not switching to the longer one until
the third.

4 years agoMerge branch 'win-novisiontables' into NetHack-3.7
nhmall [Wed, 30 Dec 2020 03:12:59 +0000 (22:12 -0500)]
Merge branch 'win-novisiontables' into NetHack-3.7

4 years agoRemove src and unix VISION_TABLES
Dean Luick [Tue, 29 Dec 2020 01:16:34 +0000 (19:16 -0600)]
Remove src and unix VISION_TABLES

Remove all references to the unused vision tables in the main source
and unix build.  Leave makedefs able to generate the vision tables.
makdefs will be cleaned up in a different commit, once all ports
are clear of dependencies.

4 years ago^G prompting
PatR [Tue, 29 Dec 2020 23:44:06 +0000 (15:44 -0800)]
^G prompting

Make the initial prompt for ^G be less verbose.  Only expand to
the verbose form if a second or further try is needed.

Also, remove an orphan comment about is_male() and is_female().

4 years agofixes entry for PR #433
nhmall [Tue, 29 Dec 2020 23:02:01 +0000 (18:02 -0500)]
fixes entry for PR #433

Closes #433

4 years agousage of whichpm in new gender code required a null ptr guard
nhmall [Tue, 29 Dec 2020 22:49:30 +0000 (17:49 -0500)]
usage of whichpm in new gender code required a null ptr guard

4 years agofix github issue #432 - bad sanity check
PatR [Tue, 29 Dec 2020 22:34:37 +0000 (14:34 -0800)]
fix github issue #432 - bad sanity check

The block of sanity check code that is causing impossible warnings
about the Wizard mimicking a monster was initially only used for
furniture and objects specifically because of the Wizard.  When it
got extended to check for mimicking monsters, an exception for the
Wizard was needed but not added.

Fixes #432

4 years agoremove vision tables from Windows and msdos builds
nhmall [Tue, 29 Dec 2020 03:07:00 +0000 (22:07 -0500)]
remove vision tables from Windows and msdos builds

4 years agoanother monster gender name handling tweak
nhmall [Mon, 28 Dec 2020 19:02:22 +0000 (14:02 -0500)]
another monster gender name handling tweak

ensure that monster female name variation ends up as a female during ^G

arbitrate when there is a conflict between gender term (male or female) and
a gender-tied monster name (cavewoman) during ^G; gender term wins

4 years agoQt map's "ttychar"
PatR [Mon, 28 Dec 2020 18:01:43 +0000 (10:01 -0800)]
Qt map's "ttychar"

Change the glyphttychar[ROWNO][COLNO] array from uchar to
unsighed short.  DrawWalls() has handling for values in over 2000.

This also reformats pretty much all of the NetHackQtMapViewport
portion of qt_map.cpp.

4 years agotypo in tilemap.c update
nhmall [Mon, 28 Dec 2020 14:19:07 +0000 (09:19 -0500)]
typo in tilemap.c update

4 years agofix tilemap.c compile when STATUES_LOOK_LIKE_MONSTERS wasn't defined
nhmall [Mon, 28 Dec 2020 14:14:39 +0000 (09:14 -0500)]
fix tilemap.c compile when STATUES_LOOK_LIKE_MONSTERS wasn't defined

4 years agoanother wishing gender processing tweak
nhmall [Mon, 28 Dec 2020 03:38:41 +0000 (22:38 -0500)]
another wishing gender processing tweak

4 years agohave a ^G-created monster's gender done in makemon instead of after
nhmall [Mon, 28 Dec 2020 02:44:51 +0000 (21:44 -0500)]
have a ^G-created monster's gender done in makemon instead of after

4 years agoanother extraneous file
nhmall [Mon, 28 Dec 2020 02:31:31 +0000 (21:31 -0500)]
another extraneous file

4 years agoextraneous file
nhmall [Mon, 28 Dec 2020 02:28:50 +0000 (21:28 -0500)]
extraneous file

4 years agoMerge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into...
nhmall [Mon, 28 Dec 2020 02:22:48 +0000 (21:22 -0500)]
Merge branch 'NetHack-3.7' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.7

4 years agosome tile processing fix-ups.
nhmall [Mon, 28 Dec 2020 02:20:44 +0000 (21:20 -0500)]
some tile processing fix-ups.

Some of the new colors added to some monster tiles did not
have gray scale mappings. This fixes the processing by
mapping them to *something*, but optimal gray scale mappings
for the new colors will require follow-up evaluation at some
point.

4 years agoreformat Qt/qt_clust.cpp
PatR [Mon, 28 Dec 2020 01:01:33 +0000 (17:01 -0800)]
reformat Qt/qt_clust.cpp

4 years agoArt Contribution: Differentiating gendered monster tiles PR #430
nhmall [Sun, 27 Dec 2020 23:00:48 +0000 (18:00 -0500)]
Art Contribution: Differentiating gendered monster tiles PR #430

From the pull request author NullCGT:

This pull request is a response to 0c3b964, in which nhmall expressed interest in contributions that would make gendered tiles visually distinguishable from one another. Since I've spent way too many hours editing NetHack's default tileset and the thought of trying to merge this commit into my variant gives me an absurdly massive headache, I thought I would have a go at it!

Making tiles of different genders distinct in NetHack presents an interesting problem. While it would be fun to create highly distinct tiles for every gender, doing so would reduce the accessibility of the game, since players would have to remember many more tiles, and might end up confusing one monster for another. Visual clarity is key.

Therefore, I had the following goals when creating this pull request:

1. If there is an interesting way to differentiate tiles by gender, do so.
2. Any sort of differentiation should be minor enough that a user can still tell what a monster is at a glance. Essentially, visual clarity comes before differentiation by gender.
3. Try to use a "TDTTOE method" of differentiating tiles. For example, female cats are more colorful than males, because generally male cats have only two colors of fur. Basically, I spent a lot of time on wikipedia researching sex characteristics of different species.
4. Try not to fall into "female = longer hair / eyelashes." While this feature will unfortunately require some gender-essentialist visual shorthand, this tropes is overdone and exhausting.

Please let me know what you think; I'm totally open to feedback on all of this and happy to make modifications. I've attached the resulting tiles file to this post in png form.

The alterations made in this pull request are as follows:

- Female ants are slightly larger than male ants, just like in real life. I could have added wings to the male ants, but I felt that doing so would lead to some confusion.
- Female wolves are slightly smaller than male wolves. There wasn't a great way to show this without making winter wolves look very similar to winter wolf cubs, so I just made the female wolves tails slightly shorter.
- Calico cats are almost exclusively female, so I turned the female cats into calico cats. The other piece of logic behind this choice was that players will probably really enjoy seeing different variants of their pets.
- Female hobbits, minotaurs, humans, werecreatures, and aleaxes wear slightly different clothing.
- Dwarfs are not differentiated in any way whatsoever. According to Terry Pratchett (in Unseen Academicals, if I remember correctly) it is almost impossible to tell what gender a dwarf is, even for fellow dwarfs. I strongly believe that NetHack should follow this tradition.
- Female leprechauns, archons, frost giants, guards, and all types of gnomes are clean-shaven. Although of course not one hundred percent accurate, it's convenient visual shorthand.
- Centaur tiles have no differentiation because the different types of centaurs are already extremely difficult to tell apart from one another.
- Female ogre tyrants and elven monarchs have slightly different crowns.
- Female quantum mechanics have a different hairstyle and no beard. Genetic engineers look the same, because the genetic engineer tile is perfect.
- Female barrow wights look like old grandmothers with flyaway hair. I kept the hair color the same and used a similar quantity of pixels so that they look similar enough to the males that you can tell they are barrow wights.
- Female archeologist tile is a reference to a certain archeologist known for raiding tombs.

4 years agoMerge branch 'NullCGT-feature/gendered-tiles' into NetHack-3.7
nhmall [Sun, 27 Dec 2020 22:59:30 +0000 (17:59 -0500)]
Merge branch 'NullCGT-feature/gendered-tiles' into NetHack-3.7

4 years agoMerge branch 'feature/gendered-tiles' of https://github.com/NullCGT/NetHack into...
nhmall [Sun, 27 Dec 2020 22:50:29 +0000 (17:50 -0500)]
Merge branch 'feature/gendered-tiles' of https://github.com/NullCGT/NetHack into NullCGT-feature/gendered-tiles

4 years agosome code cleanup, mostly Qt map
PatR [Sun, 27 Dec 2020 20:33:03 +0000 (12:33 -0800)]
some code cleanup, mostly Qt map

The Qt routine NetHackQtMapViewport::Clear() was broken, but
fixing it hasn't changed the glyph display issue.  None of the
other changes here would be expected to affect that but they
are in/among the sections of code under investigation.

4 years agoMore monster gender tiles additions.
Kestrel [Sun, 27 Dec 2020 19:01:27 +0000 (13:01 -0600)]
More monster gender tiles additions.

4 years agotty unused parameter under some configs
nhmall [Sun, 27 Dec 2020 17:51:40 +0000 (12:51 -0500)]
tty unused parameter under some configs

4 years agoDifferentiate male and female ant tiles.
Kestrel [Sun, 27 Dec 2020 16:56:30 +0000 (10:56 -0600)]
Differentiate male and female ant tiles.

Female ants are larger than male ants. I could have added wings to the male ants, but I felt that doing so would lead to a loss in visual clarity.

4 years agomonster gender-related follow-ups
nhmall [Sun, 27 Dec 2020 15:45:13 +0000 (10:45 -0500)]
monster gender-related follow-ups

remove unintentionally left M2_MALE flag on dwarf lord/lady/leader

provide a way to verify gender information relayed from the core
in debug mode on tty via #wizmgender debugging extended command

4 years agomimics in inaccessible locations
PatR [Sun, 27 Dec 2020 13:27:02 +0000 (05:27 -0800)]
mimics in inaccessible locations

Suppress insane sanity check.

4 years agocurses comment bit
PatR [Sun, 27 Dec 2020 13:09:44 +0000 (05:09 -0800)]
curses comment bit

Don't require c99, even in code that's suppressed via #if 0.

4 years agounix/Makefile.top vs tiles2bmp
PatR [Sun, 27 Dec 2020 13:01:39 +0000 (05:01 -0800)]
unix/Makefile.top vs tiles2bmp

Add a missing update to sys/unix/Makefile.top.  Makefile.dat
only requires that tiles2bmp exist, without knowing anything
about whether it needs to be rebuilt.  So force Makefile.top to
make sure that it's up to date, similar to how tiles2x11 gets
handled.

4 years agoanother follow-up bit - punctuation consistency
nhmall [Sun, 27 Dec 2020 00:21:37 +0000 (19:21 -0500)]
another follow-up bit - punctuation consistency

an uppercase entry was left in the monsters.txt tile file, but
changed elsewhere

4 years agotrailing semicolon bit
nhmall [Sun, 27 Dec 2020 00:09:54 +0000 (19:09 -0500)]
trailing semicolon bit