mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01: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();
|
||||
}
|
||||
}
|
||||
if (MoverParameters->TrainType == dt_ET40 && rsPrzekladnia)
|
||||
if (rsPrzekladnia)
|
||||
{
|
||||
if (MoverParameters->Vel > 0.1)
|
||||
{
|
||||
freq = MoverParameters->Vel;
|
||||
rsPrzekladnia->pitch(freq);
|
||||
vol = MoverParameters->Vel;
|
||||
rsPrzekladnia->loop().position(GetPosition()).gain(vol).play();
|
||||
}
|
||||
rsPrzekladnia->pitch(MoverParameters->Vel).gain(MoverParameters->Vel)
|
||||
.position(GetPosition()).play();
|
||||
else
|
||||
rsPrzekladnia->stop();
|
||||
}
|
||||
@@ -4663,10 +4659,10 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
||||
>> token
|
||||
>> attenuation;
|
||||
rsSilnik = sound_man->create_sound(token);
|
||||
parser.getTokens( 4, false );
|
||||
if (rsSilnik)
|
||||
{
|
||||
rsSilnik->dist(attenuation);
|
||||
parser.getTokens( 4, false );
|
||||
|
||||
parser >> rsSilnik->gain_mul;
|
||||
if( MoverParameters->EngineType == DieselEngine ) {
|
||||
@@ -4699,10 +4695,10 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
||||
>> token
|
||||
>> attenuation;
|
||||
rsWentylator = sound_man->create_sound(token);
|
||||
parser.getTokens( 4, false );
|
||||
if (rsWentylator)
|
||||
{
|
||||
rsWentylator->dist(attenuation);
|
||||
parser.getTokens( 4, false );
|
||||
parser
|
||||
>> rsWentylator->gain_mul
|
||||
>> rsWentylator->gain_off
|
||||
@@ -4713,22 +4709,32 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
||||
}
|
||||
}
|
||||
|
||||
else if( ( token == "transmission:" )
|
||||
&& ( MoverParameters->EngineType == ElectricSeriesMotor ) ) {
|
||||
else if(token == "transmission:") {
|
||||
// plik z dzwiekiem, mnozniki i ofsety amp. i czest.
|
||||
double attenuation;
|
||||
parser.getTokens( 2, false );
|
||||
parser
|
||||
>> token
|
||||
>> attenuation;
|
||||
rsPrzekladnia = sound_man->create_sound(token);
|
||||
std::string name;
|
||||
float attenuation, gain_mul = 0.029f, gain_off = 0.1f, pitch_mul = 0.005f, pitch_off = 1.0f;
|
||||
parser.getTokens(1, false);
|
||||
if (parser.peek() != "{")
|
||||
{
|
||||
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)
|
||||
{
|
||||
rsPrzekladnia->dist(attenuation);
|
||||
rsPrzekladnia->gain_mul = 0.029;
|
||||
rsPrzekladnia->gain_off = 0.1;
|
||||
rsPrzekladnia->pitch_mul = 0.005;
|
||||
rsPrzekladnia->pitch_off = 1.0;
|
||||
rsPrzekladnia->gain_mul = gain_mul;
|
||||
rsPrzekladnia->gain_off = gain_off;
|
||||
rsPrzekladnia->pitch_mul = pitch_mul;
|
||||
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)
|
||||
{
|
||||
name.erase(name.rfind('.'));
|
||||
size_t pos = name.rfind('.');
|
||||
if (pos != name.npos)
|
||||
name.erase(pos);
|
||||
|
||||
std::replace(name.begin(), name.end(), '\\', '/');
|
||||
|
||||
auto search = buffers.find(name);
|
||||
@@ -86,7 +89,10 @@ std::string sound_manager::find_file(std::string name)
|
||||
if (FileExists(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" };
|
||||
for (auto const &ext : exts)
|
||||
if (FileExists(name + ext))
|
||||
@@ -118,7 +124,9 @@ sound_buffer* sound_manager::get_buffer(std::string const &name)
|
||||
|
||||
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);
|
||||
|
||||
return buf;
|
||||
|
||||
Reference in New Issue
Block a user