IDBSPWAT.ZIP is a descendant of Ron Rossbach's DOS port of id software's
BSP node building code. My thanks to him for the port. My thanks to id
for Doom and for releasing all this source. My thanks to all hackers for
creating/releasing cool stuff. My thanks to A Current Affair for giving me
a good reason to go to sleep at night....
#ifdef (you need legal crap)
First, let me say that I have provided this because I think it might be
of use to someone else. If it is not, fine. I make no claims about its
speed, validity, dependability, stability, or any other idity that you
can think of. If it makes your computer go up in smoke, I am sorry; however,
I cannot (will not) be held responsible.
My version of this code is in no way affiliated with id software or Ron
Rossbach and they cannot be held accountable for it, and will not support
it in any form.
I donate my modifications to the code to public domain. This code (namely
my modifications) may be changed, convoluted, contorted, snorted, whatever
in whatever way anyone sees fit with no obligation to me. It may also be
There are a few reasons that I have done to this program that I have found
useful, so I thought I would upload it.
- I have recompiled with Watcom C under ultra-optimization. I have found
on my computer that this will build wad files 20%-40% faster that the
original djgpp version. I can now build any id level in under 30 sec.
This is the main reason I have distributed it. BTW, if you don't have
this compiler, I HIGHLY recommend it, especially now because they have
very competitive pricing.
- I have found the bug that creates our famous "slime-stream" by the IMP
in E1M1 (and on other levels). The unfortunate thing is that it cannot
be completely rectified as is. Let's just say it has to do with floating
point errors/rounding, and since Doom actually stores this info as a
long int, some rounding will have to be done (If anyone is interested
in the particulars, e-mail me and I will belabor the point beyond your
wildest imaginations). However, what I have done is seriously minimized
this bugs presence and frequency. In the original, I have probably seen
> 30 instances of these bugs (10 that I know of for sure). With these
fixes, I only know of one. Also, any version of this bug that may crop
up will be a maximum of 1 pixel wide (as opposed to 4 before) so as to
be all but unnoticable.
- I have seriously decreased the size/complexity of the "PointOnSide"
function which is called MANY times in the nodes building process. This
should be particularly evident to those of us without a math coprocessor
(since this function deals with floats), but I can't substantiate that
since I have one :)
- I have fixed a few other minor things that Watcom wasn't liking.
I have left the code entirely intact, and have put everything that I
have done in <#ifdef _STEVE_FIX [my new code] #else [old code] #endif>
conditional compiler directives. Sooo, you should be able to see what
I did very easily (really doesn't look like too much, huh), and change
it back to the old way if you want for some reason.
I have included the makefile, linker file and anything else I could think
of in the source directory. I have included the Rational System DOS4GW
extender for those who don't already have it.
Anyway, that should about do it.
If anyone has any suggestions, comments, observations, money, just drop
me a line.