Merge branch 'destinationunknown' into 'master'
Some checks failed
Build and test / Ubuntu (push) Has been cancelled
Build and test / MacOS (push) Has been cancelled
Build and test / Read .env file and expose it as output (push) Has been cancelled
Build and test / Windows (2022) (push) Has been cancelled
Build and test / Windows (2019) (push) Has been cancelled

Don't add non-existent cell travel destinations (#8349)

Closes #8349

See merge request OpenMW/openmw!4540
This commit is contained in:
Alexei Kotov 2025-04-26 21:00:13 +03:00
commit 5b1026c382

View file

@ -4,6 +4,7 @@
#include <MyGUI_Gui.h>
#include <MyGUI_ScrollView.h>
#include <components/debug/debuglog.hpp>
#include <components/esm3/loadcrea.hpp>
#include <components/esm3/loadgmst.hpp>
#include <components/misc/strings/conversion.hpp>
@ -131,12 +132,18 @@ namespace MWGui
bool interior = true;
const ESM::ExteriorCellLocation cellIndex
= ESM::positionToExteriorCellLocation(dest.mPos.pos[0], dest.mPos.pos[1]);
const MWWorld::WorldModel& worldModel = *MWBase::Environment::get().getWorldModel();
if (cellname.empty())
{
MWWorld::CellStore& cell = MWBase::Environment::get().getWorldModel()->getExterior(cellIndex);
MWWorld::CellStore& cell = worldModel.getExterior(cellIndex);
cellname = MWBase::Environment::get().getWorld()->getCellName(&cell);
interior = false;
}
else if (worldModel.findCell(cellname, false) == nullptr)
{
Log(Debug::Error) << "Failed to add travel destination: unknown cell (" << cellname << ")";
continue;
}
addDestination(ESM::RefId::stringRefId(cellname), dest.mPos, interior);
}