2020-04-09 18:50:24 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#define NUMAUDIOCOLLISIONS 10
|
|
|
|
|
2020-04-28 11:00:38 +00:00
|
|
|
class CEntity;
|
|
|
|
|
2020-04-09 18:50:24 +00:00
|
|
|
class cAudioCollision
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CEntity *m_pEntity1;
|
|
|
|
CEntity *m_pEntity2;
|
|
|
|
uint8 m_bSurface1;
|
|
|
|
uint8 m_bSurface2;
|
|
|
|
float m_fIntensity1;
|
|
|
|
float m_fIntensity2;
|
|
|
|
CVector m_vecPosition;
|
|
|
|
float m_fDistance;
|
|
|
|
int32 m_nBaseVolume;
|
|
|
|
|
2021-07-27 19:02:25 +00:00
|
|
|
cAudioCollision() { Reset(); }
|
|
|
|
|
|
|
|
void Reset()
|
|
|
|
{
|
|
|
|
m_pEntity1 = nil;
|
|
|
|
m_pEntity2 = nil;
|
|
|
|
m_bSurface1 = 0;
|
|
|
|
m_bSurface2 = 0;
|
|
|
|
m_fIntensity1 = m_fIntensity2 = 0.0f;
|
|
|
|
m_vecPosition = CVector(0.0f, 0.0f, 0.0f);
|
|
|
|
m_fDistance = 0.0f;
|
|
|
|
}
|
2020-04-09 18:50:24 +00:00
|
|
|
};
|
|
|
|
|
2020-05-10 15:49:33 +00:00
|
|
|
VALIDATE_SIZE(cAudioCollision, 40);
|
2020-04-09 18:50:24 +00:00
|
|
|
|
|
|
|
class cAudioCollisionManager
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
cAudioCollision m_asCollisions1[NUMAUDIOCOLLISIONS];
|
|
|
|
cAudioCollision m_asCollisions2[NUMAUDIOCOLLISIONS];
|
|
|
|
uint8 m_bIndicesTable[NUMAUDIOCOLLISIONS];
|
|
|
|
uint8 m_bCollisionsInQueue;
|
|
|
|
cAudioCollision m_sQueue;
|
|
|
|
|
2021-07-27 19:02:25 +00:00
|
|
|
cAudioCollisionManager()
|
|
|
|
{
|
|
|
|
m_sQueue.Reset();
|
|
|
|
|
|
|
|
for(int i = 0; i < NUMAUDIOCOLLISIONS; i++)
|
|
|
|
m_bIndicesTable[i] = NUMAUDIOCOLLISIONS;
|
|
|
|
|
|
|
|
m_bCollisionsInQueue = 0;
|
|
|
|
}
|
2020-04-14 14:13:38 +00:00
|
|
|
void AddCollisionToRequestedQueue();
|
2020-04-09 18:50:24 +00:00
|
|
|
};
|
|
|
|
|
2020-10-02 00:55:26 +00:00
|
|
|
VALIDATE_SIZE(cAudioCollisionManager, 0x354);
|