I got the Abort on the pad to work. And separation to work. I have run into something odd that I can't figure out.
In my working version it works. But in a vanilla it doesn't. So if I add this vessel no issue but press f1 then a ctd. nothing in the log. But if the new orion is in the scenario then press f1 then no issue.
I thought it was the mesh order?
As it creates 5 meshes. Then clears them and show the correct meshes for the correct stage.
When you add it is uses these meshes.
clbkSetClassCaps(FILEHANDLE cfg)
hOrbiterMAINMesh = oapiLoadMeshGlobal("NEWORION\\ORION_CM4BLUE");
hOrbiterVCMesh = oapiLoadMeshGlobal("NEWORION\\ORION_VCNEW13");
hsmMeshUINT = oapiLoadMeshGlobal("NEWORION\\NEWSM1");
hcoverMeshUINT = oapiLoadMeshGlobal("NEWORION\\ORIONNEWCOVER");
hcrewMeshUINT = oapiLoadMeshGlobal("NEWORION\\NEWORION4CREW");
SetMeshVisibilityMode(mesh_idx[1] = AddMesh(hOrbiterMAINMesh), MESHVIS_ALWAYS);
SetMeshVisibilityMode(mesh_idx[2] = AddMesh(hOrbiterVCMesh), MESHVIS_VC | MESHVIS_ALWAYS);
SetMeshVisibilityMode(mesh_idx[3] = AddMesh(hsmMeshUINT), MESHVIS_ALWAYS);
SetMeshVisibilityMode(mesh_idx[4] = AddMesh(hcoverMeshUINT), MESHVIS_ALWAYS);
SetMeshVisibilityMode(mesh_idx[5] = AddMesh(hcrewMeshUINT), MESHVIS_ALWAYS);
cdr1_mfd = { mesh_idx[2],GRP_LEFTMFDSCREEN };
plt1_mfd = { mesh_idx[2],GRP_RIGHTMFDSCREEN1 };
cntr1_mfd = { mesh_idx[2],GRP_CENTERMFDSCREEN };
}
Then meshes are cleared. and depending on the mode certain meshes are seen
ClearMeshes(TRUE);
switch (mode) {
case 0:
case 1: dz = 0; break;
case 2:
case 3:
case 4:
case 5:
case 6: dz = -2.06; break; // capsule config
case 10:
case 11: dz = 0; break;
case 12: dz = -2; break;
}
ofs = _V(0, 0, 0 + dz);
//ofs_camera = _V(-0.30, 1.368, 2.3 + dz); // left hand seat, eye-point of docking window
ofs_camera = _V(-0.41, 1.6, 2.241); // left hand seat, eye-point of docking window _V(-0.41, 1.6, 2.2+dz);
//ofs_hud = _V(0, 1.6, 2.5 + dz);
SetCameraOffset(ofs_camera);
hOrbiterMAINMesh = oapiLoadMeshGlobal("NEWORION\\ORION_CM4BLUE");
//hOrbiterMAINMesh = oapiLoadMeshGlobal("TALON\\orioncm1");
hOrbiterVCMesh = oapiLoadMeshGlobal("NEWORION\\ORION_VCNEW13");
//hsmMeshUINT = oapiLoadMeshGlobal("TALON\\NEWSM");
SetMeshVisibilityMode(mesh_idx[1] = AddMesh(hOrbiterMAINMesh), MESHVIS_ALWAYS);//MESH 0
SetMeshVisibilityMode(mesh_idx[2] = AddMesh(hOrbiterVCMesh), MESHVIS_VC | MESHVIS_ALWAYS);//MESH 1
smMeshUINT = AddMesh(oapiLoadMeshGlobal("NEWORION\\NEWSM1"));
SetMeshVisibilityMode(smMeshUINT, MESHVIS_NEVER);
coverMeshUINT = AddMesh(oapiLoadMeshGlobal("NEWORION\\ORIONNEWCOVER"));// mesh4
SetMeshVisibilityMode(coverMeshUINT, MESHVIS_NEVER);
//heatshield
heatshieldMeshUINT = AddMesh(oapiLoadMeshGlobal("NEWORION\\NEWORIONHEATSHIELD"));
SetMeshVisibilityMode(heatshieldMeshUINT, MESHVIS_NEVER);
//astroMeshUINT = AddMesh(oapiLoadMeshGlobal("TALON\\TALON_CREW"));// mesh5
//SetMeshVisibilityMode(astroMeshUINT, MESHVIS_EXTERNAL);
astro1MeshUINT = AddMesh(oapiLoadMeshGlobal("NEWORION\\NEWORION4CREW"));// mesh5
SetMeshVisibilityMode(astro1MeshUINT, MESHVIS_VC | MESHVIS_ALWAYS);
drogueMeshUINT = AddMesh(oapiLoadMeshGlobal("Orion-MPCV\\orion-drogue"));
SetMeshVisibilityMode(drogueMeshUINT, MESHVIS_NEVER);
chuteMeshUINT = AddMesh(oapiLoadMeshGlobal("Orion-MPCV\\orion-chute"));
SetMeshVisibilityMode(chuteMeshUINT, MESHVIS_NEVER);
BallonMeshUINT = AddMesh(oapiLoadMeshGlobal("Orion-MPCV\\orion-balloons"));
SetMeshVisibilityMode(BallonMeshUINT, MESHVIS_NEVER);
lasMeshMeshUINT = AddMesh(oapiLoadMeshGlobal("Orion-MPCV\\orion-las"));// mesh13
SetMeshVisibilityMode(lasMeshMeshUINT, MESHVIS_NEVER);
fair1MeshUINT = AddMesh(oapiLoadMeshGlobal("Orion-MPCV\\orion-fair1"));
fair2MeshUINT = AddMesh(oapiLoadMeshGlobal("Orion-MPCV\\orion-fair2"));
fair3MeshUINT = AddMesh(oapiLoadMeshGlobal("Orion-MPCV\\orion-fair3"));
SetMeshVisibilityMode(fair1MeshUINT, MESHVIS_NEVER);
SetMeshVisibilityMode(fair2MeshUINT, MESHVIS_NEVER);
SetMeshVisibilityMode(fair3MeshUINT, MESHVIS_NEVER);
switch (mode) {
case 0:
//AddMesh(coverMesh, &ofs);
SetMeshVisibilityMode(coverMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(smMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
//AddMesh(smMesh, &ofs);
// AddMesh(solar0Mesh, &ofs);
break;
case 1: // Orbit config
SetMeshVisibilityMode(coverMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(smMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
break;
case 2: // Orbit config
if (!t_0) SetMeshVisibilityMode(coverMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
if (GetAltitude() < 82000) SetMeshVisibilityMode(heatshieldMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
// SetMeshVisibilityMode(smMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
// if (!t_0) AddMesh(coverMesh, &ofs);
// if (GetAltitude() < 82000)
// AddMesh(heatshieldMesh, &ofs);
ShiftCentreOfMass(ofs);
break;
break;
case 3: // Drogue config
if (!t_0) SetMeshVisibilityMode(drogueMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(heatshieldMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
ShiftCentreOfMass(ofs);
break;
case 4: // not used
case 5: // Chute config
SetMeshVisibilityMode(chuteMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(heatshieldMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
ShiftCentreOfMass(ofs);
// SetMeshVisibilityMode(AddMesh(chuteMesh, &ofs), MESHVIS_ALWAYS);
// ShiftCentreOfMass(ofs);
break;
case 6: // Landed config
// AddMesh(balloonMesh, &ofs);
SetMeshVisibilityMode(BallonMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(heatshieldMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
// SetMeshVisibilityMode(MMUMeshUINT, MESHVIS_NEVER);
break;
case 7:
//AddMesh(coverMesh, &ofs);
SetMeshVisibilityMode(coverMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(smMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
//AddMesh(smMesh, &ofs);
// AddMesh(solar0Mesh, &ofs);
break;
case 10: // Orbit config
SetMeshVisibilityMode(coverMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(smMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(lasMeshMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(fair1MeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(fair2MeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(fair3MeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
break;
case 11: // Orbit config
SetMeshVisibilityMode(coverMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(smMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
SetMeshVisibilityMode(lasMeshMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
break;
case 12:
SetMeshVisibilityMode(lasMeshMeshUINT, MESHVIS_EXTERNAL | MESHVIS_VC);
break;
}
}
I can make a zip of the code if someone wants to see?
Attached is the latest.