mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 09:59:18 +02:00
Merge branch 'milek-dev' into gfx-work
This commit is contained in:
48
Train.cpp
48
Train.cpp
@@ -5052,12 +5052,22 @@ void TTrain::OnCommand_radiocall3send( TTrain *Train, command_data const &Comman
|
||||
void TTrain::OnCommand_cabchangeforward( TTrain *Train, command_data const &Command ) {
|
||||
|
||||
if( Command.action == GLFW_PRESS ) {
|
||||
if( false == Train->CabChange( 1 ) ) {
|
||||
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ end::front ].CouplingFlag, coupling::gangway ) ) {
|
||||
auto const movedirection {
|
||||
1 * ( Train->DynamicObject->ctOwner->Vehicle( end::front )->DirectionGet() == Train->DynamicObject->DirectionGet() ?
|
||||
1 :
|
||||
-1 ) };
|
||||
if( false == Train->CabChange( movedirection ) ) {
|
||||
auto const exitdirection { (
|
||||
movedirection > 0 ?
|
||||
end::front :
|
||||
end::rear ) };
|
||||
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
|
||||
// przejscie do nastepnego pojazdu
|
||||
TDynamicObject *dynobj = Train->DynamicObject->PrevConnected();
|
||||
TDynamicObject *dynobj = ( exitdirection == end::front ?
|
||||
Train->DynamicObject->PrevConnected() :
|
||||
Train->DynamicObject->NextConnected() );
|
||||
dynobj->MoverParameters->ActiveCab = (
|
||||
Train->DynamicObject->MoverParameters->Neighbours[end::front].vehicle_end ?
|
||||
Train->DynamicObject->MoverParameters->Neighbours[exitdirection].vehicle_end ?
|
||||
-1 :
|
||||
1 );
|
||||
Train->MoveToVehicle(dynobj);
|
||||
@@ -5073,12 +5083,22 @@ void TTrain::OnCommand_cabchangeforward( TTrain *Train, command_data const &Comm
|
||||
void TTrain::OnCommand_cabchangebackward( TTrain *Train, command_data const &Command ) {
|
||||
|
||||
if( Command.action == GLFW_PRESS ) {
|
||||
if( false == Train->CabChange( -1 ) ) {
|
||||
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ end::rear ].CouplingFlag, coupling::gangway ) ) {
|
||||
auto const movedirection {
|
||||
-1 * ( Train->DynamicObject->ctOwner->Vehicle( end::front )->DirectionGet() == Train->DynamicObject->DirectionGet() ?
|
||||
1 :
|
||||
-1 ) };
|
||||
if( false == Train->CabChange( movedirection ) ) {
|
||||
auto const exitdirection { (
|
||||
movedirection > 0 ?
|
||||
end::front :
|
||||
end::rear ) };
|
||||
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
|
||||
// przejscie do nastepnego pojazdu
|
||||
TDynamicObject *dynobj = Train->DynamicObject->NextConnected();
|
||||
TDynamicObject *dynobj = ( exitdirection == end::front ?
|
||||
Train->DynamicObject->PrevConnected() :
|
||||
Train->DynamicObject->NextConnected() );
|
||||
dynobj->MoverParameters->ActiveCab = (
|
||||
Train->DynamicObject->MoverParameters->Neighbours[end::rear].vehicle_end ?
|
||||
Train->DynamicObject->MoverParameters->Neighbours[exitdirection].vehicle_end ?
|
||||
-1 :
|
||||
1 );
|
||||
Train->MoveToVehicle(dynobj);
|
||||
@@ -8532,6 +8552,18 @@ bool TTrain::initialize_gauge(cParser &Parser, std::string const &Label, int con
|
||||
gauge.AssignDouble(&mvControlled->AnPos);
|
||||
m_controlmapper.insert( gauge, "shuntmodepower:" );
|
||||
}
|
||||
else if( Label == "heatingvoltage:" ) {
|
||||
if( mvControlled->HeatingPowerSource.SourceType == TPowerSource::Generator ) {
|
||||
auto &gauge = Cabine[ Cabindex ].Gauge( -1 ); // pierwsza wolna gałka
|
||||
gauge.Load( Parser, DynamicObject );
|
||||
gauge.AssignDouble( &(mvControlled->HeatingPowerSource.EngineGenerator.voltage) );
|
||||
}
|
||||
}
|
||||
else if( Label == "heatingcurrent:" ) {
|
||||
auto &gauge = Cabine[ Cabindex ].Gauge( -1 ); // pierwsza wolna gałka
|
||||
gauge.Load( Parser, DynamicObject );
|
||||
gauge.AssignDouble( &( mvControlled->TotalCurrent ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
// failed to match the label
|
||||
|
||||
Reference in New Issue
Block a user