From cc98a25dcfecc1d2e2afc9ef1d91bf3c0af77838 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sat, 22 Oct 2016 16:47:11 +0300 Subject: [PATCH] Add searchByRefNum method to OpenMW's CellStore --- apps/openmw/mwmp/Networking.cpp | 8 ++++++-- apps/openmw/mwworld/cellstore.cpp | 8 ++++++++ apps/openmw/mwworld/cellstore.hpp | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwmp/Networking.cpp b/apps/openmw/mwmp/Networking.cpp index 90688ce7e..80f8192ba 100644 --- a/apps/openmw/mwmp/Networking.cpp +++ b/apps/openmw/mwmp/Networking.cpp @@ -654,9 +654,13 @@ void Networking::ProcessWorldPacket(RakNet::Packet *packet) event->cellRef.mRefID.c_str(), event->cellRef.mRefNum); - //MWWorld::Ptr object = ptrCellStore->search(event->cellRef.mRefID); + MWWorld::Ptr ptrFound = ptrCellStore->searchByRefNum(event->cellRef.mRefNum); + + LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "Found %s, %i", + ptrFound.getCellRef().getRefId().c_str(), + ptrFound.getCellRef().getRefNum()); + //MWBase::Environment::get().getWorld()->deleteObject(object); - break; } diff --git a/apps/openmw/mwworld/cellstore.cpp b/apps/openmw/mwworld/cellstore.cpp index e5c9e779e..c3f2dca42 100644 --- a/apps/openmw/mwworld/cellstore.cpp +++ b/apps/openmw/mwworld/cellstore.cpp @@ -433,6 +433,14 @@ namespace MWWorld return Ptr(); } + // Added by tes3mp + Ptr CellStore::searchByRefNum (ESM::RefNum refNum) + { + SearchByRefNumVisitor searchVisitor(refNum); + forEach(searchVisitor); + return searchVisitor.mFound; + } + float CellStore::getWaterLevel() const { if (isExterior()) diff --git a/apps/openmw/mwworld/cellstore.hpp b/apps/openmw/mwworld/cellstore.hpp index 1aee13132..45f4a6606 100644 --- a/apps/openmw/mwworld/cellstore.hpp +++ b/apps/openmw/mwworld/cellstore.hpp @@ -228,6 +228,9 @@ namespace MWWorld Ptr searchViaActorId (int id); ///< Will return an empty Ptr if cell is not loaded. + Ptr searchByRefNum (ESM::RefNum refNum); + ///< Added by tes3mp + float getWaterLevel() const; void setWaterLevel (float level);