Skip to content

Commit 825a4f5

Browse files
committed
Merge branch 'master' of github.com:teamfisk/AgileBreakOut
2 parents ee41346 + e219063 commit 825a4f5

36 files changed

+3988
-197
lines changed

assets/DefaultConfig.ini

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[Debug]
2-
SkipStory=false
32
LogLevel=1
3+
SkipPreload=false
4+
SkipMenu=false
45

56
[Audio]
67
SFXVolume=0.5
@@ -9,4 +10,10 @@ BGMVolume=0.5
910
[Video]
1011
Fullscreen=false
1112
Width=675
12-
Height=1080[Water]Radius=0.3[Cheat]GodMode=false
13+
Height=1080
14+
15+
[Water]
16+
Radius=0.3
17+
18+
[Cheat]
19+
GodMode=false

assets/Models/Sid/Sid_Flying.dae

Lines changed: 1171 additions & 0 deletions
Large diffs are not rendered by default.

assets/Models/Sid/Sid_Jump.dae

Lines changed: 1171 additions & 0 deletions
Large diffs are not rendered by default.

assets/Models/Sid/Sid_Shoot.dae

Lines changed: 1171 additions & 0 deletions
Large diffs are not rendered by default.

assets/Models/Sid/SquidTexture.png

551 Bytes
Loading

assets/Sounds/Boss/boss-hit.wav

0 Bytes
Binary file not shown.

include/Core/Engine.h

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@
3434
#include "CTemplate.h"
3535
#include "Core/ConfigFile.h"
3636
#include "Core/EventBroker.h"
37+
#include "Input/InputSystem.h"
3738
#include "Rendering/CModel.h"
3839
#include "Rendering/CSprite.h"
3940
#include "Rendering/CPointLight.h"
41+
#include "Rendering/CCamera.h"
4042
#include "Transform/TransformSystem.h"
4143
#include "Sound/SoundSystem.h"
4244
#include "Sound/CCollisionSound.h"
@@ -67,6 +69,7 @@
6769

6870
#include "Game/BrickComponents.h"
6971

72+
#include "Game/ScreenShakeSystem.h"
7073
#include "Game/EScreenShake.h"
7174

7275
#include "Physics/PhysicsSystem.h"
@@ -147,6 +150,7 @@ class Engine
147150

148151
m_World->ComponentFactory.Register<Components::Sprite>();
149152

153+
m_World->ComponentFactory.Register<Components::Camera>();
150154
m_World->ComponentFactory.Register<Components::RectangleShape>();
151155
m_World->ComponentFactory.Register<Components::Physics>();
152156
m_World->ComponentFactory.Register<Components::Ball>();
@@ -173,6 +177,9 @@ class Engine
173177
m_World->ComponentFactory.Register<Components::InkBlasterBrick>();
174178
m_World->ComponentFactory.Register<Components::KrakenAttackBrick>();
175179

180+
//m_World->SystemFactory.Register<Systems::InputSystem>(
181+
// [this]() { return new Systems::InputSystem(m_World.get(), m_EventBroker); });
182+
//m_World->AddSystem<Systems::InputSystem>();
176183
m_World->SystemFactory.Register<Systems::LevelSystem>(
177184
[this]() { return new Systems::LevelSystem(m_World.get(), m_EventBroker); });
178185
m_World->AddSystem<Systems::LevelSystem>();
@@ -209,6 +216,9 @@ class Engine
209216
m_World->SystemFactory.Register<Systems::LifeSystem>(
210217
[this]() { return new Systems::LifeSystem(m_World.get(), m_EventBroker); });
211218
m_World->AddSystem<Systems::LifeSystem>();
219+
m_World->SystemFactory.Register<Systems::ScreenShakeSystem>(
220+
[this]() { return new Systems::ScreenShakeSystem(m_World.get(), m_EventBroker); });
221+
m_World->AddSystem<Systems::ScreenShakeSystem>();
212222

213223
m_World->ComponentFactory.Register<Components::Model>();
214224
m_World->ComponentFactory.Register<Components::Template>();
@@ -251,9 +261,10 @@ class Engine
251261
m_LastTime = currentTime;
252262

253263
// Update input
264+
m_EventBroker->Swap();
254265
m_InputManager->Update(dt);
255-
// Swap event queues to get fresh input data in the read queue
256-
//m_EventBroker->Swap();
266+
//m_EventBroker->Process<Systems::InputSystem>();
267+
m_EventBroker->Swap();
257268

258269
//ResourceManager::Update();
259270
if (m_GameIsRunning) {
@@ -271,15 +282,14 @@ class Engine
271282
TEMPAddToRenderQueue();
272283
}
273284

274-
std::unique_ptr<dd::Camera> defaultCamera = nullptr;
275-
276285
// Render scene
277286
//TODO send renderqueue to draw.
278287
m_Renderer->Draw(m_RendererQueue);
279288

280289
m_EventBroker->Process<Engine>();
281290
// Swap event queues
282291
m_EventBroker->Swap();
292+
m_EventBroker->Clear();
283293

284294
glfwPollEvents();
285295
}
@@ -292,6 +302,20 @@ class Engine
292302
{
293303
if (!m_TransformSystem)
294304
m_TransformSystem = m_World->GetSystem<Systems::TransformSystem>();
305+
306+
// HACK: How do we handle multiple cameras? Maybe view and projection matrices in render queue...
307+
auto cameras = m_World->GetComponentsOfType<Components::Camera>();
308+
if (cameras != nullptr) {
309+
for (auto& component : *cameras) {
310+
auto camera = static_cast<Components::Camera*>(component.get());
311+
auto transform = m_World->GetComponent<Components::Transform>(camera->Entity);
312+
m_Renderer->Camera()->SetPosition(transform->Position);
313+
m_Renderer->Camera()->SetOrientation(transform->Orientation);
314+
m_Renderer->Camera()->SetFOV(camera->FOV);
315+
m_Renderer->Camera()->SetNearClip(camera->NearClip);
316+
m_Renderer->Camera()->SetFarClip(camera->FarClip);
317+
}
318+
}
295319

296320
for (auto &pair : *m_World->GetEntities())
297321
{

include/Core/EventBroker.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ template <typename ContextType, typename EventType> friend class EventRelay;
121121
int Process();
122122
int Process(std::string contextTypeName);
123123
void Swap();
124+
void Clear();
124125
void Unsubscribe(BaseEventRelay &relay);
125126

126127
private:

include/Game/BallSystem.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
#include "Physics/ECreateParticleSequence.h"
5151
#include "Sound/CCollisionSound.h"
5252
#include "Sound/EPlaySound.h"
53+
#include "Rendering/EAnimationComplete.h"
5354

5455
namespace dd
5556
{
@@ -145,6 +146,7 @@ class BallSystem : public System
145146
dd::EventRelay<BallSystem, dd::Events::ActionButton> m_EActionButton;
146147
dd::EventRelay<BallSystem, dd::Events::StageCleared> m_EStageCleared;
147148
dd::EventRelay<BallSystem, dd::Events::ArrivedAtNewStage> m_EArrivedAtNewStage;
149+
dd::EventRelay<BallSystem, dd::Events::AnimationComplete> m_EAnimationComplete;
148150

149151
bool Contact(const Events::Contact &event);
150152
bool OnMultiBallLost(const dd::Events::MultiBallLost &event);
@@ -160,6 +162,7 @@ class BallSystem : public System
160162
bool OnActionButton(const dd::Events::ActionButton &event);
161163
bool OnStageCleared(const dd::Events::StageCleared &event);
162164
bool OnArrivedToNewStage(const dd::Events::ArrivedAtNewStage &event);
165+
bool OnAnimationComplete(const dd::Events::AnimationComplete &event);
163166
};
164167

165168
}

include/Game/CBall.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ struct Ball : Component
2222
bool Waiting = true;
2323
bool InkBlaster = false;
2424
bool Sticky = false;
25+
bool Loaded = false;
2526
glm::vec3 StickyPlacement = glm::vec3(0, 0, 0);
2627
glm::vec3 SavedSpeed = glm::vec3(0, 1, 0);
2728

0 commit comments

Comments
 (0)