mirror of
https://github.com/GTAmodding/re3.git
synced 2025-07-19 02:04:10 +00:00
CParticleObject done, cDMAudio done
This commit is contained in:
parent
7ed494906a
commit
6093d855b0
17 changed files with 1927 additions and 232 deletions
|
@ -1,37 +1,375 @@
|
|||
#include "common.h"
|
||||
#include "patcher.h"
|
||||
#include "DMAudio.h"
|
||||
#include "MusicManager.h"
|
||||
#include "AudioManager.h"
|
||||
#include "sampman.h"
|
||||
|
||||
cDMAudio &DMAudio = *(cDMAudio*)0x95CDBE;
|
||||
|
||||
WRAPPER void cDMAudio::Terminate(void) { EAXJMP(0x57C780); }
|
||||
WRAPPER void cDMAudio::ReleaseDigitalHandle(void) { EAXJMP(0x57CA10); }
|
||||
WRAPPER void cDMAudio::ReacquireDigitalHandle(void) { EAXJMP(0x57CA30); }
|
||||
|
||||
WRAPPER void cDMAudio::Service(void) { EAXJMP(0x57C7A0); }
|
||||
WRAPPER void cDMAudio::ReportCollision(CEntity *A, CEntity *B, uint8 surfA, uint8 surfB, float impulse, float speed) { EAXJMP(0x57CBE0); }
|
||||
WRAPPER void cDMAudio::ResetTimers(uint32 timerval) { EAXJMP(0x57CCD0); }
|
||||
WRAPPER bool cDMAudio::IsAudioInitialised() { EAXJMP(0x57CAB0); }
|
||||
WRAPPER char cDMAudio::GetCDAudioDriveLetter() { EAXJMP(0x57CA90); }
|
||||
WRAPPER bool cDMAudio::CheckForAnAudioFileOnCD() { EAXJMP(0x57CA70); }
|
||||
WRAPPER void cDMAudio::ChangeMusicMode(uint8 mode) { EAXJMP(0x57CCF0); }
|
||||
|
||||
WRAPPER void cDMAudio::PlayFrontEndSound(uint32, uint32) { EAXJMP(0x57CC20); }
|
||||
WRAPPER void cDMAudio::PlayFrontEndTrack(uint32, uint32) { EAXJMP(0x57CC80); }
|
||||
WRAPPER void cDMAudio::StopFrontEndTrack() { EAXJMP(0x57CCB0); }
|
||||
WRAPPER void cDMAudio::PlayOneShot(int32 audioentity, uint16 sound/*eSound*/, float) { EAXJMP(0x57C840); }
|
||||
WRAPPER void cDMAudio::SetMusicMasterVolume(uint8) { EAXJMP(0x57C8C0); }
|
||||
WRAPPER void cDMAudio::SetEffectsMasterVolume(uint8) { EAXJMP(0x57C890); }
|
||||
WRAPPER uint8 cDMAudio::SetCurrent3DProvider(uint8) { EAXJMP(0x57C9B0); }
|
||||
WRAPPER int32 cDMAudio::SetSpeakerConfig(int32) { EAXJMP(0x57C9D0); }
|
||||
void
|
||||
cDMAudio::Initialise(void)
|
||||
{
|
||||
AudioManager.Initialise();
|
||||
}
|
||||
|
||||
WRAPPER int32 cDMAudio::GetRadioInCar() { EAXJMP(0x57CE40); }
|
||||
WRAPPER uint8 cDMAudio::IsMP3RadioChannelAvailable() { EAXJMP(0x57C9F0); }
|
||||
WRAPPER void cDMAudio::SetEffectsFadeVol(uint8) { EAXJMP(0x57C8F0); }
|
||||
WRAPPER void cDMAudio::SetMusicFadeVol(uint8) { EAXJMP(0x57C920); }
|
||||
WRAPPER int32 cDMAudio::CreateEntity(int, void*) { EAXJMP(0x57C7C0); }
|
||||
WRAPPER void cDMAudio::SetEntityStatus(int32 id, uint8 enable) { EAXJMP(0x57C810); }
|
||||
WRAPPER void cDMAudio::SetRadioInCar(int32) { EAXJMP(0x57CE60); }
|
||||
WRAPPER void cDMAudio::DestroyEntity(int32) { EAXJMP(0x57C7F0); }
|
||||
WRAPPER void cDMAudio::ClearMissionAudio(void) { EAXJMP(0x57CE20); }
|
||||
WRAPPER void cDMAudio::ReportCrime(eCrimeType crime, const CVector &pos) { EAXJMP(0x57CAD0); }
|
||||
void
|
||||
cDMAudio::Terminate(void)
|
||||
{
|
||||
AudioManager.Terminate();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::Service(void)
|
||||
{
|
||||
AudioManager.Service();
|
||||
}
|
||||
|
||||
int32
|
||||
cDMAudio::CreateEntity(eAudioType type, void *UID)
|
||||
{
|
||||
return AudioManager.CreateEntity(type, UID);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::DestroyEntity(int32 audioEntity)
|
||||
{
|
||||
AudioManager.DestroyEntity(audioEntity);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetEntityStatus(int32 audioEntity, uint8 status)
|
||||
{
|
||||
AudioManager.SetEntityStatus(audioEntity, status);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PlayOneShot(int32 audioEntity, uint16 oneShot, float volume)
|
||||
{
|
||||
AudioManager.PlayOneShot(audioEntity, oneShot, volume);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::DestroyAllGameCreatedEntities(void)
|
||||
{
|
||||
AudioManager.DestroyAllGameCreatedEntities();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetEffectsMasterVolume(uint8 volume)
|
||||
{
|
||||
uint8 vol = volume;
|
||||
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
|
||||
|
||||
AudioManager.SetEffectsMasterVolume(vol);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetMusicMasterVolume(uint8 volume)
|
||||
{
|
||||
uint8 vol = volume;
|
||||
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
|
||||
|
||||
AudioManager.SetMusicMasterVolume(vol);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetEffectsFadeVol(uint8 volume)
|
||||
{
|
||||
uint8 vol = volume;
|
||||
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
|
||||
|
||||
AudioManager.SetEffectsFadeVol(vol);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetMusicFadeVol(uint8 volume)
|
||||
{
|
||||
uint8 vol = volume;
|
||||
if ( vol > MAX_VOLUME ) vol = MAX_VOLUME;
|
||||
|
||||
AudioManager.SetMusicFadeVol(vol);
|
||||
}
|
||||
|
||||
uint8
|
||||
cDMAudio::GetNum3DProvidersAvailable(void)
|
||||
{
|
||||
return AudioManager.GetNum3DProvidersAvailable();
|
||||
}
|
||||
|
||||
char *
|
||||
cDMAudio::Get3DProviderName(uint8 id)
|
||||
{
|
||||
return AudioManager.Get3DProviderName(id);
|
||||
}
|
||||
|
||||
int8
|
||||
cDMAudio::GetCurrent3DProviderIndex(void)
|
||||
{
|
||||
return AudioManager.GetCurrent3DProviderIndex();
|
||||
}
|
||||
|
||||
int8
|
||||
cDMAudio::SetCurrent3DProvider(uint8 which)
|
||||
{
|
||||
return AudioManager.SetCurrent3DProvider(which);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetSpeakerConfig(int32 config)
|
||||
{
|
||||
AudioManager.SetSpeakerConfig(config);
|
||||
}
|
||||
|
||||
bool
|
||||
cDMAudio::IsMP3RadioChannelAvailable(void)
|
||||
{
|
||||
return AudioManager.IsMP3RadioChannelAvailable();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::ReleaseDigitalHandle(void)
|
||||
{
|
||||
AudioManager.ReleaseDigitalHandle();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::ReacquireDigitalHandle(void)
|
||||
{
|
||||
AudioManager.ReacquireDigitalHandle();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetDynamicAcousticModelingStatus(uint8 status)
|
||||
{
|
||||
AudioManager.SetDynamicAcousticModelingStatus(status);
|
||||
}
|
||||
|
||||
bool
|
||||
cDMAudio::CheckForAnAudioFileOnCD(void)
|
||||
{
|
||||
return AudioManager.CheckForAnAudioFileOnCD();
|
||||
}
|
||||
|
||||
char
|
||||
cDMAudio::GetCDAudioDriveLetter(void)
|
||||
{
|
||||
return AudioManager.GetCDAudioDriveLetter();
|
||||
}
|
||||
|
||||
bool
|
||||
cDMAudio::IsAudioInitialised(void)
|
||||
{
|
||||
return AudioManager.IsAudioInitialised();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::ReportCrime(eCrimeType crime, CVector const &pos)
|
||||
{
|
||||
AudioManager.ReportCrime(crime, pos);
|
||||
}
|
||||
|
||||
int32
|
||||
cDMAudio::CreateLoopingScriptObject(cAudioScriptObject *scriptObject)
|
||||
{
|
||||
int32 audioEntity = AudioManager.CreateEntity(AUDIOTYPE_SCRIPTOBJECT, scriptObject);
|
||||
|
||||
if ( AEHANDLE_IS_OK(audioEntity) )
|
||||
AudioManager.SetEntityStatus(audioEntity, true);
|
||||
|
||||
return audioEntity;
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::DestroyLoopingScriptObject(int32 audioEntity)
|
||||
{
|
||||
AudioManager.DestroyEntity(audioEntity);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::CreateOneShotScriptObject(cAudioScriptObject *scriptObject)
|
||||
{
|
||||
int32 audioEntity = AudioManager.CreateEntity(AUDIOTYPE_SCRIPTOBJECT, scriptObject);
|
||||
|
||||
if ( AEHANDLE_IS_OK(audioEntity) )
|
||||
{
|
||||
AudioManager.SetEntityStatus(audioEntity, true);
|
||||
AudioManager.PlayOneShot(audioEntity, scriptObject->AudioId, 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PlaySuspectLastSeen(float x, float y, float z)
|
||||
{
|
||||
AudioManager.PlaySuspectLastSeen(x, y, z);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::ReportCollision(CEntity *entityA, CEntity *entityB, uint8 surfaceTypeA, uint8 surfaceTypeB, float collisionPower, float velocity)
|
||||
{
|
||||
AudioManager.ReportCollision(entityA, entityB, surfaceTypeA, surfaceTypeB, collisionPower, velocity);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PlayFrontEndSound(uint16 frontend, uint32 volume)
|
||||
{
|
||||
AudioManager.PlayOneShot(AudioManager.m_nFrontEndEntity, frontend, (float)volume);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PlayRadioAnnouncement(uint8 announcement)
|
||||
{
|
||||
MusicManager.PlayAnnouncement(announcement);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PlayFrontEndTrack(uint8 track, uint8 frontendFlag)
|
||||
{
|
||||
MusicManager.PlayFrontEndTrack(track, frontendFlag);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::StopFrontEndTrack(void)
|
||||
{
|
||||
MusicManager.StopFrontEndTrack();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::ResetTimers(uint32 time)
|
||||
{
|
||||
AudioManager.ResetTimers(time);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::ChangeMusicMode(uint8 mode)
|
||||
{
|
||||
MusicManager.ChangeMusicMode(mode);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PreloadCutSceneMusic(uint8 track)
|
||||
{
|
||||
MusicManager.PreloadCutSceneMusic(track);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PlayPreloadedCutSceneMusic(void)
|
||||
{
|
||||
MusicManager.PlayPreloadedCutSceneMusic();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::StopCutSceneMusic(void)
|
||||
{
|
||||
MusicManager.StopCutSceneMusic();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PreloadMissionAudio(char *missionAudio)
|
||||
{
|
||||
AudioManager.PreloadMissionAudio(missionAudio);
|
||||
}
|
||||
|
||||
uint8
|
||||
cDMAudio::GetMissionAudioLoadingStatus(void)
|
||||
{
|
||||
return AudioManager.GetMissionAudioLoadingStatus();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetMissionAudioLocation(float x, float y, float z)
|
||||
{
|
||||
AudioManager.SetMissionAudioLocation(x, y, z);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::PlayLoadedMissionAudio(void)
|
||||
{
|
||||
AudioManager.PlayLoadedMissionAudio();
|
||||
}
|
||||
|
||||
bool
|
||||
cDMAudio::IsMissionAudioSampleFinished(void)
|
||||
{
|
||||
return AudioManager.IsMissionAudioSampleFinished();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::ClearMissionAudio(void)
|
||||
{
|
||||
AudioManager.ClearMissionAudio();
|
||||
}
|
||||
|
||||
int32
|
||||
cDMAudio::GetRadioInCar(void)
|
||||
{
|
||||
return MusicManager.GetRadioInCar();
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetRadioInCar(uint32 radio)
|
||||
{
|
||||
MusicManager.SetRadioInCar(radio);
|
||||
}
|
||||
|
||||
void
|
||||
cDMAudio::SetRadioChannel(int8 radio, int32 pos)
|
||||
{
|
||||
MusicManager.SetRadioChannelByScript(radio, pos);
|
||||
}
|
||||
|
||||
STARTPATCHES
|
||||
InjectHook(0x57C760, &cDMAudio::Initialise, PATCH_JUMP);
|
||||
InjectHook(0x57C780, &cDMAudio::Terminate, PATCH_JUMP);
|
||||
InjectHook(0x57C7A0, &cDMAudio::Service, PATCH_JUMP);
|
||||
InjectHook(0x57C7C0, &cDMAudio::CreateEntity, PATCH_JUMP);
|
||||
InjectHook(0x57C7F0, &cDMAudio::DestroyEntity, PATCH_JUMP);
|
||||
InjectHook(0x57C810, &cDMAudio::SetEntityStatus, PATCH_JUMP);
|
||||
InjectHook(0x57C840, &cDMAudio::PlayOneShot, PATCH_JUMP);
|
||||
InjectHook(0x57C870, &cDMAudio::DestroyAllGameCreatedEntities, PATCH_JUMP);
|
||||
InjectHook(0x57C890, &cDMAudio::SetEffectsMasterVolume, PATCH_JUMP);
|
||||
InjectHook(0x57C8C0, &cDMAudio::SetMusicMasterVolume, PATCH_JUMP);
|
||||
InjectHook(0x57C8F0, &cDMAudio::SetEffectsFadeVol, PATCH_JUMP);
|
||||
InjectHook(0x57C920, &cDMAudio::SetMusicFadeVol, PATCH_JUMP);
|
||||
InjectHook(0x57C950, &cDMAudio::GetNum3DProvidersAvailable, PATCH_JUMP);
|
||||
InjectHook(0x57C970, &cDMAudio::Get3DProviderName, PATCH_JUMP);
|
||||
InjectHook(0x57C990, &cDMAudio::GetCurrent3DProviderIndex, PATCH_JUMP);
|
||||
InjectHook(0x57C9B0, &cDMAudio::SetCurrent3DProvider, PATCH_JUMP);
|
||||
InjectHook(0x57C9D0, &cDMAudio::SetSpeakerConfig, PATCH_JUMP);
|
||||
InjectHook(0x57C9F0, &cDMAudio::IsMP3RadioChannelAvailable, PATCH_JUMP);
|
||||
InjectHook(0x57CA10, &cDMAudio::ReleaseDigitalHandle, PATCH_JUMP);
|
||||
InjectHook(0x57CA30, &cDMAudio::ReacquireDigitalHandle, PATCH_JUMP);
|
||||
InjectHook(0x57CA50, &cDMAudio::SetDynamicAcousticModelingStatus, PATCH_JUMP);
|
||||
InjectHook(0x57CA70, &cDMAudio::CheckForAnAudioFileOnCD, PATCH_JUMP);
|
||||
InjectHook(0x57CA90, &cDMAudio::GetCDAudioDriveLetter, PATCH_JUMP);
|
||||
InjectHook(0x57CAB0, &cDMAudio::IsAudioInitialised, PATCH_JUMP);
|
||||
InjectHook(0x57CAD0, &cDMAudio::ReportCrime, PATCH_JUMP);
|
||||
InjectHook(0x57CB00, &cDMAudio::CreateLoopingScriptObject, PATCH_JUMP);
|
||||
InjectHook(0x57CB40, &cDMAudio::DestroyLoopingScriptObject, PATCH_JUMP);
|
||||
InjectHook(0x57CB60, &cDMAudio::CreateOneShotScriptObject, PATCH_JUMP);
|
||||
InjectHook(0x57CBB0, &cDMAudio::PlaySuspectLastSeen, PATCH_JUMP);
|
||||
InjectHook(0x57CBE0, &cDMAudio::ReportCollision, PATCH_JUMP);
|
||||
InjectHook(0x57CC20, &cDMAudio::PlayFrontEndSound, PATCH_JUMP);
|
||||
InjectHook(0x57CC60, &cDMAudio::PlayRadioAnnouncement, PATCH_JUMP);
|
||||
InjectHook(0x57CC80, &cDMAudio::PlayFrontEndTrack, PATCH_JUMP);
|
||||
InjectHook(0x57CCB0, &cDMAudio::StopFrontEndTrack, PATCH_JUMP);
|
||||
InjectHook(0x57CCD0, &cDMAudio::ResetTimers, PATCH_JUMP);
|
||||
InjectHook(0x57CCF0, &cDMAudio::ChangeMusicMode, PATCH_JUMP);
|
||||
InjectHook(0x57CD10, &cDMAudio::PreloadCutSceneMusic, PATCH_JUMP);
|
||||
InjectHook(0x57CD30, &cDMAudio::PlayPreloadedCutSceneMusic, PATCH_JUMP);
|
||||
InjectHook(0x57CD50, &cDMAudio::StopCutSceneMusic, PATCH_JUMP);
|
||||
InjectHook(0x57CD70, &cDMAudio::PreloadMissionAudio, PATCH_JUMP);
|
||||
InjectHook(0x57CD90, &cDMAudio::GetMissionAudioLoadingStatus, PATCH_JUMP);
|
||||
InjectHook(0x57CDB0, &cDMAudio::SetMissionAudioLocation, PATCH_JUMP);
|
||||
InjectHook(0x57CDE0, &cDMAudio::PlayLoadedMissionAudio, PATCH_JUMP);
|
||||
InjectHook(0x57CE00, &cDMAudio::IsMissionAudioSampleFinished, PATCH_JUMP);
|
||||
InjectHook(0x57CE20, &cDMAudio::ClearMissionAudio, PATCH_JUMP);
|
||||
InjectHook(0x57CE40, &cDMAudio::GetRadioInCar, PATCH_JUMP);
|
||||
InjectHook(0x57CE60, &cDMAudio::SetRadioInCar, PATCH_JUMP);
|
||||
InjectHook(0x57CE80, &cDMAudio::SetRadioChannel, PATCH_JUMP);
|
||||
|
||||
//InjectHook(0x57CEB0, `global constructor keyed to'dmaudio.cpp, PATCH_JUMP);
|
||||
//InjectHook(0x57CED0, cDMAudio::~cDMAudio, PATCH_JUMP);
|
||||
ENDPATCHES
|
Loading…
Add table
Add a link
Reference in a new issue