STATUS Landed Moon

POS -0.0457960 -85.9766676

The UACS guy moved at an angle to the hud.

The LWLL guy did good

The Xemu guy did good also.

They all move great at Brighton Beach,

One problem I am having is the exit point, The Alpaca exits great at Brighton but at the pole the exit point is way off.

UACS guy:https://u.pcloud.link/publink/show?code=XZtME6VZONkw9CI9jfzualEicOvjSLgMzC5X

LWLL:https://u.pcloud.link/publink/show?code=XZQME6VZxdT4ay4UmUmOfrEVzx8bYuostTNV

XEMU:https://u.pcloud.link/publink/show?code=XZkTE6VZHHhF2eL5VTygR5X6zS4c2BwfalWX

This is the walking code for the XEMU:

```
//Adapted from GeneralVehicle by fred18
void LEVA::Move(double simdt)
{
double rt = oapiGetSize(GetSurfaceRef());
double moon_circ = rt * 2 * PI;
double each_deg = moon_circ / 360;
double grav_acc = GGRAV * oapiGetMass(GetSurfaceRef()) / (rt * rt);
memset(&vs2, 0, sizeof(vs2));
vs2.version = 2;
GetStatusEx(&vs2);
double theta = 0;
if (turn == 0) {}
else {
theta = (turn_speed * RAD) * simdt * turn;
vs2.surf_hdg += theta;
if (vs2.surf_hdg > PI2) { vs2.surf_hdg -= PI2; }
if (vs2.surf_hdg < 0) { vs2.surf_hdg += PI2; }
}
if ((walk == 0) && (side == 0)) {}
else {
double correction = 90 - abs(vs2.surf_lat * DEG);
correction /= 90;
correction += tan(abs(vs2.surf_lat));
double d_lat1 = (walk_speed * simdt * cos(vs2.surf_hdg)) / each_deg;
double d_lng1 = (walk_speed * simdt * sin(vs2.surf_hdg)) / each_deg;
double d_lat2 = (0.5 * walk_speed * simdt * -sin(vs2.surf_hdg)) / each_deg;
double d_lng2 = (0.5 * walk_speed * simdt * cos(vs2.surf_hdg)) / each_deg;
vs2.surf_lat += (d_lat1 * RAD) * walk;
vs2.surf_lng += (d_lng1 * correction * RAD) * walk;
vs2.surf_lat += (d_lat2 * RAD) * side;
vs2.surf_lng += (d_lng2 * correction * RAD) * side;
}
if ((turn == 0) && (walk == 0) && (side == 0)) {}
else {
MATRIX3 rot1 = RotationMatrix(_V(0 * RAD, (90 * RAD - vs2.surf_lng), 0 * RAD), TRUE);
MATRIX3 rot2 = RotationMatrix(_V(-vs2.surf_lat + 0 * RAD, 0, 0 * RAD), TRUE);
MATRIX3 rot3 = RotationMatrix(_V(0, 0, 180 * RAD + vs2.surf_hdg), TRUE);
MATRIX3 rot4 = RotationMatrix(_V(90 * RAD, 0, 0), TRUE);
MATRIX3 RotMatrix_Def = mul(rot1, mul(rot2, mul(rot3, rot4)));
vs2.arot.x = atan2(RotMatrix_Def.m23, RotMatrix_Def.m33);
vs2.arot.y = -asin(RotMatrix_Def.m13);
vs2.arot.z = atan2(RotMatrix_Def.m12, RotMatrix_Def.m11);
vs2.vrot.x = 0.9;
DefSetStateEx(&vs2);
}
}
```