Discovery Gaming Community
fl-Darkmap - Printable Version

+- Discovery Gaming Community (https://discoverygc.com/forums)
+-- Forum: Discovery Development (https://discoverygc.com/forums/forumdisplay.php?fid=7)
+--- Forum: Discovery Developers Forum (https://discoverygc.com/forums/forumdisplay.php?fid=183)
+--- Thread: fl-Darkmap (/showthread.php?tid=211565)

Pages: 1 2


RE: fl-Darkmap - darkwind - 04-01-2026

(03-31-2026, 01:16 PM)IahimD Wrote: Can you also preview the Tau-23 corridors? Less impact full from a gameplay perspective, but totally messed up.
Also, a clarification: Kepler corridors are visible; they just lack plane coords. Omega-97 corridors are... less clear

https://github.com/darklab8/fl-darkstat/commit/8fcf28fd6af4de3e486e2b03375e600a38f9ab4b
Code:
func rotateForward(rx, ry, rz float64) float64 {
    xFlipped := math.Abs(math.Abs(rx)-180) < 0.01
    zFlipped := math.Abs(math.Abs(rz)-180) < 0.01

    if xFlipped && zFlipped {
        return ry // double flip cancels out: -(-ry)
    }
    return -ry
}

Some not very math smart added solution for now. if detecting strange flips of objects, then fixing rotation by flip.

Code:
[zone]
nickname = zone_bw02_corridor_06
pos = 28650.5370143416, -3.97673741662251E-12, 19858.683528309
rotate = -180, 27.1180854357753, 180
shape = BOX
size = 1500, 1500, 32700
property_flags = 131072
visit = 128
sort = 99

[zone]
nickname = zone_ew02_lane_ex04
pos = 12428.7, 0, 33681.9
rotate = 0, -72.8, 0
shape = BOX
size = 500, 500, 40215.6
property_flags = 131072
edge_fraction = 1
sort = 99.5
Apperently the source of issue in some objects having X,Z rotations at zero and fully controlled by Y, we set them right as having angle `-Y` in 2D map
And some objects having `rotate = -180, 27.1180854357753, 180` flipped inverted positions due to X,Z rotations set to like 180 degrees opposite rotation, so we get `Y` the opposite solution
The hackish solution above should solve it for now

If someone is math smart enough (or i will figure out some day), we could be having ideal written solution that extrapolates 2D rotation angle from full X,Y,Z rotation angles always correctly. Requires finding formula for that
We can try finding it, with `/pos` command in game we can find out how ship rotates
Code:
ok. so 0,0,0 rotation it is on plane directly looking to north
0, -90, 0 , looking to right of map, slightly below map
going with head to below from looking initially at north at plane, i get -90, 0,0
rotating myself to left entire ship from looking intially to north at plane, i get 0,0,90
looking to up, from initial looking at plane to north, i get 90,0,0
But i did not figure out yet math, may be someone else will?

It is not technically obligatory for correct map working, simple encoded guard can work too (original navmap worked on similar more simple guard checks fine)
Just could be nice to do in order to have mathematically always correct solution

If someone will figure out, the math should be solved by this function for example and at least those tests satisfy (more can be written to fully check it)
Code:
func rotateForward(rx, ry, rz float64) float64 {
    
    return {WHICH ANGLE WRITE HERE}
}

func TestRotation1(t *testing.T) {
    assert.Equal(t, rotateForward(0, 89, 0), -89.0)
}

func TestRotation2(t *testing.T) {
    assert.Equal(t, 27.0, rotateForward(-180, 27, 180))
}



RE: fl-Darkmap - darkwind - 04-01-2026

(Yesterday, 02:39 AM)darkwind Wrote:
(03-31-2026, 01:16 PM)IahimD Wrote: Can you also preview the Tau-23 corridors? Less impact full from a gameplay perspective, but totally messed up.
Also, a clarification: Kepler corridors are visible; they just lack plane coords. Omega-97 corridors are... less clear

I figured out Kung-Fu of it with a lot of cheating.
Code:
// Freelancer: vector forward = [0, 0, -1] (NEG_Z_AXIS)
// Projection on a navmap (X/Z plane, Y-up)
func ProjectToNavMap(rx, ry, rz float64) (angleDeg float64, projLen float64) {
    v := [3]float64{0, 0, -1} // NEG_Z_AXIS — "forward"
    v = rotX(v, toRad(rx))    // pitch
    v = rotY(v, toRad(ry))    // yaw
    v = rotZ(v, toRad(rz))    // roll

    fx, fz := v[0], v[2]
    projLen = math.Sqrt(fx*fx + fz*fz)

    // atan2(fx, -fz): angle from "north" of a map (-Z direction)
    angleDeg = math.Atan2(fx, -fz) * 180 / math.Pi

    if projLen < 1e-9 {
        return angleDeg, 0 // you could yield error here, but we do not need it :)
    }

    return angleDeg, projLen
}


func toRad(deg float64) float64 {
    return deg * math.Pi / 180
}

func rotX(v [3]float64, a float64) [3]float64 {
    c, s := math.Cos(a), math.Sin(a)
    return [3]float64{v[0], c*v[1] - s*v[2], s*v[1] + c*v[2]}
}

func rotY(v [3]float64, a float64) [3]float64 {
    c, s := math.Cos(a), math.Sin(a)
    return [3]float64{c*v[0] + s*v[2], v[1], -s*v[0] + c*v[2]}
}

func rotZ(v [3]float64, a float64) [3]float64 {
    c, s := math.Cos(a), math.Sin(a)
    return [3]float64{c*v[0] - s*v[1], s*v[0] + c*v[1], v[2]}
}

Now i know perfect Angle for every object how to reflect onto 2D map view through Universal Math formula that does it always right (sun)
With also decrease of object length due to rotation possible look down or up at some level of degree of angle X (reflects perfect any length decrease between 0% to 100%)
If the object is vertical, i render it with width and length both equal to its width then.

So now i can render whatever object complex rotations
Code:
[zone]
nickname = zone_bw02_corridor_06
pos = 28650.5370143416, -3.97673741662251E-12, 19858.683528309
rotate = -180, 27.1180854357753, 180
shape = BOX
size = 1500, 1500, 32700
property_flags = 131072
visit = 128
sort = 99

Updated the map to reflect it perfect





Also checked visbility of Omega7



RE: fl-Darkmap - darkwind - 04-01-2026

(03-31-2026, 01:09 PM)IahimD Wrote: On the old NavMap, you can click on the Kelpler corridors (for instance) to get their Y coords (above/below plane). I don't know other indicators in-game or otherwise to know where the corridors are. Also, I tried looking for the Omega-97 corridors... I am a little bit dichromate, but I simply couldn't see them...

[Image: 823a2431c17f0f4a03b9044f84be6b77-simple-...design.png] Okay, i made exclusion zones clickable to get its coords, in 10-20 minutes once auto deploy works, you shall see it