16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-18 01:59:19 +02:00

hacks for fake diesel

This commit is contained in:
milek7
2019-04-23 02:56:33 +02:00
parent aae73106f4
commit 0a947ad094
4 changed files with 28 additions and 3 deletions

View File

@@ -3545,6 +3545,12 @@ bool TDynamicObject::Update(double dt, double dt1)
*/
}
if (MoverParameters->EnginePowerSource.SourceType == TPowerSource::CurrentCollector
&& MoverParameters->EnginePowerSource.CollectorParameters.FakePower) {
MoverParameters->PantRearVolt = 0.95 * MoverParameters->EnginePowerSource.MaxVoltage;
MoverParameters->PantFrontVolt = 0.95 * MoverParameters->EnginePowerSource.MaxVoltage;
}
// mirrors
if( MoverParameters->Vel > 5.0 ) {
// automatically fold mirrors when above velocity threshold
@@ -5019,6 +5025,10 @@ void TDynamicObject::LoadMMediaFile( std::string const &TypeName, std::string co
MoverParameters->EngineType == TEngineType::DieselElectric ? 1 :
MoverParameters->nmax * 60 + MoverParameters->Power * 3 ) );
m_powertrainsounds.engine.m_amplitudefactor /= amplitudedivisor;
} else if (token == "fakeengine:") {
m_powertrainsounds.fake_engine.deserialize(parser, sound_type::single);
m_powertrainsounds.fake_engine.owner(this);
}
else if( token == "dieselinc:" ) {
@@ -5502,8 +5512,7 @@ void TDynamicObject::LoadMMediaFile( std::string const &TypeName, std::string co
} else if (token == "shutdown:") {
m_powertrainsounds.engine_shutdown.deserialize(parser, sound_type::single);
m_powertrainsounds.engine_shutdown.owner(this);
}
else if( token == "engageslippery:" ) {
} else if( token == "engageslippery:" ) {
// tarcie tarcz sprzegla:
m_powertrainsounds.rsEngageSlippery.deserialize( parser, sound_type::single, sound_parameters::amplitude | sound_parameters::frequency );
m_powertrainsounds.rsEngageSlippery.owner( this );
@@ -6639,6 +6648,19 @@ TDynamicObject::powertrain_sounds::render( TMoverParameters const &Vehicle, doub
engine.stop();
}
}
if (Vehicle.Mains) {
float power = std::clamp(Vehicle.eimv_pr, 0.0, 1.0);
fake_engine
.pitch(fake_engine.m_frequencyoffset + power * fake_engine.m_frequencyfactor)
.gain(fake_engine.m_amplitudeoffset + power * fake_engine.m_amplitudefactor)
.play(sound_flags::exclusive | sound_flags::looping);
}
else {
fake_engine.stop();
}
engine_volume = interpolate( engine_volume, volume, 0.25 );
if( engine_volume < 0.05 ) {
engine.stop();

View File

@@ -357,6 +357,7 @@ private:
sound_source linebreaker_open { sound_placement::engine };
sound_source rsWentylator { sound_placement::engine }; // McZapkie-030302
sound_source engine { sound_placement::engine }; // generally diesel engine
sound_source fake_engine { sound_placement::engine };
sound_source engine_ignition { sound_placement::engine }; // moved from cab
sound_source engine_shutdown { sound_placement::engine };
bool engine_state_last { false }; // helper, cached previous state of the engine

View File

@@ -423,6 +423,7 @@ struct TCurrentCollector {
double InsetV; //minimalne napięcie wymagane do załączenia
double MinPress; //minimalne ciśnienie do załączenia WS
double MaxPress; //maksymalne ciśnienie za reduktorem
bool FakePower;
//inline TCurrentCollector() {
// CollectorsNo = 0;
// MinH, MaxH, CSW, MinV, MaxV = 0.0;

View File

@@ -9142,7 +9142,7 @@ void TMoverParameters::LoadFIZ_PowerParamsDecode( TPowerParameters &Powerparamet
auto &collectorparameters = Powerparameters.CollectorParameters;
collectorparameters = TCurrentCollector { 0, 0, 0, 0, 0, 0, false, 0, 0, 0 };
collectorparameters = TCurrentCollector { 0, 0, 0, 0, 0, 0, false, 0, 0, 0, false };
extract_value( collectorparameters.CollectorsNo, "CollectorsNo", Line, "" );
extract_value( collectorparameters.MinH, "MinH", Line, "" );
@@ -9161,6 +9161,7 @@ void TMoverParameters::LoadFIZ_PowerParamsDecode( TPowerParameters &Powerparamet
//maksymalne ciśnienie za reduktorem
// collectorparameters.MaxPress = 5.0 + 0.001 * ( Random( 50 ) - Random( 50 ) );
extract_value( collectorparameters.MaxPress, "MaxPress", Line, "5.0" );
extract_value( collectorparameters.FakePower, "FakePower", Line, "" );
break;
}
case TPowerSource::PowerCable: {