void BiomeManager::clear() { EmergeManager *emerge = m_server->getEmergeManager(); // Remove all dangling references in Decorations DecorationManager *decomgr = emerge->decomgr; for (size_t i = 0; i != decomgr->getNumObjects(); i++) { Decoration *deco = (Decoration *)decomgr->getRaw(i); deco->biomes.clear(); } // Don't delete the first biome for (size_t i = 1; i < m_objects.size(); i++) delete (Biome *)m_objects[i]; m_objects.resize(1); }
void SchematicManager::clear() { EmergeManager *emerge = m_gamedef->getEmergeManager(); // Remove all dangling references in Decorations DecorationManager *decomgr = emerge->decomgr; for (size_t i = 0; i != decomgr->getNumObjects(); i++) { Decoration *deco = (Decoration *)decomgr->getRaw(i); try { DecoSchematic *dschem = dynamic_cast<DecoSchematic *>(deco); if (dschem) dschem->schematic = NULL; } catch (std::bad_cast) { } } ObjDefManager::clear(); }