cameni,

Crash on exit is not known to me. There's no destructor at all.

Here's code for translation compensation. Can you test, please? It might solve aforementioned pitch-down-translate-down problem:

` if (compensate)`

{

const auto H = output_camera.axes[Yaw] * M_PI / 180;

const auto P = output_camera.axes[Pitch] * M_PI / 180;

const auto B = output_camera.axes[Roll] * M_PI / 180;

const auto cosH = cos(H);

const auto sinH = sin(H);

const auto cosP = cos(P);

const auto sinP = sin(P);

const auto cosB = cos(B);

const auto sinB = sin(B);

double foo[] = {

cosH * cosB - sinH * sinP * sinB,

- sinB * cosP,

sinH * cosB + cosH * sinP * sinB,

cosH * sinB + sinH * sinP * cosB,

cosB * cosP,

sinB * sinH - cosH * sinP * cosB,

- sinH * cosP,

- sinP,

cosH * cosP,

};

---------------

Didn't change any constants. I don't know, sorry. Need to test somehow...

---------------

Additionally we may want to try changing the game id to something else.