bool BlackDart::clbkDrawHUD(int iMode, const HUDPAINTSPEC *hps, oapi::Sketchpad *sp) {
char pszBuffer[100];
char pszMode1[10],pszMode2[10];
bool result = VESSEL3::clbkDrawHUD(iMode, hps, sp);
switch(iMode)
{
case HUD_SURFACE:
break;
}
DrawHUDGearInd(hps, sp);
DrawSpeedBrakeInd(hps, sp);
DrawTVCInd(hps, sp);
if(bUsesOMS)
{
sprintf_s(pszBuffer, 100, "OMS");
sp->Text((int)(hps->W * 0.45), (int)(hps->H * 0.45), pszBuffer, 3);
}
if(thrustMode == THRUST_LOW)
{
sprintf_s(pszBuffer, 100, "LOW");
sp->Text((int)(hps->W * 0.55), (int)(hps->H * 0.45), pszBuffer, 3);
}
if(hps->W > 512) {
sprintf_s(pszBuffer, 100, "UMMU CREW SIZE: %d", ummu.GetCrewTotalNumber());
sp->Text(10, hps->H/5, pszBuffer, strlen(pszBuffer));
sp->MoveTo(10, hps->H/5 + 18);
sp->LineTo(200, hps->H/5 + 18);
for(int i = 0; i<ummu.GetCrewTotalNumber(); i++) {
sprintf_s(pszBuffer, 100, "%20s [%d] [%d]",
ummu.GetCrewNameBySlotNumber(i),
ummu.GetCrewAgeBySlotNumber(i),
ummu.GetCrewPulseBySlotNumber(i));
sp->Text(10, hps->H/5 + 20 + 18*i, pszBuffer,
strlen(pszBuffer));
}
sprintf_s(pszBuffer, 100, "Pc[MPa] : %7.3f",
GetChamberPressure()/1.0E6);
sp->Text(10, hps->H*2/5 - 24, pszBuffer, strlen(pszBuffer));
switch(NozzleExtMode) {
case NEM_RETRACT:
strcpy(pszMode1, "RET");
break;
case NEM_AUTO:
strcpy(pszMode1, "AUTO");
break;
case NEM_DEPLOY:
strcpy(pszMode1, "DPY");
break;
}
if(NozzleExtState.Closed()) {
strcpy(pszMode2, "RET");
} else if (NozzleExtState.Open()) {
strcpy(pszMode2, "DPY");
} else {
strcpy(pszMode2, "///");
}
sprintf_s(pszBuffer, 100, "NOZZLE EXT: %4s [%3s]",
pszMode1, pszMode2
);
sp->Text(10, hps->H*2/5, pszBuffer, strlen(pszBuffer));
if(MEDoorState.Open())
strcpy(pszMode1, " OP");
else if(MEDoorState.Closed())
strcpy(pszMode1, " CL");
else
strcpy(pszMode1, "///");
sprintf_s(pszBuffer, 100, "HOVER DOORS: [%3s]",
pszMode1);
sp->Text(10, hps->H*2/5+18, pszBuffer, strlen(pszBuffer));
if(LeftPylonState.Open())
strcpy(pszMode1, "RET");
else if(LeftPylonState.Closed())
strcpy(pszMode1, "DPY");
else
strcpy(pszMode1, "///");
if(RightPylonState.Open())
strcpy(pszMode2, "RET");
else if(RightPylonState.Closed())
strcpy(pszMode2, "DPY");
else
strcpy(pszMode2, "///");
sprintf_s(pszBuffer, 100, "PYLONS: [%3s] / [%3s]",
pszMode1, pszMode2);
sp->Text(10, hps->H*2/5+36, pszBuffer, strlen(pszBuffer));
}
return result;
}