Persist drill recovery plan posture upstream
This commit is contained in:
parent
ba04128d39
commit
3c0caf9c4e
4 changed files with 431 additions and 23 deletions
|
|
@ -475,6 +475,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted narrow drill-recovery-structure queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued"))
|
||||
{
|
||||
return TEXT("accepted tight drill-recovery-plan queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet queued dashboard handoff");
|
||||
|
|
@ -491,6 +495,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted narrow drill-recovery-structure follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up"))
|
||||
{
|
||||
return TEXT("accepted tight drill-recovery-plan follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet follow-up dashboard handoff");
|
||||
|
|
@ -507,6 +515,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted narrow drill-recovery-structure recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended"))
|
||||
{
|
||||
return TEXT("accepted tight drill-recovery-plan recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-packet recommended dashboard handoff");
|
||||
|
|
@ -523,6 +535,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted broad drill-recovery-structure queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued"))
|
||||
{
|
||||
return TEXT("accepted broad drill-recovery-plan queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet queued dashboard handoff");
|
||||
|
|
@ -539,6 +555,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted broad drill-recovery-structure follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up"))
|
||||
{
|
||||
return TEXT("accepted broad drill-recovery-plan follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet follow-up dashboard handoff");
|
||||
|
|
@ -555,6 +575,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted broad drill-recovery-structure recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended"))
|
||||
{
|
||||
return TEXT("accepted broad drill-recovery-plan recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-recovery-packet recommended dashboard handoff");
|
||||
|
|
@ -627,6 +651,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("successful narrow drill-recovery-structure history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight"))
|
||||
{
|
||||
return TEXT("successful tight drill-recovery-plan history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-packet history");
|
||||
|
|
@ -643,6 +671,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("successful broad drill-recovery-structure redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad"))
|
||||
{
|
||||
return TEXT("successful broad drill-recovery-plan redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-packet history");
|
||||
|
|
@ -678,13 +710,19 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
const bool bRetainedMethodDrillRecoveryPostureDriven = false,
|
||||
const bool bMethodDrillRecoveryPacketDriven = false,
|
||||
const bool bNarrowMethodDrillRecoveryStructureDriven = false,
|
||||
const bool bBroadMethodDrillRecoveryStructureDriven = false)
|
||||
const bool bBroadMethodDrillRecoveryStructureDriven = false,
|
||||
const bool bTightMethodDrillRecoveryStructurePlanDriven = false,
|
||||
const bool bBroadMethodDrillRecoveryStructurePlanDriven = false)
|
||||
{
|
||||
if (MethodDrillRecoveryMemoryBias == EMethodDrillRecoveryMemoryBias::Strong)
|
||||
{
|
||||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
if (bTightMethodDrillRecoveryStructurePlanDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued");
|
||||
}
|
||||
if (bNarrowMethodDrillRecoveryStructureDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-queued");
|
||||
|
|
@ -697,6 +735,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
if (bTightMethodDrillRecoveryStructurePlanDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up");
|
||||
}
|
||||
if (bNarrowMethodDrillRecoveryStructureDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-follow-up");
|
||||
|
|
@ -709,6 +751,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
? TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
if (bTightMethodDrillRecoveryStructurePlanDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended");
|
||||
}
|
||||
if (bNarrowMethodDrillRecoveryStructureDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-recommended");
|
||||
|
|
@ -729,6 +775,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
if (bBroadMethodDrillRecoveryStructurePlanDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued");
|
||||
}
|
||||
if (bBroadMethodDrillRecoveryStructureDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-broad-queued");
|
||||
|
|
@ -741,6 +791,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
if (bBroadMethodDrillRecoveryStructurePlanDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up");
|
||||
}
|
||||
if (bBroadMethodDrillRecoveryStructureDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-broad-follow-up");
|
||||
|
|
@ -753,6 +807,10 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
? TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
: TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
if (bBroadMethodDrillRecoveryStructurePlanDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended");
|
||||
}
|
||||
if (bBroadMethodDrillRecoveryStructureDriven)
|
||||
{
|
||||
return TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended");
|
||||
|
|
@ -1839,6 +1897,22 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
const bool bUseBroadMethodDrillPacketStructureRecovery =
|
||||
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-packet-structure-broad");
|
||||
const bool bUseTightMethodDrillRecoveryStructurePlan =
|
||||
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|
||||
|| (MethodDrillRecoveryPacketLaunchBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
&& MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount > 0
|
||||
&& MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount
|
||||
>= MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount);
|
||||
const bool bUseBroadMethodDrillRecoveryStructurePlan =
|
||||
CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad")
|
||||
|| (MethodDrillRecoveryPacketLaunchBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
&& MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount > 0
|
||||
&& MethodDrillRecoveryPacketQueueBias.BroadRedirectPlanCount
|
||||
>= MethodDrillRecoveryPacketQueueBias.TightContinuationPlanCount);
|
||||
|
||||
auto StartRunAndRefresh = [this](const FHyperTwistTrainingRunState& RunState)
|
||||
{
|
||||
|
|
@ -1905,7 +1979,9 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
bUseStrongRetainedMethodDrillRecoveryPosture,
|
||||
bUseMethodDrillRecoveryPacketSignal,
|
||||
bUseNarrowMethodDrillPacketStructureRecovery,
|
||||
bUseBroadMethodDrillPacketStructureRecovery
|
||||
bUseBroadMethodDrillPacketStructureRecovery,
|
||||
bUseTightMethodDrillRecoveryStructurePlan,
|
||||
bUseBroadMethodDrillRecoveryStructurePlan
|
||||
](
|
||||
const EHyperTwistTrainingCoachHandoffKind HandoffKind)
|
||||
{
|
||||
|
|
@ -1926,6 +2002,8 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
true,
|
||||
bUseMethodDrillRecoveryPacketSignal,
|
||||
bUseNarrowMethodDrillPacketStructureRecovery,
|
||||
false,
|
||||
bUseTightMethodDrillRecoveryStructurePlan,
|
||||
false
|
||||
);
|
||||
}
|
||||
|
|
@ -1939,7 +2017,9 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
false,
|
||||
true,
|
||||
bUseNarrowMethodDrillPacketStructureRecovery,
|
||||
bUseBroadMethodDrillPacketStructureRecovery
|
||||
bUseBroadMethodDrillPacketStructureRecovery,
|
||||
bUseTightMethodDrillRecoveryStructurePlan,
|
||||
bUseBroadMethodDrillRecoveryStructurePlan
|
||||
);
|
||||
}
|
||||
if (bUseMethodDrillRecoverySignal)
|
||||
|
|
@ -1959,7 +2039,9 @@ bool UHyperTwistCoachDashboardWidget::ApplyQueueRecoveryPosture()
|
|||
false,
|
||||
bUseMethodDrillRecoveryPacketSignal,
|
||||
bUseNarrowMethodDrillPacketStructureRecovery,
|
||||
bUseBroadMethodDrillPacketStructureRecovery
|
||||
bUseBroadMethodDrillPacketStructureRecovery,
|
||||
bUseTightMethodDrillRecoveryStructurePlan,
|
||||
bUseBroadMethodDrillRecoveryStructurePlan
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -8601,6 +8683,32 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
&& MethodDrillFollowUpWeighting.WeakPacketRedirectCount > 0
|
||||
&& MethodDrillFollowUpWeighting.WeakPacketRedirectCount
|
||||
>= MethodDrillFollowUpWeighting.StrongPacketContinuationCount;
|
||||
const bool bHandoffRecommendationUsedTightMethodDrillRecoveryStructurePlan =
|
||||
HandoffRecommendationKind
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::None
|
||||
&& EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
&& ((MethodDrillRecoveryPacketHandoffBias.TightContinuationPlanCount > 0
|
||||
&& MethodDrillRecoveryPacketHandoffBias.TightContinuationPlanCount
|
||||
>= MethodDrillRecoveryPacketHandoffBias.BroadRedirectPlanCount
|
||||
&& (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
|| bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
|| bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory))
|
||||
|| CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight"));
|
||||
const bool bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan =
|
||||
HandoffRecommendationKind
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::None
|
||||
&& EffectiveMethodDrillRecoveryMemoryHandoffBias
|
||||
== HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
&& ((MethodDrillRecoveryPacketHandoffBias.BroadRedirectPlanCount > 0
|
||||
&& MethodDrillRecoveryPacketHandoffBias.BroadRedirectPlanCount
|
||||
>= MethodDrillRecoveryPacketHandoffBias.TightContinuationPlanCount
|
||||
&& (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture
|
||||
|| bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory))
|
||||
|| CachedCoachPanelState.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad"));
|
||||
if (bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture)
|
||||
{
|
||||
|
|
@ -8613,7 +8721,11 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak,
|
||||
true,
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory,
|
||||
false,
|
||||
false,
|
||||
bHandoffRecommendationUsedTightMethodDrillRecoveryStructurePlan,
|
||||
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan
|
||||
);
|
||||
}
|
||||
else if (bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
|
|
@ -8627,7 +8739,11 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
false,
|
||||
EffectiveMethodDrillRecoveryMemoryHandoffBias,
|
||||
false,
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
|
||||
bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory,
|
||||
false,
|
||||
false,
|
||||
bHandoffRecommendationUsedTightMethodDrillRecoveryStructurePlan,
|
||||
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan
|
||||
);
|
||||
}
|
||||
else if (bHandoffRecommendationUsedMethodDrillRecoveryPacketHistory
|
||||
|
|
@ -8641,7 +8757,11 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
false,
|
||||
MethodDrillRecoveryPacketHandoffSourceBias,
|
||||
false,
|
||||
true
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
bHandoffRecommendationUsedTightMethodDrillRecoveryStructurePlan,
|
||||
bHandoffRecommendationUsedBroadMethodDrillRecoveryStructurePlan
|
||||
);
|
||||
}
|
||||
else if (bHandoffRecommendationUsedStrongMethodDrillFollowUpPacket
|
||||
|
|
|
|||
|
|
@ -88,7 +88,9 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| SourceLabel == TEXT("coach-memory-method-drill-follow-up-packet-structure-narrow")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-follow-up-packet-structure-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad");
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|
||||
}
|
||||
|
||||
bool IsMethodDrillRecoveryPacketSource(const FString& SourceLabel)
|
||||
|
|
@ -145,12 +147,16 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-strong")
|
||||
|| IsNarrowMethodDrillFollowUpPacketStructureSource(SourceLabel)
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow");
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryMemorySource(const FString& SourceLabel)
|
||||
|
|
@ -167,12 +173,16 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-memory-weak")
|
||||
|| IsBroadMethodDrillFollowUpPacketStructureSource(SourceLabel)
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad");
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|
||||
}
|
||||
|
||||
FString DescribeRetainedMethodDrillRecoveryStanceLabel(const FString& SourceLabel)
|
||||
|
|
@ -638,6 +648,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("successful narrow drill-recovery-structure history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight"))
|
||||
{
|
||||
return TEXT("successful tight drill-recovery-plan history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-strong"))
|
||||
{
|
||||
return TEXT("successful retained drill-recovery-packet history");
|
||||
|
|
@ -650,6 +664,10 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("successful broad drill-recovery-structure redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad"))
|
||||
{
|
||||
return TEXT("successful broad drill-recovery-plan redirect history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-packet-weak"))
|
||||
{
|
||||
return TEXT("weak retained drill-recovery-packet history");
|
||||
|
|
|
|||
|
|
@ -100,9 +100,15 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended")
|
||||
|
|
@ -120,6 +126,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended");
|
||||
|
|
@ -150,6 +159,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-weak-recommended");
|
||||
|
|
@ -173,6 +185,24 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
== TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended");
|
||||
}
|
||||
|
||||
bool IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|
||||
|| SourceLabel
|
||||
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|
||||
|| SourceLabel
|
||||
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended");
|
||||
}
|
||||
|
||||
bool IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|
||||
|| SourceLabel
|
||||
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|
||||
|| SourceLabel
|
||||
== TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryPacketDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|
||||
|
|
@ -247,7 +277,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-strong")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-posture-weak")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-narrow")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad");
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-broad")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-tight")
|
||||
|| SourceLabel == TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|
||||
}
|
||||
|
||||
bool IsStrongMethodDrillRecoveryPacketCoachMemorySource(const FString& SourceLabel)
|
||||
|
|
@ -281,7 +313,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-queued")
|
||||
|
|
@ -298,7 +332,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-follow-up")
|
||||
|
|
@ -315,7 +351,9 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-narrow-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-tight-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-broad-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-structure-plan-broad-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-posture-strong-recommended")
|
||||
|
|
@ -899,6 +937,28 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
BroadMethodDrillRecoveryStructureStartedCount
|
||||
- BroadMethodDrillRecoveryStructureCompletedCount
|
||||
);
|
||||
const int32 TightMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
TightMethodDrillRecoveryStructurePlanStartedCount
|
||||
- TightMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
BroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
- BroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
if (MethodDrillRecoveryStartedCount > 0)
|
||||
{
|
||||
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
|
||||
|
|
@ -989,6 +1049,30 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanLaunchBias =
|
||||
(TightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TightMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
>= 2
|
||||
? FMath::Clamp(
|
||||
(TightMethodDrillRecoveryStructurePlanCompletedCount * 2)
|
||||
- TightMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TightMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ 1,
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanPromoteBias =
|
||||
(BroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ BroadMethodDrillRecoveryStructurePlanStartedCount)
|
||||
>= 2
|
||||
? FMath::Clamp(
|
||||
BroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ BroadMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- BroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
+ (QueueExecutionSummary.bHasOutstandingDeferredWork ? 1 : 0),
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
|
|
@ -1099,6 +1183,7 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
+ MethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryPostureLaunchBias
|
||||
+ TightMethodDrillRecoveryStructurePlanLaunchBias
|
||||
+ NarrowMethodDrillRecoveryStructureLaunchBias;
|
||||
const int32 WeightedRecommendedRecoverySignal =
|
||||
ExplicitRecommendedRecoverySignal
|
||||
|
|
@ -1109,6 +1194,7 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
+ MethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPosturePromoteBias
|
||||
+ BroadMethodDrillRecoveryStructurePlanPromoteBias
|
||||
+ BroadMethodDrillRecoveryStructurePromoteBias;
|
||||
const bool bQueueHistoryPrefersFollowUp =
|
||||
DominantDeferredLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|
|
@ -1147,6 +1233,7 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
+ (static_cast<float>(MethodDrillRecoveryLaunchBias) * 1.75f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryLaunchBias) * 2.0f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPostureLaunchBias) * 2.25f)
|
||||
+ (static_cast<float>(TightMethodDrillRecoveryStructurePlanLaunchBias) * 2.75f)
|
||||
+ (static_cast<float>(NarrowMethodDrillRecoveryStructureLaunchBias) * 2.5f);
|
||||
if (PromoteRecoveryActionPressure > 0.0f || LaunchRecoveryActionPressure > 0.0f)
|
||||
{
|
||||
|
|
@ -1204,6 +1291,29 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& TightMethodDrillRecoveryStructurePlanLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillDashboardHandoffSource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-tight");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& BroadMethodDrillRecoveryStructurePlanPromoteBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& NarrowMethodDrillRecoveryStructureLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|
|
@ -1405,12 +1515,24 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
)
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-narrow");
|
||||
const bool bTightMethodDrillRecoveryStructurePlanHandoffSource =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
)
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-tight");
|
||||
const bool bBroadMethodDrillRecoveryStructureHandoffSource =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
)
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-broad");
|
||||
const bool bBroadMethodDrillRecoveryStructurePlanHandoffSource =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
)
|
||||
|| CoachMemorySnapshot.PreferredQueueRecoveryActionSourceLabel
|
||||
== TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|
||||
const bool bStrongMethodDrillRecoveryMemoryHandoffSource =
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
|
||||
TEXT("coach-memory-dashboard-method-drill-recovery-strong-"))
|
||||
|
|
@ -1423,9 +1545,11 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
== TEXT("coach-memory-method-drill-recovery-memory-weak");
|
||||
const bool bTightMethodDrillRecoveryPlanSource =
|
||||
bStrongMethodDrillRecoveryMemoryHandoffSource
|
||||
|| bTightMethodDrillRecoveryStructurePlanHandoffSource
|
||||
|| bNarrowMethodDrillRecoveryStructureHandoffSource;
|
||||
const bool bBroadMethodDrillRecoveryPlanSource =
|
||||
bWeakMethodDrillRecoveryMemoryHandoffSource
|
||||
|| bBroadMethodDrillRecoveryStructurePlanHandoffSource
|
||||
|| bBroadMethodDrillRecoveryStructureHandoffSource;
|
||||
if (CoachMemorySnapshot.PreferredCoachHandoffKind == EHyperTwistTrainingCoachHandoffKind::Queue
|
||||
&& !CoachBrief.bNeedsCoachReview
|
||||
|
|
@ -7389,6 +7513,28 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
BroadMethodDrillRecoveryStructureStartedCount
|
||||
- BroadMethodDrillRecoveryStructureCompletedCount
|
||||
);
|
||||
const int32 TightMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
TightMethodDrillRecoveryStructurePlanStartedCount
|
||||
- TightMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanStartedCount =
|
||||
QueueExecutionSummary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanPromotedCount =
|
||||
QueueExecutionSummary.PromotedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanCompletedCount =
|
||||
QueueExecutionSummary.CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanOutstandingCount = FMath::Max(
|
||||
0,
|
||||
BroadMethodDrillRecoveryStructurePlanStartedCount
|
||||
- BroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
);
|
||||
if (MethodDrillRecoveryStartedCount > 0)
|
||||
{
|
||||
Snapshot.MethodDrillRecoveryHistoryCount += MethodDrillRecoveryStartedCount;
|
||||
|
|
@ -7479,6 +7625,30 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 TightMethodDrillRecoveryStructurePlanLaunchBias =
|
||||
(TightMethodDrillRecoveryStructurePlanStartedCount
|
||||
+ TightMethodDrillRecoveryStructurePlanPromotedCount)
|
||||
>= 2
|
||||
? FMath::Clamp(
|
||||
(TightMethodDrillRecoveryStructurePlanCompletedCount * 2)
|
||||
- TightMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- TightMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ 1,
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 BroadMethodDrillRecoveryStructurePlanPromoteBias =
|
||||
(BroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ BroadMethodDrillRecoveryStructurePlanStartedCount)
|
||||
>= 2
|
||||
? FMath::Clamp(
|
||||
BroadMethodDrillRecoveryStructurePlanPromotedCount
|
||||
+ BroadMethodDrillRecoveryStructurePlanOutstandingCount
|
||||
- BroadMethodDrillRecoveryStructurePlanCompletedCount
|
||||
+ (QueueExecutionSummary.bHasOutstandingDeferredWork ? 1 : 0),
|
||||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 StrongMethodDrillFollowUpPacketStartedCount =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketQueuedHandoffEventCount
|
||||
+ QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketFollowUpHandoffEventCount
|
||||
|
|
@ -7670,21 +7840,23 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
+ ExplicitDeferredFirstQueuedHandoffSignal
|
||||
+ ExplicitDeferredFirstFollowUpHandoffSignal
|
||||
+ ExplicitMethodDrillQueuedHandoffSignal
|
||||
+ ExplicitMethodDrillFollowUpHandoffSignal
|
||||
+ MethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryPostureLaunchBias
|
||||
+ NarrowMethodDrillRecoveryStructureLaunchBias;
|
||||
const int32 WeightedRecommendedRecoverySignal =
|
||||
ExplicitRecommendedRecoverySignal
|
||||
+ ExplicitMethodDrillFollowUpHandoffSignal
|
||||
+ MethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryLaunchBias
|
||||
+ RetainedMethodDrillRecoveryPostureLaunchBias
|
||||
+ TightMethodDrillRecoveryStructurePlanLaunchBias
|
||||
+ NarrowMethodDrillRecoveryStructureLaunchBias;
|
||||
const int32 WeightedRecommendedRecoverySignal =
|
||||
ExplicitRecommendedRecoverySignal
|
||||
+ ExplicitRecommendedHandoffSignal
|
||||
+ ExplicitDeferredOverflowRecommendedHandoffSignal
|
||||
+ ExplicitDeferredFirstRecommendedHandoffSignal
|
||||
+ ExplicitMethodDrillRecommendedHandoffSignal
|
||||
+ MethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPosturePromoteBias
|
||||
+ BroadMethodDrillRecoveryStructurePromoteBias;
|
||||
+ ExplicitMethodDrillRecommendedHandoffSignal
|
||||
+ MethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPromoteBias
|
||||
+ RetainedMethodDrillRecoveryPosturePromoteBias
|
||||
+ BroadMethodDrillRecoveryStructurePlanPromoteBias
|
||||
+ BroadMethodDrillRecoveryStructurePromoteBias;
|
||||
const bool bQueueHistoryPrefersFollowUp =
|
||||
DominantDeferredLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|| (DominantCompletedLane == EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|
|
@ -7704,6 +7876,7 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
+ (static_cast<float>(MethodDrillRecoveryPromoteBias) * 1.5f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPromoteBias) * 1.75f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPosturePromoteBias) * 2.0f)
|
||||
+ (static_cast<float>(BroadMethodDrillRecoveryStructurePlanPromoteBias) * 2.75f)
|
||||
+ (static_cast<float>(BroadMethodDrillRecoveryStructurePromoteBias) * 2.5f);
|
||||
const float LaunchRecoveryActionPressure =
|
||||
(QueueExecutionSummary.bHasCompletionGap ? 4.0f : 0.0f)
|
||||
|
|
@ -7722,6 +7895,7 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
+ (static_cast<float>(MethodDrillRecoveryLaunchBias) * 1.75f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryLaunchBias) * 2.0f)
|
||||
+ (static_cast<float>(RetainedMethodDrillRecoveryPostureLaunchBias) * 2.25f)
|
||||
+ (static_cast<float>(TightMethodDrillRecoveryStructurePlanLaunchBias) * 2.75f)
|
||||
+ (static_cast<float>(NarrowMethodDrillRecoveryStructureLaunchBias) * 2.5f);
|
||||
if (PromoteRecoveryActionPressure > 0.0f || LaunchRecoveryActionPressure > 0.0f)
|
||||
{
|
||||
|
|
@ -7778,6 +7952,30 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-packet-weak");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& TightMethodDrillRecoveryStructurePlanLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillDashboardHandoffSource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-tight");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction
|
||||
== EHyperTwistTrainingQueueRecoveryAction::PromoteDeferred
|
||||
&& BroadMethodDrillRecoveryStructurePlanPromoteBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|| Snapshot.PreferredQueueRecoveryActionSourceLabel.StartsWith(TEXT("queue-history"))
|
||||
|| HyperTwistTrainingRepositoryLibraryInternal::IsMethodDrillRecoveryCoachMemorySource(
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel)))
|
||||
{
|
||||
Snapshot.PreferredQueueRecoveryActionSourceLabel =
|
||||
TEXT("coach-memory-method-drill-recovery-structure-plan-broad");
|
||||
}
|
||||
else if (Snapshot.PreferredQueueRecoveryAction == EHyperTwistTrainingQueueRecoveryAction::LaunchRecovery
|
||||
&& NarrowMethodDrillRecoveryStructureLaunchBias > 0
|
||||
&& (Snapshot.PreferredQueueRecoveryActionSourceLabel.IsEmpty()
|
||||
|
|
@ -9715,6 +9913,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bNarrowMethodDrillRecoveryStructureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsNarrowMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bTightMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -9727,6 +9928,9 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bBroadMethodDrillRecoveryStructureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -9764,6 +9968,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedNarrowMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount += 1;
|
||||
|
|
@ -9772,6 +9980,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::FollowUp)
|
||||
{
|
||||
|
|
@ -9804,6 +10016,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedNarrowMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount += 1;
|
||||
|
|
@ -9812,6 +10028,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
else if (DashboardHandoffKind == EHyperTwistTrainingCoachHandoffKind::Recommended)
|
||||
{
|
||||
|
|
@ -9844,6 +10064,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedNarrowMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount += 1;
|
||||
|
|
@ -9852,6 +10076,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryDashboardHandoff)
|
||||
{
|
||||
|
|
@ -9910,11 +10138,21 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.PromotedNarrowMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel))
|
||||
{
|
||||
Summary.PromotedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel))
|
||||
{
|
||||
Summary.PromotedBroadMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel))
|
||||
{
|
||||
Summary.PromotedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
break;
|
||||
case EHyperTwistTrainingCoachSessionQueueEventKind::Completed:
|
||||
Summary.CompletedEventCount += 1;
|
||||
|
|
@ -9935,12 +10173,18 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bNarrowMethodDrillRecoveryStructureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsNarrowMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bTightMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsTightMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bBroadMethodDrillRecoveryStructureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bBroadMethodDrillRecoveryStructurePlanDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsBroadMethodDrillRecoveryStructurePlanDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -9970,6 +10214,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.CompletedNarrowMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bTightMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillRecoveryDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedWeakMethodDrillRecoveryMemoryHandoffEventCount += 1;
|
||||
|
|
@ -9978,6 +10226,10 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.CompletedBroadMethodDrillRecoveryStructureHandoffEventCount += 1;
|
||||
}
|
||||
if (bBroadMethodDrillRecoveryStructurePlanDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongRetainedMethodDrillRecoveryPostureDashboardHandoff)
|
||||
{
|
||||
Summary.CompletedStrongRetainedMethodDrillRecoveryPostureHandoffEventCount += 1;
|
||||
|
|
|
|||
|
|
@ -3735,6 +3735,24 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedBroadMethodDrillRecoveryStructureHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 PromotedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedTightMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 PromotedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedBroadMethodDrillRecoveryStructurePlanHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 CompletedMethodDrillQueuedHandoffEventCount = 0;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue