cleanup of bulk packets
Silly how many times this is getting done, but hopefully this is for the better! :)
This commit is contained in:
parent
f4d373dadb
commit
14ec3a32e7
1 changed files with 5 additions and 40 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue