also corrects a cut-and-paste error that I made in options.c
The following options can be set in the game now:
WC_HILITE_PET
WC_ALIGN_MESSAGE
WC_ALIGN_STATUS
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
Make wands of speed or slow monster known if their effect
on monsters is observed; likewise for speed boots. Also, avoid
giving odd "the bat is moving faster" when seeing a bat created
in gehennom and inaccurate "the monster is moving slower" when
a monster puts on speed boots.
I was asked how a window-port controls which options are
set to SET_IN_FILE, DISP_IN_GAME, or SET_IN_GAME.
This provides a run-time way to change an option's SET_IN_FILE,
DISP_IN_GAME, or SET_IN_GAME status through code, rather
than clog up options.c with a lot of compile-time #ifdefs
for different ports to offer different default option settings.
Update the documentation to reflect this.
Several boolean options were mis-categorized and became
unsettable during play. Also, the eight_bit_tty option got
dropped into limbo. Fixing that revealed a typo which would
have broken compilation for MSDOS.
`eight_bit_tty' has been renamed `wc_eight_bit_input',
but its only use anywhere in the code is for output.
- added support for new options
- fixed couple of typos in options.c
- added sunken edge around message window
- added capability to replace font in the font table (if we will want to
change font sizes dynamically later)
Add absent prototypes to some core routines.
Also add some port function() to function(void) in some win32 routines.
Also updates the Borland C Makefile for win32.
As Warwick suggested, instead of having fixed tile
sizes as options, allow specification of the size
explicitly.
Also, at Yitzhak's suggestion, provide a hook for
overriding the port's tile file name. That name,
and the contents of the file it points to, will
be window-port specific of course.
Turns lots of duplicated "flags.move = 0; nomul(0);" code into
a single instance, fixing the ones that weren't complete.
Doesn't feel_locations when only testing.
<Someone> wrote:
>I also note that it's weird for your nose to stop tingling and your
>sense of smell to return to normal, if flags.beginner prevented your
>realising that your nose was tingling in the first place.
- watch messages if you can't see the watch now start "You hear"
- unseen spellcaster messages are shown as "Something", to remove
some silly message pairs.
- unseen spellcaster that casts at itself causes no message
- recalc vision before spoteffects messsages, to avoid invalid "It"
to allow common parsing in the core, and direct access to the
results by the window port.
Notes:
o Adds a new field, wincap, to the window_procs
structure for setting bits related to the preference
features that the window port supports. This allows
run-time determination of whether a particular option
setting is applicable to the running window port. A
window-port is free to support as many, or as few,
of the available options as it wants. Ensure that
only the ones supported have their corresponding bit
set in window_proc.wincap. [see chart in
doc/window.doc for help with that.]
o The settings I stuck into wincap for each window
port are almost certainly not accurate, so each port
team should review them. You should only include
the ones that you will actually react to and make
adjustments for if the user changes that option.
Without the setting in wincap, the option won't even
show up in the 'O'ptions menu.
o preference_update() added to the window-port
interface, so that the window-port can be notified
if an option of interest (an option with its
corresponding bit set in wincap field) is
changed.
o provided a genl_preference_update() routine in
windows.c and used it for all the existing
window ports since they don't have a functional
one of their own yet.
o this messes around heavily with iflags and the options
arrays in options.c
o I hope I didn't break any port's existing code. I
tried not to. The Mac however, in particular, should
be looked at because it suffered a namespace collision
with what I was working on around fontname. It had
Mac specific font stuff in options.c. Please test
the Mac.
The inability to wish for a blessed +2 fireproof speed boots really was a bug.
Prefixes are checked for inside a loop which should allow them to be in any
order; for some reason +nnn and empty were outside that loop.
Also adding the secret door detection fix to betabugs 3.3.0. (Is it safe to
hand-modify betabugs 3.3.2?)
SPLEVTYPE can have a value like "minetn-3,minend-2,soko2-2" and allows
someone in debug mode to select specific instances of random levels to use
in a test game. Invalid values found in SPLEVTYPE are silently ignored.