Merge branch 'dragSelection-bugfix' into 'noggit-shadowlands'

Select WMOs during drag selection

See merge request prophecy-rp/noggit-red!19
This commit is contained in:
Kaev
2022-11-15 20:00:48 +00:00
2 changed files with 20 additions and 6 deletions

View File

@@ -3004,7 +3004,8 @@ void World::select_objects_in_area(
for (auto& pair : tile->getObjectInstances())
{
if (pair.second[0]->which() == eMODEL)
auto objectType = pair.second[0]->which();
if (objectType == eMODEL || objectType == eWMO)
{
for (auto& instance : pair.second)
{
@@ -3031,6 +3032,18 @@ void World::select_objects_in_area(
auto modelInstance = _model_instance_storage.get_instance(uid);
if (modelInstance && modelInstance.value().index() == eEntry_Object) {
auto obj = std::get<selected_object_type>(modelInstance.value());
auto which = std::get<selected_object_type>(modelInstance.value())->which();
if (which == eWMO)
{
auto model_instance = static_cast<WMOInstance*>(obj);
if (!is_selected(obj) && !model_instance->wmo->is_hidden())
{
this->add_to_selection(obj);
}
}
else if (which == eMODEL)
{
auto model_instance = static_cast<ModelInstance*>(obj);
if (!is_selected(obj) && !model_instance->model->is_hidden())
@@ -3045,3 +3058,4 @@ void World::select_objects_in_area(
}
}
}
}