summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/chunk.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/chunk.cpp b/src/chunk.cpp
index d8c660bb..6cad7cf7 100644
--- a/src/chunk.cpp
+++ b/src/chunk.cpp
@@ -143,10 +143,13 @@ void chunk::add_object_pre(const std::shared_ptr<object>& e)
const auto dyn = e->is_dynamic(), upd = e->updates_passability();
if (!dyn)
mark_scenery_modified();
- if (!dyn || upd)
- _add_bbox_static_();
- else if (bbox bb; _bbox_for_scenery(*e, bb))
- _add_bbox_dynamic(bb);
+ if (!_pass_modified) [[likely]]
+ {
+ if (!dyn || upd)
+ _add_bbox_static_();
+ else if (bbox bb; _bbox_for_scenery(*e, bb))
+ _add_bbox_dynamic(bb);
+ }
}
void chunk::add_object_unsorted(const std::shared_ptr<object>& e)
@@ -191,10 +194,13 @@ void chunk::remove_object(size_t i)
const auto dyn = e.is_dynamic(), upd = e.updates_passability();
if (!dyn)
mark_scenery_modified();
- if (!dyn || upd)
- _remove_bbox_static_();
- else if (bbox bb; _bbox_for_scenery(e, bb))
- _remove_bbox_dynamic(bb);
+ if (!_pass_modified) [[likely]]
+ {
+ if (!dyn || upd)
+ _remove_bbox_static_();
+ else if (bbox bb; _bbox_for_scenery(e, bb))
+ _remove_bbox_dynamic(bb);
+ }
}
arrayRemove(_objects, i);