mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-04-18 16:06:48 +00:00
Conflicts: apps/openmw-mp/Networking.cpp apps/openmw-mp/Script/Functions/World.cpp apps/openmw-mp/Script/Functions/World.hpp apps/openmw-mp/processors/WorldProcessor.cpp apps/openmw-mp/processors/WorldProcessor.hpp apps/openmw-mp/processors/world/ProcessorContainer.hpp apps/openmw-mp/processors/world/ProcessorDoorState.hpp apps/openmw-mp/processors/world/ProcessorObjectDelete.hpp apps/openmw-mp/processors/world/ProcessorObjectLock.hpp apps/openmw-mp/processors/world/ProcessorObjectPlace.hpp apps/openmw-mp/processors/world/ProcessorObjectScale.hpp apps/openmw-mp/processors/world/ProcessorObjectSpawn.hpp apps/openmw-mp/processors/world/ProcessorObjectState.hpp apps/openmw-mp/processors/world/ProcessorObjectTrap.hpp apps/openmw/mwgui/container.cpp apps/openmw/mwmp/Networking.cpp apps/openmw/mwmp/ObjectList.cpp apps/openmw/mwmp/ObjectList.hpp apps/openmw/mwmp/processors/world/ProcessorContainer.hpp components/CMakeLists.txt components/openmw-mp/Base/BaseObject.hpp components/openmw-mp/Packets/Object/ObjectPacket.cpp components/openmw-mp/Packets/Object/PacketConsoleCommand.cpp components/openmw-mp/Packets/Object/PacketContainer.cpp components/openmw-mp/Packets/Object/PacketDoorState.hpp components/openmw-mp/Packets/Object/PacketMusicPlay.hpp components/openmw-mp/Packets/Object/PacketObjectAnimPlay.hpp components/openmw-mp/Packets/Object/PacketObjectLock.hpp components/openmw-mp/Packets/Object/PacketObjectMove.hpp components/openmw-mp/Packets/Object/PacketObjectPlace.hpp components/openmw-mp/Packets/Object/PacketObjectRotate.hpp components/openmw-mp/Packets/Object/PacketObjectScale.hpp components/openmw-mp/Packets/Object/PacketObjectSpawn.hpp components/openmw-mp/Packets/Object/PacketObjectState.hpp components/openmw-mp/Packets/Object/PacketObjectTrap.hpp components/openmw-mp/Packets/Object/PacketScriptGlobalShort.hpp components/openmw-mp/Packets/Object/PacketScriptLocalFloat.hpp components/openmw-mp/Packets/Object/PacketScriptLocalShort.hpp components/openmw-mp/Packets/Object/PacketScriptMemberShort.hpp components/openmw-mp/Packets/Object/PacketVideoPlay.hpp
54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#include <components/openmw-mp/NetworkMessages.hpp>
|
|
#include <components/openmw-mp/Log.hpp>
|
|
#include "PacketContainer.hpp"
|
|
|
|
using namespace mwmp;
|
|
|
|
PacketContainer::PacketContainer(RakNet::RakPeerInterface *peer) : ObjectPacket(peer)
|
|
{
|
|
packetID = ID_CONTAINER;
|
|
hasCellData = true;
|
|
}
|
|
|
|
void PacketContainer::Packet(RakNet::BitStream *bs, bool send)
|
|
{
|
|
if (!PacketHeader(bs, send))
|
|
return;
|
|
|
|
RW(objectList->action, send);
|
|
RW(objectList->containerSubAction, send);
|
|
|
|
for (auto &&baseObject : objectList->baseObjects)
|
|
{
|
|
Object(baseObject, send);
|
|
|
|
if (send)
|
|
{
|
|
baseObject.containerItemCount = (unsigned int) (baseObject.containerItems.size());
|
|
}
|
|
|
|
RW(baseObject.containerItemCount, send);
|
|
|
|
if (!send)
|
|
{
|
|
baseObject.containerItems.clear();
|
|
baseObject.containerItems.resize(baseObject.containerItemCount);
|
|
}
|
|
|
|
if (baseObject.containerItemCount > maxObjects || baseObject.refId.empty()
|
|
|| (baseObject.refNumIndex != 0 && baseObject.mpNum != 0))
|
|
{
|
|
objectList->isValid = false;
|
|
return;
|
|
}
|
|
|
|
for (auto &&containerItem: baseObject.containerItems)
|
|
{
|
|
RW(containerItem.refId, send);
|
|
RW(containerItem.count, send);
|
|
RW(containerItem.charge, send);
|
|
RW(containerItem.enchantmentCharge, send);
|
|
RW(containerItem.actionCount, send);
|
|
}
|
|
}
|
|
}
|