diff options
-rw-r--r-- | source/cClientHandle.cpp | 12 | ||||
-rw-r--r-- | source/cPlayer.cpp | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/source/cClientHandle.cpp b/source/cClientHandle.cpp index 05bdec249..00e81c416 100644 --- a/source/cClientHandle.cpp +++ b/source/cClientHandle.cpp @@ -124,6 +124,7 @@ cClientHandle::cClientHandle(const cSocket & a_Socket) , m_bKeepThreadGoing( true )
, m_bSendLoginResponse( false )
, m_pState( new sClientHandleState )
+ , m_Ping(1000)
{
LOG("cClientHandle::cClientHandle");
@@ -183,9 +184,16 @@ cClientHandle::~cClientHandle() {
if ((*itr) && (*itr)->GetClientHandle() && strlen(GetUsername()) > 0)
{
- cPacket_PlayerListItem *PlayerList = new cPacket_PlayerListItem(m_Player->GetColor() + GetUsername(), false, (short)9999);
- (*itr)->GetClientHandle()->Send( *PlayerList );
+ cPacket_PlayerListItem PlayerList(m_Player->GetColor() + GetUsername(), false, (short)9999);
+ (*itr)->GetClientHandle()->Send( PlayerList );
}
+
+ }
+
+ if (m_pState && m_pState->Username.size() > 0)
+ {
+ cPacket_Chat Left( m_pState->Username + " left the game!");
+ cRoot::Get()->GetServer()->Broadcast( Left, this );
}
// First stop sending thread
diff --git a/source/cPlayer.cpp b/source/cPlayer.cpp index e8bdeb4ff..d0dfa8795 100644 --- a/source/cPlayer.cpp +++ b/source/cPlayer.cpp @@ -239,8 +239,8 @@ void cPlayer::Tick(float a_Dt) for( cWorld::PlayerList::iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr )
{
if ((*itr) && (*itr)->GetClientHandle() && !((*itr)->GetClientHandle()->IsDestroyed())) {
- cPacket_PlayerListItem *PlayerList = new cPacket_PlayerListItem(GetColor() + GetName(), true, (*itr)->GetClientHandle()->GetPing());
- (*itr)->GetClientHandle()->Send( *PlayerList );
+ cPacket_PlayerListItem PlayerList(GetColor() + GetName(), true, (*itr)->GetClientHandle()->GetPing());
+ (*itr)->GetClientHandle()->Send( PlayerList );
}
}
|