MSVC12 compiler compability fixes
This commit is contained in:
@@ -150,7 +150,7 @@ public:
|
|||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(ent);
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(ent);
|
||||||
physics->Static = false;
|
physics->Static = false;
|
||||||
physics->Category = CollisionLayer::Type::Ball;
|
physics->Category = CollisionLayer::Type::Ball;
|
||||||
physics->Mask = CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall;
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Pad | CollisionLayer::Brick | CollisionLayer::Wall);
|
||||||
physics->Calculate = true;
|
physics->Calculate = true;
|
||||||
|
|
||||||
//auto plight = m_World->AddComponent<Components::PointLight>(ent);
|
//auto plight = m_World->AddComponent<Components::PointLight>(ent);
|
||||||
@@ -314,8 +314,8 @@ public:
|
|||||||
|
|
||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(topWall);
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(topWall);
|
||||||
physics->Static = true;
|
physics->Static = true;
|
||||||
physics->Category = CollisionLayer::Type::Wall;
|
physics->Category = CollisionLayer::Wall;
|
||||||
physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick;
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick);
|
||||||
|
|
||||||
m_World->CommitEntity(topWall);
|
m_World->CommitEntity(topWall);
|
||||||
}
|
}
|
||||||
@@ -335,8 +335,8 @@ public:
|
|||||||
|
|
||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(leftWall);
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(leftWall);
|
||||||
physics->Static = true;
|
physics->Static = true;
|
||||||
physics->Category = CollisionLayer::Type::Wall;
|
physics->Category = CollisionLayer::Wall;
|
||||||
physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick;
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick);
|
||||||
|
|
||||||
m_World->CommitEntity(leftWall);
|
m_World->CommitEntity(leftWall);
|
||||||
}
|
}
|
||||||
@@ -356,8 +356,8 @@ public:
|
|||||||
|
|
||||||
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(rightWall);
|
std::shared_ptr<Components::Physics> physics = m_World->AddComponent<Components::Physics>(rightWall);
|
||||||
physics->Static = true;
|
physics->Static = true;
|
||||||
physics->Category = CollisionLayer::Type::Wall;
|
physics->Category = CollisionLayer::Wall;
|
||||||
physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick;
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::Brick);
|
||||||
|
|
||||||
m_World->CommitEntity(rightWall);
|
m_World->CommitEntity(rightWall);
|
||||||
}
|
}
|
||||||
@@ -584,6 +584,8 @@ private:
|
|||||||
e.IsAmbient = true;
|
e.IsAmbient = true;
|
||||||
m_EventBroker->Publish(e);
|
m_EventBroker->Publish(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
};
|
};
|
||||||
double m_LastTime;
|
double m_LastTime;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ public:
|
|||||||
|
|
||||||
// Triggers commit events in systems
|
// Triggers commit events in systems
|
||||||
// TODO: Replace completely by EComponentCreated?
|
// TODO: Replace completely by EComponentCreated?
|
||||||
int CommitEntity(EntityID entity);
|
void CommitEntity(EntityID entity);
|
||||||
|
|
||||||
/** Get all components of a specific type.
|
/** Get all components of a specific type.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#ifndef GUI_FPSCOUNTER_H__
|
#ifndef GUI_FPSCOUNTER_H__
|
||||||
#define GUI_FPSCOUNTER_H__
|
#define GUI_FPSCOUNTER_H__
|
||||||
|
|
||||||
|
#include <numeric>
|
||||||
|
|
||||||
#include "GUI/Frame.h"
|
#include "GUI/Frame.h"
|
||||||
#include "GUI/NumberFrame.h"
|
#include "GUI/NumberFrame.h"
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ private:
|
|||||||
bool OnScore(const Events::ScoreEvent& event)
|
bool OnScore(const Events::ScoreEvent& event)
|
||||||
{
|
{
|
||||||
m_ScoreNumberFrame->SetNumber(m_ScoreNumberFrame->Number() + event.Score);
|
m_ScoreNumberFrame->SetNumber(m_ScoreNumberFrame->Number() + event.Score);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+38
-38
@@ -7,24 +7,24 @@ namespace dd {
|
|||||||
namespace ParticleFlags {
|
namespace ParticleFlags {
|
||||||
|
|
||||||
enum Type {
|
enum Type {
|
||||||
waterParticle = 0,
|
Water = 0,
|
||||||
zombieParticle = 1 << 1,
|
Zombie = 1 << 1,
|
||||||
wallParticle = 1 << 2,
|
Wall = 1 << 2,
|
||||||
springParticle = 1 << 3,
|
Spring = 1 << 3,
|
||||||
elasticParticle = 1 << 4,
|
Elastic = 1 << 4,
|
||||||
viscousParticle = 1 << 5,
|
Viscous = 1 << 5,
|
||||||
powderParticle = 1 << 6,
|
Powder = 1 << 6,
|
||||||
tensileParticle = 1 << 7,
|
Tensile = 1 << 7,
|
||||||
colorMixingParticle = 1 << 8,
|
ColorMixing = 1 << 8,
|
||||||
destructionListenerParticle = 1 << 9,
|
DestructionListener = 1 << 9,
|
||||||
barrierParticle = 1 << 10,
|
Barrier = 1 << 10,
|
||||||
staticPressureParticle = 1 << 11,
|
StaticPressure = 1 << 11,
|
||||||
reactiveParticle = 1 << 12,
|
Reactive = 1 << 12,
|
||||||
repulsiveParticle = 1 << 13,
|
Repulsive = 1 << 13,
|
||||||
fixtureContactListenerParticle = 1 << 14,
|
FixtureContactListener = 1 << 14,
|
||||||
particleContactListenerParticle = 1 << 15,
|
ParticleContactListener = 1 << 15,
|
||||||
fixtureContactFilterParticle = 1 << 16,
|
FixtureContactFilter = 1 << 16,
|
||||||
particleContactFilterParticle = 1 << 17
|
ParticleContactFilter = 1 << 17
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,26 +36,26 @@ struct Particle : public Component
|
|||||||
float Radius = 0.5f;
|
float Radius = 0.5f;
|
||||||
float LifeTime = 5.0f;
|
float LifeTime = 5.0f;
|
||||||
|
|
||||||
ParticleFlags::Type Flags =
|
ParticleFlags::Type Flags = static_cast<ParticleFlags::Type>(
|
||||||
ParticleFlags::Type::waterParticle |
|
ParticleFlags::Water
|
||||||
ParticleFlags::Type::zombieParticle |
|
| ParticleFlags::Zombie
|
||||||
ParticleFlags::Type::wallParticle |
|
| ParticleFlags::Wall
|
||||||
ParticleFlags::Type::springParticle |
|
| ParticleFlags::Spring
|
||||||
ParticleFlags::Type::elasticParticle |
|
| ParticleFlags::Elastic
|
||||||
ParticleFlags::Type::viscousParticle |
|
| ParticleFlags::Viscous
|
||||||
ParticleFlags::Type::powderParticle |
|
| ParticleFlags::Powder
|
||||||
ParticleFlags::Type::tensileParticle |
|
| ParticleFlags::Tensile
|
||||||
ParticleFlags::Type::colorMixingParticle |
|
| ParticleFlags::ColorMixing
|
||||||
ParticleFlags::Type::destructionListenerParticle |
|
| ParticleFlags::DestructionListener
|
||||||
ParticleFlags::Type::barrierParticle |
|
| ParticleFlags::Barrier
|
||||||
ParticleFlags::Type::staticPressureParticle |
|
| ParticleFlags::StaticPressure
|
||||||
ParticleFlags::Type::reactiveParticle |
|
| ParticleFlags::Reactive
|
||||||
ParticleFlags::Type::repulsiveParticle |
|
| ParticleFlags::Repulsive
|
||||||
ParticleFlags::Type::fixtureContactListenerParticle |
|
| ParticleFlags::FixtureContactListener
|
||||||
ParticleFlags::Type::particleContactListenerParticle |
|
| ParticleFlags::ParticleContactListener
|
||||||
ParticleFlags::Type::fixtureContactFilterParticle |
|
| ParticleFlags::FixtureContactFilter
|
||||||
ParticleFlags::Type::particleContactFilterParticle;
|
| ParticleFlags::ParticleContactFilter
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,14 +27,15 @@ struct Physics: public Component
|
|||||||
bool Calculate = false;
|
bool Calculate = false;
|
||||||
float GravityScale = 0.f;
|
float GravityScale = 0.f;
|
||||||
CollisionLayer::Type Category = CollisionLayer::Type::Other;
|
CollisionLayer::Type Category = CollisionLayer::Type::Other;
|
||||||
CollisionLayer::Type Mask =
|
CollisionLayer::Type Mask = static_cast<CollisionLayer::Type>(
|
||||||
CollisionLayer::Type::Pad |
|
CollisionLayer::Pad
|
||||||
CollisionLayer::Type::Ball |
|
| CollisionLayer::Ball
|
||||||
CollisionLayer::Type::Brick |
|
| CollisionLayer::Brick
|
||||||
CollisionLayer::Type::Water |
|
| CollisionLayer::Water
|
||||||
CollisionLayer::Type::PowerUp |
|
| CollisionLayer::PowerUp
|
||||||
CollisionLayer::Type::Wall |
|
| CollisionLayer::Wall
|
||||||
CollisionLayer::Type::Other;
|
| CollisionLayer::Other
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ private:
|
|||||||
struct ParticleEmitter
|
struct ParticleEmitter
|
||||||
{
|
{
|
||||||
std::vector<b2ParticleSystem*> ParticleSystem;
|
std::vector<b2ParticleSystem*> ParticleSystem;
|
||||||
std::vector<EntityID> ParticleEmitter;
|
std::vector<EntityID> Emitter;
|
||||||
std::vector<EntityID> ParticleTemplate;
|
std::vector<EntityID> ParticleTemplate;
|
||||||
};
|
};
|
||||||
ParticleEmitter m_ParticleEmitters;
|
ParticleEmitter m_ParticleEmitters;
|
||||||
@@ -95,7 +95,7 @@ private:
|
|||||||
struct Impulse
|
struct Impulse
|
||||||
{
|
{
|
||||||
b2Body* Body;
|
b2Body* Body;
|
||||||
b2Vec2 Impulse;
|
b2Vec2 Vector;
|
||||||
b2Vec2 Point;
|
b2Vec2 Point;
|
||||||
};
|
};
|
||||||
std::list<Impulse> m_Impulses;
|
std::list<Impulse> m_Impulses;
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ void dd::World::Initialize()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int dd::World::CommitEntity(EntityID entity)
|
void dd::World::CommitEntity(EntityID entity)
|
||||||
{
|
{
|
||||||
for (auto pair : m_Systems)
|
for (auto pair : m_Systems)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ void dd::Systems::BallSystem::Initialize()
|
|||||||
std::shared_ptr<Components::Template> ballTemplate = m_World->AddComponent<Components::Template>(ent);
|
std::shared_ptr<Components::Template> ballTemplate = m_World->AddComponent<Components::Template>(ent);
|
||||||
physics->Static = false;
|
physics->Static = false;
|
||||||
physics->Category = CollisionLayer::Type::Ball;
|
physics->Category = CollisionLayer::Type::Ball;
|
||||||
physics->Mask = CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall;
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Pad | CollisionLayer::Brick | CollisionLayer::Wall);
|
||||||
physics->Calculate = true;
|
physics->Calculate = true;
|
||||||
m_World->CommitEntity(ent);
|
m_World->CommitEntity(ent);
|
||||||
|
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event)
|
|||||||
|
|
||||||
auto physicsComponent = m_World->GetComponent<Components::Physics>(entityBrick);
|
auto physicsComponent = m_World->GetComponent<Components::Physics>(entityBrick);
|
||||||
physicsComponent->GravityScale = 1.f;
|
physicsComponent->GravityScale = 1.f;
|
||||||
physicsComponent->Mask = CollisionLayer::Type::Water | CollisionLayer::Type::Wall;
|
physicsComponent->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Water | CollisionLayer::Wall);
|
||||||
|
|
||||||
auto transformComponentBrick = m_World->GetComponent<Components::Transform>(entityBrick);
|
auto transformComponentBrick = m_World->GetComponent<Components::Transform>(entityBrick);
|
||||||
auto transformComponentBall = m_World->GetComponent<Components::Transform>(entityBall);
|
auto transformComponentBall = m_World->GetComponent<Components::Transform>(entityBall);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ void dd::Systems::PadSystem::Initialize()
|
|||||||
auto physics = m_World->AddComponent<Components::Physics>(ent);
|
auto physics = m_World->AddComponent<Components::Physics>(ent);
|
||||||
physics->Static = false;
|
physics->Static = false;
|
||||||
physics->Category = CollisionLayer::Type::Pad;
|
physics->Category = CollisionLayer::Type::Pad;
|
||||||
physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::PowerUp;
|
physics->Mask = static_cast<CollisionLayer::Type>(CollisionLayer::Ball | CollisionLayer::PowerUp);
|
||||||
physics->Calculate = true;
|
physics->Calculate = true;
|
||||||
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
auto cModel = m_World->AddComponent<Components::Model>(ent);
|
||||||
cModel->ModelFile = "Models/Submarine2.obj";
|
cModel->ModelFile = "Models/Submarine2.obj";
|
||||||
@@ -191,6 +191,7 @@ bool dd::Systems::PadSystem::OnContact(const dd::Events::Contact &event)
|
|||||||
|
|
||||||
//transform->Velocity = glm::vec3(movementX, movementY, 0.f);
|
//transform->Velocity = glm::vec3(movementX, movementY, 0.f);
|
||||||
*/
|
*/
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dd::Systems::PadSystem::OnContactPowerUp(const dd::Events::Contact &event)
|
bool dd::Systems::PadSystem::OnContactPowerUp(const dd::Events::Contact &event)
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ bool dd::Systems::PhysicsSystem::SetImpulse(const Events::SetImpulse &event)
|
|||||||
|
|
||||||
Impulse i;
|
Impulse i;
|
||||||
i.Body = body;
|
i.Body = body;
|
||||||
i.Impulse = impulse;
|
i.Vector = impulse;
|
||||||
i.Point = point;
|
i.Point = point;
|
||||||
|
|
||||||
m_Impulses.push_back(i);
|
m_Impulses.push_back(i);
|
||||||
@@ -102,7 +102,7 @@ void dd::Systems::PhysicsSystem::Update(double dt) {
|
|||||||
UpdateParticleEmitters(dt);
|
UpdateParticleEmitters(dt);
|
||||||
|
|
||||||
for (auto i : m_Impulses) {
|
for (auto i : m_Impulses) {
|
||||||
i.Body->ApplyLinearImpulse(i.Impulse, i.Point, true);
|
i.Body->ApplyLinearImpulse(i.Vector, i.Point, true);
|
||||||
}
|
}
|
||||||
m_Impulses.clear();
|
m_Impulses.clear();
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ void dd::Systems::PhysicsSystem::Update(double dt) {
|
|||||||
b2Vec2 *positionBuffer = m_ParticleSystem[e]->GetPositionBuffer();
|
b2Vec2 *positionBuffer = m_ParticleSystem[e]->GetPositionBuffer();
|
||||||
for (auto i : m_EntitiesToParticleHandle[e]){
|
for (auto i : m_EntitiesToParticleHandle[e]){
|
||||||
EntityID entity = i.first;
|
EntityID entity = i.first;
|
||||||
b2ParticleHandle *particleH = i.second;
|
const b2ParticleHandle *particleH = i.second;
|
||||||
|
|
||||||
b2Vec2 positionB2 = positionBuffer[particleH->GetIndex()];
|
b2Vec2 positionB2 = positionBuffer[particleH->GetIndex()];
|
||||||
glm::vec2 position = glm::vec2(positionB2.x, positionB2.y);
|
glm::vec2 position = glm::vec2(positionB2.x, positionB2.y);
|
||||||
@@ -337,7 +337,7 @@ void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e)
|
|||||||
void dd::Systems::PhysicsSystem::UpdateParticleEmitters(double dt)
|
void dd::Systems::PhysicsSystem::UpdateParticleEmitters(double dt)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_ParticleEmitters.ParticleSystem.size(); i++) {
|
for (int i = 0; i < m_ParticleEmitters.ParticleSystem.size(); i++) {
|
||||||
auto e = m_ParticleEmitters.ParticleEmitter[i];
|
auto e = m_ParticleEmitters.Emitter[i];
|
||||||
auto pt = m_ParticleEmitters.ParticleTemplate[i];
|
auto pt = m_ParticleEmitters.ParticleTemplate[i];
|
||||||
auto ps = m_ParticleEmitters.ParticleSystem[i];
|
auto ps = m_ParticleEmitters.ParticleSystem[i];
|
||||||
|
|
||||||
@@ -407,7 +407,7 @@ void dd::Systems::PhysicsSystem::CreateParticleEmitter(EntityID entity)
|
|||||||
}
|
}
|
||||||
//TODO: Skicka med fler flaggor till particlesystemet;
|
//TODO: Skicka med fler flaggor till particlesystemet;
|
||||||
m_ParticleEmitters.ParticleSystem.push_back(CreateParticleSystem(particle->Radius, 0.f));
|
m_ParticleEmitters.ParticleSystem.push_back(CreateParticleSystem(particle->Radius, 0.f));
|
||||||
m_ParticleEmitters.ParticleEmitter.push_back(entity);
|
m_ParticleEmitters.Emitter.push_back(entity);
|
||||||
m_ParticleEmitters.ParticleTemplate.push_back(childEntity);
|
m_ParticleEmitters.ParticleTemplate.push_back(childEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user