diff --git a/apps/openmw/mwmp/ObjectList.cpp b/apps/openmw/mwmp/ObjectList.cpp index 113b2218c..6a92f23bb 100644 --- a/apps/openmw/mwmp/ObjectList.cpp +++ b/apps/openmw/mwmp/ObjectList.cpp @@ -349,7 +349,14 @@ void ObjectList::activateObjects(MWWorld::CellStore* cellStore) else { LOG_APPEND(TimedLog::LOG_VERBOSE, "-- Activated object is %s %i-%i", baseObject.refId.c_str(), baseObject.refNum, baseObject.mpNum); - ptrFound = cellStore->searchExact(baseObject.refNum, baseObject.mpNum); + if (baseObject.refId.empty()) + { + ptrFound = cellStore->searchExact(baseObject.refNum, baseObject.mpNum); + } + else + { + ptrFound = cellStore->searchExactPlus(baseObject.refId, baseObject.refNum, baseObject.mpNum); + } } if (ptrFound) @@ -991,8 +998,16 @@ void ObjectList::makeDialogueChoices(MWWorld::CellStore* cellStore) for (const auto& baseObject : baseObjects) { LOG_APPEND(TimedLog::LOG_VERBOSE, "- cellRef: %s %i-%i", baseObject.refId.c_str(), baseObject.refNum, baseObject.mpNum); + MWWorld::Ptr ptrFound; - MWWorld::Ptr ptrFound = cellStore->searchExact(baseObject.refNum, baseObject.mpNum); + if (baseObject.refId.empty()) + { + ptrFound = cellStore->searchExact(baseObject.refNum, baseObject.mpNum); + } + else + { + ptrFound = cellStore->searchExactPlus(baseObject.refId, baseObject.refNum, baseObject.mpNum); + } if (ptrFound) {