Just a few comments. That 4 player randomization doesn't truely randomize all locations. It just randomizes the first location and fills in the other locations by going around in a circle. People will always find themseleves in the same relative order.
Also, that code for the structure factory, doesn't set the contents for all SF. Just the first one it finds. (You're using an IF, not a loop).
And lastly. Please, PLEASE, don't make changes to things in the Outpost2DLL, or OP2Helper folders. This creates some real compatilbility issues if you need to send your code to someone else to look at. It will also create problems if we release a new SDK update. The idea behind those folders is that it's standardized code that is the same across different levels. If you're making your own custom changes to it, that just defeats the purpose. If you really feel you must make changes, COPY the code to your own .cpp/.h files and change the name! Don't modify the original. If you have updates, error corrections, new stuff, whatever, that you'd like included or feel should be included, or even stuff you don't know how to write yourself but think should be there, could you please send a PM to Hacker and me. (The one change that is safe to make to the Outpost2DLL folder only, is to add parameter names where they are missing, but again, tell us about it so we can include the change in future SDK versions.)