.ds vr "NetHack 3.4
.ds f0 "\*(vr
.ds f1
-.ds f2 "July 27, 2002
+.ds f2 "August 22, 2002
.mt
A Guide to the Mazes of Menace
(Guidebook for NetHack)
get pre-loaded into RAM at the start of the game. Doing so
enhances performance of the tile graphics, but uses more memory. (default on).
Cannot be set with the `O' command.
-.lp scroll_margin
+.lp scroll_amount
+NetHack should scroll the display by this number of cells
+when the hero reaches the scroll_margin.
+.lp scroll_margin
NetHack should scroll the display when the hero or cursor
is this number of cells away from the edge of the window.
.lp splash_screen
\begin{document}
%
% input file: guidebook.mn
-% $Revision: 1.50 $ $Date: 2002/08/12 01:39:55 $
+% $Revision: 1.51 $ $Date: 2002/08/22 04:18:41 $
%
%.ds h0 "
%.ds h1 %.ds h2 \%
enhances performance of the tile graphics, but uses more memory. (default on).
Cannot be set with the `{\tt O}' command.
%.lp
+\item[\ib{scroll\_amount}]
+NetHack should scroll the display by this number of cells
+when the hero reaches the scroll\_margin.
+%.lp
\item[\ib{scroll\_margin}]
NetHack should scroll the display when the hero or cursor
is this number of cells away from the edge of the window.
travel option
cmdassist option to provide additional error feedback for some commands
mouse_support wincap option
+scroll_amount wincap option to adjust how many cells to scroll at scroll_margin
debug mode: #panic routine to test panic() and panic save file generation
a new PANICLOG optional file to log the reason for panic and impossible messages
added validate_prefix_locations() for early directory prefix validation
| font_size_status | WC_FONTSIZ_STATUS | wc_fontsiz_status |int |
| font_size_text | WC_FONTSIZ_TEXT | wc_fontsiz_text |int |
| hilite_pet | WC_HILITE_PET | wc_hilite_pet |boolean |
- | large_font | WC_LARGE_FONT | wc_large_font |boolean |
| map_mode | WC_MAP_MODE | wc_map_mode |int |
| player_selection | WC_PLAYER_SELECTION| wc_player_selection|int |
| popup_dialog | WC_POPUP_DIALOG | wc_popup_dialog |boolean |
| preload_tiles | WC_PRELOAD_TILES | wc_preload_tiles |boolean |
+ | scroll_amount | WC_SCROLL_AMOUNT | wc_scroll_amount |int |
| scroll_margin | WC_SCROLL_MARGIN | wc_scroll_margin |int |
| splash_screen | WC_SPLASH_SCREEN | wc_splash_screen |boolean |
| tiled_map | WC_TILED_MAP | wc_tiled_map |boolean |
font_status -- port should use a font by this name for status window.
font_text -- port should use a font by this name for text windows.
hilite_pet -- port should mark pets in some special way on the map.
-large_font -- port should use a large font.
map_mode -- port should display the map in the manner specified.
player_selection
-- dialog or prompts for choosing character.
popup_dialog -- port should pop up dialog boxes for input.
preload_tiles -- port should preload tiles into memory.
+scroll_amount -- scroll this amount when scroll_margin is reached.
scroll_margin -- port should scroll the display when the hero or cursor
is this number of cells away from the edge of the window.
splash_screen -- port should/should not display an opening splashscreen.
-/* SCCS Id: @(#)flag.h 3.4 2002/07/27 */
+/* SCCS Id: @(#)flag.h 3.4 2002/08/22 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
int wc_fontsiz_status; /* font size for the status window */
int wc_fontsiz_menu; /* font size for the menu window */
int wc_fontsiz_text; /* font size for text windows */
+ int wc_scroll_amount; /* scroll this amount at scroll_margin */
int wc_scroll_margin; /* scroll map when this far from
the edge */
int wc_map_mode; /* specify map viewing options, mostly
boolean wc_splash_screen; /* display an opening splash screen or not */
boolean wc_popup_dialog; /* put queries in pop up dialogs instead of
in the message window */
- boolean wc_large_font; /* draw in larger fonts (say, 12pt instead
- of 9pt) */
boolean wc_eight_bit_input; /* allow eight bit input */
boolean wc_mouse_support; /* allow mouse support */
boolean cmdassist; /* provide detailed assistance for some commands */
+ boolean obsolete; /* obsolete options can point at this, it isn't used */
/* Items which belong in flags, but are here to allow save compatibility */
boolean lootabc; /* use "a/b/c" rather than "o/i/b" when looting */
boolean showrace; /* show hero glyph by race rather than by role */
#define hilite_pet wc_hilite_pet
#define use_inverse wc_inverse
#ifdef MAC_GRAPHICS_ENV
-#define large_font wc_large_font
+#define large_font obsolete
#endif
#ifdef MAC
#define popup_dialog wc_popup_dialog
#define WC_FONTSIZ_MENU 0x100000L /* 21 supports specification of mnu win font */
#define WC_FONTSIZ_TEXT 0x200000L /* 22 supports specification of txt win font */
#define WC_SCROLL_MARGIN 0x400000L /* 23 supports setting scroll margin for map */
-#define WC_SPLASH_SCREEN 0x800000L /* 24 supports setting scroll margin for map */
+#define WC_SPLASH_SCREEN 0x800000L /* 24 supports display of splash screen */
#define WC_POPUP_DIALOG 0x1000000L /* 25 supports queries in pop dialogs */
-#define WC_LARGE_FONT 0x2000000L /* 26 Port supports large font */
+#define WC_SCROLL_AMOUNT 0x2000000L /* 26 scroll this amount at scroll margin */
#define WC_EIGHT_BIT_IN 0x4000000L /* 27 8-bit character input */
#define WC_PERM_INVENT 0x8000000L /* 28 8-bit character input */
#define WC_MAP_MODE 0x10000000L /* 29 map_mode option */
#else
{"ignintr", (boolean *)0, FALSE, SET_IN_FILE},
#endif
- {"large_font", &iflags.wc_large_font, FALSE, SET_IN_FILE}, /*WC*/
+ {"large_font", &iflags.obsolete, FALSE, SET_IN_FILE}, /* OBSOLETE */
{"legacy", &flags.legacy, TRUE, DISP_IN_GAME},
{"lit_corridor", &flags.lit_corridor, FALSE, SET_IN_GAME},
{"lootabc", &iflags.lootabc, FALSE, SET_IN_GAME},
sizeof "teleport", SET_IN_GAME },
{ "scores", "the parts of the score list you wish to see",
32, SET_IN_GAME },
+ { "scroll_amount", "scroll the map this amount when scroll_margin is reached",
+ 20, DISP_IN_GAME }, /*WC*/
{ "scroll_margin", "scroll map when this far from the edge", 20, DISP_IN_GAME }, /*WC*/
#ifdef MSDOS
{ "soundcard", "type of sound card to use", 20, SET_IN_FILE },
} else if (negated) bad_negation(fullname, TRUE);
return;
}
+ /* WINCAP
+ * scroll_amount:nn */
+ fullname = "scroll_amount";
+ if (match_optname(opts, fullname, sizeof("scroll_amount")-1, TRUE)) {
+ op = string_for_opt(opts, negated);
+ if ((negated && !op) || (!negated && op)) {
+ iflags.wc_scroll_amount = negated ? 1 : atoi(op);
+ } else if (negated) bad_negation(fullname, TRUE);
+ return;
+ }
/* WINCAP
* scroll_margin:nn */
fullname = "scroll_margin";
Sprintf(buf, "%d top/%d around%s", flags.end_top,
flags.end_around, flags.end_own ? "/own" : "");
}
+ else if (!strcmp(optname, "scroll_amount")) {
+ if (iflags.wc_scroll_amount) Sprintf(buf, "%d",iflags.wc_scroll_amount);
+ else Strcpy(buf, defopt);
+ }
else if (!strcmp(optname, "scroll_margin")) {
if (iflags.wc_scroll_margin) Sprintf(buf, "%d",iflags.wc_scroll_margin);
else Strcpy(buf, defopt);
{"color", WC_COLOR},
{"eight_bit_tty", WC_EIGHT_BIT_IN},
{"hilite_pet", WC_HILITE_PET},
- {"large_font", WC_LARGE_FONT}, /* now obsolete */
{"popup_dialog", WC_POPUP_DIALOG},
{"player_selection", WC_PLAYER_SELECTION},
{"preload_tiles", WC_PRELOAD_TILES},
{"font_status", WC_FONT_STATUS},
{"font_text", WC_FONT_TEXT},
{"map_mode", WC_MAP_MODE},
+ {"scroll_amount", WC_SCROLL_AMOUNT},
{"scroll_margin", WC_SCROLL_MARGIN},
{"splash_screen", WC_SPLASH_SCREEN},
{"vary_msgcount",WC_VARY_MSGCOUNT},
( msg_data->y<(data->yPos+mcam) ||
msg_data->y>(data->yPos+data->yPageSize-mcam) );
+ mcam += iflags.wc_scroll_amount;
/* get page size and center horizontally on x-position */
if( scroll_x ) {
if( data->xPageSize<=2*mcam ) {
#define ROGUE_LEVEL_MAP_MODE MAP_MODE_ASCII12x16
#define DEF_CLIPAROUND_MARGIN 5
+#define DEF_CLIPAROUND_AMOUNT 1
#endif /* MSWINMapWindow_h */
struct window_procs mswin_procs = {
"MSWIN",
WC_COLOR|WC_HILITE_PET|WC_ALIGN_MESSAGE|WC_ALIGN_STATUS|
- WC_INVERSE|WC_SCROLL_MARGIN|WC_MAP_MODE|
+ WC_INVERSE|WC_SCROLL_AMOUNT|WC_SCROLL_MARGIN|WC_MAP_MODE|
WC_FONT_MESSAGE|WC_FONT_STATUS|WC_FONT_MENU|WC_FONT_TEXT|
WC_FONTSIZ_MESSAGE|WC_FONTSIZ_STATUS|WC_FONTSIZ_MENU|WC_FONTSIZ_TEXT|
WC_TILE_WIDTH|WC_TILE_HEIGHT|WC_TILE_FILE|WC_VARY_MSGCOUNT|
if( iflags.wc_align_message==0 ) iflags.wc_align_message = ALIGN_TOP;
if( iflags.wc_align_status==0 ) iflags.wc_align_status = ALIGN_BOTTOM;
if( iflags.wc_scroll_margin==0 ) iflags.wc_scroll_margin = DEF_CLIPAROUND_MARGIN;
+ if( iflags.wc_scroll_amount==0 ) iflags.wc_scroll_amount = DEF_CLIPAROUND_AMOUNT;
if( iflags.wc_tile_width==0 ) iflags.wc_tile_width = TILE_X;
if( iflags.wc_tile_height==0 ) iflags.wc_tile_height = TILE_Y;
WC_HILITE_PET |
WC_ALIGN_MESSAGE |
WC_ALIGN_STATUS |
- WC_SCROLL_MARGIN |
+ WC_SCROLL_AMOUNT |
+ WC_SCROLL_MARGIN |
WC_MAP_MODE |
WC_FONT_MESSAGE |
WC_FONT_STATUS |
return;
}
+ if( stricmp( pref, "scroll_amount")==0 ) {
+ mswin_cliparound(u.ux, u.uy);
+ return;
+ }
+
if( stricmp( pref, "scroll_margin")==0 ) {
mswin_cliparound(u.ux, u.uy);
return;