diff --git a/include/Engine/Core/ECaptured.h b/include/Engine/Core/ECaptured.h
index 48771cd7..047c5d7d 100644
--- a/include/Engine/Core/ECaptured.h
+++ b/include/Engine/Core/ECaptured.h
@@ -13,7 +13,8 @@ struct Captured : Event
{
int TeamNumberThatCapturedCapturePoint;
EntityID CapturePointTakenID;
- EntityWrapper NextCapturePoint;
+ EntityWrapper BlueTeamNextCapturePoint;
+ EntityWrapper RedTeamNextCapturePoint;
};
}
diff --git a/resources/Schema/Entities/NewMap2version3NEW.xml b/resources/Schema/Entities/NewMap2version3NEW.xml
index d24675cd..5b224de3 100644
--- a/resources/Schema/Entities/NewMap2version3NEW.xml
+++ b/resources/Schema/Entities/NewMap2version3NEW.xml
@@ -810,6 +810,7 @@
+
8
@@ -820,9 +821,8 @@
-
+
-
@@ -852,6 +852,7 @@
+
8
@@ -862,9 +863,8 @@
-
+
-
@@ -894,6 +894,7 @@
+
8
@@ -904,9 +905,8 @@
-
+
-
@@ -936,6 +936,7 @@
+
8
@@ -946,9 +947,8 @@
-
+
-
@@ -978,6 +978,7 @@
+
8
@@ -988,9 +989,8 @@
-
+
-
@@ -1020,6 +1020,7 @@
+
8
@@ -1030,9 +1031,8 @@
-
+
-
@@ -1062,6 +1062,7 @@
+
8
@@ -1072,9 +1073,8 @@
-
+
-
@@ -2326,6 +2326,7 @@
+
8
@@ -2336,9 +2337,8 @@
-
+
-
@@ -2368,6 +2368,7 @@
+
8
@@ -2378,9 +2379,8 @@
-
+
-
@@ -2865,6 +2865,7 @@
+
8
@@ -2875,9 +2876,8 @@
-
+
-
@@ -2907,6 +2907,7 @@
+
8
@@ -2917,9 +2918,8 @@
-
+
-
@@ -2949,6 +2949,7 @@
+
8
@@ -2959,9 +2960,8 @@
-
+
-
@@ -2991,6 +2991,7 @@
+
8
@@ -3001,9 +3002,8 @@
-
+
-
@@ -3033,6 +3033,7 @@
+
8
@@ -3043,9 +3044,8 @@
-
+
-
@@ -3075,6 +3075,7 @@
+
8
@@ -3085,9 +3086,8 @@
-
+
-
@@ -3117,6 +3117,7 @@
+
8
@@ -3127,9 +3128,8 @@
-
+
-
@@ -4225,6 +4225,7 @@
-15
4
+
Models/Core/UnitCylinder.mesh
@@ -4239,7 +4240,6 @@
-
@@ -4261,6 +4261,7 @@
3
+
Models/Core/UnitCylinder.mesh
@@ -4271,7 +4272,6 @@
-
@@ -4293,6 +4293,7 @@
2
+
Models/Core/UnitCylinder.mesh
@@ -4303,7 +4304,6 @@
-
@@ -4325,6 +4325,7 @@
1
+
Models/Core/UnitCylinder.mesh
@@ -4335,7 +4336,6 @@
-
@@ -4360,6 +4360,7 @@
15
+
Models/Core/UnitCylinder.mesh
@@ -4374,7 +4375,6 @@
-
@@ -4445,7 +4445,6 @@
1
- false
diff --git a/src/Game/Systems/CapturePointArrowHUDSystem.cpp b/src/Game/Systems/CapturePointArrowHUDSystem.cpp
index bf6951a2..9e327a43 100644
--- a/src/Game/Systems/CapturePointArrowHUDSystem.cpp
+++ b/src/Game/Systems/CapturePointArrowHUDSystem.cpp
@@ -11,9 +11,9 @@ CapturePointArrowHUDSystem::CapturePointArrowHUDSystem(SystemParams params)
void CapturePointArrowHUDSystem::Update(double dt)
{
bool loadCheck = true;
- int redTeam;
- int blueTeam;
- int spectatorTeam;
+ int redTeamEnum;
+ int blueTeamEnum;
+ int spectatorTeamEnum;
//Get list for all CapturePointArrowHUDComponents
auto arrowHUDs = m_World->GetComponents("CapturePointArrowHUD");
@@ -35,9 +35,9 @@ void CapturePointArrowHUDSystem::Update(double dt)
int currentTeam = (int)cTeam["Team"];
if (loadCheck) {
- redTeam = (int)cTeam["Team"].Enum("Red");
- blueTeam = (int)cTeam["Team"].Enum("Blue");
- spectatorTeam = (int)cTeam["Team"].Enum("Spectator");
+ redTeamEnum = (int)cTeam["Team"].Enum("Red");
+ blueTeamEnum = (int)cTeam["Team"].Enum("Blue");
+ spectatorTeamEnum = (int)cTeam["Team"].Enum("Spectator");
loadCheck = false;
@@ -66,21 +66,21 @@ void CapturePointArrowHUDSystem::Update(double dt)
int currentOwner = (int)capturePointEntity["Team"]["Team"];
- if(currentOwner != redTeam) {
+ if(currentOwner != redTeamEnum) {
//This capturePoint is not owned by the red team and is therefor an eligible target for red team
glm::vec3 targetPos = Transform::AbsolutePosition(capturePointEntity);
redTargets.insert(std::pair(capturePointID, targetPos));
}
- if(currentOwner != blueTeam) {
+ if(currentOwner != blueTeamEnum) {
//This capturePoint is not owned by the blue team and is therefor an eligible target for blue team
glm::vec3 targetPos = Transform::AbsolutePosition(capturePointEntity);
blueTargets.insert(std::pair(capturePointID, targetPos));
}
- if(homePointTeam == blueTeam) {
+ if(homePointTeam == blueTeamEnum) {
//CP is the home point for blue team.
homeBlue = capturePointEntity;
- } else if (homePointTeam == redTeam) {
+ } else if (homePointTeam == redTeamEnum) {
//CP is the home point for red team.
homeRed = capturePointEntity;
}
@@ -149,14 +149,12 @@ void CapturePointArrowHUDSystem::Update(double dt)
//Untill this is awailable we will just use the hardcoded value in the component.
//This will also give us a position, so we wont need to loop through all capturePoints.
glm::vec3 pos;
- if(currentTeam == redTeam) {
+ if(currentTeam == redTeamEnum) {
pos = m_RedTeamCurrentTarget;
- } else if (currentTeam == blueTeam) {
+ } else if (currentTeam == blueTeamEnum) {
pos = m_BlueTeamCurrentTarget;
}
- //pos = currentTeam == redTeam ? m_RedTeamCurrentTarget : currentTeam == blueTeam ? m_BlueTeamCurrentTarget : glm::vec3(0.f);
-
glm::vec3& arrowOri = arrowEntity["Transform"]["Orientation"];
glm::vec3 lookVector = glm::normalize(Transform::AbsolutePosition(arrowEntity) - pos); //Maybe should be player instead
float pitch = std::asin(-lookVector.y);
@@ -173,21 +171,13 @@ void CapturePointArrowHUDSystem::Update(double dt)
bool CapturePointArrowHUDSystem::OnCapturePointCaptured(Events::Captured& e)
{
- if (!e.NextCapturePoint.HasComponent("Team")) {
+ if(!e.BlueTeamNextCapturePoint.Valid() || !e.RedTeamNextCapturePoint.Valid()) {
return 0;
}
- auto cTeam = e.NextCapturePoint["Team"];
-
- int redTeam = (int)cTeam["Team"].Enum("Red");
- int blueTeam = (int)cTeam["Team"].Enum("Blue");
- int spectatorTeam = (int)cTeam["Team"].Enum("Spectator");
-
- if(e.TeamNumberThatCapturedCapturePoint == redTeam) {
- m_RedTeamCurrentTarget = Transform::AbsolutePosition(e.NextCapturePoint);
- } else if (e.TeamNumberThatCapturedCapturePoint == blueTeam) {
- m_BlueTeamCurrentTarget = Transform::AbsolutePosition(e.NextCapturePoint);
- }
+ m_RedTeamCurrentTarget = Transform::AbsolutePosition(e.RedTeamNextCapturePoint);
+ m_BlueTeamCurrentTarget = Transform::AbsolutePosition(e.BlueTeamNextCapturePoint);
m_InitialtargetsSet = true;
+ return 0;
}
diff --git a/src/Game/Systems/CapturePointSystem.cpp b/src/Game/Systems/CapturePointSystem.cpp
index 6cbb1b2f..0ff294b9 100644
--- a/src/Game/Systems/CapturePointSystem.cpp
+++ b/src/Game/Systems/CapturePointSystem.cpp
@@ -104,9 +104,8 @@ void CapturePointSystem::UpdateComponent(EntityWrapper& capturePointEntity, Comp
}
if (m_RecentlyCapturedNeedNextCapturePointNow) {
//TODO: Next capture point for both teams
- m_CapturedEvent.NextCapturePoint = m_CapturedEvent.TeamNumberThatCapturedCapturePoint == blueTeam ?
- m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Blue"]] :
- m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Red"]];
+ m_CapturedEvent.BlueTeamNextCapturePoint = m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Blue"]];
+ m_CapturedEvent.RedTeamNextCapturePoint = m_CapturePointNumberToEntityMap[nextPossibleCapturePoint["Red"]];
m_EventBroker->Publish(m_CapturedEvent);
m_RecentlyCapturedNeedNextCapturePointNow = false;
}