Skip to content
Snippets Groups Projects
Commit 608d7cbc authored by Jonathan Ehret's avatar Jonathan Ehret
Browse files

Merge branch 'fix/63_no_factorLevel_for_map' into '4.26'

Fix GetFactorLevel() not working for MapFactors

Closes #63

See merge request !5
parents c2b93c63 b5700891
No related branches found
No related tags found
1 merge request!5Fix GetFactorLevel() not working for MapFactors
No preview for this file type
......@@ -12,7 +12,6 @@ void USFConditionListEntry::FillWithCondition(const USFCondition* InCondition)
Condition = InCondition;
TArray<FString> Data;
Data.Add(Condition->PhaseName);
Data.Add(FPaths::GetBaseFilename(Condition->Map));
Data.Add(Condition->GetTimeTaken() <= 0.0 ? "-" : FString::Printf(TEXT("%.2f"), Condition->GetTimeTaken()));
for (auto Factor : Condition->FactorLevels)
{
......@@ -21,8 +20,8 @@ void USFConditionListEntry::FillWithCondition(const USFCondition* InCondition)
TextBlockIdToDependentVar.Empty();
for (auto DependentVar : Condition->DependentVariablesValues)
{
TextBlockIdToDependentVar.Add(Data.Num() - 3, DependentVar.Key);
//-3 since the first three elements of Data or not mapped to the text fields
TextBlockIdToDependentVar.Add(Data.Num() - 2, DependentVar.Key);
//-2 since the first two elements of Data or not mapped to the text fields
Data.Add(DependentVar.Value == "" ? "-" : DependentVar.Value);
}
FillTextsHelper(Data);
......@@ -34,7 +33,6 @@ void USFConditionListEntry::FillAsPhaseHeader(const USFCondition* InCondition)
Condition = InCondition;
TArray<FString> Data;
Data.Add("Phase");
Data.Add("Map");
Data.Add("Duration");
for (auto Factor : Condition->FactorLevels)
{
......@@ -52,13 +50,12 @@ void USFConditionListEntry::FillAsPhaseHeader(const USFCondition* InCondition)
void USFConditionListEntry::FillTextsHelper(const TArray<FString>& Data)
{
Phase->SetText(FText::FromString(Data[0]));
Map->SetText(FText::FromString(Data[1]));
Time->SetText(FText::FromString(Data[2]));
Time->SetText(FText::FromString(Data[1]));
int UsedTexts = 0;
TArray<UTextBlock*> Texts = {Text0, Text1, Text2, Text3, Text4, Text5, Text6, Text7};
for (int i = 3; i < Data.Num(); ++i)
for (int i = 2; i < Data.Num(); ++i)
{
if (UsedTexts >= Texts.Num())
{
......
......@@ -153,8 +153,6 @@ void ASFMasterHUD::UpdateHUD(USFParticipant* Participant, const FString& Status)
HUDWidget->SetPhase(Condition->PhaseName);
TMap<FString, FString> FactorLevels = Condition->FactorLevels;
//Add map since it is not by default in FactorLevels
FactorLevels.Add("Map", FPaths::GetBaseFilename(Condition->Map));
HUDWidget->SetCondition(FactorLevels);
USFGameInstance::Get()->HUDSavedData = HUDWidget->GetData();
......
......@@ -18,12 +18,14 @@ void USFCondition::Generate(const FString& InPhaseName, const TArray<int>& Condi
for (int i = 0; i < Factors.Num(); ++i)
{
USFStudyFactor* Factor = Factors[i];
FString FactorLevel = Factor->Levels[ConditionIndices[i]];
if (Factor->IsA(USFMapFactor::StaticClass()))
{
Map = Factor->Levels[ConditionIndices[i]];
continue;
Map = FactorLevel;
//for better readybility strip path!
FactorLevel = FPaths::GetBaseFilename(FactorLevel);
}
FactorLevels.Add(Factor->FactorName, Factor->Levels[ConditionIndices[i]]);
FactorLevels.Add(Factor->FactorName, FactorLevel);
}
for (USFDependentVariable* Var : DependentVars)
......@@ -86,7 +88,7 @@ FString USFCondition::CreateIdentifiableName()
FString USFCondition::ToString() const
{
FString Out = PhaseName + "_" + FPaths::GetBaseFilename(Map);
FString Out = PhaseName;
for (auto Level : FactorLevels)
{
Out = Out + "_" + Level.Value;
......@@ -151,10 +153,6 @@ bool USFCondition::RecoverStudyResults(TArray<FString>& Header, TArray<FString>&
return false;
}
}
if (!Header.Contains("Map") || Entries[Header.Find("Map")] != Map)
{
return false;
}
//so this is the right condition
for (auto& DepVar : DependentVariablesValues)
......@@ -171,7 +169,6 @@ FString USFCondition::GetPrettyName()
{
FString ConditionString = "(";
ConditionString += "Phase: " + PhaseName;
ConditionString += "; Map: " + FPaths::GetBaseFilename(Map);
for (auto FactorLevel : FactorLevels)
{
ConditionString += "; " + FactorLevel.Key + ": " + FactorLevel.Value;
......
......@@ -124,7 +124,6 @@ void USFParticipant::StoreInPhaseLongTable() const
}
FString ConditionResults = FString::FromInt(ParticipantID);
ConditionResults += "," + CurrCondition->Map;
for (auto Factor : CurrCondition->FactorLevels)
{
ConditionResults += "," + Factor.Value;
......
......@@ -27,7 +27,6 @@ public:
UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) UButton* GoToButton;
UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) UTextBlock* Phase;
UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) UTextBlock* Map;
UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) UTextBlock* Text0;
UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) UTextBlock* Text1;
UPROPERTY(BlueprintReadWrite, meta = (BindWidget)) UTextBlock* Text2;
......
......@@ -53,14 +53,14 @@ public:
UPROPERTY(BlueprintReadOnly)
TMap<FString,FString> FactorLevels;
UPROPERTY(BlueprintReadOnly)
FString Map = "undefined";
UPROPERTY(BlueprintReadOnly)
TMap<USFDependentVariable*,FString> DependentVariablesValues;
protected:
UPROPERTY(BlueprintReadOnly)
FString Map = "";
UPROPERTY(BlueprintReadOnly)
float TimeTaken=0.0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment