Unique ids for entity nodes in the editor to prevent weird behaviour when multiple entities have the same name

This commit is contained in:
2016-02-02 20:50:46 +01:00
parent 9a668ed7d7
commit a8173488ca
+2 -1
View File
@@ -157,7 +157,7 @@ void EditorGUI::drawEntitiesRecursive(World* world, EntityID parent)
auto entityChildren = world->GetEntityChildren(); auto entityChildren = world->GetEntityChildren();
auto range = entityChildren.equal_range(parent); auto range = entityChildren.equal_range(parent);
for (auto it = range.first; it != range.second; it++) { for (auto it = range.first; it != range.second; it++) {
if (EditorGUI::drawEntityNode(EntityWrapper(world, it->second))) { if (drawEntityNode(EntityWrapper(world, it->second))) {
drawEntitiesRecursive(world, it->second); drawEntitiesRecursive(world, it->second);
ImGui::TreePop(); ImGui::TreePop();
} }
@@ -217,6 +217,7 @@ bool EditorGUI::drawEntityNode(EntityWrapper entity)
ImGui::EndPopup(); ImGui::EndPopup();
} }
ImGui::PushID(("EntityNode" + std::to_string(entity.ID)).c_str());
ImGui::SetNextTreeNodeOpened(true, ImGuiSetCond_Once); ImGui::SetNextTreeNodeOpened(true, ImGuiSetCond_Once);
if (ImGui::TreeNode(formatEntityName(entity).c_str())) { if (ImGui::TreeNode(formatEntityName(entity).c_str())) {
// Handle drop events for reparenting // Handle drop events for reparenting