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:
26
DynObj.cpp
26
DynObj.cpp
@@ -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();
|
||||
|
||||
1
DynObj.h
1
DynObj.h
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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: {
|
||||
|
||||
Reference in New Issue
Block a user