Merge branch 'NetHack-3.6'
This commit is contained in:
65
dat/history
65
dat/history
@@ -237,12 +237,13 @@ particularly intriguing modification to help out with the game. The
|
|||||||
NetHack Development Team sometimes makes note of the names of the worst
|
NetHack Development Team sometimes makes note of the names of the worst
|
||||||
of these miscreants in this, the list of Dungeoneers:
|
of these miscreants in this, the list of Dungeoneers:
|
||||||
|
|
||||||
Adam Aronow Janet Walz Nathan Eady
|
Adam Aronow J. Ali Harlow Mikko Juola
|
||||||
Alex Kompel Janne Salmijarvi Norm Meluch
|
Alex Kompel Janet Walz Nathan Eady
|
||||||
Alex Smith Jean-Christophe Collet Olaf Seibert
|
Alex Smith Janne Salmijarvi Norm Meluch
|
||||||
Andreas Dorn Jeff Bailey Pasi Kallinen
|
Andreas Dorn Jean-Christophe Collet Olaf Seibert
|
||||||
Andy Church Jochen Erwied Pat Rankin
|
Andy Church Jeff Bailey Pasi Kallinen
|
||||||
Andy Swanson John Kallen Patric Mueller
|
Andy Swanson Jochen Erwied Pat Rankin
|
||||||
|
Andy Thomson John Kallen Patric Mueller
|
||||||
Ari Huttunen John Rupley Paul Winner
|
Ari Huttunen John Rupley Paul Winner
|
||||||
Bart House John S. Bien Pierre Martineau
|
Bart House John S. Bien Pierre Martineau
|
||||||
Benson I. Margulies Johnny Lee Ralf Brown
|
Benson I. Margulies Johnny Lee Ralf Brown
|
||||||
@@ -251,30 +252,30 @@ of these miscreants in this, the list of Dungeoneers:
|
|||||||
Bruce Cox Joshua Delahunty Richard Beigel
|
Bruce Cox Joshua Delahunty Richard Beigel
|
||||||
Bruce Holloway Karl Garrison Richard P. Hughey
|
Bruce Holloway Karl Garrison Richard P. Hughey
|
||||||
Bruce Mewborne Keizo Yamamoto Rob Menke
|
Bruce Mewborne Keizo Yamamoto Rob Menke
|
||||||
Carl Schelin Ken Arnold Robin Bandy
|
Carl Schelin Keith Simpson Robin Bandy
|
||||||
Chris Russo Ken Arromdee Robin Johnson
|
Chris Russo Ken Arnold Robin Johnson
|
||||||
David Cohrs Ken Lorber Roderick Schertler
|
David Cohrs Ken Arromdee Roderick Schertler
|
||||||
David Damerell Ken Washikita Roland McGrath
|
David Damerell Ken Lorber Roland McGrath
|
||||||
David Gentzel Kevin Darcy Ron Van Iwaarden
|
David Gentzel Ken Washikita Ron Van Iwaarden
|
||||||
David Hairston Kevin Hugo Ronnen Miller
|
David Hairston Kevin Darcy Ronnen Miller
|
||||||
Dean Luick Kevin Sitze Ross Brown
|
Dean Luick Kevin Hugo Ross Brown
|
||||||
Del Lamb Kevin Smolkowski Sascha Wostmann
|
Del Lamb Kevin Sitze Sascha Wostmann
|
||||||
Derek S. Ray Kevin Sweet Scott Bigham
|
Derek S. Ray Kevin Smolkowski Scott Bigham
|
||||||
Deron Meranda Lars Huttar Scott R. Turner
|
Deron Meranda Kevin Sweet Scott R. Turner
|
||||||
Dion Nicolaas Leon Arnott Sean Hunt
|
Dion Nicolaas Lars Huttar Sean Hunt
|
||||||
Dylan O'Donnell M. Drew Streib Stephen Spackman
|
Dylan O'Donnell Leon Arnott Stephen Spackman
|
||||||
Eric Backus Malcolm Ryan Stefan Thielscher
|
Eric Backus M. Drew Streib Stefan Thielscher
|
||||||
Eric Hendrickson Mark Gooderum Stephen White
|
Eric Hendrickson Malcolm Ryan Stephen White
|
||||||
Eric R. Smith Mark Modrall Steve Creps
|
Eric R. Smith Mark Gooderum Steve Creps
|
||||||
Eric S. Raymond Marvin Bressler Steve Linhart
|
Eric S. Raymond Mark Modrall Steve Linhart
|
||||||
Erik Andersen Matthew Day Steve VanDevender
|
Erik Andersen Marvin Bressler Steve VanDevender
|
||||||
Frederick Roeber Merlyn LeRoy Teemu Suikki
|
Fredrik Ljungdahl Matthew Day Teemu Suikki
|
||||||
Gil Neiger Michael Allison Tim Lennan
|
Frederick Roeber Merlyn LeRoy Tim Lennan
|
||||||
Greg Laskin Michael Feir Timo Hakulinen
|
Gil Neiger Michael Allison Timo Hakulinen
|
||||||
Greg Olson Michael Hamel Tom Almy
|
Greg Laskin Michael Feir Tom Almy
|
||||||
Gregg Wonderly Michael Sokolov Tom West
|
Greg Olson Michael Hamel Tom West
|
||||||
Hao-yang Wang Mike Engber Warren Cheung
|
Gregg Wonderly Michael Sokolov Warren Cheung
|
||||||
Helge Hafting Mike Gallop Warwick Allison
|
Hao-yang Wang Mike Engber Warwick Allison
|
||||||
Irina Rempt-Drijfhout Mike Passaretti Yitzhak Sapir
|
Helge Hafting Mike Gallop Yitzhak Sapir
|
||||||
|
Irina Rempt-Drijfhout Mike Passaretti
|
||||||
Izchak Miller Mike Stephenson
|
Izchak Miller Mike Stephenson
|
||||||
J. Ali Harlow Mikko Juola
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
.ds vr "NetHack 3.7
|
.ds vr "NetHack 3.7
|
||||||
.ds f0 "\*(vr
|
.ds f0 "\*(vr
|
||||||
.ds f1
|
.ds f1
|
||||||
.ds f2 "October 31, 2019
|
.ds f2 "November 2, 2019
|
||||||
.
|
.
|
||||||
.\" A note on some special characters:
|
.\" A note on some special characters:
|
||||||
.\" \(lq = left double quote
|
.\" \(lq = left double quote
|
||||||
@@ -2617,8 +2617,7 @@ Using a configuration file
|
|||||||
.hw .nethackrc defaults.nh nethack.exe nethackW.exe
|
.hw .nethackrc defaults.nh nethack.exe nethackW.exe
|
||||||
The default name of the configuration file varies on different
|
The default name of the configuration file varies on different
|
||||||
operating systems.
|
operating systems.
|
||||||
On MS-DOS and Windows, it is \(lqdefaults.nh\(rq
|
.pg
|
||||||
in the same folder as nethack.exe or nethackW.exe.
|
|
||||||
On
|
On
|
||||||
.UX ,
|
.UX ,
|
||||||
Linux,
|
Linux,
|
||||||
@@ -2626,6 +2625,19 @@ and Mac OS X it is \(lq.nethackrc\(rq in the user's home directory.
|
|||||||
The file may not exist, but it is a normal ASCII text file and
|
The file may not exist, but it is a normal ASCII text file and
|
||||||
can be created with any text editor.
|
can be created with any text editor.
|
||||||
.pg
|
.pg
|
||||||
|
On Windows, if you manually installed from the zip file,
|
||||||
|
it is \(lqdefaults.nh\(rq
|
||||||
|
in the same folder as nethack.exe or nethackW.exe.
|
||||||
|
If you installed using the Microsoft Store, it is
|
||||||
|
\(lqdefaults.nh\(rq in the following folder:
|
||||||
|
\(lq\\%USERPROFILE%\\NetHack\(rq. There, a starting template is
|
||||||
|
provided for you to use to create your \(lqdefaults.nh\(rq
|
||||||
|
configuration file. It is \(lqdefaults.tmp\(rq also in the following
|
||||||
|
folder:
|
||||||
|
\(lq\\%USERPROFILE%\\NetHack\(rq
|
||||||
|
.pg
|
||||||
|
On MS-DOS, it is \(lqdefaults.nh\(rq in the same folder as nethack.exe.
|
||||||
|
.pg
|
||||||
Any line in the configuration file starting with \(oq#\(cq is treated
|
Any line in the configuration file starting with \(oq#\(cq is treated
|
||||||
as a comment.
|
as a comment.
|
||||||
Empty lines are ignored.
|
Empty lines are ignored.
|
||||||
@@ -4286,7 +4298,7 @@ text to match against.
|
|||||||
.lp "*"
|
.lp "*"
|
||||||
\(lqalways\(rq will set the default attributes for that field.
|
\(lqalways\(rq will set the default attributes for that field.
|
||||||
.lp "*"
|
.lp "*"
|
||||||
\(lqup\(rq and \(lqdown\(rq set the field attributes for when the field
|
\(lqup\(rq, \(lqdown\(rq set the field attributes for when the field
|
||||||
value changes upwards or downwards.
|
value changes upwards or downwards.
|
||||||
This attribute times out after
|
This attribute times out after
|
||||||
.op statushilites
|
.op statushilites
|
||||||
@@ -5126,12 +5138,13 @@ miscreants in this, the list of Dungeoneers:
|
|||||||
center;
|
center;
|
||||||
c c c.
|
c c c.
|
||||||
.\"TABLE_START
|
.\"TABLE_START
|
||||||
Adam Aronow Janet Walz Nathan Eady
|
Adam Aronow J. Ali Harlow Mikko Juola
|
||||||
Alex Kompel Janne Salmijarvi Norm Meluch
|
Alex Kompel Janet Walz Nathan Eady
|
||||||
Alex Smith Jean-Christophe Collet Olaf Seibert
|
Alex Smith Janne Salmijarvi Norm Meluch
|
||||||
Andreas Dorn Jeff Bailey Pasi Kallinen
|
Andreas Dorn Jean-Christophe Collet Olaf Seibert
|
||||||
Andy Church Jochen Erwied Pat Rankin
|
Andy Church Jeff Bailey Pasi Kallinen
|
||||||
Andy Swanson John Kallen Patric Mueller
|
Andy Swanson Jochen Erwied Pat Rankin
|
||||||
|
Andy Thomson John Kallen Patric Mueller
|
||||||
Ari Huttunen John Rupley Paul Winner
|
Ari Huttunen John Rupley Paul Winner
|
||||||
Bart House John S. Bien Pierre Martineau
|
Bart House John S. Bien Pierre Martineau
|
||||||
Benson I. Margulies Johnny Lee Ralf Brown
|
Benson I. Margulies Johnny Lee Ralf Brown
|
||||||
@@ -5140,33 +5153,33 @@ Boudewijn Waijers Jonathan Handler Richard Addison
|
|||||||
Bruce Cox Joshua Delahunty Richard Beigel
|
Bruce Cox Joshua Delahunty Richard Beigel
|
||||||
Bruce Holloway Karl Garrison Richard P. Hughey
|
Bruce Holloway Karl Garrison Richard P. Hughey
|
||||||
Bruce Mewborne Keizo Yamamoto Rob Menke
|
Bruce Mewborne Keizo Yamamoto Rob Menke
|
||||||
Carl Schelin Ken Arnold Robin Bandy
|
Carl Schelin Keith Simpson Robin Bandy
|
||||||
Chris Russo Ken Arromdee Robin Johnson
|
Chris Russo Ken Arnold Robin Johnson
|
||||||
David Cohrs Ken Lorber Roderick Schertler
|
David Cohrs Ken Arromdee Roderick Schertler
|
||||||
David Damerell Ken Washikita Roland McGrath
|
David Damerell Ken Lorber Roland McGrath
|
||||||
David Gentzel Kevin Darcy Ron Van Iwaarden
|
David Gentzel Ken Washikita Ron Van Iwaarden
|
||||||
David Hairston Kevin Hugo Ronnen Miller
|
David Hairston Kevin Darcy Ronnen Miller
|
||||||
Dean Luick Kevin Sitze Ross Brown
|
Dean Luick Kevin Hugo Ross Brown
|
||||||
Del Lamb Kevin Smolkowski Sascha Wostmann
|
Del Lamb Kevin Sitze Sascha Wostmann
|
||||||
Derek S. Ray Kevin Sweet Scott Bigham
|
Derek S. Ray Kevin Smolkowski Scott Bigham
|
||||||
Deron Meranda Lars Huttar Scott R. Turner
|
Deron Meranda Kevin Sweet Scott R. Turner
|
||||||
Dion Nicolaas Leon Arnott Sean Hunt
|
Dion Nicolaas Lars Huttar Sean Hunt
|
||||||
Dylan O'Donnell M. Drew Streib Stephen Spackman
|
Dylan O'Donnell Leon Arnott Stephen Spackman
|
||||||
Eric Backus Malcolm Ryan Stefan Thielscher
|
Eric Backus M. Drew Streib Stefan Thielscher
|
||||||
Eric Hendrickson Mark Gooderum Stephen White
|
Eric Hendrickson Malcolm Ryan Stephen White
|
||||||
Eric R. Smith Mark Modrall Steve Creps
|
Eric R. Smith Mark Gooderum Steve Creps
|
||||||
Eric S. Raymond Marvin Bressler Steve Linhart
|
Eric S. Raymond Mark Modrall Steve Linhart
|
||||||
Erik Andersen Matthew Day Steve VanDevender
|
Erik Andersen Marvin Bressler Steve VanDevender
|
||||||
Frederick Roeber Merlyn LeRoy Teemu Suikki
|
Fredrik Ljungdahl Matthew Day Teemu Suikki
|
||||||
Gil Neiger Michael Allison Tim Lennan
|
Frederick Roeber Merlyn LeRoy Tim Lennan
|
||||||
Greg Laskin Michael Feir Timo Hakulinen
|
Gil Neiger Michael Allison Timo Hakulinen
|
||||||
Greg Olson Michael Hamel Tom Almy
|
Greg Laskin Michael Feir Tom Almy
|
||||||
Gregg Wonderly Michael Sokolov Tom West
|
Greg Olson Michael Hamel Tom West
|
||||||
Hao-yang Wang Mike Engber Warren Cheung
|
Gregg Wonderly Michael Sokolov Warren Cheung
|
||||||
Helge Hafting Mike Gallop Warwick Allison
|
Hao-yang Wang Mike Engber Warwick Allison
|
||||||
Irina Rempt-Drijfhout Mike Passaretti Yitzhak Sapir
|
Helge Hafting Mike Gallop Yitzhak Sapir
|
||||||
|
Irina Rempt-Drijfhout Mike Passaretti
|
||||||
Izchak Miller Mike Stephenson
|
Izchak Miller Mike Stephenson
|
||||||
J. Ali Harlow Mikko Juola
|
|
||||||
.\"TABLE_END Do not delete this line.
|
.\"TABLE_END Do not delete this line.
|
||||||
.TE
|
.TE
|
||||||
.pg
|
.pg
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
%.au
|
%.au
|
||||||
\author{Original version - Eric S. Raymond\\
|
\author{Original version - Eric S. Raymond\\
|
||||||
(Edited and expanded for 3.6 by Mike Stephenson and others)}
|
(Edited and expanded for 3.6 by Mike Stephenson and others)}
|
||||||
\date{October 31, 2019}
|
\date{November 2, 2019}
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
@@ -2867,27 +2867,32 @@ for system administrators.
|
|||||||
|
|
||||||
%.pg
|
%.pg
|
||||||
The default name and location of the configuration file varies on different
|
The default name and location of the configuration file varies on different
|
||||||
operating systems. If you manually installed on MS-DOS and Windows,
|
operating systems.\\
|
||||||
it is \mbox{``defaults.nh''} in
|
|
||||||
the same folder as \mbox{{\it nethack.exe\/}} or \mbox{{\it nethackW.exe\/}}.
|
%.lp ""
|
||||||
If you installed using the Microsoft Store, it is \mbox{``defaults.nh''} in
|
|
||||||
the folder \mbox{{``\%USERPROFILE\%\textbackslash NetHack''}}.
|
|
||||||
On Unix, Linux and Mac OS X it is \mbox{``.nethackrc''} in the user's home
|
On Unix, Linux and Mac OS X it is \mbox{``.nethackrc''} in the user's home
|
||||||
directory. The file may not exist, but it is a normal ASCII text file and
|
directory. The file may not exist, but it is a normal ASCII text file and
|
||||||
can be created with any text editor.
|
can be created with any text editor.\\
|
||||||
|
|
||||||
%.pg
|
%.lp ""
|
||||||
If you installed using the Microsoft Store, you will find that we provide
|
On Windows, if you manually installed from the zip file,
|
||||||
a starting template for you to use to create your \mbox{``defaults.nh''}
|
it is \mbox{``defaults.nh''} in the same folder as
|
||||||
configuration file. It is \mbox{``defaults.tmp''} also in the folder
|
\mbox{{\it nethack.exe\/}} or \mbox{{\it nethackW.exe\/}}.
|
||||||
|
If you installed using the Microsoft Store, it is \mbox{``defaults.nh''} in
|
||||||
|
the following folder:
|
||||||
\mbox{{``\%USERPROFILE\%\textbackslash NetHack''}}.
|
\mbox{{``\%USERPROFILE\%\textbackslash NetHack''}}.
|
||||||
|
There, a starting template is provided for you to use to create your
|
||||||
|
\mbox{``defaults.nh''} configuration file. It is \mbox{``defaults.tmp''}
|
||||||
|
also in the following folder:
|
||||||
|
\mbox{{``\%USERPROFILE\%\textbackslash NetHack''}}.\\
|
||||||
|
|
||||||
%.pg
|
%.lp ""
|
||||||
|
On MS-DOS it is \mbox{``defaults.nh''} in the same folder as
|
||||||
|
\mbox{{\it nethack.exe\/}}.\\
|
||||||
|
|
||||||
|
%.lp ""
|
||||||
Any line in the configuration file starting with `{\tt \#}' is treated as a comment.
|
Any line in the configuration file starting with `{\tt \#}' is treated as a comment.
|
||||||
Empty lines are ignored.
|
Empty lines are ignored. Any line beginning with `{\tt [}' and ending in `{\tt ]}' is considered a section
|
||||||
|
|
||||||
%.pg
|
|
||||||
Any line beginning with `{\tt [}' and ending in `{\tt ]}' is considered a section
|
|
||||||
marker. The text between the square brackets is the section name.
|
marker. The text between the square brackets is the section name.
|
||||||
Lines after a section marker belong to that section, and are
|
Lines after a section marker belong to that section, and are
|
||||||
ignored unless a CHOOSE -statement was used to select that section.
|
ignored unless a CHOOSE -statement was used to select that section.
|
||||||
@@ -4105,7 +4110,7 @@ Number of lines for traditional below-the-map status display.
|
|||||||
Acceptable values are 2 and 3 (default is 2).
|
Acceptable values are 2 and 3 (default is 2).
|
||||||
Curses and tty interfaces only.
|
Curses and tty interfaces only.
|
||||||
%.lp
|
%.lp
|
||||||
\item[\ib{term\verb+_+cols}\ \ {\it and}]"
|
\item[\ib{term\verb+_+cols} {\normalfont and}]
|
||||||
%.lp
|
%.lp
|
||||||
\item[\ib{term\verb+_+rows}]
|
\item[\ib{term\verb+_+rows}]
|
||||||
Curses interface only.
|
Curses interface only.
|
||||||
@@ -4383,154 +4388,154 @@ can only be bound to a single key.
|
|||||||
\elist
|
\elist
|
||||||
|
|
||||||
%.pg
|
%.pg
|
||||||
\blist{\itemindent 10mm \labelwidth 15mm \rightmargin 20mm}
|
\blist{\itemindent 10mm \labelwidth 15mm \rightmargin 15mm}
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{count}}]
|
\item[{\bb{count}}]
|
||||||
Prefix key to start a count, to repeat a command this many times.
|
Prefix key to start a count, to repeat a command this many times.
|
||||||
With {\it number\verb+_+pad\/} only. Default is `{\tt n}'.
|
With {\it number\verb+_+pad\/} only. Default is~`{\tt n}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{doinv}}]
|
\item[{\bb{doinv}}]
|
||||||
Show inventory. With {\it number\verb+_+pad\/} only. Default is `{\tt 0}'.
|
Show inventory. With {\it number\verb+_+pad\/} only. Default is~`{\tt 0}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{fight}}]
|
\item[{\bb{fight}}]
|
||||||
Prefix key to force fight a direction. Default is `{\tt F}'.
|
Prefix key to force fight a direction. Default is~`{\tt F}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{fight.numpad}}]
|
\item[{\bb{fight.numpad}}]
|
||||||
Prefix key to force fight a direction. With {\it number\verb+_+pad\/} only.
|
Prefix key to force fight a direction. With {\it number\verb+_+pad\/} only.
|
||||||
Default is `{\tt -}'.
|
Default is~`{\tt -}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getdir.help}}]
|
\item[{\bb{getdir.help}}]
|
||||||
When asked for a direction, the key to show the help. Default is `{\tt ?}'.
|
When asked for a direction, the key to show the help. Default is~`{\tt ?}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getdir.self}}]
|
\item[{\bb{getdir.self}}]
|
||||||
When asked for a direction, the key to target yourself. Default is `{\tt .}'.
|
When asked for a direction, the key to target yourself. Default is~`{\tt .}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getdir.self2}}]
|
\item[{\bb{getdir.self2}}]
|
||||||
When asked for a direction, the key to target yourself. Default is `{\tt s}'.
|
When asked for a direction, the key to target yourself. Default is~`{\tt s}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.autodescribe}}]
|
\item[{\bb{getpos.autodescribe}}]
|
||||||
When asked for a location, the key to toggle {\it autodescribe\/}.
|
When asked for a location, the key to toggle {\it autodescribe\/}.
|
||||||
Default is `{\tt \#}'.
|
Default is~`{\tt \#}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.all.next}}]
|
\item[{\bb{getpos.all.next}}]
|
||||||
When asked for a location, the key to go to next closest interesting thing.
|
When asked for a location, the key to go to next closest interesting thing.
|
||||||
Default is `{\tt a}'.
|
Default is~`{\tt a}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.all.prev}}]
|
\item[{\bb{getpos.all.prev}}]
|
||||||
When asked for a location, the key to go to previous closest interesting thing.
|
When asked for a location, the key to go to previous closest interesting thing.
|
||||||
Default is `{\tt A}'.
|
Default is~`{\tt A}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.door.next}}]
|
\item[{\bb{getpos.door.next}}]
|
||||||
When asked for a location, the key to go to next closest door or doorway.
|
When asked for a location, the key to go to next closest door or doorway.
|
||||||
Default is `{\tt d}'.
|
Default is~`{\tt d}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.door.prev}}]
|
\item[{\bb{getpos.door.prev}}]
|
||||||
When asked for a location, the key to go to previous closest door or doorway.
|
When asked for a location, the key to go to previous closest door or doorway.
|
||||||
Default is `{\tt D}'.
|
Default is~`{\tt D}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.help}}]
|
\item[{\bb{getpos.help}}]
|
||||||
When asked for a location, the key to show help. Default is `{\tt ?}'.
|
When asked for a location, the key to show help. Default is~`{\tt ?}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.mon.next}}]
|
\item[{\bb{getpos.mon.next}}]
|
||||||
When asked for a location, the key to go to next closest monster.
|
When asked for a location, the key to go to next closest monster.
|
||||||
Default is `{\tt m}'.
|
Default is~`{\tt m}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.mon.prev}}]
|
\item[{\bb{getpos.mon.prev}}]
|
||||||
When asked for a location, the key to go to previous closest monster.
|
When asked for a location, the key to go to previous closest monster.
|
||||||
Default is `{\tt M}'.
|
Default is~`{\tt M}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.obj.next}}]
|
\item[{\bb{getpos.obj.next}}]
|
||||||
When asked for a location, the key to go to next closest object.
|
When asked for a location, the key to go to next closest object.
|
||||||
Default is `{\tt o}'.
|
Default is~`{\tt o}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.obj.prev}}]
|
\item[{\bb{getpos.obj.prev}}]
|
||||||
When asked for a location, the key to go to previous closest object.
|
When asked for a location, the key to go to previous closest object.
|
||||||
Default is `{\tt O}'.
|
Default is~`{\tt O}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.menu}}]
|
\item[{\bb{getpos.menu}}]
|
||||||
When asked for a location, and using one of the next or previous keys to
|
When asked for a location, and using one of the next or previous keys to
|
||||||
cycle through targets, toggle showing a menu instead. Default is `{\tt !}'.
|
cycle through targets, toggle showing a menu instead. Default is~`{\tt !}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.moveskip}}]
|
\item[{\bb{getpos.moveskip}}]
|
||||||
When asked for a location, and using the shifted movement keys or
|
When asked for a location, and using the shifted movement keys or
|
||||||
meta-digit keys to fast-move around, move by skipping the same glyphs
|
meta-digit keys to fast-move around, move by skipping the same glyphs
|
||||||
instead of by 8 units.
|
instead of by 8 units.
|
||||||
Default is `{\tt *}'.
|
Default is~`{\tt *}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.filter}}]
|
\item[{\bb{getpos.filter}}]
|
||||||
When asked for a location, change the filtering mode when using one of
|
When asked for a location, change the filtering mode when using one of
|
||||||
the next or previous keys to cycle through targets. Toggles between no
|
the next or previous keys to cycle through targets. Toggles between no
|
||||||
filtering, in view only, and in the same area only. Default is `{\tt "}'.
|
filtering, in view only, and in the same area only. Default is~`{\tt "}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.pick}}]
|
\item[{\bb{getpos.pick}}]
|
||||||
When asked for a location, the key to choose the location, and possibly
|
When asked for a location, the key to choose the location, and possibly
|
||||||
ask for more info. Default is `{\tt .}'.
|
ask for more info. Default is~`{\tt .}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.pick.once}}]
|
\item[{\bb{getpos.pick.once}}]
|
||||||
When asked for a location, the key to choose the location, and skip
|
When asked for a location, the key to choose the location, and skip
|
||||||
asking for more info. Default is `{\tt ,}'.
|
asking for more info. Default is~`{\tt ,}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.pick.quick}}]
|
\item[{\bb{getpos.pick.quick}}]
|
||||||
When asked for a location, the key to choose the location, skip asking
|
When asked for a location, the key to choose the location, skip asking
|
||||||
for more info, and exit the location asking loop. Default is `{\tt ;}'.
|
for more info, and exit the location asking loop. Default is~`{\tt ;}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.pick.verbose}}]
|
\item[{\bb{getpos.pick.verbose}}]
|
||||||
When asked for a location, the key to choose the location, and show more
|
When asked for a location, the key to choose the location, and show more
|
||||||
info without asking. Default is `{\tt :}'.
|
info without asking. Default is~`{\tt :}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.self}}]
|
\item[{\bb{getpos.self}}]
|
||||||
When asked for a location, the key to go to your location.
|
When asked for a location, the key to go to your location.
|
||||||
Default is `{\tt @}'.
|
Default is~`{\tt @}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.unexplored.next}}]
|
\item[{\bb{getpos.unexplored.next}}]
|
||||||
When asked for a location, the key to go to next closest unexplored location.
|
When asked for a location, the key to go to next closest unexplored location.
|
||||||
Default is `{\tt x}'.
|
Default is~`{\tt x}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.unexplored.prev}}]
|
\item[{\bb{getpos.unexplored.prev}}]
|
||||||
When asked for a location, the key to go to previous closest unexplored
|
When asked for a location, the key to go to previous closest unexplored
|
||||||
location. Default is `{\tt X}'.
|
location. Default is~`{\tt X}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.valid}}]
|
\item[{\bb{getpos.valid}}]
|
||||||
When asked for a location, the key to go to show valid target locations.
|
When asked for a location, the key to go to show valid target locations.
|
||||||
Default is `{\tt \$}'.
|
Default is~`{\tt \$}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.valid.next}}]
|
\item[{\bb{getpos.valid.next}}]
|
||||||
When asked for a location, the key to go to next closest valid location.
|
When asked for a location, the key to go to next closest valid location.
|
||||||
Default is `{\tt z}'.
|
Default is~`{\tt z}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{getpos.valid.prev}}]
|
\item[{\bb{getpos.valid.prev}}]
|
||||||
When asked for a location, the key to go to previous closest valid location.
|
When asked for a location, the key to go to previous closest valid location.
|
||||||
Default is `{\tt Z}'.
|
Default is~`{\tt Z}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{nopickup}}]
|
\item[{\bb{nopickup}}]
|
||||||
Prefix key to move without picking up items. Default is `{\tt m}'.
|
Prefix key to move without picking up items. Default is~`{\tt m}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{redraw}}]
|
\item[{\bb{redraw}}]
|
||||||
Key to redraw the screen. Default is `{\tt \^{}R}'.
|
Key to redraw the screen. Default is~`{\tt \^{}R}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{redraw.numpad}}]
|
\item[{\bb{redraw.numpad}}]
|
||||||
Key to redraw the screen. With {\it number\verb+_+pad\/} only.
|
Key to redraw the screen. With {\it number\verb+_+pad\/} only.
|
||||||
Default is `{\tt \^{}L}'.
|
Default is~`{\tt \^{}L}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{repeat}}]
|
\item[{\bb{repeat}}]
|
||||||
Key to repeat previous command. Default is `{\tt \^{}A}'.
|
Key to repeat previous command. Default is~`{\tt \^{}A}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{reqmenu}}]
|
\item[{\bb{reqmenu}}]
|
||||||
Prefix key to request menu from some commands. Default is `{\tt m}'.
|
Prefix key to request menu from some commands. Default is~`{\tt m}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{run}}]
|
\item[{\bb{run}}]
|
||||||
Prefix key to run towards a direction. Default is `{\tt G}'.
|
Prefix key to run towards a direction. Default is~`{\tt G}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{run.nopickup}}]
|
\item[{\bb{run.nopickup}}]
|
||||||
Prefix key to run towards a direction without picking up items on the way.
|
Prefix key to run towards a direction without picking up items on the way.
|
||||||
Default is `{\tt M}'.
|
Default is~`{\tt M}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{run.numpad}}]
|
\item[{\bb{run.numpad}}]
|
||||||
Prefix key to run towards a direction. With {\it number\verb+_+pad\/} only.
|
Prefix key to run towards a direction. With {\it number\verb+_+pad\/} only.
|
||||||
Default is `{\tt 5}'.
|
Default is~`{\tt 5}'.
|
||||||
%.lp
|
%.lp
|
||||||
\item[{\bb{rush}}]
|
\item[{\bb{rush}}]
|
||||||
Prefix key to rush towards a direction. Default is `{\tt g}'.
|
Prefix key to rush towards a direction. Default is~`{\tt g}'.
|
||||||
\elist
|
\elist
|
||||||
|
|
||||||
|
|
||||||
@@ -4791,9 +4796,9 @@ percentage or absolute number threshold, or text to match against.
|
|||||||
%.lp "*"
|
%.lp "*"
|
||||||
\item[{\tt always}] will set the default attributes for that field.
|
\item[{\tt always}] will set the default attributes for that field.
|
||||||
%.lp "*"
|
%.lp "*"
|
||||||
\item[{\tt up} and ``{\tt down}''] set the field attributes for when the field
|
\item[{\tt up}{\normalfont, }{\tt down}] set the field attributes
|
||||||
value changes upwards or downwards. This attribute times out after
|
for when the field value changes upwards or downwards. This attribute
|
||||||
{\tt statushilites} turns.
|
times out after {\tt statushilites} turns.
|
||||||
%.lp "*"
|
%.lp "*"
|
||||||
\item[{\tt changed}] sets the field attribute for when the field value
|
\item[{\tt changed}] sets the field attribute for when the field value
|
||||||
changes. This attribute times out after {\tt statushilites} turns.
|
changes. This attribute times out after {\tt statushilites} turns.
|
||||||
@@ -5753,12 +5758,13 @@ of these miscreants in this, the list of Dungeoneers:
|
|||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tabular}{llll}
|
\begin{tabular}{llll}
|
||||||
%TABLE_START
|
%TABLE_START
|
||||||
Adam Aronow & Janet Walz & Nathan Eady\\
|
Adam Aronow & J. Ali Harlow & Mikko Juola\\
|
||||||
Alex Kompel & Janne Salmij\"{a}rvi & Norm Meluch\\
|
Alex Kompel & Janet Walz & Nathan Eady\\
|
||||||
Alex Smith & Jean-Christophe Collet & Olaf Seibert\\
|
Alex Smith & Janne Salmij\"{a}rvi & Norm Meluch\\
|
||||||
Andreas Dorn & Jeff Bailey & Pasi Kallinen\\
|
Andreas Dorn & Jean-Christophe Collet & Olaf Seibert\\
|
||||||
Andy Church & Jochen Erwied & Pat Rankin\\
|
Andy Church & Jeff Bailey & Pasi Kallinen\\
|
||||||
Andy Swanson & John Kallen & Patric Mueller\\
|
Andy Swanson & Jochen Erwied & Pat Rankin\\
|
||||||
|
Andy Thomson & John Kallen & Patric Mueller\\
|
||||||
Ari Huttunen & John Rupley & Paul Winner\\
|
Ari Huttunen & John Rupley & Paul Winner\\
|
||||||
Bart House & John S. Bien & Pierre Martineau\\
|
Bart House & John S. Bien & Pierre Martineau\\
|
||||||
Benson I. Margulies & Johnny Lee & Ralf Brown\\
|
Benson I. Margulies & Johnny Lee & Ralf Brown\\
|
||||||
@@ -5767,33 +5773,33 @@ Boudewijn Waijers & Jonathan Handler & Richard Addison\\
|
|||||||
Bruce Cox & Joshua Delahunty & Richard Beigel\\
|
Bruce Cox & Joshua Delahunty & Richard Beigel\\
|
||||||
Bruce Holloway & Karl Garrison & Richard P. Hughey\\
|
Bruce Holloway & Karl Garrison & Richard P. Hughey\\
|
||||||
Bruce Mewborne & Keizo Yamamoto & Rob Menke\\
|
Bruce Mewborne & Keizo Yamamoto & Rob Menke\\
|
||||||
Carl Schelin & Ken Arnold & Robin Bandy\\
|
Carl Schelin & Keith Simpson & Robin Bandy\\
|
||||||
Chris Russo & Ken Arromdee & Robin Johnson\\
|
Chris Russo & Ken Arnold & Robin Johnson\\
|
||||||
David Cohrs & Ken Lorber & Roderick Schertler\\
|
David Cohrs & Ken Arromdee & Roderick Schertler\\
|
||||||
David Damerell & Ken Washikita & Roland McGrath\\
|
David Damerell & Ken Lorber & Roland McGrath\\
|
||||||
David Gentzel & Kevin Darcy & Ron Van Iwaarden\\
|
David Gentzel & Ken Washikita & Ron Van Iwaarden\\
|
||||||
David Hairston & Kevin Hugo & Ronnen Miller\\
|
David Hairston & Kevin Darcy & Ronnen Miller\\
|
||||||
Dean Luick & Kevin Sitze & Ross Brown\\
|
Dean Luick & Kevin Hugo & Ross Brown\\
|
||||||
Del Lamb & Kevin Smolkowski & Sascha Wostmann\\
|
Del Lamb & Kevin Sitze & Sascha Wostmann\\
|
||||||
Derek S. Ray & Kevin Sweet & Scott Bigham\\
|
Derek S. Ray & Kevin Smolkowski & Scott Bigham\\
|
||||||
Deron Meranda & Lars Huttar & Scott R. Turner\\
|
Deron Meranda & Kevin Sweet & Scott R. Turner\\
|
||||||
Dion Nicolaas & Leon Arnott & Sean Hunt\\
|
Dion Nicolaas & Lars Huttar & Sean Hunt\\
|
||||||
Dylan O'Donnell & M. Drew Streib & Stephen Spackman\\
|
Dylan O'Donnell & Leon Arnott & Stephen Spackman\\
|
||||||
Eric Backus & Malcolm Ryan & Stefan Thielscher\\
|
Eric Backus & M. Drew Streib & Stefan Thielscher\\
|
||||||
Eric Hendrickson & Mark Gooderum & Stephen White\\
|
Eric Hendrickson & Malcolm Ryan & Stephen White\\
|
||||||
Eric R. Smith & Mark Modrall & Steve Creps\\
|
Eric R. Smith & Mark Gooderum & Steve Creps\\
|
||||||
Eric S. Raymond & Marvin Bressler & Steve Linhart\\
|
Eric S. Raymond & Mark Modrall & Steve Linhart\\
|
||||||
Erik Andersen & Matthew Day & Steve VanDevender\\
|
Erik Andersen & Marvin Bressler & Steve VanDevender\\
|
||||||
Frederick Roeber & Merlyn LeRoy & Teemu Suikki\\
|
Fredrik Ljungdahl & Matthew Day & Teemu Suikki\\
|
||||||
Gil Neiger & Michael Allison & Tim Lennan\\
|
Frederick Roeber & Merlyn LeRoy & Tim Lennan\\
|
||||||
Greg Laskin & Michael Feir & Timo Hakulinen\\
|
Gil Neiger & Michael Allison & Timo Hakulinen\\
|
||||||
Greg Olson & Michael Hamel & Tom Almy\\
|
Greg Laskin & Michael Feir & Tom Almy\\
|
||||||
Gregg Wonderly & Michael Sokolov & Tom West\\
|
Greg Olson & Michael Hamel & Tom West\\
|
||||||
Hao-yang Wang & Mike Engber & Warren Cheung\\
|
Gregg Wonderly & Michael Sokolov & Warren Cheung\\
|
||||||
Helge Hafting & Mike Gallop & Warwick Allison\\
|
Hao-yang Wang & Mike Engber & Warwick Allison\\
|
||||||
Irina Rempt-Drijfhout & Mike Passaretti & Yitzhak Sapir\\
|
Helge Hafting & Mike Gallop & Yitzhak Sapir\\
|
||||||
Izchak Miller & Mike Stephenson\\
|
Irina Rempt-Drijfhout & Mike Passaretti\\
|
||||||
J. Ali Harlow & Mikko Juola
|
Izchak Miller & Mike Stephenson
|
||||||
%TABLE_END Do not delete this line.
|
%TABLE_END Do not delete this line.
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|||||||
@@ -210,6 +210,7 @@ parsing for the argument to 'scores' option was sloppy; "3a/o" (slash) and
|
|||||||
wizmakemap could leave genocided monsters on map
|
wizmakemap could leave genocided monsters on map
|
||||||
when entering Astral level, initial rendering of guardian angel didn't show
|
when entering Astral level, initial rendering of guardian angel didn't show
|
||||||
it as tame; noticeable if the level was entered with 'hilite_pet' On
|
it as tame; noticeable if the level was entered with 'hilite_pet' On
|
||||||
|
fix a leashed pet polymorphed into a long worm staying leashed
|
||||||
|
|
||||||
|
|
||||||
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ E int NDECL(number_leashed);
|
|||||||
E void FDECL(o_unleash, (struct obj *));
|
E void FDECL(o_unleash, (struct obj *));
|
||||||
E void FDECL(m_unleash, (struct monst *, BOOLEAN_P));
|
E void FDECL(m_unleash, (struct monst *, BOOLEAN_P));
|
||||||
E void NDECL(unleash_all);
|
E void NDECL(unleash_all);
|
||||||
|
E boolean FDECL(leashable, (struct monst *));
|
||||||
E boolean NDECL(next_to_u);
|
E boolean NDECL(next_to_u);
|
||||||
E struct obj *FDECL(get_mleash, (struct monst *));
|
E struct obj *FDECL(get_mleash, (struct monst *));
|
||||||
E const char *NDECL(beautiful);
|
E const char *NDECL(beautiful);
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ unleash_all()
|
|||||||
* This ought to exclude various other things, such as lights and gas
|
* This ought to exclude various other things, such as lights and gas
|
||||||
* spore, is_whirly() critters, ethereal creatures, possibly others.
|
* spore, is_whirly() critters, ethereal creatures, possibly others.
|
||||||
*/
|
*/
|
||||||
static boolean
|
boolean
|
||||||
leashable(mtmp)
|
leashable(mtmp)
|
||||||
struct monst *mtmp;
|
struct monst *mtmp;
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3771,6 +3771,9 @@ boolean msg; /* "The oldmon turns into a newmon!" */
|
|||||||
/* take on the new form... */
|
/* take on the new form... */
|
||||||
set_mon_data(mtmp, mdat);
|
set_mon_data(mtmp, mdat);
|
||||||
|
|
||||||
|
if (!leashable(mtmp))
|
||||||
|
m_unleash(mtmp, TRUE);
|
||||||
|
|
||||||
if (emits_light(olddata) != emits_light(mtmp->data)) {
|
if (emits_light(olddata) != emits_light(mtmp->data)) {
|
||||||
/* used to give light, now doesn't, or vice versa,
|
/* used to give light, now doesn't, or vice versa,
|
||||||
or light's range has changed */
|
or light's range has changed */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
==============================================================
|
==============================================================
|
||||||
Instructions for compiling and installing
|
Instructions for compiling and installing
|
||||||
NetHack 3.6 on a Windows system
|
NetHack 3.6 on a Windows system
|
||||||
(Windows 7/8.x/10 or later only. XP may work but is untested)
|
(Windows 7/8.x/10 or later only)
|
||||||
==============================================================
|
==============================================================
|
||||||
Last revision: $NHDT-Date: 1554784481 2019/04/09 04:34:41 $
|
Last revision: $NHDT-Date: 1554784481 2019/04/09 04:34:41 $
|
||||||
|
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ RANDOM = $(OBJ)/random.o
|
|||||||
#RANDOM =
|
#RANDOM =
|
||||||
BCRYPT=-lbcrypt
|
BCRYPT=-lbcrypt
|
||||||
|
|
||||||
WINPFLAG = -DTILES -DMSWIN_GRAPHICS -DWIN32CON -D_WIN32_IE=0x0400 -D_WIN32_WINNT=0x0501
|
WINPFLAG = -DTILES -DMSWIN_GRAPHICS -DWIN32CON -D_WIN32_IE=0x0400 -D_WIN32_WINNT=0x0601 -DWINVER=0x0601
|
||||||
ifeq "$(WANT_WIN_QT4)" "Y"
|
ifeq "$(WANT_WIN_QT4)" "Y"
|
||||||
WINPFLAG += -DQT_GRAPHICS -DPIXMAPDIR='"."'
|
WINPFLAG += -DQT_GRAPHICS -DPIXMAPDIR='"."'
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -11,30 +11,13 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys\stat.h>
|
#include <sys\stat.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#ifndef __MINGW32__
|
|
||||||
#include <appmodel.h>
|
|
||||||
#endif
|
|
||||||
#include <ShlObj.h>
|
#include <ShlObj.h>
|
||||||
|
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
extern LONG GetCurrentPackageFullName(UINT32 *packageFullNameLength,
|
extern LONG GetCurrentPackageFullName(UINT32 *packageFullNameLength,
|
||||||
PWSTR packageFullName);
|
PWSTR packageFullName);
|
||||||
extern HRESULT SHGetKnownFolderPath(REFKNOWNFOLDERID rfid,
|
|
||||||
DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath);
|
|
||||||
#ifndef DEFINE_KNOWN_FOLDER
|
|
||||||
#ifdef INITGUID
|
|
||||||
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) const GUID DECLSPEC_SELECTANY name = { l, w1, w2,{ b1, b2, b3, b4, b5, b6, b7, b8 } }
|
|
||||||
#else
|
#else
|
||||||
#define DEFINE_KNOWN_FOLDER(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) const GUID name
|
# include <appmodel.h>
|
||||||
#endif /* INITGUID */
|
|
||||||
#endif /* DEFINE_KNOWN_FOLDER */
|
|
||||||
DEFINE_KNOWN_FOLDER (FOLDERID_ProgramData, 0x62ab5d82, 0xfdc1, 0x4dc3, 0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97);
|
|
||||||
DEFINE_KNOWN_FOLDER (FOLDERID_LocalAppData, 0xf1b32785, 0x6fba, 0x4fcf, 0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91);
|
|
||||||
DEFINE_KNOWN_FOLDER (FOLDERID_Profile, 0x5e6c858f, 0x0e22, 0x4760, 0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73);
|
|
||||||
#endif /* __MINGW32__ */
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
#include "wintty.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(SAFEPROCS)
|
#if !defined(SAFEPROCS)
|
||||||
|
|||||||
Reference in New Issue
Block a user