mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-23 01:39:19 +02:00
Reorganize source files into logical subdirectories
Co-authored-by: Hirek193 <23196899+Hirek193@users.noreply.github.com>
This commit is contained in:
80
vehicle/AirCoupler.h
Normal file
80
vehicle/AirCoupler.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
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
|
||||
|
||||
#include "Classes.h"
|
||||
|
||||
class AirCoupler
|
||||
{
|
||||
private:
|
||||
TSubModel *ModelOn, *ModelOff, *ModelxOn;
|
||||
bool On;
|
||||
bool xOn;
|
||||
void Update();
|
||||
|
||||
public:
|
||||
AirCoupler();
|
||||
~AirCoupler();
|
||||
///Reset members.
|
||||
void Clear();
|
||||
///Looks for submodels.
|
||||
void Init(std::string const &asName, TModel3d *Model);
|
||||
///Loads info about coupler.
|
||||
void Load(cParser *Parser, TModel3d *Model);
|
||||
int GetStatus();
|
||||
inline void TurnOn() ///Turns on straight coupler.
|
||||
{
|
||||
On = true;
|
||||
xOn = false;
|
||||
Update();
|
||||
};
|
||||
inline void TurnOff() ///Turns on disconnected coupler.
|
||||
{
|
||||
On = false;
|
||||
xOn = false;
|
||||
Update();
|
||||
};
|
||||
inline void TurnxOn() ///Turns on slanted coupler.
|
||||
{
|
||||
On = false;
|
||||
xOn = true;
|
||||
Update();
|
||||
};
|
||||
|
||||
// if the xOn model is missing, activate plain On instead
|
||||
inline void TurnxOnWithOnAsFallback()
|
||||
{
|
||||
if (ModelxOn != nullptr) {
|
||||
On = false;
|
||||
xOn = true;
|
||||
Update();
|
||||
}
|
||||
else {
|
||||
TurnOn();
|
||||
}
|
||||
};
|
||||
// if the xOn model is missing, activate plain Off instead
|
||||
inline void TurnxOnWithOffAsFallback()
|
||||
{
|
||||
if (ModelxOn != nullptr) {
|
||||
On = false;
|
||||
xOn = true;
|
||||
Update();
|
||||
}
|
||||
else {
|
||||
TurnOff();
|
||||
}
|
||||
};
|
||||
inline bool Active() const
|
||||
{
|
||||
return ( ( ModelOn != nullptr ) || ( ModelxOn != nullptr ) );
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user