ILauncherDeviceGroupPtr FLauncherProfileManager::ParseDeviceGroup( const FString& GroupString ) { TSharedPtr<FLauncherDeviceGroup> Result; FString GroupIdString; if (FParse::Value(*GroupString, TEXT("Id="), GroupIdString)) { FGuid GroupId; if (!FGuid::Parse(GroupIdString, GroupId)) { GroupId = FGuid::NewGuid(); } FString GroupName; FParse::Value(*GroupString, TEXT("Name="), GroupName); FString DevicesString; FParse::Value(*GroupString, TEXT("Devices="), DevicesString); Result = MakeShareable(new FLauncherDeviceGroup(GroupId, GroupName)); TArray<FString> DeviceList; DevicesString.ParseIntoArray(DeviceList, TEXT(", "), false); for (int32 Index = 0; Index < DeviceList.Num(); ++Index) { Result->AddDevice(DeviceList[Index]); } } return Result; }