
Will Fowler
A project that was originally created "just for fun", this set of tools was intended to make small edits to a 007: Nightfire BSP without necessitating a complete decompile. Though it was not my intention at first, this project spawned the BSP Decompiler project, which spun off into a completely new project of its own.
The Nightfire BSP decompiler was first created as a tool available in this app. This tool allowed you to convert a BSP into a map that could be opened in Gearcraft, the 007: Nightfire level editor.
While initially having some problems with the directionality of planes leading to corruption, these errors were fixed. The output is now so close to the original that the door is open for ports and conversions.

Another feature included was the BSP Optimizer, which would attempt to trim out any unnecessary data from a BSP, and reuse as much redundant information as possible. The result was smaller filesizes with no change to gameplay, and while the optimized files' sizes were not a huge improvement, it was noticible. For example, the map m2_airfield01.bsp (one of the largest maps in the game) had a file size of 12,856,172 bytes. After optimization, the map's filesize was 11,218,901 bytes. This is a savings of around 15% in filesize, which would mean faster downloads.


Random corruption.

This is the "replacing" corruption. Note that entire solids are stretched rather than simply having their triangles jumbled.

Another, funnier tool in this application was the BSP corrupter. This tool would randomly corrupt parts of the BSP resulting in some funny changes to a map.
The corrupter tool had a couple of different options regarding how to corrupt parts of the map, and how much of the map to corrupt. Each of these options had a different effect, sometimes with interesting results. For example, "Random" corruption would simply go through structures changing values, whereas "Replacing" corruption would select a set of numbers found in the map and replace each instance of that number with the same randomly generated number. This lead to a more consistent corruption, rather than a random jumbling of triangles.
Other tools in the application were simply supposed to flip the entire map over an axis (mirror), or swap two components of every point in a map. However, these modifications currently don't work in the engine yet.
The application was first written in Java, and was converted to C# some time after the Decompiler project was. The GUI uses WPF.
​
The source code for this project was originally hosted on Google Code and is now available on GitHub.

