Fandom

Wikihack

Source:Patchlevel.h

2,034pages on
this wiki
Add New Page
Talk0

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Below is the full text to include/patchlevel.h from the source code of NetHack 3.4.3. To link to a particular line, write [[patchlevel.h#line123]], for example.

This header file specifies the version number for this copy of NetHack. It also specifies the oldest version from which this NetHack will accept save files and bones files. The makedefs program will use both patchlevel.h and config.h to generate another header, date.h, that contains the version string and more version information.

NetHack 3.2.0/patchlevel.h introduces this header file in its modern form. Before that, patchlevel.h only contains a PATCHLEVEL definition and some comments.

Top of file Edit

1.    /*	SCCS Id: @(#)patchlevel.h	3.4	2003/12/06	*/
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This header file does not have a guard against multiple inclusion. All other header files must not include patchlevel.h; only those few source files that need it should include it.

Version number Edit

5.    /* NetHack 3.4.3 */
6.    #define VERSION_MAJOR	3
7.    #define VERSION_MINOR	4
8.    /*
9.     * PATCHLEVEL is updated for each release.
10.    */
11.   #define PATCHLEVEL	3

Together, the major version number, minor version number and patch level identify the 3.4.3 release. If the DevTeam would release 3.4.4, then it would increment PATCHLEVEL to 4; but if it would release 4.0.0, then it would increment VERSION_MAJOR to 4 and reset both VERSION_MINOR and PATCHLEVEL to 0.

Edit level Edit

12.   /*
13.    * Incrementing EDITLEVEL can be used to force invalidation of old bones
14.    * and save files.
15.    */
16.   #define EDITLEVEL	0
17.   

The edit level is part of the version number stored in save files, and you may increment it without changing the displayed "3.4.3" number. To actually invalidate the older bones and saves, you need to disable the VERSION_COMPATIBILITY feature below.

Most releases from the DevTeam have EDITLEVEL set to 0. However, NetHack 3.3.0/patchlevel.h has EDITLEVEL set to 19. There may have been beta versions of 3.3.0 with lower edit levels; adding a "#define BETA" would cause makedefs to produce a version string like "3.3.0-19".

SLASH'EM releases include the edit level in the version number, after the letter "E". For example, SLASH'EM 0.0.7E6 (edit level 6) cannot load bones or saves from SLASH'EM 0.0.7E5 (edit level 5).

Copyright banner Edit

18.   #define COPYRIGHT_BANNER_A \
19.   "NetHack, Copyright 1985-2003"
20.   
21.   #define COPYRIGHT_BANNER_B \
22.   "         By Stichting Mathematisch Centrum and M. Stephenson."
23.   
24.   #define COPYRIGHT_BANNER_C \
25.   "         See license for details."
26.   

You may recall seeing this familiar copyright banner when you start NetHack.

VERSION_COMPATIBILITY Edit

27.   /*
28.    * If two or more successive releases have compatible data files, define
29.    * this with the version number of the oldest such release so that the
30.    * new release will accept old save and bones files.  The format is
31.    *	0xMMmmPPeeL
32.    * 0x = literal prefix "0x", MM = major version, mm = minor version,
33.    * PP = patch level, ee = edit level, L = literal suffix "L",
34.    * with all four numbers specified as two hexadecimal digits.
35.    */
36.   #define VERSION_COMPATIBILITY 0x03040000L	/* 3.4.0-0 */
37.   
38.   

The VERSION_COMPATIBILITY feature specifies an older version of NetHack with compatible bones and saves. This field specifies an upper bound. The makedefs program will compute an upper bound VERSION_NUMBER and store it in date.h. NetHack 3.4.3 will accept bones and saves files from any version in the range from 0x03040000L to 0x03040300UL.

When VERSION_COMPATIBILITY is undefined (for example with an "#if 0 ... #endif" block as in NetHack 3.4.0/patchlevel.h), NetHack accepts bones and saves from only one version. SLASH'EM releases also do not define VERSION_COMPATIBILITY.

A SLASH'EM release that preserves bones compatibility and save compatibility will increment its fix level, the number after the "F". SLASH'EM does not store the fix level in its bones or saves. For example, SLASH'EM 0.0.7E7F3 (patch level 7, fix level 3) may exchange bones and saves with SLASH'EM 0.0.7E7F2 (patch level 7, fix level 2).

Comments about changes Edit

When the DevTeam increments PATCHLEVEL, it leaves a comment in patchlevel.h about the changes in the new release. The DevTeam has provided more information about these changes in the doc/fixes??.? files in the source code archive.

NetHack 3.4.3 Edit

39.   /*****************************************************************************/
40.   /* Version 3.4.x */
41.   
42.   /*  Patch 3, December 7, 2003
43.    *  Several dozen general bug fixes including at least one fatal bug
44.    *  Correct several inconsistencies
45.    *  Handle level completely filled with monsters better
46.    *  Performance enhancements for win32tty port on Windows 98 and Me
47.    *  win32gui player selection fixes
48.    *  X11 player selection fixes, one of which could be fatal
49.    *  Eliminated a gold-in-shop-container cheat
50.    *  Include bones file version compatibility info in options file
51.    */
52.   

NetHack 3.4.2 Edit

53.   /*  Patch 2, August 30, 2003
54.    *  Fix a fatal bug that caused a crash when applying figurine, candle, or
55.    *      bell that gets used up
56.    *  Fix a fatal bug that triggered a panic when your secondary weapon was
57.    *      cursed during bones file creation
58.    *  Several dozen general bug fixes
59.    *  Fixed some Gnome compilation problems on Redhat 7.2 and 8.0
60.    *  Fixed a problem in the util Makefile
61.    *  Use random() by default under linux instead of lrand48()
62.    *  win32 tty adjustments and support for loading alternative key handlers
63.    */
64.   

NetHack 3.4.1 Edit

65.   /*  Patch 1, February 22, 2003
66.    *  Fix a few fatal errors including one for reentering shops, one
67.    *     involving land mines and boulders/statues, one for delayed
68.    *     polymorph, and one from a chest trap exploding ball and chain
69.    *  Fix a buffer overflow that could lead to security problems
70.    *  Hundreds of general bug fixes
71.    *  Several message and other glitches corrected
72.    *  Travel command adjustments and ability to disable travel command
73.    *  message recall window extensions (by Christian Cooper)
74.    *  win32: some interface improvements
75.    *  unix: improved tile support
76.    *  gnome: some fixes, and some enhancements by Dylan Alex Simon
77.    *  winCE: Windows CE port included (by Alex Kompel)
78.    */
79.   

NetHack 3.4.0 Edit

80.   /*
81.    *  NetHack 3.4.0, March 20, 2002
82.    *
83.    *  Hundreds of general bug fixes including some for sliming, zapping, conduct,
84.    *	and several more for riding
85.    *  Eliminated a few potentially fatal bugs including one for stone-to-flesh,
86.    *	trouble-fixing during prayer, riding down stairs while punished,
87.    *	polyd player demon summoning, throwing digging tools into shops, and
88.    *	a couple from having the vision system enabled at inappropriate times 
89.    *  Corrected some incorrect calculations in final scoring
90.    *  Enhanced config file processing and alert to duplication of entries
91.    *  Player selection prompt enhancements for TTY and X11
92.    *  Objects merge in containers
93.    *  Wish for "nothing", and genocide "none" to preserve your conduct
94.    *  Changes to Wizard quest
95.    *  Added the travel command which works by mouse click or '_' command
96.    *  Config file BOULDER option to specify the symbol for displaying boulders
97.    *  Incorporate modified versions of several 3.3.1 patches that have been
98.    *      in circulation in the NetHack community
99.    *  New Gnomish Mines levels (courtesy Kelly Bailey)
100.   *  Mac: command-key shortcuts in the player selection dialog
101.   *  Amiga: screenmode requester, and several amiga specific bug fixes
102.   *  Win32 graphical port contributed by Alex Kompel is now included
103.   */
104.  
105.  /* Version 3.4 */
106.  

NetHack 3.3.1 Edit

107.  /*****************************************************************************/
108.  /* Version 3.3.x */
109.  
110.  /*  Patch 1, August 9, 2000
111.   *  Many, many general fixes, including a number for riding, twoweapon,
112.   *	and invisible monsters
113.   *  A security fix for a couple of potentially exploitable buffer overflows
114.   *	in previous versions
115.   *  Redo Ranger quest
116.   *  Introduction of differentiation between different causes of blindness
117.   *  Overhaul of warning
118.   *  Functionality restored to Amiga (courtesy Janne Salmijarvi) and Atari
119.   *	(courtesy Christian "Marvin" Bressler) ports
120.   *  Mac: multiple interface fixes
121.   *  win32: fixed bug that caused messages to stop displaying after escape
122.   *  tty: use ANSI color (AF) over standard color (Sf) when given the choice
123.   *  several ports: offer for player selection only choices consistent with
124.   *	those already made by config file/command line (e.g., only offer roles
125.   *	that are compatible with specified race)
126.   */
127.  

NetHack 3.3.0 Edit

128.  /*
129.   *  NetHack 3.3.0, December 10, 1999
130.   *
131.   *  Implement the differentiation of character class or role from the
132.   *  character race.
133.   *  Removal of the Elf class, in preference to the Elf as a race.
134.   *  Introduction of Dwarves, Elves, Gnomes and Orcs as distinct races in
135.   *  addition to the Human "norm".
136.   *  Addition of the Monk and Ranger classes.
137.   *  Integrate some of the features of several branch versions of the game,
138.   *  notably NetHack--, NHplus, SLASH, and Slash'em.
139.   *  Adopt "the wizard patch" spellcasting system.
140.   *  Support for the Qt widget set.
141.   *  Y2K fix: use 4 digit year values for the dates in the score file
142.   *  updated COPYRIGHT_BANNER_A to reflect year of release.
143.   *  Dozens of other bug fixes, and minor improvements.
144.   */
145.  
146.  /* Version 3.3 */
147.  

NetHack 3.2.3 Edit

148.  /*****************************************************************************/
149.  /* Version 3.2.x */
150.  
151.  /*  Patch 3, December 10, 1999
152.   *  Released simultaneously with 3.3.0 for the benefit of
153.   *  ports and platforms that were unable to get working
154.   *  versions of 3.3.0 ready prior to the year 2000. It
155.   *  consisted of just a few bug fixes and offered no new
156.   *  functionality changes over 3.2.2.
157.   *
158.   *  Y2K fix: use 4 digit year values for the dates in the score file
159.   *  updated COPYRIGHT_BANNER_A to reflect year of release
160.   *  Fatal Mac bug removed
161.   *  DOS Makefile problem removed
162.   *  several bugs that could potentially trigger crashes removed
163.   */
164.  

NetHack 3.2.2 Edit

165.  /*  Patch 2, December 10, 1996
166.   *  fix the `recover' utility
167.   *  fix priest/minion name overflow which could cause Astral Plane crashes
168.   *  avoid crash when hit by own thrown boomerang
169.   *    "     "	 "   worn blindfold pushed off by applying cursed towel
170.   *  handle returning live Wizard correctly in deep dungeon levels
171.   *  don't occasionally display unseen areas of new levels during level change
172.   *  other minor display fixes
173.   *  fix several minor reason for death inconsistencies and shop bugs
174.   *  high dexterity doesn't guarantee that thrown eggs & potions will hit
175.   *
176.   *  Selected platform- or configuration-specific changes:
177.   *  Mac: update `mrecover'
178.   *  MSDOS: don't switch into tiles mode when resuming play on rogue level
179.   *  tty: support object class characters for 'I' command in menu mode
180.   *  Unix: work around several <curses.h> compilation problems
181.   *  X11: as tty above, plus implement tty-style count handling in menus;
182.   *	better window placement support for old window managers
183.   */
184.  

NetHack 3.2.1 Edit

185.  /*  Patch 1, May 28, 1996
186.   *  eliminate `#qualifications'; fix weapon proficiency handling for missiles
187.   *  keep Medusa from continuing to move after she's been killed by reflection
188.   *	of her own gaze (fixes relmon panic)
189.   *  make monsters a little smarter; assorted eating and chatting changes
190.   *  fix object amnesia for spellbooks; fix Nazgul's sleep gas attack
191.   *  fix bullwhip usage for case of having recently been in a trap
192.   *  egg hatching fixes, oil potion fixes, magic marker fixes
193.   *  support object class chars as selection accelerators for some menus
194.   *  stricter parsing of run-time options at startup time
195.   *  interactive setting of options via menu (courtesy Per Liboriussen)
196.   *
197.   *  Selected platform- or configuration-specific changes:
198.   *  Amiga: fix panic for tiles display in Gnomish mines
199.   *  BeOS: preliminary support for new BeBox platform; initially tty only
200.   *  DLB: avoid excessive fseek calls (major performance hit for MSDOS)
201.   *  HPUX: workaround for gcc-2.6.3 bug adversely affecting monster generation
202.   *  Mac: avoid MW 68K struct copy optimization bug which caused crashes;
203.   *	fix dragging of scrollbar; boost partitions to 2MB minimum
204.   *  MSDOS: wasn't safe to enter endgame for MFLOPPY configuration;
205.   *	fix re-entry into game after "!" (shell escape) + chdir + EXIT;
206.   *	F3/F4/F5 display interface swapping improvements;
207.   *	add support for preloading all tiles in protected mode environment
208.   *  TERMINFO: colors were wrong for some systems, such as Linux
209.   *  X11: display help files properly
210.   */
211.  

NetHack 3.2.0 Edit

212.  /*
213.   *  NetHack 3.2.0, April 11, 1996
214.   *  enhancements to the windowing systems including "tiles" or icons to
215.   *	visually represent monsters and objects (courtesy Warwick Allison)
216.   *  window based menu system introduced for inventory and selection
217.   *  moving light sources besides the player
218.   *  improved #untrap (courtesy Helge Hafting)
219.   *  spellcasting logic changes to balance spellcasting towards magic-using
220.   *	classes (courtesy Stephen White)
221.   *  many, many bug fixes and abuse eliminations
222.   */
223.  
224.  /* Version 3.2 */
225.  

NetHack 3.1.3 Edit

226.  /*****************************************************************************/
227.  /* Version 3.1.x */
228.  
229.  /*
230.   *  Patch 3, July 12, 1993
231.   *  further revise Mac windowing and extend to Think C (courtesy
232.   *	Barton House)
233.   *  fix confusing black/gray/white display on some MSDOS hardware
234.   *  remove fatal bugs dealing with horns of plenty and VMS bones levels,
235.   *	as well as more minor ones
236.   */
237.  

NetHack 3.1.2 Edit

238.  /*
239.   *  Patch 2, June 1, 1993
240.   *  add tty windowing to Mac and Amiga ports and revise native windowing
241.   *  allow direct screen I/O for MS-DOS versions instead of going through
242.   *	termcap routines (courtesy Michael Allison and Kevin Smolkowski)
243.   *  changes for NEC PC-9800 and various termcap.zip fixes by Yamamoto Keizo
244.   *  SYSV 386 music driver ported to 386BSD (courtesy Andrew Chernov) and
245.   *	SCO UNIX (courtesy Andreas Arens)
246.   *  enhanced pickup and disclosure options
247.   *  removed fatal bugs dealing with cursed bags of holding, renaming
248.   *	shopkeepers, objects falling through trapdoors on deep levels,
249.   *	and kicking embedded objects loose, and many more minor ones
250.   */
251.  

NetHack 3.1.1 Edit

252.  /*
253.   *  Patch 1, February 25, 1993
254.   *  add Windows NT console port (courtesy Michael Allison)
255.   *  polishing of Amiga, Mac, and X11 windowing
256.   *  fixing many small bugs, including the infamous 3.0 nurse relmon bug
257.   */
258.  

NetHack 3.1.0 Edit

259.  /*
260.   *  NetHack 3.1.0, January 25, 1993
261.   *  many, many changes and bugfixes -- some of the highlights include:
262.   *  display rewrite using line-of-sight vision
263.   *  general window interface, with the ability to use multiple interfaces
264.   *	in the same executable
265.   *  intelligent monsters
266.   *  enhanced dungeon mythology
267.   *  branching dungeons with more special levels, quest dungeons, and
268.   *	multi-level endgame
269.   *  more artifacts and more uses for artifacts
270.   *  generalization to multiple shops with damage repair
271.   *  X11 interface
272.   *  ability to recover crashed games
273.   *  full rewrite of Macintosh port
274.   *  Amiga splitter
275.   *  directory rearrangement (dat, doc, sys, win, util)
276.   */
277.  
278.  /* Version 3.1 */
279.  

NetHack 3.0.10 Edit

280.  /*****************************************************************************/
281.  /* Version 3.0 */
282.  
283.  /*
284.   *  Patch 10, February 5, 1991
285.   *  extend overlay manager to multiple files for easier binary distribution
286.   *  allow for more system and compiler variance
287.   *  remove more small insects
288.   */
289.  

NetHack 3.0.9 Edit

290.  /*
291.   *  Patch 9, June 26, 1990
292.   *  clear up some confusing documentation
293.   *  smooth some more rough edges in various ports
294.   *  and fix a couple more bugs
295.   */
296.  

NetHack 3.0.8 Edit

297.  /*
298.   *  Patch 8, June 3, 1990
299.   *  further debug and refine Macintosh port
300.   *  refine the overlay manager, rearrange the OVLx breakdown for better
301.   *	efficiency, rename the overlay macros, and split off the overlay
302.   *	instructions to Install.ovl
303.   *  introduce NEARDATA for better Amiga efficiency
304.   *  support for more VMS versions (courtesy Joshua Delahunty and Pat Rankin)
305.   *  more const fixes
306.   *  better support for common graphics (DEC VT and IBM)
307.   *  and a number of simple fixes and consistency extensions
308.   */
309.  

NetHack 3.0.7 Edit

310.  /*
311.   *  Patch 7, February 19, 1990
312.   *  refine overlay support to handle portions of .c files through OVLx
313.   *	(courtesy above plus Kevin Smolkowski)
314.   *  update and extend Amiga port and documentation (courtesy Richard Addison,
315.   *	Jochen Erwied, Mark Gooderum, Ken Lorber, Greg Olson, Mike Passaretti,
316.   *	and Gregg Wonderly)
317.   *  refine and extend Macintosh port and documentation (courtesy Johnny Lee,
318.   *	Kevin Sitze, Michael Sokolov, Andy Swanson, Jon Watte, and Tom West)
319.   *  refine VMS documentation
320.   *  continuing ANSIfication, this time of const usage
321.   *  teach '/' about differences within monster classes
322.   *  smarter eating code (yet again), death messages, and treatment of
323.   *	non-animal monsters, monster unconsciousness, and naming
324.   *  extended version command to give compilation options
325.   *  and the usual bug fixes and hole plugs
326.   */
327.  

NetHack 3.0.6 Edit

328.  /*
329.   *  Patch 6, November 19, 1989
330.   *  add overlay support for MS-DOS (courtesy Pierre Martineau, Stephen
331.   *	Spackman, and Norm Meluch)
332.   *  refine Macintosh port
333.   *  different door states show as different symbols (courtesy Ari Huttunen)
334.   *  smarter drawbridges (courtesy Kevin Darcy)
335.   *  add CLIPPING and split INFERNO off HARD
336.   *  further refine eating code wrt picking up and resumption
337.   *  make first few levels easier, by adding :x monsters and increasing initial
338.   *	attribute points and hitting probability
339.   *  teach '/' about configurable symbols
340.   */
341.  

NetHack 3.0.5 Edit

342.  /*
343.   *  Patch 5, October 15, 1989
344.   *  add support for Macintosh OS (courtesy Johnny Lee)
345.   *  fix annoying dependency loop via new color.h file
346.   *  allow interruption while eating -- general handling of partially eaten food
347.   *  smarter treatment of iron balls (courtesy Kevin Darcy)
348.   *  a handful of other bug fixes
349.   */
350.  

NetHack 3.0.4 Edit

351.  /*
352.   *  Patch 4, September 27, 1989
353.   *  add support for VMS (courtesy David Gentzel)
354.   *  move monster-on-floor references into functions and implement the new
355.   *	lookup structure for both objects and monsters
356.   *  extend the definitions of objects and monsters to provide "living color"
357.   *	in the dungeon, instead of a single monster color
358.   *  ifdef varargs usage to satisfy ANSI compilers
359.   *  standardize on the color 'gray'
360.   *  assorted bug fixes
361.   */
362.  

NetHack 3.0.3 Edit

363.  /*
364.   *  Patch 3, September 6, 1989
365.   *  add war hammers and revise object prices
366.   *  extend prototypes to ANSI compilers in addition to the previous MSDOS ones
367.   *  move object-on-floor references into functions in preparation for planned
368.   *	data structures to allow faster access and better colors
369.   *  fix some more bugs, and extend the portability of things added in earlier
370.   *	patches
371.   */
372.  

NetHack 3.0.2 Edit

373.  /*
374.   *  Patch 2, August 16, 1989
375.   *  add support for OS/2 (courtesy Timo Hakulinen)
376.   *  add a better makefile for MicroSoft C (courtesy Paul Gyugyi)
377.   *  more accomodation of compilers and preprocessors
378.   *  add better screen-size sensing
379.   *  expand color use for PCs and introduce it for SVR3 UNIX machines
380.   *  extend '/' to multiple identifications
381.   *  allow meta key to be used to invoke extended commands
382.   *  fix various minor bugs, and do further code cleaning
383.   */
384.  

NetHack 3.0.1 Edit

385.  /*
386.   *  Patch 1, July 31, 1989
387.   *  add support for Atari TOS (courtesy Eric Smith) and Andrew File System
388.   *	(courtesy Ralf Brown)
389.   *  include the uuencoded version of termcap.arc for the MSDOS versions that
390.   *	was included with 2.2 and 2.3
391.   *  make a number of simple changes to accommodate various compilers
392.   *  fix a handful of bugs, and do some code cleaning elsewhere
393.   *  add more instructions for new environments and things commonly done wrong
394.   */
395.  

NetHack 3.0.0 Edit

396.  /*
397.   *  NetHack 3.0 baseline release, July, 1989
398.   */
399.  
400.  /* Version 3.0 */
401.  
402.  /*****************************************************************************/
403.  
404.  /*patchlevel.h*/

Also on Fandom

Random Wiki