Complete Qt6 migration: full clean build green across groups G1-G12 incl. runtime plugin set

new_docker_build.sh gains Group 12 (212 GUI/Data plugins); fixes LtsUtilsGuiDds visibility (LTO-stripped exports), LtsProjectionWorkstation unity name shadow, 6 unity-off dirs (dup file-scope statics, ddsftc INTERFACE sources) and reconfigures BUILD_FILTERMANAGEMENT/BUILD_PLUGINS_SERVICEMONITOR=ON
This commit is contained in:
berrux-dev committed 2026-10-20 09:36:57 +02:00
1 parent 2b957d1edb
commit 598fc2560e
1718 files changed
+126739 -18495

No files matched your search

@@ -3,6 +3,7 @@
#include "ngs_connector.h"
#include <NGLLogger/NGLLoggerBootstrap.h>
#include <utility>
#include "ngs_handler.h"
#include "ppm_handler.h"
@@ -693,7 +694,7 @@ bool NgsConnector::guezMineField(const AreaEffectSimulation::MineArea &data)
<< ", number of segments reduced, removing earlier published segment";
}
rpr2::ForceIdentifierEnum8::ET forceId = data.partyId().is_set() ? m_ngsHandler->ppmHandler()->forceIdentifierFromPartyId(data.partyId().get()) : rpr2::ForceIdentifierEnum8::Other;
rpr2::ForceIdentifierEnum8::ET forceId = data.partyId().has_value() ? m_ngsHandler->ppmHandler()->forceIdentifierFromPartyId(data.partyId().get()) : rpr2::ForceIdentifierEnum8::Other;
m_environmentObjects.remove(data.id());
for (int i = 0; i < minefields.size(); ++i)
@@ -704,10 +705,10 @@ bool NgsConnector::guezMineField(const AreaEffectSimulation::MineArea &data)
const AreaEffectSimulation::MineSegment &segment = data.segments()[i];
icb->setActivationTime(getClockTimeStruct(data.effectStart().is_set() ? data.effectStart().get() : 0));
icb->setDeactivated(data.effectStateId().underlying() != AreaEffectSimulation::AesEffectState::EsActivated);
if (data.effectStateId().underlying() == AreaEffectSimulation::AesEffectState::EsExpired ||
data.effectStateId().underlying() == AreaEffectSimulation::AesEffectState::EsRemoved)
icb->setActivationTime(getClockTimeStruct(data.effectStart().has_value() ? data.effectStart().get() : 0));
icb->setDeactivated(data.effectStateId() != AreaEffectSimulation::AesEffectState::EsActivated);
if (data.effectStateId() == AreaEffectSimulation::AesEffectState::EsExpired ||
data.effectStateId() == AreaEffectSimulation::AesEffectState::EsRemoved)
icb->setPercentComplete(100);
else
icb->setPercentComplete(0);
@@ -796,12 +797,12 @@ bool NgsConnector::guezMineFieldBreach(const AreaEffectSimulation::MineCorridor
rpr2::IPlayerGuezMineFieldBreachObjInstance *icb = map.value(i);
if (!icb)
continue;
icb->setActivationTime(getClockTimeStruct(data.effectStart().is_set() ? data.effectStart().get() : 0));
icb->setActivationTime(getClockTimeStruct(data.effectStart().has_value() ? data.effectStart().get() : 0));
icb->setAreaEffectSimulationName(rpr2::OMT13string(data.name()));
icb->setPointsData(positionArray(mineCorridorSegment(data.segments().at(i), data.segments().at(i + 1), data.width())));
icb->setDeactivated(data.effectStateId().underlying() != AreaEffectSimulation::AesEffectState::EsActivated);
if (data.effectStateId().underlying() == AreaEffectSimulation::AesEffectState::EsExpired ||
data.effectStateId().underlying() == AreaEffectSimulation::AesEffectState::EsRemoved)
icb->setDeactivated(data.effectStateId() != AreaEffectSimulation::AesEffectState::EsActivated);
if (data.effectStateId() == AreaEffectSimulation::AesEffectState::EsExpired ||
data.effectStateId() == AreaEffectSimulation::AesEffectState::EsRemoved)
icb->setPercentComplete(100);
else
icb->setPercentComplete(0);
@@ -853,7 +854,7 @@ bool NgsConnector::guezNuclearAgent(const AreaEffectSimulation::NContamination &
is.setEntityNumber(10 * data.id());
icb->setObjectIdentifier(is.toEIS());
icb->setActivationTime(getClockTimeStruct(data.effectStart().is_set() ? data.effectStart().get() : 0));
icb->setActivationTime(getClockTimeStruct(data.effectStart().has_value() ? data.effectStart().get() : 0));
icb->setAreaEffectSimulationName(rpr2::OMT13string(data.name()));
icb->setDuration(data.effectDuration());
icb->setDetonationLocation(pos.toWorldLocation());
@@ -922,20 +923,20 @@ bool NgsConnector::guezChemicalAgent(const AreaEffectSimulation::BCContamination
}
is.setEntityNumber(10 * data.id());
icb->setObjectIdentifier(is.toEIS());
icb->setDeactivated(data.effectStateId().underlying() != AreaEffectSimulation::AesEffectState::EsActivated);
icb->setActivationTime(getClockTimeStruct(data.effectStart().is_set() ? data.effectStart().get() : 0));
icb->setDeactivated(data.effectStateId() != AreaEffectSimulation::AesEffectState::EsActivated);
icb->setActivationTime(getClockTimeStruct(data.effectStart().has_value() ? data.effectStart().get() : 0));
icb->setAreaEffectSimulationName(rpr2::OMT13string(data.name()));
icb->setDuration(data.effectDuration() / 1000 / 60);
icb->setDetonationLocation(pos.toWorldLocation());
if (data.effectStateId().underlying() == AreaEffectSimulation::AesEffectState::EsExpired ||
data.effectStateId().underlying() == AreaEffectSimulation::AesEffectState::EsRemoved)
if (data.effectStateId() == AreaEffectSimulation::AesEffectState::EsExpired ||
data.effectStateId() == AreaEffectSimulation::AesEffectState::EsRemoved)
icb->setPercentComplete(100);
else
icb->setPercentComplete(0);
icb->setChemicalAgentType(type);
icb->setRadius(data.impactRadius());
rpr2::ForceIdentifierEnum8::ET forceId = data.partyId().is_set() ? m_ngsHandler->ppmHandler()->forceIdentifierFromPartyId(data.partyId().get()) : rpr2::ForceIdentifierEnum8::Other;
rpr2::ForceIdentifierEnum8::ET forceId = data.partyId().has_value() ? m_ngsHandler->ppmHandler()->forceIdentifierFromPartyId(data.partyId().get()) : rpr2::ForceIdentifierEnum8::Other;
icb->setForceIdentifier(forceId);
icb->setIsPermanentAgent(type != rpr2::ChemicalAgentTypeEnum8::Sarin);
icb->setObjectType(dummyEOS());
@@ -1575,35 +1576,35 @@ rpr2::ArrayOfHLAoctetN_slsh_AperfectalwaysN_slsh_ADynamicHLApaddingTo32Array Ngs
rpr2::HitResultEnum16::ET NgsConnector::getHitResultEnum(const ProjectDataManagement::VulnerabilityState &ts)
{
switch (ts.underlying())
switch (ts)
{
case ProjectDataManagement::VulnerabilityState::CombatReady:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady:
return rpr2::HitResultEnum16::Reset;
case ProjectDataManagement::VulnerabilityState::LightDamage:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_LightDamage:
return rpr2::HitResultEnum16::LightDamage;
case ProjectDataManagement::VulnerabilityState::MediumDamage:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_MediumDamage:
return rpr2::HitResultEnum16::MediumDamage;
case ProjectDataManagement::VulnerabilityState::HeavyDamage:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_HeavyDamage:
return rpr2::HitResultEnum16::HeavyDamage;
case ProjectDataManagement::VulnerabilityState::MobilityKill:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_MobilityKill:
return rpr2::HitResultEnum16::MobilityKill;
case ProjectDataManagement::VulnerabilityState::VisibleMobilityKill:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_VisibleMobilityKill:
return rpr2::HitResultEnum16::MobilityKillVisible;
case ProjectDataManagement::VulnerabilityState::WeaponSystemDamage:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_WeaponSystemDamage:
return rpr2::HitResultEnum16::WeaponDamage;
case ProjectDataManagement::VulnerabilityState::VisibleWeaponSystemDamage:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_VisibleWeaponSystemDamage:
return rpr2::HitResultEnum16::WeaponDamageVisible;
case ProjectDataManagement::VulnerabilityState::CatastrophicKill:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill:
return rpr2::HitResultEnum16::TotalKill;
case ProjectDataManagement::VulnerabilityState::TemporarySeverance:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_TemporarySeverance:
return rpr2::HitResultEnum16::TemporaryFailure;
case ProjectDataManagement::VulnerabilityState::NearMiss:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_NearMiss:
return rpr2::HitResultEnum16::NearMiss;
case ProjectDataManagement::VulnerabilityState::HitWithNoEffect:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_HitWithNoEffect:
return rpr2::HitResultEnum16::HitWithNoEffect;
case ProjectDataManagement::VulnerabilityState::NContamination:
case ProjectDataManagement::VulnerabilityState::BContamination:
case ProjectDataManagement::VulnerabilityState::CContamination:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_NContamination:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_BContamination:
case ProjectDataManagement::VulnerabilityState::VulnerabilityState_CContamination:
return rpr2::HitResultEnum16::Contaminated;
default:
return rpr2::HitResultEnum16::Reset;
@@ -1616,37 +1617,37 @@ ProjectDataManagement::VulnerabilityState NgsConnector::getTacticalStatusEnum(co
switch (hr)
{
case rpr2::HitResultEnum16::Reset:
return ProjectDataManagement::VulnerabilityState::CombatReady;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady;
case rpr2::HitResultEnum16::LightDamage:
return ProjectDataManagement::VulnerabilityState::LightDamage;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_LightDamage;
case rpr2::HitResultEnum16::MediumDamage:
return ProjectDataManagement::VulnerabilityState::MediumDamage;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_MediumDamage;
case rpr2::HitResultEnum16::HeavyDamage:
return ProjectDataManagement::VulnerabilityState::HeavyDamage;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_HeavyDamage;
case rpr2::HitResultEnum16::MobilityKill:
return ProjectDataManagement::VulnerabilityState::MobilityKill;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_MobilityKill;
case rpr2::HitResultEnum16::MobilityKillVisible:
return ProjectDataManagement::VulnerabilityState::VisibleMobilityKill;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_VisibleMobilityKill;
case rpr2::HitResultEnum16::WeaponDamage:
return ProjectDataManagement::VulnerabilityState::WeaponSystemDamage;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_WeaponSystemDamage;
case rpr2::HitResultEnum16::WeaponDamageVisible:
return ProjectDataManagement::VulnerabilityState::VisibleWeaponSystemDamage;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_VisibleWeaponSystemDamage;
case rpr2::HitResultEnum16::TotalKill:
return ProjectDataManagement::VulnerabilityState::CatastrophicKill;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill;
case rpr2::HitResultEnum16::CheatingKill:
return ProjectDataManagement::VulnerabilityState::CatastrophicKill;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill;
case rpr2::HitResultEnum16::NearMiss:
return ProjectDataManagement::VulnerabilityState::NearMiss;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_NearMiss;
case rpr2::HitResultEnum16::HitWithNoEffect:
return ProjectDataManagement::VulnerabilityState::HitWithNoEffect;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_HitWithNoEffect;
case rpr2::HitResultEnum16::Contaminated:
return ProjectDataManagement::VulnerabilityState::CContamination;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_CContamination;
case rpr2::HitResultEnum16::TemporaryFailure:
return ProjectDataManagement::VulnerabilityState::TemporarySeverance;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_TemporarySeverance;
default:
return ProjectDataManagement::VulnerabilityState::NoChange;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_NoChange;
}
return ProjectDataManagement::VulnerabilityState::NoChange;
return ProjectDataManagement::VulnerabilityState::VulnerabilityState_NoChange;
}
QPolygonF NgsConnector::utmToGeogrphic(const QPolygonF &polyUtm, const LtsCoordTrans::UtmCoordinate &base)
@@ -1681,10 +1682,10 @@ void NgsConnector::onEntityIdentifierChanged(const rpr2::EntityIdentifierStruct
GuezHitStruct hs;
hs.originatorType = ProjectDataManagement::StateChangeOriginator::Initialization;
hs.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Initialization;
hs.sampleTime = QDateTime::currentDateTimeUtc().toMSecsSinceEpoch();
hs.targetId = is.entityNumber();
hs.vulnerabilityState = ProjectDataManagement::VulnerabilityState::VulnerabilityBitsChanged;
hs.vulnerabilityState = ProjectDataManagement::VulnerabilityState::VulnerabilityState_VulnerabilityBitsChanged;
QTimer::singleShot(STATUS_WAIT_INTERVAL, this, [this, hs, obj]() mutable
{
@@ -2083,11 +2084,11 @@ bool NgsConnector::onTacticalStatusChanged(const rpr2::EntityIdentifierStruct &e
GuezHitStruct hitStruct;
hitStruct.originatorChargeTypeEtsString = TypeStruct::fromDisInt(0).toString();
hitStruct.originatorId = 0;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::Unknown;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Unknown;
hitStruct.position = m_observerPositions[is.entityNumber()].toGeoPosition();
hitStruct.sampleTime = simTimeMSecs;
hitStruct.targetId = is.entityNumber();
hitStruct.vulnerabilityState = ProjectDataManagement::VulnerabilityState::VulnerabilityBitsChanged;
hitStruct.vulnerabilityState = ProjectDataManagement::VulnerabilityState::VulnerabilityState_VulnerabilityBitsChanged;
hitStruct.vulnerabilityKind = 0;
const auto vulnerabilityBits = m_damageModelMap[is.entityNumber()]->totalState(hitStruct.sampleTime);
@@ -2423,31 +2424,31 @@ void NgsConnector::onNewGuezHit(const rpr2::IObserverGuezHitIntInstance &interac
GuezHitStruct hitStruct;
hitStruct.originatorChargeTypeEtsString = TypeStruct(interaction.getMunition()).toString();
hitStruct.originatorId = interaction.getOriginatorIdentifier().EntityNumber;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::Unknown;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Unknown;
switch (interaction.getOriginatorType())
{
case rpr2::OriginatorTypeEnum16::Unknown:
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::Unknown;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Unknown;
break;
case rpr2::OriginatorTypeEnum16::NoMedicalTreatment:
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::Participant;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Participant;
if (hitStruct.originatorId == 0)
hitStruct.originatorId = hitStruct.targetId;
break;
case rpr2::OriginatorTypeEnum16::Participant:
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::Participant;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Participant;
if (hitStruct.originatorId == 0)
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::ExerciseControl;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ExerciseControl;
break;
case rpr2::OriginatorTypeEnum16::AreaEffectSimulation:
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::AreaEffectSimulation;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_AreaEffectSimulation;
hitStruct.originatorId = IdentifierStruct(interaction.getOriginatorIdentifier()).toInt64();
break;
case rpr2::OriginatorTypeEnum16::ObserverController:
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::ObserverController;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ObserverController;
break;
case rpr2::OriginatorTypeEnum16::ExerciseControl:
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::ExerciseControl;
hitStruct.originatorType = ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ExerciseControl;
break;
}
hitStruct.position = ParticipantPosition(interaction.getTargetLocation()).toGeoPosition();
@@ -2458,16 +2459,16 @@ void NgsConnector::onNewGuezHit(const rpr2::IObserverGuezHitIntInstance &interac
hitStruct.vulnerabilityState = getTacticalStatusEnum(interaction.getHitResult());
if ((hitStruct.originatorType == ProjectDataManagement::StateChangeOriginator::ExerciseControl ||
hitStruct.originatorType == ProjectDataManagement::StateChangeOriginator::ObserverController
if ((hitStruct.originatorType == ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ExerciseControl ||
hitStruct.originatorType == ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ObserverController
)
&& hitStruct.vulnerabilityState == ProjectDataManagement::VulnerabilityState::HitWithNoEffect)
&& hitStruct.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_HitWithNoEffect)
{
auto ptr = m_damageModelMap.value(eqNo);
if (ptr)
{
hitStruct.vulnerabilityState = ptr->vulnerabilityState(hitStruct.sampleTime);
if (hitStruct.vulnerabilityState == ProjectDataManagement::VulnerabilityState::CombatReady)
if (hitStruct.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady)
ptr->setTacticalStatus(rpr2::HitResultEnum16::Reset, simTimeToMSec(interaction.getReceiveTimeStamp()));
}
}
@@ -2642,7 +2643,7 @@ rpr2::EventIdentifierStruct NgsConnector::getEventIdentifierStruct()
rpr2::TacticalStatusStruct NgsConnector::getTacticalStatusFromState(const ParticipantManagement::StateInformation &state)
{
rpr2::TacticalStatusStruct ts;
ts.TacticalStatus = static_cast<rpr2::TacticalStatusEnum8::ET>(state.vulnerabilityState().underlying());
ts.TacticalStatus = static_cast<rpr2::TacticalStatusEnum8::ET>(state.vulnerabilityState());
ts.TotalStatus = static_cast<rpr2::TotalStatusEnum32::ET>(state.vulnerabilityBits());
ts.VulnerabilityKind = state.vulnerabilityKindId();
return ts;
@@ -2712,9 +2713,9 @@ bool NgsConnector::setParticipantHit(int eqNo, const ParticipantManagement::Stat
rpr2::OriginatorTypeEnum16::ET originatorTypeRpr = rpr2::OriginatorTypeEnum16::Unknown;
switch (originatorType.underlying())
switch (originatorType)
{
case ProjectDataManagement::StateChangeOriginator::AreaEffectSimulation:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_AreaEffectSimulation:
{
if (m_environmentObjects.contains(originatorEqNo))
is = IdentifierStruct(10 * originatorEqNo);
@@ -2734,14 +2735,14 @@ bool NgsConnector::setParticipantHit(int eqNo, const ParticipantManagement::Stat
originatorTypeRpr = rpr2::OriginatorTypeEnum16::AreaEffectSimulation;
break;
}
case ProjectDataManagement::StateChangeOriginator::ExerciseControl:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ExerciseControl:
originatorTypeRpr = rpr2::OriginatorTypeEnum16::ExerciseControl;
break;
case ProjectDataManagement::StateChangeOriginator::ObserverController:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ObserverController:
originatorTypeRpr = rpr2::OriginatorTypeEnum16::ObserverController;
break;
case ProjectDataManagement::StateChangeOriginator::Participant:
if (originatorType == ProjectDataManagement::StateChangeOriginator::Participant)
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Participant:
if (originatorType == ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Participant)
{
if (m_playerMap.contains(originatorEqNo))
is = IdentifierStruct(originatorEqNo);
@@ -2756,16 +2757,16 @@ bool NgsConnector::setParticipantHit(int eqNo, const ParticipantManagement::Stat
break;
}
Q_FALLTHROUGH();
case ProjectDataManagement::StateChangeOriginator::Initialization:
case ProjectDataManagement::StateChangeOriginator::FunctionalArea:
case ProjectDataManagement::StateChangeOriginator::MaintainanceDevice:
case ProjectDataManagement::StateChangeOriginator::Unknown:
case ProjectDataManagement::StateChangeOriginator::WoundTreatmentDevice:
case ProjectDataManagement::StateChangeOriginator::MedicalTimeout:
case ProjectDataManagement::StateChangeOriginator::Sanitation:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Initialization:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_FunctionalArea:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_MaintainanceDevice:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Unknown:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_WoundTreatmentDevice:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_MedicalTimeout:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Sanitation:
case ProjectDataManagement::StateChangeOriginator::ImprovisedExplosiveDevice:
case ProjectDataManagement::StateChangeOriginator::DusMine:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ImprovisedExplosiveDevice:
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_DusMine:
originatorTypeRpr = rpr2::OriginatorTypeEnum16::Unknown;
break;
}