You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openmw-tes3coop/components/openmw-mp/Packets/Worldstate/PacketWorldCollisionOverrid...

39 lines
1.1 KiB
C++

#include "PacketWorldCollisionOverride.hpp"
#include <components/openmw-mp/NetworkMessages.hpp>
using namespace mwmp;
PacketWorldCollisionOverride::PacketWorldCollisionOverride(RakNet::RakPeerInterface *peer) : WorldstatePacket(peer)
{
packetID = ID_WORLD_COLLISION_OVERRIDE;
orderChannel = CHANNEL_WORLDSTATE;
}
void PacketWorldCollisionOverride::Packet(RakNet::BitStream *bs, bool send)
{
WorldstatePacket::Packet(bs, send);
RW(worldstate->hasPlayerCollision, send);
RW(worldstate->hasActorCollision, send);
RW(worldstate->hasPlacedObjectCollision, send);
RW(worldstate->useActorCollisionForPlacedObjects, send);
uint32_t enforcedCollisionCount;
if (send)
enforcedCollisionCount = static_cast<uint32_t>(worldstate->enforcedCollisionRefIds.size());
RW(enforcedCollisionCount, send);
if (!send)
{
worldstate->enforcedCollisionRefIds.clear();
worldstate->enforcedCollisionRefIds.resize(enforcedCollisionCount);
}
for (auto &&enforcedCollisionRefId : worldstate->enforcedCollisionRefIds)
{
RW(enforcedCollisionRefId, send);
}
}