1------------------------------------------------------------------------------- 2Changes in v5.2 - Colin Phipps, 2006/08/12: 3 4- Fix trivial compile error on big-endian systems. 5- Fix various problems for 64 bit systems. 6- Fix compilation warnings, general code tidy-up. 7 8------------------------------------------------------------------------------- 9Changes in v5.1 - Colin Phipps, 7/2002: 10 11- Compressed blockmap support, contributed by Simon "fraggle" Howard. Not 12 enabled by default, but might be in a future version. 13- No longer strips 0-length lines - these are a legitimate editing feature; if 14 your level editor makes them when you don't want it to, then fix your editor. 15- No longer removes the content of MAPxx or ExMx lumps (these are used by some 16 ports to contain extended data e.g. Fragglescript) 17- fixes to big endian support, from Oliver Kraus 18 19------------------------------------------------------------------------------- 20Changes in v5.0 - Colin Phipps, 8/2000: 21 22Based on BSP v3.0, this version brings together a number of enhancements to 23BSP that have been floating around by various people. 24 25There is no significant difference, in terms of the nodes produced, between 26this version and BSP v3.0. In fact on my computer (FreeBSD 4.1-STABLE, PII), 27the output is byte-for-byte identical with BSP v3.0. This is not true for the 28binary DOS and Win32 versions I'm distributing though, because they are linked 29against a different math library, but they are still effectively identical to 30BSP v3.0 I believe. 31 32So what changes are there you ask? Well... 33 34- better UNIX support, from Udo Monk and Andre Majorel 35- big endian support, from Oliver Kraus 36- from myself: 37 - major clean-up of the source code, splitting some stuff out into separate 38 files so there is less mixing of unrelated code. 39 - vastly more memory-efficient when working on large multi-level WADs 40 - more flexibility about input and output 41 - can read from and write to pipes on UNIX systems 42 - output file can be the same as the input file 43 - Win32 version 44 45------------------------------------------------------------------------------- 46Changes in 3.0x: 47 48Lee Killough 9/98: 49 50Fixed many cases of slime lines by going back to using slightly slower BSP21x 51splitting algorithm. 52 53Removed approximate visplane overflow detection code, as being too inaccurate 54to be useful. If visplane overflows need to be detected, then modifying the 55Doom source code to display them exactly in real-time would be a better idea. 56The visplane counting code in BSP22x and BSP23x was never 100% accurate, but 57was about as close as I could make it based solely on empirical evidence. 58 59NOTE: this change does not remove the -vp option, which attempts to reduce 60the chances of visplane overflows by using a special node line heuristic, and 61which is the more useful of the visplane-related options. This change only 62removes the -vpwarn and -vpmark options, which attempted to detect where 63visplane overflows occurred, but which were too crude. Exact detection of 64visplane overflows is unnecessary to remove them, because techniques are 65available which reduce the probability of visplane overflows without having 66to know whether they actually occur. 67 68------------------------------------------------------------------------------- 69Changes in 2.3x: 70 71Lee Killough 2/98: 72 73Fixed a minor bug which caused textures to bleed sometimes. 74Thanks to Jonathan Campbell (joncamp@tiac.net) for finding it. 75 76Switched from djgpp v1.12 to v2.01. 77 78Linux builds now supported (thanks to Andre Majorel for the port). 79 80Possible future enhancement: 81 82>64K blockmap support (requires changes in Doom source code as well). 83 84------------------------------------------------------------------------------- 85Changes in 2.2x: 86 87Lee Killough 10/97: 88 89Added -vp option to reduce the chances of visplane overflows, without loss 90of detail. Using -vp causes node line picker to choose node lines in a way 91that is empirically known to reduce or eliminate visplane overflows (see 92visplane.txt). No guarantees, though!!! 93 94Added -vpwarn option to warn about possible visplane overflows (see 95visplane.txt). 96 97-vpmark option also added, which leaves permanent marks in the form of player 981 starts. It's a good idea to write to a separate output file when using this 99option!!! You can then use an editor, play each alternate player start, and 100see if each one causes visplane overflows, and then remove it. Usually no- 101clipping must be used, at least to step out from the wall, since it inserts 102player starts without regard to collisions, and it uses walls as a basis for 103visplane calculations. 104 105Added -noreject option, to allow building nodes without messing up an 106already-built reject map. 107 108Added -thold option to change the visplane threshold. May be used to report 109more potential visplane overflows if the -vpwarn or -vpmark approximations 110estimate too few visplanes. Default threshold is 128. 111 112Changed the way level markers in the lump directory are handled, to 113accomodate DCK3.61, EdMap, and perhaps other editors. Some editors, such 114as DCK3.61, do not always set the length field in a level marker to 0, and 115EdMap requires that the offset field in a level marker be equal to the 116offset of the first resource. 117 118------------------------------------------------------------------------------- 119Changes in 2.1x: 120 121Lee Killough 06/97 122 123Fixed design bug which caused invisible barriers or disappearing Things. 124Problem was in how segs incident to a partitioning node line were 125partitioned -- they were partitioned according to sidedef, rather than 126vertex, orientation w.r.t. the node line. Flipping the affected seg's 127linedef usually fixed the problem. Now an incident seg is properly 128partitioned either on the left or right side of a node line depending 129on whether the two segs are in the same direction or not, not whether 130they are both flipped or not. 131 132Added special effects features: 133 134If a linedef has a sector tag >= 900, then it is treated as "precious" 135and will not be split unless absolutely necessary. This is good to use 136around borders of deep water, invisible stairs, etc. 137 138Furthermore, just for grins, if the linedef's tag is 999, then the sidedefs' 139x-offsets set an angle adjustment in degrees to be applied -- you can look 140straight at a wall, but it might come right at you on both sides and 141"stretch". 142 143----------------------------------------------------------- 144 145New to 2.0x: 146 147Multilevel support!!! Automatically builds all levels in wad. 148 149Does not strip textures or other lumps from wads anymore!!! 150 151Supports HOM-free transparent doors: 152 153 Simply make the sector referenced by the doortracks have a 154 sector tag of >= 900. No need to remember sector numbers 155 and type them in on a command line -- just use any sector 156 tag >= 900 to permanently mark the sector special. 157 158 See TRANSDOR.WAD for an example of sector tags in the 900's 159 being used to create HOM-free transparent door effects. 160 161----------------------------------------------------------- 162 163Changes from 1.4x to 1.5x: 164 165Replaced GO32.EXE with newer version, to support Windows 166and DPMI. 167 168----------------------------------------------------------- 169 170Changes from 1.3x to 1.4x: 171 172Lee Killough: 173 174Fixed bug which caused BSP to "do nothing" on systems where 175GO32.EXE was not in the user's path. 176 177Added -factor option to allow changing the heuristic used by the 178node picker. Factor can be any positive integer, and the larger 179the factor, the more costly seg splits are. A factor of 17 is the 180default and behaves just like earlier versions of BSP. Changing the 181factor can sometimes prevent visplane overflows in wads. But then 182again, some wads have just too many visible 2s linedefs for the 183node builder to make a difference. If you have visplane overflows, 184experiment with the -factor option before giving up. 185 186----------------------------------------------------------- 187 188Changes from 1.2x to 1.3x: 189 190New version due to performance enhancements by Lee Killough 191(killough@rsn.hp.com). 192 193Runs at least 3 times as fast as before, due to changes in PickNode. 194Same results are obtained, but with greater speed. Differences from 1951.2x: 196 197 PickNode() rewritten to maximize performance. New PickNode() 198 algorithm features pruning strategy which allows inner loop 199 to exit as soon as a seg is detected as being worse than the 200 best so far. 201 202 All floating-point arithmetic inside inner loop has been eliminated. 203 204 GetVertexes() changed and Reference() removed, replaced with a 205 faster vertex renumbering algorithm which also removes lines of 206 length zero. 207 208 IsLineDefInside() tuned by eliminating bit mask variable. 209 210 Functions are static, to reduce code size by permitting total 211 inlining. 212 213 Various other minor performance enhancements 214 215----------------------------------------------------------- 216 217Changes from 1.1 to 1.2x: 218 219New version 1.2 due to bug found by Mark Harrison that caused some 220problems with flipped segs having their textures buggered up. 221 222The GO32 dos extender has been pre-pended to the executable. 223 224 225