mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-14 09:06:58 +01:00
feat: separate engine start switches for the vehicles in multiple (eu07/maszyna#80)
In vehicles like the ST43, the SP32 or the SN61 every engine of a train in
multiple has its own start and stop buttons in the cab. Until now the cab's
line breaker / engine start switch (main_sw, main_on_bt, main_off_bt) always
started and stopped the engines of all the vehicles under its control.
- .fiz, Engine: JointEngineStart=Yes|No (default Yes, as before). With No
the cab's main_* work the cab's own vehicle only, and an engine stopping on
its own (stalled, out of fuel) stops only its own vehicle instead of every
engine in the train.
- .mmd: mainb_sw, mainb_on_bt, mainb_off_bt work the second vehicle with an
engine under the cab's control, mainc_sw, mainc_on_bt, mainc_off_bt the
third one. They count along the control cable from the cab's vehicle,
behind the cab first. Like main_*, the start switch has to be held for the
vehicle's IniCDelay with the vehicle ready (MainSwitchCheck); an impulse
switch of an electric locomotive with series motors closes on release.
- New commands, added at the end of the command list: linebreakertoggleb,
linebreakeropenb, linebreakercloseb, linebreakertogglec, linebreakeropenc,
linebreakerclosec. No default keys.
- The logic is in vehicle/enginestart.{h,cpp} (core library), tested in
tests/unit/test_engine_start.cpp.
Nothing changes for existing vehicles: the new key and the new cab controls
are optional, and without them the code does what it did before.
Game data (SVN, not changed here, to be done separately; the code works
without it): for the SN61 (dynamic/pkp/sn61_v2), whose cab models already
have the buttons start02/stop02/start03/stop03,
- sn61.fiz, sn61-86.fiz, sn61_v1.fiz and the other SN61 .fiz: add
JointEngineStart=No to the Engine: line;
- sn61.mmd.inc (and the other SN61 includes): after main_on_bt add
mainb_off_bt: { stop02 mov -0.005 0 0.1 ... }
mainb_on_bt: { start02 mov -0.005 0 0.1 ... }
mainc_off_bt: { stop03 mov -0.005 0 0.1 ... }
mainc_on_bt: { start03 mov -0.005 0 0.1 ... }
with the sounds of main_off_bt / main_on_bt.
The tooltips "line breaker B" / "line breaker C" are new strings for lang/*.po.
This commit is contained in:
@@ -406,6 +406,12 @@ commanddescription_sequence Commands_descriptions = {
|
||||
{"wiperswitchdecrease", command_target::vehicle, command_mode::oneoff},
|
||||
{"lightsset", command_target::vehicle, command_mode::oneoff},
|
||||
{"oilfuelpumptoggle", command_target::vehicle, command_mode::oneoff},
|
||||
{"linebreakertoggleb", command_target::vehicle, command_mode::oneoff},
|
||||
{"linebreakeropenb", command_target::vehicle, command_mode::oneoff},
|
||||
{"linebreakercloseb", command_target::vehicle, command_mode::oneoff},
|
||||
{"linebreakertogglec", command_target::vehicle, command_mode::oneoff},
|
||||
{"linebreakeropenc", command_target::vehicle, command_mode::oneoff},
|
||||
{"linebreakerclosec", command_target::vehicle, command_mode::oneoff},
|
||||
};
|
||||
|
||||
// Maps of command and coresponding strings
|
||||
@@ -791,6 +797,12 @@ std::unordered_map<std::string, user_command> const commandMap = {
|
||||
{"wiperswitchdecrease", user_command::wiperswitchdecrease},
|
||||
{"lightsset", user_command::lightsset},
|
||||
{"oilfuelpumptoggle", user_command::oilfuelpumptoggle},
|
||||
{"linebreakertoggleb", user_command::linebreakertoggleb},
|
||||
{"linebreakeropenb", user_command::linebreakeropenb},
|
||||
{"linebreakercloseb", user_command::linebreakercloseb},
|
||||
{"linebreakertogglec", user_command::linebreakertogglec},
|
||||
{"linebreakeropenc", user_command::linebreakeropenc},
|
||||
{"linebreakerclosec", user_command::linebreakerclosec},
|
||||
{"none", user_command::none}};
|
||||
|
||||
} // namespace simulation
|
||||
|
||||
Reference in New Issue
Block a user