if(HUD2 == 1 && oapiGetHUDMode() == HUD_DOCKING &&oapiCockpitMode() == COCKPIT_VIRTUAL) // ---------- Display Bases and Distances --------------
{
if(zoom < 100) { zoom -= 0.25;}
oapiCameraSetAperture (zoom*RAD);
if(zoom < 16) zoom = 16;
double line = 70;
double linespacing =0;//= 0;
oapi::Font *font = oapiCreateFont (15, false, "MyFont", FONT_NORMAL);
skp->SetFont(font);
char buf[256];
int len = 84;
int len2 = 4;
int ib;
double dis4;
double dis3;
int distance ;
double lat4, lng4;
char basename[84];
VECTOR3 last_p = {0,0,0};
OBJHANDLE hPlanet = oapiGetGbodyByName("Earth");
int nBase=oapiGetBaseCount(hPlanet);
for (ib=0; ib <nBase; ib++) {
linespacing = linespacing + 11;
OBJHANDLE Base = oapiGetBaseByIndex(hPlanet, ib);
oapiGetObjectName(Base, basename, len);
oapiGetBaseEquPos (Base, &lng, &lat);
GetEquPos (longitude, latitude, radius);
dis = sin((latitude)*RAD) * sin(lat*RAD) + cos((latitude)*RAD) * cos((lat)*RAD) * cos((longitude-lng)*RAD);
dis = acos(dis);
dis = (dis)*DEG;
distance = dis * 6371;
if(units == 0) distance = distance *0.539957;
OBJHANDLE hBase = oapiGetBaseByIndex(hPlanet, ib);
OBJHANDLE hRef = oapiGetVesselByName("J-F-35B");
VECTOR3 p;
oapiGetRelativePos(hBase,hRef,&p);
VECTOR3 dp = p-last_p;
last_p = p;
// now use dp for whatever calcuation you need ...
if (ib < 48)
{
if (ib <16)
{
skp->SetTextColor( 0xffffff);
line = 313;
len = sprintf_s(buf," %s", basename);
skp->SetTextAlign (oapi::Sketchpad::LEFT, oapi::Sketchpad::TOP);
skp->Text(-140,((line) +linespacing), buf, len);
if(units == 0)
{
skp->Text(190, 70, "Nautical Miles", 14);
}
else
{
skp->Text(200, 70, "Kilometers", 10);
}
if (dp.z > 0 &&hspd >10)
{
skp->SetTextColor( 0x0000ff);} //red}
else skp->SetTextColor( 0xffffff);
{
len2 = sprintf_s(buf," %i", distance);
skp->Text(85,((line)+linespacing), buf, len2);
}
}
else if(ib <32)
{
skp->SetTextColor( 0xffffff);
line = 311;
len = sprintf_s(buf," %s", basename);
skp->SetTextAlign (oapi::Sketchpad::LEFT, oapi::Sketchpad::TOP);
skp->Text(30,((line-175) +linespacing), buf, len);
skp->SetTextAlign (oapi::Sketchpad::RIGHT, oapi::Sketchpad::TOP);
if (dp.z > 0 &&hspd >10)
{
skp->SetTextColor( 0x0000ff); //red
}
else
{
skp->SetTextColor( 0xffffff); //white
}
len2 = sprintf_s(buf," %i", distance);
skp->Text(340,((line-175)+linespacing), buf, len2);
}
else
{
skp->SetTextColor( 0xffffff); //white
line = 334;
len = sprintf_s(buf," %s", basename);
skp->SetTextAlign (oapi::Sketchpad::LEFT, oapi::Sketchpad::TOP);
skp->Text(220,((line-375) +linespacing), buf, len);
skp->SetTextAlign (oapi::Sketchpad::RIGHT, oapi::Sketchpad::TOP);
if (dp.z > 0 &&hspd >10)
{
skp->SetTextColor( 0x0000ff); //red}
}
else
{
skp->SetTextColor( 0xffffff); //white
}
len2 = sprintf_s(buf," %i", distance);
skp->Text(510,((line-375)+linespacing), buf, len2);
}
sprintf(oapiDebugString(),"lng %1.8f :lat %1.8f :dp.z %1.8f :timer4 %1.8f", longitude, latitude, dp.z, timer4);
}
else
if (timer4 > 18)
{
skp->SetTextColor( 0x0000ff); //red
skp->Text(340, 165, "T O O M A N Y B A S E S !",28);
}
}
oapiReleaseFont (font);
timer4 = timer4 += 1;
if(timer4>35)
{
timer4 = 0;
}
}