2021-12-05 17:54:36 +00:00
|
|
|
#pragma once
|
2024-01-24 05:13:23 +00:00
|
|
|
|
2021-12-05 17:54:36 +00:00
|
|
|
#include "dCommonVars.h"
|
|
|
|
#include "Entity.h"
|
|
|
|
#include "GUID.h"
|
|
|
|
#include "Component.h"
|
2023-03-04 07:16:37 +00:00
|
|
|
#include "eReplicaComponentType.h"
|
2021-12-05 17:54:36 +00:00
|
|
|
|
|
|
|
struct MusicCue {
|
2022-07-28 13:39:57 +00:00
|
|
|
std::string name;
|
|
|
|
uint32_t result;
|
|
|
|
float boredomTime;
|
2023-08-06 20:38:12 +00:00
|
|
|
|
|
|
|
MusicCue(std::string name, float boredomTime = -1.0, uint32_t result = 1){
|
|
|
|
this->name = name;
|
|
|
|
this->result = result;
|
|
|
|
this->boredomTime = boredomTime;
|
|
|
|
};
|
|
|
|
|
2024-02-27 07:25:44 +00:00
|
|
|
void Serialize(RakNet::BitStream& outBitStream);
|
2023-08-06 20:38:12 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct MusicParameter {
|
|
|
|
std::string name;
|
|
|
|
float value;
|
|
|
|
|
|
|
|
MusicParameter(std::string name, float value = 0.0){
|
|
|
|
this->name = name;
|
|
|
|
this->value = value;
|
|
|
|
}
|
|
|
|
|
2024-02-27 07:25:44 +00:00
|
|
|
void Serialize(RakNet::BitStream& outBitStream);
|
2023-08-06 20:38:12 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct GUIDResults{
|
|
|
|
GUID guid;
|
|
|
|
uint32_t result;
|
|
|
|
|
|
|
|
GUIDResults(std::string guidString, uint32_t result = 1){
|
|
|
|
this->guid = GUID(guidString);
|
|
|
|
this->result = result;
|
|
|
|
}
|
|
|
|
|
2024-02-27 07:25:44 +00:00
|
|
|
void Serialize(RakNet::BitStream& outBitStream);
|
2021-12-05 17:54:36 +00:00
|
|
|
};
|
|
|
|
|
2024-01-24 05:13:23 +00:00
|
|
|
struct MixerProgram {
|
2023-08-06 20:38:12 +00:00
|
|
|
std::string name;
|
|
|
|
uint32_t result;
|
|
|
|
|
|
|
|
MixerProgram(std::string name, uint32_t result = 0){
|
|
|
|
this->name = name;
|
|
|
|
this->result = result;
|
|
|
|
}
|
|
|
|
|
2024-02-27 07:25:44 +00:00
|
|
|
void Serialize(RakNet::BitStream& outBitStream);
|
2023-08-06 20:38:12 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2021-12-05 17:54:36 +00:00
|
|
|
class SoundTriggerComponent : public Component {
|
|
|
|
public:
|
2024-01-24 05:13:23 +00:00
|
|
|
static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::SOUND_TRIGGER;
|
2022-07-28 13:39:57 +00:00
|
|
|
explicit SoundTriggerComponent(Entity* parent);
|
2024-02-27 07:25:44 +00:00
|
|
|
void Serialize(RakNet::BitStream& outBitStream, bool bIsInitialUpdate) override;
|
2023-08-06 20:38:12 +00:00
|
|
|
void ActivateMusicCue(const std::string& name, float bordemTime = -1.0);
|
2022-07-28 13:39:57 +00:00
|
|
|
void DeactivateMusicCue(const std::string& name);
|
2021-12-05 17:54:36 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
|
2024-01-24 05:13:23 +00:00
|
|
|
std::vector<MusicCue> m_MusicCues;
|
|
|
|
std::vector<MusicParameter> m_MusicParameters;
|
|
|
|
std::vector<GUIDResults> m_2DAmbientSounds;
|
|
|
|
std::vector<GUIDResults> m_3DAmbientSounds;
|
|
|
|
std::vector<MixerProgram> m_MixerPrograms;
|
2023-08-06 20:38:12 +00:00
|
|
|
|
|
|
|
bool m_Dirty = false;
|
2021-12-05 17:54:36 +00:00
|
|
|
};
|