Progress (5 tasks left until beta)
Bugs
I found the last (I hope) bug in my MDL loading code so now all the models load correctly. There was a case where certain models would load but would be somewhat scrambled up. They all look good now so I think that code can finally sink into the background and “just work” from now on.
Texture Locking
I also took a look at the QERadiant source code and by doing so was able to figure out texture locking. It only works for dragging but that’s good enough for an initial release.
Texture Changes Undo/Redo
While I was near the texture code, I went ahead and solidified the undo/redo logic in there so that anything and everything you can do to a face (changing it’s texture, offsets, rotations, etc) can be rolled back.
Targeting Utilities
I added an easy way to connect entities. Select the first entity, then the target entities, and hit CMD+K. The editor will create unique target names and connect them all up correctly. Once entities are connected, if you select the one that targets the others, the editor will show you the entities that it targets with nice obvious lines and boxes. Like so:

Error Prevention
The editor now checks for bad entities/brushes both immediately after loading a MAP and immediately before saving one out. Culling these will help when something goes badly. Heh. It won’t catch everything but at least the obvious stuff will get cleaned up.
I’m probably going to refactor my approach to loading meshes for classes and mod support somewhat. In getting Quoth to work I discovered that maybe my current approach wasn’t the best. I’ll see what I can come up with…