Updating this thing again! In addition to updating the source code, the download now includes a dozen randomly generated CTF maps - all of which are stable and fairly balanced! Here's the deets:
CTF is now up and running! There's still a few holes in the ceiling, so to speak, but the gamemode is now stable and functional.
Maps can now be set to mirror, so each team's side is a copy of the other's. Additionally, red's side of the map and blu's side use different textures, so players can more easily tell which side they are on.
One last big feature in this update is the ability to edit the map layout by hand before the map file itself is generated.
For example, here's the initial C++ output for one of the CTF maps I generated recently:
That ACII grid shows the basic layout of the map. The lines are hallways, /// areas are rooms, blank areas are outdoor spaces, filled areas are walls, "P"s are props, B/R are the spawn points, and "1" and "5" are the red and blu flags, respectively.
Here's the map grid after I enter a few commands:
I got this by mirroring the bottom of the map, moving the flags around, and setting up the spawnrooms ("$" = resupply cabinet).
After a bit more tweaking, I had a map layout I was happy with:
Then I just told the program to build the map file based on that layout, and it did! All the new ctf maps were tweaked a bit, so none of them are really 100% random. That's the only way to get mirrored maps and working spawnrooms though, so I didn't have much of a choice. I forget exactly which map that example output is from, but I think it might be ctf_brickcleus or ctf_unusualyard.
That brings up the final "major" feature of the update: randomly generated names for the maps! Maps can still be named manually if you want, but you can also choose to let the generator pick a name for you.
Happy mapping!