From 6015b59f13aeb40e60c461f2842fb6f662b27824 Mon Sep 17 00:00:00 2001 From: faketruth Date: Wed, 22 Feb 2012 19:31:30 +0000 Subject: Fixed a bug that no chunks were unloaded on the client. Now chunks are properly unloaded on the clients. git-svn-id: http://mc-server.googlecode.com/svn/trunk@318 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cClientHandle.cpp | 2 ++ source/packets/cPacket_PreChunk.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/source/cClientHandle.cpp b/source/cClientHandle.cpp index 91ccb4005..70fa8e455 100644 --- a/source/cClientHandle.cpp +++ b/source/cClientHandle.cpp @@ -67,6 +67,7 @@ #include "packets/cPacket_PlayerListItem.h" #include "packets/cPacket_NamedEntitySpawn.h" #include "packets/cPacket_MapChunk.h" +#include "packets/cPacket_PreChunk.h" @@ -344,6 +345,7 @@ void cClientHandle::StreamChunks(void) if ((RelX > VIEWDISTANCE) || (RelX < -VIEWDISTANCE) || (RelZ > VIEWDISTANCE) || (RelZ < -VIEWDISTANCE)) { World->RemoveChunkClient(itr->m_ChunkX, itr->m_ChunkY, itr->m_ChunkZ, this); + Send( cPacket_PreChunk( itr->m_ChunkX, itr->m_ChunkZ, false ) ); itr = m_LoadedChunks.erase(itr); } else diff --git a/source/packets/cPacket_PreChunk.h b/source/packets/cPacket_PreChunk.h index 6e24ae5ae..cc8147c4a 100644 --- a/source/packets/cPacket_PreChunk.h +++ b/source/packets/cPacket_PreChunk.h @@ -15,6 +15,11 @@ public: , m_PosZ( 0 ) , m_bLoad( false ) { m_PacketID = E_PRE_CHUNK; } + cPacket_PreChunk( int a_PosX, int a_PosZ, bool a_bLoad ) + : m_PosX( a_PosX ) + , m_PosZ( a_PosZ ) + , m_bLoad( a_bLoad ) + { m_PacketID = E_PRE_CHUNK; } virtual cPacket* Clone() const { return new cPacket_PreChunk(*this); } virtual void Serialize(AString & a_Data) const override; -- cgit v1.2.3