There's also a major flaw with the grid system tho.
If you use a square grid you can have only 4 orientations for straight tracks (including stations) and using a triangle system will add 4(i think) more orientations. That just blows the freeform away. The reason: a straight track will fit only on the same length grid pieces and you will eventually end up with something like in OTTD but with nice smooth curves. That's why i wouldn't recommend it.However
i have thought about a more simple and clean solution to the current placing form.
If you ever reach case 3 and 4 in the above picture (2-3 posts up) i can script a tool that automatically moves the entire track piece to perfectly
fit the other (only if close to each other). Sounds not a good solution? let's analyze it:
-complete 360 degree and any coordinates for tracks - ultimate freeform
-simple to use for players, no grid for user calculations required
-simple and clean to code
-you can specify what track piece to clamp
-uses the same data-storage as the Pathfinding algorithm
-not realistic (but hey, name me a game that's 100% real)
-won't be able to move an entire existing track if it's something in the way (so you would need to make a workaround) - but that's your
fault for constructing 2 separate stations in very tight locations and then worrying about linking them instead of designing from 1 end to the other.
The cons are somewhat something i would consider since i won't think about sacrificing this freeform.
The fact is, if we use grids, it will heavily limit the tool, no matter what density you use (just because of a basic math principle, the only equal plane closed object is a triangle with all edges equally designed, but limits orientations to 60 degrees rotations - and that's asking a lot
The conclusion? grid = sacrificing everything i thought about the very base of this game and will have a building system close to TTD and TE.
Except for modeling tracks at runtime (doable, but a pain to work with vertexes since Ogre is not a 3dsMax tool but a simple rendering engine), i can't think of anything that keeps this system alive.
Also, this solves the current problem and it's easy to fix and keep things running freeform and allows accurate