void ApplicationClass::ReadConfig(void) { // Read the configuration file for this specific format #pragma region READCONFIG if(m_bForceNewConfig == true) { WriteConfig(); return; } //If we are forcing the changes String sRoot = m_pSystem->m_pFolder->GetFolderRoot(); String App = m_pSystem->ApplicationName; App = sRoot + App + ".cfg"; FileReaderClass reader; if(reader.ReadFile(App.c_str()) == MEErrors::ERROR_FILE_MISSING) { WriteConfig(); return; } m_pSystem->m_RenderingContext = OPENGL3X; reader.Rewind(); while(reader.ReadNextLine() == RUNNING) { String sWord = reader.GetFirstWord(); int nLenght = reader.m_sLine.length(); char* zsTemp = new char[nLenght]; if(sWord == "Fullscreen:") { int nValue; sscanf_s(reader.m_sLine.c_str(), "Fullscreen: %d", &nValue); if(nValue == 0) m_pSystem->SetWindowFullscreen(false); else m_pSystem->SetWindowFullscreen(true); } else if(sWord == "Borderless:") { int nValue; sscanf_s(reader.m_sLine.c_str(), "Borderless: %d", &nValue); if(nValue == 0) m_pSystem->SetWindowBorderless(false); else m_pSystem->SetWindowBorderless(true); } else if(sWord == "Resolution:") { int nValue1; int nValue2; sscanf_s(reader.m_sLine.c_str(), "Resolution: [ %d x %d ]", &nValue1, &nValue2); m_pSystem->WindowWidth = nValue1; m_pSystem->WindowHeight = nValue2; } else if(sWord == "Ambient:") { float fValueX; float fValueY; float fValueZ; sscanf_s(reader.m_sLine.c_str(), "Ambient: [%f,%f,%f]", &fValueX, &fValueY, &fValueZ); m_pLightMngr->SetColor(vector3(fValueX, fValueY, fValueZ), 0); } else if(sWord == "AmbientPower:") { float fValue; sscanf_s(reader.m_sLine.c_str(), "AmbientPower: %f", &fValue); m_pLightMngr->SetIntensity(fValue, 0); } else if(sWord == "Data:") { sscanf_s(reader.m_sLine.c_str(), "Data: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderData( zsTemp ); } else if(sWord == "3DS:") { sscanf_s(reader.m_sLine.c_str(), "3DS: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderM3DS( zsTemp ); } else if(sWord == "BTO:") { sscanf_s(reader.m_sLine.c_str(), "BTO: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderMBTO( zsTemp ); } else if(sWord == "FBX:") { sscanf_s(reader.m_sLine.c_str(), "FBX: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderMFBX( zsTemp ); } else if(sWord == "OBJ:") { sscanf_s(reader.m_sLine.c_str(), "OBJ: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderMOBJ( zsTemp ); } else if(sWord == "POM:") { sscanf_s(reader.m_sLine.c_str(), "POM: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderMPOM( zsTemp ); } else if(sWord == "Level:") { sscanf_s(reader.m_sLine.c_str(), "Level: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderLVL( zsTemp ); } else if(sWord == "Textures:") { sscanf_s(reader.m_sLine.c_str(), "Textures: %s", zsTemp, nLenght); m_pSystem->m_pFolder->SetFolderTextures( zsTemp ); } delete[] zsTemp; zsTemp = nullptr; } reader.CloseFile(); #pragma endregion }