mirror of
https://github.com/Garux/netradiant-custom.git
synced 2026-09-28 00:00:03 +02:00
minor tweaks
This commit is contained in:
+17
-13
@@ -57,9 +57,9 @@ EClassModules& EntityClassManager_getEClassModules();
|
||||
*/
|
||||
|
||||
void CleanEntityList( EntityClasses& entityClasses ){
|
||||
for ( EntityClasses::iterator i = entityClasses.begin(); i != entityClasses.end(); ++i )
|
||||
for ( auto [ name, eclass ] : entityClasses )
|
||||
{
|
||||
( *i ).second->free( ( *i ).second );
|
||||
eclass->free( eclass );
|
||||
}
|
||||
entityClasses.clear();
|
||||
}
|
||||
@@ -70,11 +70,11 @@ void Eclass_Clear(){
|
||||
}
|
||||
|
||||
EntityClass* EClass_InsertSortedList( EntityClasses& entityClasses, EntityClass *entityClass ){
|
||||
std::pair<EntityClasses::iterator, bool> result = entityClasses.insert( EntityClasses::value_type( entityClass->name(), entityClass ) );
|
||||
if ( !result.second ) {
|
||||
auto [ it, inserted ] = entityClasses.insert( EntityClasses::value_type( entityClass->name(), entityClass ) );
|
||||
if ( !inserted ) {
|
||||
entityClass->free( entityClass );
|
||||
}
|
||||
return ( *result.first ).second;
|
||||
return it->second;
|
||||
}
|
||||
|
||||
EntityClass* Eclass_InsertAlphabetized( EntityClass *e ){
|
||||
@@ -82,9 +82,9 @@ EntityClass* Eclass_InsertAlphabetized( EntityClass *e ){
|
||||
}
|
||||
|
||||
void Eclass_forEach( EntityClassVisitor& visitor ){
|
||||
for ( EntityClasses::iterator i = g_entityClasses.begin(); i != g_entityClasses.end(); ++i )
|
||||
for ( auto [ name, eclass ] : g_entityClasses )
|
||||
{
|
||||
visitor.visit( ( *i ).second );
|
||||
visitor.visit( eclass );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,10 +92,10 @@ void Eclass_forEach( EntityClassVisitor& visitor ){
|
||||
class RadiantEclassCollector : public EntityClassCollector
|
||||
{
|
||||
public:
|
||||
void insert( EntityClass* eclass ){
|
||||
void insert( EntityClass* eclass ) override {
|
||||
Eclass_InsertAlphabetized( eclass );
|
||||
}
|
||||
void insert( const char* name, const ListAttributeType& list ){
|
||||
void insert( const char* name, const ListAttributeType& list ) override {
|
||||
g_listTypes.insert( ListAttributeTypes::value_type( name, list ) );
|
||||
}
|
||||
};
|
||||
@@ -157,8 +157,6 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
// for a given name, we grab the first .def in the vfs
|
||||
// this allows to override baseq3/scripts/entities.def for instance
|
||||
const auto relPath = StringStream( m_directory, name );
|
||||
|
||||
scanner.scanFile( g_collector, relPath );
|
||||
@@ -182,6 +180,12 @@ void EntityClassQuake3_constructDirectory( const char* directory, const char* ex
|
||||
}
|
||||
|
||||
|
||||
/* facts:
|
||||
modules are alpha sorted, so .def .ent loading order
|
||||
all base & mod files of the same type are alpha sorted together
|
||||
equal file name in mod is ignored
|
||||
equal eclass name inserted later is ignored
|
||||
*/
|
||||
void EntityClassQuake3_Construct(){
|
||||
const auto baseDirectory = StringStream( GlobalRadiant().getGameToolsPath(), GlobalRadiant().getRequiredGameDescriptionKeyValue( "basegame" ), '/' );
|
||||
const auto gameDirectory = StringStream( GlobalRadiant().getGameToolsPath(), GlobalRadiant().getGameName(), '/' );
|
||||
@@ -201,9 +205,9 @@ void EntityClassQuake3_Construct(){
|
||||
EntityClassQuake3_constructDirectory( gameDirectory, table.getExtension(), paths );
|
||||
}
|
||||
|
||||
for ( Paths::iterator i = paths.begin(); i != paths.end(); ++i )
|
||||
for ( const auto& [ name, path ] : paths )
|
||||
{
|
||||
EntityClassesLoadFile( table, ( *i ).second ) ( ( *i ).first.c_str() );
|
||||
EntityClassesLoadFile( table, path ) ( name.c_str() );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user