Change new functions return type and switch to enum class

As suggested by @krzys_h
1008-fix
tomangelo2 2018-04-08 23:43:22 +02:00
parent d371338920
commit ad6dd00275
4 changed files with 14 additions and 12 deletions

View File

@ -917,21 +917,21 @@ int CLevelParserParam::AsResearchFlag(int def)
return AsResearchFlag();
}
int CLevelParserParam::ToSortType(std::string value)
SortType CLevelParserParam::ToSortType(std::string value)
{
if (value == "Points" ) return SORT_POINTS;
if (value == "Name" ) return SORT_ID;
return Cast<int>(value, "sorttype");
if (value == "Points" ) return SortType::SORT_POINTS;
if (value == "Name" ) return SortType::SORT_ID;
return SortType::SORT_ID;
}
int CLevelParserParam::AsSortType()
SortType CLevelParserParam::AsSortType()
{
if (m_empty)
throw CLevelParserExceptionMissingParam(this);
return ToSortType(m_value);
}
int CLevelParserParam::AsSortType(int def)
SortType CLevelParserParam::AsSortType(SortType def)
{
if (m_empty)
return def;

View File

@ -31,6 +31,8 @@
#include "graphics/engine/pyro_type.h"
#include "graphics/engine/water.h"
#include "level/scoreboard.h"
#include "math/point.h"
#include "object/drive_type.h"
@ -85,7 +87,7 @@ public:
Gfx::EngineObjectType AsTerrainType();
int AsBuildFlag();
int AsResearchFlag();
int AsSortType();
SortType AsSortType();
Gfx::PyroType AsPyroType();
Gfx::CameraType AsCameraType();
MissionType AsMissionType();
@ -109,7 +111,7 @@ public:
Gfx::EngineObjectType AsTerrainType(Gfx::EngineObjectType def);
int AsBuildFlag(int def);
int AsResearchFlag(int def);
int AsSortType(int def);
SortType AsSortType(SortType def);
Gfx::PyroType AsPyroType(Gfx::PyroType def);
Gfx::CameraType AsCameraType(Gfx::CameraType def);
MissionType AsMissionType(MissionType def);
@ -141,7 +143,7 @@ private:
Gfx::EngineObjectType ToTerrainType(std::string value);
int ToBuildFlag(std::string value);
int ToResearchFlag(std::string value);
int ToSortType(std::string value);
SortType ToSortType(std::string value);
Gfx::PyroType ToPyroType(std::string value);
Gfx::CameraType ToCameraType(std::string value);
MissionType ToMissionType(std::string value);

View File

@ -5919,7 +5919,7 @@ void CRobotMain::UpdateCodeBattleInterface()
assert(pw != nullptr);
std::set<int> teams = GetAllTeams();
std::vector<int> sortedTeams(teams.begin(), teams.end());
if(m_scoreboard->GetSortType() == SORT_POINTS)
if(m_scoreboard->GetSortType() == SortType::SORT_POINTS)
{
std::sort(sortedTeams.begin(), sortedTeams.end(), [this](int teamA, int teamB)
{

View File

@ -42,7 +42,7 @@ struct Score
float time = 0; //! Time when points were scored
};
enum SortType
enum class SortType
{
SORT_ID, //Sort by team ID
SORT_POINTS, //Sort by points
@ -142,5 +142,5 @@ private:
std::vector<std::unique_ptr<CScoreboardEndTakeRule>> m_rulesEndTake = {};
std::map<int, Score> m_score;
int m_finishCounter = 0;
SortType m_sorttype = SORT_ID;
SortType m_sorttype = SortType::SORT_ID;
};