mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-12-18 01:10:05 +00:00
Compare commits
2 Commits
1c979a76b6
...
a87c8aadbd
Author | SHA1 | Date | |
---|---|---|---|
a87c8aadbd | |||
91589b18c1 |
@ -95,12 +95,11 @@ static void sendAroundPacket(const EntityRef recipient, std::vector<std::vector<
|
|||||||
for (size_t i = 0; i < count; i++) {
|
for (size_t i = 0; i < count; i++) {
|
||||||
data[i] = slice[i];
|
data[i] = slice[i];
|
||||||
}
|
}
|
||||||
recipient.sock->sendPacket(pktBuf, packetId, 4 + (count * sizeof(T)));
|
recipient.sock->sendPacket(pktBuf, packetId, sizeof(int32_t) + (count * sizeof(T)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T>
|
static void sendAroundDelPacket(const EntityRef recipient, std::vector<std::vector<int32_t>>& slices, bool isTransportation, uint32_t packetId) {
|
||||||
static void sendAroundDelPacket(const EntityRef recipient, std::vector<std::vector<T>>& slices, bool isTransportation, uint32_t packetId) {
|
|
||||||
assert(recipient.kind == EntityKind::PLAYER);
|
assert(recipient.kind == EntityKind::PLAYER);
|
||||||
|
|
||||||
size_t maxCnt = MAX_IDS_PER_AROUND_DEL;
|
size_t maxCnt = MAX_IDS_PER_AROUND_DEL;
|
||||||
@ -113,20 +112,22 @@ static void sendAroundDelPacket(const EntityRef recipient, std::vector<std::vect
|
|||||||
int count = slice.size();
|
int count = slice.size();
|
||||||
assert(count <= maxCnt);
|
assert(count <= maxCnt);
|
||||||
|
|
||||||
T* data;
|
size_t baseSize;
|
||||||
if (isTransportation) {
|
if (isTransportation) {
|
||||||
*((int32_t*)pktBuf) = 3; // eTT
|
sP_FE2CL_AROUND_DEL_TRANSPORTATION* pkt = (sP_FE2CL_AROUND_DEL_TRANSPORTATION*)pktBuf;
|
||||||
*((int32_t*)pktBuf + sizeof(int32_t)) = count;
|
pkt->eTT = 3;
|
||||||
data = (T*)(pktBuf + sizeof(int32_t) + sizeof(int32_t));
|
pkt->iCnt = count;
|
||||||
|
baseSize = sizeof(sP_FE2CL_AROUND_DEL_TRANSPORTATION);
|
||||||
} else {
|
} else {
|
||||||
*((int32_t*)pktBuf) = count;
|
*((int32_t*)pktBuf) = count;
|
||||||
data = (T*)(pktBuf + sizeof(int32_t));
|
baseSize = sizeof(int32_t);
|
||||||
}
|
}
|
||||||
|
int32_t* ids = (int32_t*)(pktBuf + baseSize);
|
||||||
|
|
||||||
for (size_t i = 0; i < count; i++) {
|
for (size_t i = 0; i < count; i++) {
|
||||||
data[i] = slice[i];
|
ids[i] = slice[i];
|
||||||
}
|
}
|
||||||
recipient.sock->sendPacket(pktBuf, packetId, isTransportation ? 8 : 4 + (count * sizeof(T)));
|
recipient.sock->sendPacket(pktBuf, packetId, baseSize + (count * sizeof(int32_t)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user