void InfoBoxContentTeamCode::Update(InfoBoxData &data) { const TeamCodeSettings &settings = CommonInterface::GetComputerSettings().team_code; const TeamInfo &teamcode_info = CommonInterface::Calculated(); if (!settings.team_code_reference_waypoint) { data.SetInvalid(); return; } // Set Value data.SetValue(CommonInterface::Calculated().own_teammate_code.GetCode()); // Set Comment if (teamcode_info.flarm_teammate_code.IsDefined()) { data.SetComment(teamcode_info.flarm_teammate_code.GetCode()); data.SetCommentColor(teamcode_info.flarm_teammate_code_current ? 2 : 1); } else if (settings.team_code.IsDefined()) { data.SetComment(settings.team_code.GetCode()); data.SetCommentColor(0); } else data.SetCommentInvalid(); }
void UpdateInfoBoxTeamBearingDiff(InfoBoxData &data) { const TeamCodeSettings &settings = CommonInterface::GetComputerSettings().team_code; const NMEAInfo &basic = CommonInterface::Basic(); const TrafficList &flarm = basic.flarm.traffic; const TeamInfo &teamcode_info = CommonInterface::Calculated(); if (teamcode_info.teammate_available && basic.track_available) { // Set Value Angle Value = teamcode_info.teammate_vector.bearing - basic.track; data.SetValueFromBearingDifference(Value); } else data.SetValueInvalid(); // Set Comment if (!settings.team_flarm_id.IsDefined()) data.SetCommentInvalid(); else if (!StringIsEmpty(settings.team_flarm_callsign)) data.SetComment(settings.team_flarm_callsign); else data.SetComment(_T("???")); if (flarm.FindTraffic(settings.team_flarm_id) != NULL) data.SetCommentColor(2); else data.SetCommentColor(1); }
void UpdateInfoBoxTeamBearing(InfoBoxData &data) { const TeamCodeSettings &settings = CommonInterface::GetComputerSettings().team_code; const TrafficList &flarm = CommonInterface::Basic().flarm.traffic; const TeamInfo &teamcode_info = CommonInterface::Calculated(); if (teamcode_info.teammate_available) { // Set Value data.SetValue(teamcode_info.teammate_vector.bearing); } else data.SetValueInvalid(); // Set Comment if (!settings.team_flarm_id.IsDefined()) data.SetCommentInvalid(); else if (!settings.team_flarm_callsign.empty()) data.SetComment(settings.team_flarm_callsign.c_str()); else data.SetComment(_T("???")); if (flarm.FindTraffic(settings.team_flarm_id) != NULL) data.SetCommentColor(2); else data.SetCommentColor(1); }
void UpdateInfoBoxTeamDistance(InfoBoxData &data) { const TeamCodeSettings &settings = CommonInterface::GetComputerSettings().team_code; const TeamInfo &teamcode_info = CommonInterface::Calculated(); // Set Value if (teamcode_info.teammate_available) data.SetValueFromDistance(teamcode_info.teammate_vector.distance); else data.SetValueInvalid(); // Set Comment if (!settings.team_flarm_id.IsDefined()) data.SetCommentInvalid(); else if (!StringIsEmpty(settings.team_flarm_callsign)) data.SetComment(settings.team_flarm_callsign); else data.SetComment(_T("???")); data.SetCommentColor(teamcode_info.flarm_teammate_code_current ? 2 : 1); }