But is there any way to "explain" to the engine to count (or how it should be called correctly) coordinates not from the world origin, but relatively to current area, given the location of that area?
Don't know how to accessibly explain...
For example, I have an object located at the area 4576 -12984 and its coordinates relatively to this area are, let's say, -32.19, 4.85, 86.03. And the engine should get its coordinates as "4576, -12984; -32.19, 4.85, 86.03" but not as "585695.81, 4.85, -1661865.97". I researched an Open Rails' (another train simulator) source code, as far as my knowledge allowed, and looks like it divides the world coordinates by the size of a tile (it is 2048 in OR) and get tile position with object position relatively to this tile. As far as I understand, Open Rails is not experiencing any floating point precision problem without using doubles, it stores tile position in integers and operates with small floats.
I've attached the .cs file here (Open Rails is written on C#) to make my explanation even clearer. I can try to insert this into the EE but I'm afraid to break something
As I already said, I'm not very strong in programming.