diff --git a/apps/openmw/mwgui/travelwindow.cpp b/apps/openmw/mwgui/travelwindow.cpp index f95d00f235..c8e1e1a767 100644 --- a/apps/openmw/mwgui/travelwindow.cpp +++ b/apps/openmw/mwgui/travelwindow.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -124,12 +125,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); }