From 2951d24545d9ad95edef7035d2b618e3c2076283 Mon Sep 17 00:00:00 2001 From: nsubiron Date: Tue, 30 May 2017 10:49:58 +0100 Subject: [PATCH] Fix some issues when loading the carla settings that the client sent --- Source/Carla/Game/CarlaSettings.cpp | 27 +++++++++++++++++++-------- Source/Carla/Game/CarlaSettings.h | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Source/Carla/Game/CarlaSettings.cpp b/Source/Carla/Game/CarlaSettings.cpp index 8e740c055..e1e64c2e2 100644 --- a/Source/Carla/Game/CarlaSettings.cpp +++ b/Source/Carla/Game/CarlaSettings.cpp @@ -76,13 +76,18 @@ static bool RequestedSemanticSegmentation(const FCameraDescription &Camera) return (Camera.PostProcessEffect == EPostProcessEffect::SemanticSegmentation); } -static void LoadSettingsFromConfig(const MyIniFile &ConfigFile, UCarlaSettings &Settings) +static void LoadSettingsFromConfig( + const MyIniFile &ConfigFile, + UCarlaSettings &Settings, + const bool bLoadCarlaServerSection) { // CarlaServer. - ConfigFile.GetBool(S_CARLA_SERVER, TEXT("UseNetworking"), Settings.bUseNetworking); - ConfigFile.GetInt(S_CARLA_SERVER, TEXT("WorldPort"), Settings.WorldPort); - ConfigFile.GetInt(S_CARLA_SERVER, TEXT("WritePort"), Settings.WritePort); - ConfigFile.GetInt(S_CARLA_SERVER, TEXT("ReadPort"), Settings.ReadPort); + if (bLoadCarlaServerSection) { + ConfigFile.GetBool(S_CARLA_SERVER, TEXT("UseNetworking"), Settings.bUseNetworking); + ConfigFile.GetInt(S_CARLA_SERVER, TEXT("WorldPort"), Settings.WorldPort); + ConfigFile.GetInt(S_CARLA_SERVER, TEXT("WritePort"), Settings.WritePort); + ConfigFile.GetInt(S_CARLA_SERVER, TEXT("ReadPort"), Settings.ReadPort); + } // LevelSettings. ConfigFile.GetInt(S_CARLA_LEVELSETTINGS, TEXT("NumberOfVehicles"), Settings.NumberOfVehicles); ConfigFile.GetInt(S_CARLA_LEVELSETTINGS, TEXT("NumberOfPedestrians"), Settings.NumberOfPedestrians); @@ -148,7 +153,7 @@ void UCarlaSettings::LoadSettings() if (GetSettingsFileName(FileName)) { UE_LOG(LogCarla, Log, TEXT("Loading settings from \"%s\""), *FileName); const MyIniFile ConfigFile(FileName); - LoadSettingsFromConfig(ConfigFile, *this); + LoadSettingsFromConfig(ConfigFile, *this, true); CurrentFileName = FileName; } else { CurrentFileName = TEXT(""); @@ -162,11 +167,17 @@ void UCarlaSettings::LoadSettings() } } -void UCarlaSettings::LoadSettingsFromString(const FString &INIFileContents) +void UCarlaSettings::LoadSettingsFromString( + const FString &INIFileContents, + const bool bLoadCarlaServerSection) { + // Reset cameras. + CameraDescriptions.Empty(); + bSemanticSegmentationEnabled = false; + // Load config from string. MyIniFile ConfigFile; ConfigFile.ProcessInputFileContents(INIFileContents); - LoadSettingsFromConfig(ConfigFile, *this); + LoadSettingsFromConfig(ConfigFile, *this, bLoadCarlaServerSection); } void UCarlaSettings::LogSettings() const diff --git a/Source/Carla/Game/CarlaSettings.h b/Source/Carla/Game/CarlaSettings.h index 5c15c0d09..5089979df 100644 --- a/Source/Carla/Game/CarlaSettings.h +++ b/Source/Carla/Game/CarlaSettings.h @@ -20,7 +20,7 @@ public: void LoadSettings(); /** Load the settings from the given string (formatted as INI). */ - void LoadSettingsFromString(const FString &INIFileContents); + void LoadSettingsFromString(const FString &INIFileContents, bool bLoadCarlaServerSection = false); /** Log settings values. */ void LogSettings() const;