diff --git a/include/Core/Engine.h b/include/Core/Engine.h index 2379d04..2615b2a 100755 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -150,7 +150,7 @@ public: std::shared_ptr physics = m_World->AddComponent(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::Pad | CollisionLayer::Brick | CollisionLayer::Wall); physics->Calculate = true; //auto plight = m_World->AddComponent(ent); @@ -314,8 +314,8 @@ public: std::shared_ptr physics = m_World->AddComponent(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::Ball | CollisionLayer::Brick); m_World->CommitEntity(topWall); } @@ -335,8 +335,8 @@ public: std::shared_ptr physics = m_World->AddComponent(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::Ball | CollisionLayer::Brick); m_World->CommitEntity(leftWall); } @@ -356,8 +356,8 @@ public: std::shared_ptr physics = m_World->AddComponent(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::Ball | CollisionLayer::Brick); m_World->CommitEntity(rightWall); } @@ -584,6 +584,8 @@ private: e.IsAmbient = true; m_EventBroker->Publish(e); } + + return true; }; double m_LastTime; }; diff --git a/include/Core/World.h b/include/Core/World.h index 5c66d52..bbbae47 100644 --- a/include/Core/World.h +++ b/include/Core/World.h @@ -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. diff --git a/include/Game/FPSCounter.h b/include/Game/FPSCounter.h index 0f7f303..83e3e77 100644 --- a/include/Game/FPSCounter.h +++ b/include/Game/FPSCounter.h @@ -1,6 +1,8 @@ #ifndef GUI_FPSCOUNTER_H__ #define GUI_FPSCOUNTER_H__ +#include + #include "GUI/Frame.h" #include "GUI/NumberFrame.h" diff --git a/include/Game/HUD.h b/include/Game/HUD.h index 52711e8..b3940b3 100644 --- a/include/Game/HUD.h +++ b/include/Game/HUD.h @@ -59,6 +59,7 @@ private: bool OnScore(const Events::ScoreEvent& event) { m_ScoreNumberFrame->SetNumber(m_ScoreNumberFrame->Number() + event.Score); + return true; } }; diff --git a/include/Physics/CParticle.h b/include/Physics/CParticle.h index baec66d..faa8267 100755 --- a/include/Physics/CParticle.h +++ b/include/Physics/CParticle.h @@ -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::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 + ); }; } diff --git a/include/Physics/CPhysics.h b/include/Physics/CPhysics.h index 73d05cf..e1878f4 100644 --- a/include/Physics/CPhysics.h +++ b/include/Physics/CPhysics.h @@ -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::Pad + | CollisionLayer::Ball + | CollisionLayer::Brick + | CollisionLayer::Water + | CollisionLayer::PowerUp + | CollisionLayer::Wall + | CollisionLayer::Other + ); }; } diff --git a/include/Physics/PhysicsSystem.h b/include/Physics/PhysicsSystem.h index 8a9a4bd..eed4cb6 100755 --- a/include/Physics/PhysicsSystem.h +++ b/include/Physics/PhysicsSystem.h @@ -86,7 +86,7 @@ private: struct ParticleEmitter { std::vector ParticleSystem; - std::vector ParticleEmitter; + std::vector Emitter; std::vector ParticleTemplate; }; ParticleEmitter m_ParticleEmitters; @@ -95,7 +95,7 @@ private: struct Impulse { b2Body* Body; - b2Vec2 Impulse; + b2Vec2 Vector; b2Vec2 Point; }; std::list m_Impulses; diff --git a/src/game/Core/World.cpp b/src/game/Core/World.cpp index 2ff460a..f0f7e8c 100644 --- a/src/game/Core/World.cpp +++ b/src/game/Core/World.cpp @@ -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) { diff --git a/src/game/Game/BallSystem.cpp b/src/game/Game/BallSystem.cpp index 53206fb..c49e712 100644 --- a/src/game/Game/BallSystem.cpp +++ b/src/game/Game/BallSystem.cpp @@ -33,7 +33,7 @@ void dd::Systems::BallSystem::Initialize() std::shared_ptr ballTemplate = m_World->AddComponent(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::Pad | CollisionLayer::Brick | CollisionLayer::Wall); physics->Calculate = true; m_World->CommitEntity(ent); diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index d8c1765..31ca30d 100755 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -203,7 +203,7 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) auto physicsComponent = m_World->GetComponent(entityBrick); physicsComponent->GravityScale = 1.f; - physicsComponent->Mask = CollisionLayer::Type::Water | CollisionLayer::Type::Wall; + physicsComponent->Mask = static_cast(CollisionLayer::Water | CollisionLayer::Wall); auto transformComponentBrick = m_World->GetComponent(entityBrick); auto transformComponentBall = m_World->GetComponent(entityBall); diff --git a/src/game/Game/PadSystem.cpp b/src/game/Game/PadSystem.cpp index 34e5bb9..acee604 100755 --- a/src/game/Game/PadSystem.cpp +++ b/src/game/Game/PadSystem.cpp @@ -38,7 +38,7 @@ void dd::Systems::PadSystem::Initialize() auto physics = m_World->AddComponent(ent); physics->Static = false; physics->Category = CollisionLayer::Type::Pad; - physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::PowerUp; + physics->Mask = static_cast(CollisionLayer::Ball | CollisionLayer::PowerUp); physics->Calculate = true; auto cModel = m_World->AddComponent(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) diff --git a/src/game/Physics/PhysicsSystem.cpp b/src/game/Physics/PhysicsSystem.cpp index e298131..50a6900 100755 --- a/src/game/Physics/PhysicsSystem.cpp +++ b/src/game/Physics/PhysicsSystem.cpp @@ -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); }