mirror of
https://github.com/halpz/re3.git
synced 2025-04-24 19:48:08 +00:00
68 lines
1.1 KiB
C++
68 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "Crime.h"
|
|
#include "AudioSamples.h"
|
|
|
|
struct cAMCrime {
|
|
int32 type;
|
|
CVector position;
|
|
uint16 timer;
|
|
|
|
cAMCrime()
|
|
{
|
|
type = CRIME_NONE;
|
|
position = CVector(0.0f, 0.0f, 0.0f);
|
|
timer = 0;
|
|
}
|
|
};
|
|
|
|
VALIDATE_SIZE(cAMCrime, 20);
|
|
|
|
#define POLICE_RADIO_QUEUE_MAX_SAMPLES 60
|
|
|
|
class cPoliceRadioQueue
|
|
{
|
|
public:
|
|
uint32 m_aSamples[POLICE_RADIO_QUEUE_MAX_SAMPLES];
|
|
uint8 m_nSamplesInQueue;
|
|
uint8 m_nAddOffset;
|
|
uint8 m_nRemoveOffset;
|
|
|
|
cPoliceRadioQueue()
|
|
{
|
|
Reset();
|
|
}
|
|
|
|
void Reset()
|
|
{
|
|
m_nAddOffset = 0;
|
|
m_nRemoveOffset = 0;
|
|
m_nSamplesInQueue = 0;
|
|
}
|
|
|
|
bool8 Add(uint32 sample)
|
|
{
|
|
if (m_nSamplesInQueue != POLICE_RADIO_QUEUE_MAX_SAMPLES) {
|
|
m_aSamples[m_nAddOffset] = sample;
|
|
m_nSamplesInQueue++;
|
|
m_nAddOffset = (m_nAddOffset + 1) % POLICE_RADIO_QUEUE_MAX_SAMPLES;
|
|
return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
uint32 Remove()
|
|
{
|
|
if (m_nSamplesInQueue != 0) {
|
|
uint32 sample = m_aSamples[m_nRemoveOffset];
|
|
m_nSamplesInQueue--;
|
|
m_nRemoveOffset = (m_nRemoveOffset + 1) % POLICE_RADIO_QUEUE_MAX_SAMPLES;
|
|
return sample;
|
|
}
|
|
return NO_SAMPLE;
|
|
}
|
|
|
|
};
|
|
|
|
VALIDATE_SIZE(cPoliceRadioQueue, 244);
|