cleanup of bulk packets

Silly how many times this is getting done, but hopefully this is for the better! :)
This commit is contained in:
Image 2020-04-24 17:09:30 -04:00
parent f4d373dadb
commit 14ec3a32e7

View file

@ -8260,44 +8260,18 @@ void Client::SendSpawnChanges(set<Spawn*>& spawns) {
int32 vis_size = 0;
int count = 0;
bool forceSend = false;
deque<EQ2Packet*> individualSpawns;
for (const auto& spawn : spawns) {
if (forceSend)
{
forceSend = false;
MakeSpawnChangePacket(info_changes, pos_changes, vis_changes, info_size, pos_size, vis_size);
for (auto& kv : info_changes) {
safe_delete_array(kv.second.data);
}
info_changes.clear();
for (auto& kv : pos_changes) {
safe_delete_array(kv.second.data);
}
pos_changes.clear();
for (auto& kv : vis_changes) {
safe_delete_array(kv.second.data);
}
vis_changes.clear();
info_size = 0;
pos_size = 0;
vis_size = 0;
}
int16 index = GetPlayer()->GetIndexForSpawn(spawn);
if (index == 0 || !GetPlayer()->WasSentSpawn(spawn->GetID()) || GetPlayer()->NeedsSpawnResent(spawn) || GetPlayer()->GetDistance(spawn) >= SEND_SPAWN_DISTANCE)
continue;
/*
if (spawn->IsWidget() || spawn->info_changed || spawn->vis_changed)
if (spawn->vis_changed)
{
EQ2Packet* outapp = spawn->spawn_update_packet(GetPlayer(), GetVersion(), false, false);
individualSpawns.push_back(outapp);
QueuePacket(outapp);
continue;
}*/
}
if (spawn->info_changed) {
auto info_change = spawn->spawn_info_changes_ex(GetPlayer(), GetVersion());
@ -8310,7 +8284,6 @@ void Client::SendSpawnChanges(set<Spawn*>& spawns) {
info_size += spawn->info_packet_size;
info_changes[index] = data;
forceSend = true;
}
count++;
}
@ -8341,7 +8314,6 @@ void Client::SendSpawnChanges(set<Spawn*>& spawns) {
vis_size += spawn->vis_packet_size;
vis_changes[index] = data;
forceSend = true;
}
count++;
}
@ -8365,13 +8337,6 @@ void Client::SendSpawnChanges(set<Spawn*>& spawns) {
for (auto& kv : vis_changes) {
safe_delete_array(kv.second.data);
}
/*
for (int i = 0; i < individualSpawns.size(); i++)
{
QueuePacket(individualSpawns[i]);
}*/
individualSpawns.clear();
}
void Client::MakeSpawnChangePacket(map<int32, SpawnData> info_changes, map<int32, SpawnData> pos_changes, map<int32, SpawnData> vis_changes, int32 info_size, int32 pos_size, int32 vis_size)
@ -8431,7 +8396,7 @@ void Client::MakeSpawnChangePacket(map<int32, SpawnData> info_changes, map<int32
// DumpPacket(packet->pBuffer, packet->size);
if (packet) {
QueuePacket(packet, true);
QueuePacket(packet);
}
delete[] tmp;