symbol set reorganization

Change the way symbol sets are loaded to make them have the same order
as they appear in the symbols file rather than being reversed.

Revise dat/symbols so that the new ordering yields a result similar
to the old ordering, more or less.  I've added a few set descriptions.
The only substantive change is marking DECgraphics as primary-only
(not available on rogue level) and adding new set DECgraphics_2 which
is commented out near the end.

Define symbol handling H_MAC since one of the sets specifies
'handling: MAC'.  All H_MAC is used for now is to avoid showing
MACgraphics as a symset when compiled without MAC_GRAPHICS_ENV (which
was used for pre-OSX Mac by the old code in sys/mac/), so it will be
hidden for everyone.

I left handling H_CURS even though curses doesn't implement anything
for it.  It could do something when rendering the map or assign a
function to 'cursesgraphics_mode_callback' for special init or both
but hasn't needed to.  Since curses is now supporting DECgraphics,
define 'decgraphics_mode_callback' for it.  No value is being
assigned so that doesn't do anything; curses seems to be setting up
the primary character set as text and secondary one as line-drawing
without the need for that hook.

With the added set descriptions, 'O's symset menu looked horrible for
curses due to the way curses decides to set the width of menus and
the resulting line wrapping which took place because of a too-narrow
menu.  I've added a chunk of code to the options handling code which
shouldn't really be there but makes the menu much easier to read.

Lastly, do some formatting cleanup in files.c.
This commit is contained in:
PatR
2019-10-17 05:00:58 -07:00
parent 33d33fcf19
commit 3e368b9a51
6 changed files with 474 additions and 364 deletions
+375 -337
View File
@@ -1,4 +1,4 @@
# NetHack 3.6 symbols $NHDT-Date: 1570919632 2019/10/12 22:33:52 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.17 $ # NetHack 3.6 symbols $NHDT-Date: 1571313649 2019/10/17 12:00:49 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.19 $
# Copyright (c) 2006 by Michael Allison # Copyright (c) 2006 by Michael Allison
# NetHack may be freely redistributed. See license for details. # NetHack may be freely redistributed. See license for details.
# #
@@ -14,325 +14,35 @@
# of ordinary printable characters in the lowercase letter range. # of ordinary printable characters in the lowercase letter range.
# NetHack encodes the request to use the alternate font here by # NetHack encodes the request to use the alternate font here by
# having the high bit set (in hexadecimal, \x80 is combined with # having the high bit set (in hexadecimal, \x80 is combined with
# a character code between \x60 and \x7f). # a character code between \x5f and \x7e) (not 0x60 to 0x7f as was
# previously claimed).
# #
# curses is an approximation of IBMgraphics which relies on DEC # curses is an approximation of IBMgraphics which relies on DEC
# mode of operation, with a few characters missing. It is based # mode of operation, with a few characters missing. It is based
# on an old graphics mode for the Curses mode and is the default # on an old graphics mode for the Curses interface and is the default
# on that windowport if no symset is specified. # on that windowport if no symset is specified. The Curses interface
# can also use DECgraphics as-is; IBMgraphics probably won't work.
start: DECgraphics # plain looks decent for wall+corridor levels where there aren't a lot
Handling: DEC # of room corners and ones present tend to be spread out, but it looks
S_vwall: \xf8 # meta-x, vertical rule # awful for wallified mazes
S_hwall: \xf1 # meta-q, horizontal rule start: plain
S_tlcorn: \xec # meta-l, top left corner Description: same as default symbols, except '+' for corner walls
S_trcorn: \xeb # meta-k, top right corner S_tlcorn: '+'
S_blcorn: \xed # meta-m, bottom left S_trcorn: '+'
S_brcorn: \xea # meta-j, bottom right S_blcorn: '+'
S_crwall: \xee # meta-n, cross S_brcorn: '+'
S_tuwall: \xf6 # meta-v, T up S_crwall: '+'
S_tdwall: \xf7 # meta-w, T down S_tuwall: '+'
S_tlwall: \xf5 # meta-u, T left S_tdwall: '+'
S_trwall: \xf4 # meta-t, T right S_tlwall: '+'
S_ndoor: \xfe # meta-~, centered dot S_trwall: '+'
S_vodoor: \xe1 # meta-a, solid block finish #plain -- other symbols implicitly retain their default values
S_hodoor: \xe1 # meta-a, solid block
S_bars: \xfb # meta-{, small pi
S_tree: \xe7 # meta-g, plus-or-minus
S_room: \xfe # meta-~, centered dot
S_upladder: \xf9 # meta-y, less-than-or-equals
S_dnladder: \xfa # meta-z, greater-than-or-equals
S_pool: \xe0 # meta-\, diamond
S_ice: \xfe # meta-~, centered dot
S_lava: \xe0 # meta-\, diamond
S_vodbridge: \xfe # meta-~, centered dot
S_hodbridge: \xfe # meta-~, centered dot
S_water: \xe0 # meta-\, diamond
S_vbeam: \xf8 # meta-x, vertical rule
S_hbeam: \xf1 # meta-q, horizontal rule
S_sw_tc: \xef # meta-o, high horizontal line
S_sw_ml: \xf8 # meta-x, vertical rule
S_sw_mr: \xf8 # meta-x, vertical rule
S_sw_bc: \xf3 # meta-s, low horizontal line
S_explode2: \xef # meta-o, high horizontal line
S_explode4: \xf8 # meta-x, vertical rule
S_explode6: \xf8 # meta-x, vertical rule
S_explode8: \xf3 # meta-s, low horizontal line
finish
start: curses # Recommended symset for blind players
Handling: DEC
S_vwall: \xf8 # meta-x, vertical rule
S_hwall: \xf1 # meta-q, horizontal rule
S_tlcorn: \xec # meta-l, top left corner
S_trcorn: \xeb # meta-k, top right corner
S_blcorn: \xed # meta-m, bottom left
S_brcorn: \xea # meta-j, bottom right
S_crwall: \xee # meta-n, cross
S_tuwall: \xf6 # meta-v, T up
S_tdwall: \xf7 # meta-w, T down
S_tlwall: \xf5 # meta-u, T left
S_trwall: \xf4 # meta-t, T right
S_ndoor: \xfe # meta-z, centered dot
S_tree: \xf1 # plus or minus symbol
S_room: \xfe # meta-z, centered dot
S_corr: \xe1 # meta-a, solid block
S_litcorr: \xe1 # meta-a, solid block
S_ice: \xfe # meta-z, centered dot
S_vodbridge: \xfe # meta-z, centered dot
S_hodbridge: \xfe # meta-z, centered dot
S_vbeam: \xf8 # meta-3, vertical rule
S_hbeam: \xf1 # meta-D, horizontal rule
S_sw_ml: \xf8 # meta-3, vertical rule
S_sw_mr: \xf8 # meta-3, vertical rule
S_explode4: \xf8 # meta-3, vertical rule
S_explode6: \xf8 # meta-3, vertical rule
finish
start: IBMgraphics
Handling: IBM
S_vwall: \xb3 # meta-3, vertical rule
S_hwall: \xc4 # meta-D, horizontal rule
S_tlcorn: \xda # meta-Z, top left corner
S_trcorn: \xbf # meta-?, top right corner
S_blcorn: \xc0 # meta-@, bottom left
S_brcorn: \xd9 # meta-Y, bottom right
S_crwall: \xc5 # meta-E, cross
S_tuwall: \xc1 # meta-A, T up
S_tdwall: \xc2 # meta-B, T down
S_tlwall: \xb4 # meta-4, T left
S_trwall: \xc3 # meta-C, T right
S_ndoor: \xfa # meta-z, centered dot
S_vodoor: \xfe # meta-~, small centered square
S_hodoor: \xfe # meta-~, small centered square
S_bars: \xf0 # equivalence symbol
S_tree: \xf1 # plus or minus symbol
S_room: \xfa # meta-z, centered dot
S_corr: \xb0 # meta-0, light shading
S_litcorr: \xb1 # meta-1, medium shading
S_fountain: \xf4 # meta-t, integral top half
S_pool: \xf7 # meta-w, approx. equals
S_ice: \xfa # meta-z, centered dot
S_lava: \xf7 # meta-w, approx. equals
S_vodbridge: \xfa # meta-z, centered dot
S_hodbridge: \xfa # meta-z, centered dot
S_water: \xf7 # meta-w, approx. equals
S_vbeam: \xb3 # meta-3, vertical rule
S_hbeam: \xc4 # meta-D, horizontal rule
S_sw_ml: \xb3 # meta-3, vertical rule
S_sw_mr: \xb3 # meta-3, vertical rule
S_explode4: \xb3 # meta-3, vertical rule
S_explode6: \xb3 # meta-3, vertical rule
finish
start: IBMGraphics_1
Handling: IBM
S_vwall: \xb3 # meta-3, vertical rule
S_hwall: \xc4 # meta-D, horizontal rule
S_tlcorn: \xda # meta-Z, top left corner
S_trcorn: \xbf # meta-?, top right corner
S_blcorn: \xc0 # meta-@, bottom left
S_brcorn: \xd9 # meta-Y, bottom right
S_crwall: \xc5 # meta-E, cross
S_tuwall: \xc1 # meta-A, T up
S_tdwall: \xc2 # meta-B, T down
S_tlwall: \xb4 # meta-4, T left
S_trwall: \xc3 # meta-C, T right
S_vbeam: \xb3 # meta-3, vertical rule
S_hbeam: \xc4 # meta-D, horizontal rule
S_sw_ml: \xb3 # meta-3, vertical rule
S_sw_mr: \xb3 # meta-3, vertical rule
S_explode4: \xb3 # meta-3, vertical rule
S_explode6: \xb3 # meta-3, vertical rule
finish
start: IBMGraphics_2
Handling: IBM
S_vwall: \xb3 # meta-3, vertical rule
S_hwall: \xc4 # meta-D, horizontal rule
S_tlcorn: \xda # meta-Z, top left corner
S_trcorn: \xbf # meta-?, top right corner
S_blcorn: \xc0 # meta-@, bottom left
S_brcorn: \xd9 # meta-Y, bottom right
S_crwall: \xc5 # meta-E, cross
S_tuwall: \xc1 # meta-A, T up
S_tdwall: \xc2 # meta-B, T down
S_tlwall: \xb4 # meta-4, T left
S_trwall: \xc3 # meta-C, T right
S_vodoor: \xfe # meta-~, small centered square
S_hodoor: \xfe # meta-~, small centered square
S_corr: \xb0 # meta-0, light shading
S_litcorr: \xb1 # meta-1, medium shading
S_vbeam: \xb3 # meta-3, vertical rule
S_hbeam: \xc4 # meta-D, horizontal rule
S_sw_ml: \xb3 # meta-3, vertical rule
S_sw_mr: \xb3 # meta-3, vertical rule
S_explode4: \xb3 # meta-3, vertical rule
S_explode6: \xb3 # meta-3, vertical rule
finish
start: MACgraphics
Handling: MAC
S_vwall: \xba
S_hwall: \xcd
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xb0
S_vodoor: \xee
S_hodoor: \xee
S_vcdoor: \xef
S_hcdoor: \xef
S_bars: \xf0 # equivalency symbol
S_tree: \xf1 # plus-or-minus
S_corr: \xb0
S_grave: \xef # same as open door
S_pool: \xe0
finish
start: RogueIBM
Handling: IBM
Restrictions: rogue
S_weapon: \x29
S_amulet: \x2c
S_food: \x3a
S_potion: \xad
S_scroll: \x3f
S_book: \x2b
S_wand: \xe7
S_vwall: \xba # all walls now use
S_hwall: \xcd # double line graphics
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xce
S_vodoor: \xce
S_hodoor: \xce
S_room: \xfa # centered dot
S_corr: \xb1
S_litcorr: \xb2
S_upstair: \xf0 # Greek Xi
S_dnstair: \xf0
finish
start: RogueEpyx
Description: Rogue level color symbol set like Epyx Rogue
Restrictions: rogue
Handling: IBM
Color: Yes
S_vwall: \xba # all walls now use
S_hwall: \xcd # double line graphics
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xce
S_vodoor: \xce
S_hodoor: \xce
S_room: \xfa # centered dot
S_corr: \xb1
S_litcorr: \xb2
S_upstair: \xf0 # Greek Xi
S_dnstair: \xf0
S_arrow_trap: \x04 # diamond (cards)
S_dart_trap: \x04
S_falling_rock_trap: \x04
S_squeaky_board: \x04
S_bear_trap: \x04
S_land_mine: \x04
S_rolling_boulder_trap: \x04
S_sleeping_gas_trap: \x04
S_rust_trap: \x04
S_fire_trap: \x04
S_pit: \x04
S_spiked_pit: \x04
S_hole: \x04
S_trap_door: \x04
S_teleportation_trap: \x04
S_level_teleporter: \x04
S_magic_portal: \x04
S_web: \x04
S_statue_trap: \x04
S_magic_trap: \x04
S_anti_magic_trap: \x04
S_polymorph_trap: \x04
S_weapon: \x18 # up arrow
# ^J S_armor: \x0a # Vert rect with o
S_armor: \x5b # default: '['
# ^I S_ring: \x09 # circle with arrow
S_ring: \x3d # default: '='
S_amulet: \x0c # "female" symbol
S_tool: \x28 # default: '('
S_food: \x05 # club (as in cards)
S_potion: \xad # upside down '!'
S_scroll: \x0e # musical note
S_book: \x2b # default: '+'
S_wand: \xe7 # greek tau
S_coin: \x0f # yes it's the same as gems
S_gem: \x0f # fancy '*'
S_rock: \x60
S_ball: \x30
S_chain: \x5f
S_venom: \x2e
S_rock: \x60
S_ball: \x30
S_chain: \x5f
S_venom: \x2e
S_human: \x01
finish
start: RogueWindows
Restrictions: rogue
Handling: IBM
S_weapon: \x29
S_amulet: \x2c
S_food: \x3a
S_potion: \xad
S_scroll: \x3f
S_book: \x2b
S_wand: \xe7
S_vwall: \xba # all walls now use
S_hwall: \xcd # double line graphics
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xce
S_vodoor: \xce
S_hodoor: \xce
S_room: \xfa # centered dot
S_corr: \xb1
S_litcorr: \xb2
S_upstair: \xf0 # Greek Xi
S_dnstair: \xf0
finish
# Recommended symset for blind players
# courtesy Michael Feir # courtesy Michael Feir
start: NHAccess start: NHAccess
Description: Recommended for blind players Description: recommended for blind players
S_stone: \032 S_stone: \032
S_vwall: \124 S_vwall: \124
S_hwall: \045 S_hwall: \045
@@ -342,7 +52,7 @@ start: NHAccess
S_brcorn: \124 S_brcorn: \124
S_crwall: \045 S_crwall: \045
S_tuwall: \045 S_tuwall: \045
S_tdwall: \045 S_tdwall: \045
S_tlwall: \124 S_tlwall: \124
S_trwall: \124 S_trwall: \124
S_ndoor: \046 S_ndoor: \046
@@ -354,7 +64,7 @@ start: NHAccess
S_tree: \035 S_tree: \035
S_room: \035 S_room: \035
S_corr: \060 S_corr: \060
S_litcorr: \062 S_litcorr: \062
S_upstair: \060 S_upstair: \060
S_dnstair: \062 S_dnstair: \062
S_upladder: \095 S_upladder: \095
@@ -363,35 +73,35 @@ start: NHAccess
S_grave: \126 S_grave: \126
S_throne: \126 S_throne: \126
S_sink: \126 S_sink: \126
S_fountain: \126 S_fountain: \126
S_pool: \042 S_pool: \042
S_ice: \042 S_ice: \042
S_lava: \035 S_lava: \035
S_vodbridge: \035 S_vodbridge: \035
S_hodbridge: \032 S_hodbridge: \032
S_vcdbridge: \035 S_vcdbridge: \035
S_hcdbridge: \126 S_hcdbridge: \126
S_arrow_trap: \094 S_arrow_trap: \094
S_dart_trap: \094 S_dart_trap: \094
S_falling_rock_trap: \094 S_falling_rock_trap: \094
S_squeaky_board: \094 S_squeaky_board: \094
S_bear_trap: \094 S_bear_trap: \094
S_land_mine: \094 S_land_mine: \094
S_rolling_boulder_trap: \094 S_rolling_boulder_trap: \094
S_sleeping_gas_trap: \094 S_sleeping_gas_trap: \094
S_rust_trap: \094 S_rust_trap: \094
S_fire_trap: \094 S_fire_trap: \094
S_pit: \094 S_pit: \094
S_spiked_pit: \094 S_spiked_pit: \094
S_hole: \094 S_hole: \094
S_trap_door: \094 S_trap_door: \094
S_teleportation_trap: \094 S_teleportation_trap: \094
S_level_teleporter: \094 S_level_teleporter: \094
S_magic_portal: \094 S_magic_portal: \094
S_web: \094 S_web: \094
S_statue_trap: \094 S_statue_trap: \094
S_magic_trap: \094 S_magic_trap: \094
S_anti_magic_trap: \094 S_anti_magic_trap: \094
S_polymorph_trap: \094 S_polymorph_trap: \094
S_vbeam: \124 S_vbeam: \124
S_hbeam: \095 S_hbeam: \095
@@ -413,7 +123,7 @@ start: NHAccess
S_sw_bl: \092 S_sw_bl: \092
S_sw_bc: \045 S_sw_bc: \045
S_sw_br: \047 S_sw_br: \047
S_explode1: \047 S_explode1: \047
S_explode2: \045 S_explode2: \045
S_explode3: \092 S_explode3: \092
S_explode4: \058 S_explode4: \058
@@ -426,7 +136,7 @@ finish
# All symbols are spaces # All symbols are spaces
start: Blank start: Blank
Description: Completely blank symbols Description: completely blank symbols
S_air: \032 S_air: \032
S_altar: \032 S_altar: \032
S_amulet: \032 S_amulet: \032
@@ -603,15 +313,343 @@ start: Blank
S_zruty: \032 S_zruty: \032
finish finish
start: plain start: IBMgraphics
Description: Same as Default symbols, except '+' for corner walls Description: special line-drawing characters used for walls
S_tlcorn: '+' # Restrictions: primary
S_trcorn: '+' Handling: IBM
S_blcorn: '+' S_vwall: \xb3 # meta-3, vertical rule
S_brcorn: '+' S_hwall: \xc4 # meta-D, horizontal rule
S_crwall: '+' S_tlcorn: \xda # meta-Z, top left corner
S_tuwall: '+' S_trcorn: \xbf # meta-?, top right corner
S_tdwall: '+' S_blcorn: \xc0 # meta-@, bottom left
S_tlwall: '+' S_brcorn: \xd9 # meta-Y, bottom right
S_trwall: '+' S_crwall: \xc5 # meta-E, cross
finish #plain -- other symbols implicitly retain their default values S_tuwall: \xc1 # meta-A, T up
S_tdwall: \xc2 # meta-B, T down
S_tlwall: \xb4 # meta-4, T left
S_trwall: \xc3 # meta-C, T right
S_ndoor: \xfa # meta-z, centered dot
S_vodoor: \xfe # meta-~, small centered square
S_hodoor: \xfe # meta-~, small centered square
S_bars: \xf0 # equivalence symbol
S_tree: \xf1 # plus or minus symbol
S_room: \xfa # meta-z, centered dot
S_corr: \xb0 # meta-0, light shading
S_litcorr: \xb1 # meta-1, medium shading
S_fountain: \xf4 # meta-t, integral top half
S_pool: \xf7 # meta-w, approx. equals
S_ice: \xfa # meta-z, centered dot
S_lava: \xf7 # meta-w, approx. equals
S_vodbridge: \xfa # meta-z, centered dot
S_hodbridge: \xfa # meta-z, centered dot
S_water: \xf7 # meta-w, approx. equals
S_vbeam: \xb3 # meta-3, vertical rule
S_hbeam: \xc4 # meta-D, horizontal rule
S_sw_ml: \xb3 # meta-3, vertical rule
S_sw_mr: \xb3 # meta-3, vertical rule
S_explode4: \xb3 # meta-3, vertical rule
S_explode6: \xb3 # meta-3, vertical rule
finish
start: IBMGraphics_1
# Restrictions: primary
Handling: IBM
S_vwall: \xb3 # meta-3, vertical rule
S_hwall: \xc4 # meta-D, horizontal rule
S_tlcorn: \xda # meta-Z, top left corner
S_trcorn: \xbf # meta-?, top right corner
S_blcorn: \xc0 # meta-@, bottom left
S_brcorn: \xd9 # meta-Y, bottom right
S_crwall: \xc5 # meta-E, cross
S_tuwall: \xc1 # meta-A, T up
S_tdwall: \xc2 # meta-B, T down
S_tlwall: \xb4 # meta-4, T left
S_trwall: \xc3 # meta-C, T right
S_vbeam: \xb3 # meta-3, vertical rule
S_hbeam: \xc4 # meta-D, horizontal rule
S_sw_ml: \xb3 # meta-3, vertical rule
S_sw_mr: \xb3 # meta-3, vertical rule
S_explode4: \xb3 # meta-3, vertical rule
S_explode6: \xb3 # meta-3, vertical rule
finish
start: IBMGraphics_2
# Restrictions: primary
Handling: IBM
S_vwall: \xb3 # meta-3, vertical rule
S_hwall: \xc4 # meta-D, horizontal rule
S_tlcorn: \xda # meta-Z, top left corner
S_trcorn: \xbf # meta-?, top right corner
S_blcorn: \xc0 # meta-@, bottom left
S_brcorn: \xd9 # meta-Y, bottom right
S_crwall: \xc5 # meta-E, cross
S_tuwall: \xc1 # meta-A, T up
S_tdwall: \xc2 # meta-B, T down
S_tlwall: \xb4 # meta-4, T left
S_trwall: \xc3 # meta-C, T right
S_vodoor: \xfe # meta-~, small centered square
S_hodoor: \xfe # meta-~, small centered square
S_corr: \xb0 # meta-0, light shading
S_litcorr: \xb1 # meta-1, medium shading
S_vbeam: \xb3 # meta-3, vertical rule
S_hbeam: \xc4 # meta-D, horizontal rule
S_sw_ml: \xb3 # meta-3, vertical rule
S_sw_mr: \xb3 # meta-3, vertical rule
S_explode4: \xb3 # meta-3, vertical rule
S_explode6: \xb3 # meta-3, vertical rule
finish
start: RogueIBM
Handling: IBM
Restrictions: rogue
S_weapon: \x29
S_amulet: \x2c
S_food: \x3a
S_potion: \xad
S_scroll: \x3f
S_book: \x2b
S_wand: \xe7
S_vwall: \xba # all walls now use
S_hwall: \xcd # double line graphics
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xce
S_vodoor: \xce
S_hodoor: \xce
S_room: \xfa # centered dot
S_corr: \xb1
S_litcorr: \xb2
S_upstair: \xf0 # Greek Xi
S_dnstair: \xf0
finish
start: RogueEpyx
Description: rogue level color symbol set like Epyx Rogue
Restrictions: rogue
Handling: IBM
Color: Yes
S_vwall: \xba # all walls now use
S_hwall: \xcd # double line graphics
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xce
S_vodoor: \xce
S_hodoor: \xce
S_room: \xfa # centered dot
S_corr: \xb1
S_litcorr: \xb2
S_upstair: \xf0 # Greek Xi
S_dnstair: \xf0
S_arrow_trap: \x04 # diamond (cards)
S_dart_trap: \x04
S_falling_rock_trap: \x04
S_squeaky_board: \x04
S_bear_trap: \x04
S_land_mine: \x04
S_rolling_boulder_trap: \x04
S_sleeping_gas_trap: \x04
S_rust_trap: \x04
S_fire_trap: \x04
S_pit: \x04
S_spiked_pit: \x04
S_hole: \x04
S_trap_door: \x04
S_teleportation_trap: \x04
S_level_teleporter: \x04
S_magic_portal: \x04
S_web: \x04
S_statue_trap: \x04
S_magic_trap: \x04
S_anti_magic_trap: \x04
S_polymorph_trap: \x04
S_weapon: \x18 # up arrow
# ^J S_armor: \x0a # Vert rect with o
S_armor: \x5b # default: '['
# ^I S_ring: \x09 # circle with arrow
S_ring: \x3d # default: '='
S_amulet: \x0c # "female" symbol
S_tool: \x28 # default: '('
S_food: \x05 # club (as in cards)
S_potion: \xad # upside down '!'
S_scroll: \x0e # musical note
S_book: \x2b # default: '+'
S_wand: \xe7 # greek tau
S_coin: \x0f # yes it's the same as gems
S_gem: \x0f # fancy '*'
S_rock: \x60
S_ball: \x30
S_chain: \x5f
S_venom: \x2e
S_rock: \x60
S_ball: \x30
S_chain: \x5f
S_venom: \x2e
S_human: \x01
finish
start: RogueWindows
Restrictions: rogue
Handling: IBM
S_weapon: \x29
S_amulet: \x2c
S_food: \x3a
S_potion: \xad
S_scroll: \x3f
S_book: \x2b
S_wand: \xe7
S_vwall: \xba # all walls now use
S_hwall: \xcd # double line graphics
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xce
S_vodoor: \xce
S_hodoor: \xce
S_room: \xfa # centered dot
S_corr: \xb1
S_litcorr: \xb2
S_upstair: \xf0 # Greek Xi
S_dnstair: \xf0
finish
start: curses
Description: approximation of IBMgraphics using DECgraphics
Restrictions: primary
Handling: DEC
S_vwall: \xf8 # meta-x, vertical rule
S_hwall: \xf1 # meta-q, horizontal rule
S_tlcorn: \xec # meta-l, top left corner
S_trcorn: \xeb # meta-k, top right corner
S_blcorn: \xed # meta-m, bottom left
S_brcorn: \xea # meta-j, bottom right
S_crwall: \xee # meta-n, cross
S_tuwall: \xf6 # meta-v, T up
S_tdwall: \xf7 # meta-w, T down
S_tlwall: \xf5 # meta-u, T left
S_trwall: \xf4 # meta-t, T right
S_ndoor: \xfe # meta-z, centered dot
S_tree: \xf1 # plus or minus symbol
S_room: \xfe # meta-z, centered dot
S_corr: \xe1 # meta-a, solid block
S_litcorr: \xe1 # meta-a, solid block
S_ice: \xfe # meta-z, centered dot
S_vodbridge: \xfe # meta-z, centered dot
S_hodbridge: \xfe # meta-z, centered dot
S_vbeam: \xf8 # meta-3, vertical rule
S_hbeam: \xf1 # meta-D, horizontal rule
S_sw_ml: \xf8 # meta-3, vertical rule
S_sw_mr: \xf8 # meta-3, vertical rule
S_explode4: \xf8 # meta-3, vertical rule
S_explode6: \xf8 # meta-3, vertical rule
finish
start: DECgraphics
Description: special line-drawing characters used for walls
Restrictions: primary
Handling: DEC
S_vwall: \xf8 # meta-x, vertical rule
S_hwall: \xf1 # meta-q, horizontal rule
S_tlcorn: \xec # meta-l, top left corner
S_trcorn: \xeb # meta-k, top right corner
S_blcorn: \xed # meta-m, bottom left
S_brcorn: \xea # meta-j, bottom right
S_crwall: \xee # meta-n, cross
S_tuwall: \xf6 # meta-v, T up
S_tdwall: \xf7 # meta-w, T down
S_tlwall: \xf5 # meta-u, T left
S_trwall: \xf4 # meta-t, T right
S_ndoor: \xfe # meta-~, centered dot
S_vodoor: \xe1 # meta-a, solid block
S_hodoor: \xe1 # meta-a, solid block
S_bars: \xfb # meta-{, small pi
S_tree: \xe7 # meta-g, plus-or-minus
S_room: \xfe # meta-~, centered dot
S_upladder: \xf9 # meta-y, less-than-or-equals
S_dnladder: \xfa # meta-z, greater-than-or-equals
S_pool: \xe0 # meta-\, diamond
S_ice: \xfe # meta-~, centered dot
S_lava: \xe0 # meta-\, diamond
S_vodbridge: \xfe # meta-~, centered dot
S_hodbridge: \xfe # meta-~, centered dot
S_water: \xe0 # meta-\, diamond
S_vbeam: \xf8 # meta-x, vertical rule
S_hbeam: \xf1 # meta-q, horizontal rule
S_sw_tc: \xef # meta-o, high horizontal line
S_sw_ml: \xf8 # meta-x, vertical rule
S_sw_mr: \xf8 # meta-x, vertical rule
S_sw_bc: \xf3 # meta-s, low horizontal line
S_explode2: \xef # meta-o, high horizontal line
S_explode4: \xf8 # meta-x, vertical rule
S_explode6: \xf8 # meta-x, vertical rule
S_explode8: \xf3 # meta-s, low horizontal line
finish
#
# This is commented out because specifying alternate default set isn't
# implemented.
#
# DECgraphics_2: underscore (default for altar) can be hard to see if
# hero or highlighted pet is on the spot below (south of) it, making
# it look like part of slightly bigger block cursor. Bars are usually
# within walls and we have something else for doorless doorway so '#'
# for bars shouldn't be mistaken for the corridor symbol even by someone
# used to DECgraphics, at least not often enough to pose a problem.
# The pi symbol is small like lowercase but flat-topped like uppercase
# so could represent a side view of a raised platform or table.
#
# start: DECgraphics_2
# Defaults: DECgraphics # includes 'Handling: DEC'
# Description: variation of DECgraphics (iron bars:#, altar:pi)
# S_bars: '#' # (switch from pi to plain '#')
# S_altar: \xfb # meta-{, pi (switch from underscore)
# finish
#
start: MACgraphics
# Description: (pre-OSX: obsolete?)
# Restrictions: primary
Handling: MAC
S_vwall: \xba
S_hwall: \xcd
S_tlcorn: \xc9
S_trcorn: \xbb
S_blcorn: \xc8
S_brcorn: \xbc
S_crwall: \xce
S_tuwall: \xca
S_tdwall: \xcb
S_tlwall: \xb9
S_trwall: \xcc
S_ndoor: \xb0
S_vodoor: \xee
S_hodoor: \xee
S_vcdoor: \xef
S_hcdoor: \xef
S_bars: \xf0 # equivalency symbol
S_tree: \xf1 # plus-or-minus
S_corr: \xb0
S_grave: \xef # same as open door
S_pool: \xe0
finish
# symbols EOF
+5 -1
View File
@@ -1,4 +1,4 @@
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.138 $ $NHDT-Date: 1571267989 2019/10/16 23:19:49 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.139 $ $NHDT-Date: 1571313651 2019/10/17 12:00:51 $
This fixes36.3 file is here to capture information about updates in the 3.6.x This fixes36.3 file is here to capture information about updates in the 3.6.x
lineage following the release of 3.6.2 in May 2019. Please note, however, lineage following the release of 3.6.2 in May 2019. Please note, however,
@@ -185,6 +185,8 @@ fix hero still hiding under a statue shattered by a land mine
fix helping a monster out of a pit addressing a deleted trap fix helping a monster out of a pit addressing a deleted trap
fix launched rolling boulder code accessing deleted trap fix launched rolling boulder code accessing deleted trap
fix monster stepping on a land mine code accessing deleted trap fix monster stepping on a land mine code accessing deleted trap
revise 'O' to show symbol sets in the same order they appear in the symbols
file and order the sets in dat/symbols to yield a sensible symset menu
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
@@ -280,6 +282,8 @@ curses: support symset:DECgraphics for map display
curses: enable the 'use_inverse' boolean option (via wincap WC_INVERSE flag) curses: enable the 'use_inverse' boolean option (via wincap WC_INVERSE flag)
for extended monster detection and black&white lava; forced to True for extended monster detection and black&white lava; forced to True
to override default of False (for tty's benefit) to override default of False (for tty's benefit)
curses: force 'O' command's menus for 'symset' and 'roguesymset' options to
be wider so that fewer entries with set descriptions will wrap
curses+'perm_invent': entries were wrapping without any control; usually not curses+'perm_invent': entries were wrapping without any control; usually not
noticeable because next entry overwrote, but visible for final entry noticeable because next entry overwrote, but visible for final entry
when whole inventory fit within the available height; looked ok with when whole inventory fit within the available height; looked ok with
+3 -1
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 rm.h $NHDT-Date: 1559994624 2019/06/08 11:50:24 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.61 $ */ /* NetHack 3.6 rm.h $NHDT-Date: 1571313651 2019/10/17 12:00:51 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.63 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Pasi Kallinen, 2017. */ /*-Copyright (c) Pasi Kallinen, 2017. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -299,6 +299,8 @@ struct symsetentry {
#define H_IBM 1 #define H_IBM 1
#define H_DEC 2 #define H_DEC 2
#define H_CURS 3 #define H_CURS 3
#define H_MAC 4 /* obsolete; needed so that the listing of available
* symsets by 'O' can skip it for !MAC_GRAPHICS_ENV */
extern const struct symdef defsyms[MAXPCHARS]; /* defaults */ extern const struct symdef defsyms[MAXPCHARS]; /* defaults */
extern const struct symdef def_warnsyms[WARNCOUNT]; extern const struct symdef def_warnsyms[WARNCOUNT];
+12 -6
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 drawing.c $NHDT-Date: 1546656404 2019/01/05 02:46:44 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.59 $ */ /* NetHack 3.6 drawing.c $NHDT-Date: 1571313651 2019/10/17 12:00:51 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.61 $ */
/* Copyright (c) NetHack Development Team 1992. */ /* Copyright (c) NetHack Development Team 1992. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -255,9 +255,9 @@ static const uchar def_r_oc_syms[MAXOCLASSES] = {
#undef C #undef C
#ifdef TERMLIB #if defined(TERMLIB) || defined(CURSES_GRAPHICS)
void NDECL((*decgraphics_mode_callback)) = 0; /* set in tty_start_screen() */ void NDECL((*decgraphics_mode_callback)) = 0; /* set in tty_start_screen() */
#endif /* TERMLIB */ #endif /* TERMLIB || CURSES */
#ifdef PC9800 #ifdef PC9800
void NDECL((*ibmgraphics_mode_callback)) = 0; /* set in tty_start_screen() */ void NDECL((*ibmgraphics_mode_callback)) = 0; /* set in tty_start_screen() */
@@ -496,17 +496,22 @@ int nondefault;
#ifdef PC9800 #ifdef PC9800
if (SYMHANDLING(H_IBM) && ibmgraphics_mode_callback) if (SYMHANDLING(H_IBM) && ibmgraphics_mode_callback)
(*ibmgraphics_mode_callback)(); (*ibmgraphics_mode_callback)();
else if (!symset[currentgraphics].name && ascgraphics_mode_callback) else if (SYMHANDLING(H_UNK) && ascgraphics_mode_callback)
(*ascgraphics_mode_callback)(); (*ascgraphics_mode_callback)();
#endif #endif
#ifdef TERMLIB #if defined(TERMLIB) || defined(CURSES_GRAPHICS)
/* curses doesn't assign any routine to dec..._callback but
probably does the expected initialization under the hood
for terminals capable of rendering DECgraphics */
if (SYMHANDLING(H_DEC) && decgraphics_mode_callback) if (SYMHANDLING(H_DEC) && decgraphics_mode_callback)
(*decgraphics_mode_callback)(); (*decgraphics_mode_callback)();
#endif
# ifdef CURSES_GRAPHICS # ifdef CURSES_GRAPHICS
/* there aren't any symbol sets with CURS handling, and the
curses interface never assigns a routine to curses..._callback */
if (SYMHANDLING(H_CURS) && cursesgraphics_mode_callback) if (SYMHANDLING(H_CURS) && cursesgraphics_mode_callback)
(*cursesgraphics_mode_callback)(); (*cursesgraphics_mode_callback)();
# endif # endif
#endif
} else { } else {
init_l_symbols(); init_l_symbols();
init_showsyms(); init_showsyms();
@@ -563,6 +568,7 @@ const char *known_handling[] = {
"IBM", /* H_IBM */ "IBM", /* H_IBM */
"DEC", /* H_DEC */ "DEC", /* H_DEC */
"CURS", /* H_CURS */ "CURS", /* H_CURS */
"MAC", /* H_MAC -- pre-OSX MACgraphics */
(const char *) 0, (const char *) 0,
}; };
+23 -14
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 files.c $NHDT-Date: 1562719337 2019/07/10 00:42:17 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.252 $ */ /* NetHack 3.6 files.c $NHDT-Date: 1571313652 2019/10/17 12:00:52 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.253 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */ /*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -2111,7 +2111,7 @@ const char *name; /* name of option for error message */
break; break;
default: default:
gi_error: gi_error:
raw_printf("Syntax error in %s", name); raw_printf("Syntax error in %s", name);
wait_synch(); wait_synch();
return count; return count;
@@ -3063,9 +3063,10 @@ boolean FDECL((*proc), (char *));
} }
ep = inbuf; ep = inbuf;
while (*ep == ' ' || *ep == '\t') ep++; while (*ep == ' ' || *ep == '\t')
++ep;
/* lines beginning with '#' are comments. ignore empty lines. */ /* ingore empty lines and full-line comment lines */
if (!*ep || *ep == '#') if (!*ep || *ep == '#')
ignoreline = TRUE; ignoreline = TRUE;
@@ -3074,9 +3075,9 @@ boolean FDECL((*proc), (char *));
/* merge now read line with previous ones, if necessary */ /* merge now read line with previous ones, if necessary */
if (!ignoreline) { if (!ignoreline) {
len = strlen(inbuf) + 1; len = (int) strlen(inbuf) + 1;
if (buf) if (buf)
len += strlen(buf); len += (int) strlen(buf);
tmpbuf = (char *) alloc(len); tmpbuf = (char *) alloc(len);
if (buf) { if (buf) {
Sprintf(tmpbuf, "%s %s", buf, inbuf); Sprintf(tmpbuf, "%s %s", buf, inbuf);
@@ -3100,6 +3101,7 @@ boolean FDECL((*proc), (char *));
if (match_varname(buf, "CHOOSE", 6)) { if (match_varname(buf, "CHOOSE", 6)) {
char *section; char *section;
char *bufp = find_optparam(buf); char *bufp = find_optparam(buf);
if (!bufp) { if (!bufp) {
config_error_add( config_error_add(
"Format is CHOOSE=section1,section2,..."); "Format is CHOOSE=section1,section2,...");
@@ -3259,13 +3261,19 @@ int which_set;
building a pick-list of possible symset building a pick-list of possible symset
values from the file, so only do that */ values from the file, so only do that */
if (symp->range == SYM_CONTROL) { if (symp->range == SYM_CONTROL) {
struct symsetentry *tmpsp; struct symsetentry *tmpsp, *lastsp;
for (lastsp = symset_list; lastsp; lastsp = lastsp->next)
if (!lastsp->next)
break;
switch (symp->idx) { switch (symp->idx) {
case 0: case 0:
tmpsp = (struct symsetentry *) alloc(sizeof *tmpsp); tmpsp = (struct symsetentry *) alloc(sizeof *tmpsp);
tmpsp->next = symset_list; tmpsp->next = (struct symsetentry *) 0;
symset_list = tmpsp; if (!lastsp)
symset_list = tmpsp;
else
lastsp->next = tmpsp;
tmpsp->idx = symset_count++; tmpsp->idx = symset_count++;
tmpsp->name = dupstr(bufp); tmpsp->name = dupstr(bufp);
tmpsp->desc = (char *) 0; tmpsp->desc = (char *) 0;
@@ -3277,21 +3285,22 @@ int which_set;
break; break;
case 2: case 2:
/* handler type identified */ /* handler type identified */
tmpsp = symset_list; /* most recent symset */ tmpsp = lastsp; /* most recent symset */
for (i = 0; known_handling[i]; ++i) for (i = 0; known_handling[i]; ++i)
if (!strcmpi(known_handling[i], bufp)) { if (!strcmpi(known_handling[i], bufp)) {
tmpsp->handling = i; tmpsp->handling = i;
break; /* for loop */ break; /* for loop */
} }
break; break;
case 3: /* description:something */ case 3:
tmpsp = symset_list; /* most recent symset */ /* description:something */
tmpsp = lastsp; /* most recent symset */
if (tmpsp && !tmpsp->desc) if (tmpsp && !tmpsp->desc)
tmpsp->desc = dupstr(bufp); tmpsp->desc = dupstr(bufp);
break; break;
case 5: case 5:
/* restrictions: xxxx*/ /* restrictions: xxxx*/
tmpsp = symset_list; /* most recent symset */ tmpsp = lastsp; /* most recent symset */
for (i = 0; known_restrictions[i]; ++i) { for (i = 0; known_restrictions[i]; ++i) {
if (!strcmpi(known_restrictions[i], bufp)) { if (!strcmpi(known_restrictions[i], bufp)) {
switch (i) { switch (i) {
@@ -4103,7 +4112,7 @@ unsigned oid; /* book identifier */
} }
} }
cleanup: cleanup:
(void) dlb_fclose(fp); (void) dlb_fclose(fp);
if (nowin_buf) { if (nowin_buf) {
/* one-line buffer */ /* one-line buffer */
+56 -5
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 options.c $NHDT-Date: 1571045295 2019/10/14 09:28:15 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.376 $ */ /* NetHack 3.6 options.c $NHDT-Date: 1571313653 2019/10/17 12:00:53 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.378 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2008. */ /*-Copyright (c) Michael Allison, 2008. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -5336,8 +5336,8 @@ boolean setinitial, setfromfile;
MENU_UNSELECTED); MENU_UNSELECTED);
for (i = 0; i < numapes && ape; i++) { for (i = 0; i < numapes && ape; i++) {
any.a_void = (opt_idx == 1) ? 0 : ape; any.a_void = (opt_idx == 1) ? 0 : ape;
/* length of pattern plus quotes (plus '<'/'>') is less than /* length of pattern plus quotes (plus '<'/'>') is
BUFSZ */ less than BUFSZ */
Sprintf(apebuf, "\"%c%s\"", ape->grab ? '<' : '>', Sprintf(apebuf, "\"%c%s\"", ape->grab ? '<' : '>',
ape->pattern); ape->pattern);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, apebuf, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, apebuf,
@@ -5383,18 +5383,27 @@ boolean setinitial, setfromfile;
symset[which_set].name = symset_name; symset[which_set].name = symset_name;
if (res && symset_list) { if (res && symset_list) {
int thissize, biggest = 0; int thissize,
biggest = (int) (sizeof "Default Symbols" - sizeof ""),
big_desc = 0;
for (sl = symset_list; sl; sl = sl->next) { for (sl = symset_list; sl; sl = sl->next) {
/* check restrictions */ /* check restrictions */
if (rogueflag ? sl->primary : sl->rogue) if (rogueflag ? sl->primary : sl->rogue)
continue; continue;
#ifndef MAC_GRAPHICS_ENV
if (sl->handling == H_MAC)
continue;
#endif
setcount++; setcount++;
/* find biggest name */ /* find biggest name */
thissize = sl->name ? (int) strlen(sl->name) : 0; thissize = sl->name ? (int) strlen(sl->name) : 0;
if (thissize > biggest) if (thissize > biggest)
biggest = thissize; biggest = thissize;
thissize = sl->desc ? (int) strlen(sl->desc) : 0;
if (thissize > big_desc)
big_desc = thissize;
} }
if (!setcount) { if (!setcount) {
pline("There are no appropriate %s symbol sets available.", pline("There are no appropriate %s symbol sets available.",
@@ -5402,10 +5411,48 @@ boolean setinitial, setfromfile;
return TRUE; return TRUE;
} }
Sprintf(fmtstr, "%%-%ds %%s", biggest + 5); Sprintf(fmtstr, "%%-%ds %%s", biggest + 2);
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = zeroany;
#ifdef CURSES_GRAPHICS /* this ought to be handled within curses... */
/*
* Symbol sets are formatted in two columns, "name description",
* on selectable lines. curses bases menu width on the length
* of non-selectable lines (main header, separators if present,
* with trailing spaces ignored) and defaults to half the map.
* Without something like this separator (shown after the menu
* title and a blank line which follows that) to force a wider
* menu, entries with long descriptions wrap. That would be
* ok if wrapping operated on the same two columns, but the
* menu doesn't know anything about those and the description
* is wrapping into the next line's name column, making long
* descriptions--and menus containing them--hard to read.
*/
if (WINDOWPORT("curses")) {
char tmp1[BUFSZ], tmp2[BUFSZ], bigbuf[BUFSZ + 1 + BUFSZ];
/* 4: room for space+letter+paren+space, fake selector;
2: added to 'biggest' when constructing 'fmtstr';
1: space between symset name+2 and symset description */
if (4 + biggest + 2 + 1 > (int) sizeof tmp1 - 1)
biggest = (int) sizeof tmp1 - 1 - (4 + 2 + 1);
(void) memset((genericptr_t) tmp1, '-', biggest);
tmp1[biggest] = '\0';
if (big_desc > (int) sizeof tmp2 - 1)
big_desc = (int) sizeof tmp2 - 1;
(void) memset((genericptr_t) tmp2, '-', big_desc);
tmp2[big_desc] = '\0';
Sprintf(bigbuf, "%4s", "");
Sprintf(eos(bigbuf), fmtstr, tmp1, tmp2);
bigbuf[BUFSZ - 1] = '\0';
any.a_int = 0;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
bigbuf, MENU_UNSELECTED);
}
#else
nhUse(big_desc);
#endif
any.a_int = 1; any.a_int = 1;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"Default Symbols", MENU_UNSELECTED); "Default Symbols", MENU_UNSELECTED);
@@ -5414,6 +5461,10 @@ boolean setinitial, setfromfile;
/* check restrictions */ /* check restrictions */
if (rogueflag ? sl->primary : sl->rogue) if (rogueflag ? sl->primary : sl->rogue)
continue; continue;
#ifndef MAC_GRAPHICS_ENV
if (sl->handling == H_MAC)
continue;
#endif
if (sl->name) { if (sl->name) {
any.a_int = sl->idx + 2; any.a_int = sl->idx + 2;