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 freely distributed. #endif 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. Steve Larsen larsen@sunset.cs.utah.edu larsen@unislc.slc.unisys.com