From 5380666fa60061e62fb54b82cf7dc6937cbff44a Mon Sep 17 00:00:00 2001 From: milek7 Date: Tue, 3 Apr 2018 19:59:29 +0200 Subject: [PATCH] remove smooth brake control for levers other than FV4a --- Globals.cpp | 6 +++++- Globals.h | 3 ++- Train.cpp | 28 +++++++++------------------- command.cpp | 1 - version.h | 2 +- 5 files changed, 17 insertions(+), 23 deletions(-) diff --git a/Globals.cpp b/Globals.cpp index 9f92db02..0c5a302c 100644 --- a/Globals.cpp +++ b/Globals.cpp @@ -524,10 +524,14 @@ global_settings::ConfigParse(cParser &Parser) { } else if (token == "brakestep") { - // krok zmiany hamulca dla klawiszy [Num3] i [Num9] Parser.getTokens(1, false); Parser >> fBrakeStep; } + else if (token == "brakespeed") + { + Parser.getTokens(1, false); + Parser >> brake_speed; + } else if (token == "joinduplicatedevents") { // czy grupować eventy o tych samych nazwach diff --git a/Globals.h b/Globals.h index 9ab2afa4..3cf7128d 100644 --- a/Globals.h +++ b/Globals.h @@ -138,7 +138,8 @@ struct global_settings { int iFeedbackPort{ 0 }; // dodatkowy adres dla informacji zwrotnych bool InputGamepad{ true }; // whether gamepad support is enabled bool InputMouse{ true }; // whether control pick mode can be activated - double fBrakeStep{ 1.0 }; // krok zmiany hamulca dla klawiszy [Num3] i [Num9] + double fBrakeStep { 1.0 }; // krok zmiany hamulca innych niż FV4a dla klawiszy [Num3] i [Num9] + double brake_speed { 3.0 }; // prędkość przesuwu hamulca dla FV4a // parametry kalibracyjne wejść z pulpitu double fCalibrateIn[ 6 ][ 6 ] = { { 0, 1, 0, 0, 0, 0 }, diff --git a/Train.cpp b/Train.cpp index 75c0bde3..fd38302b 100644 --- a/Train.cpp +++ b/Train.cpp @@ -933,29 +933,19 @@ void TTrain::OnCommand_independentbrakebailoff( TTrain *Train, command_data cons } void TTrain::OnCommand_trainbrakeincrease( TTrain *Train, command_data const &Command ) { - if( Command.action == GLFW_REPEAT ) { - - if( Train->mvOccupied->BrakeHandle == FV4a ) { - Train->mvOccupied->BrakeLevelAdd( Global.fBrakeStep * Command.time_delta ); - } - else { - Train->set_train_brake( Train->mvOccupied->fBrakeCtrlPos + Global.fBrakeStep * Command.time_delta ); - } - } + if (Command.action == GLFW_REPEAT && Train->mvOccupied->BrakeHandle == FV4a) + Train->mvOccupied->BrakeLevelAdd( Global.brake_speed * Command.time_delta ); + else if (Command.action == GLFW_PRESS && Train->mvOccupied->BrakeHandle != FV4a) + Train->set_train_brake( Train->mvOccupied->fBrakeCtrlPos + Global.fBrakeStep ); } void TTrain::OnCommand_trainbrakedecrease( TTrain *Train, command_data const &Command ) { + if (Command.action == GLFW_REPEAT && Train->mvOccupied->BrakeHandle == FV4a) + Train->mvOccupied->BrakeLevelAdd( -Global.brake_speed * Command.time_delta ); + else if (Command.action == GLFW_PRESS && Train->mvOccupied->BrakeHandle != FV4a) + Train->set_train_brake( Train->mvOccupied->fBrakeCtrlPos - Global.fBrakeStep ); - if( Command.action == GLFW_REPEAT ) { - // press or hold - if( Train->mvOccupied->BrakeHandle == FV4a ) { - Train->mvOccupied->BrakeLevelAdd( -Global.fBrakeStep * Command.time_delta ); - } - else { - Train->set_train_brake( Train->mvOccupied->fBrakeCtrlPos - Global.fBrakeStep * Command.time_delta ); - } - } - else if (Command.action == GLFW_RELEASE) { + if (Command.action == GLFW_RELEASE) { // release if( ( Train->mvOccupied->BrakeCtrlPos == -1 ) && ( Train->mvOccupied->BrakeHandle == FVel6 ) diff --git a/command.cpp b/command.cpp index 7a86bdae..dda3a069 100644 --- a/command.cpp +++ b/command.cpp @@ -212,7 +212,6 @@ command_queue::push( command_data const &Command, std::size_t const Recipient ) m_active_continuous.emplace(Command.command); else if (Command.action == GLFW_RELEASE) m_active_continuous.erase(Command.command); - return; } auto lookup = m_commands.emplace( Recipient, commanddata_sequence() ); diff --git a/version.h b/version.h index 366365aa..47550412 100644 --- a/version.h +++ b/version.h @@ -1 +1 @@ -#define VERSION_INFO "M7 1.04.2018/v2, based on tmj 07f1438" +#define VERSION_INFO "M7 3.04.2018, based on tmj 07f1438"