cooling fans state indicator, minor diesel engine logic tweaks

This commit is contained in:
tmj-fstate
2019-03-17 19:08:53 +01:00
parent 8d67338950
commit 04db86baa6
5 changed files with 25 additions and 9 deletions

View File

@@ -4108,9 +4108,14 @@ TController::UpdateSituation(double dt) {
// TODO: check if this situation still happens and the hack is still needed
if( ( false == AIControllFlag )
&& ( iDrivigFlags & moveDoorOpened )
&& ( mvOccupied->Doors.close_control != control_t::driver )
&& ( mvControlling->MainCtrlPos > ( mvControlling->EngineType != TEngineType::DieselEngine ? 0 : 1 ) ) ) { // for diesel 1st position is effectively 0
Doors( false );
&& ( mvOccupied->Doors.close_control != control_t::driver ) ) {
// for diesel engines react when engine is put past idle revolutions
// for others straightforward master controller check
if( ( mvControlling->EngineType == TEngineType::DieselEngine ?
mvControlling->RList[ mvControlling->MainCtrlPos ].Mn > 0 :
mvControlling->MainCtrlPos > 0 ) ) {
Doors( false );
}
}
// basic situational ai operations

View File

@@ -4066,7 +4066,7 @@ void TDynamicObject::RenderSounds() {
else {
// basic clash
couplersounds.dsbBufferClamp
.gain( 0.65f )
.gain( 1.f )
.play( sound_flags::exclusive );
}
}
@@ -4091,7 +4091,7 @@ void TDynamicObject::RenderSounds() {
else {
// basic clash
couplersounds.dsbCouplerStretch
.gain( 0.65f )
.gain( 1.f )
.play( sound_flags::exclusive );
}
}

View File

@@ -6135,12 +6135,13 @@ bool TMoverParameters::dizel_StartupCheck() {
// test the fuel pump
// TODO: add fuel pressure check
if( false == FuelPump.is_active ) {
if( ( RList[ MainCtrlPos ].R == 0.0 )
|| ( false == FuelPump.is_active ) ) {
engineisready = false;
if( FuelPump.start_type == start_t::manual ) {
// if( FuelPump.start_type == start_t::manual ) {
// with manual pump control startup procedure is done only once per starter switch press
dizel_startup = false;
}
// }
}
// test the oil pump
if( ( false == OilPump.is_active )

View File

@@ -5507,7 +5507,12 @@ bool TTrain::Update( double const Deltatime )
}
if (ggIgnitionKey.SubModel)
{
ggIgnitionKey.UpdateValue(mvControlled->dizel_startup);
ggIgnitionKey.UpdateValue(
( mvControlled->Mains )
|| ( mvControlled->dizel_startup )
|| ( fMainRelayTimer > 0.f )
|| ( ggMainButton.GetDesiredValue() > 0.95 )
|| ( ggMainOnButton.GetDesiredValue() > 0.95 ) );
ggIgnitionKey.Update();
}
}
@@ -5718,6 +5723,7 @@ bool TTrain::Update( double const Deltatime )
// others
btLampkaMalfunction.Turn( mvControlled->dizel_heat.PA );
btLampkaMotorBlowers.Turn( ( mvControlled->MotorBlowers[ end::front ].is_active ) && ( mvControlled->MotorBlowers[ end::rear ].is_active ) );
btLampkaCoolingFans.Turn( mvControlled->RventRot > 1.0 );
// universal devices state indicators
for( auto idx = 0; idx < btUniversals.size(); ++idx ) {
btUniversals[ idx ].Turn( ggUniversals[ idx ].GetValue() > 0.5 );
@@ -5778,6 +5784,7 @@ bool TTrain::Update( double const Deltatime )
// others
btLampkaMalfunction.Turn( false );
btLampkaMotorBlowers.Turn( false );
btLampkaCoolingFans.Turn( false );
// universal devices state indicators
for( auto &universal : btUniversals ) {
universal.Turn( false );
@@ -7415,6 +7422,7 @@ void TTrain::clear_cab_controls()
btLampkaMalfunction.Clear();
btLampkaMalfunctionB.Clear();
btLampkaMotorBlowers.Clear();
btLampkaCoolingFans.Clear();
ggLeftLightButton.Clear();
ggRightLightButton.Clear();
@@ -7759,6 +7767,7 @@ bool TTrain::initialize_button(cParser &Parser, std::string const &Label, int co
{ "i-highcurrent:", btLampkaWysRozr },
{ "i-vent_trim:", btLampkaWentZaluzje },
{ "i-motorblowers:", btLampkaMotorBlowers },
{ "i-coolingfans:", btLampkaCoolingFans },
{ "i-trainheating:", btLampkaOgrzewanieSkladu },
{ "i-security_aware:", btLampkaCzuwaka },
{ "i-security_cabsignal:", btLampkaSHP },

View File

@@ -582,6 +582,7 @@ public: // reszta może by?publiczna
TButton btLampkaMalfunction;
TButton btLampkaMalfunctionB;
TButton btLampkaMotorBlowers;
TButton btLampkaCoolingFans;
TButton btCabLight; // hunter-171012: lampa oswietlajaca kabine
// Ra 2013-12: wirtualne "lampki" do odbijania na haslerze w PoKeys