aboutsummaryrefslogtreecommitdiff
path: root/src/server/unit_sao.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/unit_sao.cpp')
-rw-r--r--src/server/unit_sao.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/unit_sao.cpp b/src/server/unit_sao.cpp
index 9a49b0f43..d61ea41ff 100644
--- a/src/server/unit_sao.cpp
+++ b/src/server/unit_sao.cpp
@@ -179,12 +179,13 @@ void UnitSAO::getAttachment(int *parent_id, std::string *bone, v3f *position,
void UnitSAO::clearChildAttachments()
{
- for (int child_id : m_attachment_child_ids) {
+ while (!m_attachment_child_ids.empty()) {
+ int child_id = *m_attachment_child_ids.begin();
// Child can be NULL if it was deleted earlier
if (ServerActiveObject *child = m_env->getActiveObject(child_id))
child->setAttachment(0, "", v3f(0, 0, 0), v3f(0, 0, 0), false);
+ removeAttachmentChild(child_id);
}
- m_attachment_child_ids.clear();
}
void UnitSAO::clearParentAttachment()