Merge branch 'master' of github.com:teamfisk/TacticalZ
This commit is contained in:
@@ -19,6 +19,7 @@ class Resource
|
||||
|
||||
protected:
|
||||
Resource() { }
|
||||
virtual ~Resource() = default;
|
||||
|
||||
public:
|
||||
//Should be thrown in a Resource's constructor if it cannot complete because another resource is still loading.
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "IRenderer.h"
|
||||
#include "ShaderProgram.h"
|
||||
#include "PNG.h"
|
||||
|
||||
class CubeMapPass
|
||||
{
|
||||
@@ -21,7 +22,7 @@ private:
|
||||
IRenderer* m_Renderer;
|
||||
std::string m_PreviusCubeMapTexture;
|
||||
|
||||
std::vector<Texture*> m_CubeMapTextures;
|
||||
std::vector<std::string> m_CubeMapTextures;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
struct Image
|
||||
{
|
||||
virtual ~Image() = default;
|
||||
|
||||
enum class ImageFormat
|
||||
{
|
||||
Unknown,
|
||||
|
||||
@@ -14,8 +14,6 @@ protected:
|
||||
TextureSprite(std::string path);
|
||||
|
||||
public:
|
||||
~TextureSprite();
|
||||
|
||||
void Bind(GLenum textureUnit = GL_TEXTURE0);
|
||||
|
||||
GLuint m_Texture = 0;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef Events_ChangeBGM_h__
|
||||
#define Events_ChangeBGM_h__
|
||||
|
||||
#include <string>
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct ChangeBGM : Event
|
||||
{
|
||||
std::string FilePath = "";
|
||||
};
|
||||
|
||||
}
|
||||
#endif // Events_ChangeBGM_h__
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef Events_PlayAnnouncerVoice_h__
|
||||
#define Events_PlayAnnouncerVoice_h__
|
||||
|
||||
#include <string>
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct PlayAnonuncerVoice : public Event
|
||||
{
|
||||
std::string FilePath = "";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -12,7 +12,8 @@ namespace Events
|
||||
// Sound behavior is thereby specified in the SoundEmitter component.
|
||||
struct PlaySoundOnEntity : public Event
|
||||
{
|
||||
EntityID EmitterID = 0;
|
||||
EntityWrapper Emitter = EntityWrapper::Invalid;
|
||||
float Gain = 1.f;
|
||||
std::string FilePath = "";
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef Events_SetAnnouncerGain_h__
|
||||
#define Events_SetAnnouncerGain_h__
|
||||
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct SetAnnouncerGain : public Event
|
||||
{
|
||||
float Gain = 1;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //
|
||||
@@ -9,32 +9,35 @@
|
||||
#include "OpenAL/al.h"
|
||||
#include "OpenAL/alc.h"
|
||||
|
||||
#include "imgui/imgui.h"
|
||||
|
||||
#include "Core/World.h"
|
||||
#include "Core/EventBroker.h"
|
||||
#include "../Engine/Core/World.h"
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
#include "../Engine/Core/ResourceManager.h"
|
||||
#include "../Engine/Core/ConfigFile.h"
|
||||
#include "Core/Transform.h" // Absolute transform
|
||||
#include "Sound/Sound.h"
|
||||
#include "../Engine/Core/Transform.h"
|
||||
#include "../Engine/Sound/Sound.h"
|
||||
#include "../Engine/Sound/EPlayQueueOnEntity.h"
|
||||
#include "Sound/EPlaySoundOnEntity.h"
|
||||
#include "Sound/EPlaySoundOnPosition.h"
|
||||
#include "Sound/EPlayBackgroundMusic.h"
|
||||
#include "Sound/EPauseSound.h"
|
||||
#include "Sound/EContinueSound.h"
|
||||
#include "Sound/EStopSound.h"
|
||||
#include "Sound/ESetBGMGain.h"
|
||||
#include "Sound/ESetSFXGain.h"
|
||||
#include "Core/EPause.h"
|
||||
#include "Core/EComponentAttached.h"
|
||||
#include "../Engine/Sound/EPlaySoundOnEntity.h"
|
||||
#include "../Engine/Sound/EPlaySoundOnPosition.h"
|
||||
#include "../Engine/Sound/EPlayBackgroundMusic.h"
|
||||
#include "../Engine/Sound/EPlayAnnouncerVoice.h"
|
||||
#include "../Engine/Sound/EPauseSound.h"
|
||||
#include "../Engine/Sound/EContinueSound.h"
|
||||
#include "../Engine/Sound/EStopSound.h"
|
||||
#include "../Engine/Sound/ESetBGMGain.h"
|
||||
#include "../Engine/Sound/ESetSFXGain.h"
|
||||
#include "../Engine/Sound/ESetAnnouncerGain.h"
|
||||
#include "../Engine/Sound/EChangeBGM.h"
|
||||
#include "../Engine/Core/EPause.h"
|
||||
#include "../Engine/Core/EComponentAttached.h"
|
||||
#include "../Core/EPlayerSpawned.h"
|
||||
|
||||
|
||||
typedef std::pair<ALuint, std::vector<ALuint>> QueuedBuffers;
|
||||
|
||||
enum class SoundType {
|
||||
SFX,
|
||||
BGM
|
||||
BGM,
|
||||
Announcer
|
||||
};
|
||||
|
||||
struct Source
|
||||
@@ -43,6 +46,7 @@ struct Source
|
||||
Sound* SoundResource = nullptr;
|
||||
ALuint ALsource;
|
||||
SoundType Type;
|
||||
float Duration;
|
||||
};
|
||||
|
||||
class SoundManager
|
||||
@@ -74,14 +78,20 @@ private:
|
||||
ALenum getSourceState(ALuint source);
|
||||
void setGain(Source* source, float gain);
|
||||
void setSoundProperties(Source* source, ComponentWrapper* soundComponent);
|
||||
float getDurationSeconds(Source* source);
|
||||
float getTimeOffsetSeconds(Source* source);
|
||||
|
||||
// Specific logic
|
||||
void playSound(Source* source);
|
||||
// Need to be the same format (sample rate etc)
|
||||
// Needs to be the same format (sample rate etc)
|
||||
void playQueue(QueuedBuffers qb);
|
||||
void stopSound(Source* source);
|
||||
Source* createSource(std::string filePath);
|
||||
std::unordered_map<EntityID, Source*> m_Sources;
|
||||
void matchBGMLoop();
|
||||
Source* m_CurrentBGM = nullptr;
|
||||
Source* m_CurrentBGMCombo = nullptr;
|
||||
bool m_DrumLoopHasBeenStarted = false;
|
||||
|
||||
// Logic
|
||||
World* m_World = nullptr;
|
||||
@@ -93,6 +103,7 @@ private:
|
||||
|
||||
float m_BGMVolumeChannel = 1.0f;
|
||||
float m_SFXVolumeChannel = 1.0f;
|
||||
float m_AnnouncerVolumeChannel = 1.0f;
|
||||
EntityWrapper m_LocalPlayer = EntityWrapper();
|
||||
|
||||
// Events
|
||||
@@ -102,6 +113,8 @@ private:
|
||||
bool OnPlaySoundOnPosition(const Events::PlaySoundOnPosition &e);
|
||||
EventRelay<SoundManager, Events::PlayBackgroundMusic> m_EPlayBackgroundMusic;
|
||||
bool OnPlayBackgroundMusic(const Events::PlayBackgroundMusic &e);
|
||||
EventRelay<SoundManager, Events::PlayAnonuncerVoice> m_EPlayAnnouncerVoice;
|
||||
bool OnPlayAnnouncerVoice(const Events::PlayAnonuncerVoice& e);
|
||||
EventRelay<SoundManager, Events::PauseSound> m_EPauseSound;
|
||||
bool OnPauseSound(const Events::PauseSound &e);
|
||||
EventRelay<SoundManager, Events::StopSound> m_EStopSound;
|
||||
@@ -112,6 +125,8 @@ private:
|
||||
bool OnSetBGMGain(const Events::SetBGMGain &e);
|
||||
EventRelay<SoundManager, Events::SetSFXGain> m_ESetSFXGain;
|
||||
bool OnSetSFXGain(const Events::SetSFXGain &e);
|
||||
EventRelay<SoundManager, Events::SetAnnouncerGain> m_ESetAnnouncerGain;
|
||||
bool OnSetAnnouncerGain(const Events::SetAnnouncerGain& e);
|
||||
EventRelay<SoundManager, Events::ComponentAttached> m_EComponentAttached;
|
||||
bool OnComponentAttached(const Events::ComponentAttached &e);
|
||||
EventRelay<SoundManager, Events::Pause> m_EPause;
|
||||
@@ -122,6 +137,8 @@ private:
|
||||
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
||||
EventRelay<SoundManager, Events::PlayQueueOnEntity> m_EPlayQueueOnEntity;
|
||||
bool OnPlayQueueOnEntity(const Events::PlayQueueOnEntity &e);
|
||||
EventRelay<SoundManager, Events::ChangeBGM> m_EChangeBGM;
|
||||
bool OnChangeBGM(const Events::ChangeBGM &e);
|
||||
|
||||
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ private:
|
||||
// Used to track afterimages for sprint effect.
|
||||
float m_SprintEffectTimer;
|
||||
// The logic for making the sound play when player is moving
|
||||
void playerStep(double dt);
|
||||
void playerStep(double dt, EntityWrapper player);
|
||||
// Spawn a hexagon at origin of an Entity
|
||||
void spawnHexagon(EntityWrapper target);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define Systems_SoundSystem_h__
|
||||
|
||||
#include <random>
|
||||
#include <chrono>
|
||||
|
||||
#include "../Engine/Core/System.h"
|
||||
#include "../Engine/Core/ResourceManager.h"
|
||||
@@ -20,9 +21,10 @@
|
||||
#include "../Engine/Collision/ETrigger.h"
|
||||
#include "../Engine/Sound/EPlaySoundOnEntity.h"
|
||||
#include "../Engine/Sound/EPlayBackgroundMusic.h"
|
||||
#include "../Engine/Sound/EPlayAnnouncerVoice.h"
|
||||
#include "../Game/Events/EDoubleJump.h"
|
||||
#include "../Game/Events/EDashAbility.h"
|
||||
|
||||
#include "../Engine/Sound/EChangeBGM.h"
|
||||
|
||||
class SoundSystem : public PureSystem, ImpureSystem
|
||||
{
|
||||
@@ -33,14 +35,10 @@ public:
|
||||
private:
|
||||
std::string m_Announcer = "";
|
||||
// Logic for playing a sound when a player jumps
|
||||
void playerJumps();
|
||||
|
||||
// Temporary solution for play test.
|
||||
bool m_DrumsIsPlaying = false;
|
||||
double m_DrumTimer = 0.0;
|
||||
bool drumTimer(double dt);
|
||||
void playerJumps(EntityWrapper player);
|
||||
|
||||
std::default_random_engine generator;
|
||||
std::default_random_engine m_RandomGenerator;
|
||||
std::uniform_int_distribution<int> m_RandIntDistribution;
|
||||
|
||||
EventRelay<SoundSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
||||
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
||||
@@ -48,10 +46,6 @@ private:
|
||||
bool OnInputCommand(const Events::InputCommand &e);
|
||||
EventRelay<SoundSystem, Events::DoubleJump> m_EDoubleJump;
|
||||
bool OnDoubleJump(const Events::DoubleJump &e);
|
||||
EventRelay<SoundSystem, Events::DashAbility> m_EDashAbility;
|
||||
bool OnDashAbility(const Events::DashAbility &e);
|
||||
EventRelay<SoundSystem, Events::TriggerTouch> m_ETriggerTouch;
|
||||
bool OnTriggerTouch(const Events::TriggerTouch &e);
|
||||
EventRelay<SoundSystem, Events::Captured> m_ECaptured;
|
||||
bool OnCaptured(const Events::Captured &e);
|
||||
EventRelay<SoundSystem, Events::PlayerDamage> m_EPlayerDamage;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "Collision/Collision.h"
|
||||
#include "Core/EPlayerDamage.h"
|
||||
#include "Sound/EPlaySoundOnEntity.h"
|
||||
#include "Sound/EPlaySoundOnEntity.h"
|
||||
|
||||
class DefenderWeaponBehaviour : public WeaponBehaviour<DefenderWeaponBehaviour>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user