fix typos
This commit is contained in:
+2
-2
@@ -479,7 +479,7 @@ Cross-compiler pre-built binary downloads:
|
|||||||
CROSS_TO_MSDOS=1
|
CROSS_TO_MSDOS=1
|
||||||
on your make command line.
|
on your make command line.
|
||||||
|
|
||||||
Note: Both the fetch-cross-compiler.sh script and and the msdos
|
Note: Both the fetch-cross-compiler.sh script and the msdos
|
||||||
cross-compile and package procedures require unzip and zip to be available
|
cross-compile and package procedures require unzip and zip to be available
|
||||||
on your host build system.
|
on your host build system.
|
||||||
|
|
||||||
@@ -554,7 +554,7 @@ Cross-compiler url: https://github.com/bebbo/amiga-gcc
|
|||||||
make update
|
make update
|
||||||
|
|
||||||
[Note that you may have to take ownership of the files in the bebbo
|
[Note that you may have to take ownership of the files in the bebbo
|
||||||
repo via chown before succesfully carrying out the next steps]
|
repo via chown before successfully carrying out the next steps]
|
||||||
|
|
||||||
make clean
|
make clean
|
||||||
make clean-prefix
|
make clean-prefix
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ Others are more elaborate:
|
|||||||
* This is
|
* This is
|
||||||
* another comment.
|
* another comment.
|
||||||
*/
|
*/
|
||||||
This style is usually used with sentence punctation, particularly if they
|
This style is usually used with sentence punctuation, particularly if they
|
||||||
contain more than one sentence.
|
contain more than one sentence.
|
||||||
|
|
||||||
End-of-line comments which need to span lines
|
End-of-line comments which need to span lines
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ if($ARGV[0] eq "--clean"){
|
|||||||
}
|
}
|
||||||
|
|
||||||
# XXX for now, there isn't any - if we get called, we subst. No options for now.
|
# XXX for now, there isn't any - if we get called, we subst. No options for now.
|
||||||
# get relevent config info
|
# get relevant config info
|
||||||
#XXX
|
#XXX
|
||||||
#git check-attr -a $ARGV[1]
|
#git check-attr -a $ARGV[1]
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -306,7 +306,7 @@ nhgitset.pl installs NetHack-specific setup after a C<git clone> (or after
|
|||||||
changes to the desired configuration, which are installed by re-running
|
changes to the desired configuration, which are installed by re-running
|
||||||
nhgitset.pl).
|
nhgitset.pl).
|
||||||
|
|
||||||
The follwing options are available:
|
The following options are available:
|
||||||
|
|
||||||
B<-f> Force. Do not use this unless the program requests it.
|
B<-f> Force. Do not use this unless the program requests it.
|
||||||
|
|
||||||
|
|||||||
@@ -242,13 +242,13 @@ interpreter during game execution.
|
|||||||
|
|
||||||
There is no longer a build-time level compiler. Instead, the level
|
There is no longer a build-time level compiler. Instead, the level
|
||||||
descriptions have been converted to Lua and are inserted into the game package
|
descriptions have been converted to Lua and are inserted into the game package
|
||||||
for processing by the embeded Lua interpreter during game execution.
|
for processing by the embedded Lua interpreter during game execution.
|
||||||
|
|
||||||
5.3 Dungeon Compiler
|
5.3 Dungeon Compiler
|
||||||
|
|
||||||
There is no longer a build-time dungeon compiler. Instead, the dungeon
|
There is no longer a build-time dungeon compiler. Instead, the dungeon
|
||||||
description has been converted to Lua and is inserted into the game package for
|
description has been converted to Lua and is inserted into the game package for
|
||||||
processing by the embeded Lua interpreter during game execution.
|
processing by the embedded Lua interpreter during game execution.
|
||||||
|
|
||||||
|
|
||||||
5.4 Run-time Options
|
5.4 Run-time Options
|
||||||
|
|||||||
+1
-1
@@ -43,7 +43,7 @@ des.map([[
|
|||||||
local streets = selection.floodfill(0,12)
|
local streets = selection.floodfill(0,12)
|
||||||
|
|
||||||
-- The down stairs is at one of the 4 "exits". The others are mimics,
|
-- The down stairs is at one of the 4 "exits". The others are mimics,
|
||||||
-- mimicing stairwells.
|
-- mimicking stairwells.
|
||||||
local place = { {33,0}, {0,12}, {25,20}, {75,05} }
|
local place = { {33,0}, {0,12}, {25,20}, {75,05} }
|
||||||
shuffle(place)
|
shuffle(place)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -21,7 +21,7 @@
|
|||||||
# prevents "orc mummy" and "orc zombie" from matching.
|
# prevents "orc mummy" and "orc zombie" from matching.
|
||||||
#
|
#
|
||||||
# A citation of "[]" indicates arbitrary text written by developers or
|
# A citation of "[]" indicates arbitrary text written by developers or
|
||||||
# contributers. Falling off the end of an entry without any citation
|
# contributors. Falling off the end of an entry without any citation
|
||||||
# implies "[]".
|
# implies "[]".
|
||||||
#
|
#
|
||||||
# Some entries include blank lines to separate paragraphs but many don't.
|
# Some entries include blank lines to separate paragraphs but many don't.
|
||||||
@@ -5300,7 +5300,7 @@ statue*
|
|||||||
# but players are unlikely to picture anything like that when they find one
|
# but players are unlikely to picture anything like that when they find one
|
||||||
stethoscope
|
stethoscope
|
||||||
Tool used to listen closely to adjacent sound, typically by
|
Tool used to listen closely to adjacent sound, typically by
|
||||||
a medical practioner to listen to a patient's heart, lungs,
|
a medical practitioner to listen to a patient's heart, lungs,
|
||||||
or pulse.
|
or pulse.
|
||||||
# joke suggested by stethoscope; a zillion things could be added but these
|
# joke suggested by stethoscope; a zillion things could be added but these
|
||||||
# ought to suffice
|
# ought to suffice
|
||||||
|
|||||||
+1
-1
@@ -55,7 +55,7 @@ if percent(50) then
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- uncontroled arrival (via trap door, level teleport) will be in the central
|
-- uncontrolled arrival (via trap door, level teleport) will be in the central
|
||||||
-- portion of level to prevent ending up stuck in the treasure area, whether
|
-- portion of level to prevent ending up stuck in the treasure area, whether
|
||||||
-- arriving from above or below (despite this being bottom of Mines branch,
|
-- arriving from above or below (despite this being bottom of Mines branch,
|
||||||
-- hero might arrive from below by invoking Wiz role's Eye of the Aethiopica)
|
-- hero might arrive from below by invoking Wiz role's Eye of the Aethiopica)
|
||||||
|
|||||||
+2
-2
@@ -902,7 +902,7 @@ with good conscience.
|
|||||||
"\"I will impale your head on my caduceus for all to see.\"",
|
"\"I will impale your head on my caduceus for all to see.\"",
|
||||||
"\"There is no materia medica in your sack which will cure you of me!\"",
|
"\"There is no materia medica in your sack which will cure you of me!\"",
|
||||||
"\"Do not fight too hard, I want your soul strong, not weakened!\"",
|
"\"Do not fight too hard, I want your soul strong, not weakened!\"",
|
||||||
"\"You should have stopped studying at vetenary.\"",
|
"\"You should have stopped studying at veterinary.\"",
|
||||||
},
|
},
|
||||||
encourage = {
|
encourage = {
|
||||||
"\"Remember, %p, to always wash your hands before operating.\"",
|
"\"Remember, %p, to always wash your hands before operating.\"",
|
||||||
@@ -2568,7 +2568,7 @@ the handiwork of %ns henchlings everywhere.]],
|
|||||||
%o from me!
|
%o from me!
|
||||||
|
|
||||||
"It only proves how desperate he has become that he sends %ra to
|
"It only proves how desperate he has become that he sends %ra to
|
||||||
try and defeat me. When this day is over, I will have you enslaved
|
try to defeat me. When this day is over, I will have you enslaved
|
||||||
in the mines where you will rue the day that you ever entered
|
in the mines where you will rue the day that you ever entered
|
||||||
%i."]],
|
%i."]],
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
@@ -348,7 +348,7 @@ themerooms = {
|
|||||||
});
|
});
|
||||||
end,
|
end,
|
||||||
|
|
||||||
-- Random dungeon feature in the middle of a odd-sized room
|
-- Random dungeon feature in the middle of an odd-sized room
|
||||||
function()
|
function()
|
||||||
local wid = 3 + (nh.rn2(3) * 2);
|
local wid = 3 + (nh.rn2(3) * 2);
|
||||||
local hei = 3 + (nh.rn2(3) * 2);
|
local hei = 3 + (nh.rn2(3) * 2);
|
||||||
|
|||||||
+6
-6
@@ -1817,7 +1817,7 @@ yards away rather than the innocent bystander at whom it was aimed.
|
|||||||
%e passage
|
%e passage
|
||||||
# p. 26 (first and second paragraphs are actually end of one section,
|
# p. 26 (first and second paragraphs are actually end of one section,
|
||||||
# start of next one; first 'Thunder rolled...' had three dot
|
# start of next one; first 'Thunder rolled...' had three dot
|
||||||
# ellipsis, second has four, elipsis plus final period--
|
# ellipsis, second has four, ellipsis plus final period--
|
||||||
# first changed to four here so that they match)
|
# first changed to four here so that they match)
|
||||||
%passage 3
|
%passage 3
|
||||||
Thunder rolled....
|
Thunder rolled....
|
||||||
@@ -4198,7 +4198,7 @@ Cheese with Chunky Pickle, I think."
|
|||||||
|
|
||||||
THEY DO SUCH MARVELOUS THINGS WITH SANDWICHES THESE DAYS.
|
THEY DO SUCH MARVELOUS THINGS WITH SANDWICHES THESE DAYS.
|
||||||
|
|
||||||
"Oh... and Bacon Surpise."
|
"Oh... and Bacon Surprise."
|
||||||
|
|
||||||
REALLY? WHAT IS SO SURPRISING ABOUT BACON?
|
REALLY? WHAT IS SO SURPRISING ABOUT BACON?
|
||||||
|
|
||||||
@@ -5789,7 +5789,7 @@ saw what happened to the others! /You/ got your fingers burned!."
|
|||||||
#
|
#
|
||||||
# 4 new passages added for 3.7
|
# 4 new passages added for 3.7
|
||||||
#
|
#
|
||||||
# p. 24 (elipsis occurs at start of paragraph; Quite Reverend Oats has opened
|
# p. 24 (ellipsis occurs at start of paragraph; Quite Reverend Oats has opened
|
||||||
# /The Book of Om/ at random and is reading the passage found there)
|
# /The Book of Om/ at random and is reading the passage found there)
|
||||||
%passage 9
|
%passage 9
|
||||||
"... silence is an answer that begs three more questions. Seek and you will
|
"... silence is an answer that begs three more questions. Seek and you will
|
||||||
@@ -6934,7 +6934,7 @@ merely didn't know where everything else was.
|
|||||||
|
|
||||||
[The Amazing Maurice and His Educated Rodents, by Terry Pratchett]
|
[The Amazing Maurice and His Educated Rodents, by Terry Pratchett]
|
||||||
%e passage
|
%e passage
|
||||||
# pp. 298-300 (Keith has challanged the professional rat piper and offered
|
# pp. 298-300 (Keith has challenged the professional rat piper and offered
|
||||||
# to rid the town of rats for a much lower price; Sardines is
|
# to rid the town of rats for a much lower price; Sardines is
|
||||||
# one of the Educated Rodents, known for dancing all the time;
|
# one of the Educated Rodents, known for dancing all the time;
|
||||||
# "hwun/two/three/four/" is run-together "one /two/ three /four/";
|
# "hwun/two/three/four/" is run-together "one /two/ three /four/";
|
||||||
@@ -7512,7 +7512,7 @@ very thought of written-down things.
|
|||||||
|
|
||||||
"They think written words are even more powerful," whispered the toad.
|
"They think written words are even more powerful," whispered the toad.
|
||||||
"They think all writing is magic. Words worry them. See their swords?
|
"They think all writing is magic. Words worry them. See their swords?
|
||||||
They glow in the presense of lawyers."
|
They glow in the presence of lawyers."
|
||||||
|
|
||||||
"All /right/," said Tiffany. "We're getting somewhere. I promise not
|
"All /right/," said Tiffany. "We're getting somewhere. I promise not
|
||||||
to write his name down. [...]"
|
to write his name down. [...]"
|
||||||
@@ -7788,7 +7788,7 @@ Cradle and the House and the Flock and the Three Old Ladies, One With a
|
|||||||
Squint, Carrying the Bucket of Fish to Market When They Meet the Donkey,
|
Squint, Carrying the Bucket of Fish to Market When They Meet the Donkey,
|
||||||
although you need two people for that one, and I only ever did it once,
|
although you need two people for that one, and I only ever did it once,
|
||||||
and Betsy Tupper scratched her nose at the wrong moment and I had to get
|
and Betsy Tupper scratched her nose at the wrong moment and I had to get
|
||||||
some scissors to to cut her loose..."
|
some scissors to cut her loose..."
|
||||||
|
|
||||||
[A Hat Full of Sky, by Terry Pratchett]
|
[A Hat Full of Sky, by Terry Pratchett]
|
||||||
%e passage
|
%e passage
|
||||||
|
|||||||
+4
-4
@@ -3651,7 +3651,7 @@ See the \(lqConfiguring Menu Colors\(rq section.
|
|||||||
Change the way messages are shown in the top status line.
|
Change the way messages are shown in the top status line.
|
||||||
See the \(lqConfiguring Message Types\(rq section.
|
See the \(lqConfiguring Message Types\(rq section.
|
||||||
.lp ROGUESYMBOLS
|
.lp ROGUESYMBOLS
|
||||||
Custom symbols for for the rogue level's symbol set.
|
Custom symbols for the rogue level's symbol set.
|
||||||
See \fISYMBOLS\fP below.
|
See \fISYMBOLS\fP below.
|
||||||
.lp SOUND
|
.lp SOUND
|
||||||
Define a sound mapping.
|
Define a sound mapping.
|
||||||
@@ -3906,7 +3906,7 @@ picked up, even if
|
|||||||
.op autopickup
|
.op autopickup
|
||||||
is also on and they are in
|
is also on and they are in
|
||||||
.op pickup_types
|
.op pickup_types
|
||||||
or match a positive autopickup exception (defualt on). Persistent.
|
or match a positive autopickup exception (default on). Persistent.
|
||||||
.lp disclose
|
.lp disclose
|
||||||
Controls what information the program reveals when the game ends.
|
Controls what information the program reveals when the game ends.
|
||||||
Value is a space separated list of prompting/category pairs
|
Value is a space separated list of prompting/category pairs
|
||||||
@@ -4344,7 +4344,7 @@ To remove an entry that has been previously set without removing others,
|
|||||||
precede the first entry in the list with a minus sign,
|
precede the first entry in the list with a minus sign,
|
||||||
\f(CRparanoid_confirmation:-swim\fP.
|
\f(CRparanoid_confirmation:-swim\fP.
|
||||||
To both add some new entries and remove some old ones, you can use
|
To both add some new entries and remove some old ones, you can use
|
||||||
mulitple \fIparanoid_confirmation\fP option settings, or you can
|
multiple \fIparanoid_confirmation\fP option settings, or you can
|
||||||
use the \(oq\f(CR+\fP\(cq form and list entries to be added by their name
|
use the \(oq\f(CR+\fP\(cq form and list entries to be added by their name
|
||||||
and entries to be removed by \(oq\f(CR!\fP\(cq and name.
|
and entries to be removed by \(oq\f(CR!\fP\(cq and name.
|
||||||
The positive (no \(oq!\(cq) and negative (with \(oq!\(cq) entries
|
The positive (no \(oq!\(cq) and negative (with \(oq!\(cq) entries
|
||||||
@@ -4866,7 +4866,7 @@ If NetHack can, it should use this size font for the status window.
|
|||||||
.lp font_size_text
|
.lp font_size_text
|
||||||
If NetHack can, it should use this size font for text windows.
|
If NetHack can, it should use this size font for text windows.
|
||||||
.lp fullscreen
|
.lp fullscreen
|
||||||
If NetHack can, it should try and display on the entire screen rather than
|
If NetHack can, it should try to display on the entire screen rather than
|
||||||
in a window.
|
in a window.
|
||||||
.lp "guicolor "
|
.lp "guicolor "
|
||||||
Use color text and/or highlighting attributes when displaying some
|
Use color text and/or highlighting attributes when displaying some
|
||||||
|
|||||||
+4
-4
@@ -3827,7 +3827,7 @@ On Windows, the name is \mbox{``.nethackrc''} location in the folder
|
|||||||
The file may not exist,
|
The file may not exist,
|
||||||
but it is a normal ASCII text file and can be created with any
|
but it is a normal ASCII text file and can be created with any
|
||||||
text editor.
|
text editor.
|
||||||
After runing {\it NetHack\/} for the first time, you should find a default
|
After running {\it NetHack\/} for the first time, you should find a default
|
||||||
template for ths configuration file named \mbox{``.nethackrc.template''} in
|
template for ths configuration file named \mbox{``.nethackrc.template''} in
|
||||||
\mbox{{``\%USERPROFILE\%\textbackslash NetHack\textbackslash''}}.
|
\mbox{{``\%USERPROFILE\%\textbackslash NetHack\textbackslash''}}.
|
||||||
If you have not created the configuration file, {\it NetHack\/} will create
|
If you have not created the configuration file, {\it NetHack\/} will create
|
||||||
@@ -3985,7 +3985,7 @@ Change the way messages are shown in the top status line.
|
|||||||
See the ``Configuring Message Types`` section.
|
See the ``Configuring Message Types`` section.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\bb{ROGUESYMBOLS}]
|
\item[\bb{ROGUESYMBOLS}]
|
||||||
Custom symbols for for the rogue level's symbol set.
|
Custom symbols for the rogue level's symbol set.
|
||||||
See {\it SYMBOLS} below.
|
See {\it SYMBOLS} below.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\bb{SOUND}]
|
\item[\bb{SOUND}]
|
||||||
@@ -4767,7 +4767,7 @@ To remove an entry that has been previously set without removing others,
|
|||||||
precede the first entry in the list with a minus sign,
|
precede the first entry in the list with a minus sign,
|
||||||
``{\it paranoid\verb+_+confirmation:-swim\/}.
|
``{\it paranoid\verb+_+confirmation:-swim\/}.
|
||||||
To both add some new entries and remove some old ones, you can use
|
To both add some new entries and remove some old ones, you can use
|
||||||
mulitple {\it paranoid\verb+_+confirmation\/} option settings, or you can
|
multiple {\it paranoid\verb+_+confirmation\/} option settings, or you can
|
||||||
use the `{\tt \verb|+|}' form and list entries to be added by their name
|
use the `{\tt \verb|+|}' form and list entries to be added by their name
|
||||||
and entries to be removed by `{\tt !}' and name.
|
and entries to be removed by `{\tt !}' and name.
|
||||||
The positive (no `!') and negative (with `!') entries
|
The positive (no `!') and negative (with `!') entries
|
||||||
@@ -5358,7 +5358,7 @@ If {\it NetHack\/} can, it should use this size font for the status window.
|
|||||||
If {\it NetHack\/} can, it should use this size font for text windows.
|
If {\it NetHack\/} can, it should use this size font for text windows.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\ib{fullscreen}]
|
\item[\ib{fullscreen}]
|
||||||
If {\it NetHack\/} can, it should try and display on the entire screen rather than in a window.
|
If {\it NetHack\/} can, it should try to display on the entire screen rather than in a window.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\ib{guicolor}]
|
\item[\ib{guicolor}]
|
||||||
Use color text and/or highlighting attributes when displaying some
|
Use color text and/or highlighting attributes when displaying some
|
||||||
|
|||||||
+3
-3
@@ -4119,7 +4119,7 @@
|
|||||||
dropped_nopick
|
dropped_nopick
|
||||||
If this option is on, items you dropped will not be automatically
|
If this option is on, items you dropped will not be automatically
|
||||||
picked up, even if autopickup is also on and they are in
|
picked up, even if autopickup is also on and they are in
|
||||||
pickup_types or match a positive autopickup exception (defualt on).
|
pickup_types or match a positive autopickup exception (default on).
|
||||||
Persistent.
|
Persistent.
|
||||||
|
|
||||||
disclose
|
disclose
|
||||||
@@ -4603,7 +4603,7 @@
|
|||||||
tack Remove. To remove an entry that has been previously set with-
|
tack Remove. To remove an entry that has been previously set with-
|
||||||
out removing others, precede the first entry in the list with a mi-
|
out removing others, precede the first entry in the list with a mi-
|
||||||
nus sign, paranoid_confirmation:-swim. To both add some new entries
|
nus sign, paranoid_confirmation:-swim. To both add some new entries
|
||||||
and remove some old ones, you can use mulitple paranoid_confirmation
|
and remove some old ones, you can use multiple paranoid_confirmation
|
||||||
option settings, or you can use the `+' form and list entries to be
|
option settings, or you can use the `+' form and list entries to be
|
||||||
added by their name and entries to be removed by `!' and name. The
|
added by their name and entries to be removed by `!' and name. The
|
||||||
positive (no `!') and negative (with `!') entries can be intermixed.
|
positive (no `!') and negative (with `!') entries can be intermixed.
|
||||||
@@ -5182,7 +5182,7 @@
|
|||||||
If NetHack can, it should use this size font for text windows.
|
If NetHack can, it should use this size font for text windows.
|
||||||
|
|
||||||
fullscreen
|
fullscreen
|
||||||
If NetHack can, it should try and display on the entire screen
|
If NetHack can, it should try to display on the entire screen
|
||||||
rather than in a window.
|
rather than in a window.
|
||||||
|
|
||||||
guicolor
|
guicolor
|
||||||
|
|||||||
+1
-1
@@ -123,7 +123,7 @@
|
|||||||
# Objects will try to keep their inventory letters
|
# Objects will try to keep their inventory letters
|
||||||
#OPTIONS=fixinv
|
#OPTIONS=fixinv
|
||||||
|
|
||||||
# Try and display on the entire screen rather than in a window.
|
# Try to display on the entire screen rather than in a window.
|
||||||
#OPTIONS=fullscreen
|
#OPTIONS=fullscreen
|
||||||
|
|
||||||
# If more information is available for an object looked at with
|
# If more information is available for an object looked at with
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ General Fixes and Modified Features
|
|||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-X.X.X Problems that Were Exposed Via git Respository
|
Fixes to Post-X.X.X Problems that Were Exposed Via git Repository
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -880,7 +880,7 @@ Example:
|
|||||||
Create a room region, which can be irregular; use the boundary <<_map_characters,map character>> to restrict the floodfilled area.
|
Create a room region, which can be irregular; use the boundary <<_map_characters,map character>> to restrict the floodfilled area.
|
||||||
|
|
||||||
If using the first form with a selection and "lit", the lit area will extend
|
If using the first form with a selection and "lit", the lit area will extend
|
||||||
outward 1 space from the selection to attempt to accomodate adjacent walls,
|
outward 1 space from the selection to attempt to accommodate adjacent walls,
|
||||||
regardless of whether they are actually walls or not. If using "unlit", this
|
regardless of whether they are actually walls or not. If using "unlit", this
|
||||||
will not happen.
|
will not happen.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -395,7 +395,7 @@ hexadecimal, then exit.
|
|||||||
can be used to cause NetHack to show where it is expecting
|
can be used to cause NetHack to show where it is expecting
|
||||||
to find various files.
|
to find various files.
|
||||||
Among other things it shows the path to and name for the player's
|
Among other things it shows the path to and name for the player's
|
||||||
run-time configuration file, a text file which can be editted to
|
run-time configuration file, a text file which can be edited to
|
||||||
customize aspects of how the game operates.
|
customize aspects of how the game operates.
|
||||||
.PP
|
.PP
|
||||||
.BR \-\-usage " or " \-\-help
|
.BR \-\-usage " or " \-\-help
|
||||||
|
|||||||
+1
-1
@@ -162,7 +162,7 @@ DESCRIPTION
|
|||||||
--showpaths can be used to cause NetHack to show where it is expecting
|
--showpaths can be used to cause NetHack to show where it is expecting
|
||||||
to find various files. Among other things it shows the path to and
|
to find various files. Among other things it shows the path to and
|
||||||
name for the player's run-time configuration file, a text file which
|
name for the player's run-time configuration file, a text file which
|
||||||
can be editted to customize aspects of how the game operates.
|
can be edited to customize aspects of how the game operates.
|
||||||
|
|
||||||
--usage or --help will display information similar to this manual page,
|
--usage or --help will display information similar to this manual page,
|
||||||
then exit. Use `nethack --usage | more' to read it a page at a time.
|
then exit. Use `nethack --usage | more' to read it a page at a time.
|
||||||
|
|||||||
+1
-1
@@ -100,7 +100,7 @@ and the optfn_xxxx() function is expected to react and set the option
|
|||||||
based on the string values that parseoptions() passes to it.
|
based on the string values that parseoptions() passes to it.
|
||||||
|
|
||||||
req get_val is passed a buffer from its caller that the optfn_xxxx() is
|
req get_val is passed a buffer from its caller that the optfn_xxxx() is
|
||||||
expected to fill with the current value of the opton.
|
expected to fill with the current value of the option.
|
||||||
|
|
||||||
req do_handler is called during doset() operations processing in response
|
req do_handler is called during doset() operations processing in response
|
||||||
to player selections, most likely from the 'O' option-setting menu. The
|
to player selections, most likely from the 'O' option-setting menu. The
|
||||||
|
|||||||
+1
-1
@@ -282,7 +282,7 @@ gc.chosen_soundlib
|
|||||||
ga.active_soundlib
|
ga.active_soundlib
|
||||||
a usersound mappings reference
|
a usersound mappings reference
|
||||||
|
|
||||||
iflags.sounds is the master on/off swith to control whether any audio
|
iflags.sounds is the master on/off switch to control whether any audio
|
||||||
is produced by the soundlib interface
|
is produced by the soundlib interface
|
||||||
|
|
||||||
iflags.voice is the master on/off switch for voices produced by
|
iflags.voice is the master on/off switch for voices produced by
|
||||||
|
|||||||
+1
-1
@@ -50,7 +50,7 @@
|
|||||||
.\" Version 1.6 March 15, 1989 Matt.Bishop@dartmouth.edu
|
.\" Version 1.6 March 15, 1989 Matt.Bishop@dartmouth.edu
|
||||||
.\" ..!bear.dartmouth.edu!bishop
|
.\" ..!bear.dartmouth.edu!bishop
|
||||||
.\" Fixed a bug in footnote handling (again, sigh ...) This one
|
.\" Fixed a bug in footnote handling (again, sigh ...) This one
|
||||||
.\" occurred when the the "fo" trap position was reset just beneath
|
.\" occurred when the "fo" trap position was reset just beneath
|
||||||
.\" the current line; the footnote overflow trap would kick in and
|
.\" the current line; the footnote overflow trap would kick in and
|
||||||
.\" never be closed.
|
.\" never be closed.
|
||||||
.\"
|
.\"
|
||||||
|
|||||||
+1
-1
@@ -470,7 +470,7 @@ status_update(int fldindex, genericptr_t ptr, int chg, int percentage, \
|
|||||||
windowport that it should output all changes received
|
windowport that it should output all changes received
|
||||||
to this point. It marks the end of a bot() cycle.
|
to this point. It marks the end of a bot() cycle.
|
||||||
-- fldindex could also be BL_RESET (-2), which is not really
|
-- fldindex could also be BL_RESET (-2), which is not really
|
||||||
a field index, but is a special advisory to to tell the
|
a field index, but is a special advisory to tell the
|
||||||
windowport that it should redisplay all its status fields,
|
windowport that it should redisplay all its status fields,
|
||||||
even if no changes have been presented to it.
|
even if no changes have been presented to it.
|
||||||
-- ptr is usually a "char *", unless fldindex is BL_CONDITION.
|
-- ptr is usually a "char *", unless fldindex is BL_CONDITION.
|
||||||
|
|||||||
+2
-2
@@ -690,7 +690,7 @@ typedef unsigned char uchar;
|
|||||||
|
|
||||||
/* #define DUMPLOG */ /* End-of-game dump logs */
|
/* #define DUMPLOG */ /* End-of-game dump logs */
|
||||||
|
|
||||||
#define USE_ISAAC64 /* Use cross-plattform, bundled RNG */
|
#define USE_ISAAC64 /* Use cross-platform, bundled RNG */
|
||||||
|
|
||||||
/* TEMPORARY - MAKE UNCONDITIONAL BEFORE RELEASE */
|
/* TEMPORARY - MAKE UNCONDITIONAL BEFORE RELEASE */
|
||||||
/* undef this to check if sandbox breaks something */
|
/* undef this to check if sandbox breaks something */
|
||||||
@@ -716,7 +716,7 @@ typedef unsigned char uchar;
|
|||||||
#include "global.h" /* Define everything else according to choices above */
|
#include "global.h" /* Define everything else according to choices above */
|
||||||
|
|
||||||
/* Place the following after #include [platform]conf.h in global.h so that
|
/* Place the following after #include [platform]conf.h in global.h so that
|
||||||
overrides are possible in there, for things like unix-specfic file
|
overrides are possible in there, for things like unix-specific file
|
||||||
paths. */
|
paths. */
|
||||||
|
|
||||||
#ifdef LIVELOG
|
#ifdef LIVELOG
|
||||||
|
|||||||
+1
-1
@@ -747,7 +747,7 @@ struct instance_globals_o {
|
|||||||
boolean opt_need_promptstyle;
|
boolean opt_need_promptstyle;
|
||||||
|
|
||||||
/* pickup.c */
|
/* pickup.c */
|
||||||
int oldcap; /* last encumberance */
|
int oldcap; /* last encumbrance */
|
||||||
|
|
||||||
/* restore.c */
|
/* restore.c */
|
||||||
struct fruit *oldfruit;
|
struct fruit *oldfruit;
|
||||||
|
|||||||
+2
-2
@@ -25,7 +25,7 @@
|
|||||||
* sensemon()
|
* sensemon()
|
||||||
*
|
*
|
||||||
* Returns true if the hero can sense the given monster. This includes
|
* Returns true if the hero can sense the given monster. This includes
|
||||||
* monsters that are hiding or mimicing other monsters.
|
* monsters that are hiding or mimicking other monsters.
|
||||||
*
|
*
|
||||||
* [3.7] Note: the map doesn't display any monsters when hero is swallowed
|
* [3.7] Note: the map doesn't display any monsters when hero is swallowed
|
||||||
* (or display non-adjacent, non-submerged ones when hero is underwater),
|
* (or display non-adjacent, non-submerged ones when hero is underwater),
|
||||||
@@ -656,7 +656,7 @@ enum glyph_offsets {
|
|||||||
(Ugender))
|
(Ugender))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Change the given glyph into it's given type. Note:
|
* Change the given glyph into its given type. Note:
|
||||||
* 1) Pets, detected, and ridden monsters are animals and are converted
|
* 1) Pets, detected, and ridden monsters are animals and are converted
|
||||||
* to the proper monster number.
|
* to the proper monster number.
|
||||||
* 2) Bodies are all mapped into the generic CORPSE object
|
* 2) Bodies are all mapped into the generic CORPSE object
|
||||||
|
|||||||
+1
-1
@@ -517,7 +517,7 @@ typedef struct color_and_attr {
|
|||||||
#define LL_DIVINEGIFT 0x0008L /* Sacrifice gifts, crowning */
|
#define LL_DIVINEGIFT 0x0008L /* Sacrifice gifts, crowning */
|
||||||
#define LL_LIFESAVE 0x0010L /* Use up amulet of lifesaving */
|
#define LL_LIFESAVE 0x0010L /* Use up amulet of lifesaving */
|
||||||
#define LL_CONDUCT 0x0020L /* Break conduct - not reported early-game */
|
#define LL_CONDUCT 0x0020L /* Break conduct - not reported early-game */
|
||||||
#define LL_ARTIFACT 0x0040L /* bestowed, found, or manifactured */
|
#define LL_ARTIFACT 0x0040L /* bestowed, found, or manufactured */
|
||||||
#define LL_GENOCIDE 0x0080L /* Logging of genocides */
|
#define LL_GENOCIDE 0x0080L /* Logging of genocides */
|
||||||
#define LL_KILLEDPET 0x0100L /* Killed a tame monster */
|
#define LL_KILLEDPET 0x0100L /* Killed a tame monster */
|
||||||
#define LL_ALIGNMENT 0x0200L /* changed alignment, temporary or permanent */
|
#define LL_ALIGNMENT 0x0200L /* changed alignment, temporary or permanent */
|
||||||
|
|||||||
+7
-7
@@ -61,7 +61,7 @@
|
|||||||
/* bitmask flags for corpse_xname();
|
/* bitmask flags for corpse_xname();
|
||||||
PFX_THE takes precedence over ARTICLE, NO_PFX takes precedence over both */
|
PFX_THE takes precedence over ARTICLE, NO_PFX takes precedence over both */
|
||||||
#define CXN_NORMAL 0 /* no special handling */
|
#define CXN_NORMAL 0 /* no special handling */
|
||||||
#define CXN_SINGULAR 1 /* override quantity if greather than 1 */
|
#define CXN_SINGULAR 1 /* override quantity if greater than 1 */
|
||||||
#define CXN_NO_PFX 2 /* suppress "the" from "the Unique Monst */
|
#define CXN_NO_PFX 2 /* suppress "the" from "the Unique Monst */
|
||||||
#define CXN_PFX_THE 4 /* prefix with "the " (unless pname) */
|
#define CXN_PFX_THE 4 /* prefix with "the " (unless pname) */
|
||||||
#define CXN_ARTICLE 8 /* include a/an/the prefix */
|
#define CXN_ARTICLE 8 /* include a/an/the prefix */
|
||||||
@@ -682,7 +682,7 @@ enum optset_restrictions {
|
|||||||
set_viaprog = 2, /* may be set via extern program, not seen in game */
|
set_viaprog = 2, /* may be set via extern program, not seen in game */
|
||||||
set_gameview = 3, /* may be set via extern program, displayed in game */
|
set_gameview = 3, /* may be set via extern program, displayed in game */
|
||||||
set_in_game = 4, /* may be set via extern program or set in the game */
|
set_in_game = 4, /* may be set via extern program or set in the game */
|
||||||
set_wizonly = 5, /* may be set set in the game if wizmode */
|
set_wizonly = 5, /* may be set in the game if wizmode */
|
||||||
set_wiznofuz = 6, /* wizard-mode only, but not by fuzzer */
|
set_wiznofuz = 6, /* wizard-mode only, but not by fuzzer */
|
||||||
set_hidden = 7 /* placeholder for prefixed entries, never show it */
|
set_hidden = 7 /* placeholder for prefixed entries, never show it */
|
||||||
};
|
};
|
||||||
@@ -769,9 +769,9 @@ struct sinfo {
|
|||||||
int saving; /* creating a save file */
|
int saving; /* creating a save file */
|
||||||
int restoring; /* reloading a save file */
|
int restoring; /* reloading a save file */
|
||||||
int in_moveloop; /* normal gameplay in progress */
|
int in_moveloop; /* normal gameplay in progress */
|
||||||
int in_impossible; /* reportig a warning */
|
int in_impossible; /* reporting a warning */
|
||||||
int in_docrt; /* in docrt(): redrawing the whole screen */
|
int in_docrt; /* in docrt(): redrawing the whole screen */
|
||||||
int in_self_recover; /* processsing orphaned level files */
|
int in_self_recover; /* processing orphaned level files */
|
||||||
int in_checkpoint; /* saving insurance checkpoint */
|
int in_checkpoint; /* saving insurance checkpoint */
|
||||||
int in_parseoptions; /* in parseoptions */
|
int in_parseoptions; /* in parseoptions */
|
||||||
int in_role_selection; /* role/race/&c selection menus in progress */
|
int in_role_selection; /* role/race/&c selection menus in progress */
|
||||||
@@ -786,7 +786,7 @@ struct sinfo {
|
|||||||
used in the curses interface to avoid arrow keys when user is doing
|
used in the curses interface to avoid arrow keys when user is doing
|
||||||
something other than entering a command or direction and in the Qt
|
something other than entering a command or direction and in the Qt
|
||||||
interface to suppress menu commands in similar conditions;
|
interface to suppress menu commands in similar conditions;
|
||||||
readchar() alrways resets it to 'otherInp' prior to returning */
|
readchar() always resets it to 'otherInp' prior to returning */
|
||||||
int input_state; /* whether next key pressed will be entering a command */
|
int input_state; /* whether next key pressed will be entering a command */
|
||||||
#ifdef TTY_GRAPHICS
|
#ifdef TTY_GRAPHICS
|
||||||
/* resize_pending only matters when handling a SIGWINCH signal for tty;
|
/* resize_pending only matters when handling a SIGWINCH signal for tty;
|
||||||
@@ -926,7 +926,7 @@ typedef struct {
|
|||||||
long count; /* holds current line count for default style file,
|
long count; /* holds current line count for default style file,
|
||||||
field count for binary style */
|
field count for binary style */
|
||||||
boolean structlevel; /* traditional structure binary saves */
|
boolean structlevel; /* traditional structure binary saves */
|
||||||
boolean fieldlevel; /* fieldlevel saves saves each field individually */
|
boolean fieldlevel; /* fieldlevel saves each field individually */
|
||||||
boolean addinfo; /* if set, some additional context info from core */
|
boolean addinfo; /* if set, some additional context info from core */
|
||||||
boolean eof; /* place to mark eof reached */
|
boolean eof; /* place to mark eof reached */
|
||||||
boolean bendian; /* set to true if executing on big-endian machine */
|
boolean bendian; /* set to true if executing on big-endian machine */
|
||||||
@@ -1204,7 +1204,7 @@ typedef uint32_t mmflags_nht; /* makemon MM_ flags */
|
|||||||
#define ONAME_RANDOM 0x0080U /* something created an artifact randomly
|
#define ONAME_RANDOM 0x0080U /* something created an artifact randomly
|
||||||
* with mk_artifact() (mksboj or mk_player)
|
* with mk_artifact() (mksboj or mk_player)
|
||||||
* or m_initweap() (lawful Angel) */
|
* or m_initweap() (lawful Angel) */
|
||||||
/* flag congrolling potential livelog event of finding an artifact */
|
/* flag controlling potential livelog event of finding an artifact */
|
||||||
#define ONAME_KNOW_ARTI 0x0100U /* hero is already aware of this artifact */
|
#define ONAME_KNOW_ARTI 0x0100U /* hero is already aware of this artifact */
|
||||||
/* flag for suppressing perm_invent update when name gets assigned */
|
/* flag for suppressing perm_invent update when name gets assigned */
|
||||||
#define ONAME_SKIP_INVUPD 0x0200U /* don't call update_inventory() */
|
#define ONAME_SKIP_INVUPD 0x0200U /* don't call update_inventory() */
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
/* integer.h -- provide sized integer types
|
/* integer.h -- provide sized integer types
|
||||||
*
|
*
|
||||||
* We try to sort out a way to provide sized integer types
|
* We try to sort out a way to provide sized integer types
|
||||||
* in here. The strong preference is to try and let a
|
* in here. The strong preference is to try to let a
|
||||||
* compiler-supplied header file set up the types.
|
* compiler-supplied header file set up the types.
|
||||||
*
|
*
|
||||||
* If your compiler is C99 conforming and sets a value of
|
* If your compiler is C99 conforming and sets a value of
|
||||||
|
|||||||
+1
-1
@@ -161,7 +161,7 @@
|
|||||||
#define is_rider(ptr) \
|
#define is_rider(ptr) \
|
||||||
((ptr) == &mons[PM_DEATH] || (ptr) == &mons[PM_FAMINE] \
|
((ptr) == &mons[PM_DEATH] || (ptr) == &mons[PM_FAMINE] \
|
||||||
|| (ptr) == &mons[PM_PESTILENCE])
|
|| (ptr) == &mons[PM_PESTILENCE])
|
||||||
/* note: placeholder monsters are used for corposes of zombies and mummies;
|
/* note: placeholder monsters are used for corpses of zombies and mummies;
|
||||||
PM_DWARF and PM_GNOME are normal monsters, not placeholders */
|
PM_DWARF and PM_GNOME are normal monsters, not placeholders */
|
||||||
#define is_placeholder(ptr) \
|
#define is_placeholder(ptr) \
|
||||||
((ptr) == &mons[PM_ORC] || (ptr) == &mons[PM_GIANT] \
|
((ptr) == &mons[PM_ORC] || (ptr) == &mons[PM_GIANT] \
|
||||||
|
|||||||
+4
-4
@@ -37,10 +37,10 @@
|
|||||||
* then the value(s) can be plugged in here and monstr.c deleted.
|
* then the value(s) can be plugged in here and monstr.c deleted.
|
||||||
* [Note that some monsters might warrant manually calculated
|
* [Note that some monsters might warrant manually calculated
|
||||||
* difficulty, on a case by case basis, instead of blindly using
|
* difficulty, on a case by case basis, instead of blindly using
|
||||||
* the default value produced by makedefs. Or fix the algoritm
|
* the default value produced by makedefs. Or fix the algorithm
|
||||||
* used by makedefs to generate a more appropriate value....]
|
* used by makedefs to generate a more appropriate value....]
|
||||||
*
|
*
|
||||||
* TODO: difficulty is closely releated to level; its field ought
|
* TODO: difficulty is closely related to level; its field ought
|
||||||
* to be moved sooner in the permonst struct so that it can become
|
* to be moved sooner in the permonst struct so that it can become
|
||||||
* part of LVL() instead of remaining an orphan near the end.
|
* part of LVL() instead of remaining an orphan near the end.
|
||||||
*
|
*
|
||||||
@@ -3276,7 +3276,7 @@
|
|||||||
M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
|
M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
|
||||||
M2_HOSTILE, 0,
|
M2_HOSTILE, 0,
|
||||||
4, CLR_BROWN, BABY_CROCODILE),
|
4, CLR_BROWN, BABY_CROCODILE),
|
||||||
/* trivia: before monster corspes were implemented, "lizard corpse"
|
/* trivia: before monster corpses were implemented, "lizard corpse"
|
||||||
was a specific type of item */
|
was a specific type of item */
|
||||||
MON(NAM("lizard"), S_LIZARD,
|
MON(NAM("lizard"), S_LIZARD,
|
||||||
LVL(5, 6, 6, 10, 0), (G_GENO | 5),
|
LVL(5, 6, 6, 10, 0), (G_GENO | 5),
|
||||||
@@ -3797,7 +3797,7 @@
|
|||||||
M3_INFRAVISION | M3_INFRAVISIBLE,
|
M3_INFRAVISION | M3_INFRAVISIBLE,
|
||||||
7, HI_DOMESTIC, HIGH_ELF),
|
7, HI_DOMESTIC, HIGH_ELF),
|
||||||
#endif
|
#endif
|
||||||
/* attendants used to be lawful but have been changed to netural because
|
/* attendants used to be lawful but have been changed to neutral because
|
||||||
grow_up() promotes them to healer and the latter is always neutral */
|
grow_up() promotes them to healer and the latter is always neutral */
|
||||||
MON(NAM("attendant"), S_HUMAN,
|
MON(NAM("attendant"), S_HUMAN,
|
||||||
LVL(5, 12, 10, 10, 0), G_NOGEN,
|
LVL(5, 12, 10, 10, 0), G_NOGEN,
|
||||||
|
|||||||
+1
-1
@@ -66,7 +66,7 @@ struct objclass {
|
|||||||
Bitfield(oc_tough, 1); /* hard gems/rings */
|
Bitfield(oc_tough, 1); /* hard gems/rings */
|
||||||
|
|
||||||
Bitfield(oc_spare1, 6); /* padding to align oc_dir + oc_material;
|
Bitfield(oc_spare1, 6); /* padding to align oc_dir + oc_material;
|
||||||
* can be canabalized for other use;
|
* can be cannibalized for other use;
|
||||||
* aka 6 free bits */
|
* aka 6 free bits */
|
||||||
|
|
||||||
Bitfield(oc_dir, 3);
|
Bitfield(oc_dir, 3);
|
||||||
|
|||||||
+2
-2
@@ -1015,7 +1015,7 @@ OBJECT(OBJ("Bell of Opening", "silver bell"),
|
|||||||
FOOD_CLASS, prob, delay, wt, nutrition / 20 + 5, 0, 0, 0, 0, \
|
FOOD_CLASS, prob, delay, wt, nutrition / 20 + 5, 0, 0, 0, 0, \
|
||||||
nutrition, color, sn)
|
nutrition, color, sn)
|
||||||
/* All types of food (except tins & corpses) must have a delay of at least 1.
|
/* All types of food (except tins & corpses) must have a delay of at least 1.
|
||||||
* Delay on corpses is computed and is weight dependant.
|
* Delay on corpses is computed and is weight dependent.
|
||||||
* Domestic pets prefer tripe rations above all others.
|
* Domestic pets prefer tripe rations above all others.
|
||||||
* Fortune cookies can be read, using them up without ingesting them.
|
* Fortune cookies can be read, using them up without ingesting them.
|
||||||
* Carrots improve your vision.
|
* Carrots improve your vision.
|
||||||
@@ -1037,7 +1037,7 @@ FOOD("meat stick", 0, 1, 1, 0, FLESH, 5, CLR_BROWN,
|
|||||||
/* formerly "huge chunk of meat" */
|
/* formerly "huge chunk of meat" */
|
||||||
FOOD("enormous meatball", 0, 20,400, 0, FLESH,2000, CLR_BROWN,
|
FOOD("enormous meatball", 0, 20,400, 0, FLESH,2000, CLR_BROWN,
|
||||||
ENORMOUS_MEATBALL),
|
ENORMOUS_MEATBALL),
|
||||||
/* special case because it's not mergable */
|
/* special case because it's not mergeable */
|
||||||
OBJECT(OBJ("meat ring", NoDes),
|
OBJECT(OBJ("meat ring", NoDes),
|
||||||
BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FLESH),
|
BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FLESH),
|
||||||
0, FOOD_CLASS, 0, 1, 5, 1, 0, 0, 0, 0, 5, CLR_BROWN, MEAT_RING),
|
0, FOOD_CLASS, 0, 1, 5, 1, 0, 0, 0, 0, 5, CLR_BROWN, MEAT_RING),
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
* defined to force it back into effect
|
* defined to force it back into effect
|
||||||
* update_inventory() after leash goes slack
|
* update_inventory() after leash goes slack
|
||||||
* player assigned name for monsters, specific objects, or object types could be
|
* player assigned name for monsters, specific objects, or object types could be
|
||||||
longer than what was intented to be allowed; for 'curses', much longer
|
longer than what was intended to be allowed; for 'curses', much longer
|
||||||
* windows: added winflexbison to travis-ci configuration to permit full build of
|
* windows: added winflexbison to travis-ci configuration to permit full build of
|
||||||
* levcomp and dgncomp
|
* levcomp and dgncomp
|
||||||
* windows: a bad chdir specified in win/win32/dgnstuff.mak caused full build to
|
* windows: a bad chdir specified in win/win32/dgnstuff.mak caused full build to
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
* Fixed stale 'thrownobj' pointer for returning thrown aklys while engulfed
|
* Fixed stale 'thrownobj' pointer for returning thrown aklys while engulfed
|
||||||
* Fixed uarmh null pointer dereference if a helm of opposite alignment came
|
* Fixed uarmh null pointer dereference if a helm of opposite alignment came
|
||||||
* off due to being polymorphed
|
* off due to being polymorphed
|
||||||
* Fixed 'object lost' panic when attempting to crawl of of the water during
|
* Fixed 'object lost' panic when attempting to crawl out of the water during
|
||||||
* emergency disrobing/dropping
|
* emergency disrobing/dropping
|
||||||
* Running now stops when moving over engravings so you can tell where they are
|
* Running now stops when moving over engravings so you can tell where they are
|
||||||
* Fixed detection of unseen/secret doors which failed to find monsters hiding
|
* Fixed detection of unseen/secret doors which failed to find monsters hiding
|
||||||
|
|||||||
+2
-2
@@ -269,7 +269,7 @@ struct rm {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Add wall angle viewing by defining "modes" for each wall type. Each
|
* Add wall angle viewing by defining "modes" for each wall type. Each
|
||||||
* mode describes which parts of a wall are finished (seen as as wall)
|
* mode describes which parts of a wall are finished (seen as wall)
|
||||||
* and which are unfinished (seen as rock).
|
* and which are unfinished (seen as rock).
|
||||||
*
|
*
|
||||||
* We use the bottom 3 bits of the flags field for the mode. This comes
|
* We use the bottom 3 bits of the flags field for the mode. This comes
|
||||||
@@ -356,7 +356,7 @@ struct rm {
|
|||||||
#define looted flags /* used for throne, tree, fountain, sink, door */
|
#define looted flags /* used for throne, tree, fountain, sink, door */
|
||||||
#define icedpool flags /* used for ice (in case it melts) */
|
#define icedpool flags /* used for ice (in case it melts) */
|
||||||
#define emptygrave flags /* no corpse in grave */
|
#define emptygrave flags /* no corpse in grave */
|
||||||
/* horizonal applies to walls, doors (including sdoor); also to iron bars
|
/* horizontal applies to walls, doors (including sdoor); also to iron bars
|
||||||
even though they don't have separate symbols for horizontal and vertical */
|
even though they don't have separate symbols for horizontal and vertical */
|
||||||
#define blessedftn horizontal /* a fountain that grants attribs */
|
#define blessedftn horizontal /* a fountain that grants attribs */
|
||||||
#define disturbed horizontal /* kicking or engraving on a grave's headstone
|
#define disturbed horizontal /* kicking or engraving on a grave's headstone
|
||||||
|
|||||||
+1
-1
@@ -82,7 +82,7 @@ enum p_skills {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* These are the standard weapon skill levels. It is important that
|
* These are the standard weapon skill levels. It is important that
|
||||||
* the lowest "valid" skill be be 1. The code calculates the
|
* the lowest "valid" skill be 1. The code calculates the
|
||||||
* previous amount to practice by calling practice_needed_to_advance()
|
* previous amount to practice by calling practice_needed_to_advance()
|
||||||
* with the current skill-1. To work out for the UNSKILLED case,
|
* with the current skill-1. To work out for the UNSKILLED case,
|
||||||
* a value of 0 needed.
|
* a value of 0 needed.
|
||||||
|
|||||||
+1
-1
@@ -96,7 +96,7 @@
|
|||||||
/* #define DEF_PAGER "/usr/bin/less" */
|
/* #define DEF_PAGER "/usr/bin/less" */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Define PORT_HELP to be the name of the port-specfic help file.
|
* Define PORT_HELP to be the name of the port-specific help file.
|
||||||
* This file is found in HACKDIR.
|
* This file is found in HACKDIR.
|
||||||
* Normally, you shouldn't need to change this.
|
* Normally, you shouldn't need to change this.
|
||||||
* There is currently no port-specific help for Unix systems.
|
* There is currently no port-specific help for Unix systems.
|
||||||
|
|||||||
+1
-1
@@ -94,7 +94,7 @@ typedef struct glyph_map_entry {
|
|||||||
/* glyph plus additional info
|
/* glyph plus additional info
|
||||||
if you add fields or change the ordering, fix up the following:
|
if you add fields or change the ordering, fix up the following:
|
||||||
g_info initialization in display.c
|
g_info initialization in display.c
|
||||||
nul_glyphinfo initialization in diplay.c
|
nul_glyphinfo initialization in display.c
|
||||||
*/
|
*/
|
||||||
typedef struct gi {
|
typedef struct gi {
|
||||||
int glyph; /* the display entity */
|
int glyph; /* the display entity */
|
||||||
|
|||||||
@@ -301,7 +301,7 @@ maybe_preinsert_directory(int32_t findsound_approach, char *exedir, char *buf, s
|
|||||||
int largest_basename = 35;
|
int largest_basename = 35;
|
||||||
|
|
||||||
/* findsound_approach = sff_havdir_append_rest means a directory name will be
|
/* findsound_approach = sff_havdir_append_rest means a directory name will be
|
||||||
* inserted into the begining of buf and the remaining parts of the
|
* inserted into the beginning of buf and the remaining parts of the
|
||||||
* resource/file name will be appended by
|
* resource/file name will be appended by
|
||||||
* get_sound_effect_filename(seid, buf, sizeof buf, findsound_approach)
|
* get_sound_effect_filename(seid, buf, sizeof buf, findsound_approach)
|
||||||
* when it sees the sff_havedir_append_rest indicator.
|
* when it sees the sff_havedir_append_rest indicator.
|
||||||
|
|||||||
+1
-1
@@ -1886,7 +1886,7 @@ is_valid_jump_pos(coordxy x, coordxy y, int magic, boolean showmsg)
|
|||||||
coord uc, tc;
|
coord uc, tc;
|
||||||
struct rm *lev = &levl[u.ux][u.uy];
|
struct rm *lev = &levl[u.ux][u.uy];
|
||||||
/* we want to categorize trajectory for use in determining
|
/* we want to categorize trajectory for use in determining
|
||||||
passage through doorways: horizonal, vertical, or diagonal;
|
passage through doorways: horizontal, vertical, or diagonal;
|
||||||
since knight's jump and other irregular directions are
|
since knight's jump and other irregular directions are
|
||||||
possible, we flatten those out to simplify door checks */
|
possible, we flatten those out to simplify door checks */
|
||||||
int diag, traj;
|
int diag, traj;
|
||||||
|
|||||||
+2
-2
@@ -240,11 +240,11 @@ losestr(int num, const char *knam, schar k_format)
|
|||||||
losehp(dmg, knam, k_format);
|
losehp(dmg, knam, k_format);
|
||||||
|
|
||||||
if (Upolyd) {
|
if (Upolyd) {
|
||||||
/* if still polymorhed, reduce you-as-monst maxHP; never below 1 */
|
/* if still polymorphed, reduce you-as-monst maxHP; never below 1 */
|
||||||
u.mhmax -= min(dmg, u.mhmax - 1);
|
u.mhmax -= min(dmg, u.mhmax - 1);
|
||||||
} else if (!waspolyd) {
|
} else if (!waspolyd) {
|
||||||
/* not polymorphed now and didn't rehumanize when taking damage;
|
/* not polymorphed now and didn't rehumanize when taking damage;
|
||||||
reduce max HP, but not below below uhpmin */
|
reduce max HP, but not below uhpmin */
|
||||||
if (u.uhpmax > uhpmin)
|
if (u.uhpmax > uhpmin)
|
||||||
setuhpmax(max(u.uhpmax - dmg, uhpmin));
|
setuhpmax(max(u.uhpmax - dmg, uhpmin));
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -634,7 +634,7 @@ drag_ball(coordxy x, coordxy y, int *bc_control,
|
|||||||
already_in_rock = FALSE;
|
already_in_rock = FALSE;
|
||||||
|
|
||||||
switch (dist2(x, y, uball->ox, uball->oy)) {
|
switch (dist2(x, y, uball->ox, uball->oy)) {
|
||||||
/* two spaces diagonal from ball, move chain inbetween */
|
/* two spaces diagonal from ball, move chain in-between */
|
||||||
case 8:
|
case 8:
|
||||||
*chainx = (uball->ox + x) / 2;
|
*chainx = (uball->ox + x) / 2;
|
||||||
*chainy = (uball->oy + y) / 2;
|
*chainy = (uball->oy + y) / 2;
|
||||||
|
|||||||
+2
-2
@@ -333,7 +333,7 @@ fixuporacle(struct monst *oracle)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
if (o_ridx != ridx && ridx < SIZE(gr.rooms)) {
|
if (o_ridx != ridx && ridx < SIZE(gr.rooms)) {
|
||||||
/* room found and she's not not in it, so try to move her there */
|
/* room found and she's not in it, so try to move her there */
|
||||||
cc.x = (gr.rooms[ridx].lx + gr.rooms[ridx].hx) / 2;
|
cc.x = (gr.rooms[ridx].lx + gr.rooms[ridx].hx) / 2;
|
||||||
cc.y = (gr.rooms[ridx].ly + gr.rooms[ridx].hy) / 2;
|
cc.y = (gr.rooms[ridx].ly + gr.rooms[ridx].hy) / 2;
|
||||||
if (enexto(&cc, cc.x, cc.y, oracle->data)) {
|
if (enexto(&cc, cc.x, cc.y, oracle->data)) {
|
||||||
@@ -758,7 +758,7 @@ fix_ghostly_obj(struct obj *obj)
|
|||||||
if (!obj->ghostly)
|
if (!obj->ghostly)
|
||||||
return;
|
return;
|
||||||
switch(obj->otyp) {
|
switch(obj->otyp) {
|
||||||
/* asymetrical weapons */
|
/* asymmetrical weapons */
|
||||||
case BOW:
|
case BOW:
|
||||||
case ELVEN_BOW:
|
case ELVEN_BOW:
|
||||||
case ORCISH_BOW:
|
case ORCISH_BOW:
|
||||||
|
|||||||
@@ -669,9 +669,9 @@ doextlist(void)
|
|||||||
continue;
|
continue;
|
||||||
if (!onelist && pass != wizc)
|
if (!onelist && pass != wizc)
|
||||||
continue;
|
continue;
|
||||||
/* command descripton might get modified on the fly */
|
/* command description might get modified on the fly */
|
||||||
cmd_desc = efp->ef_desc;
|
cmd_desc = efp->ef_desc;
|
||||||
/* suppress part of the descripton for #genocided if it
|
/* suppress part of the description for #genocided if it
|
||||||
doesn't apply during the current game */
|
doesn't apply during the current game */
|
||||||
if (!wizard && !discover
|
if (!wizard && !discover
|
||||||
&& (efp->flags & GENERALCMD) != 0 /* minor optimization */
|
&& (efp->flags & GENERALCMD) != 0 /* minor optimization */
|
||||||
@@ -1457,7 +1457,7 @@ static int
|
|||||||
wiz_flip_level(void)
|
wiz_flip_level(void)
|
||||||
{
|
{
|
||||||
static const char choices[] = "0123",
|
static const char choices[] = "0123",
|
||||||
prmpt[] = "Flip 0=randomly, 1=vertically, 2=horizonally, 3=both:";
|
prmpt[] = "Flip 0=randomly, 1=vertically, 2=horizontally, 3=both:";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Does not handle
|
* Does not handle
|
||||||
@@ -4447,7 +4447,7 @@ wiz_mon_diff(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!trouble)
|
if (!trouble)
|
||||||
putstr(win, 0, "No monster difficulty discrepencies were detected.");
|
putstr(win, 0, "No monster difficulty discrepancies were detected.");
|
||||||
display_nhwindow(win, FALSE);
|
display_nhwindow(win, FALSE);
|
||||||
destroy_nhwindow(win);
|
destroy_nhwindow(win);
|
||||||
return ECMD_OK;
|
return ECMD_OK;
|
||||||
|
|||||||
+1
-1
@@ -97,7 +97,7 @@ const char *fqn_prefix_names[PREFIX_COUNT] = {
|
|||||||
const schar xdir[N_DIRS_Z] = { -1, -1, 0, 1, 1, 1, 0, -1, 0, 0 };
|
const schar xdir[N_DIRS_Z] = { -1, -1, 0, 1, 1, 1, 0, -1, 0, 0 };
|
||||||
const schar ydir[N_DIRS_Z] = { 0, -1, -1, -1, 0, 1, 1, 1, 0, 0 };
|
const schar ydir[N_DIRS_Z] = { 0, -1, -1, -1, 0, 1, 1, 1, 0, 0 };
|
||||||
const schar zdir[N_DIRS_Z] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 };
|
const schar zdir[N_DIRS_Z] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 };
|
||||||
/* redordered directions, cardinals first */
|
/* reordered directions, cardinals first */
|
||||||
const schar dirs_ord[N_DIRS] =
|
const schar dirs_ord[N_DIRS] =
|
||||||
{ DIR_W, DIR_N, DIR_E, DIR_S, DIR_NW, DIR_NE, DIR_SE, DIR_SW };
|
{ DIR_W, DIR_N, DIR_E, DIR_S, DIR_NW, DIR_NE, DIR_SE, DIR_SW };
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1301,7 +1301,7 @@ use_crystal_ball(struct obj **optr)
|
|||||||
if (ch == DEF_MIMIC_DEF)
|
if (ch == DEF_MIMIC_DEF)
|
||||||
ch = DEF_MIMIC;
|
ch = DEF_MIMIC;
|
||||||
|
|
||||||
/* checking furnture before objects allows '_' to find altars
|
/* checking furniture before objects allows '_' to find altars
|
||||||
(along with other furniture) instead of finding iron chains */
|
(along with other furniture) instead of finding iron chains */
|
||||||
if (def_char_is_furniture(ch) >= 0) {
|
if (def_char_is_furniture(ch) >= 0) {
|
||||||
ret = furniture_detect();
|
ret = furniture_detect();
|
||||||
@@ -2121,7 +2121,7 @@ dump_map(void)
|
|||||||
boolean blankrow, toprow;
|
boolean blankrow, toprow;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Squeeze out excess vertial space when dumping the map.
|
* Squeeze out excess vertical space when dumping the map.
|
||||||
* If there are any blank map rows at the top, suppress them
|
* If there are any blank map rows at the top, suppress them
|
||||||
* (our caller has already printed a separator). If there is
|
* (our caller has already printed a separator). If there is
|
||||||
* more than one blank map row at the bottom, keep just one.
|
* more than one blank map row at the bottom, keep just one.
|
||||||
|
|||||||
@@ -2004,7 +2004,7 @@ unearth_objs(int x, int y)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The organic material has rotted away while buried. As an expansion,
|
* The organic material has rotted away while buried. As an expansion,
|
||||||
* we could add add partial damage. A damage count is kept in the object
|
* we could add partial damage. A damage count is kept in the object
|
||||||
* and every time we are called we increment the count and reschedule another
|
* and every time we are called we increment the count and reschedule another
|
||||||
* timeout. Eventually the object rots away.
|
* timeout. Eventually the object rots away.
|
||||||
*
|
*
|
||||||
|
|||||||
+5
-5
@@ -514,10 +514,10 @@ display_monster(
|
|||||||
mgendercode = mon->female ? FEMALE : MALE;
|
mgendercode = mon->female ? FEMALE : MALE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We must do the mimic check first. If the mimic is mimicing something,
|
* We must do the mimic check first. If the mimic is mimicking something,
|
||||||
* and the location is in sight, we have to change the hero's memory
|
* and the location is in sight, we have to change the hero's memory
|
||||||
* so that when the position is out of sight, the hero remembers what
|
* so that when the position is out of sight, the hero remembers what
|
||||||
* the mimic was mimicing.
|
* the mimic was mimicking.
|
||||||
*/
|
*/
|
||||||
if (mon_mimic && (sightflags == PHYSICALLY_SEEN)) {
|
if (mon_mimic && (sightflags == PHYSICALLY_SEEN)) {
|
||||||
switch (M_AP_TYPE(mon)) {
|
switch (M_AP_TYPE(mon)) {
|
||||||
@@ -558,7 +558,7 @@ display_monster(
|
|||||||
obj.ox = x;
|
obj.ox = x;
|
||||||
obj.oy = y;
|
obj.oy = y;
|
||||||
obj.otyp = mon->mappearance;
|
obj.otyp = mon->mappearance;
|
||||||
/* might be mimicing a corpse or statue */
|
/* might be mimicking a corpse or statue */
|
||||||
obj.corpsenm = has_mcorpsenm(mon) ? MCORPSENM(mon) : PM_TENGU;
|
obj.corpsenm = has_mcorpsenm(mon) ? MCORPSENM(mon) : PM_TENGU;
|
||||||
map_object(&obj, !sensed);
|
map_object(&obj, !sensed);
|
||||||
break;
|
break;
|
||||||
@@ -573,7 +573,7 @@ display_monster(
|
|||||||
} /* switch M_AP_TYPE() */
|
} /* switch M_AP_TYPE() */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If mimic is unsuccessfully mimicing something, display the monster. */
|
/* If mimic is unsuccessfully mimicking something, display the monster. */
|
||||||
if (!mon_mimic || sensed) {
|
if (!mon_mimic || sensed) {
|
||||||
int num;
|
int num;
|
||||||
|
|
||||||
@@ -1485,7 +1485,7 @@ mimic_light_blocking(struct monst *mtmp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Block/unblock light depending on what a mimic is mimicing and if it's
|
* Block/unblock light depending on what a mimic is mimicking and if it's
|
||||||
* invisible or not. Should be called only when the state of See_invisible
|
* invisible or not. Should be called only when the state of See_invisible
|
||||||
* changes.
|
* changes.
|
||||||
*/
|
*/
|
||||||
|
|||||||
+1
-1
@@ -1985,7 +1985,7 @@ x_monnam(
|
|||||||
* This monster has become important, for the moment anyway.
|
* This monster has become important, for the moment anyway.
|
||||||
* As the hero's consumer, it is worthy of ARTICLE_THE.
|
* As the hero's consumer, it is worthy of ARTICLE_THE.
|
||||||
* Also, suppress invisible as that particular characteristic
|
* Also, suppress invisible as that particular characteristic
|
||||||
* is unimportant now and you can see it's interior anyway.
|
* is unimportant now and you can see its interior anyway.
|
||||||
*/
|
*/
|
||||||
article = ARTICLE_THE;
|
article = ARTICLE_THE;
|
||||||
suppress |= SUPPRESS_INVISIBLE;
|
suppress |= SUPPRESS_INVISIBLE;
|
||||||
|
|||||||
+3
-3
@@ -531,7 +531,7 @@ Helmet_off(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hard helms provide better protection against against falling rocks */
|
/* hard helms provide better protection against falling rocks */
|
||||||
boolean
|
boolean
|
||||||
hard_helmet(struct obj *obj)
|
hard_helmet(struct obj *obj)
|
||||||
{
|
{
|
||||||
@@ -992,7 +992,7 @@ Amulet_on(void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AMULET_OF_FLYING:
|
case AMULET_OF_FLYING:
|
||||||
/* setworn() has already set extrinisic flying */
|
/* setworn() has already set extrinsic flying */
|
||||||
float_vs_flight(); /* block flying if levitating */
|
float_vs_flight(); /* block flying if levitating */
|
||||||
if (Flying) {
|
if (Flying) {
|
||||||
boolean already_flying;
|
boolean already_flying;
|
||||||
@@ -1099,7 +1099,7 @@ learnring(struct obj *ring, boolean observed)
|
|||||||
{
|
{
|
||||||
int ringtype = ring->otyp;
|
int ringtype = ring->otyp;
|
||||||
|
|
||||||
/* if effect was observeable then we usually discover the type */
|
/* if effect was observable then we usually discover the type */
|
||||||
if (observed) {
|
if (observed) {
|
||||||
/* if we already know the ring type which accomplishes this
|
/* if we already know the ring type which accomplishes this
|
||||||
effect (assumes there is at most one type for each effect),
|
effect (assumes there is at most one type for each effect),
|
||||||
|
|||||||
+1
-1
@@ -1383,7 +1383,7 @@ static const struct qmchoices {
|
|||||||
int mndx; /* type of pet, 0 means any */
|
int mndx; /* type of pet, 0 means any */
|
||||||
char mlet; /* symbol of pet, 0 means any */
|
char mlet; /* symbol of pet, 0 means any */
|
||||||
unsigned mappearance; /* mimic this */
|
unsigned mappearance; /* mimic this */
|
||||||
uchar m_ap_type; /* what is the thing it is mimicing? */
|
uchar m_ap_type; /* what is the thing it is mimicking? */
|
||||||
} qm[] = {
|
} qm[] = {
|
||||||
/* Things that some pets might be thinking about at the time */
|
/* Things that some pets might be thinking about at the time */
|
||||||
{ PM_LITTLE_DOG, 0, PM_KITTEN, M_AP_MONSTER },
|
{ PM_LITTLE_DOG, 0, PM_KITTEN, M_AP_MONSTER },
|
||||||
|
|||||||
+1
-1
@@ -94,7 +94,7 @@ def_char_to_objclass(char ch)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Convert a character into a monster class. This returns the _first_
|
* Convert a character into a monster class. This returns the _first_
|
||||||
* match made. If there are are no matches, return MAXMCLASSES.
|
* match made. If there are no matches, return MAXMCLASSES.
|
||||||
* Used in detect.c, options.c, read.c, sp_lev.c, and lev_main.c
|
* Used in detect.c, options.c, read.c, sp_lev.c, and lev_main.c
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
|
|||||||
+1
-1
@@ -3154,7 +3154,7 @@ count_feat_lastseentyp(
|
|||||||
switch (gl.lastseentyp[x][y]) {
|
switch (gl.lastseentyp[x][y]) {
|
||||||
#if 0 /* levels that have these tend of have a lot of them */
|
#if 0 /* levels that have these tend of have a lot of them */
|
||||||
/*
|
/*
|
||||||
* FIXME? due to theme rooms, lots of levels have an incresed
|
* FIXME? due to theme rooms, lots of levels have an increased
|
||||||
* chance of having these so automatic annotations for them may
|
* chance of having these so automatic annotations for them may
|
||||||
* have become more worthwhile now.
|
* have become more worthwhile now.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ static const struct {
|
|||||||
{ "", 0, 0, 0 } };
|
{ "", 0, 0, 0 } };
|
||||||
#define TTSZ SIZE(tintxts)
|
#define TTSZ SIZE(tintxts)
|
||||||
|
|
||||||
/* called after mimicing is over */
|
/* called after mimicking is over */
|
||||||
static int
|
static int
|
||||||
eatmdone(void)
|
eatmdone(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ ATTRNORETURN extern void nethack_exit(int) NORETURN;
|
|||||||
#include <execinfo.h>
|
#include <execinfo.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* What do we try and in what order? Tradeoffs:
|
/* What do we try to in what order? Tradeoffs:
|
||||||
* libc: +no external programs required
|
* libc: +no external programs required
|
||||||
* -requires newish libc/glibc
|
* -requires newish libc/glibc
|
||||||
* -requires -rdynamic
|
* -requires -rdynamic
|
||||||
@@ -1660,7 +1660,7 @@ fuzzer_savelife(int how)
|
|||||||
++remedies;
|
++remedies;
|
||||||
}
|
}
|
||||||
if (!rn2(3 + 3 * remedies)) {
|
if (!rn2(3 + 3 * remedies)) {
|
||||||
/* confer temporary resistances for first 8 properities:
|
/* confer temporary resistances for first 8 properties:
|
||||||
fire, cold, sleep, disint, shock, poison, acid, stone */
|
fire, cold, sleep, disint, shock, poison, acid, stone */
|
||||||
for (propidx = 1; propidx <= 8; ++propidx) {
|
for (propidx = 1; propidx <= 8; ++propidx) {
|
||||||
if (!u.uprops[propidx].intrinsic
|
if (!u.uprops[propidx].intrinsic
|
||||||
|
|||||||
+2
-2
@@ -1571,9 +1571,9 @@ disturb_grave(coordxy x, coordxy y)
|
|||||||
struct rm *lev = &levl[x][y];
|
struct rm *lev = &levl[x][y];
|
||||||
|
|
||||||
if (!IS_GRAVE(lev->typ)) {
|
if (!IS_GRAVE(lev->typ)) {
|
||||||
impossible("Disturing grave that isn't a grave? (%d)", lev->typ);
|
impossible("Disturbing grave that isn't a grave? (%d)", lev->typ);
|
||||||
} else if (lev->disturbed) {
|
} else if (lev->disturbed) {
|
||||||
impossible("Disturing already disturbed grave?");
|
impossible("Disturbing already disturbed grave?");
|
||||||
} else {
|
} else {
|
||||||
You("disturb the undead!");
|
You("disturb the undead!");
|
||||||
lev->disturbed = 1;
|
lev->disturbed = 1;
|
||||||
|
|||||||
+2
-2
@@ -588,7 +588,7 @@ strNsubst(
|
|||||||
const char *rp;
|
const char *rp;
|
||||||
unsigned len = (unsigned) strlen(orig);
|
unsigned len = (unsigned) strlen(orig);
|
||||||
int ocount = 0, /* number of times 'orig' has been matched */
|
int ocount = 0, /* number of times 'orig' has been matched */
|
||||||
rcount = 0; /* number of subsitutions made */
|
rcount = 0; /* number of substitutions made */
|
||||||
|
|
||||||
for (bp = inoutbuf, op = workbuf; *bp && op < &workbuf[BUFSZ - 1]; ) {
|
for (bp = inoutbuf, op = workbuf; *bp && op < &workbuf[BUFSZ - 1]; ) {
|
||||||
if ((!len || !strncmp(bp, orig, len)) && (++ocount == n || n == 0)) {
|
if ((!len || !strncmp(bp, orig, len)) && (++ocount == n || n == 0)) {
|
||||||
@@ -1273,7 +1273,7 @@ strbuf_empty(strbuf_t *strbuf)
|
|||||||
strbuf_init(strbuf);
|
strbuf_init(strbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* strbuf_nl_to_crlf() converts all occurences of \n to \r\n */
|
/* strbuf_nl_to_crlf() converts all occurrences of \n to \r\n */
|
||||||
void
|
void
|
||||||
strbuf_nl_to_crlf(strbuf_t *strbuf)
|
strbuf_nl_to_crlf(strbuf_t *strbuf)
|
||||||
{
|
{
|
||||||
|
|||||||
+6
-6
@@ -6,7 +6,7 @@
|
|||||||
* Enlightenment and Conduct+Achievements and Vanquished+Extinct+Geno'd
|
* Enlightenment and Conduct+Achievements and Vanquished+Extinct+Geno'd
|
||||||
* and stethoscope/probing feedback.
|
* and stethoscope/probing feedback.
|
||||||
*
|
*
|
||||||
* Most code used to reside in cmd.c, presumeably because ^X was originally
|
* Most code used to reside in cmd.c, presumably because ^X was originally
|
||||||
* a wizard mode command and the majority of those are in that file.
|
* a wizard mode command and the majority of those are in that file.
|
||||||
* Some came from end.c where it is used during end of game disclosure.
|
* Some came from end.c where it is used during end of game disclosure.
|
||||||
* And some came from priest.c that had once been in pline.c.
|
* And some came from priest.c that had once been in pline.c.
|
||||||
@@ -1027,7 +1027,7 @@ status_enlightenment(int mode, int final)
|
|||||||
Sprintf(buf, "%s blind",
|
Sprintf(buf, "%s blind",
|
||||||
(HBlinded & FROMOUTSIDE) != 0L ? "permanently"
|
(HBlinded & FROMOUTSIDE) != 0L ? "permanently"
|
||||||
: (HBlinded & FROMFORM) ? "innately"
|
: (HBlinded & FROMFORM) ? "innately"
|
||||||
/* better phrasing desparately wanted... */
|
/* better phrasing desperately wanted... */
|
||||||
: Blindfolded_only ? "deliberately"
|
: Blindfolded_only ? "deliberately"
|
||||||
/* timed, possibly combined with blindfold */
|
/* timed, possibly combined with blindfold */
|
||||||
: "temporarily");
|
: "temporarily");
|
||||||
@@ -1741,7 +1741,7 @@ attributes_enlightenment(
|
|||||||
(u.uhitinc < 0) ? "increasing"
|
(u.uhitinc < 0) ? "increasing"
|
||||||
: (u.uhitinc < 4 * gu.urole.spelarmr / 5)
|
: (u.uhitinc < 4 * gu.urole.spelarmr / 5)
|
||||||
? "partly offsetting"
|
? "partly offsetting"
|
||||||
: (u.uhitinc < gu.urole.spelarmr) ? "nearly offseting"
|
: (u.uhitinc < gu.urole.spelarmr) ? "nearly offsetting"
|
||||||
: "overcoming");
|
: "overcoming");
|
||||||
you_have(buf, "");
|
you_have(buf, "");
|
||||||
}
|
}
|
||||||
@@ -1978,7 +1978,7 @@ doattributes(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
youhiding(boolean via_enlghtmt, /* englightment line vs topl message */
|
youhiding(boolean via_enlghtmt, /* enlightenment line vs topl message */
|
||||||
int msgflag) /* for variant message phrasing */
|
int msgflag) /* for variant message phrasing */
|
||||||
{
|
{
|
||||||
char *bp, buf[BUFSZ];
|
char *bp, buf[BUFSZ];
|
||||||
@@ -2601,7 +2601,7 @@ vanqsort_cmp(
|
|||||||
case VANQ_ALPHA_MIX:
|
case VANQ_ALPHA_MIX:
|
||||||
name1 = mons[indx1].pmnames[NEUTRAL];
|
name1 = mons[indx1].pmnames[NEUTRAL];
|
||||||
name2 = mons[indx2].pmnames[NEUTRAL];
|
name2 = mons[indx2].pmnames[NEUTRAL];
|
||||||
res = strcmpi(name1, name2); /* caseblind alhpa, low to high */
|
res = strcmpi(name1, name2); /* caseblind alpha, low to high */
|
||||||
break;
|
break;
|
||||||
case VANQ_MCLS_HTOL:
|
case VANQ_MCLS_HTOL:
|
||||||
case VANQ_MCLS_LTOH:
|
case VANQ_MCLS_LTOH:
|
||||||
@@ -2892,7 +2892,7 @@ num_extinct(void)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* collect both genocides and extintctions, skipping uniques */
|
/* collect both genocides and extinctions, skipping uniques */
|
||||||
static int
|
static int
|
||||||
num_gone(int mvflags, int *mindx)
|
num_gone(int mvflags, int *mindx)
|
||||||
{
|
{
|
||||||
|
|||||||
+5
-5
@@ -965,7 +965,7 @@ merged(struct obj **potmp, struct obj **pobj)
|
|||||||
* addinv) or when an object in the hero's inventory has been polymorphed
|
* addinv) or when an object in the hero's inventory has been polymorphed
|
||||||
* in-place.
|
* in-place.
|
||||||
*
|
*
|
||||||
* It may be valid to merge this code with with addinv_core2().
|
* It may be valid to merge this code with addinv_core2().
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
addinv_core1(struct obj *obj)
|
addinv_core1(struct obj *obj)
|
||||||
@@ -1210,7 +1210,7 @@ hold_another_object(
|
|||||||
dropy(obj); /* now put it back again :-) */
|
dropy(obj); /* now put it back again :-) */
|
||||||
return obj;
|
return obj;
|
||||||
} else if (wasUpolyd && !Upolyd) {
|
} else if (wasUpolyd && !Upolyd) {
|
||||||
/* loose your grip if you revert your form */
|
/* lose your grip if you revert your form */
|
||||||
if (drop_fmt)
|
if (drop_fmt)
|
||||||
pline(drop_fmt, drop_arg);
|
pline(drop_fmt, drop_arg);
|
||||||
obj_extract_self(obj);
|
obj_extract_self(obj);
|
||||||
@@ -1412,7 +1412,7 @@ delobj_core(
|
|||||||
boolean update_map;
|
boolean update_map;
|
||||||
|
|
||||||
/* obj_resists(obj,0,0) protects the Amulet, the invocation tools,
|
/* obj_resists(obj,0,0) protects the Amulet, the invocation tools,
|
||||||
and Rider corspes */
|
and Rider corpses */
|
||||||
if (!force && obj_resists(obj, 0, 0)) {
|
if (!force && obj_resists(obj, 0, 0)) {
|
||||||
/* player might be doing something stupid, but we
|
/* player might be doing something stupid, but we
|
||||||
* can't guarantee that. assume special artifacts
|
* can't guarantee that. assume special artifacts
|
||||||
@@ -1793,7 +1793,7 @@ getobj(
|
|||||||
*bp++ = HANDS_SYM;
|
*bp++ = HANDS_SYM;
|
||||||
*bp++ = ' '; /* put a space after the '-' in the prompt */
|
*bp++ = ' '; /* put a space after the '-' in the prompt */
|
||||||
break;
|
break;
|
||||||
case GETOBJ_DOWNPLAY: /* acceptable but not shown as likely chioce */
|
case GETOBJ_DOWNPLAY: /* acceptable but not shown as likely choice */
|
||||||
case GETOBJ_EXCLUDE_INACCESS: /* nothing currently gives this for '-' but
|
case GETOBJ_EXCLUDE_INACCESS: /* nothing currently gives this for '-' but
|
||||||
* theoretically could if wearing gloves */
|
* theoretically could if wearing gloves */
|
||||||
case GETOBJ_EXCLUDE_SELECTABLE: /* ditto, I think... */
|
case GETOBJ_EXCLUDE_SELECTABLE: /* ditto, I think... */
|
||||||
@@ -5106,7 +5106,7 @@ dopramulet(void)
|
|||||||
|
|
||||||
/* using display_inventory() instead of prinv() allows player
|
/* using display_inventory() instead of prinv() allows player
|
||||||
to use 'm "' to force and menu and be able to choose amulet
|
to use 'm "' to force and menu and be able to choose amulet
|
||||||
in order to perform a context-sensitve item action */
|
in order to perform a context-sensitive item action */
|
||||||
lets[0] = obj_to_let(uamul), lets[1] = '\0';
|
lets[0] = obj_to_let(uamul), lets[1] = '\0';
|
||||||
|
|
||||||
(void) dispinv_with_action(lets, TRUE, "Amulet");
|
(void) dispinv_with_action(lets, TRUE, "Amulet");
|
||||||
|
|||||||
+1
-1
@@ -188,7 +188,7 @@ m_initweap(struct monst *mtmp)
|
|||||||
if (!rn2(3)) {
|
if (!rn2(3)) {
|
||||||
/* lance and dwarvish mattock used to be in midst of
|
/* lance and dwarvish mattock used to be in midst of
|
||||||
the polearms but use different skills from polearms
|
the polearms but use different skills from polearms
|
||||||
and aren't appropriates choices for human soliders */
|
and aren't appropriates choices for human soldiers */
|
||||||
do {
|
do {
|
||||||
w1 = rn1(BEC_DE_CORBIN - PARTISAN + 1, PARTISAN);
|
w1 = rn1(BEC_DE_CORBIN - PARTISAN + 1, PARTISAN);
|
||||||
} while (objects[w1].oc_skill != P_POLEARMS);
|
} while (objects[w1].oc_skill != P_POLEARMS);
|
||||||
|
|||||||
+2
-2
@@ -811,7 +811,7 @@ engulf_target(struct monst *magr, struct monst *mdef)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* if attacker is phasing in solid rock and defender can't move there,
|
/* if attacker is phasing in solid rock and defender can't move there,
|
||||||
or vice versa, don't allow engulf to succeeed; otherwise expelling
|
or vice versa, don't allow engulf to succeed; otherwise expelling
|
||||||
might not be able to place attacker and defender both back on map;
|
might not be able to place attacker and defender both back on map;
|
||||||
when defender is the hero, a sanity_check complaint about placing
|
when defender is the hero, a sanity_check complaint about placing
|
||||||
the hero on top of a monster can occur */
|
the hero on top of a monster can occur */
|
||||||
@@ -886,7 +886,7 @@ gulpmm(
|
|||||||
dx = mdef->mx;
|
dx = mdef->mx;
|
||||||
dy = mdef->my;
|
dy = mdef->my;
|
||||||
/*
|
/*
|
||||||
* Leave the defender in the monster chain at it's current position,
|
* Leave the defender in the monster chain at its current position,
|
||||||
* but don't leave it on the screen. Move the aggressor to the
|
* but don't leave it on the screen. Move the aggressor to the
|
||||||
* defender's position.
|
* defender's position.
|
||||||
*/
|
*/
|
||||||
|
|||||||
+1
-1
@@ -477,7 +477,7 @@ mattacku(struct monst *mtmp)
|
|||||||
/* Orcs like to steal and eat horses and the like */
|
/* Orcs like to steal and eat horses and the like */
|
||||||
if (!rn2(is_orc(mtmp->data) ? 2 : 4) && m_next2u(mtmp)) {
|
if (!rn2(is_orc(mtmp->data) ? 2 : 4) && m_next2u(mtmp)) {
|
||||||
/* attack your steed instead; 'bhitpos' and 'notonhead' are
|
/* attack your steed instead; 'bhitpos' and 'notonhead' are
|
||||||
already set from tagetting hero */
|
already set from targeting hero */
|
||||||
i = mattackm(mtmp, u.usteed);
|
i = mattackm(mtmp, u.usteed);
|
||||||
if ((i & M_ATTK_AGR_DIED) != 0)
|
if ((i & M_ATTK_AGR_DIED) != 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
+2
-2
@@ -628,7 +628,7 @@ clear_splitobjs(void)
|
|||||||
* the caller to provide a valid context for the swap. When done, obj will
|
* the caller to provide a valid context for the swap. When done, obj will
|
||||||
* still exist, but not on any chain.
|
* still exist, but not on any chain.
|
||||||
*
|
*
|
||||||
* Note: Don't use use obj_extract_self() -- we are doing an in-place swap,
|
* Note: Don't use obj_extract_self() -- we are doing an in-place swap,
|
||||||
* not actually moving something.
|
* not actually moving something.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
@@ -1508,7 +1508,7 @@ shrink_glob(
|
|||||||
|
|
||||||
/* format "Your/Shk's/The [partly eaten] glob of <goo>" into
|
/* format "Your/Shk's/The [partly eaten] glob of <goo>" into
|
||||||
globnambuf[] before shrinking the glob; Yname2() calls yname()
|
globnambuf[] before shrinking the glob; Yname2() calls yname()
|
||||||
which calls xname() which ordinarly leaves "partly eaten" to
|
which calls xname() which ordinarily leaves "partly eaten" to
|
||||||
doname() rather than inserting that itself; ask xname() to add
|
doname() rather than inserting that itself; ask xname() to add
|
||||||
that when appropriate */
|
that when appropriate */
|
||||||
iflags.partly_eaten_hack = TRUE;
|
iflags.partly_eaten_hack = TRUE;
|
||||||
|
|||||||
@@ -1671,7 +1671,7 @@ mpickstuff(struct monst *mtmp)
|
|||||||
}
|
}
|
||||||
obj_extract_self(otmp3); /* remove from floor */
|
obj_extract_self(otmp3); /* remove from floor */
|
||||||
(void) mpickobj(mtmp, otmp3); /* may merge and free otmp3 */
|
(void) mpickobj(mtmp, otmp3); /* may merge and free otmp3 */
|
||||||
/* let them try and equip it on the next turn */
|
/* let them try to equip it on the next turn */
|
||||||
check_gear_next_turn(mtmp);
|
check_gear_next_turn(mtmp);
|
||||||
newsym(mtmp->mx, mtmp->my);
|
newsym(mtmp->mx, mtmp->my);
|
||||||
return TRUE; /* pick only one object */
|
return TRUE; /* pick only one object */
|
||||||
@@ -4316,7 +4316,7 @@ maybe_unhide_at(coordxy x, coordxy y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* monster/hero tries to hide under something at the current location;
|
/* monster/hero tries to hide under something at the current location;
|
||||||
if used by monster creation, should only happen during during level
|
if used by monster creation, should only happen during level
|
||||||
creation, otherwise there will be message sequencing issues */
|
creation, otherwise there will be message sequencing issues */
|
||||||
boolean
|
boolean
|
||||||
hideunder(struct monst *mtmp)
|
hideunder(struct monst *mtmp)
|
||||||
@@ -4875,7 +4875,7 @@ newcham(
|
|||||||
if (is_rider(olddata))
|
if (is_rider(olddata))
|
||||||
return 0;
|
return 0;
|
||||||
/* make Nazgul and erinyes immune too, to reduce chance of
|
/* make Nazgul and erinyes immune too, to reduce chance of
|
||||||
anomalous extinction feedback during final disclsoure */
|
anomalous extinction feedback during final disclosure */
|
||||||
if (mbirth_limit(monsndx(olddata)) < MAXMONNO)
|
if (mbirth_limit(monsndx(olddata)) < MAXMONNO)
|
||||||
return 0;
|
return 0;
|
||||||
/* cancelled shapechangers become uncancelled prior
|
/* cancelled shapechangers become uncancelled prior
|
||||||
@@ -5309,7 +5309,7 @@ angry_guards(boolean silent)
|
|||||||
if (nct) { /* seen/sensed adjacent guard(s) */
|
if (nct) { /* seen/sensed adjacent guard(s) */
|
||||||
Sprintf(buf, "guard%s", plur(nct));
|
Sprintf(buf, "guard%s", plur(nct));
|
||||||
pline_The("%s %s angry!", buf, vtense(buf, "get"));
|
pline_The("%s %s angry!", buf, vtense(buf, "get"));
|
||||||
} else if (sct) { /* seen/sensed non-adjcent guard(s) */
|
} else if (sct) { /* seen/sensed non-adjacent guard(s) */
|
||||||
Sprintf(buf, "guard%s", plur(sct));
|
Sprintf(buf, "guard%s", plur(sct));
|
||||||
pline("%s %s %s approaching!",
|
pline("%s %s %s approaching!",
|
||||||
(sct == 1) ? "An angry" : "Angry",
|
(sct == 1) ? "An angry" : "Angry",
|
||||||
|
|||||||
+1
-1
@@ -311,7 +311,7 @@ disturb(struct monst *mtmp)
|
|||||||
* not stealthy or (mon is an ettin and 9/10) AND
|
* not stealthy or (mon is an ettin and 9/10) AND
|
||||||
* (mon is not a nymph, jabberwock, or leprechaun) or 1/50 AND
|
* (mon is not a nymph, jabberwock, or leprechaun) or 1/50 AND
|
||||||
* Aggravate or mon is (dog or human) or
|
* Aggravate or mon is (dog or human) or
|
||||||
* (1/7 and mon is not mimicing furniture or object)
|
* (1/7 and mon is not mimicking furniture or object)
|
||||||
*/
|
*/
|
||||||
if (couldsee(mtmp->mx, mtmp->my) && mdistu(mtmp) <= 100
|
if (couldsee(mtmp->mx, mtmp->my) && mdistu(mtmp) <= 100
|
||||||
&& (!Stealth || (mtmp->data == &mons[PM_ETTIN] && rn2(10)))
|
&& (!Stealth || (mtmp->data == &mons[PM_ETTIN] && rn2(10)))
|
||||||
|
|||||||
+1
-1
@@ -657,7 +657,7 @@ do_improvisation(struct obj *instr)
|
|||||||
(do_spec && same_old_song)
|
(do_spec && same_old_song)
|
||||||
? "produces a familiar, lilting melody"
|
? "produces a familiar, lilting melody"
|
||||||
: (do_spec) ? "produces a lilting melody"
|
: (do_spec) ? "produces a lilting melody"
|
||||||
: (same_old_song) ? "twangs a familar tune"
|
: (same_old_song) ? "twangs a familiar tune"
|
||||||
: "twangs");
|
: "twangs");
|
||||||
else
|
else
|
||||||
You_feel("soothing vibrations.");
|
You_feel("soothing vibrations.");
|
||||||
|
|||||||
+1
-1
@@ -868,7 +868,7 @@ l_selection_gradient(lua_State *L)
|
|||||||
cvt_to_abscoord(&x, &y);
|
cvt_to_abscoord(&x, &y);
|
||||||
cvt_to_abscoord(&x2, &y2);
|
cvt_to_abscoord(&x2, &y2);
|
||||||
/* maxdist is required because there's no obvious default value for it,
|
/* maxdist is required because there's no obvious default value for it,
|
||||||
* whereas mindist has an obvious defalt of 0 */
|
* whereas mindist has an obvious default of 0 */
|
||||||
maxdist = get_table_int(L, "maxdist");
|
maxdist = get_table_int(L, "maxdist");
|
||||||
mindist = get_table_int_opt(L, "mindist", 0);
|
mindist = get_table_int_opt(L, "mindist", 0);
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -423,7 +423,7 @@ fruit_from_name(
|
|||||||
char *altfname;
|
char *altfname;
|
||||||
unsigned k;
|
unsigned k;
|
||||||
/*
|
/*
|
||||||
* note: named fruits are case-senstive...
|
* note: named fruits are case-sensitive...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (highest_fid)
|
if (highest_fid)
|
||||||
@@ -663,7 +663,7 @@ xname_flags(
|
|||||||
case VENOM_CLASS:
|
case VENOM_CLASS:
|
||||||
case TOOL_CLASS:
|
case TOOL_CLASS:
|
||||||
/* note: lenses or towel prefix would overwrite poisoned weapon
|
/* note: lenses or towel prefix would overwrite poisoned weapon
|
||||||
prefix if both were simultaneously posssible, but they aren't */
|
prefix if both were simultaneously possible, but they aren't */
|
||||||
if (typ == LENSES)
|
if (typ == LENSES)
|
||||||
Strcpy(buf, "pair of ");
|
Strcpy(buf, "pair of ");
|
||||||
else if (is_wet_towel(obj))
|
else if (is_wet_towel(obj))
|
||||||
@@ -1539,7 +1539,7 @@ doname_base(
|
|||||||
: "weapon in",
|
: "weapon in",
|
||||||
hand_s);
|
hand_s);
|
||||||
|
|
||||||
/* we just added a parenthesized pharse, but the right paren
|
/* we just added a parenthesized phrase, but the right paren
|
||||||
might be absent if the appended string got truncated */
|
might be absent if the appended string got truncated */
|
||||||
if (!Blind && bpspaceleft && bp_eos[-1] == ')') {
|
if (!Blind && bpspaceleft && bp_eos[-1] == ')') {
|
||||||
if (gw.warn_obj_cnt && obj == uwep
|
if (gw.warn_obj_cnt && obj == uwep
|
||||||
@@ -3995,7 +3995,7 @@ readobjnam_preparse(struct _readobjnam_data *d)
|
|||||||
and less than 15 (owt < 300) */
|
and less than 15 (owt < 300) */
|
||||||
d->gsize = 2;
|
d->gsize = 2;
|
||||||
} else if (!strncmpi(d->bp, "large ", l = 6)) {
|
} else if (!strncmpi(d->bp, "large ", l = 6)) {
|
||||||
/* "large" might be part of monster name (dog, cat, koboold,
|
/* "large" might be part of monster name (dog, cat, kobold,
|
||||||
mimic) or object name (box, round shield) rather than
|
mimic) or object name (box, round shield) rather than
|
||||||
prefix for glob size */
|
prefix for glob size */
|
||||||
if (strncmpi(d->bp + l, "glob", 4) && !strstri(d->bp + l, " glob"))
|
if (strncmpi(d->bp + l, "glob", 4) && !strstri(d->bp + l, " glob"))
|
||||||
@@ -4198,7 +4198,7 @@ readobjnam_postparse1(struct _readobjnam_data *d)
|
|||||||
* referred to as a "pair of". E.g. We should double if the player
|
* referred to as a "pair of". E.g. We should double if the player
|
||||||
* types "pair of spears", but not if the player types "pair of
|
* types "pair of spears", but not if the player types "pair of
|
||||||
* lenses". Luckily (?) all objects that are referred to as pairs
|
* lenses". Luckily (?) all objects that are referred to as pairs
|
||||||
* -- boots, gloves, and lenses -- are also not mergable, so cnt is
|
* -- boots, gloves, and lenses -- are also not mergeable, so cnt is
|
||||||
* ignored anyway.
|
* ignored anyway.
|
||||||
*/
|
*/
|
||||||
if (!strncmpi(d->bp, "pair of ", 8)) {
|
if (!strncmpi(d->bp, "pair of ", 8)) {
|
||||||
@@ -5440,7 +5440,7 @@ shield_simple_name(struct obj *shield)
|
|||||||
return "shield";
|
return "shield";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* for completness */
|
/* for completeness */
|
||||||
const char *
|
const char *
|
||||||
shirt_simple_name(struct obj *shirt UNUSED)
|
shirt_simple_name(struct obj *shirt UNUSED)
|
||||||
{
|
{
|
||||||
|
|||||||
+6
-6
@@ -161,7 +161,7 @@ static const struct paranoia_opts {
|
|||||||
latter requires at least two letters; "e"at vs "ex"plore,
|
latter requires at least two letters; "e"at vs "ex"plore,
|
||||||
"cont"inue eating vs "C"onfirm; "wand"-break vs "Were"-change,
|
"cont"inue eating vs "C"onfirm; "wand"-break vs "Were"-change,
|
||||||
both require at least two letters during config processing but use
|
both require at least two letters during config processing but use
|
||||||
one letter with case-senstivity for 'm O's interactive menu;
|
one letter with case-sensitivity for 'm O's interactive menu;
|
||||||
if any entry or alias beginning with 'n' gets added, aside from "none",
|
if any entry or alias beginning with 'n' gets added, aside from "none",
|
||||||
the parsing to accept "nofoo" to mean "!foo" will need fixing */
|
the parsing to accept "nofoo" to mean "!foo" will need fixing */
|
||||||
{ PARANOID_CONFIRM, "Confirm", 1, "Paranoia", 2,
|
{ PARANOID_CONFIRM, "Confirm", 1, "Paranoia", 2,
|
||||||
@@ -263,7 +263,7 @@ static NEARDATA const char *perminv_modes[][3] = {
|
|||||||
* + a number or '#' - reserved for counts
|
* + a number or '#' - reserved for counts
|
||||||
* + an upper or lower case US ASCII letter - used for accelerators
|
* + an upper or lower case US ASCII letter - used for accelerators
|
||||||
* + ESC - reserved for escaping the menu
|
* + ESC - reserved for escaping the menu
|
||||||
* + NULL, CR or LF - reserved for commiting the selection(s). NULL
|
* + NULL, CR or LF - reserved for committing the selection(s). NULL
|
||||||
* is kind of odd, but the tty's xwaitforspace() will return it if
|
* is kind of odd, but the tty's xwaitforspace() will return it if
|
||||||
* someone hits a <ret>.
|
* someone hits a <ret>.
|
||||||
* + a default object class symbol - used for object class accelerators
|
* + a default object class symbol - used for object class accelerators
|
||||||
@@ -3222,7 +3222,7 @@ optfn_pickup_types(
|
|||||||
op = tbuf; /* restore */
|
op = tbuf; /* restore */
|
||||||
else if (abuf[0] == 'm')
|
else if (abuf[0] == 'm')
|
||||||
use_menu = TRUE;
|
use_menu = TRUE;
|
||||||
/* note: abuf[0]=='a' is already handled via clearing the
|
/* note: abuf[0]=='a' is already handled via clearing
|
||||||
the old value (above) as a default action */
|
the old value (above) as a default action */
|
||||||
}
|
}
|
||||||
if (use_menu) {
|
if (use_menu) {
|
||||||
@@ -6382,7 +6382,7 @@ handler_windowborders(void)
|
|||||||
mode_name = windowborders_text[i];
|
mode_name = windowborders_text[i];
|
||||||
any.a_int = i + 1;
|
any.a_int = i + 1;
|
||||||
/* index 'i' matches the numeric setting for windowborders,
|
/* index 'i' matches the numeric setting for windowborders,
|
||||||
so allow corresponding digit as group accellerator */
|
so allow corresponding digit as group accelerator */
|
||||||
add_menu(tmpwin, &nul_glyphinfo, &any, 'a' + i, '0' + i,
|
add_menu(tmpwin, &nul_glyphinfo, &any, 'a' + i, '0' + i,
|
||||||
ATR_NONE, clr, mode_name, MENU_ITEMFLAGS_NONE);
|
ATR_NONE, clr, mode_name, MENU_ITEMFLAGS_NONE);
|
||||||
}
|
}
|
||||||
@@ -6896,7 +6896,7 @@ initoptions_init(void)
|
|||||||
&& !strcmpi(windowprocs.name, gc.cmdline_windowsys))
|
&& !strcmpi(windowprocs.name, gc.cmdline_windowsys))
|
||||||
/* ignore any windowtype:foo in RC file or NETHACKOPTIONS */
|
/* ignore any windowtype:foo in RC file or NETHACKOPTIONS */
|
||||||
iflags.windowtype_locked = TRUE;
|
iflags.windowtype_locked = TRUE;
|
||||||
/* should't need cmdline_windowsys beyond here */
|
/* shouldn't need cmdline_windowsys beyond here */
|
||||||
free((genericptr_t) gc.cmdline_windowsys),
|
free((genericptr_t) gc.cmdline_windowsys),
|
||||||
gc.cmdline_windowsys = NULL;
|
gc.cmdline_windowsys = NULL;
|
||||||
}
|
}
|
||||||
@@ -9538,7 +9538,7 @@ int
|
|||||||
sym_val(const char *strval) /* up to 4*BUFSZ-1 long; only first few
|
sym_val(const char *strval) /* up to 4*BUFSZ-1 long; only first few
|
||||||
chars matter */
|
chars matter */
|
||||||
{
|
{
|
||||||
char buf[QBUFSZ], tmp[QBUFSZ]; /* to hold trucated copy of 'strval' */
|
char buf[QBUFSZ], tmp[QBUFSZ]; /* to hold truncated copy of 'strval' */
|
||||||
|
|
||||||
buf[0] = '\0';
|
buf[0] = '\0';
|
||||||
if (!strval[0] || !strval[1]) { /* empty, or single character */
|
if (!strval[0] || !strval[1]) { /* empty, or single character */
|
||||||
|
|||||||
+1
-1
@@ -1853,7 +1853,7 @@ pickup_object(
|
|||||||
if (res <= 0)
|
if (res <= 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
/* Whats left of the special case for gold :-) */
|
/* What's left of the special case for gold :-) */
|
||||||
if (obj->oclass == COIN_CLASS)
|
if (obj->oclass == COIN_CLASS)
|
||||||
disp.botl = TRUE;
|
disp.botl = TRUE;
|
||||||
if (obj->quan != count && obj->otyp != LOADSTONE)
|
if (obj->quan != count && obj->otyp != LOADSTONE)
|
||||||
|
|||||||
+1
-1
@@ -258,7 +258,7 @@ in_trouble(void)
|
|||||||
&& (!u.uswallow
|
&& (!u.uswallow
|
||||||
|| !attacktype_fordmg(u.ustuck->data, AT_ENGL, AD_BLND)))
|
|| !attacktype_fordmg(u.ustuck->data, AT_ENGL, AD_BLND)))
|
||||||
return TROUBLE_BLIND;
|
return TROUBLE_BLIND;
|
||||||
/* deafness isn't it's own trouble; healing magic cures deafness
|
/* deafness isn't its own trouble; healing magic cures deafness
|
||||||
when it cures blindness, so do the same with trouble repair */
|
when it cures blindness, so do the same with trouble repair */
|
||||||
if ((HDeaf & TIMEOUT) > 1L)
|
if ((HDeaf & TIMEOUT) > 1L)
|
||||||
return TROUBLE_BLIND;
|
return TROUBLE_BLIND;
|
||||||
|
|||||||
+1
-1
@@ -550,7 +550,7 @@ restgamestate(NHFILE *nhfp)
|
|||||||
of unpaid items before shopkeeper's bill is available is a no-no;
|
of unpaid items before shopkeeper's bill is available is a no-no;
|
||||||
named fruit names aren't accessible yet either
|
named fruit names aren't accessible yet either
|
||||||
[3.6.2: moved perm_invent from flags to iflags to keep it out of
|
[3.6.2: moved perm_invent from flags to iflags to keep it out of
|
||||||
save files; retaining the override here is simpler than trying to
|
save files; retaining the override here is simpler than trying
|
||||||
to figure out where it really belongs now] */
|
to figure out where it really belongs now] */
|
||||||
defer_perm_invent = iflags.perm_invent;
|
defer_perm_invent = iflags.perm_invent;
|
||||||
iflags.perm_invent = FALSE;
|
iflags.perm_invent = FALSE;
|
||||||
|
|||||||
+2
-2
@@ -2082,7 +2082,7 @@ role_init(void)
|
|||||||
* place where it actually matters for the hero is in set_uasmon()
|
* place where it actually matters for the hero is in set_uasmon()
|
||||||
* and that can use mons[race] rather than mons[role] for this
|
* and that can use mons[race] rather than mons[role] for this
|
||||||
* particular property. Despite the comment, it is checked--where
|
* particular property. Despite the comment, it is checked--where
|
||||||
* needed--via instrinsic 'Infravision' which set_uasmon() manages.
|
* needed--via intrinsic 'Infravision' which set_uasmon() manages.
|
||||||
*/
|
*/
|
||||||
/* Fix up infravision */
|
/* Fix up infravision */
|
||||||
if (mons[gu.urace.mnum].mflags3 & M3_INFRAVISION) {
|
if (mons[gu.urace.mnum].mflags3 & M3_INFRAVISION) {
|
||||||
@@ -2876,7 +2876,7 @@ setup_rolemenu(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* !filtering implies reset_role_filtering() where we want to
|
/* !filtering implies reset_role_filtering() where we want to
|
||||||
mark this role as preseleted if current filter excludes it */
|
mark this role as preselected if current filter excludes it */
|
||||||
add_menu(win, &nul_glyphinfo, &any, thisch, 0,
|
add_menu(win, &nul_glyphinfo, &any, thisch, 0,
|
||||||
ATR_NONE, clr, an(rolenamebuf),
|
ATR_NONE, clr, an(rolenamebuf),
|
||||||
(!filtering && !role_ok)
|
(!filtering && !role_ok)
|
||||||
|
|||||||
+3
-3
@@ -170,7 +170,7 @@ getrumor(
|
|||||||
(void) dlb_fclose(rumors);
|
(void) dlb_fclose(rumors);
|
||||||
if (count >= 50)
|
if (count >= 50)
|
||||||
impossible("Can't find non-cookie rumor?");
|
impossible("Can't find non-cookie rumor?");
|
||||||
else if (!gi.in_mklev) /* avoid exercizing wisdom for graffiti */
|
else if (!gi.in_mklev) /* avoid exercising wisdom for graffiti */
|
||||||
exercise(A_WIS, (adjtruth > 0));
|
exercise(A_WIS, (adjtruth > 0));
|
||||||
} else {
|
} else {
|
||||||
couldnt_open_file(RUMORFILE);
|
couldnt_open_file(RUMORFILE);
|
||||||
@@ -444,7 +444,7 @@ get_rnd_line(
|
|||||||
return buf;
|
return buf;
|
||||||
/* 'rumors' is about 3/4 of the way to the limit on a 16-bit config
|
/* 'rumors' is about 3/4 of the way to the limit on a 16-bit config
|
||||||
for the whole, roughly 3/8 of the way for either half; all active
|
for the whole, roughly 3/8 of the way for either half; all active
|
||||||
configuations these days are at least 32-bits anyway */
|
configurations these days are at least 32-bits anyway */
|
||||||
nhassert(filechunksize <= INT_MAX); /* essential for rn2() */
|
nhassert(filechunksize <= INT_MAX); /* essential for rn2() */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -836,7 +836,7 @@ init_CapMons(void)
|
|||||||
unsigned mndx, mgend;
|
unsigned mndx, mgend;
|
||||||
|
|
||||||
/* the first CapMonstCnt entries come from mons[].pmnames[] and
|
/* the first CapMonstCnt entries come from mons[].pmnames[] and
|
||||||
the next CapBogonCnt entries from from the 'bogusmons' file;
|
the next CapBogonCnt entries from the 'bogusmons' file;
|
||||||
there is an extra entry for Null at the end, but that is only
|
there is an extra entry for Null at the end, but that is only
|
||||||
useful to force non-zero array size in case both mons[] and
|
useful to force non-zero array size in case both mons[] and
|
||||||
bogusmons get modified to have no applicable monster names */
|
bogusmons get modified to have no applicable monster names */
|
||||||
|
|||||||
+1
-1
@@ -46,7 +46,7 @@ static FILE *bw_FILE[MAXFD] = {0,0,0,0,0};
|
|||||||
* Once buffered IO (stdio) has been enabled on the file
|
* Once buffered IO (stdio) has been enabled on the file
|
||||||
* associated with a descriptor via fdopen():
|
* associated with a descriptor via fdopen():
|
||||||
*
|
*
|
||||||
* 1. If you use bufoff and bufon to try and toggle the
|
* 1. If you use bufoff and bufon to try to toggle the
|
||||||
* use of write vs fwrite; the code just tracks which
|
* use of write vs fwrite; the code just tracks which
|
||||||
* routine is to be called through the tracking
|
* routine is to be called through the tracking
|
||||||
* variables and acts accordingly.
|
* variables and acts accordingly.
|
||||||
|
|||||||
@@ -828,7 +828,7 @@ pick_pick(struct obj *obj)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Decide whether two unpaid items are mergable; caller is responsible for
|
Decide whether two unpaid items are mergeable; caller is responsible for
|
||||||
making sure they're unpaid and the same type of object; we check the price
|
making sure they're unpaid and the same type of object; we check the price
|
||||||
quoted by the shopkeeper and also that they both belong to the same shk.
|
quoted by the shopkeeper and also that they both belong to the same shk.
|
||||||
*/
|
*/
|
||||||
@@ -1094,7 +1094,7 @@ obfree(struct obj *obj, struct obj *merge)
|
|||||||
if (!merge) {
|
if (!merge) {
|
||||||
bp->useup = 1;
|
bp->useup = 1;
|
||||||
obj->unpaid = 0; /* only for doinvbill */
|
obj->unpaid = 0; /* only for doinvbill */
|
||||||
/* for used up glob, put back origial weight in case it gets
|
/* for used up glob, put back original weight in case it gets
|
||||||
formatted ('I x' or itemized billing) with 'wizweight' On */
|
formatted ('I x' or itemized billing) with 'wizweight' On */
|
||||||
if (obj->globby && !obj->owt && has_omid(obj))
|
if (obj->globby && !obj->owt && has_omid(obj))
|
||||||
obj->owt = OMID(obj);
|
obj->owt = OMID(obj);
|
||||||
@@ -1712,7 +1712,7 @@ dopay(void)
|
|||||||
/* allow 'm p' to request a menu for menustyle:traditional;
|
/* allow 'm p' to request a menu for menustyle:traditional;
|
||||||
for other styles, it will do the opposite; that doesn't make
|
for other styles, it will do the opposite; that doesn't make
|
||||||
a whole lot of sense for a 'request-menu' prefix, but otherwise
|
a whole lot of sense for a 'request-menu' prefix, but otherwise
|
||||||
it would simply be reduncant and there wouldn't be any way to
|
it would simply be redundant and there wouldn't be any way to
|
||||||
skip the menu when hero owes for multiple items */
|
skip the menu when hero owes for multiple items */
|
||||||
if (iflags.menu_requested)
|
if (iflags.menu_requested)
|
||||||
via_menu = !via_menu;
|
via_menu = !via_menu;
|
||||||
|
|||||||
+1
-1
@@ -1461,7 +1461,7 @@ tiphat(void)
|
|||||||
for (range = 1; range <= BOLT_LIM + 1; ++range) {
|
for (range = 1; range <= BOLT_LIM + 1; ++range) {
|
||||||
x += u.dx, y += u.dy;
|
x += u.dx, y += u.dy;
|
||||||
if (!isok(x, y) || (range > 1 && !couldsee(x, y))) {
|
if (!isok(x, y) || (range > 1 && !couldsee(x, y))) {
|
||||||
/* switch back to coordinates for previous interation's 'mtmp' */
|
/* switch back to coordinates for previous iteration's 'mtmp' */
|
||||||
x -= u.dx, y -= u.dy;
|
x -= u.dx, y -= u.dy;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -3491,7 +3491,7 @@ lspo_object(lua_State *L)
|
|||||||
0, /* buried */
|
0, /* buried */
|
||||||
0, /* lit */
|
0, /* lit */
|
||||||
0, 0, 0, 0, /* eroded, locked, trapped, recharged */
|
0, 0, 0, 0, /* eroded, locked, trapped, recharged */
|
||||||
0, 0, 0, 0, /* invis, greased, broken, achievment */
|
0, 0, 0, 0, /* invis, greased, broken, achievement */
|
||||||
};
|
};
|
||||||
#if 0
|
#if 0
|
||||||
int nparams = 0;
|
int nparams = 0;
|
||||||
@@ -7062,7 +7062,7 @@ static const struct luaL_Reg nhl_functions[] = {
|
|||||||
- automatically add shuffle(array)
|
- automatically add shuffle(array)
|
||||||
- automatically add align = { "law", "neutral", "chaos" } and shuffle it.
|
- automatically add align = { "law", "neutral", "chaos" } and shuffle it.
|
||||||
(remove from lua files)
|
(remove from lua files)
|
||||||
- grab the header comments from des-files and add add them to the lua files
|
- grab the header comments from des-files and add them to the lua files
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -246,7 +246,7 @@ remove_worn_item(
|
|||||||
* but that would need a lot more cooperation by callers. It's a
|
* but that would need a lot more cooperation by callers. It's a
|
||||||
* tradeoff between protecting the player against unintentional hangup
|
* tradeoff between protecting the player against unintentional hangup
|
||||||
* and defending the game against deliberate hangup when player sees a
|
* and defending the game against deliberate hangup when player sees a
|
||||||
* message about something undesireable followed by --More--.
|
* message about something undesirable followed by --More--.
|
||||||
*/
|
*/
|
||||||
oldinuse = obj->in_use;
|
oldinuse = obj->in_use;
|
||||||
obj->in_use = 1;
|
obj->in_use = 1;
|
||||||
|
|||||||
+2
-2
@@ -557,7 +557,7 @@ teleds(coordxy nux, coordxy nuy, int teleds_flags)
|
|||||||
int
|
int
|
||||||
collect_coords(
|
collect_coords(
|
||||||
coord *ccc, /* pointer to array of at least size ROWNO*(COLNO-1) */
|
coord *ccc, /* pointer to array of at least size ROWNO*(COLNO-1) */
|
||||||
coordxy cx, coordxy cy, /* center point, not necessarly <u.ux,u.uy> */
|
coordxy cx, coordxy cy, /* center point, not necessarily <u.ux,u.uy> */
|
||||||
int maxradius, /* how far from center to go collecting spots;
|
int maxradius, /* how far from center to go collecting spots;
|
||||||
* 0 means collect entire map */
|
* 0 means collect entire map */
|
||||||
unsigned cc_flags, /* incl_center: put <cx,cy> in output list
|
unsigned cc_flags, /* incl_center: put <cx,cy> in output list
|
||||||
@@ -621,7 +621,7 @@ collect_coords(
|
|||||||
* (unshown) 4's will be mixed together, and so forth.
|
* (unshown) 4's will be mixed together, and so forth.
|
||||||
*
|
*
|
||||||
* If caller processes the output list in order, the closest viable
|
* If caller processes the output list in order, the closest viable
|
||||||
* spot will be chosen. If a compeletely random spot is preferred,
|
* spot will be chosen. If a completely random spot is preferred,
|
||||||
* the list can be requested to be unscrambled and then the caller
|
* the list can be requested to be unscrambled and then the caller
|
||||||
* can shuffle it, overriding the collection rings. A filter function
|
* can shuffle it, overriding the collection rings. A filter function
|
||||||
* could be used to skip everything after the first acceptable spot.
|
* could be used to skip everything after the first acceptable spot.
|
||||||
|
|||||||
+3
-3
@@ -815,7 +815,7 @@ nh_timeout(void)
|
|||||||
Your("temporary ability to survive burning has ended.");
|
Your("temporary ability to survive burning has ended.");
|
||||||
break;
|
break;
|
||||||
case WWALKING:
|
case WWALKING:
|
||||||
/* [see fire reeistance] */
|
/* [see fire resistance] */
|
||||||
if (!Wwalking)
|
if (!Wwalking)
|
||||||
Your("temporary ability to walk on liquid has ended.");
|
Your("temporary ability to walk on liquid has ended.");
|
||||||
break;
|
break;
|
||||||
@@ -1315,7 +1315,7 @@ lantern_message(struct obj *obj)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Timeout callback for for objects that are burning. E.g. lamps, candles.
|
* Timeout callback for objects that are burning. E.g. lamps, candles.
|
||||||
* See begin_burn() for meanings of obj->age and obj->spe.
|
* See begin_burn() for meanings of obj->age and obj->spe.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
@@ -2016,7 +2016,7 @@ wiz_timeout_queue(void)
|
|||||||
intrinsic = u.uprops[p].intrinsic;
|
intrinsic = u.uprops[p].intrinsic;
|
||||||
if (intrinsic & TIMEOUT) {
|
if (intrinsic & TIMEOUT) {
|
||||||
if (specindx > 0 && i >= specindx) {
|
if (specindx > 0 && i >= specindx) {
|
||||||
putstr(win, 0, " -- settable via #wizinstrinc only --");
|
putstr(win, 0, " -- settable via #wizintrinsic only --");
|
||||||
specindx = 0;
|
specindx = 0;
|
||||||
}
|
}
|
||||||
/* timeout value can be up to 16777215 (0x00ffffff) but
|
/* timeout value can be up to 16777215 (0x00ffffff) but
|
||||||
|
|||||||
+1
-1
@@ -4994,7 +4994,7 @@ drain_en(int n, boolean max_already_drained)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME?
|
* FIXME?
|
||||||
* u.uenmax should probably have a higher mininum than 0;
|
* u.uenmax should probably have a higher minimum than 0;
|
||||||
* perhaps u.ulevel or (u.ulevel + 1) / 2
|
* perhaps u.ulevel or (u.ulevel + 1) / 2
|
||||||
*/
|
*/
|
||||||
if (u.uenmax < 1) {
|
if (u.uenmax < 1) {
|
||||||
|
|||||||
+5
-5
@@ -837,7 +837,7 @@ hmon_hitmon_barehands(struct _hitmon_data *hmd, struct monst *mon)
|
|||||||
if (hmd->mdat == &mons[PM_SHADE]) {
|
if (hmd->mdat == &mons[PM_SHADE]) {
|
||||||
hmd->dmg = 0;
|
hmd->dmg = 0;
|
||||||
} else {
|
} else {
|
||||||
/* note: 1..2 or 1..4 can be substantiallly increased by
|
/* note: 1..2 or 1..4 can be substantially increased by
|
||||||
strength bonus or skill bonus, usually both... */
|
strength bonus or skill bonus, usually both... */
|
||||||
hmd->dmg = rnd(!martial_bonus() ? 2 : 4);
|
hmd->dmg = rnd(!martial_bonus() ? 2 : 4);
|
||||||
hmd->use_weapon_skill = TRUE;
|
hmd->use_weapon_skill = TRUE;
|
||||||
@@ -1393,8 +1393,8 @@ hmon_hitmon_dmg_recalc(struct _hitmon_data *hmd, struct obj *obj)
|
|||||||
for dual attacks, 3/4 of the strength bonus is used; when
|
for dual attacks, 3/4 of the strength bonus is used; when
|
||||||
both attacks hit, overall bonus is 3/2 rather than doubled;
|
both attacks hit, overall bonus is 3/2 rather than doubled;
|
||||||
melee hit with two-handed weapon uses 3/2 strength bonus to
|
melee hit with two-handed weapon uses 3/2 strength bonus to
|
||||||
appoximately match double hit with two-weapon ('approximate'
|
approximately match double hit with two-weapon ('approximate'
|
||||||
becase udaminc skews in favor of two-weapon); the 3/2 factor
|
because udaminc skews in favor of two-weapon); the 3/2 factor
|
||||||
for two-handed strength does not apply to polearms unless
|
for two-handed strength does not apply to polearms unless
|
||||||
hero is simply bashing with one of those and does not apply
|
hero is simply bashing with one of those and does not apply
|
||||||
to jousting because lances are one-handed */
|
to jousting because lances are one-handed */
|
||||||
@@ -2813,7 +2813,7 @@ mhitm_ad_tlpt(
|
|||||||
if (Half_physical_damage)
|
if (Half_physical_damage)
|
||||||
mhm->damage *= 2; /* doesn't actually increase damage;
|
mhm->damage *= 2; /* doesn't actually increase damage;
|
||||||
* we only get here if half the
|
* we only get here if half the
|
||||||
* original damage would would have
|
* original damage would have
|
||||||
* been fatal, so double reduced
|
* been fatal, so double reduced
|
||||||
* damage will be less than original */
|
* damage will be less than original */
|
||||||
if (mhm->damage < 1) { /* implies (tmphp <= 1) */
|
if (mhm->damage < 1) { /* implies (tmphp <= 1) */
|
||||||
@@ -5308,7 +5308,7 @@ hmonas(struct monst *mon)
|
|||||||
be Null, and we want to track that for passive() */
|
be Null, and we want to track that for passive() */
|
||||||
originalweapon = (altwep && uswapwep) ? &uswapwep : &uwep;
|
originalweapon = (altwep && uswapwep) ? &uswapwep : &uwep;
|
||||||
if (uswapwep /* set up 'altwep' flag for next iteration */
|
if (uswapwep /* set up 'altwep' flag for next iteration */
|
||||||
/* only consider seconary when wielding one-handed primary */
|
/* only consider secondary when wielding one-handed primary */
|
||||||
&& uwep && (uwep->oclass == WEAPON_CLASS || is_weptool(uwep))
|
&& uwep && (uwep->oclass == WEAPON_CLASS || is_weptool(uwep))
|
||||||
&& !bimanual(uwep)
|
&& !bimanual(uwep)
|
||||||
/* only switch if not wearing shield and not at artifact;
|
/* only switch if not wearing shield and not at artifact;
|
||||||
|
|||||||
+1
-1
@@ -314,7 +314,7 @@ glyph_find_core(const char *id, struct find_struct *findwhat)
|
|||||||
actual comparison part by generating them once, ahead of the
|
actual comparison part by generating them once, ahead of the
|
||||||
bulk of the potential parsings. We can later free up
|
bulk of the potential parsings. We can later free up
|
||||||
all the memory those names consumed once the bulk parsing is
|
all the memory those names consumed once the bulk parsing is
|
||||||
overwith.
|
over with.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -466,7 +466,7 @@ invault(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Strangled || is_silent(gy.youmonst.data) || gm.multi < 0) {
|
if (Strangled || is_silent(gy.youmonst.data) || gm.multi < 0) {
|
||||||
/* [we ought to record whether this this message has already
|
/* [we ought to record whether this message has already
|
||||||
been given in order to vary it upon repeat visits, but
|
been given in order to vary it upon repeat visits, but
|
||||||
discarding the monster and its egd data renders that hard] */
|
discarding the monster and its egd data renders that hard] */
|
||||||
if (Deaf) {
|
if (Deaf) {
|
||||||
|
|||||||
+1
-1
@@ -407,7 +407,7 @@ check_version(
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this used to be based on file date and somewhat OS-dependant,
|
/* this used to be based on file date and somewhat OS-dependent,
|
||||||
but now examines the initial part of the file's contents */
|
but now examines the initial part of the file's contents */
|
||||||
boolean
|
boolean
|
||||||
uptodate(NHFILE *nhfp, const char *name, unsigned long utdflags)
|
uptodate(NHFILE *nhfp, const char *name, unsigned long utdflags)
|
||||||
|
|||||||
+3
-3
@@ -173,7 +173,7 @@ does_block(int x, int y, struct rm *lev)
|
|||||||
if (obj->otyp == BOULDER)
|
if (obj->otyp == BOULDER)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* Mimics mimicing a door or boulder or ... block light. */
|
/* Mimics mimicking a door or boulder or ... block light. */
|
||||||
if ((mon = m_at(x, y)) && (!mon->minvis || See_invisible)
|
if ((mon = m_at(x, y)) && (!mon->minvis || See_invisible)
|
||||||
&& is_lightblocker_mappear(mon))
|
&& is_lightblocker_mappear(mon))
|
||||||
return 1;
|
return 1;
|
||||||
@@ -797,7 +797,7 @@ vision_recalc(int control)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* At this point we know that the row position is *not* in normal
|
* At this point we know that the row position is *not* in normal
|
||||||
* sight. That is, the position is could be seen, but is dark
|
* sight. That is, the position could be seen, but is dark
|
||||||
* or LOS is just plain blocked.
|
* or LOS is just plain blocked.
|
||||||
*
|
*
|
||||||
* Update the position if:
|
* Update the position if:
|
||||||
@@ -805,7 +805,7 @@ vision_recalc(int control)
|
|||||||
* the glyph -- E.g. darken room spot, etc.
|
* the glyph -- E.g. darken room spot, etc.
|
||||||
* o If we now could see the location (yet the location is not
|
* o If we now could see the location (yet the location is not
|
||||||
* lit), but previously we couldn't see the location, or vice
|
* lit), but previously we couldn't see the location, or vice
|
||||||
* versa. Update the spot because there there may be an
|
* versa. Update the spot because there may be an
|
||||||
* infrared monster there.
|
* infrared monster there.
|
||||||
*/
|
*/
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+1
-1
@@ -1776,7 +1776,7 @@ adjust_menu_promptstyle(winid window, color_attr *style)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Common code point leading into the interface-specifc
|
* Common code point leading into the interface-specific
|
||||||
* add_menu() to allow single-spot adjustments to the parameters,
|
* add_menu() to allow single-spot adjustments to the parameters,
|
||||||
* such as those done by menu_colors.
|
* such as those done by menu_colors.
|
||||||
*/
|
*/
|
||||||
|
|||||||
+1
-1
@@ -610,7 +610,7 @@ nasty(struct monst *summoner)
|
|||||||
* and 20 are neutral. [These numbers are up date for
|
* and 20 are neutral. [These numbers are up date for
|
||||||
* 3.7.0; the ones in the next paragraph are not....]
|
* 3.7.0; the ones in the next paragraph are not....]
|
||||||
*
|
*
|
||||||
* Neutral caster, used for late-game harrassment,
|
* Neutral caster, used for late-game harassment,
|
||||||
* has 18/42 chance to stop the inner loop on each
|
* has 18/42 chance to stop the inner loop on each
|
||||||
* critter, 24/42 chance for another iteration.
|
* critter, 24/42 chance for another iteration.
|
||||||
* Lawful caster has 28/42 chance to stop unless the
|
* Lawful caster has 28/42 chance to stop unless the
|
||||||
|
|||||||
@@ -508,7 +508,7 @@ bhitm(struct monst *mtmp, struct obj *otmp)
|
|||||||
if (mtmp->isshk && !*u.ushops)
|
if (mtmp->isshk && !*u.ushops)
|
||||||
hot_pursuit(mtmp);
|
hot_pursuit(mtmp);
|
||||||
} else if (M_AP_TYPE(mtmp))
|
} else if (M_AP_TYPE(mtmp))
|
||||||
seemimic(mtmp); /* might unblock if mimicing a boulder/door */
|
seemimic(mtmp); /* might unblock if mimicking a boulder/door */
|
||||||
}
|
}
|
||||||
/* note: gb.bhitpos won't be set if swallowed, but that's okay since
|
/* note: gb.bhitpos won't be set if swallowed, but that's okay since
|
||||||
* reveal_invis will be false. We can't use mtmp->mx, my since it
|
* reveal_invis will be false. We can't use mtmp->mx, my since it
|
||||||
@@ -4604,7 +4604,7 @@ dobuzz(
|
|||||||
int spell_type;
|
int spell_type;
|
||||||
int hdmgtype = Hallucination ? rn2(6) : damgtype;
|
int hdmgtype = Hallucination ? rn2(6) : damgtype;
|
||||||
|
|
||||||
/* if its a Hero Spell then get its SPE_TYPE */
|
/* if it's a Hero Spell then get its SPE_TYPE */
|
||||||
spell_type = is_hero_spell(type) ? SPE_MAGIC_MISSILE + damgtype : 0;
|
spell_type = is_hero_spell(type) ? SPE_MAGIC_MISSILE + damgtype : 0;
|
||||||
|
|
||||||
if (u.uswallow) {
|
if (u.uswallow) {
|
||||||
@@ -6098,7 +6098,7 @@ makewish(void)
|
|||||||
"made %s first artifact wish - %s", uhis(), wish);
|
"made %s first artifact wish - %s", uhis(), wish);
|
||||||
else
|
else
|
||||||
livelog_printf((LL_WISH | maybe_LL_arti), "wished for %s", wish);
|
livelog_printf((LL_WISH | maybe_LL_arti), "wished for %s", wish);
|
||||||
/* TODO? maybe generate a second event decribing what was received since
|
/* TODO? maybe generate a second event describing what was received since
|
||||||
those just echo player's request rather than show actual result */
|
those just echo player's request rather than show actual result */
|
||||||
|
|
||||||
const char *verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "slip" : "drop"),
|
const char *verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "slip" : "drop"),
|
||||||
|
|||||||
+5
-5
@@ -25,11 +25,11 @@ Generally the build is the same as the unix build:
|
|||||||
|
|
||||||
|
|
||||||
[Edit Oct 4, 2020:]
|
[Edit Oct 4, 2020:]
|
||||||
Resulting libaries will be in the `targets/wasm` directory for `CROSS_TO_WASM=1`.
|
Resulting libraries will be in the `targets/wasm` directory for `CROSS_TO_WASM=1`.
|
||||||
Resulting libaries will be in the `src` directory for `WANT_LIBNH=1`.
|
Resulting libraries will be in the `src` directory for `WANT_LIBNH=1`.
|
||||||
|
|
||||||
[Original text:]
|
[Original text:]
|
||||||
Resulting libaries will be in the `src` directory.
|
Resulting libraries will be in the `src` directory.
|
||||||
|
|
||||||
WASM also has a npm module that can be published out of `sys/lib/npm-library`. After building the `nethack.js` it can be published by:
|
WASM also has a npm module that can be published out of `sys/lib/npm-library`. After building the `nethack.js` it can be published by:
|
||||||
1. `cd sys/lib/npm-library`
|
1. `cd sys/lib/npm-library`
|
||||||
@@ -38,13 +38,13 @@ WASM also has a npm module that can be published out of `sys/lib/npm-library`. A
|
|||||||
## API: libnethack.a
|
## API: libnethack.a
|
||||||
The API is two functions:
|
The API is two functions:
|
||||||
* `nhmain(int argc, char *argv[])` - The main function for NetHack that configures the program and runs the `moveloop()` until the game is over. The arguments to this function are the [command line arguments](https://nethackwiki.com/wiki/Options) to NetHack.
|
* `nhmain(int argc, char *argv[])` - The main function for NetHack that configures the program and runs the `moveloop()` until the game is over. The arguments to this function are the [command line arguments](https://nethackwiki.com/wiki/Options) to NetHack.
|
||||||
* `shim_graphics_set_callback(shim_callback_t cb)` - A single function that sets a callback to gather graphics events: write a string to screen, get user input, etc. Your job is to pass in a callback and handle all the requested rendering events to show NetHack on the scrren. The callback is `void shim_callback_t(const char *name, void *ret_ptr, const char *fmt, ...)`
|
* `shim_graphics_set_callback(shim_callback_t cb)` - A single function that sets a callback to gather graphics events: write a string to screen, get user input, etc. Your job is to pass in a callback and handle all the requested rendering events to show NetHack on the screen. The callback is `void shim_callback_t(const char *name, void *ret_ptr, const char *fmt, ...)`
|
||||||
* `name` is the name of the [window function](https://github.com/NetHack/NetHack/blob/NetHack-3.7/doc/window.txt) that needs to be handled
|
* `name` is the name of the [window function](https://github.com/NetHack/NetHack/blob/NetHack-3.7/doc/window.txt) that needs to be handled
|
||||||
* `ret_ptr` is a pointer to a memory space for the return value. The type expected to be returned in this pointer is described by the first character of the `fmt` string.
|
* `ret_ptr` is a pointer to a memory space for the return value. The type expected to be returned in this pointer is described by the first character of the `fmt` string.
|
||||||
* `fmt` is a string that describes the signature of the callback. The first character in the string is the return type and any additional characters describe the variable arguments: `i` for integer, `s` for string, `p` for pointer, `c` for character, `v` for void. For example, if format is "vis" the callback will have no return (void), the first argument will be an integer, and the second argument will be a string. If format is "iii" the callback must return an integer, and both the arguments passed in will be integers.
|
* `fmt` is a string that describes the signature of the callback. The first character in the string is the return type and any additional characters describe the variable arguments: `i` for integer, `s` for string, `p` for pointer, `c` for character, `v` for void. For example, if format is "vis" the callback will have no return (void), the first argument will be an integer, and the second argument will be a string. If format is "iii" the callback must return an integer, and both the arguments passed in will be integers.
|
||||||
* [Variadic arguments](https://www.gnu.org/software/libc/manual/html_node/Variadic-Example.html): a variable number and type of arguments depending on the `window function` that is being called. The arguments associated with each `name` are described in the [NetHack window.txt](https://github.com/NetHack/NetHack/blob/NetHack-3.7/doc/window.txt).
|
* [Variadic arguments](https://www.gnu.org/software/libc/manual/html_node/Variadic-Example.html): a variable number and type of arguments depending on the `window function` that is being called. The arguments associated with each `name` are described in the [NetHack window.txt](https://github.com/NetHack/NetHack/blob/NetHack-3.7/doc/window.txt).
|
||||||
|
|
||||||
Where is the header file for the API you ask? There isn't one. It's three functions, just drop the forward declarations at the top of your file (or create your own header). It's more work figuring out how to install and copy around header files than it's worth for such a small API. If you disagree, feel free to sumbit a PR to fix it. :)
|
Where is the header file for the API you ask? There isn't one. It's three functions, just drop the forward declarations at the top of your file (or create your own header). It's more work figuring out how to install and copy around header files than it's worth for such a small API. If you disagree, feel free to submit a PR to fix it. :)
|
||||||
|
|
||||||
## API: nethack.js
|
## API: nethack.js
|
||||||
The WebAssembly API has a similar signature to `libnethack.a` with minor syntactic differences:
|
The WebAssembly API has a similar signature to `libnethack.a` with minor syntactic differences:
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ II. There once was a time when people built NetHack right on their DOS machine.
|
|||||||
CROSS_TO_MSDOS=1
|
CROSS_TO_MSDOS=1
|
||||||
on your make command line.
|
on your make command line.
|
||||||
|
|
||||||
Note: Both the fetch-cross-compiler.sh script and and the msdos
|
Note: Both the fetch-cross-compiler.sh script and the msdos
|
||||||
cross-compile and package procedures require unzip and zip to be available
|
cross-compile and package procedures require unzip and zip to be available
|
||||||
on your host build system.
|
on your host build system.
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -111,7 +111,7 @@ typedef long clock_t;
|
|||||||
#include <dos.h> /* needed for delay() */
|
#include <dos.h> /* needed for delay() */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SCREEN_DJGPPFAST /* parts of this block may be unecessary now */
|
#ifdef SCREEN_DJGPPFAST /* parts of this block may be unnecessary now */
|
||||||
#define get_cursor(x, y) ScreenGetCursor(y, x)
|
#define get_cursor(x, y) ScreenGetCursor(y, x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ int attrib_gr_normal; /* graphics mode normal attribute */
|
|||||||
int attrib_text_intense; /* text mode intense attribute */
|
int attrib_text_intense; /* text mode intense attribute */
|
||||||
int attrib_gr_intense; /* graphics mode intense attribute */
|
int attrib_gr_intense; /* graphics mode intense attribute */
|
||||||
uint32 curframecolor = NO_COLOR; /* current background text color */
|
uint32 curframecolor = NO_COLOR; /* current background text color */
|
||||||
boolean traditional = FALSE; /* traditonal TTY character mode */
|
boolean traditional = FALSE; /* traditional TTY character mode */
|
||||||
boolean inmap = FALSE; /* in the map window */
|
boolean inmap = FALSE; /* in the map window */
|
||||||
char ttycolors[CLR_MAX]; /* also used/set in options.c */
|
char ttycolors[CLR_MAX]; /* also used/set in options.c */
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1340,7 +1340,7 @@ vesa_FontPtrs(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This will verify the existance of a VGA adapter on the machine.
|
* This will verify the existence of a VGA adapter on the machine.
|
||||||
* Video function call 0x4F00 returns 0x004F in AX if successful, and
|
* Video function call 0x4F00 returns 0x004F in AX if successful, and
|
||||||
* returns a VbeInfoBlock describing the features of the VESA BIOS.
|
* returns a VbeInfoBlock describing the features of the VESA BIOS.
|
||||||
*/
|
*/
|
||||||
@@ -1628,7 +1628,7 @@ vesa_WriteCharXY(uint32 chr, int pixx, int pixy, uint32 colour)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Draw a character with a transparent background
|
* Draw a character with a transparent background
|
||||||
* Don't bother cacheing; only the position bar and the cursor use this
|
* Don't bother caching; only the position bar and the cursor use this
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
vesa_WriteCharTransparent(int chr, int pixx, int pixy, int colour)
|
vesa_WriteCharTransparent(int chr, int pixx, int pixy, int colour)
|
||||||
|
|||||||
+1
-1
@@ -917,7 +917,7 @@ vga_FontPtrs(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This will verify the existance of a VGA adapter on the machine.
|
* This will verify the existence of a VGA adapter on the machine.
|
||||||
* Video function call 0x1a returns 0x1a in AL if successful, and
|
* Video function call 0x1a returns 0x1a in AL if successful, and
|
||||||
* returns the following values in BL for the active display:
|
* returns the following values in BL for the active display:
|
||||||
*
|
*
|
||||||
|
|||||||
+1
-1
@@ -209,7 +209,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* okay so we have the overriding and definitive locaton
|
/* okay so we have the overriding and definitive location
|
||||||
for sysconf, but only in the event that there is not a
|
for sysconf, but only in the event that there is not a
|
||||||
sysconf file there (for whatever reason), check a secondary
|
sysconf file there (for whatever reason), check a secondary
|
||||||
location rather than abort. */
|
location rather than abort. */
|
||||||
|
|||||||
+3
-3
@@ -12,7 +12,7 @@
|
|||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Several minor changes were made for the NetHack distribution to satisfy
|
/* Several minor changes were made for the NetHack distribution to satisfy
|
||||||
@@ -56,7 +56,7 @@ static char sccsid[] = "@(#)random.c 5.5 (Berkeley) 7/6/88";
|
|||||||
* initialized to contain information for random number generation with that
|
* initialized to contain information for random number generation with that
|
||||||
* much state information. Good sizes for the amount of state information are
|
* much state information. Good sizes for the amount of state information are
|
||||||
* 32, 64, 128, and 256 bytes. The state can be switched by calling the
|
* 32, 64, 128, and 256 bytes. The state can be switched by calling the
|
||||||
* setstate() routine with the same array as was initiallized with
|
* setstate() routine with the same array as was initialized with
|
||||||
* initstate().
|
* initstate().
|
||||||
* By default, the package runs with 128 bytes of state information and
|
* By default, the package runs with 128 bytes of state information and
|
||||||
* generates far better random numbers than a linear congruential generator.
|
* generates far better random numbers than a linear congruential generator.
|
||||||
@@ -348,7 +348,7 @@ char *arg_state;
|
|||||||
* random:
|
* random:
|
||||||
* If we are using the trivial TYPE_0 R.N.G., just do the old linear
|
* If we are using the trivial TYPE_0 R.N.G., just do the old linear
|
||||||
* congruential bit. Otherwise, we do our fancy trinomial stuff, which is the
|
* congruential bit. Otherwise, we do our fancy trinomial stuff, which is the
|
||||||
* same in all ther other cases due to all the global variables that have been
|
* same in all the other cases due to all the global variables that have been
|
||||||
* set up. The basic operation is to add the number at the rear pointer into
|
* set up. The basic operation is to add the number at the rear pointer into
|
||||||
* the one at the front pointer. Then both pointers are advanced to the next
|
* the one at the front pointer. Then both pointers are advanced to the next
|
||||||
* location cyclically in the table. The value returned is the sum generated,
|
* location cyclically in the table. The value returned is the sum generated,
|
||||||
|
|||||||
+1
-1
@@ -309,7 +309,7 @@ setftty(void)
|
|||||||
start_screen();
|
start_screen();
|
||||||
}
|
}
|
||||||
|
|
||||||
void intron(void) /* enable kbd interupts if enabled when game started */
|
void intron(void) /* enable kbd interrupts if enabled when game started */
|
||||||
{
|
{
|
||||||
#ifdef TTY_GRAPHICS
|
#ifdef TTY_GRAPHICS
|
||||||
/* Ugly hack to keep from changing tty modes for non-tty games -dlc */
|
/* Ugly hack to keep from changing tty modes for non-tty games -dlc */
|
||||||
|
|||||||
@@ -12,14 +12,14 @@
|
|||||||
* from this software without specific prior written permission.
|
* from this software without specific prior written permission.
|
||||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
||||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Modified 12 April 1990 by Mark Adler for use on MSDOS systems with
|
* Modified 12 April 1990 by Mark Adler for use on MSDOS systems with
|
||||||
* Microsoft C and Turbo C.
|
* Microsoft C and Turbo C.
|
||||||
*
|
*
|
||||||
* Modifed 13 February 1991 by Greg Roelofs for use on VMS systems. As
|
* Modified 13 February 1991 by Greg Roelofs for use on VMS systems. As
|
||||||
* with the MS-DOS version, the setting of the file mode has been disabled.
|
* with the MS-DOS version, the setting of the file mode has been disabled.
|
||||||
* Compile and link normally (but note that the shared-image link option
|
* Compile and link normally (but note that the shared-image link option
|
||||||
* produces a binary only 6 blocks long, as opposed to the 137-block one
|
* produces a binary only 6 blocks long, as opposed to the 137-block one
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ DIRPERM = 0755
|
|||||||
# per discussion in Install.X11 and Install.Qt
|
# per discussion in Install.X11 and Install.Qt
|
||||||
# Qt prefers nhtiles.bmp but can use x11tiles, and it ignores NetHack.ad.
|
# Qt prefers nhtiles.bmp but can use x11tiles, and it ignores NetHack.ad.
|
||||||
# X11 uses those last two.
|
# X11 uses those last two.
|
||||||
# Both can display a convential text map instead of tiles.
|
# Both can display a conventional text map instead of tiles.
|
||||||
# tty and/or curses (no extra data files outside of the dlb container):
|
# tty and/or curses (no extra data files outside of the dlb container):
|
||||||
#VARDATND =
|
#VARDATND =
|
||||||
# All X11 and/or Qt variations may also include tty or curses or both):
|
# All X11 and/or Qt variations may also include tty or curses or both):
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user