Цитата:
Сообщение от f1redark
Создание нового пакета - это самый чистый способ, тем более игровыми средствами. В этой точке можно: анализировать пакеты, удалять не желательные, модифицировать существующие, и добавлять свои, в общем, все, что нужно для счастья)
|
Запилил себе создание новых пакетов:
UNetworkPacket* CreatePacket(uint8_t packetId, uint32_t size)
{
auto new_packet = reinterpret_cast<UNetworkPacket *>(gmalloc(sizeof(UNetworkPacket)));
new_packet->id = packetId;
new_packet->id2 = 0xFFFF;
new_packet->size = size;
new_packet->data = gmalloc(size);
return new_packet;
}Code: C++
Однако у меня разрыв шаблона в коде:
*packet = current_packet;Code: C++
Забираем пакет из пула.
*packet = new_packet;Code: C++
В итоге присваиваем новый пакет указателю.
packets.push(current_packet);Code: C++
Посылаем текущий пакет в пул..., но у него такой же опкод, в итоге не будет ли рекурсии?)
Собственно вопрос: WTF?!