diff --git a/apps/openmw/mwmp/Networking.cpp b/apps/openmw/mwmp/Networking.cpp index 1380349b6..c29219f84 100644 --- a/apps/openmw/mwmp/Networking.cpp +++ b/apps/openmw/mwmp/Networking.cpp @@ -633,7 +633,7 @@ void Networking::ProcessWorldPacket(RakNet::Packet *packet) WorldPacket *myPacket = worldController.GetPacket(packet->data[0]); WorldEvent *event = new WorldEvent(id); - MWWorld::CellStore *ptrCellStore = MWBase::Environment::get().getWorld()->getCell(event->cellId); + MWWorld::CellStore *ptrCellStore; switch (packet->data[0]) { @@ -649,10 +649,17 @@ void Networking::ProcessWorldPacket(RakNet::Packet *packet) { myPacket->Packet(&bsIn, event, false); + if (event->cell.isExterior()) + ptrCellStore = MWBase::Environment::get().getWorld()->getExterior(event->cell.mData.mX, event->cell.mData.mY); + else + ptrCellStore = MWBase::Environment::get().getWorld()->getInterior(event->cell.mName); + LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "%s", "Received ID_WORLD_OBJECT_DELETE"); LOG_APPEND(Log::LOG_WARN, "- cellRefId: %s, %i", event->cellRef.mRefID.c_str(), event->cellRef.mRefNum); + LOG_APPEND(Log::LOG_WARN, "- cell: %s", + event->cell.getDescription().c_str()); MWWorld::Ptr ptrFound = ptrCellStore->searchByRefNum(event->cellRef.mRefNum); diff --git a/apps/openmw/mwworld/actiontake.cpp b/apps/openmw/mwworld/actiontake.cpp index 8e2fa13e6..1fc6b04c9 100644 --- a/apps/openmw/mwworld/actiontake.cpp +++ b/apps/openmw/mwworld/actiontake.cpp @@ -26,7 +26,8 @@ namespace MWWorld // Added by tes3mp mwmp::WorldEvent *event = mwmp::Main::get().getNetworking()->createWorldEvent(); - event->cellId = getTarget().getCell()->getCell()->getCellId(); + event->cell = *getTarget().getCell()->getCell(); + event->cellRef.mRefID = getTarget().getCellRef().getRefId(); event->cellRef.mRefNum = getTarget().getCellRef().getRefNum(); mwmp::Main::get().getNetworking()->GetWorldPacket(ID_WORLD_OBJECT_DELETE)->Send(event); diff --git a/components/openmw-mp/Base/WorldEvent.hpp b/components/openmw-mp/Base/WorldEvent.hpp index 05056a528..455d485a3 100644 --- a/components/openmw-mp/Base/WorldEvent.hpp +++ b/components/openmw-mp/Base/WorldEvent.hpp @@ -23,7 +23,7 @@ namespace mwmp RakNet::RakNetGUID guid; - ESM::CellId cellId; + ESM::Cell cell; ESM::CellRef cellRef; }; } diff --git a/components/openmw-mp/Packets/World/PacketObjectDelete.cpp b/components/openmw-mp/Packets/World/PacketObjectDelete.cpp index 25c252cd5..4b28cc46a 100644 --- a/components/openmw-mp/Packets/World/PacketObjectDelete.cpp +++ b/components/openmw-mp/Packets/World/PacketObjectDelete.cpp @@ -15,8 +15,8 @@ void PacketObjectDelete::Packet(RakNet::BitStream *bs, WorldEvent *event, bool s RW(event->cellRef.mRefID, send); RW(event->cellRef.mRefNum, send); - RW(event->cellId.mPaged, send); - RW(event->cellId.mIndex.mX, send); - RW(event->cellId.mIndex.mY, send); - RW(event->cellId.mWorldspace, send); + RW(event->cell.mData.mFlags, send); + RW(event->cell.mCellId.mIndex.mX, send); + RW(event->cell.mCellId.mIndex.mY, send); + RW(event->cell.mName, send); }