diff --git a/eu07.ico b/eu07.ico index 8103741a..af04013c 100644 Binary files a/eu07.ico and b/eu07.ico differ diff --git a/material.cpp b/material.cpp index a2cd1fd3..50052bb5 100644 --- a/material.cpp +++ b/material.cpp @@ -483,7 +483,7 @@ material_manager::create( std::string const &Filename, bool const Loadnow ) { erase_leading_slashes( filename ); } - auto const databanklookup { find_in_databank( ToLower( filename ) ) }; + auto const databanklookup { find_in_databank( filename ) }; if( databanklookup != null_handle ) { return databanklookup; } @@ -528,7 +528,7 @@ material_manager::create( std::string const &Filename, bool const Loadnow ) { */ // HACK: create parse info for material finalize() method cParser materialparser( - "texture1: " + Filename, + "texture1: \"" + Filename + "\"", cParser::buffer_TEXT ); material.deserialize( materialparser, Loadnow ); } diff --git a/parser.cpp b/parser.cpp index 1ba87a48..bc7ec1f5 100644 --- a/parser.cpp +++ b/parser.cpp @@ -288,7 +288,7 @@ void cParser::skipComment( std::string const &Endmark ) { // pobieranie znaków ++mLine; } input += c; - if( input.find( Endmark ) != std::string::npos ) // szukanie znacznika końca + if( input == Endmark ) // szukanie znacznika końca break; if( input.size() >= endmarksize ) { // keep the read text short, to avoid pointless string re-allocations on longer comments @@ -300,9 +300,9 @@ void cParser::skipComment( std::string const &Endmark ) { // pobieranie znaków bool cParser::findQuotes( std::string &String ) { - if( String.rfind( '\"' ) != std::string::npos ) { + if( String.back() == '\"' ) { - String.erase( String.rfind( '\"' ), 1 ); + String.pop_back(); String += readQuotes(); return true; } @@ -311,12 +311,14 @@ bool cParser::findQuotes( std::string &String ) { bool cParser::trimComments(std::string &String) { - for (commentmap::iterator cmIt = mComments.begin(); cmIt != mComments.end(); ++cmIt) + for (auto const &comment : mComments) { - if (String.rfind((*cmIt).first) != std::string::npos) + if( String.size() < comment.first.size() ) { continue; } + + if (String.compare( String.size() - comment.first.size(), comment.first.size(), comment.first ) == 0) { - skipComment((*cmIt).second); - String.resize(String.rfind((*cmIt).first)); + skipComment(comment.second); + String.resize(String.rfind(comment.first)); return true; } }