(This is a little OT, sorry)
This thread brings up a bigger issue, some stuff that I was discussing in private w/ Maeglamor: as has been noted by a lot of people, there's some spaghetti code here

In particular, it's very difficult (to say the least) to extract one component of the fs2 code without including everything... Fonttool is a good example -- all it needs is to be able to read and write bitmaps and font files, but the entire code lib is pulled in (because the file system is tied to localization, bitmaps are tied to the graphics systems, etc...)
Again, no offense to DaveB and Volition -- their goals were different then ours: they needed to get a product out the door; they were paying real money to the developers, artists, testers, etc; they only had one platform they needed to support, etc... And with a commercial product like FS2, maintenance isn't as big a deal: other than squashing post-release bugs, once it's out the door, you never need to look at the code again. Taking all that into consideration, the FS2 code is pretty well organized, and it certainly suited their purposes, and obviously it's a damn fine game.
We live in a different world -- none of us are getting paid to do this (at least I'm not

), so we don't have to worry about blowing the budget; we don't have a game publisher breathing down our necks to meet a release schedule (we have Quiz

); and it's more important for us to write our code in such a way that someone with less experience can pick up the pieces and do something useful.
Anyhow, this is my (minor) rant. I guess what I'd like to see come out of this (at some point) is to split things up into more manageable modules that can be safely isolated from one another. So if you need PCX utilities, you can just grab those parts.
Components I see that should be isolated from one another:
- file management, including VP files -- used by everyone (fs2, FRED, fonttool, etc.)
- bitmap, pcx, tga, etc. utilities (file format manipulators)
- the graphics subsystems; each one -- DirectDraw, OpenGL, software, etc. -- should be independent
- low-level TBL file parser
- higher-level TBL file parsers (weapons, missions, etc.) Each one should be independent
- input stuff (kb, mouse, joystick)
- gameplay stuff -- this actually shouldn't be part of the code lib, as it's only relevant to fs2.exe
- UI
- sound and music
- networking
I'm sure I'm missing some stuff here, but hopefully you get where I'm going with this...