1 /* NetHack 3.7 patchlevel.h $NHDT-Date: 1593768081 2020/07/03 09:21:21 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.165 $ */ 2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3 /*-Copyright (c) Michael Allison, 2012. */ 4 /* NetHack may be freely redistributed. See license for details. */ 5 6 #ifndef PATCHLEVEL_H 7 #define PATCHLEVEL_H 8 9 /* xNetHack 6.1 */ 10 #define VERSION_MAJOR 6 11 #define VERSION_MINOR 1 12 /* 13 * PATCHLEVEL is updated for each release. 14 */ 15 #define PATCHLEVEL 0 16 /* 17 * Incrementing EDITLEVEL can be used to force invalidation of old bones 18 * and save files. 19 */ 20 #define EDITLEVEL 0 21 22 /* 23 * Development status possibilities. 24 */ 25 #define NH_STATUS_RELEASED 0 /* Released */ 26 #define NH_STATUS_WIP 1 /* Work in progress */ 27 #define NH_STATUS_BETA 2 /* BETA testing */ 28 #define NH_STATUS_POSTRELEASE 3 /* patch commit point only */ 29 30 /* 31 * Development status of this NetHack version. 32 */ 33 #define NH_DEVEL_STATUS NH_STATUS_RELEASED 34 35 #ifndef DEBUG /* allow tool chains to define without causing warnings */ 36 #define DEBUG 37 #endif 38 39 #define COPYRIGHT_BANNER_A "xNetHack 6.1, Copyright 2021, based on NetHack, Copyright 1985-2021" 40 #define COPYRIGHT_BANNER_B "by Stichting Mathematisch Centrum and M. Stephenson." 41 /* COPYRIGHT_BANNER_C is generated by makedefs into date.h */ 42 #define COPYRIGHT_BANNER_D " See license for details." 43 44 /* 45 * If two or more successive releases have compatible data files, define 46 * this with the version number of the oldest such release so that the 47 * new release will accept old save and bones files. The format is 48 * 0xMMmmPPeeL 49 * 0x = literal prefix "0x", MM = major version, mm = minor version, 50 * PP = patch level, ee = edit level, L = literal suffix "L", 51 * with all four numbers specified as two hexadecimal digits. 52 */ 53 #define VERSION_COMPATIBILITY 0x06010000L 54 55 /* 56 * xNetHack changes are not documented here; see the changelog and wiki for 57 * documentation on the changes. Below are the patch notes from the vanilla 58 * devteam for vanilla versions. 59 * 60 */ 61 62 /****************************************************************************/ 63 /* Version 3.7.x */ 64 65 /* 66 * NetHack 3.7.0, <insert date here> 67 * 68 */ 69 70 /****************************************************************************/ 71 /* Version 3.6.x */ 72 73 /* Patch 6, March 8, 2020 74 * invalid status highlight color could be maliciously used to corrupt memory 75 * formatting corpse names used internal buffers differently from formatting 76 * other objects and could potentially clobber memory 77 * avoid divide by 0 crash if 'bogusmon' (file of bogus monster types) is empty 78 * avoid #wizrumorcheck crash if either 'rumors.tru' or 'rumors.fal' or both 79 * were empty when makedefs built 'rumors' 80 */ 81 82 /* Patch 5, January 27, 2020 83 * 84 * fix accessing mons[-1] when trying to gate in a non-valid demon 85 * fix accessing mons[-1] when monster figures out if a tin cures stoning 86 * have string_for_opt() return empty_optstr on failure 87 * ensure existing callers of string_for_opt() check return value before using it 88 * fix potential buffer overflow in add_menu_coloring() 89 * fix potential buffer overflow in sym_val() 90 * fix potential buffer overflow in pline(), raw_printf(), and config_error_add() 91 * fix potential buffer overflow in choose_windows() 92 * use vsnprintf instead of vsprintf in pline.c where possible 93 * Windows: incldues a fix from a 3.6.4 post-release update where 94 * OPTIONS=map_mode:fit_to_screen could cause a game start failure 95 * Windows: users with C-locale unmappable names could get game start failure 96 */ 97 98 /* Patch 4, December 18, 2019 99 * 100 * fix potential buffer overflow when parsing run-time configuration file 101 * GDBPATH and GREPPATH from sysconf or -D... on compilation command line were 102 * being processed even if PANICTRACE was disabled but only being freed 103 * at end of game when that was enabled 104 * fix the article used in the message when your steed encounters a polymorph 105 * trap 106 * allow teleporting onto the vibrating square 107 * message "your knapsack can't accommodate any more items" when picking stuff 108 * up or removing such from container was inaccurate if there was some 109 * gold pending; vary the message rather than add more convoluted pickup 110 * code 111 * dozen-ish assorted spelling/typo fixes in messages and source comments 112 * wizard mode wishing for terrain would leave it unmapped if done while blind 113 * wizard mode terrain wish could leave hero in water (severe vision limits) 114 * or in lava (trapped, sinking) which wasn't there any more 115 * flying hero can go down (via '>') holes or trap doors instead of escaping 116 * trap 117 * polymorphed hero hiding on the ceiling can now use '>' to unhide instead of 118 * being told "you can't go down here" 119 * fix compilation on platforms that split the ncurses and tinfo libraries 120 * Windows: allow all game files to be on a portable device via the sysconf 121 * option 'portable_device_paths' 122 */ 123 124 /* Patch 3, December 5, 2019 125 * 126 * Fixed stale 'thrownobj' pointer for returning thrown aklys while engulfed 127 * Fixed uarmh null pointer dereference if a helm of opposite alignment came 128 * off due to being polymorphed 129 * Fixed 'object lost' panic when attempting to crawl of of the water during 130 * emergency disrobing/dropping 131 * Running now stops when moving over engravings so you can tell where they are 132 * Fixed detection of unseen/secret doors which failed to find monsters hiding 133 * under objects and failed to find monsters hiding at trap locations 134 * Ensured fatal status conditions made it to disclosure and/or dumplog 135 * Fixed "Bad fruit #N" warnings when saving bones with 'perm_invent' On 136 * Fixed it so yellow dragons don't have green breath 137 * Added several grammar corrections 138 * Improved recognition of deafness for several situations including the 139 * playing of musical instruments and bribing negotiations with demon lords 140 * Fixed ignoring of god's wrath when hero injured himself during altar kick 141 * Fixed several cases where persistent inventory window was not updated 142 * Fixed temple priests or shopkeepers moving over other monsters 143 * Fixed a crash-causing bug when putting on levitation boots over a sink 144 * Ensured that thrown or kicked objects will end up in bones 145 * Made water go all the way to the edges of level on the Plane of Water 146 * Made clouds disrupt line of sight along the edges of the Plane of Air 147 * Improved and expanded usage of status highlighting percentage rules 148 * Added more than 15 improvements and fixes to the curses window port 149 * Added and documented significant changes to default directory choices for 150 * the Windows platform 151 * Improved the layout and display of the player selection dialog used on the 152 * Windows graphical implementation 153 * Improved performance of some tty versions by reducing the number of 154 * function calls made from mapglyph 155 * Allowed the msdos implementation to build with curses and PDCurses 156 * Included over 100 other fixes and improvements as outlined in doc/fixes36.3 157 */ 158 159 /* Patch 2, May 7, 2019 160 * 161 * Over 320 bug fixes including a couple of crash bug fixes as outlined in 162 * doc/fixes36.2 163 * More than 15 enhancements or improvements 164 * Ensuring that unix Makefiles do not rely on features unique to gnu make 165 * Improvements to hilite_status parsing in an effort to ensure that expected 166 * and sensible values ranges are more easily specified and accepted 167 * Performance optimizations for tty 168 * Windows console tty via use of a back buffer 169 * Mac OS X build improvements and inclusion of an Xcode project 170 * Adopted the community curses window port 171 */ 172 173 /* Patch 1, April 27, 2018 174 * 175 * Over four hundred and seventy bug fixes and improvements as outlined in 176 * doc/fixes36.1 177 */ 178 179 /* 180 * NetHack 3.6.0, December 7, 2015 181 * 182 * Hundreds of bug fixes as outlined in doc/fixes36.0. 183 * Some code reorganization. 184 * Some new features. 185 * Variations of some community patches rolled in. 186 */ 187 188 /****************************************************************************/ 189 /* Version 3.5.x */ 190 191 /* Version 3.5 was never officially released. 192 */ 193 194 /****************************************************************************/ 195 /* Version 3.4.x */ 196 197 /* Patch 3, December 7, 2003 198 * Several dozen general bug fixes including at least one fatal bug 199 * Correct several inconsistencies 200 * Handle level completely filled with monsters better 201 * Performance enhancements for win32tty port on Windows 98 and Me 202 * win32gui player selection fixes 203 * X11 player selection fixes, one of which could be fatal 204 * Eliminated a gold-in-shop-container cheat 205 * Include bones file version compatibility info in options file 206 */ 207 208 /* Patch 2, August 30, 2003 209 * Fix a fatal bug that caused a crash when applying figurine, candle, or 210 * bell that gets used up 211 * Fix a fatal bug that triggered a panic when your secondary weapon was 212 * cursed during bones file creation 213 * Several dozen general bug fixes 214 * Fixed some Gnome compilation problems on Redhat 7.2 and 8.0 215 * Fixed a problem in the util Makefile 216 * Use random() by default under linux instead of lrand48() 217 * win32 tty adjustments and support for loading alternative key handlers 218 */ 219 220 /* Patch 1, February 22, 2003 221 * Fix a few fatal errors including one for reentering shops, one 222 * involving land mines and boulders/statues, one for delayed 223 * polymorph, and one from a chest trap exploding ball and chain 224 * Fix a buffer overflow that could lead to security problems 225 * Hundreds of general bug fixes 226 * Several message and other glitches corrected 227 * Travel command adjustments and ability to disable travel command 228 * message recall window extensions (by Christian Cooper) 229 * win32: some interface improvements 230 * unix: improved tile support 231 * gnome: some fixes, and some enhancements by Dylan Alex Simon 232 * winCE: Windows CE port included (by Alex Kompel) 233 */ 234 235 /* 236 * NetHack 3.4.0, March 20, 2002 237 * 238 * Hundreds of general bug fixes including some for sliming, zapping, 239 *conduct, 240 * and several more for riding 241 * Eliminated a few potentially fatal bugs including one for stone-to-flesh, 242 * trouble-fixing during prayer, riding down stairs while punished, 243 * polyd player demon summoning, throwing digging tools into shops, and 244 * a couple from having the vision system enabled at inappropriate times 245 * Corrected some incorrect calculations in final scoring 246 * Enhanced config file processing and alert to duplication of entries 247 * Player selection prompt enhancements for TTY and X11 248 * Objects merge in containers 249 * Wish for "nothing", and genocide "none" to preserve your conduct 250 * Changes to Wizard quest 251 * Added the travel command which works by mouse click or '_' command 252 * Config file BOULDER option to specify the symbol for displaying boulders 253 * Incorporate modified versions of several 3.3.1 patches that have been 254 * in circulation in the NetHack community 255 * New Gnomish Mines levels (courtesy Kelly Bailey) 256 * Mac: command-key shortcuts in the player selection dialog 257 * Amiga: screenmode requester, and several amiga specific bug fixes 258 * Win32 graphical port contributed by Alex Kompel is now included 259 */ 260 261 /* Version 3.4 */ 262 263 /****************************************************************************/ 264 /* Version 3.3.x */ 265 266 /* Patch 1, August 9, 2000 267 * Many, many general fixes, including a number for riding, twoweapon, 268 * and invisible monsters 269 * A security fix for a couple of potentially exploitable buffer overflows 270 * in previous versions 271 * Redo Ranger quest 272 * Introduction of differentiation between different causes of blindness 273 * Overhaul of warning 274 * Functionality restored to Amiga (courtesy Janne Salmijarvi) and Atari 275 * (courtesy Christian "Marvin" Bressler) ports 276 * Mac: multiple interface fixes 277 * win32: fixed bug that caused messages to stop displaying after escape 278 * tty: use ANSI color (AF) over standard color (Sf) when given the choice 279 * several ports: offer for player selection only choices consistent with 280 * those already made by config file/command line (e.g., only offer roles 281 * that are compatible with specified race) 282 */ 283 284 /* 285 * NetHack 3.3.0, December 10, 1999 286 * 287 * Implement the differentiation of character class or role from the 288 * character race. 289 * Removal of the Elf class, in preference to the Elf as a race. 290 * Introduction of Dwarves, Elves, Gnomes and Orcs as distinct races in 291 * addition to the Human "norm". 292 * Addition of the Monk and Ranger classes. 293 * Integrate some of the features of several branch versions of the game, 294 * notably NetHack--, NHplus, SLASH, and Slash'em. 295 * Adopt "the wizard patch" spellcasting system. 296 * Support for the Qt widget set. 297 * Y2K fix: use 4 digit year values for the dates in the score file 298 * updated COPYRIGHT_BANNER_A to reflect year of release. 299 * Dozens of other bug fixes, and minor improvements. 300 */ 301 302 /* Version 3.3 */ 303 304 /****************************************************************************/ 305 /* Version 3.2.x */ 306 307 /* Patch 3, December 10, 1999 308 * Released simultaneously with 3.3.0 for the benefit of 309 * ports and platforms that were unable to get working 310 * versions of 3.3.0 ready prior to the year 2000. It 311 * consisted of just a few bug fixes and offered no new 312 * functionality changes over 3.2.2. 313 * 314 * Y2K fix: use 4 digit year values for the dates in the score file 315 * updated COPYRIGHT_BANNER_A to reflect year of release 316 * Fatal Mac bug removed 317 * DOS Makefile problem removed 318 * several bugs that could potentially trigger crashes removed 319 */ 320 321 /* Patch 2, December 10, 1996 322 * fix the `recover' utility 323 * fix priest/minion name overflow which could cause Astral Plane crashes 324 * avoid crash when hit by own thrown boomerang 325 * " " " worn blindfold pushed off by applying cursed towel 326 * handle returning live Wizard correctly in deep dungeon levels 327 * don't occasionally display unseen areas of new levels during level change 328 * other minor display fixes 329 * fix several minor reason for death inconsistencies and shop bugs 330 * high dexterity doesn't guarantee that thrown eggs & potions will hit 331 * 332 * Selected platform- or configuration-specific changes: 333 * Mac: update `mrecover' 334 * MSDOS: don't switch into tiles mode when resuming play on rogue level 335 * tty: support object class characters for 'I' command in menu mode 336 * Unix: work around several <curses.h> compilation problems 337 * X11: as tty above, plus implement tty-style count handling in menus; 338 * better window placement support for old window managers 339 */ 340 341 /* Patch 1, May 28, 1996 342 * eliminate `#qualifications'; fix weapon proficiency handling for missiles 343 * keep Medusa from continuing to move after she's been killed by reflection 344 * of her own gaze (fixes relmon panic) 345 * make monsters a little smarter; assorted eating and chatting changes 346 * fix object amnesia for spellbooks; fix Nazgul's sleep gas attack 347 * fix bullwhip usage for case of having recently been in a trap 348 * egg hatching fixes, oil potion fixes, magic marker fixes 349 * support object class chars as selection accelerators for some menus 350 * stricter parsing of run-time options at startup time 351 * interactive setting of options via menu (courtesy Per Liboriussen) 352 * 353 * Selected platform- or configuration-specific changes: 354 * Amiga: fix panic for tiles display in Gnomish mines 355 * BeOS: preliminary support for new BeBox platform; initially tty only 356 * DLB: avoid excessive fseek calls (major performance hit for MSDOS) 357 * HPUX: workaround for gcc-2.6.3 bug adversely affecting monster generation 358 * Mac: avoid MW 68K struct copy optimization bug which caused crashes; 359 * fix dragging of scrollbar; boost partitions to 2MB minimum 360 * MSDOS: wasn't safe to enter endgame for MFLOPPY configuration; 361 * fix re-entry into game after "!" (shell escape) + chdir + EXIT; 362 * F3/F4/F5 display interface swapping improvements; 363 * add support for preloading all tiles in protected mode environment 364 * TERMINFO: colors were wrong for some systems, such as Linux 365 * X11: display help files properly 366 */ 367 368 /* 369 * NetHack 3.2.0, April 11, 1996 370 * enhancements to the windowing systems including "tiles" or icons to 371 * visually represent monsters and objects (courtesy Warwick Allison) 372 * window based menu system introduced for inventory and selection 373 * moving light sources besides the player 374 * improved #untrap (courtesy Helge Hafting) 375 * spellcasting logic changes to balance spellcasting towards magic-using 376 * classes (courtesy Stephen White) 377 * many, many bug fixes and abuse eliminations 378 */ 379 380 /* Version 3.2 */ 381 382 /****************************************************************************/ 383 /* Version 3.1.x */ 384 385 /* 386 * Patch 3, July 12, 1993 387 * further revise Mac windowing and extend to Think C (courtesy 388 * Barton House) 389 * fix confusing black/gray/white display on some MSDOS hardware 390 * remove fatal bugs dealing with horns of plenty and VMS bones levels, 391 * as well as more minor ones 392 */ 393 394 /* 395 * Patch 2, June 1, 1993 396 * add tty windowing to Mac and Amiga ports and revise native windowing 397 * allow direct screen I/O for MS-DOS versions instead of going through 398 * termcap routines (courtesy Michael Allison and Kevin Smolkowski) 399 * changes for NEC PC-9800 and various termcap.zip fixes by Yamamoto Keizo 400 * SYSV 386 music driver ported to 386BSD (courtesy Andrew Chernov) and 401 * SCO UNIX (courtesy Andreas Arens) 402 * enhanced pickup and disclosure options 403 * removed fatal bugs dealing with cursed bags of holding, renaming 404 * shopkeepers, objects falling through trapdoors on deep levels, 405 * and kicking embedded objects loose, and many more minor ones 406 */ 407 408 /* 409 * Patch 1, February 25, 1993 410 * add Windows NT console port (courtesy Michael Allison) 411 * polishing of Amiga, Mac, and X11 windowing 412 * fixing many small bugs, including the infamous 3.0 nurse relmon bug 413 */ 414 415 /* 416 * NetHack 3.1.0, January 25, 1993 417 * many, many changes and bugfixes -- some of the highlights include: 418 * display rewrite using line-of-sight vision 419 * general window interface, with the ability to use multiple interfaces 420 * in the same executable 421 * intelligent monsters 422 * enhanced dungeon mythology 423 * branching dungeons with more special levels, quest dungeons, and 424 * multi-level endgame 425 * more artifacts and more uses for artifacts 426 * generalization to multiple shops with damage repair 427 * X11 interface 428 * ability to recover crashed games 429 * full rewrite of Macintosh port 430 * Amiga splitter 431 * directory rearrangement (dat, doc, sys, win, util) 432 */ 433 434 /* Version 3.1 */ 435 436 /****************************************************************************/ 437 /* Version 3.0 */ 438 439 /* 440 * Patch 10, February 5, 1991 441 * extend overlay manager to multiple files for easier binary distribution 442 * allow for more system and compiler variance 443 * remove more small insects 444 */ 445 446 /* 447 * Patch 9, June 26, 1990 448 * clear up some confusing documentation 449 * smooth some more rough edges in various ports 450 * and fix a couple more bugs 451 */ 452 453 /* 454 * Patch 8, June 3, 1990 455 * further debug and refine Macintosh port 456 * refine the overlay manager, rearrange the OVLx breakdown for better 457 * efficiency, rename the overlay macros, and split off the overlay 458 * instructions to Install.ovl 459 * introduce NEARDATA for better Amiga efficiency 460 * support for more VMS versions (courtesy Joshua Delahunty and Pat Rankin) 461 * more const fixes 462 * better support for common graphics (DEC VT and IBM) 463 * and a number of simple fixes and consistency extensions 464 */ 465 466 /* 467 * Patch 7, February 19, 1990 468 * refine overlay support to handle portions of .c files through OVLx 469 * (courtesy above plus Kevin Smolkowski) 470 * update and extend Amiga port and documentation (courtesy Richard Addison, 471 * Jochen Erwied, Mark Gooderum, Ken Lorber, Greg Olson, Mike Passaretti, 472 * and Gregg Wonderly) 473 * refine and extend Macintosh port and documentation (courtesy Johnny Lee, 474 * Kevin Sitze, Michael Sokolov, Andy Swanson, Jon Watte, and Tom West) 475 * refine VMS documentation 476 * continuing ANSIfication, this time of const usage 477 * teach '/' about differences within monster classes 478 * smarter eating code (yet again), death messages, and treatment of 479 * non-animal monsters, monster unconsciousness, and naming 480 * extended version command to give compilation options 481 * and the usual bug fixes and hole plugs 482 */ 483 484 /* 485 * Patch 6, November 19, 1989 486 * add overlay support for MS-DOS (courtesy Pierre Martineau, Stephen 487 * Spackman, and Norm Meluch) 488 * refine Macintosh port 489 * different door states show as different symbols (courtesy Ari Huttunen) 490 * smarter drawbridges (courtesy Kevin Darcy) 491 * add CLIPPING and split INFERNO off HARD 492 * further refine eating code wrt picking up and resumption 493 * make first few levels easier, by adding :x monsters and increasing initial 494 * attribute points and hitting probability 495 * teach '/' about configurable symbols 496 */ 497 498 /* 499 * Patch 5, October 15, 1989 500 * add support for Macintosh OS (courtesy Johnny Lee) 501 * fix annoying dependency loop via new color.h file 502 * allow interruption while eating -- general handling of partially eaten 503 * food 504 * smarter treatment of iron balls (courtesy Kevin Darcy) 505 * a handful of other bug fixes 506 */ 507 508 /* 509 * Patch 4, September 27, 1989 510 * add support for VMS (courtesy David Gentzel) 511 * move monster-on-floor references into functions and implement the new 512 * lookup structure for both objects and monsters 513 * extend the definitions of objects and monsters to provide "living color" 514 * in the dungeon, instead of a single monster color 515 * ifdef varargs usage to satisfy ANSI compilers 516 * standardize on the color 'gray' 517 * assorted bug fixes 518 */ 519 520 /* 521 * Patch 3, September 6, 1989 522 * add war hammers and revise object prices 523 * extend prototypes to ANSI compilers in addition to the previous MSDOS ones 524 * move object-on-floor references into functions in preparation for planned 525 * data structures to allow faster access and better colors 526 * fix some more bugs, and extend the portability of things added in earlier 527 * patches 528 */ 529 530 /* 531 * Patch 2, August 16, 1989 532 * add support for OS/2 (courtesy Timo Hakulinen) 533 * add a better makefile for MicroSoft C (courtesy Paul Gyugyi) 534 * more accommodation of compilers and preprocessors 535 * add better screen-size sensing 536 * expand color use for PCs and introduce it for SVR3 UNIX machines 537 * extend '/' to multiple identifications 538 * allow meta key to be used to invoke extended commands 539 * fix various minor bugs, and do further code cleaning 540 */ 541 542 /* 543 * Patch 1, July 31, 1989 544 * add support for Atari TOS (courtesy Eric Smith) and Andrew File System 545 * (courtesy Ralf Brown) 546 * include the uuencoded version of termcap.arc for the MSDOS versions that 547 * was included with 2.2 and 2.3 548 * make a number of simple changes to accommodate various compilers 549 * fix a handful of bugs, and do some code cleaning elsewhere 550 * add more instructions for new environments and things commonly done wrong 551 */ 552 553 /* 554 * NetHack 3.0 baseline release, July, 1989 555 */ 556 557 /* Version 3.0 */ 558 559 /****************************************************************************/ 560 561 #endif /* PATHLEVEL_H */ 562 /*patchlevel.h*/ 563