diff --git a/libs/uniquenames.h b/libs/uniquenames.h index 8ce72a39..a6997835 100644 --- a/libs/uniquenames.h +++ b/libs/uniquenames.h @@ -29,15 +29,16 @@ #if 1 class Postfix { - unsigned int m_value; + int m_value; // -1 is special value to handle empty postfix public: - Postfix( const char* postfix ) : m_value( atoi( postfix ) ){ + Postfix( const char* postfix ) : m_value( string_empty( postfix )? -1 : atoi( postfix ) ){ } - unsigned int number() const { + int number() const { return m_value; } void write( char* buffer ) const { - sprintf( buffer, "%u", m_value ); + if( m_value != -1 ) + sprintf( buffer, "%i", m_value ); } Postfix& operator++(){ ++m_value; diff --git a/plugins/entity/namekeys.h b/plugins/entity/namekeys.h index 35a7c378..fdd4edce 100644 --- a/plugins/entity/namekeys.h +++ b/plugins/entity/namekeys.h @@ -71,15 +71,15 @@ class NameKeys : public Entity::Observer, public Namespaced } } void insertAll(){ - for ( KeyValues::iterator i = m_keyValues.begin(); i != m_keyValues.end(); ++i ) + for ( auto& [key, value] : m_keyValues ) { - insertName( ( *i ).first.c_str(), *( *i ).second ); + insertName( key.c_str(), *value ); } } void eraseAll(){ - for ( KeyValues::iterator i = m_keyValues.begin(); i != m_keyValues.end(); ++i ) + for ( auto& [key, value] : m_keyValues ) { - eraseName( ( *i ).first.c_str(), *( *i ).second ); + eraseName( key.c_str(), *value ); } } public: diff --git a/radiant/map.cpp b/radiant/map.cpp index e241825a..51f8f5de 100644 --- a/radiant/map.cpp +++ b/radiant/map.cpp @@ -158,26 +158,24 @@ public: UniqueNames uniqueNames( other.m_uniqueNames ); - for ( Names::const_iterator i = m_names.begin(); i != m_names.end(); ++i ) + for ( const auto& [callback, observer] : m_names ) { - groups[( *i ).second.c_str()].push_back( ( *i ).first ); + groups[observer.c_str()].push_back( callback ); } - for ( NameGroups::iterator i = groups.begin(); i != groups.end(); ++i ) + for ( const auto& [name, setNameCallbacks] : groups ) { - name_t uniqueName( uniqueNames.make_unique( name_read( ( *i ).first.c_str() ) ) ); + name_t uniqueName( uniqueNames.make_unique( name_read( name.c_str() ) ) ); uniqueNames.insert( uniqueName ); char buffer[1024]; name_write( buffer, uniqueName ); - //globalOutputStream() << "renaming " << makeQuoted((*i).first.c_str()) << " to " << makeQuoted(buffer) << "\n"; + //globalOutputStream() << "renaming " << makeQuoted(name.c_str()) << " to " << makeQuoted(buffer) << "\n"; - SetNameCallbacks& setNameCallbacks = ( *i ).second; - - for ( SetNameCallbacks::const_iterator j = setNameCallbacks.begin(); j != setNameCallbacks.end(); ++j ) + for ( const NameCallback& nameCallback : setNameCallbacks ) { - ( *j )( buffer ); + nameCallback( buffer ); } } } @@ -206,7 +204,7 @@ typedef Static StaticNamespaceModule; StaticRegisterModule staticRegisterDefaultNamespace( StaticNamespaceModule::instance() ); -std::list g_cloned; +std::vector g_cloned; inline Namespaced* Node_getNamespaced( scene::Node& node ){ return NodeTypeCast::cast( node ); @@ -234,15 +232,15 @@ void Map_gatherNamespaced( scene::Node& root ){ void Map_mergeClonedNames( bool makeUnique /*= true*/ ){ if( makeUnique ){ - for ( std::list::const_iterator i = g_cloned.begin(); i != g_cloned.end(); ++i ) + for ( Namespaced *namespaced : g_cloned ) { - ( *i )->setNamespace( g_cloneNamespace ); + namespaced->setNamespace( g_cloneNamespace ); } g_cloneNamespace.mergeNames( g_defaultNamespace ); } - for ( std::list::const_iterator i = g_cloned.begin(); i != g_cloned.end(); ++i ) + for ( Namespaced *namespaced : g_cloned ) { - ( *i )->setNamespace( g_defaultNamespace ); + namespaced->setNamespace( g_defaultNamespace ); } g_cloned.clear();