mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 10:29:19 +02:00
Merge remote-tracking branch 'Milek7/lua' into mover_in_c++
This commit is contained in:
48
DynObj.cpp
48
DynObj.cpp
@@ -3690,15 +3690,11 @@ void TDynamicObject::RenderSounds()
|
|||||||
rsWentylator->stop();
|
rsWentylator->stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (MoverParameters->TrainType == dt_ET40 && rsPrzekladnia)
|
if (rsPrzekladnia)
|
||||||
{
|
{
|
||||||
if (MoverParameters->Vel > 0.1)
|
if (MoverParameters->Vel > 0.1)
|
||||||
{
|
rsPrzekladnia->pitch(MoverParameters->Vel).gain(MoverParameters->Vel)
|
||||||
freq = MoverParameters->Vel;
|
.position(GetPosition()).play();
|
||||||
rsPrzekladnia->pitch(freq);
|
|
||||||
vol = MoverParameters->Vel;
|
|
||||||
rsPrzekladnia->loop().position(GetPosition()).gain(vol).play();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
rsPrzekladnia->stop();
|
rsPrzekladnia->stop();
|
||||||
}
|
}
|
||||||
@@ -4663,10 +4659,10 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
|||||||
>> token
|
>> token
|
||||||
>> attenuation;
|
>> attenuation;
|
||||||
rsSilnik = sound_man->create_sound(token);
|
rsSilnik = sound_man->create_sound(token);
|
||||||
|
parser.getTokens( 4, false );
|
||||||
if (rsSilnik)
|
if (rsSilnik)
|
||||||
{
|
{
|
||||||
rsSilnik->dist(attenuation);
|
rsSilnik->dist(attenuation);
|
||||||
parser.getTokens( 4, false );
|
|
||||||
|
|
||||||
parser >> rsSilnik->gain_mul;
|
parser >> rsSilnik->gain_mul;
|
||||||
if( MoverParameters->EngineType == DieselEngine ) {
|
if( MoverParameters->EngineType == DieselEngine ) {
|
||||||
@@ -4699,10 +4695,10 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
|||||||
>> token
|
>> token
|
||||||
>> attenuation;
|
>> attenuation;
|
||||||
rsWentylator = sound_man->create_sound(token);
|
rsWentylator = sound_man->create_sound(token);
|
||||||
|
parser.getTokens( 4, false );
|
||||||
if (rsWentylator)
|
if (rsWentylator)
|
||||||
{
|
{
|
||||||
rsWentylator->dist(attenuation);
|
rsWentylator->dist(attenuation);
|
||||||
parser.getTokens( 4, false );
|
|
||||||
parser
|
parser
|
||||||
>> rsWentylator->gain_mul
|
>> rsWentylator->gain_mul
|
||||||
>> rsWentylator->gain_off
|
>> rsWentylator->gain_off
|
||||||
@@ -4713,22 +4709,32 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if( ( token == "transmission:" )
|
else if(token == "transmission:") {
|
||||||
&& ( MoverParameters->EngineType == ElectricSeriesMotor ) ) {
|
|
||||||
// plik z dzwiekiem, mnozniki i ofsety amp. i czest.
|
// plik z dzwiekiem, mnozniki i ofsety amp. i czest.
|
||||||
double attenuation;
|
std::string name;
|
||||||
parser.getTokens( 2, false );
|
float attenuation, gain_mul = 0.029f, gain_off = 0.1f, pitch_mul = 0.005f, pitch_off = 1.0f;
|
||||||
parser
|
parser.getTokens(1, false);
|
||||||
>> token
|
if (parser.peek() != "{")
|
||||||
>> attenuation;
|
{
|
||||||
rsPrzekladnia = sound_man->create_sound(token);
|
parser >> name;
|
||||||
|
parser.getTokens();
|
||||||
|
parser >> attenuation;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cParser extp(parser.getToken<std::string>(false, "}"));
|
||||||
|
extp.getTokens(6, false);
|
||||||
|
extp >> name >> attenuation >> gain_mul >> gain_off >> pitch_mul >> pitch_off;
|
||||||
|
}
|
||||||
|
|
||||||
|
rsPrzekladnia = sound_man->create_sound(name);
|
||||||
if (rsPrzekladnia)
|
if (rsPrzekladnia)
|
||||||
{
|
{
|
||||||
rsPrzekladnia->dist(attenuation);
|
rsPrzekladnia->dist(attenuation);
|
||||||
rsPrzekladnia->gain_mul = 0.029;
|
rsPrzekladnia->gain_mul = gain_mul;
|
||||||
rsPrzekladnia->gain_off = 0.1;
|
rsPrzekladnia->gain_off = gain_off;
|
||||||
rsPrzekladnia->pitch_mul = 0.005;
|
rsPrzekladnia->pitch_mul = pitch_mul;
|
||||||
rsPrzekladnia->pitch_off = 1.0;
|
rsPrzekladnia->pitch_off = pitch_off;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
14
sound.cpp
14
sound.cpp
@@ -71,7 +71,10 @@ sound_manager::~sound_manager()
|
|||||||
|
|
||||||
sound_buffer* sound_manager::find_buffer(std::string name)
|
sound_buffer* sound_manager::find_buffer(std::string name)
|
||||||
{
|
{
|
||||||
name.erase(name.rfind('.'));
|
size_t pos = name.rfind('.');
|
||||||
|
if (pos != name.npos)
|
||||||
|
name.erase(pos);
|
||||||
|
|
||||||
std::replace(name.begin(), name.end(), '\\', '/');
|
std::replace(name.begin(), name.end(), '\\', '/');
|
||||||
|
|
||||||
auto search = buffers.find(name);
|
auto search = buffers.find(name);
|
||||||
@@ -86,7 +89,10 @@ std::string sound_manager::find_file(std::string name)
|
|||||||
if (FileExists(name))
|
if (FileExists(name))
|
||||||
return name;
|
return name;
|
||||||
|
|
||||||
name.erase(name.rfind('.'));
|
size_t pos = name.rfind('.');
|
||||||
|
if (pos != name.npos)
|
||||||
|
name.erase(pos);
|
||||||
|
|
||||||
std::vector<std::string> exts { ".wav", ".WAV", ".flac", ".ogg" };
|
std::vector<std::string> exts { ".wav", ".WAV", ".flac", ".ogg" };
|
||||||
for (auto const &ext : exts)
|
for (auto const &ext : exts)
|
||||||
if (FileExists(name + ext))
|
if (FileExists(name + ext))
|
||||||
@@ -118,7 +124,9 @@ sound_buffer* sound_manager::get_buffer(std::string const &name)
|
|||||||
|
|
||||||
buf = new sound_buffer(file);
|
buf = new sound_buffer(file);
|
||||||
|
|
||||||
file.erase(file.rfind('.'));
|
size_t pos = file.rfind('.');
|
||||||
|
if (pos != file.npos)
|
||||||
|
file.erase(pos);
|
||||||
buffers.emplace(file, buf);
|
buffers.emplace(file, buf);
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
|
|||||||
Reference in New Issue
Block a user