Refactored Math::Vector in CLevelParserParam, CObjectCondition and CScoreboard

dev
Tomasz Kapuściński 2021-12-29 02:19:22 +01:00
parent 6277e10b3f
commit b4bfb8b242
5 changed files with 15 additions and 15 deletions

View File

@ -81,7 +81,7 @@ CLevelParserParam::CLevelParserParam(glm::vec2 value)
LoadArray(); LoadArray();
} }
CLevelParserParam::CLevelParserParam(Math::Vector value) CLevelParserParam::CLevelParserParam(glm::vec3 value)
{ {
m_array.push_back(MakeUnique<CLevelParserParam>(value.x)); m_array.push_back(MakeUnique<CLevelParserParam>(value.x));
if(value.y != 0.0f) if(value.y != 0.0f)
@ -304,7 +304,7 @@ Gfx::Color CLevelParserParam::AsColor(Gfx::Color def)
} }
Math::Vector CLevelParserParam::AsPoint() glm::vec3 CLevelParserParam::AsPoint()
{ {
if (m_empty) if (m_empty)
throw CLevelParserExceptionMissingParam(this); throw CLevelParserExceptionMissingParam(this);
@ -313,11 +313,11 @@ Math::Vector CLevelParserParam::AsPoint()
if (m_array.size() == 2) //XZ if (m_array.size() == 2) //XZ
{ {
return Math::Vector(m_array[0]->AsFloat(), 0.0f, m_array[1]->AsFloat()); return glm::vec3(m_array[0]->AsFloat(), 0.0f, m_array[1]->AsFloat());
} }
else if (m_array.size() == 3) //XYZ else if (m_array.size() == 3) //XYZ
{ {
return Math::Vector(m_array[0]->AsFloat(), m_array[1]->AsFloat(), m_array[2]->AsFloat()); return glm::vec3(m_array[0]->AsFloat(), m_array[1]->AsFloat(), m_array[2]->AsFloat());
} }
else else
{ {
@ -325,7 +325,7 @@ Math::Vector CLevelParserParam::AsPoint()
} }
} }
Math::Vector CLevelParserParam::AsPoint(Math::Vector def) glm::vec3 CLevelParserParam::AsPoint(glm::vec3 def)
{ {
if (m_empty) if (m_empty)
return def; return def;

View File

@ -61,7 +61,7 @@ public:
CLevelParserParam(bool value); CLevelParserParam(bool value);
CLevelParserParam(Gfx::Color value); CLevelParserParam(Gfx::Color value);
CLevelParserParam(glm::vec2 value); CLevelParserParam(glm::vec2 value);
CLevelParserParam(Math::Vector value); CLevelParserParam(glm::vec3 value);
CLevelParserParam(ObjectType value); CLevelParserParam(ObjectType value);
CLevelParserParam(Gfx::CameraType value); CLevelParserParam(Gfx::CameraType value);
CLevelParserParam(CLevelParserParamVec&& array); CLevelParserParam(CLevelParserParamVec&& array);
@ -79,7 +79,7 @@ public:
bool AsBool(); bool AsBool();
std::string AsPath(const std::string defaultDir); std::string AsPath(const std::string defaultDir);
Gfx::Color AsColor(); Gfx::Color AsColor();
Math::Vector AsPoint(); glm::vec3 AsPoint();
ObjectType AsObjectType(); ObjectType AsObjectType();
DriveType AsDriveType(); DriveType AsDriveType();
ToolType AsToolType(); ToolType AsToolType();
@ -103,7 +103,7 @@ public:
bool AsBool(bool def); bool AsBool(bool def);
std::string AsPath(const std::string defaultDir, std::string def); std::string AsPath(const std::string defaultDir, std::string def);
Gfx::Color AsColor(Gfx::Color def); Gfx::Color AsColor(Gfx::Color def);
Math::Vector AsPoint(Math::Vector def); glm::vec3 AsPoint(glm::vec3 def);
ObjectType AsObjectType(ObjectType def); ObjectType AsObjectType(ObjectType def);
DriveType AsDriveType(DriveType def); DriveType AsDriveType(DriveType def);
ToolType AsToolType(ToolType def); ToolType AsToolType(ToolType def);

View File

@ -34,7 +34,7 @@
void CObjectCondition::Read(CLevelParserLine* line) void CObjectCondition::Read(CLevelParserLine* line)
{ {
this->pos = line->GetParam("pos")->AsPoint(Math::Vector(0.0f, 0.0f, 0.0f))*g_unit; this->pos = line->GetParam("pos")->AsPoint(glm::vec3(0.0f, 0.0f, 0.0f))*g_unit;
this->dist = line->GetParam("dist")->AsFloat(std::numeric_limits<float>::infinity())*g_unit; this->dist = line->GetParam("dist")->AsFloat(std::numeric_limits<float>::infinity())*g_unit;
this->type = line->GetParam("type")->AsObjectType(OBJECT_NULL); this->type = line->GetParam("type")->AsObjectType(OBJECT_NULL);
this->powermin = line->GetParam("powermin")->AsFloat(-1); this->powermin = line->GetParam("powermin")->AsFloat(-1);
@ -96,14 +96,14 @@ bool CObjectCondition::CheckForObject(CObject* obj)
} }
if (energyLevel < this->powermin || energyLevel > this->powermax) return false; if (energyLevel < this->powermin || energyLevel > this->powermax) return false;
Math::Vector oPos; glm::vec3 oPos{};
if (IsObjectBeingTransported(obj)) if (IsObjectBeingTransported(obj))
oPos = dynamic_cast<CTransportableObject&>(*obj).GetTransporter()->GetPosition(); oPos = dynamic_cast<CTransportableObject&>(*obj).GetTransporter()->GetPosition();
else else
oPos = obj->GetPosition(); oPos = obj->GetPosition();
oPos.y = 0.0f; oPos.y = 0.0f;
Math::Vector bPos = this->pos; glm::vec3 bPos = this->pos;
bPos.y = 0.0f; bPos.y = 0.0f;
if (Math::DistanceProjected(oPos, bPos) <= this->dist) if (Math::DistanceProjected(oPos, bPos) <= this->dist)

View File

@ -27,12 +27,12 @@
#include "common/error.h" #include "common/error.h"
#include "common/global.h" #include "common/global.h"
#include "math/vector.h"
#include "object/drive_type.h" #include "object/drive_type.h"
#include "object/object_type.h" #include "object/object_type.h"
#include "object/tool_type.h" #include "object/tool_type.h"
#include <glm/glm.hpp>
class CLevelParserLine; class CLevelParserLine;
class CObject; class CObject;
@ -43,7 +43,7 @@ class CObject;
class CObjectCondition class CObjectCondition
{ {
public: public:
Math::Vector pos = Math::Vector(0.0f, 0.0f, 0.0f)*g_unit; glm::vec3 pos = glm::vec3(0.0f, 0.0f, 0.0f) * g_unit;
float dist = 8.0f*g_unit; float dist = 8.0f*g_unit;
ObjectType type = OBJECT_NULL; ObjectType type = OBJECT_NULL;
float powermin = -1; // wins if energy cell >= float powermin = -1; // wins if energy cell >=

View File

@ -127,7 +127,7 @@ void CScoreboard::AddPoints(int team, int points)
std::string text; std::string text;
GetResource(RES_ERR, INFO_TEAM_SCORE, text); GetResource(RES_ERR, INFO_TEAM_SCORE, text);
text = StrUtils::Format(text.c_str(), main->GetTeamName(team).c_str(), points); text = StrUtils::Format(text.c_str(), main->GetTeamName(team).c_str(), points);
main->GetDisplayText()->DisplayText(text.c_str(), Math::Vector(0.0f,0.0f,0.0f), 15.0f, 60.0f, 10.0f, Ui::TT_WARNING); main->GetDisplayText()->DisplayText(text.c_str(), glm::vec3(0.0f,0.0f,0.0f), 15.0f, 60.0f, 10.0f, Ui::TT_WARNING);
m_score[team].points += points; m_score[team].points += points;
m_score[team].time = main->GetGameTime(); m_score[team].time = main->GetGameTime();