summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/cClientHandle.cpp12
-rw-r--r--source/cPlayer.cpp4
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 );
}
}