void OgreExporter_c::ExportLevelMaterials(const WadLevel_c &level, const WadFile_c &file) { this->ExportWalls(level, file); fs::path materialPath(strMaterialScriptsDirectory); materialPath /= fs::path(file.GetFileName()).filename(); std::string finalFileName = materialPath.string(); finalFileName += ".material"; std::ofstream materialFile(finalFileName.c_str()); BOOST_FOREACH(Name_u name, setExportedTextures) { materialFile << "material " << name.ToString() << "\n"; materialFile << "{\n"; materialFile << "\ttechnique\n"; materialFile << "\t{\n"; materialFile << "\t\tpass\n"; materialFile << "\t\t{\n"; materialFile << "\t\t\ttexture_unit\n"; materialFile << "\t\t\t{\n"; materialFile << "\t\t\t\ttexture " << name.ToString() << ".bmp\n"; materialFile << "\t\t\t}\n"; materialFile << "\t\t}\n"; materialFile << "\t}\n"; materialFile << "}\n"; }
void MaterialManager::addMaterialsFrom(std::string materialFileName) { std::ifstream materialFile(materialFileName); ErrorLog * elInst = ErrorLog::getInstance(); if (!materialFile.good()) { elInst->logFatalError("Couldn't open: " + materialFileName); } // TextureManager * tmInstance = TextureManager::getInstance(); // No Textures! std::string currentBit = ""; NamedMaterial * tmpM = nullptr; while (!materialFile.eof()) { materialFile >> currentBit; if (currentBit == "newmtl") { if (tmpM != nullptr) { m_materials.push_back(tmpM); } tmpM = new NamedMaterial(); materialFile >> tmpM->Name; if (!isNameAvailable(tmpM->Name)) { // message box about the name conflict elInst->logMinorError("Material name conflict, " + tmpM->Name + " already defined in the material manager (this is to be expected if the models use the same material, the first difinition encountered will be used)"); std::string skipedData = ""; while (skipedData != "newmtl") { materialFile >> skipedData; // could resch the end of the file if (materialFile.eof()) { delete tmpM; tmpM = nullptr; break; break; } } delete tmpM; tmpM = nullptr; tmpM = new NamedMaterial(); materialFile >> tmpM->Name; } } else if (currentBit == "Ka")
void nodachi2D::loadLevel() { std::string visualAppearancesFile ( "data/visualAppearances.data" ); std::string materialFile ( "data/materials.data" ); std::string objectFile ( "data/spacialObjects.data" ); this->globalGameObjectManager_->loadVisualAppearances( visualAppearancesFile ); this->globalGameObjectManager_->loadMaterials( materialFile ); this->globalGameObjectManager_->loadObjects( objectFile ); }
void kajiya2D::loadLevelData( std::string worldname, std::string levelname ) { std::string visualAppearancesFile ( "data/visualAppearances.data" ); std::string materialFile ( "data/materials.data" ); std::string objectFile ( "data/spacialObjects.data" ); this->globalGameObjectManager_ = new objects::GameObjectManager(); this->globalGameObjectManager_->loadVisualAppearances( visualAppearancesFile ); this->globalGameObjectManager_->loadMaterials( materialFile ); this->globalGameObjectManager_->loadObjects( objectFile ); }