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

ai acceleration logic tweak, minor audio tweaks, minor bug fixes

This commit is contained in:
tmj-fstate
2019-11-27 23:55:08 +01:00
parent e3cc06af23
commit fa42655808
12 changed files with 122 additions and 63 deletions

View File

@@ -2336,11 +2336,11 @@ bool TMoverParameters::DecScndCtrl(int CtrlSpeed)
// Q: 20160710
// załączenie rozrządu
// *************************************************************************************************
bool TMoverParameters::CabActivisation(void)
bool TMoverParameters::CabActivisation( bool const Force )
{
bool OK = false;
OK = (CabNo == 0); // numer kabiny, z której jest sterowanie
OK = Force || (CabNo == 0); // numer kabiny, z której jest sterowanie
if (OK)
{
CabNo = ActiveCab; // sterowanie jest z kabiny z obsadą
@@ -4412,9 +4412,16 @@ void TMoverParameters::ComputeConstans(void)
FrictConst1 += Cx * dragarea;
}
Curvature = abs(RunningShape.R); // zero oznacza nieskończony promień
if (Curvature > 0.0)
Curvature = 1.0 / Curvature;
if( CategoryFlag & 1 ) {
Curvature = (
RunningShape.R == 0.0 ? // zero oznacza nieskończony promień
0.0 :
1.0 / std::abs( RunningShape.R ) );
}
else {
// vehicles other than trains don't experience friction against the rail on curves
Curvature = 0.0;
}
// opór składu na łuku (youBy): +(500*TrackW/R)*TotalMassxg*0.001 do FrictConst2s/d
FrictConst2s = (TotalMassxg * ((500.0 * TrackW * Curvature) + 2.5 - HideModifier +
2 * BearingF / dtrain_bearing)) *
@@ -5082,7 +5089,7 @@ double TMoverParameters::TractionForce( double dt ) {
switch( EngineType ) {
case TEngineType::Dumb: {
PosRatio = ( MainCtrlPos + ScndCtrlPos ) / ( MainCtrlPosNo + ScndCtrlPosNo + 0.01 );
EnginePower = 1000.0 * Power * PosRatio;
EnginePower = /*1000.0 **/ Power * PosRatio;
break;
}
case TEngineType::DieselEngine: {
@@ -5154,14 +5161,16 @@ double TMoverParameters::TractionForce( double dt ) {
{
if (Vel > 0.1)
{
Ft = Min0R(1000.0 * Power / abs(V), Ftmax) * PosRatio;
Ft = std::min(1000.0 * Power / std::abs(V), Ftmax) * PosRatio;
}
else
else {
Ft = Ftmax * PosRatio;
}
Ft = Ft * DirAbsolute; // ActiveDir*CabNo;
}
else
else {
Ft = 0;
}
break;
} // Dumb