mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
95 lines
3.1 KiB
C++
95 lines
3.1 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
|
|
|
|
#include "Classes.h"
|
|
#include "scenenode.h"
|
|
#include "Names.h"
|
|
#include "comparison.h"
|
|
|
|
class TMemCell : public scene::basic_node {
|
|
|
|
public:
|
|
// constructors
|
|
explicit TMemCell( scene::node_data const &Nodedata );
|
|
// methods
|
|
void
|
|
UpdateValues( std::string const &szNewText, double const fNewValue1, double const fNewValue2, int const CheckMask );
|
|
bool
|
|
Load(cParser *parser);
|
|
void
|
|
PutCommand( TController *Mech, glm::dvec3 const *Loc ) const;
|
|
bool
|
|
Compare( std::string const &szTestText, double const fTestValue1, double const fTestValue2, int const CheckMask,
|
|
comparison_operator const TextOperator = comparison_operator::equal,
|
|
comparison_operator const Value1Operator = comparison_operator::equal,
|
|
comparison_operator const Value2Operator = comparison_operator::equal,
|
|
comparison_pass const Pass = comparison_pass::all ) const;
|
|
std::string const &
|
|
Text() const {
|
|
return szText; }
|
|
double
|
|
Value1() const {
|
|
return fValue1; };
|
|
double
|
|
Value2() const {
|
|
return fValue2; };
|
|
TCommandType
|
|
Command() const {
|
|
return eCommand; };
|
|
bool
|
|
StopCommand() const {
|
|
return bCommand; };
|
|
void StopCommandSent();
|
|
TCommandType CommandCheck();
|
|
bool IsVelocity() const;
|
|
void AssignEvents(basic_event *e);
|
|
std::string Values() const;
|
|
void LogValues() const;
|
|
// members
|
|
std::string asTrackName; // McZapkie-100302 - zeby nazwe toru na ktory jest Putcommand wysylane pamietac
|
|
TTrack *Track { nullptr }; // resolved binding with the specified track
|
|
bool is_exportable { true }; // export helper; autogenerated cells don't need to be exported
|
|
|
|
private:
|
|
// methods
|
|
// serialize() subclass details, sends content of the subclass to provided stream
|
|
void serialize_( std::ostream &Output ) const;
|
|
// deserialize() subclass details, restores content of the subclass from provided stream
|
|
void deserialize_( std::istream &Input );
|
|
// export() subclass details, sends basic content of the class in legacy (text) format to provided stream
|
|
void export_as_text_( std::ostream &Output ) const;
|
|
|
|
// members
|
|
// content
|
|
std::string szText;
|
|
double fValue1 { 0.0 };
|
|
double fValue2 { 0.0 };
|
|
// other
|
|
TCommandType eCommand { TCommandType::cm_Unknown };
|
|
bool bCommand { false }; // czy zawiera komendę dla zatrzymanego AI
|
|
basic_event *OnSent { nullptr }; // event dodawany do kolejki po wysłaniu komendy zatrzymującej skład
|
|
};
|
|
|
|
|
|
|
|
class memory_table : public basic_table<TMemCell> {
|
|
|
|
public:
|
|
// legacy method, initializes traction after deserialization from scenario file
|
|
void
|
|
InitCells();
|
|
// legacy method, sends content of all cells to the log
|
|
void
|
|
log_all();
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|