diff options
Diffstat (limited to 'src/Generating')
-rw-r--r-- | src/Generating/ChunkDesc.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Generating/ChunkDesc.cpp b/src/Generating/ChunkDesc.cpp index 060901bba..340e3f805 100644 --- a/src/Generating/ChunkDesc.cpp +++ b/src/Generating/ChunkDesc.cpp @@ -578,7 +578,7 @@ cBlockEntity * cChunkDesc::GetBlockEntity(int a_RelX, int a_RelY, int a_RelZ) if (itr != m_BlockEntities.end()) { // Already in the list: - cBlockEntity * BlockEntity = itr->second; + cBlockEntity * BlockEntity = itr->second.get(); if (BlockEntity->GetBlockType() == GetBlockType(a_RelX, a_RelY, a_RelZ)) { // Correct type, already present. Return it: @@ -595,14 +595,14 @@ cBlockEntity * cChunkDesc::GetBlockEntity(int a_RelX, int a_RelY, int a_RelZ) int AbsZ = a_RelZ + m_Coords.m_ChunkZ * cChunkDef::Width; // The block entity is not created yet, try to create it and add to list: - cBlockEntity * be = cBlockEntity::CreateByBlockType(GetBlockType(a_RelX, a_RelY, a_RelZ), GetBlockMeta(a_RelX, a_RelY, a_RelZ), {AbsX, a_RelY, AbsZ}); + auto be = cBlockEntity::CreateByBlockType(GetBlockType(a_RelX, a_RelY, a_RelZ), GetBlockMeta(a_RelX, a_RelY, a_RelZ), {AbsX, a_RelY, AbsZ}); if (be == nullptr) { // No block entity for this block type return nullptr; } - m_BlockEntities.insert({ Idx, be }); - return be; + auto res = m_BlockEntities.emplace(Idx, std::move(be)); + return res.first->second.get(); } |