by Spike » Wed Oct 16, 2013 12:52 pm
gb, I think that's something to ask Tyrann for, and boils down to only 3 steps...
1: increase MAX_MAP_HULLS from 4 to 8, and fix all the code to cope with that change. Map should then load in hexen2 engines. Obviously, this gets complex if you wan the same bsp to support q1bsp29+q1bsp2+h2bsp29+h2bsp2, depends how clearly bsp2 was implemented I guess. There's no version hints that say whether its got space for 4 or 8 hulls. FTE uses a hueristic: if dq1model_t[0].numfaces==0. If its 0 then its a regular q1 model. If its not 0, then the bsp has really weird face ordering or its hexen2. Obviously, if you use commandline arguments or just change the preprocessor constant then you don't need that heuristic.
2: Change the size of hull 2, and generate hulls 3+4+5. Sizes should be -24 -24 -20 24 24 20, -16 -16 -12 16 16 16, -8 -8 -8 8 8 8, -48 -48 -50 48 48 50. Hull generation may require a few extra calls in multiple places. The actual hull sizes are specified somewhere around brush.c's LoadBrush function.
3: Optionally flag the map as 'mission pack' by setting worldspawn's spawnflags |= 1 (earlier versions of hexen2 used some other size for hull 4, thus the engine doesn't know the size and will normally refuse to use it unless its flagged like this). Or you can just require the mapper/editor to do this.
once the maps exist, it'd be much easier to get engine modders to add support. until then there's only one engine that supports it.
.