void AppSettings::ReadSettings(string iniFile) { NameValueCollection settings = ReadIniSection(Name.c_str(), iniFile.c_str()); // expand indirect values first for (NameValueCollection::iterator itr = settings.begin(), end = settings.end(); itr != end; ++itr) itr->second = GetIndirectValue(itr->second.c_str()); // next expand qualifiers for (NameValueCollection::iterator itr = settings.begin(), end = settings.end(); itr != end; ++itr) itr->second = ExpandQualifiers(itr->second.c_str(), settings); // finally expand environment variables, last because it clobbers my custom qualifier expansion for (NameValueCollection::iterator itr = settings.begin(), end = settings.end(); itr != end; ++itr) itr->second = ExpandEnvironment(itr->second); std::swap(Environment, settings); rootPath = GetSetting<string>("RootPath"); rootPaths = TokenizeString(GetSetting<string>("RootPaths").c_str(), ";"); searchPaths = TokenizeString(GetSetting<string>("TextureSearchPaths").c_str(), ";"); extensions = TokenizeString(GetSetting<string>("TextureExtensions").c_str(), ";"); textureRootPaths = TokenizeString(GetSetting<string>("TextureRootPaths").c_str(), ";"); Skeleton = GetSetting<string>("Skeleton"); useSkeleton = GetSetting<bool>("UseSkeleton", useSkeleton); goToSkeletonBindPosition = GetSetting<bool>("GoToSkeletonBindPosition", goToSkeletonBindPosition); disableCreateNubsForBones = GetSetting<bool>("DisableCreateNubsForBones", disableCreateNubsForBones); applyOverallTransformToSkinAndBones = GetSetting<int>("ApplyOverallTransformToSkinAndBones", -1); dummyNodeMatches = TokenizeString(GetSetting<string>("DummyNodeMatches").c_str(), ";"); }
void AppSettings::ReadSettings(tstring iniFile) { NameValueCollection settings = ReadIniSection(Name.c_str(), iniFile.c_str()); // expand indirect values first for (NameValueCollection::iterator itr = settings.begin(), end = settings.end(); itr != end; ++itr) itr->second = GetIndirectValue(itr->second.c_str()); // next expand qualifiers for (NameValueCollection::iterator itr = settings.begin(), end = settings.end(); itr != end; ++itr) itr->second = ExpandQualifiers(itr->second.c_str(), settings); // finally expand environment variables, last because it clobbers my custom qualifier expansion for (NameValueCollection::iterator itr = settings.begin(), end = settings.end(); itr != end; ++itr) itr->second = ExpandEnvironment(itr->second); std::swap(Environment, settings); NiVersion = GetSetting<tstring>(TEXT("NiVersion"), TEXT("20.0.0.5")); NiUserVersion = GetSetting<int>(TEXT("NiUserVersion"), 0); NiUserVersion2 = GetSetting<int>(TEXT("NiUserVersion2"), 0); rootPath = GetSetting<tstring>(TEXT("RootPath")); rootPaths = TokenizeString(GetSetting<tstring>(TEXT("RootPaths")).c_str(), TEXT(";")); searchPaths = TokenizeString(GetSetting<tstring>(TEXT("TextureSearchPaths")).c_str(), TEXT(";")); extensions = TokenizeString(GetSetting<tstring>(TEXT("TextureExtensions")).c_str(), TEXT(";")); textureRootPaths = TokenizeString(GetSetting<tstring>(TEXT("TextureRootPaths")).c_str(), TEXT(";")); materialRootPaths = TokenizeString(GetSetting<tstring>(TEXT("MaterialPaths")).c_str(), TEXT(";")); Skeleton = GetSetting<tstring>(TEXT("Skeleton")); useSkeleton = GetSetting<bool>(TEXT("UseSkeleton"), useSkeleton); skeletonSearchPaths = TokenizeString(GetSetting<tstring>(TEXT("SkeletonSearchPaths"), TEXT(".")).c_str(), TEXT(";")); goToSkeletonBindPosition = GetSetting<bool>(TEXT("GoToSkeletonBindPosition"), goToSkeletonBindPosition); disableCreateNubsForBones = GetSetting<bool>(TEXT("DisableCreateNubsForBones"), disableCreateNubsForBones); applyOverallTransformToSkinAndBones = GetSetting<int>(TEXT("ApplyOverallTransformToSkinAndBones"), -1); textureUseFullPath = GetSetting<int>(TEXT("TextureUseFullPath"), textureUseFullPath); dummyNodeMatches = TokenizeString(GetSetting<tstring>(TEXT("DummyNodeMatches")).c_str(), TEXT(";")); rotate90Degrees = TokenizeString(GetSetting<tstring>(TEXT("Rotate90Degrees")).c_str(), TEXT(";")); supportPrnStrings = GetSetting<bool>(TEXT("SupportPrnStrings"), supportPrnStrings); doNotReuseExistingBones = GetSetting<bool>(TEXT("DoNotReuseExistingBones"), doNotReuseExistingBones); skeletonCheck = GetSetting<tstring>(TEXT("SkeletonCheck")); }