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