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