mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 17:29:18 +02:00
master controller return delay
This commit is contained in:
27
Train.cpp
27
Train.cpp
@@ -742,11 +742,20 @@ void TTrain::OnCommand_aidriverdisable( TTrain *Train, command_data const &Comma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto const EU07_CONTROLLER_BASERETURNDELAY { 0.5f };
|
||||||
|
auto const EU07_CONTROLLER_KEYBOARDETURNDELAY { 1.5f };
|
||||||
|
|
||||||
void TTrain::OnCommand_mastercontrollerincrease( TTrain *Train, command_data const &Command ) {
|
void TTrain::OnCommand_mastercontrollerincrease( TTrain *Train, command_data const &Command ) {
|
||||||
|
|
||||||
if( Command.action != GLFW_RELEASE ) {
|
if( Command.action != GLFW_RELEASE ) {
|
||||||
// on press or hold
|
// on press or hold
|
||||||
Train->mvControlled->IncMainCtrl( 1 );
|
Train->mvControlled->IncMainCtrl( 1 );
|
||||||
|
Train->m_mastercontrollerinuse = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// release
|
||||||
|
Train->m_mastercontrollerinuse = false;
|
||||||
|
Train->m_mastercontrollerreturndelay = EU07_CONTROLLER_KEYBOARDETURNDELAY + EU07_CONTROLLER_BASERETURNDELAY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -768,6 +777,7 @@ void TTrain::OnCommand_mastercontrollerdecrease( TTrain *Train, command_data con
|
|||||||
else {
|
else {
|
||||||
// release
|
// release
|
||||||
Train->m_mastercontrollerinuse = false;
|
Train->m_mastercontrollerinuse = false;
|
||||||
|
Train->m_mastercontrollerreturndelay = EU07_CONTROLLER_KEYBOARDETURNDELAY + EU07_CONTROLLER_BASERETURNDELAY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -789,6 +799,7 @@ void TTrain::OnCommand_mastercontrollerset( TTrain *Train, command_data const &C
|
|||||||
else {
|
else {
|
||||||
// release
|
// release
|
||||||
Train->m_mastercontrollerinuse = false;
|
Train->m_mastercontrollerinuse = false;
|
||||||
|
Train->m_mastercontrollerreturndelay = EU07_CONTROLLER_BASERETURNDELAY; // NOTE: keyboard return delay is omitted for other input sources
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -802,14 +813,6 @@ void TTrain::OnCommand_secondcontrollerincrease( TTrain *Train, command_data con
|
|||||||
Train->mvControlled->AnPos + 0.025,
|
Train->mvControlled->AnPos + 0.025,
|
||||||
0.0, 1.0 );
|
0.0, 1.0 );
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
Train->mvControlled->IncScndCtrl( 1 );
|
|
||||||
}
|
|
||||||
Train->m_mastercontrollerinuse = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// release
|
|
||||||
Train->m_mastercontrollerinuse = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3698,7 +3701,7 @@ void TTrain::OnCommand_redmarkerstoggle( TTrain *Train, command_data const &Comm
|
|||||||
int const CouplNr {
|
int const CouplNr {
|
||||||
clamp(
|
clamp(
|
||||||
vehicle->DirectionGet()
|
vehicle->DirectionGet()
|
||||||
* ( LengthSquared3( vehicle->HeadPosition() - Global.pCamera.Pos ) > LengthSquared3( vehicle->RearPosition() - Global.pCamera.Pos ) ?
|
* ( Math3D::LengthSquared3( vehicle->HeadPosition() - Global.pCamera.Pos ) > Math3D::LengthSquared3( vehicle->RearPosition() - Global.pCamera.Pos ) ?
|
||||||
1 :
|
1 :
|
||||||
-1 ),
|
-1 ),
|
||||||
0, 1 ) }; // z [-1,1] zrobić [0,1]
|
0, 1 ) }; // z [-1,1] zrobić [0,1]
|
||||||
@@ -3724,7 +3727,7 @@ void TTrain::OnCommand_endsignalstoggle( TTrain *Train, command_data const &Comm
|
|||||||
int const CouplNr {
|
int const CouplNr {
|
||||||
clamp(
|
clamp(
|
||||||
vehicle->DirectionGet()
|
vehicle->DirectionGet()
|
||||||
* ( LengthSquared3( vehicle->HeadPosition() - Global.pCamera.Pos ) > LengthSquared3( vehicle->RearPosition() - Global.pCamera.Pos ) ?
|
* ( Math3D::LengthSquared3( vehicle->HeadPosition() - Global.pCamera.Pos ) > Math3D::LengthSquared3( vehicle->RearPosition() - Global.pCamera.Pos ) ?
|
||||||
1 :
|
1 :
|
||||||
-1 ),
|
-1 ),
|
||||||
0, 1 ) }; // z [-1,1] zrobić [0,1]
|
0, 1 ) }; // z [-1,1] zrobić [0,1]
|
||||||
@@ -4878,6 +4881,9 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
|| ( input::command == user_command::mastercontrollerdecrease ) ) ) {
|
|| ( input::command == user_command::mastercontrollerdecrease ) ) ) {
|
||||||
*/
|
*/
|
||||||
if( false == m_mastercontrollerinuse ) {
|
if( false == m_mastercontrollerinuse ) {
|
||||||
|
m_mastercontrollerreturndelay -= Deltatime;
|
||||||
|
if( m_mastercontrollerreturndelay < 0.f ) {
|
||||||
|
m_mastercontrollerreturndelay = EU07_CONTROLLER_BASERETURNDELAY;
|
||||||
if( mvOccupied->MainCtrlPos > mvOccupied->MainCtrlActualPos ) {
|
if( mvOccupied->MainCtrlPos > mvOccupied->MainCtrlActualPos ) {
|
||||||
mvOccupied->DecMainCtrl( 1 );
|
mvOccupied->DecMainCtrl( 1 );
|
||||||
}
|
}
|
||||||
@@ -4887,6 +4893,7 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
if( ( mvOccupied->BrakeHandle == TBrakeHandle::FVel6 )
|
if( ( mvOccupied->BrakeHandle == TBrakeHandle::FVel6 )
|
||||||
&& ( mvOccupied->fBrakeCtrlPos < 0.0 )
|
&& ( mvOccupied->fBrakeCtrlPos < 0.0 )
|
||||||
|
|||||||
1
Train.h
1
Train.h
@@ -644,6 +644,7 @@ private:
|
|||||||
// McZapkie: do syczenia
|
// McZapkie: do syczenia
|
||||||
float fPPress, fNPress;
|
float fPPress, fNPress;
|
||||||
bool m_mastercontrollerinuse { false };
|
bool m_mastercontrollerinuse { false };
|
||||||
|
float m_mastercontrollerreturndelay { 0.f };
|
||||||
int iRadioChannel { 1 }; // numer aktualnego kana?u radiowego
|
int iRadioChannel { 1 }; // numer aktualnego kana?u radiowego
|
||||||
std::vector<std::pair<std::string, texture_handle>> m_screens;
|
std::vector<std::pair<std::string, texture_handle>> m_screens;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user