Spent most of today working out how to handle the wave spawning mechanics. I think I have most of the design portion done I just need to implement it. Decided I didn't want waves to be hardcoded or have them baked into the maps. It will now load in the wave data for text files that the game parses. This way if you have some cool custom NPC you want to play against or adjust difficulty you can without digging through my code or recompiling a map.
Another thing I still need to decide on is how spawn positions are chosen. Right now it's done by grabbing the position and angle data from spawn points the mapper places but I think a more elegant solution might be to make volumetric spawn zones that way you can cover more area without placing a ton of these spawn points. Then when the game needs a spawn point pick from the volume, do a trace to the floor and send that back.