After a few test code releases and some more testing, I turned cutAlpha into a proper tool. Out of 120 maps, it only failed to convert 22 sectors (which is good enough for me to release it as a beta). There's no texture support and converted maps are still often troublesome to compile (but it's getting better). The program supports Build map version 3 to 7, which means big games (Duke Nukem 3D, Shadow Warrior, Redneck Rampage, ...) and more obscure titles (such as TekWar, Witchaven, Legend of the Seven Paladins 3D) are supported alike. QStudio/Monolith Productions used a custom map format for Blood, but it was close enough to the original Build format to also be supported: maps v6.0 (alpha leak), v6.3 (demo) and v7.0 (retail version) can be converted.
I'm going to update this link with every new release:
- Fixed some crashes when converting Tekwar maps (mostly due to map corruption)
- Fixed a bug where skipping floor conversion would crash the program
- Fixed a possible endless loop bug
- Added log output
- Added range support (only convert sectors within a specific range)
- Better, configurable walls (actual walls, no longer "diamonds")
- Very early (and therefore buggy) texture "support"
- Much better conversion ratio (no more issues with official Blood maps)
- Modified parameters list (merged some options, deleted others)
- Added custom rescale factor
- Fixed a bug where sectors would be improperly read because the index of wall[i].point2 isn't i + 1 (Blood)
- Fixed another bug where corrupted walls would crash the program (Tekwar)
- Fixed a bug where some shapes would falsely be considered clockwise
- Added support for Ken Silverman's GRP files (note: Powerslave's DAT files are also GRP files)
- Simple geometry texturing (most faces show the proper texture, but there is no alignment or scaling)
- Automatic texture extraction from ART files (proven that PALETTE.DAT and the associated ART files are available)
- Changed some parameters again (sorry)
- Added support for Blood's RFF files version 2 (demo) and 3 (retail)
- Added texture conversion to WAL (Quake 2), MIP, WAD2 (Quake 1), and WAD3 (Half-Life)
- Better support for Quake 1 map export
New stuff! There's been so much rewriting of the code (yet there's still so much more to go), I renamed the program entirely; say hello to sectorCut. It supports all Build engine maps cutAlpha supported, but also adds Doom Engine maps and Jedi Engine maps to the list. It can still extract textures for each map converted (even though I only tested the export routine for TGA files). As I wrote in the readme, it's a little "rough around the edges", but it will be easier for me to expand upon. Get it here:
- New sector conversion, not perfect yet but really promising.
- Fixed a bug where PAK files wouldn't be read properly.
- Rewrote notification system
- Renamed some parameters
- Added two debug parameters
- DebugVerbose 3 now displays the entire file system.
- Added support for masked walls (Doom Engine only).
- Self-neighboring walls are no longer "fixed", discarded instead.
- Only the closest visible vertex is used for sector splitting.
- Added -Skip as a replacement for -SkipWall, -SkipCeiling, -SkipFloor.
- Debug logs are now named DEBUG####.LOG
Looks like the changes in this update made Doom map conversion viable: after centering the brushes and adding an info_player_start entity, they can be compiled and launched in Kingpin; no tweaking required.
- Tweaked notifications again.
- Fixed Doom wall patches composition (ie. Doom's "brown144")
- Rewrote wall creation (walls' thickness is constant, angles are accurate)
- Added -TextureDummy
There's still a nasty brush writing bug where the program doesn't clean co-planar faces. It happens rarely and most stuff seem to work as planned.
- Fixed a bug where the wrong vertex would be selected when multiple points are stacked on top of each other.
- Fixed a bug where vertices standing on top of walls would cause the program to think there's no wall visible.
- Fixed a bug where vertices would not be considered standing on a segment because of said segment's direction.
- Added prompt for confirmation when using -DebugVerbose > 1.
- Added support for compressed and animated BM textures (Dark Forces).
- Tweaked warnings & errors notifications.
- Fixed a bug where some brushes would have co-planar faces.
- Added bulk conversion and rewrote the whole texture extraction process to accommodate this feature.
- Increased tolerance for precision loss when identifying wall order only if the sector has one loop.
- Fixed a bug where the command line parser would get stuck in an endless loop if two parameters are identical.
- Fixed a bug where loops would not always be properly tagged clockwise.
- Rewrote the scaling system.
- Added -WallThickness (in radiant units)
- Added -MapScale
- Added -MapCenter
- Fixed -MapScale (Y would always have the same value as X).
- Fixed slopes not being scaled properly.
- Added support for masked walls (Build Engine).
- Releasing some doc.