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.
- attempt to determine if tty_wait_synch() is called during the ending
dialogs due to an interrupt, and not re-display the previous message
at the wrong time
- also, "msg_window display anomaly" fix was missing code to still treat ^P
properly while in a prompt
- 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"
The following fixes several bugs:
1) Mismatch between docs and game in definition of what '+' resolved in
favor of docs...
2) When game needs to be recovered a message box is shown. This is a very
deprecated fix. It pretty much answers just the conditions that require
this (a yn question to an erroneous winid), and is not useful for other
purposes.
3) The score file is written.
If you interrupt nethack (^C) in tty windowport mode while a pompt is
displayed and and msg_window=true, it can display the full message history
at an unexpected time. Detect this and display only the topl, as expected.
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.
From one of <Someone>'s ascension posts: the introductory message
when you enter the Samurai's quest is slightly odd if you can't see at
the time. This rewording acknowledges the difference between being
blind or sighted, but it is still a bit odd to able to know which flag
is flying when unable to actually see it.
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.
I'm surprised that you credit me with the ninja yumi-ya thing as a
"patch" in README; I didn't submit any code for it, it's trivial, and
it's vanishingly unlikely ever to come into play :-) If I'm to be
credited with anything on that list, I'd have thought it'd be the
no starting pet option.
Apparently, " is part of an accented character in US(international) keyboard
layout (additional character specific to the language of an origin - for
example, left and right double quotation marks). The code did not handle it
too well since it maps to 2 ASCII characters instead of one (one of them is
so called "dead" character). We can ignore the dead character as a
workaround for this problem. The patch is attached.
<Someone>.
Give names to remaining town levels.
Change elements in College Town that don't follow theme.
Remove isolated niche and helm of brilliance from end #3.