diff --git a/include/Engine/Core/EntityFileParser.h b/include/Engine/Core/EntityFileParser.h index d46b508b..e2730dc5 100644 --- a/include/Engine/Core/EntityFileParser.h +++ b/include/Engine/Core/EntityFileParser.h @@ -9,7 +9,7 @@ class EntityFileParser public: EntityFileParser(const EntityFile* entityFile); - void MergeEntities(World* world); + void MergeEntities(World* world, EntityID parent = EntityID_Invalid); private: const EntityFile* m_EntityFile; diff --git a/include/Engine/Editor/EditorSystem.h b/include/Engine/Editor/EditorSystem.h index 6b9b7a21..e09e4408 100644 --- a/include/Engine/Editor/EditorSystem.h +++ b/include/Engine/Editor/EditorSystem.h @@ -31,6 +31,7 @@ private: bool m_Visible; boost::filesystem::path m_DefaultEntityDir; boost::filesystem::path m_CurrentFile; + std::map m_CurrentFiles; std::vector m_PickingQueue; enum class WidgetMode diff --git a/src/Engine/Core/EntityFileParser.cpp b/src/Engine/Core/EntityFileParser.cpp index 0240fb73..04c8f735 100644 --- a/src/Engine/Core/EntityFileParser.cpp +++ b/src/Engine/Core/EntityFileParser.cpp @@ -9,10 +9,10 @@ EntityFileParser::EntityFileParser(const EntityFile* entityFile) m_Handler.SetStartFieldDataCallback(std::bind(&EntityFileParser::onFieldData, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)); } -void EntityFileParser::MergeEntities(World* world) +void EntityFileParser::MergeEntities(World* world, EntityID parent /*= EntityID_Invalid*/) { m_World = world; - m_EntityIDMapper[EntityID_Invalid] = EntityID_Invalid; + m_EntityIDMapper[EntityID_Invalid] = parent; m_EntityFile->Parse(&m_Handler); }