Merge branch 'tmj-dev'

This commit is contained in:
milek7
2018-01-01 19:02:57 +01:00
6 changed files with 79 additions and 54 deletions

View File

@@ -3508,7 +3508,7 @@ TController::UpdateSituation(double dt) {
// if (mvOccupied->BrakePress<0.08) //to wystarczy, że zadziałają liniowe (nie ma ich jeszcze!!!)
if (fReady < 0.8) // delikatniejszy warunek, obejmuje wszystkie wagony
Ready = true; //żeby uznać za odhamowany
// second pass, for diesel engines verify the engines are fully started
// second pass, for diesel engines verify the (live) engines are fully started
// TODO: cache presence of diesel engines in the consist, to skip this test if there isn't any
p = pVehicles[ 0 ]; // pojazd na czole składu
while( ( true == Ready )
@@ -3520,7 +3520,8 @@ TController::UpdateSituation(double dt) {
|| ( vehicle->EngineType == DieselElectric ) ) {
Ready = (
( vehicle->Vel > 0.5 )
( vehicle->Vel > 0.5 ) // already moving
|| ( false == vehicle->Mains ) // deadweight vehicle
|| ( vehicle->enrot > 0.8 * (
vehicle->EngineType == DieselEngine ?
vehicle->dizel_nmin :

View File

@@ -4762,8 +4762,6 @@ void TDynamicObject::LoadMMediaFile( std::string BaseDir, std::string TypeName,
// szum podczas jazdy:
m_wheelflat.deserialize( parser, sound_type::single, sound_parameters::frequency );
m_wheelflat.owner( this );
m_wheelflat.m_amplitudefactor /= ( 1 + MoverParameters->Vmax );
}
} while( ( token != "" )
@@ -4926,8 +4924,6 @@ void TDynamicObject::LoadMMediaFile( std::string BaseDir, std::string TypeName,
if( true == m_wheelflat.empty() ) {
m_wheelflat.deserialize( "lomotpodkucia.wav 0.23 0.0", sound_type::single, sound_parameters::frequency );
m_wheelflat.owner( this );
m_wheelflat.m_amplitudefactor /= ( 1 + MoverParameters->Vmax );
}
if( true == rscurve.empty() ) {
// hunter-111211: domyslne, gdy brak

107
Train.cpp
View File

@@ -3817,8 +3817,15 @@ bool TTrain::Update( double const Deltatime )
|| (true == mvControlled->Mains) ) ?
true :
false ) );
// NOTE: 'off' variant uses the same test, but opposite resulting states
btLampkaWylSzybkiOff.Turn(
( ( ( m_linebreakerstate > 0 )
|| ( true == mvControlled->Mains ) ) ?
false :
true ) );
btLampkaPrzetw.Turn( !mvControlled->ConverterFlag );
btLampkaPrzetw.Turn( mvControlled->ConverterFlag );
btLampkaPrzetwOff.Turn( false == mvControlled->ConverterFlag );
btLampkaNadmPrzetw.Turn( mvControlled->ConvOvldFlag );
btLampkaOpory.Turn(
@@ -3864,6 +3871,7 @@ bool TTrain::Update( double const Deltatime )
btLampkaNapNastHam.Turn(mvControlled->ActiveDir != 0); // napiecie na nastawniku hamulcowym
btLampkaSprezarka.Turn(mvControlled->CompressorFlag); // mutopsitka dziala
btLampkaSprezarkaOff.Turn( false == mvControlled->CompressorFlag );
// boczniki
unsigned char scp; // Ra: dopisałem "unsigned"
// Ra: w SU45 boczniki wchodzą na MainCtrlPos, a nie na MainCtrlActualPos
@@ -3884,23 +3892,11 @@ bool TTrain::Update( double const Deltatime )
btLampkaBocznik3.Turn( false );
btLampkaBocznik4.Turn( false );
}
/*
{ //sprezarka w drugim wozie
bool comptemp=false;
if (DynamicObject->NextConnected)
if
(TestFlag(mvControlled->Couplers[1].CouplingFlag,ctrain_controll))
comptemp=DynamicObject->NextConnected->MoverParameters->CompressorFlag;
if ((DynamicObject->PrevConnected) && (!comptemp))
if
(TestFlag(mvControlled->Couplers[0].CouplingFlag,ctrain_controll))
comptemp=DynamicObject->PrevConnected->MoverParameters->CompressorFlag;
btLampkaSprezarkaB.Turn(comptemp);
*/
}
else {
// wylaczone
btLampkaWylSzybki.Turn( false );
btLampkaWylSzybkiOff.Turn( false );
btLampkaWysRozr.Turn( false );
btLampkaOpory.Turn( false );
btLampkaStyczn.Turn( false );
@@ -3909,8 +3905,10 @@ bool TTrain::Update( double const Deltatime )
btLampkaBoczniki.Turn( false );
btLampkaNapNastHam.Turn( false );
btLampkaPrzetw.Turn( false );
btLampkaPrzetwOff.Turn( false );
btLampkaNadmPrzetw.Turn( false );
btLampkaSprezarka.Turn( false );
btLampkaSprezarkaOff.Turn( false );
btLampkaBezoporowa.Turn( false );
}
if (mvControlled->Signalling == true) {
@@ -3950,6 +3948,7 @@ bool TTrain::Update( double const Deltatime )
if ( mvControlled->Battery || mvControlled->ConverterFlag ) {
btLampkaWylSzybkiB.Turn( tmp->MoverParameters->Mains );
btLampkaWylSzybkiBOff.Turn( false == tmp->MoverParameters->Mains );
btLampkaOporyB.Turn(tmp->MoverParameters->ResistorsFlagCheck());
btLampkaBezoporowaB.Turn(
@@ -3988,8 +3987,8 @@ bool TTrain::Update( double const Deltatime )
btLampkaPoslizg.Turn(tmp->MoverParameters->SlippingWheels);
//-----------------
btLampkaSprezarkaB.Turn(
tmp->MoverParameters->CompressorFlag); // mutopsitka dziala
btLampkaSprezarkaB.Turn( tmp->MoverParameters->CompressorFlag ); // mutopsitka dziala
btLampkaSprezarkaBOff.Turn( false == tmp->MoverParameters->CompressorFlag );
if ((tmp->MoverParameters->BrakePress >= 0.145f * 10) &&
(mvControlled->Battery == true) && (mvControlled->Signalling == true))
{
@@ -4000,39 +3999,46 @@ bool TTrain::Update( double const Deltatime )
{
btLampkaHamowanie2zes.Turn( false );
}
btLampkaNadmPrzetwB.Turn(
tmp->MoverParameters->ConvOvldFlag); // nadmiarowy przetwornicy?
btLampkaPrzetwB.Turn(
!tmp->MoverParameters->ConverterFlag); // zalaczenie przetwornicy
btLampkaNadmPrzetwB.Turn( tmp->MoverParameters->ConvOvldFlag ); // nadmiarowy przetwornicy?
btLampkaPrzetwB.Turn( tmp->MoverParameters->ConverterFlag ); // zalaczenie przetwornicy
btLampkaPrzetwBOff.Turn( false == tmp->MoverParameters->ConverterFlag );
}
else // wylaczone
{
btLampkaWylSzybkiB.Turn( false );
btLampkaWylSzybkiBOff.Turn( false );
btLampkaOporyB.Turn( false );
btLampkaStycznB.Turn( false );
btLampkaSprezarkaB.Turn( false );
btLampkaSprezarkaBOff.Turn( false );
btLampkaBezoporowaB.Turn( false );
btLampkaHamowanie2zes.Turn( false );
btLampkaNadmPrzetwB.Turn( false );
btLampkaPrzetwB.Turn( false );
btLampkaPrzetwBOff.Turn( false );
}
}
if( mvControlled->Battery || mvControlled->ConverterFlag )
{
switch (mvControlled->TrainType)
{ // zależnie od typu lokomotywy
case dt_EZT:
btLampkaHamienie.Turn((mvControlled->BrakePress >= 0.2) &&
mvControlled->Signalling);
break;
case dt_ET41: // odhamowanie drugiego członu
if (mvSecond) // bo może komuś przyjść do głowy jeżdżenie jednym członem
btLampkaHamienie.Turn(mvSecond->BrakePress < 0.4);
break;
default:
btLampkaHamienie.Turn((mvOccupied->BrakePress >= 0.1) ||
mvControlled->DynamicBrakeFlag);
if( mvControlled->Battery || mvControlled->ConverterFlag ) {
switch (mvControlled->TrainType) {
// zależnie od typu lokomotywy
case dt_EZT: {
btLampkaHamienie.Turn( ( mvControlled->BrakePress >= 0.2 ) && mvControlled->Signalling );
break;
}
case dt_ET41: {
// odhamowanie drugiego członu
if( mvSecond ) {
// bo może komuś przyjść do głowy jeżdżenie jednym członem
btLampkaHamienie.Turn( mvSecond->BrakePress < 0.4 );
}
break;
}
default: {
btLampkaHamienie.Turn( ( mvOccupied->BrakePress >= 0.1 ) || mvControlled->DynamicBrakeFlag );
btLampkaBrakingOff.Turn( ( mvOccupied->BrakePress < 0.1 ) && ( false == mvControlled->DynamicBrakeFlag ) );
break;
}
}
// KURS90
btLampkaMaxSila.Turn(abs(mvControlled->Im) >= 350);
@@ -4063,6 +4069,7 @@ bool TTrain::Update( double const Deltatime )
else
{ // gdy bateria wyłączona
btLampkaHamienie.Turn( false );
btLampkaBrakingOff.Turn( false );
btLampkaMaxSila.Turn( false );
btLampkaPrzekrMaxSila.Turn( false );
btLampkaRadio.Turn( false );
@@ -6063,20 +6070,24 @@ void TTrain::clear_cab_controls()
// Numer 14 jest używany dla buczka SHP w innym miejscu
btLampkaPoslizg.Clear(6);
btLampkaStyczn.Clear(5);
btLampkaNadmPrzetw.Clear((mvControlled->TrainType & (dt_EZT)) ? -1 :
7); // EN57 nie ma tej lampki
btLampkaPrzetw.Clear((mvControlled->TrainType & (dt_EZT)) ? 7 : -1); // za to ma tę
btLampkaNadmPrzetw.Clear(((mvControlled->TrainType & dt_EZT) != 0) ? -1 : 7); // EN57 nie ma tej lampki
btLampkaPrzetw.Clear();
btLampkaPrzetwOff.Clear(((mvControlled->TrainType & dt_EZT) != 0) ? 7 : -1 ); // za to ma tę
btLampkaPrzetwB.Clear();
btLampkaPrzetwBOff.Clear();
btLampkaPrzekRozn.Clear();
btLampkaPrzekRoznPom.Clear();
btLampkaNadmSil.Clear(4);
btLampkaUkrotnienie.Clear();
btLampkaHamPosp.Clear();
btLampkaWylSzybki.Clear(3);
btLampkaWylSzybkiOff.Clear();
btLampkaWylSzybkiB.Clear();
btLampkaWylSzybkiBOff.Clear();
btLampkaNadmWent.Clear(9);
btLampkaNadmSpr.Clear(8);
btLampkaOpory.Clear(2);
btLampkaWysRozr.Clear((mvControlled->TrainType & (dt_ET22)) ? -1 :
10); // ET22 nie ma tej lampki
btLampkaWysRozr.Clear(((mvControlled->TrainType & dt_ET22) != 0) ? -1 : 10); // ET22 nie ma tej lampki
btLampkaBezoporowa.Clear();
btLampkaBezoporowaB.Clear();
btLampkaMaxSila.Clear();
@@ -6100,15 +6111,16 @@ void TTrain::clear_cab_controls()
btLampkaBocznik4.Clear();
btLampkaRadiotelefon.Clear();
btLampkaHamienie.Clear();
btLampkaBrakingOff.Clear();
btLampkaSprezarka.Clear();
btLampkaSprezarkaB.Clear();
btLampkaSprezarkaOff.Clear();
btLampkaSprezarkaBOff.Clear();
btLampkaNapNastHam.Clear();
btLampkaStycznB.Clear();
btLampkaHamowanie1zes.Clear();
btLampkaHamowanie2zes.Clear();
btLampkaNadmPrzetwB.Clear();
btLampkaPrzetwB.Clear();
btLampkaWylSzybkiB.Clear();
btLampkaForward.Clear();
btLampkaBackward.Clear();
// light indicators
@@ -6343,12 +6355,18 @@ bool TTrain::initialize_button(cParser &Parser, std::string const &Label, int co
{ "i-contactors:", btLampkaStyczn },
{ "i-conv_ovld:", btLampkaNadmPrzetw },
{ "i-converter:", btLampkaPrzetw },
{ "i-converteroff:", btLampkaPrzetwOff },
{ "i-converterb:", btLampkaPrzetwB },
{ "i-converterboff:", btLampkaPrzetwBOff },
{ "i-diff_relay:", btLampkaPrzekRozn },
{ "i-diff_relay2:", btLampkaPrzekRoznPom },
{ "i-motor_ovld:", btLampkaNadmSil },
{ "i-train_controll:", btLampkaUkrotnienie },
{ "i-brake_delay_r:", btLampkaHamPosp },
{ "i-mainbreaker:", btLampkaWylSzybki },
{ "i-mainbreakerb:", btLampkaWylSzybkiB },
{ "i-mainbreakeroff:", btLampkaWylSzybkiOff },
{ "i-mainbreakerboff:", btLampkaWylSzybkiBOff },
{ "i-vent_ovld:", btLampkaNadmWent },
{ "i-comp_ovld:", btLampkaNadmSpr },
{ "i-resistors:", btLampkaOpory },
@@ -6369,17 +6387,18 @@ bool TTrain::initialize_button(cParser &Parser, std::string const &Label, int co
{ "i-scnd3:", btLampkaBocznik3 },
{ "i-scnd4:", btLampkaBocznik4 },
{ "i-braking:", btLampkaHamienie },
{ "i-brakingoff:", btLampkaBrakingOff },
{ "i-dynamicbrake:", btLampkaED },
{ "i-braking-ezt:", btLampkaHamowanie1zes },
{ "i-braking-ezt2:", btLampkaHamowanie2zes },
{ "i-compressor:", btLampkaSprezarka },
{ "i-compressorb:", btLampkaSprezarkaB },
{ "i-compressoroff:", btLampkaSprezarkaOff },
{ "i-compressorboff:", btLampkaSprezarkaBOff },
{ "i-voltbrake:", btLampkaNapNastHam },
{ "i-mainbreakerb:", btLampkaWylSzybkiB },
{ "i-resistorsb:", btLampkaOporyB },
{ "i-contactorsb:", btLampkaStycznB },
{ "i-conv_ovldb:", btLampkaNadmPrzetwB },
{ "i-converterb:", btLampkaPrzetwB },
{ "i-forward:", btLampkaForward },
{ "i-backward:", btLampkaBackward },
{ "i-upperlight:", btLampkaUpperLight },

View File

@@ -311,18 +311,22 @@ public: // reszta może by?publiczna
TButton btLampkaStyczn;
TButton btLampkaNadmPrzetw;
TButton btLampkaPrzetw;
TButton btLampkaPrzetwOff;
TButton btLampkaPrzekRozn;
TButton btLampkaPrzekRoznPom;
TButton btLampkaNadmSil;
TButton btLampkaWylSzybki;
TButton btLampkaWylSzybkiOff;
TButton btLampkaNadmWent;
TButton btLampkaNadmSpr;
// yB: drugie lampki dla EP05 i ET42
TButton btLampkaOporyB;
TButton btLampkaStycznB;
TButton btLampkaWylSzybkiB;
TButton btLampkaWylSzybkiBOff;
TButton btLampkaNadmPrzetwB;
TButton btLampkaPrzetwB;
TButton btLampkaPrzetwBOff;
// KURS90 lampki jazdy bezoporowej dla EU04
TButton btLampkaBezoporowaB;
TButton btLampkaBezoporowa;
@@ -345,12 +349,15 @@ public: // reszta może by?publiczna
TButton btLampkaNapNastHam;
TButton btLampkaSprezarka;
TButton btLampkaSprezarkaB;
TButton btLampkaSprezarkaOff;
TButton btLampkaSprezarkaBOff;
TButton btLampkaBocznik1;
TButton btLampkaBocznik2;
TButton btLampkaBocznik3;
TButton btLampkaBocznik4;
TButton btLampkaRadiotelefon;
TButton btLampkaHamienie;
TButton btLampkaBrakingOff;
TButton btLampkaED; // Stele 161228 hamowanie elektrodynamiczne
// KURS90
TButton btLampkaBoczniki;

View File

@@ -425,7 +425,9 @@ opengl_renderer::Render_pass( rendermode const Mode ) {
// run shadowmaps pass before color
Timer::subsystem.gfx_shadows.start();
Render_pass( rendermode::shadows );
Render_pass( rendermode::cabshadows );
if( false == FreeFlyModeFlag ) {
Render_pass( rendermode::cabshadows );
}
Timer::subsystem.gfx_shadows.stop();
m_debugtimestext += "shadows: " + to_string( Timer::subsystem.gfx_shadows.average(), 2 ) + " msec (" + std::to_string( m_cellqueue.size() ) + " sectors) ";
#ifdef EU07_USE_DEBUG_SHADOWMAP
@@ -758,7 +760,7 @@ opengl_renderer::setup_pass( renderpass_config &Config, rendermode const Mode, f
switch( Mode ) {
case rendermode::color: { Config.draw_range = Global::BaseDrawRange; break; }
case rendermode::shadows: { Config.draw_range = Global::BaseDrawRange * 0.5f; break; }
case rendermode::cabshadows: { Config.draw_range = 10.f; break; }
case rendermode::cabshadows: { Config.draw_range = ( Global::pWorld->train()->Dynamic()->MoverParameters->ActiveCab != 0 ? 10.f : 20.f ); break; }
case rendermode::reflections: { Config.draw_range = Global::BaseDrawRange; break; }
case rendermode::pickcontrols: { Config.draw_range = 50.f; break; }
case rendermode::pickscenery: { Config.draw_range = Global::BaseDrawRange * 0.5f; break; }

View File

@@ -1,5 +1,5 @@
#pragma once
#define VERSION_MAJOR 17
#define VERSION_MINOR 1227
#define VERSION_REVISION 1
#define VERSION_MINOR 1231
#define VERSION_REVISION 0