Browse Source

Revert "Additional tweaking of zone in spawns and bulk pos/info/vis updates"

This reverts commit 4eefc3ed2ce144c83dd3ce715ea4719aa8f7eb3c.
Image 4 years ago
parent
commit
e88145c3bd
2 changed files with 35 additions and 34 deletions
  1. 34 33
      EQ2/source/WorldServer/client.cpp
  2. 1 1
      EQ2/source/WorldServer/zoneserver.cpp

+ 34 - 33
EQ2/source/WorldServer/client.cpp

@@ -8267,50 +8267,51 @@ void Client::SendSpawnChanges(set<Spawn*>& spawns) {
 		int16 index = GetPlayer()->GetIndexForSpawn(spawn);
 		if (index == 0 || !GetPlayer()->WasSentSpawn(spawn->GetID()) || GetPlayer()->NeedsSpawnResent(spawn) || GetPlayer()->GetDistance(spawn) >= SEND_SPAWN_DISTANCE)
 			continue;
-
+		
 		if (spawn->vis_changed)
 		{
-			map<int32, SpawnData> tmp_info_changes;
-			map<int32, SpawnData> tmp_pos_changes;
-			map<int32, SpawnData> tmp_vis_changes;
-			int32 tmp_info_size = 0;
-			int32 tmp_pos_size = 0;
-			int32 tmp_vis_size = 0;
-
 			auto vis_change = spawn->spawn_vis_changes_ex(GetPlayer(), GetVersion());
 			if (vis_change) {
 				SpawnData data;
 				data.spawn = spawn;
 				data.data = vis_change;
 				data.size = spawn->vis_packet_size;
-				tmp_vis_size = data.size;
+				map<int32, SpawnData> tmp_vis_changes;
 				tmp_vis_changes[index] = data;
-			}
 
-			/*auto info_change = spawn->spawn_info_changes_ex(GetPlayer(), GetVersion());
+				map<int32, SpawnData> tmp_info_changes;
+				map<int32, SpawnData> tmp_pos_changes;
+				int32 tmp_info_size = 0;
+				int32 tmp_pos_size = 0;
+				if (spawn->info_changed) {
+					auto info_change = spawn->spawn_info_changes_ex(GetPlayer(), GetVersion());
+
+					if (info_change) {
+						SpawnData data;
+						data.spawn = spawn;
+						data.data = info_change;
+						data.size = spawn->info_packet_size;
+						tmp_info_size = data.size;
+						tmp_info_changes[index] = data;
+					}
+				}
 
-			if (info_change) {
-				SpawnData data;
-				data.spawn = spawn;
-				data.data = info_change;
-				data.size = spawn->info_packet_size;
-				tmp_info_size = data.size;
-				tmp_info_changes[index] = data;
-			}
+				if (spawn->position_changed) {
+					auto pos_change = spawn->spawn_pos_changes_ex(GetPlayer(), GetVersion());
 
-			auto pos_change = spawn->spawn_pos_changes_ex(GetPlayer(), GetVersion());
-
-			if (pos_change) {
-				SpawnData data;
-				data.spawn = spawn;
-				data.data = pos_change;
-				data.size = spawn->pos_packet_size;
-				tmp_pos_size = data.size;
-				tmp_pos_changes[index] = data;
-			}*/
+					if (pos_change) {
+						SpawnData data;
+						data.spawn = spawn;
+						data.data = pos_change;
+						data.size = spawn->pos_packet_size;
+						tmp_pos_size = data.size;
+						tmp_pos_changes[index] = data;
+					}
+				}
 
-			if (tmp_vis_size > 0)
-				MakeSpawnChangePacket(tmp_info_changes, tmp_pos_changes, tmp_vis_changes, tmp_info_size, tmp_pos_size, tmp_vis_size);
+				MakeSpawnChangePacket(tmp_info_changes, tmp_pos_changes, tmp_vis_changes, tmp_info_size, tmp_pos_size, data.size);
+				continue;
+			}
 		}
 
 		if (spawn->info_changed) {
@@ -8342,7 +8343,7 @@ void Client::SendSpawnChanges(set<Spawn*>& spawns) {
 			}
 			count++;
 		}
-		/*
+		
 		if (spawn->vis_changed) {
 			auto vis_change = spawn->spawn_vis_changes_ex(GetPlayer(), GetVersion());
 
@@ -8356,7 +8357,7 @@ void Client::SendSpawnChanges(set<Spawn*>& spawns) {
 				vis_changes[index] = data;
 			}
 			count++;
-		}*/
+		}
 
 	}
 

+ 1 - 1
EQ2/source/WorldServer/zoneserver.cpp

@@ -1074,7 +1074,7 @@ void ZoneServer::CheckSendSpawnToClient(Client* client, bool initial_login) {
 						spawn->RemoveSpawnAccess(client->GetPlayer());
 				}
 				if(spawn && spawn != client->GetPlayer() && client->GetPlayer()->ShouldSendSpawn(spawn)) {
-					if(spawn_iter->second <= SEND_SPAWN_DISTANCE) {
+					if((!initial_login && spawn_iter->second <= SEND_SPAWN_DISTANCE) || (initial_login && (spawn_iter->second <= (SEND_SPAWN_DISTANCE/2) || spawn->IsWidget()))) {
 						if(closest_spawns.count(spawn_iter->second) == 0)
 							closest_spawns[spawn_iter->second] = new vector<Spawn*>();
 						closest_spawns[spawn_iter->second]->push_back(spawn);