summaryrefslogtreecommitdiffstats
path: root/sigencore/Arena.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sigencore/Arena.cpp')
-rw-r--r--sigencore/Arena.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/sigencore/Arena.cpp b/sigencore/Arena.cpp
index b2acaf51..bcdfceba 100644
--- a/sigencore/Arena.cpp
+++ b/sigencore/Arena.cpp
@@ -138,7 +138,7 @@ Sigscript::SigmodWrapper* Sigencore::Arena::sigmod() const
bool Sigencore::Arena::addClient(Client* client, const int team)
{
- if ((team < 0) || ((m_state == Setup) && qobject_cast<Player*>(client) && (teamMembers(Fighters).size() < m_sigmod->rules()->maxPlayers())))
+ if (((team < 0) || ((m_state == Setup) && qobject_cast<Player*>(client) && (teamMembers(Fighters).size() < m_sigmod->rules()->maxPlayers()))) && client->enterArena(this))
{
m_teams[client] = team;
emit(clientAdded(client, team));
@@ -160,6 +160,8 @@ void Sigencore::Arena::removeClient(Client* client)
player->giveMoney(net);
m_spoils.remove(player);
}
+ if (player && (0 <= m_teams[player]))
+ player->exitArena();
const int team = m_teams[client];
m_teams.remove(client);
emit(clientRemoved(client, team));