@@ -95,12 +95,11 @@ static void sendAroundPacket(const EntityRef recipient, std::vector<std::vector<
95
95
for (size_t i = 0 ; i < count; i++) {
96
96
data[i] = slice[i];
97
97
}
98
- recipient.sock ->sendPacket (pktBuf, packetId, 4 + (count * sizeof (T)));
98
+ recipient.sock ->sendPacket (pktBuf, packetId, sizeof ( int32_t ) + (count * sizeof (T)));
99
99
}
100
100
}
101
101
102
- template <class T >
103
- static void sendAroundDelPacket (const EntityRef recipient, std::vector<std::vector<T>>& slices, bool isTransportation, uint32_t packetId) {
102
+ static void sendAroundDelPacket (const EntityRef recipient, std::vector<std::vector<int32_t >>& slices, bool isTransportation, uint32_t packetId) {
104
103
assert (recipient.kind == EntityKind::PLAYER);
105
104
106
105
size_t maxCnt = MAX_IDS_PER_AROUND_DEL;
@@ -113,20 +112,22 @@ static void sendAroundDelPacket(const EntityRef recipient, std::vector<std::vect
113
112
int count = slice.size ();
114
113
assert (count <= maxCnt);
115
114
116
- T* data ;
115
+ size_t baseSize ;
117
116
if (isTransportation) {
118
- *((int32_t *)pktBuf) = 3 ; // eTT
119
- *((int32_t *)pktBuf + sizeof (int32_t )) = count;
120
- data = (T*)(pktBuf + sizeof (int32_t ) + sizeof (int32_t ));
117
+ sP_FE2CL_AROUND_DEL_TRANSPORTATION * pkt = (sP_FE2CL_AROUND_DEL_TRANSPORTATION *)pktBuf;
118
+ pkt->eTT = 3 ;
119
+ pkt->iCnt = count;
120
+ baseSize = sizeof (sP_FE2CL_AROUND_DEL_TRANSPORTATION );
121
121
} else {
122
122
*((int32_t *)pktBuf) = count;
123
- data = (T*)(pktBuf + sizeof (int32_t ) );
123
+ baseSize = sizeof (int32_t );
124
124
}
125
+ int32_t * ids = (int32_t *)(pktBuf + baseSize);
125
126
126
127
for (size_t i = 0 ; i < count; i++) {
127
- data [i] = slice[i];
128
+ ids [i] = slice[i];
128
129
}
129
- recipient.sock ->sendPacket (pktBuf, packetId, isTransportation ? 8 : 4 + (count * sizeof (T )));
130
+ recipient.sock ->sendPacket (pktBuf, packetId, baseSize + (count * sizeof (int32_t )));
130
131
}
131
132
}
132
133
0 commit comments