mirror of
https://github.com/dashr9230/SA-MP.git
synced 2025-02-21 22:52:04 +00:00
[saco] Implement CAudio class member functions
Implements: * `CAudio::GetRadioStation()` * `CAudio::StartRadio(...)` * `CAudio::GetRadioVolume()` * `CAudio::StopOutdoorAmbienceTrack()` * `CAudio::SetOutdoorAmbienceTrack(...)` * `CAudio::PlaySound(...)` * `CAudio::IsOutdoorAmbienceTrackDisabled()`
This commit is contained in:
parent
f398b9c82c
commit
ab608ee0ef
@ -1,36 +1,98 @@
|
||||
|
||||
#include "audio.h"
|
||||
|
||||
void CAudio::GetRadioStation()
|
||||
//-----------------------------------------------------------
|
||||
|
||||
int CAudio::GetRadioStation()
|
||||
{
|
||||
// TODO: CAudio::sub_100A2210 100A2210
|
||||
int iRadioStation = 0;
|
||||
|
||||
_asm mov ecx, 0x8CB6F8
|
||||
_asm xor eax, eax
|
||||
_asm mov al, [ecx+233]
|
||||
_asm mov iRadioStation, eax
|
||||
|
||||
if(iRadioStation <= 12) return iRadioStation;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void CAudio::StartRadio()
|
||||
//-----------------------------------------------------------
|
||||
|
||||
void CAudio::StartRadio(int iStation)
|
||||
{
|
||||
// TODO: CAudio::sub_100A2240 100A2240
|
||||
_asm push 0
|
||||
_asm push iStation
|
||||
_asm mov ecx, 0xB6BC90
|
||||
_asm mov edx, 0x507DC0
|
||||
_asm call edx
|
||||
}
|
||||
|
||||
void CAudio::GetRadioVolume()
|
||||
//-----------------------------------------------------------
|
||||
|
||||
float CAudio::GetRadioVolume()
|
||||
{
|
||||
// TODO: CAudio::sub_100A2280 100A2280
|
||||
return *(float*)0xB5FCC8;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
|
||||
void CAudio::StopOutdoorAmbienceTrack()
|
||||
{
|
||||
// TODO: CAudio::sub_100A2290 100A2290
|
||||
_asm mov ecx, 0x8AC15C
|
||||
_asm mov edx, 0x4D6D60
|
||||
_asm call edx
|
||||
}
|
||||
|
||||
void CAudio::SetOutdoorAmbienceTrack()
|
||||
//-----------------------------------------------------------
|
||||
|
||||
void CAudio::SetOutdoorAmbienceTrack(int iTrack)
|
||||
{
|
||||
// TODO: CAudio::sub_100A22A0 100A22A0
|
||||
_asm push iTrack
|
||||
_asm mov ecx, 0x8AC15C
|
||||
_asm mov edx, 0x4D6D50
|
||||
_asm call edx
|
||||
}
|
||||
|
||||
void CAudio::Play()
|
||||
//-----------------------------------------------------------
|
||||
|
||||
void CAudio::PlaySound(int iSound, float fX, float fY, float fZ)
|
||||
{
|
||||
// TODO: CAudio::sub_100A22C0 100A22C0
|
||||
if(iSound == 0)
|
||||
{
|
||||
if(field_0) {
|
||||
ScriptCommand(&unload_wav, 1);
|
||||
field_0 = iSound;
|
||||
}
|
||||
StopOutdoorAmbienceTrack();
|
||||
field_4 = false;
|
||||
}
|
||||
else if(iSound == 1)
|
||||
{
|
||||
field_4 = true;
|
||||
}
|
||||
else if(iSound < 1000)
|
||||
{
|
||||
SetOutdoorAmbienceTrack(iSound);
|
||||
}
|
||||
else if(iSound < 2000)
|
||||
{
|
||||
ScriptCommand(&unload_wav, 1);
|
||||
ScriptCommand(&load_wav, 1, iSound);
|
||||
ScriptCommand(&set_wav_at_location, 1, fX, fY, fZ);
|
||||
field_0 = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ScriptCommand(&play_sound, fX, fY, fZ, iSound);
|
||||
}
|
||||
}
|
||||
|
||||
void CAudio::IsOutdoorAmbienceTrackDisabled()
|
||||
//-----------------------------------------------------------
|
||||
|
||||
bool CAudio::IsOutdoorAmbienceTrackDisabled()
|
||||
{
|
||||
// TODO: CAudio::sub_100A23A0 100A23A0
|
||||
}
|
||||
return field_4;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
|
@ -8,16 +8,15 @@ public:
|
||||
char field_4;
|
||||
|
||||
CAudio() {
|
||||
// TODO: CAudio::CAudio()
|
||||
field_0 = 0;
|
||||
field_4 = 0;
|
||||
}
|
||||
};
|
||||
|
||||
void GetRadioStation();
|
||||
void StartRadio();
|
||||
void GetRadioVolume();
|
||||
int GetRadioStation();
|
||||
void StartRadio(int iStation);
|
||||
float GetRadioVolume();
|
||||
void StopOutdoorAmbienceTrack();
|
||||
void SetOutdoorAmbienceTrack();
|
||||
void Play();
|
||||
void IsOutdoorAmbienceTrackDisabled();
|
||||
void SetOutdoorAmbienceTrack(int iTrack);
|
||||
void PlaySound(int iSound, float fX, float fY, float fZ);
|
||||
bool IsOutdoorAmbienceTrackDisabled();
|
||||
};
|
||||
|
@ -39,6 +39,8 @@ const SCRIPT_COMMAND create_icon_marker_sphere = { 0x02A7, "fffiv" };
|
||||
|
||||
const SCRIPT_COMMAND set_actor_can_be_decapitated = { 0x0446, "ii" };
|
||||
|
||||
const SCRIPT_COMMAND play_sound = { 0x018c, "fffi" };
|
||||
|
||||
const SCRIPT_COMMAND enable_train_traffic = { 0x06d7, "i" };
|
||||
|
||||
const SCRIPT_COMMAND refresh_streaming_at = { 0x04E4, "ff" };
|
||||
@ -60,7 +62,11 @@ const SCRIPT_COMMAND lock_camera_position = { 0x930, "i" };
|
||||
const SCRIPT_COMMAND create_marker_at = { 0x2A8, "fffiv" };
|
||||
|
||||
|
||||
|
||||
const SCRIPT_COMMAND load_wav = { 0x3CF, "ii" };
|
||||
const SCRIPT_COMMAND is_wav_loaded = { 0x3D0, "i" };
|
||||
const SCRIPT_COMMAND play_wav = { 0x3D1, "i" };
|
||||
const SCRIPT_COMMAND unload_wav = { 0x40D, "i" };
|
||||
const SCRIPT_COMMAND set_wav_at_location = { 0x3D7, "ifff" };
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user