mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 10:09:02 +00:00
Merge pull request #108 from ShFil119/audio3
Implement smallest functions from AudioManager
This commit is contained in:
commit
4d0e743232
5 changed files with 1283 additions and 971 deletions
File diff suppressed because it is too large
Load diff
|
@ -71,12 +71,14 @@ enum eAudioType : int32 {
|
|||
TOTAL_AUDIO_TYPES = 14,
|
||||
};
|
||||
|
||||
class CPhysical;
|
||||
|
||||
class tAudioEntity
|
||||
{
|
||||
public:
|
||||
eAudioType m_nType;
|
||||
void *m_pEntity;
|
||||
char m_bIsUsed;
|
||||
CPhysical *m_pEntity;
|
||||
bool m_bIsUsed;
|
||||
char m_bStatus;
|
||||
int16 m_awAudioEvent[4];
|
||||
char gap_18[2];
|
||||
|
@ -159,7 +161,7 @@ public:
|
|||
char field_22;
|
||||
char field_23;
|
||||
int field_24;
|
||||
char m_bIsPlayed;
|
||||
bool m_bIsPlayed;
|
||||
char field_29;
|
||||
char field_30;
|
||||
char field_31;
|
||||
|
@ -175,7 +177,7 @@ public:
|
|||
char field_2;
|
||||
char m_bActiveSamples;
|
||||
char field_4;
|
||||
char m_bDynamicAcousticModelingStatus;
|
||||
bool m_bDynamicAcousticModelingStatus;
|
||||
char field_6;
|
||||
char field_7;
|
||||
float field_8;
|
||||
|
@ -185,7 +187,7 @@ public:
|
|||
char field_15;
|
||||
int m_nTimer;
|
||||
tActiveSample m_sQueueSample;
|
||||
char m_bActiveSampleQueue;
|
||||
uint8 m_bActiveSampleQueue;
|
||||
char gap_109[3];
|
||||
tActiveSample m_asSamples[54];
|
||||
char m_abSampleQueueIndexTable[54];
|
||||
|
@ -216,7 +218,92 @@ public:
|
|||
char field_19195;
|
||||
int m_nTimeOfRecentCrime;
|
||||
|
||||
void PlayerJustLeftCar(void);
|
||||
char GetMissionScriptPoliceAudioPlayingStatus();
|
||||
bool GetMissionAudioLoadingStatus();
|
||||
|
||||
uint8 GetNum3DProvidersAvailable();
|
||||
int8 AutoDetect3DProviders();
|
||||
bool IsMP3RadioChannelAvailable();
|
||||
uint8 GetCDAudioDriveLetter();
|
||||
|
||||
void SetEffectsMasterVolume(uint8 volume);
|
||||
void SetMusicMasterVolume(uint8 volume);
|
||||
void SetEffectsFadeVol(uint8 volume);
|
||||
void SetMusicFadeVol(uint8 volume);
|
||||
|
||||
void SetSpeakerConfig(int32 conf);
|
||||
|
||||
void ProcessJumboFlying();
|
||||
bool SetupJumboEngineSound(uint8, int32); // todo
|
||||
void PreInitialiseGameSpecificSetup();
|
||||
void SetMissionScriptPoliceAudio(int32 sfx);
|
||||
|
||||
void CalculateDistance(bool *ptr, float dist);
|
||||
|
||||
bool UsesSiren(int32 model);
|
||||
bool UsesSirenSwitching(int32 model);
|
||||
|
||||
bool MissionScriptAudioUsesPoliceChannel(int32 soundMission);
|
||||
|
||||
uint8 Get3DProviderName(uint8 id);
|
||||
|
||||
void ProcessJumboTaxi();
|
||||
bool SetupJumboFlySound(uint8); // todo
|
||||
bool SetupJumboTaxiSound(uint8); // todo
|
||||
bool SetupJumboWhineSound(uint8, int32); // todo
|
||||
|
||||
void PlayLoadedMissionAudio();
|
||||
|
||||
void SetMissionAudioLocation(float x, float y, float z);
|
||||
|
||||
void ResetPoliceRadio();
|
||||
|
||||
void InterrogateAudioEntities();
|
||||
|
||||
void ClearRequestedQueue();
|
||||
// void AgeCrimes();
|
||||
|
||||
bool UsesReverseWarning(int32 model);
|
||||
bool HasAirBrakes(int32 model);
|
||||
|
||||
int32 GetJumboTaxiFreq();
|
||||
|
||||
void ProcessPhysical(int32 id);
|
||||
void ProcessVehicle(CPhysical *); // todo
|
||||
void ProcessPed(CPhysical *); // todo
|
||||
void ProcessPlane(void *); // todo
|
||||
|
||||
void ClearMissionAudio();
|
||||
// void ProcessReverb();
|
||||
|
||||
bool IsMissionAudioSampleFinished();
|
||||
|
||||
void ProcessEntity(int32);
|
||||
|
||||
void InitialisePoliceRadio();
|
||||
|
||||
// done
|
||||
|
||||
int32 RandomDisplacement(uint32 seed);
|
||||
|
||||
void ReleaseDigitalHandle();
|
||||
void RequireDigitalHandle();
|
||||
void SetDynamicAcousticModelingStatus(bool status);
|
||||
|
||||
bool IsAudioInitialised() const;
|
||||
|
||||
int32 CreateEntity(int32 type, CPhysical *memory);
|
||||
void DestroyEntity(int32 id);
|
||||
void SetEntityStatus(int32 id, bool status);
|
||||
|
||||
void PreTerminateGameSpecificShutdown();
|
||||
void PostTerminateGameSpecificShutdown();
|
||||
|
||||
void GenerateIntegerRandomNumberTable();
|
||||
|
||||
void PlayerJustGotInCar();
|
||||
void PlayerJustLeftCar();
|
||||
|
||||
void Service();
|
||||
void GetPhrase(uint32 *phrase, uint32 *prevPhrase, uint32 sample,
|
||||
uint32 maxOffset);
|
||||
|
|
|
@ -1,9 +1,92 @@
|
|||
#include "common.h"
|
||||
#include "patcher.h"
|
||||
#include "SampleManager.h"
|
||||
|
||||
CSampleManager &cSampleManager = *(CSampleManager *)0x7341E0;
|
||||
uint32 &CSampleManager::nNumOfMp3Files = *(uint32*)0x95CC00;
|
||||
|
||||
uint32 &nNumOfMp3Files = *(uint32 *)0x95CC00;
|
||||
uint8 &num3DProvidersAvailable = *(uint8 *)0x734237;
|
||||
uint32 *asName3DProviders = (uint32 *)0x734238;
|
||||
|
||||
bool CSampleManager::IsMP3RadioChannelAvailable() {
|
||||
return nNumOfMp3Files != 0;
|
||||
}
|
||||
|
||||
WRAPPER void
|
||||
CSampleManager::ReleaseDigitalHandle()
|
||||
{
|
||||
EAXJMP(0x5664B0);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::RequireDigitalHandle()
|
||||
{
|
||||
EAXJMP(0x5664F0);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
char
|
||||
CSampleManager::AutoDetect3DProviders()
|
||||
{
|
||||
EAXJMP(0x565990);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
uint8
|
||||
CSampleManager::GetCDAudioDriveLetter()
|
||||
{
|
||||
EAXJMP(0x566F20);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetEffectsMasterVolume(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567010);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetMusicMasterVolume(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567020);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetEffectsFadeVol(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567030);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetMusicFadeVol(uint8 volume)
|
||||
{
|
||||
EAXJMP(0x567040);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::SetSpeakerConfig(uint32 config)
|
||||
{
|
||||
EAXJMP(0x565900);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
bool
|
||||
CSampleManager::GetChannelUsedFlag(int32 id)
|
||||
{
|
||||
EAXJMP(0x567B00);
|
||||
}
|
||||
|
||||
WRAPPER
|
||||
void
|
||||
CSampleManager::StopChannel(int32 id)
|
||||
{
|
||||
EAXJMP(0x567BE0);
|
||||
}
|
||||
STARTPATCHES
|
||||
InjectHook(0x566490, CSampleManager::IsMP3RadioChannelAvailable, PATCH_JUMP);
|
||||
ENDPATCHES
|
|
@ -1,11 +1,37 @@
|
|||
#pragma once
|
||||
|
||||
class CSampleManager {
|
||||
public:
|
||||
static uint32 &nNumOfMp3Files;
|
||||
struct tSample {
|
||||
int m_nOffset;
|
||||
unsigned int m_nSize;
|
||||
int m_nFrequency;
|
||||
int m_nLoopStart;
|
||||
int m_nLoopEnd;
|
||||
};
|
||||
|
||||
class CSampleManager
|
||||
{
|
||||
public:
|
||||
void ReleaseDigitalHandle();
|
||||
void RequireDigitalHandle();
|
||||
|
||||
char AutoDetect3DProviders();
|
||||
uint8 GetCDAudioDriveLetter();
|
||||
|
||||
void SetEffectsMasterVolume(uint8 volume);
|
||||
void SetMusicMasterVolume(uint8 volume);
|
||||
void SetEffectsFadeVol(uint8 volume);
|
||||
void SetMusicFadeVol(uint8 volume);
|
||||
|
||||
void SetSpeakerConfig(uint32 config);
|
||||
|
||||
bool GetChannelUsedFlag(int32 id);
|
||||
void StopChannel(int32 id);
|
||||
|
||||
static bool IsMP3RadioChannelAvailable();
|
||||
};
|
||||
|
||||
extern uint32 &nNumOfMp3Files;
|
||||
extern uint8 &num3DProvidersAvailable;
|
||||
extern uint32* asName3DProviders;
|
||||
|
||||
extern CSampleManager &cSampleManager;
|
|
@ -32,6 +32,81 @@ enum eCarLock {
|
|||
CARLOCK_SKIP_SHUT_DOORS
|
||||
};
|
||||
|
||||
// TODO: where is this used? Is Vehicle.h the right file?
|
||||
enum eVehicleModel
|
||||
{
|
||||
LANDSTAL,
|
||||
IDAHO,
|
||||
STINGER,
|
||||
LINERUN,
|
||||
PEREN,
|
||||
SENTINEL,
|
||||
PATRIOT,
|
||||
FIRETRUK,
|
||||
TRASH,
|
||||
STRETCH,
|
||||
MANANA,
|
||||
INFERNUS,
|
||||
BLISTA,
|
||||
PONY,
|
||||
MULE,
|
||||
CHEETAH,
|
||||
AMBULAN,
|
||||
FBICAR,
|
||||
MOONBEAM,
|
||||
ESPERANT,
|
||||
TAXI,
|
||||
KURUMA,
|
||||
BOBCAT,
|
||||
MRWHOOP,
|
||||
BFINJECT,
|
||||
CORPSE,
|
||||
POLICE,
|
||||
ENFORCER,
|
||||
SECURICA,
|
||||
BANSHEE,
|
||||
PREDATOR,
|
||||
BUS,
|
||||
RHINO,
|
||||
BARRACKS,
|
||||
TRAIN,
|
||||
CHOPPER,
|
||||
DODO,
|
||||
COACH,
|
||||
CABBIE,
|
||||
STALLION,
|
||||
RUMPO,
|
||||
RCBANDIT,
|
||||
BELLYUP,
|
||||
MRWONGS,
|
||||
MAFIA,
|
||||
YARDIE,
|
||||
YAKUZA,
|
||||
DIABLOS,
|
||||
COLUMB,
|
||||
HOODS,
|
||||
AIRTRAIN,
|
||||
DEADDODO,
|
||||
SPEEDER,
|
||||
REEFER,
|
||||
PANLANT,
|
||||
FLATBED,
|
||||
YANKEE,
|
||||
ESCAPE,
|
||||
BORGNINE,
|
||||
TOYZ,
|
||||
GHOST,
|
||||
CAR151,
|
||||
CAR152,
|
||||
CAR153,
|
||||
CAR154,
|
||||
CAR155,
|
||||
CAR156,
|
||||
CAR157,
|
||||
CAR158,
|
||||
CAR159,
|
||||
};
|
||||
|
||||
enum eDoors {
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue