Minorly Enhanced QBSP v29 for Win32: A Quake level compiler (QBSP256C for short) Original program by John Carmack of id Software Modifications by Tom Grandgent (Woofer) Email: tgrand@ultra.net WWW: Shake N' Quake, http://www.canvasnet.com/quake/ FTP: ftp://ftp.canvasnet.com/quake/utils/graphics/qbsp256?.zip Submodel support by Oden (see below) ------ Notice ------ If you have any questions, comments, or requests concerning QBSP256C, please email me at tgrand@ultra.net. If you want to distribute this, go ahead as long as you don't make people pay or anything like that. It's still id's program, I just made some modifications to it. ----------------------------------- How to use the WAD override feature ----------------------------------- To make this QBSP use a single WAD that you specify, just do: qbsp -wad c:\quest\fart.wad waffles In this example you would be compiling waffles.map using only the WAD file c:\quest\fart.wad. It will -not- try to use the WAD file specified in waffles.map. To make this QBSP use multiple WADs that you specify, just do: qbsp -wad c:\quest\*.wad waffles In this example you would be compiling waffles.map using all of the WAD files in the c:\quest directory. It will -not- try to use the WAD file specified in waffles.map. This is particularly useful in a batch file. You could make one batch file that always compiles any map with your set of WAD files by creating a QB.BAT file (or something) like this: qbsp %2 %3 %4 %5 %6 -wad c:\qbsp\gfx\*.wad %1 The %1 would be for the map file name and the other %'s would be for optional parameters like -verbose. You would run this batch file like: qb waffles Simple, eh? I have inclded this QB.BAT file in the ZIP. *** NOTE! *** Multiple WAD support does not always work at this time. I hope to have this working for QBSP256D, and make it compatible with Worldcraft's multiple WAD support. ---------------------------------- How to use Oden's submodel support ---------------------------------- This feature causes QBSP256 to take any entities which have a "classname" of "submodel" and merge their brushes with the "worldspawn" entity's brushes. All other information from the entity is ignored. This allows editors to use "submodel"s as a convenient way to group together brushes from the world in an editor-independant manner (and a much cleaner map-file output). For instance, if you had a table made up of five brushes (four legs and the table's surface), you could group them together in a "submodel" entity and treat them as a single group, regardless of what editor you use. ---------- What's New ---------- ------------------------ Third release (11/22/96) ------------------------ Changes / Additions: 1) Added memory allocation failure handling code. Now, if you run out of virtual memory QBSP256C will beep, tell you to free up some disk space, and wait until you press a key. Then it will try to allocate the memory it needs again. It will keep trying until you either free up some virtual memory or kill the process (CTRL-BREAK is the easiest way to do that.) 2) Added progress indicators. Ok, so they don't tell you how long they're going to run for, but you can easily get a good idea of things after compiling your same map a couple times. It's loads better than nothing. 3) Increased the sizes of various limits of QBSP, such as MAX_MAP_PLANES, MAX_MAP_BRUSHES, MAX_MAP_ENTITIES, and the maximum MAP file line length (now you can put longer message displays into your levels, with the \n line break and such...) These increases should not impact performance in any way. Only the memory that is absolutely needed (heh) is allocated. 4) Fixed logfile support to include the error message if QBSP256C dies for some reason. This used to be omitted... 5) Added Oden's submodel support. (Thanks Oden!) The info on how to use this is given above... ------------------------ Second release (9/30/96) ------------------------ Changes / Additions: 1) Added multi-wadfile support! Now you can give QBSP a wildcard for the WAD override parameter, and it will search through each WAD looking for the textures it needs (if necessary). Note that you'd probably want an editor that supports this. Worldcraft will supposedly support this in its next release. Quest should work the way it is now, if you just select different WAD files.. 2) I fixed some problems with -proj and -wad sometimes causing QBSP to crash with a page fault. 3) I made it so that QBSP always automatically generates a QBSP.LOG file so you can look at that afterwards, but still see the output normally while QBSP is running. 4) I improved (?) the way "point off plane" warnings are displayed. ------------------------ First release (9/11/96) ------------------------ Changes / Additions: 1) QBSP will allow up to 256 faces per brush (in theory). 2) The infamous "point off plane" problem has been eliminated- QBSP will only give you warnings now, instead of giving up and aborting. 3) The time is now displayed a little nicer. I already had this exact code written for my FTP log analyzer so I just pasted it in. 4) You can specify an "override WAD file" on the command line. This way you can have it ignore whatever the MAP file says and use your one big texture WAD. I have included a simple batch file (Q.BAT) to run if you want to easily use this feature. But, just do something like: QBSP -wad c:\quest\quake101.wad woofer.map 5) QBSP now checks for the existence of a WAD file specified in the MAP file BEFORE it goes and does all the hard work. Now you'll know if that WAD file doesn't exist before you go through the trouble of compiling the level. I guess that's about it for now. If you like it, hate it, have comments, questions, suggestions, etc etc please email me at tgrand@ultra.net. Thanks!