Persist drill follow-up packet learning upstream
This commit is contained in:
parent
6f969986c8
commit
a43d932aa8
5 changed files with 309 additions and 12 deletions
|
|
@ -336,6 +336,30 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
{
|
||||
return TEXT("accepted weak retained drill-recovery-posture recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-follow-up-packet queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-follow-up-packet follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-follow-up-packet recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-follow-up-packet queued handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-follow-up-packet follow-up handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-follow-up-packet recommended handoff history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-dashboard-queued"))
|
||||
{
|
||||
return TEXT("accepted queued handoff history");
|
||||
|
|
@ -669,6 +693,42 @@ namespace HyperTwistCoachDashboardWidgetInternal
|
|||
}
|
||||
}
|
||||
|
||||
FString DashboardMethodDrillFollowUpPacketSourceLabel(
|
||||
const EHyperTwistTrainingCoachHandoffKind HandoffKind,
|
||||
const EMethodDrillRecoveryMemoryBias PacketBias)
|
||||
{
|
||||
if (PacketBias == EMethodDrillRecoveryMemoryBias::Strong)
|
||||
{
|
||||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
return TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
return TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
return TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-recommended");
|
||||
default:
|
||||
return FString();
|
||||
}
|
||||
}
|
||||
if (PacketBias == EMethodDrillRecoveryMemoryBias::Weak)
|
||||
{
|
||||
switch (HandoffKind)
|
||||
{
|
||||
case EHyperTwistTrainingCoachHandoffKind::Queue:
|
||||
return TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-queued");
|
||||
case EHyperTwistTrainingCoachHandoffKind::FollowUp:
|
||||
return TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-follow-up");
|
||||
case EHyperTwistTrainingCoachHandoffKind::Recommended:
|
||||
return TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-recommended");
|
||||
default:
|
||||
return FString();
|
||||
}
|
||||
}
|
||||
|
||||
return FString();
|
||||
}
|
||||
|
||||
const FHyperTwistCoachSignal* FindCoachSignalById(
|
||||
const TArray<FHyperTwistCoachSignal>& Signals,
|
||||
const TCHAR* SignalId)
|
||||
|
|
@ -8118,6 +8178,22 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
|| bHandoffRecommendationUsedMethodDrillRecoveryMemory
|
||||
|| bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture;
|
||||
const bool bHandoffRecommendationUsedStrongMethodDrillFollowUpPacket =
|
||||
bHandoffRecommendationUsedMethodDrillWeighting
|
||||
&& HandoffRecommendationKind
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::None
|
||||
&& MethodDrillFollowUpWeighting.bPreferDrillFollowUp
|
||||
&& MethodDrillFollowUpWeighting.StrongPacketContinuationCount > 0
|
||||
&& MethodDrillFollowUpWeighting.StrongPacketContinuationCount
|
||||
>= MethodDrillFollowUpWeighting.WeakPacketRedirectCount;
|
||||
const bool bHandoffRecommendationUsedWeakMethodDrillFollowUpPacket =
|
||||
bHandoffRecommendationUsedMethodDrillWeighting
|
||||
&& HandoffRecommendationKind
|
||||
!= HyperTwistCoachDashboardWidgetInternal::EHandoffRecommendationKind::None
|
||||
&& MethodDrillFollowUpWeighting.bPreferCoachHandoff
|
||||
&& MethodDrillFollowUpWeighting.WeakPacketRedirectCount > 0
|
||||
&& MethodDrillFollowUpWeighting.WeakPacketRedirectCount
|
||||
>= MethodDrillFollowUpWeighting.StrongPacketContinuationCount;
|
||||
if (bHandoffRecommendationUsedStrongRetainedMethodDrillRecoveryPosture
|
||||
|| bHandoffRecommendationUsedWeakRetainedMethodDrillRecoveryPosture)
|
||||
{
|
||||
|
|
@ -8161,6 +8237,17 @@ void UHyperTwistCoachDashboardWidget::UpdateDashboardPresentation()
|
|||
true
|
||||
);
|
||||
}
|
||||
else if (bHandoffRecommendationUsedStrongMethodDrillFollowUpPacket
|
||||
|| bHandoffRecommendationUsedWeakMethodDrillFollowUpPacket)
|
||||
{
|
||||
DisplayedCoachHandoffMethodDrillRecoveryMemoryStartActionSourceLabel =
|
||||
HyperTwistCoachDashboardWidgetInternal::DashboardMethodDrillFollowUpPacketSourceLabel(
|
||||
DisplayedCoachHandoffRecommendationKind,
|
||||
bHandoffRecommendationUsedStrongMethodDrillFollowUpPacket
|
||||
? HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Strong
|
||||
: HyperTwistCoachDashboardWidgetInternal::EMethodDrillRecoveryMemoryBias::Weak
|
||||
);
|
||||
}
|
||||
|
||||
CoachHandoffRecommendationDetailLine = FString::Printf(
|
||||
TEXT("Closure continuation bias %d | Closure suppression bias %d | Queue ready: %s | Follow-up ready: %s | Recommended ready: %s | Preferred lane: %s | Memory source: %s%s%s%s%s%s%s%s | Launch bias: %s from %s | broadened/tightened history %d/%d | deferred tightened launches %d | deferred launch cases %d%s | Handoff history preferred: %s"),
|
||||
|
|
|
|||
|
|
@ -42,6 +42,12 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|
|
@ -356,6 +362,30 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("accepted drill-driven recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-follow-up-packet queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-follow-up"))
|
||||
{
|
||||
return TEXT("accepted strong drill-follow-up-packet follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-recommended"))
|
||||
{
|
||||
return TEXT("accepted strong drill-follow-up-packet recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-queued"))
|
||||
{
|
||||
return TEXT("accepted weak drill-follow-up-packet queued dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-follow-up"))
|
||||
{
|
||||
return TEXT("accepted weak drill-follow-up-packet follow-up dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-recommended"))
|
||||
{
|
||||
return TEXT("accepted weak drill-follow-up-packet recommended dashboard handoff");
|
||||
}
|
||||
if (SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued"))
|
||||
{
|
||||
return TEXT("accepted strong drill-recovery-memory queued dashboard handoff");
|
||||
|
|
@ -472,10 +502,18 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
return TEXT("successful method-drill follow-up history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-follow-up-packet-strong"))
|
||||
{
|
||||
return TEXT("successful drill-follow-up-packet history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-follow-up-weak"))
|
||||
{
|
||||
return TEXT("weak method-drill follow-up history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-follow-up-packet-weak"))
|
||||
{
|
||||
return TEXT("weak drill-follow-up-packet history");
|
||||
}
|
||||
if (SourceLabel == TEXT("coach-memory-method-drill-recovery-strong"))
|
||||
{
|
||||
return TEXT("successful drill-driven recovery history");
|
||||
|
|
@ -639,10 +677,14 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
const bool bPreferredGuidanceSource =
|
||||
CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-strong");
|
||||
== TEXT("coach-memory-method-drill-follow-up-strong")
|
||||
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-packet-strong");
|
||||
const bool bPreferredHandoffSource =
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-strong");
|
||||
== TEXT("coach-memory-method-drill-follow-up-strong")
|
||||
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
|
||||
TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-"));
|
||||
if (CoachMemorySnapshot.MethodDrillFollowUpHistoryCount <= 0
|
||||
&& !bPreferredGuidanceSource
|
||||
&& !bPreferredHandoffSource)
|
||||
|
|
@ -674,10 +716,14 @@ namespace HyperTwistTrainingCoachLibraryInternal
|
|||
{
|
||||
const bool bPreferredGuidanceSource =
|
||||
CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-weak");
|
||||
== TEXT("coach-memory-method-drill-follow-up-weak")
|
||||
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-packet-weak");
|
||||
const bool bPreferredHandoffSource =
|
||||
CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-weak");
|
||||
== TEXT("coach-memory-method-drill-follow-up-weak")
|
||||
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
|
||||
TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-"));
|
||||
if (CoachMemorySnapshot.MethodDrillFollowUpHistoryCount <= 0
|
||||
&& !bPreferredGuidanceSource
|
||||
&& !bPreferredHandoffSource)
|
||||
|
|
|
|||
|
|
@ -76,6 +76,12 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
return SourceLabel == TEXT("dashboard-handoff-method-drill-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-strong-recommended")
|
||||
|
|
@ -117,6 +123,13 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-strong-recommended");
|
||||
}
|
||||
|
||||
bool IsStrongMethodDrillFollowUpPacketDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-recommended");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillRecoveryDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-weak-queued")
|
||||
|
|
@ -137,6 +150,13 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recovery-packet-weak-recommended");
|
||||
}
|
||||
|
||||
bool IsWeakMethodDrillFollowUpPacketDashboardHandoffSource(const FString& SourceLabel)
|
||||
{
|
||||
return SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-recommended");
|
||||
}
|
||||
|
||||
bool IsStrongRetainedMethodDrillRecoveryPostureDashboardHandoffSource(
|
||||
const FString& SourceLabel)
|
||||
{
|
||||
|
|
@ -191,6 +211,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-queued")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-queued")
|
||||
|| 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-weak-queued")
|
||||
|
|
@ -204,6 +226,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-follow-up")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-follow-up")
|
||||
|| 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-weak-follow-up")
|
||||
|
|
@ -217,6 +241,8 @@ namespace HyperTwistTrainingRepositoryLibraryInternal
|
|||
|| SourceLabel == TEXT("dashboard-guidance-outcome-deferred-overflow-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-deferred-first-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-strong-recommended")
|
||||
|| SourceLabel == TEXT("dashboard-handoff-method-drill-follow-up-packet-weak-recommended")
|
||||
|| 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-weak-recommended")
|
||||
|
|
@ -7118,18 +7144,88 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
1,
|
||||
3)
|
||||
: 0;
|
||||
const int32 StrongMethodDrillFollowUpPacketStartedCount =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketQueuedHandoffEventCount
|
||||
+ QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketFollowUpHandoffEventCount
|
||||
+ QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketRecommendedHandoffEventCount;
|
||||
const int32 WeakMethodDrillFollowUpPacketStartedCount =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillFollowUpPacketQueuedHandoffEventCount
|
||||
+ QueueExecutionSummary.StartedWeakMethodDrillFollowUpPacketFollowUpHandoffEventCount
|
||||
+ QueueExecutionSummary.StartedWeakMethodDrillFollowUpPacketRecommendedHandoffEventCount;
|
||||
if (StrongMethodDrillFollowUpPacketStartedCount > 0
|
||||
&& StrongMethodDrillFollowUpPacketStartedCount
|
||||
>= WeakMethodDrillFollowUpPacketStartedCount)
|
||||
{
|
||||
const int32 MethodDrillFollowUpPacketBias = FMath::Clamp(
|
||||
StrongMethodDrillFollowUpPacketStartedCount
|
||||
- WeakMethodDrillFollowUpPacketStartedCount
|
||||
+ 1,
|
||||
1,
|
||||
3
|
||||
);
|
||||
Snapshot.FollowUpGuidanceContinueBias += MethodDrillFollowUpPacketBias;
|
||||
Snapshot.SuppressedPrimaryQueuePressureCount += FMath::Max(
|
||||
1,
|
||||
MethodDrillFollowUpPacketBias - 1
|
||||
);
|
||||
if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None
|
||||
|| Snapshot.PreferredGuidanceLane
|
||||
== EHyperTwistTrainingCoachGuidanceLane::Recommended
|
||||
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("recommendation-history"))
|
||||
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("coach-memory-method-drill")))
|
||||
{
|
||||
Snapshot.PreferredGuidanceLane =
|
||||
EHyperTwistTrainingCoachGuidanceLane::FollowUp;
|
||||
Snapshot.PreferredGuidanceSourceLabel =
|
||||
TEXT("coach-memory-method-drill-follow-up-packet-strong");
|
||||
}
|
||||
}
|
||||
else if (WeakMethodDrillFollowUpPacketStartedCount > 0)
|
||||
{
|
||||
const int32 MethodDrillFollowUpPacketRedirectBias = FMath::Clamp(
|
||||
WeakMethodDrillFollowUpPacketStartedCount
|
||||
- StrongMethodDrillFollowUpPacketStartedCount
|
||||
+ 1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
Snapshot.RecommendedGuidanceContinueBias += MethodDrillFollowUpPacketRedirectBias;
|
||||
Snapshot.SuppressedFollowUpQueuePressureCount += MethodDrillFollowUpPacketRedirectBias;
|
||||
if (Snapshot.PreferredGuidanceLane == EHyperTwistTrainingCoachGuidanceLane::None
|
||||
|| Snapshot.PreferredGuidanceLane
|
||||
== EHyperTwistTrainingCoachGuidanceLane::FollowUp
|
||||
|| Snapshot.PreferredGuidanceSourceLabel.StartsWith(TEXT("coach-memory-method-drill")))
|
||||
{
|
||||
Snapshot.PreferredGuidanceLane =
|
||||
EHyperTwistTrainingCoachGuidanceLane::Recommended;
|
||||
Snapshot.PreferredGuidanceSourceLabel =
|
||||
TEXT("coach-memory-method-drill-follow-up-packet-weak");
|
||||
}
|
||||
}
|
||||
const bool bStrongMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillRecoveryPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillRecoveryPacketRecommendedHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillFollowUpPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketQueuedHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillFollowUpPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bStrongMethodDrillFollowUpPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedStrongMethodDrillFollowUpPacketRecommendedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketQueuedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillRecoveryPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillRecoveryPacketRecommendedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillFollowUpPacketQueuedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillFollowUpPacketQueuedHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillFollowUpPacketFollowUpHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillFollowUpPacketFollowUpHandoffEventCount > 0;
|
||||
const bool bWeakMethodDrillFollowUpPacketRecommendedHandoff =
|
||||
QueueExecutionSummary.StartedWeakMethodDrillFollowUpPacketRecommendedHandoffEventCount > 0;
|
||||
if (ExplicitQueuedHandoffSignal > 0
|
||||
|| ExplicitFollowUpHandoffSignal > 0
|
||||
|| ExplicitRecommendedHandoffSignal > 0)
|
||||
|
|
@ -7150,7 +7246,11 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Queue;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
bStrongMethodDrillRecoveryPacketQueuedHandoff
|
||||
bStrongMethodDrillFollowUpPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-queued")
|
||||
: (bWeakMethodDrillFollowUpPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-queued")
|
||||
: (bStrongMethodDrillRecoveryPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-queued")
|
||||
: (bWeakMethodDrillRecoveryPacketQueuedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-queued")
|
||||
|
|
@ -7161,7 +7261,7 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
ExplicitMethodDrillQueuedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
))));
|
||||
}
|
||||
else if (ExplicitFollowUpHandoffSignal >= ExplicitRecommendedHandoffSignal)
|
||||
{
|
||||
|
|
@ -7178,7 +7278,11 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::FollowUp;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
bStrongMethodDrillRecoveryPacketFollowUpHandoff
|
||||
bStrongMethodDrillFollowUpPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-follow-up")
|
||||
: (bWeakMethodDrillFollowUpPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-follow-up")
|
||||
: (bStrongMethodDrillRecoveryPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-follow-up")
|
||||
: (bWeakMethodDrillRecoveryPacketFollowUpHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-follow-up")
|
||||
|
|
@ -7189,7 +7293,7 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
ExplicitMethodDrillFollowUpHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
))));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -7206,7 +7310,11 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
: HyperTwistTrainingRepositoryLibraryInternal::EMethodDrillRecoveryMemoryBias::None);
|
||||
Snapshot.PreferredCoachHandoffKind = EHyperTwistTrainingCoachHandoffKind::Recommended;
|
||||
Snapshot.PreferredCoachHandoffSourceLabel =
|
||||
bStrongMethodDrillRecoveryPacketRecommendedHandoff
|
||||
bStrongMethodDrillFollowUpPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-recommended")
|
||||
: (bWeakMethodDrillFollowUpPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-recommended")
|
||||
: (bStrongMethodDrillRecoveryPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-strong-recommended")
|
||||
: (bWeakMethodDrillRecoveryPacketRecommendedHandoff
|
||||
? TEXT("coach-memory-dashboard-method-drill-recovery-packet-weak-recommended")
|
||||
|
|
@ -7217,7 +7325,7 @@ FHyperTwistTrainingCoachMemorySnapshot UHyperTwistTrainingRepositoryLibrary::Der
|
|||
ExplicitMethodDrillRecommendedHandoffSignal > 0,
|
||||
MethodDrillRecoveryMemoryBias,
|
||||
bRetainedMethodDrillRecoveryPostureDriven
|
||||
));
|
||||
))));
|
||||
}
|
||||
}
|
||||
const int32 WeightedFollowUpRecoverySignal =
|
||||
|
|
@ -9209,12 +9317,18 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
const bool bStrongMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongMethodDrillFollowUpPacketDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongMethodDrillFollowUpPacketDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bStrongMethodDrillRecoveryPacketDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsStrongMethodDrillRecoveryPacketDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillFollowUpPacketDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillFollowUpPacketDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
const bool bWeakMethodDrillRecoveryPacketDashboardHandoff =
|
||||
HyperTwistTrainingRepositoryLibraryInternal::IsWeakMethodDrillRecoveryPacketDashboardHandoffSource(
|
||||
HistoryEntry.StartActionSourceLabel);
|
||||
|
|
@ -9239,6 +9353,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedMethodDrillQueuedHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillFollowUpPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillFollowUpPacketQueuedHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillFollowUpPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillFollowUpPacketQueuedHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount += 1;
|
||||
|
|
@ -9263,6 +9385,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedMethodDrillFollowUpHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillFollowUpPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillFollowUpPacketFollowUpHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillFollowUpPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillFollowUpPacketFollowUpHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillRecoveryPacketFollowUpHandoffEventCount += 1;
|
||||
|
|
@ -9287,6 +9417,14 @@ FHyperTwistTrainingCoachSessionQueueExecutionSummary UHyperTwistTrainingReposito
|
|||
{
|
||||
Summary.StartedMethodDrillRecommendedHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillFollowUpPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillFollowUpPacketRecommendedHandoffEventCount += 1;
|
||||
}
|
||||
if (bWeakMethodDrillFollowUpPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedWeakMethodDrillFollowUpPacketRecommendedHandoffEventCount += 1;
|
||||
}
|
||||
if (bStrongMethodDrillRecoveryPacketDashboardHandoff)
|
||||
{
|
||||
Summary.StartedStrongMethodDrillRecoveryPacketRecommendedHandoffEventCount += 1;
|
||||
|
|
|
|||
|
|
@ -223,8 +223,12 @@ namespace HyperTwistTrainingSubsystemInternal
|
|||
{
|
||||
if (CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-strong")
|
||||
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-packet-strong")
|
||||
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-strong"))
|
||||
== TEXT("coach-memory-method-drill-follow-up-strong")
|
||||
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
|
||||
TEXT("coach-memory-dashboard-method-drill-follow-up-packet-strong-")))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -240,8 +244,12 @@ namespace HyperTwistTrainingSubsystemInternal
|
|||
{
|
||||
if (CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-weak")
|
||||
|| CoachMemorySnapshot.PreferredGuidanceSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-packet-weak")
|
||||
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel
|
||||
== TEXT("coach-memory-method-drill-follow-up-weak"))
|
||||
== TEXT("coach-memory-method-drill-follow-up-weak")
|
||||
|| CoachMemorySnapshot.PreferredCoachHandoffSourceLabel.StartsWith(
|
||||
TEXT("coach-memory-dashboard-method-drill-follow-up-packet-weak-")))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3669,6 +3669,24 @@ struct FHyperTwistTrainingCoachSessionQueueExecutionSummary
|
|||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedMethodDrillRecommendedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongMethodDrillFollowUpPacketQueuedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongMethodDrillFollowUpPacketFollowUpHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongMethodDrillFollowUpPacketRecommendedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedWeakMethodDrillFollowUpPacketQueuedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedWeakMethodDrillFollowUpPacketFollowUpHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedWeakMethodDrillFollowUpPacketRecommendedHandoffEventCount = 0;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HyperTwist")
|
||||
int32 StartedStrongMethodDrillRecoveryPacketQueuedHandoffEventCount = 0;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue