summaryrefslogtreecommitdiffstats
path: root/src/Scoreboard.cpp
diff options
context:
space:
mode:
authorandrew <xdotftw@gmail.com>2014-01-19 15:02:37 +0100
committerandrew <xdotftw@gmail.com>2014-01-19 15:02:37 +0100
commitf321b5d224cb4a6d562cfb32850bf752ddd69f61 (patch)
treef721fdfd6708d7c92965c3dc2b9330e0e09653da /src/Scoreboard.cpp
parentBasic scoreboard implementation (diff)
downloadcuberite-f321b5d224cb4a6d562cfb32850bf752ddd69f61.tar
cuberite-f321b5d224cb4a6d562cfb32850bf752ddd69f61.tar.gz
cuberite-f321b5d224cb4a6d562cfb32850bf752ddd69f61.tar.bz2
cuberite-f321b5d224cb4a6d562cfb32850bf752ddd69f61.tar.lz
cuberite-f321b5d224cb4a6d562cfb32850bf752ddd69f61.tar.xz
cuberite-f321b5d224cb4a6d562cfb32850bf752ddd69f61.tar.zst
cuberite-f321b5d224cb4a6d562cfb32850bf752ddd69f61.zip
Diffstat (limited to '')
-rw-r--r--src/Scoreboard.cpp79
1 files changed, 24 insertions, 55 deletions
diff --git a/src/Scoreboard.cpp b/src/Scoreboard.cpp
index 1d2711ca0..539316356 100644
--- a/src/Scoreboard.cpp
+++ b/src/Scoreboard.cpp
@@ -11,14 +11,14 @@
-cObjective::cObjective(eObjectiveType a_Type) : m_Type(a_Type)
+cObjective::cObjective(cObjective::eType a_Type) : m_Type(a_Type)
{}
-void cObjective::SetDisplaySlot(eDisplaySlot a_Display)
+void cObjective::SetDisplaySlot(cObjective::eDisplaySlot a_Display)
{
m_Display = a_Display;
}
@@ -102,8 +102,8 @@ cObjective::Score cObjective::SubScore(const AString & a_Name, cObjective::Score
cTeam::cTeam(const AString & a_Name, const AString & a_DisplayName,
const AString & a_Prefix, const AString & a_Suffix)
- : m_FriendlyFire(true)
- , m_SeeFriendlyInvisible(false)
+ : m_AllowsFriendlyFire(true)
+ , m_CanSeeFriendlyInvisible(false)
, m_Name(a_Name)
, m_DisplayName(a_DisplayName)
, m_Prefix(a_Prefix)
@@ -114,18 +114,18 @@ cTeam::cTeam(const AString & a_Name, const AString & a_DisplayName,
-bool cTeam::AddPlayer(cPlayer * a_Player)
+bool cTeam::AddPlayer(const AString & a_Name)
{
- return m_Players.insert(a_Player).second;
+ return m_Players.insert(a_Name).second;
}
-bool cTeam::RemovePlayer(cPlayer * a_Player)
+bool cTeam::RemovePlayer(const AString & a_Name)
{
- return m_Players.erase(a_Player) > 0;
+ return m_Players.erase(a_Name) > 0;
}
@@ -149,38 +149,13 @@ unsigned int cTeam::GetNumPlayers(void) const
-cScoreboard::~cScoreboard()
+cObjective* cScoreboard::RegisterObjective(const AString & a_Name, cObjective::eType a_Type)
{
- for (ObjectiveMap::iterator it = m_Objectives.begin(); it != m_Objectives.end(); ++it)
- {
- delete it->second;
- }
-
- for (TeamMap::iterator it = m_Teams.begin(); it != m_Teams.end(); ++it)
- {
- delete it->second;
- }
-}
+ cObjective Objective(a_Type);
+ std::pair<ObjectiveMap::iterator, bool> Status = m_Objectives.insert(NamedObjective(a_Name, Objective));
-
-
-
-cObjective* cScoreboard::RegisterObjective(const AString & a_Name, eObjectiveType a_Type)
-{
- cObjective* Objective = new cObjective(a_Type);
-
- bool Status = m_Objectives.insert(NamedObjective(a_Name, Objective)).second;
-
- if (Status)
- {
- return Objective;
- }
- else
- {
- delete Objective;
- return NULL;
- }
+ return Status.second ? &Status.first->second : NULL;
}
@@ -215,7 +190,7 @@ cObjective* cScoreboard::GetObjective(const AString & a_Name)
}
else
{
- return it->second;
+ return &it->second;
}
}
@@ -223,22 +198,16 @@ cObjective* cScoreboard::GetObjective(const AString & a_Name)
-cTeam* cScoreboard::RegisterTeam(const AString & a_Name, const AString & a_DisplayName,
- const AString & a_Prefix, const AString & a_Suffix)
+cTeam* cScoreboard::RegisterTeam(
+ const AString & a_Name, const AString & a_DisplayName,
+ const AString & a_Prefix, const AString & a_Suffix
+)
{
- cTeam* Team = new cTeam(a_Name, a_DisplayName, a_Prefix, a_Suffix);
+ cTeam Team(a_Name, a_DisplayName, a_Prefix, a_Suffix);
- bool Status = m_Teams.insert(NamedTeam(a_Name, Team)).second;
+ std::pair<TeamMap::iterator, bool> Status = m_Teams.insert(NamedTeam(a_Name, Team));
- if (Status)
- {
- return Team;
- }
- else
- {
- delete Team;
- return NULL;
- }
+ return Status.second ? &Status.first->second : NULL;
}
@@ -273,7 +242,7 @@ cTeam* cScoreboard::GetTeam(const AString & a_Name)
}
else
{
- return it->second;
+ return &it->second;
}
}
@@ -281,14 +250,14 @@ cTeam* cScoreboard::GetTeam(const AString & a_Name)
-void cScoreboard::ForEachObjectiveWith(eObjectiveType a_Type, cObjectiveCallback& a_Callback)
+void cScoreboard::ForEachObjectiveWith(cObjective::eType a_Type, cObjectiveCallback& a_Callback)
{
for (ObjectiveMap::iterator it = m_Objectives.begin(); it != m_Objectives.end(); ++it)
{
- if (it->second->GetType() == a_Type)
+ if (it->second.GetType() == a_Type)
{
// Call callback
- if (a_Callback.Item(it->second))
+ if (a_Callback.Item(&it->second))
{
return;
}