mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 14:39:18 +02:00
ignition sound enhancement, diesel engine volume calculation fix, duplicated event execution fix
This commit is contained in:
15
DynObj.cpp
15
DynObj.cpp
@@ -4840,7 +4840,7 @@ void TDynamicObject::LoadMMediaFile( std::string BaseDir, std::string TypeName,
|
||||
|
||||
auto const amplitudedivisor = static_cast<float>( (
|
||||
MoverParameters->EngineType == DieselEngine ? 1 :
|
||||
MoverParameters->EngineType == DieselElectric ? MoverParameters->Power * 3 :
|
||||
MoverParameters->EngineType == DieselElectric ? 1 :
|
||||
MoverParameters->nmax * 60 + MoverParameters->Power * 3 ) );
|
||||
m_powertrainsounds.engine.m_amplitudefactor /= amplitudedivisor;
|
||||
}
|
||||
@@ -5912,10 +5912,12 @@ TDynamicObject::powertrain_sounds::render( TMoverParameters const &Vehicle, doub
|
||||
switch( Vehicle.EngineType ) {
|
||||
// TODO: check calculated values
|
||||
case DieselElectric: {
|
||||
|
||||
volume =
|
||||
engine.m_amplitudeoffset
|
||||
+ engine.m_amplitudefactor * ( Vehicle.EnginePower / 1000 / Vehicle.Power )
|
||||
+ 0.2 * ( Vehicle.enrot * 60 ) / ( Vehicle.DElist[ Vehicle.MainCtrlPosNo ].RPM );
|
||||
+ engine.m_amplitudefactor * (
|
||||
0.25 * ( Vehicle.EnginePower / Vehicle.Power )
|
||||
+ 0.75 * ( Vehicle.enrot * 60 ) / ( Vehicle.DElist[ Vehicle.MainCtrlPosNo ].RPM ) );
|
||||
break;
|
||||
}
|
||||
case DieselEngine: {
|
||||
@@ -5923,7 +5925,7 @@ TDynamicObject::powertrain_sounds::render( TMoverParameters const &Vehicle, doub
|
||||
volume = (
|
||||
Vehicle.EnginePower > 0 ?
|
||||
engine.m_amplitudeoffset + engine.m_amplitudefactor * Vehicle.dizel_fill :
|
||||
engine.m_amplitudeoffset * 0.9f + engine.m_amplitudefactor * std::fabs( Vehicle.enrot / Vehicle.dizel_nmax ) );
|
||||
engine.m_amplitudeoffset + engine.m_amplitudefactor * std::fabs( Vehicle.enrot / Vehicle.dizel_nmax ) );
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -6043,7 +6045,10 @@ TDynamicObject::powertrain_sounds::render( TMoverParameters const &Vehicle, doub
|
||||
|| ( Vehicle.EngineType == DieselElectric ) ) {
|
||||
|
||||
if( true == Vehicle.dizel_enginestart ) {
|
||||
engine_ignition.play( sound_flags::exclusive );
|
||||
engine_ignition
|
||||
.pitch( engine_ignition.m_frequencyoffset + engine_ignition.m_frequencyfactor * 1.f )
|
||||
.gain( engine_ignition.m_amplitudeoffset + engine_ignition.m_amplitudefactor * 1.f )
|
||||
.play( sound_flags::exclusive );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user