17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-11-02 18:39:14 +01:00
Files
maszyna/vehicle/handover.h

34 lines
1.5 KiB
C++

/*
This Source Code Form is subject to the
terms of the Mozilla Public License, v.
2.0. If a copy of the MPL was not
distributed with this file, You can
obtain one at
http://mozilla.org/MPL/2.0/.
*/
#pragma once
class TMoverParameters;
// what changes about a vehicle when the AI hands it over to the human driver. the AI operates some
// controls directly, bypassing the cab controls a human uses, and only the AI ever releases them;
// the human gets them in the state matching the cab controls instead.
namespace handover {
// releases what the AI latches, but which is held only while pressed for the human driver:
// the horn, the sandbox, the departure signal and the brake releaser
void release_ai_controls(TMoverParameters &Occupied, TMoverParameters &Controlling);
// position of the light preset selector [1..LightsPosNo] for the human driver: the current one when it
// gives the head lights the AI has set, else the first one which does, else the current one.
// Lightstable is the end of the selector's table in use, Inventory the lights the head end has
int light_selector_position(TMoverParameters const &Occupied, int Lightstable, int Headlights, int Inventory);
// position of the headlight dimmer for the human driver: the current one, unless it's the off position
// which would hide the head lights the AI has lit. then the default one, else the first regular one,
// else any other than off
int dimmer_position(TMoverParameters const &Occupied, bool Headlightson);
} // namespace handover