Files
GTASource/game/audio/dynamicmixmodules.h
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

72 lines
1.6 KiB
C++

//
// audio/dynamicmixer.h
//
// Copyright (C) 1999-2010 Rockstar Games. All rights reserved.
//
#ifndef AUD_DYNAMICMIXMODULES_H
#define AUD_DYNAMICMIXMODULES_H
#include "atl/array.h"
class audScene;
class audDynMixModule;
class audVehicleCollisionAudio;
namespace rage
{
class audEntity;
}
class audSceneVariableMixModule
{
public:
static void Init(audDynMixModule * module);
static void Update(audDynMixModule * module);
static void Shutdown(audDynMixModule * module);
};
class audSceneTransitionMixModule
{
public:
static void Init(audDynMixModule * module);
static void Update(audDynMixModule * module);
static void Shutdown(audDynMixModule * module);
};
class audVehicleCollisionMixModule
{
public:
static void Init(audDynMixModule * module);
static void Update(audDynMixModule * module);
static void Shutdown(audDynMixModule * module);
static void Process(audDynMixModule * module, audVehicleCollisionAudio * collisionAudio);
};
class audDynamicMixModuleInterface
{
public:
audDynamicMixModuleInterface();
static const int k_max_mods = 8;
void AddVehicleCollisionModule(audDynMixModule * module);
void RemoveVehicleCollisionModule(audDynMixModule * module);
void ProcessVehiclePostCollision(audVehicleCollisionAudio * collisionAudio);
void AddGeneralModule(audDynMixModule * module);
void RemoveGeneralModule(audDynMixModule * module);
void ProcessVehiclePostCollision(audEntity * audioEntity);
private:
atRangeArray<audDynMixModule*, k_max_mods> m_VehiclePostCollisionMods;
atRangeArray<audDynMixModule*, k_max_mods> m_GeneralCodeMods;
};
#endif