@ -421,7 +422,7 @@ int load(const Arguments& info, ESMData* data)
printRawTes3(info.filename);
printRawTes3(info.filename);
break;
break;
caseESM::Format::Tes4:
caseESM::Format::Tes4:
std::cout<<"Printing raw TES4 file is not supported: "<< info.filename<<"\n";//TODO(Project579): This will probably break in windows with unicode paths
std::cout<<"Printing raw TES4 file is not supported: "<<Files::pathToUnicodeString(info.filename)<<"\n";
break;
break;
}
}
return0;
return0;
@ -492,7 +493,7 @@ int clone(const Arguments& info)
if(i%3!=0)
if(i%3!=0)
std::cout<<'\n';
std::cout<<'\n';
std::cout<<"\nSaving records to: "<< info.outname<<"...\n";//TODO(Project579): This will probably break in windows with unicode paths
std::cout<<"\nSaving records to: "<<Files::pathToUnicodeString(info.outname)<<"...\n";
@ -565,14 +566,14 @@ int comp(const Arguments& info)
ESMDatadataOne;
ESMDatadataOne;
if(load(fileOne,&dataOne)!=0)
if(load(fileOne,&dataOne)!=0)
{
{
std::cout<<"Failed to load "<< info.filename<<", aborting comparison."<<std::endl;//TODO(Project579): This will probably break in windows with unicode paths
std::cout<<"Failed to load "<<Files::pathToUnicodeString(info.filename)<<", aborting comparison."<<std::endl;
return1;
return1;
}
}
ESMDatadataTwo;
ESMDatadataTwo;
if(load(fileTwo,&dataTwo)!=0)
if(load(fileTwo,&dataTwo)!=0)
{
{
std::cout<<"Failed to load "<< info.outname<<", aborting comparison."<<std::endl;//TODO(Project579): This will probably break in windows with unicode paths
std::cout<<"Failed to load "<<Files::pathToUnicodeString(info.outname)<<", aborting comparison."<<std::endl;
constautoglobalDataDir=QString(mGameSettings.getGlobalDataDir().string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
// Dialog wizard and setup will fail if the config directory does not already exist
// Dialog wizard and setup will fail if the config directory does not already exist
QDiruserConfigDir=QDir(QString::fromStdString(mCfgMgr.getUserConfigPath().string()));//TODO(Project579): This will probably break in windows with unicode paths, in Qt 6 it's possible to convert directly from std::filesystem::path to QDir and that would solve the issue
QStringuserPath=QString::fromUtf8(mCfgMgr.getUserConfigPath().string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
QStringuserPath=QString::fromUtf8(mCfgMgr.getUserConfigPath().string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
QStringglobalPath=QString::fromUtf8(mCfgMgr.getGlobalPath().string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
QStringuserPath=QString::fromUtf8(mCfgMgr.getUserConfigPath().string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
// Create the file if it doesn't already exist, else the importer will fail
// Create the file if it doesn't already exist, else the importer will fail
QStringpath(QString::fromUtf8(mCfgMgr.getUserConfigPath().string().c_str()));//TODO(Project579): This will probably break in windows with unicode paths
unsortedFiles.emplace_back(reader.getName().filename().string(),dependencies);//TODO(Project579): This will probably break in windows with unicode paths
std::stringextension=filename.extension().string();//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
@ -142,7 +143,7 @@ int main(int argc, char **argv)
}
}
else
else
{
{
std::cerr<<"ERROR: \""<< path <<"\" is not a nif file, bsa file, or directory!"<<std::endl;//TODO(Project579): This will probably break in windows with unicode paths
std::cerr<<"ERROR: \""<<Files::pathToUnicodeString(path)<<"\" is not a nif file, bsa file, or directory!"<<std::endl;
QStringextension=QString::fromStdString(mFileToLoad.extension().string()).toLower();//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
throwstd::runtime_error("Can not create project file: "+mProjectPath.string());//TODO(Project579): This will probably break in windows with unicode paths
throwstd::runtime_error("Can not create project file: "+Files::pathToUnicodeString(mProjectPath));
contentFiles.push_back(iter->filename().string());//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
emitnextStage(document, path.filename().string(),steps);//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
QString::fromUtf8 (("--data=\""+mProjectPath.parent_path().string()+"\"").c_str());//TODO(Project579): This will probably break in windows with unicode paths
<<QString::fromUtf8 (("--content="+mProjectPath.filename().string()).c_str());//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
std::stringname=iter->filename().string();//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
std::filesystem::pathpath(name.toUtf8().data());//TODO(Project579): Replace with char8_t in C++20
std::filesystem::pathpath(name.toStdWString());
std::stringextension=Misc::StringUtils::lowerCase(path.extension().string());//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
setWindowTitle(QString::fromUtf8((std::string("Opening ")+document->getSavePath().filename().string()).c_str()));//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
stream<< mDocument->getSavePath().filename().string();//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
messageBox.setWindowTitle(QString::fromUtf8(document->getSavePath().filename().string().c_str()));//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
mFiles->addItem(QString::fromUtf8 (iter->filename().string().c_str()));//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
Log(Debug::Error)<<"Error: Failed to read "<<windowIcon<<": "<<result.message()<<" code "<<result.status();//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Error)<<"Error: Failed to read "<<windowIcon<<": "<<result.message()<<" code "<<result.status();
it->begin()->mPath.parent_path().filename().string())))//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
SDL_GameControllerAddMappingsFromFile(controllerBindingsFile.string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
SDL_GameControllerAddMappingsFromFile(userControllerBindingsFile.string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
std::stringfileExt=Misc::StringUtils::lowerCase(path.extension().string());//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
constautoabsolutePath=mVFS->getAbsoluteFileName(name);//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
Log(Debug::Info)<<"Reloaded technique : "<<mTechniqueFileMap[technique->getName()].string();//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Error)<<"Error: Failed to read "<<file<<", no png readerwriter found";//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Error)<<"Error: Failed to read "<<file<<", no png readerwriter found";
Log(Debug::Error)<<"Error: Failed to read "<<file<<": "<<result.message()<<" code "<<result.status();//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Error)<<"Error: Failed to read "<<file<<": "<<result.message()<<" code "<<result.status();
slot->mPath.parent_path().filename().string());//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
character->getPath().filename().string());//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
throwstd::runtime_error("File "+ reader->getName().string() +" asks for parent file "//TODO(Project579): This will probably break in windows with unicode paths
throwstd::runtime_error("File "+Files::pathToUnicodeString(reader->getName()) +" asks for parent file "
+reader->getGameFiles()[i].name
+reader->getGameFiles()[i].name
+", but it is not available or has been loaded in the wrong order. "
+", but it is not available or has been loaded in the wrong order. "
if(!mMasterFileFormat.has_value()&&(Misc::StringUtils::ciEndsWith(reader->getName().string(),".esm")//TODO(Project579): This will probably break in windows with unicode paths
constautoit=mLoaders.find(Misc::StringUtils::lowerCase(filepath.extension().string()));//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
conststd::stringfilename=filepath.filename().string();//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
constFiles::MultiDirCollection&col=fileCollections.getCollection(filename.extension().string());//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
std::cout<<"dialogue_merging_test successful, results printed to "<< file <<std::endl;//TODO(Project579): This will probably break in windows with unicode paths
std::cout<<"dialogue_merging_test successful, results printed to "<<Files::pathToUnicodeString(file)<<std::endl;
}
}
// Note: here we don't test records that don't use string names (e.g. Land, Pathgrid, Cell)
// Note: here we don't test records that don't use string names (e.g. Land, Pathgrid, Cell)
std::cout<<"diagnostics_test successful, results printed to "<< file <<std::endl;//TODO(Project579): This will probably break in windows with unicode paths
std::cout<<"diagnostics_test successful, results printed to "<<Files::pathToUnicodeString(file)<<std::endl;
EXPECT_TRUE(mManager.getShader(templateName.string(),{},osg::Shader::VERTEX));//TODO(Project579): This will probably break in windows with unicode paths
constautoshader=mManager.getShader(templateName.string(),mDefines,osg::Shader::VERTEX);//TODO(Project579): This will probably break in windows with unicode paths
constautoshader=mManager.getShader(templateName2.string(),mDefines,osg::Shader::VERTEX);//TODO(Project579): This will probably break in windows with unicode paths
constautoshader=mManager.getShader(templateName.string(),mDefines,osg::Shader::VERTEX);//TODO(Project579): This will probably break in windows with unicode paths
constautoshader=mManager.getShader(templateName.string(),mDefines,osg::Shader::VERTEX);//TODO(Project579): This will probably break in windows with unicode paths
constautoshader=mManager.getShader(templateName.string(),mDefines,osg::Shader::VERTEX);//TODO(Project579): This will probably break in windows with unicode paths
EXPECT_FALSE(mManager.getShader(templateName.string(),mDefines,osg::Shader::VERTEX));//TODO(Project579): This will probably break in windows with unicode paths
EXPECT_FALSE(mManager.getShader(templateName.string(),mDefines,osg::Shader::VERTEX));//TODO(Project579): This will probably break in windows with unicode paths
// global and local data directories are not part of any profile
// global and local data directories are not part of any profile
constautoglobalDataDir=QString(gameSettings.getGlobalDataDir().string().c_str());//TODO(Project579): This will probably break in windows with unicode paths
strncpy_s(mShm->mStartup.mLogFilePath,sizeofmShm->mStartup.mLogFilePath,Misc::StringUtils::char8_to_char(str.c_str()),length);//TODO(Project579): This will probably break in windows with unicode paths
db=std::make_unique<NavMeshDb>((userDataPath/"navmesh.db").string(), settings.mMaxDbFileSize);//TODO(Project579): This will probably break in windows with unicode paths
std::stringfnamecandidate=reader->getName().filename().string();//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
Log(Debug::Warning)<<"Warning: Encountered invalid water level in cell "<<mName<<" defined in "<<esm.getContext().filename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Warning: Encountered invalid water level in cell "<<mName<<" defined in "<<esm.getContext().filename;
conststd::stringextension=Misc::StringUtils::lowerCase(std::filesystem::path(file).extension().string());//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
std::filesystem::pathgetPath(conststd::string&file)const;//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
///< Return full path (including filename) of \a file.
///< Return full path (including filename) of \a file.
///
///
/// If the file does not exist in any of the collection's
/// If the file does not exist in any of the collection's
/// directories, an exception is thrown. \a file must include the
/// directories, an exception is thrown. \a file must include the
/// extension.
/// extension.
booldoesExist(conststd::string&file)const;//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
booldoesExist(conststd::string&file)const;
///< \return Does a file with the given name exist?
///< \return Does a file with the given name exist?
throwstd::runtime_error("Error while reading \""+fileName.string()+"\" to get hash: "+std::string(e.what()));//TODO(Project579): This will probably break in windows with unicode paths
throwstd::runtime_error("Error while reading \""+Files::pathToUnicodeString(fileName)+"\" to get hash: "+ e.what());
if(!equal(extension,path.extension().string()))//TODO(Project579): let's hope unicode characters are never used in these extensions on windows or this will break
std::stringfilename=path.filename().string();//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
throwstd::runtime_error("Failed to open '"+path.string()+"' for reading: "+std::strerror(errno));//TODO(Project579): This will probably break in windows with unicode paths
throwstd::runtime_error("Failed to open '"+Files::pathToUnicodeString(path)+"' for reading: "+std::strerror(errno));
,mFileName((std::filesystem::path(Technique::sSubdir)/(mName+Technique::sExt)).string())//TODO(Project579): let's hope unicode characters are never used in these filenames on windows or this will break
assert(mData.empty());// Shouldn't be used before loading
assert(mData.empty());// Shouldn't be used before loading
try
try
{
{
Log(Debug::Info)<<"Loading Lua storage \""<<path<<"\" ("<<std::filesystem::file_size(path)<<" bytes)";//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Saving Lua storage \""<<path<<"\" ("<<serializedData.size()<<" bytes)";//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Verbose)<<"NIF Debug: Reading record of type "<<rec<<", index "<<i<<" ("<<filename<<")";//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Verbose)<<"NIF Debug: Reading record of type "<<rec<<", index "<<i<<" ("<<filename<<")";
Log(Debug::Verbose)<<"Controller "<<strdata->string<<" present more than once in "<<nif->getFilename()<<", ignoring later version";//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Verbose)<<"Controller "<<strdata->string<<" present more than once in "<<nif->getFilename()<<", ignoring later version";
}
}
}
}
@ -485,20 +485,20 @@ namespace NifOsg
{
{
if(nifNode->recType!=Nif::RC_NiTextureEffect)
if(nifNode->recType!=Nif::RC_NiTextureEffect)
{
{
Log(Debug::Info)<<"Unhandled effect "<<nifNode->recName<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled effect "<<nifNode->recName<<" in "<<mFilename;
Log(Debug::Info)<<"Unhandled NiTextureEffect type "<<textureEffect->textureType<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled NiTextureEffect type "<<textureEffect->textureType<<" in "<<mFilename;
return;
return;
}
}
if(textureEffect->texture.empty())
if(textureEffect->texture.empty())
{
{
Log(Debug::Info)<<"NiTextureEffect missing source texture in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"NiTextureEffect missing source texture in "<<mFilename;
return;
return;
}
}
@ -515,7 +515,7 @@ namespace NifOsg
texGen->setMode(osg::TexGen::SPHERE_MAP);
texGen->setMode(osg::TexGen::SPHERE_MAP);
break;
break;
default:
default:
Log(Debug::Info)<<"Unhandled NiTextureEffect coordGenType "<<textureEffect->coordGenType<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled NiTextureEffect coordGenType "<<textureEffect->coordGenType<<" in "<<mFilename;
return;
return;
}
}
@ -875,7 +875,7 @@ namespace NifOsg
// These controllers are handled elsewhere
// These controllers are handled elsewhere
}
}
else
else
Log(Debug::Info)<<"Unhandled controller "<<ctrl->recName<<" on node "<<nifNode->recIndex<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled controller "<<ctrl->recName<<" on node "<<nifNode->recIndex<<" in "<<mFilename;
}
}
}
}
@ -915,7 +915,7 @@ namespace NifOsg
composite->addController(osgctrl);
composite->addController(osgctrl);
}
}
else
else
Log(Debug::Info)<<"Unexpected material controller "<<ctrl->recType<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unexpected material controller "<<ctrl->recType<<" in "<<mFilename;
}
}
}
}
@ -959,7 +959,7 @@ namespace NifOsg
composite->addController(callback);
composite->addController(callback);
}
}
else
else
Log(Debug::Info)<<"Unexpected texture controller "<<ctrl->recName<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unexpected texture controller "<<ctrl->recName<<" in "<<mFilename;
}
}
}
}
@ -994,7 +994,7 @@ namespace NifOsg
// unused
// unused
}
}
else
else
Log(Debug::Info)<<"Unhandled particle modifier "<<affectors->recName<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled particle modifier "<<affectors->recName<<" in "<<mFilename;
Log(Debug::Info)<<"Unhandled particle collider "<<colliders->recName<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled particle collider "<<colliders->recName<<" in "<<mFilename;
}
}
}
}
@ -1152,7 +1152,7 @@ namespace NifOsg
}
}
if(!partctrl)
if(!partctrl)
{
{
Log(Debug::Info)<<"No particle controller found in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"No particle controller found in "<<mFilename;
return;
return;
}
}
@ -1247,7 +1247,7 @@ namespace NifOsg
unsignedintuvSet=*it;
unsignedintuvSet=*it;
if(uvSet>=uvlist.size())
if(uvSet>=uvlist.size())
{
{
Log(Debug::Verbose)<<"Out of bounds UV set "<<uvSet<<" on shape \""<<name<<"\" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Verbose)<<"Out of bounds UV set "<<uvSet<<" on shape \""<<name<<"\" in "<<mFilename;
if(uvlist.empty())
if(uvlist.empty())
continue;
continue;
uvSet=0;
uvSet=0;
@ -1419,7 +1419,7 @@ namespace NifOsg
case9:returnosg::BlendFunc::ONE_MINUS_DST_ALPHA;
case9:returnosg::BlendFunc::ONE_MINUS_DST_ALPHA;
case10:returnosg::BlendFunc::SRC_ALPHA_SATURATE;
case10:returnosg::BlendFunc::SRC_ALPHA_SATURATE;
default:
default:
Log(Debug::Info)<<"Unexpected blend mode: "<<mode<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unexpected blend mode: "<<mode<<" in "<<mFilename;
returnosg::BlendFunc::SRC_ALPHA;
returnosg::BlendFunc::SRC_ALPHA;
}
}
}
}
@ -1437,7 +1437,7 @@ namespace NifOsg
case6:returnosg::AlphaFunc::GEQUAL;
case6:returnosg::AlphaFunc::GEQUAL;
case7:returnosg::AlphaFunc::NEVER;
case7:returnosg::AlphaFunc::NEVER;
default:
default:
Log(Debug::Info)<<"Unexpected blend mode: "<<mode<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unexpected blend mode: "<<mode<<" in "<<mFilename;
returnosg::AlphaFunc::LEQUAL;
returnosg::AlphaFunc::LEQUAL;
}
}
}
}
@ -1455,7 +1455,7 @@ namespace NifOsg
case6:returnosg::Stencil::GEQUAL;
case6:returnosg::Stencil::GEQUAL;
case7:returnosg::Stencil::ALWAYS;
case7:returnosg::Stencil::ALWAYS;
default:
default:
Log(Debug::Info)<<"Unexpected stencil function: "<<func<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unexpected stencil function: "<<func<<" in "<<mFilename;
returnosg::Stencil::NEVER;
returnosg::Stencil::NEVER;
}
}
}
}
@ -1471,7 +1471,7 @@ namespace NifOsg
case4:returnosg::Stencil::DECR;
case4:returnosg::Stencil::DECR;
case5:returnosg::Stencil::INVERT;
case5:returnosg::Stencil::INVERT;
default:
default:
Log(Debug::Info)<<"Unexpected stencil operation: "<<op<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unexpected stencil operation: "<<op<<" in "<<mFilename;
returnosg::Stencil::KEEP;
returnosg::Stencil::KEEP;
}
}
}
}
@ -1514,7 +1514,7 @@ namespace NifOsg
packing=4;
packing=4;
break;
break;
default:
default:
Log(Debug::Info)<<"Unhandled internal pixel format "<<pixelData->fmt<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled internal pixel format "<<pixelData->fmt<<" in "<<mFilename;
returnnullptr;
returnnullptr;
}
}
@ -1572,7 +1572,7 @@ namespace NifOsg
{
{
if(pixelData->palette.empty()||pixelData->bpp!=8)
if(pixelData->palette.empty()||pixelData->bpp!=8)
{
{
Log(Debug::Info)<<"Palettized texture in "<<mFilename<<" is invalid, ignoring";//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Palettized texture in "<<mFilename<<" is invalid, ignoring";
Log(Debug::Info)<<"Unhandled texture stage "<<i<<" on shape \""<<nodeName<<"\" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled texture stage "<<i<<" on shape \""<<nodeName<<"\" in "<<mFilename;
Log(Debug::Warning)<<"Base texture is in use but empty on shape \""<<nodeName<<"\" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Base texture is in use but empty on shape \""<<nodeName<<"\" in "<<mFilename;
continue;
continue;
}
}
@ -1815,7 +1815,7 @@ namespace NifOsg
break;
break;
default:
default:
{
{
Log(Debug::Info)<<"Unhandled texture stage "<<i<<" on shape \""<<nodeName<<"\" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled texture stage "<<i<<" on shape \""<<nodeName<<"\" in "<<mFilename;
continue;
continue;
}
}
}
}
@ -1859,10 +1859,10 @@ namespace NifOsg
caseNif::BSShaderType::ShaderType_Water:
caseNif::BSShaderType::ShaderType_Water:
caseNif::BSShaderType::ShaderType_Lighting30:
caseNif::BSShaderType::ShaderType_Lighting30:
caseNif::BSShaderType::ShaderType_Tile:
caseNif::BSShaderType::ShaderType_Tile:
Log(Debug::Warning)<<"Unhandled BSShaderType "<<type<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Unhandled BSShaderType "<<type<<" in "<<mFilename;
returnstd::string_view();
returnstd::string_view();
}
}
Log(Debug::Warning)<<"Unknown BSShaderType "<<type<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Unknown BSShaderType "<<type<<" in "<<mFilename;
Log(Debug::Warning)<<"Unhandled BSLightingShaderType "<<type<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Unhandled BSLightingShaderType "<<type<<" in "<<mFilename;
returnstd::string_view();
returnstd::string_view();
}
}
Log(Debug::Warning)<<"Unknown BSLightingShaderType "<<type<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Unknown BSLightingShaderType "<<type<<" in "<<mFilename;
returnstd::string_view();
returnstd::string_view();
}
}
@ -2057,7 +2057,7 @@ namespace NifOsg
break;
break;
}
}
default:
default:
Log(Debug::Info)<<"Unhandled "<<property->recName<<" in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Info)<<"Unhandled "<<property->recName<<" in "<<mFilename;
break;
break;
}
}
}
}
@ -2304,7 +2304,7 @@ namespace NifOsg
elseif(type==Nif::RC_NiClusterAccumulator)
elseif(type==Nif::RC_NiClusterAccumulator)
setBin_BackToFront(stateset);
setBin_BackToFront(stateset);
else
else
Log(Debug::Error)<<"Unrecognized NiAccumulator in "<<mFilename;//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Error)<<"Unrecognized NiAccumulator in "<<mFilename;
returnosgDB::ReaderWriter::ReadResult(mImageManager->getImage(filePath.string()),//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Error)<<"Shader "<<fileName<<" error: Failed to open include "<<includePath.string();//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Error)<<"Shader "<<fileName<<" error: Failed to open include "<<includePath;
returnfalse;
returnfalse;
}
}
intincludedFileNumber=fileNumber++;
intincludedFileNumber=fileNumber++;
@ -472,7 +472,7 @@ namespace Shader
stream.open(path);
stream.open(path);
if(stream.fail())
if(stream.fail())
{
{
Log(Debug::Error)<<"Failed to open "<<path.string();//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Warning: found duplicate file for '"<<proper<<"', please check your file system for two files with the same name in different cases.";//TODO(Project579): This will probably break in windows with unicode paths
Log(Debug::Warning)<<"Warning: found duplicate file for '"<<proper<<"', please check your file system for two files with the same name in different cases.";
archive->listResources(mIndex,mStrict?&strict_normalize_char:&nonstrict_normalize_char);//TODO(Project579): This will probably break in windows with unicode paths