mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-23 08:39:18 +02:00
maintenance: memory leak fix, default constructors, minor syntax cleanups
This commit is contained in:
12
Driver.cpp
12
Driver.cpp
@@ -521,7 +521,7 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle)
|
|||||||
pTrack = lastspeedpoint.trTrack;
|
pTrack = lastspeedpoint.trTrack;
|
||||||
assert( pTrack != nullptr );
|
assert( pTrack != nullptr );
|
||||||
// flaga ustawiona, gdy Point2 toru jest blizej
|
// flaga ustawiona, gdy Point2 toru jest blizej
|
||||||
fLastDir = lastspeedpoint.iFlags & spReverse ? -1.0 : 1.0;
|
fLastDir = ( ( ( lastspeedpoint.iFlags & spReverse ) != 0 ) ? -1.0 : 1.0 );
|
||||||
fCurrentDistance = lastspeedpoint.fDist; // aktualna odleglosc do jego Point1
|
fCurrentDistance = lastspeedpoint.fDist; // aktualna odleglosc do jego Point1
|
||||||
fTrackLength = pTrack->Length();
|
fTrackLength = pTrack->Length();
|
||||||
}
|
}
|
||||||
@@ -1286,7 +1286,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
&& ( true == TestFlag( sSpeedTable[ i ].iFlags, ( spEnabled | spEvent | spPassengerStopPoint ) ) )
|
&& ( true == TestFlag( sSpeedTable[ i ].iFlags, ( spEnabled | spEvent | spPassengerStopPoint ) ) )
|
||||||
&& ( false == isatpassengerstop ) ) {
|
&& ( false == isatpassengerstop ) ) {
|
||||||
// ma podjechać bliżej - czy na pewno w tym miejscu taki warunek?
|
// ma podjechać bliżej - czy na pewno w tym miejscu taki warunek?
|
||||||
a = ( iDrivigFlags & moveStopCloser ?
|
a = ( ( ( iDrivigFlags & moveStopCloser ) != 0 ) ?
|
||||||
fAcc :
|
fAcc :
|
||||||
0.0 );
|
0.0 );
|
||||||
}
|
}
|
||||||
@@ -4575,14 +4575,14 @@ TController::UpdateSituation(double dt) {
|
|||||||
else {
|
else {
|
||||||
// jeśli oba jadą, to przyhamuj lekko i ogranicz prędkość
|
// jeśli oba jadą, to przyhamuj lekko i ogranicz prędkość
|
||||||
if( vehicle->fTrackBlock < (
|
if( vehicle->fTrackBlock < (
|
||||||
mvOccupied->CategoryFlag & 2 ?
|
( mvOccupied->CategoryFlag & 2 ) ?
|
||||||
fMaxProximityDist + 0.5 * vel : // cars
|
fMaxProximityDist + 0.5 * vel : // cars
|
||||||
2.0 * fMaxProximityDist + 2.0 * vel ) ) { //others
|
2.0 * fMaxProximityDist + 2.0 * vel ) ) { //others
|
||||||
// jak tamten jedzie wolniej a jest w drodze hamowania
|
// jak tamten jedzie wolniej a jest w drodze hamowania
|
||||||
AccPreferred = std::min( -0.9, AccPreferred );
|
AccPreferred = std::min( -0.9, AccPreferred );
|
||||||
VelNext = min_speed( std::round( k ) - 5.0, VelDesired );
|
VelNext = min_speed( std::round( k ) - 5.0, VelDesired );
|
||||||
if( vehicle->fTrackBlock <= (
|
if( vehicle->fTrackBlock <= (
|
||||||
mvOccupied->CategoryFlag & 2 ?
|
( mvOccupied->CategoryFlag & 2 ) ?
|
||||||
fMaxProximityDist : // cars
|
fMaxProximityDist : // cars
|
||||||
2.0 * fMaxProximityDist ) ) { //others
|
2.0 * fMaxProximityDist ) ) { //others
|
||||||
// try to force speed change if obstacle is really close
|
// try to force speed change if obstacle is really close
|
||||||
@@ -4826,7 +4826,7 @@ TController::UpdateSituation(double dt) {
|
|||||||
else {
|
else {
|
||||||
// jeśli daleko jechać nie można
|
// jeśli daleko jechać nie można
|
||||||
if( ActualProximityDist > (
|
if( ActualProximityDist > (
|
||||||
mvOccupied->CategoryFlag & 2 ?
|
( mvOccupied->CategoryFlag & 2 ) ?
|
||||||
fMinProximityDist : // cars
|
fMinProximityDist : // cars
|
||||||
fMaxProximityDist ) ) { // trains and others
|
fMaxProximityDist ) ) { // trains and others
|
||||||
// ale ma kawałek do sygnalizatora
|
// ale ma kawałek do sygnalizatora
|
||||||
@@ -5134,7 +5134,7 @@ TController::UpdateSituation(double dt) {
|
|||||||
VelDesired - fVelMinus ) ) {
|
VelDesired - fVelMinus ) ) {
|
||||||
// ...jeśli prędkość w kierunku czoła jest mniejsza od dozwolonej o margines
|
// ...jeśli prędkość w kierunku czoła jest mniejsza od dozwolonej o margines
|
||||||
if( ( ActualProximityDist > (
|
if( ( ActualProximityDist > (
|
||||||
mvOccupied->CategoryFlag & 2 ?
|
( mvOccupied->CategoryFlag & 2 ) ?
|
||||||
fMinProximityDist : // cars are allowed to move within min proximity distance
|
fMinProximityDist : // cars are allowed to move within min proximity distance
|
||||||
fMaxProximityDist ) ? // other vehicle types keep wider margin
|
fMaxProximityDist ) ? // other vehicle types keep wider margin
|
||||||
true :
|
true :
|
||||||
|
|||||||
23
Event.cpp
23
Event.cpp
@@ -39,7 +39,6 @@ TEvent::~TEvent() {
|
|||||||
switch (Type)
|
switch (Type)
|
||||||
{ // sprzątanie
|
{ // sprzątanie
|
||||||
case tp_Multiple:
|
case tp_Multiple:
|
||||||
// SafeDeleteArray(Params[9].asText); //nie usuwać - nazwa obiektu powiązanego zamieniana na wskaźnik
|
|
||||||
if (iFlags & conditional_memstring) // o ile jest łańcuch do porównania w memcompare
|
if (iFlags & conditional_memstring) // o ile jest łańcuch do porównania w memcompare
|
||||||
SafeDeleteArray(Params[10].asText);
|
SafeDeleteArray(Params[10].asText);
|
||||||
break;
|
break;
|
||||||
@@ -71,12 +70,6 @@ void TEvent::Conditions(cParser *parser, std::string s)
|
|||||||
if (s == "condition")
|
if (s == "condition")
|
||||||
{ // jesli nie "endevent"
|
{ // jesli nie "endevent"
|
||||||
std::string token, str;
|
std::string token, str;
|
||||||
if (!asNodeName.empty())
|
|
||||||
{ // podczepienie łańcucha, jeśli nie jest pusty
|
|
||||||
// BUG: source of a memory leak -- the array never gets deleted. fix the destructor
|
|
||||||
Params[9].asText = new char[asNodeName.size() + 1]; // usuwane i zamieniane na wskaźnik
|
|
||||||
strcpy(Params[9].asText, asNodeName.c_str());
|
|
||||||
}
|
|
||||||
parser->getTokens();
|
parser->getTokens();
|
||||||
*parser >> token;
|
*parser >> token;
|
||||||
str = token;
|
str = token;
|
||||||
@@ -1673,28 +1666,24 @@ event_manager::InitEvents() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case tp_Multiple: {
|
case tp_Multiple: {
|
||||||
std::string cellastext;
|
if( false == event->asNodeName.empty() ) {
|
||||||
if( event->Params[ 9 ].asText != nullptr ) { // przepisanie nazwy do bufora
|
|
||||||
cellastext = event->Params[ 9 ].asText;
|
|
||||||
SafeDeleteArray( event->Params[ 9 ].asText );
|
|
||||||
event->Params[ 9 ].asPointer = nullptr; // zerowanie wskaźnika, aby wykryć brak obeiktu
|
|
||||||
}
|
|
||||||
if( event->iFlags & ( conditional_trackoccupied | conditional_trackfree ) ) {
|
if( event->iFlags & ( conditional_trackoccupied | conditional_trackfree ) ) {
|
||||||
// jeśli chodzi o zajetosc toru
|
// jeśli chodzi o zajetosc toru
|
||||||
event->Params[ 9 ].asTrack = simulation::Paths.find( cellastext );
|
event->Params[ 9 ].asTrack = simulation::Paths.find( event->asNodeName );
|
||||||
if( event->Params[ 9 ].asTrack == nullptr ) {
|
if( event->Params[ 9 ].asTrack == nullptr ) {
|
||||||
ErrorLog( "Bad event: multi-event \"" + event->asName + "\" cannot find track \"" + cellastext + "\"" );
|
ErrorLog( "Bad event: multi-event \"" + event->asName + "\" cannot find track \"" + event->asNodeName + "\"" );
|
||||||
event->iFlags &= ~( conditional_trackoccupied | conditional_trackfree ); // zerowanie flag
|
event->iFlags &= ~( conditional_trackoccupied | conditional_trackfree ); // zerowanie flag
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( event->iFlags & ( conditional_memstring | conditional_memval1 | conditional_memval2 ) ) {
|
else if( event->iFlags & ( conditional_memstring | conditional_memval1 | conditional_memval2 ) ) {
|
||||||
// jeśli chodzi o komorke pamieciową
|
// jeśli chodzi o komorke pamieciową
|
||||||
event->Params[ 9 ].asMemCell = simulation::Memory.find( cellastext );
|
event->Params[ 9 ].asMemCell = simulation::Memory.find( event->asNodeName );
|
||||||
if( event->Params[ 9 ].asMemCell == nullptr ) {
|
if( event->Params[ 9 ].asMemCell == nullptr ) {
|
||||||
ErrorLog( "Bad event: multi-event \"" + event->asName + "\" cannot find memory cell \"" + cellastext + "\"" );
|
ErrorLog( "Bad event: multi-event \"" + event->asName + "\" cannot find memory cell \"" + event->asNodeName + "\"" );
|
||||||
event->iFlags &= ~( conditional_memstring | conditional_memval1 | conditional_memval2 );
|
event->iFlags &= ~( conditional_memstring | conditional_memval1 | conditional_memval2 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for( auto &childevent : event->m_children ) {
|
for( auto &childevent : event->m_children ) {
|
||||||
std::get<TEvent *>( childevent ) = FindEvent( std::get<std::string>( childevent ) );
|
std::get<TEvent *>( childevent ) = FindEvent( std::get<std::string>( childevent ) );
|
||||||
if( std::get<TEvent *>( childevent ) == nullptr ) {
|
if( std::get<TEvent *>( childevent ) == nullptr ) {
|
||||||
|
|||||||
2
Event.h
2
Event.h
@@ -120,6 +120,8 @@ private:
|
|||||||
class event_manager {
|
class event_manager {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
event_manager() = default;
|
||||||
// destructor
|
// destructor
|
||||||
~event_manager();
|
~event_manager();
|
||||||
// methods
|
// methods
|
||||||
|
|||||||
@@ -295,10 +295,10 @@ TMoverParameters::TMoverParameters(double VelInitial, std::string TypeNameInit,
|
|||||||
int Cab) ://: T_MoverParameters(VelInitial, TypeNameInit,
|
int Cab) ://: T_MoverParameters(VelInitial, TypeNameInit,
|
||||||
//NameInit, LoadInitial, LoadTypeInitial, Cab)
|
//NameInit, LoadInitial, LoadTypeInitial, Cab)
|
||||||
TypeName( TypeNameInit ),
|
TypeName( TypeNameInit ),
|
||||||
|
Name( NameInit ),
|
||||||
ActiveCab( Cab ),
|
ActiveCab( Cab ),
|
||||||
LoadType( LoadTypeInitial ),
|
|
||||||
Load( LoadInitial ),
|
Load( LoadInitial ),
|
||||||
Name( NameInit )
|
LoadType( LoadTypeInitial )
|
||||||
{
|
{
|
||||||
WriteLog(
|
WriteLog(
|
||||||
"------------------------------------------------------");
|
"------------------------------------------------------");
|
||||||
@@ -1579,9 +1579,10 @@ void TMoverParameters::WaterHeaterCheck( double const Timestep ) {
|
|||||||
WaterHeater.is_active = false;
|
WaterHeater.is_active = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
WaterHeater.is_damaged |= (
|
WaterHeater.is_damaged = (
|
||||||
( true == WaterHeater.is_active )
|
( true == WaterHeater.is_damaged )
|
||||||
&& ( false == WaterPump.is_active ) );
|
|| ( ( true == WaterHeater.is_active )
|
||||||
|
&& ( false == WaterPump.is_active ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// fuel pump status update
|
// fuel pump status update
|
||||||
@@ -5988,19 +5989,22 @@ bool TMoverParameters::dizel_AutoGearCheck(void)
|
|||||||
if (MotorParam[ScndCtrlActualPos].AutoSwitch &&
|
if (MotorParam[ScndCtrlActualPos].AutoSwitch &&
|
||||||
(dizel_automaticgearstatus == 0)) // sprawdz czy zmienic biegi
|
(dizel_automaticgearstatus == 0)) // sprawdz czy zmienic biegi
|
||||||
{
|
{
|
||||||
if ((Vel > MotorParam[ScndCtrlActualPos].mfi) &&
|
if( Vel > MotorParam[ ScndCtrlActualPos ].mfi ) {
|
||||||
(ScndCtrlActualPos < ScndCtrlPosNo))
|
// shift up
|
||||||
{
|
if( ScndCtrlActualPos < ScndCtrlPosNo ) {
|
||||||
dizel_automaticgearstatus = 1;
|
dizel_automaticgearstatus = 1;
|
||||||
OK = true;
|
OK = true;
|
||||||
}
|
}
|
||||||
else if ((Vel < MotorParam[ScndCtrlActualPos].fi) && (ScndCtrlActualPos > 0))
|
}
|
||||||
{
|
else if( Vel < MotorParam[ ScndCtrlActualPos ].fi ) {
|
||||||
|
// shift down
|
||||||
|
if( ScndCtrlActualPos > 0 ) {
|
||||||
dizel_automaticgearstatus = -1;
|
dizel_automaticgearstatus = -1;
|
||||||
OK = true;
|
OK = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if ((dizel_engage < 0.1) && (dizel_automaticgearstatus != 0))
|
if ((dizel_engage < 0.1) && (dizel_automaticgearstatus != 0))
|
||||||
{
|
{
|
||||||
if (dizel_automaticgearstatus == 1)
|
if (dizel_automaticgearstatus == 1)
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ public:
|
|||||||
static float fSquareDist;
|
static float fSquareDist;
|
||||||
static TModel3d *pRoot;
|
static TModel3d *pRoot;
|
||||||
static std::string *pasText; // tekst dla wyświetlacza (!!!! do przemyślenia)
|
static std::string *pasText; // tekst dla wyświetlacza (!!!! do przemyślenia)
|
||||||
|
TSubModel() = default;
|
||||||
~TSubModel();
|
~TSubModel();
|
||||||
int Load(cParser &Parser, TModel3d *Model, /*int Pos,*/ bool dynamic);
|
int Load(cParser &Parser, TModel3d *Model, /*int Pos,*/ bool dynamic);
|
||||||
void ChildAdd(TSubModel *SubModel);
|
void ChildAdd(TSubModel *SubModel);
|
||||||
|
|||||||
4
Timer.h
4
Timer.h
@@ -29,6 +29,9 @@ void UpdateTimers(bool pause);
|
|||||||
class stopwatch {
|
class stopwatch {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
stopwatch() = default;
|
||||||
|
// methods
|
||||||
void
|
void
|
||||||
start() {
|
start() {
|
||||||
m_start = std::chrono::steady_clock::now(); }
|
m_start = std::chrono::steady_clock::now(); }
|
||||||
@@ -40,6 +43,7 @@ public:
|
|||||||
return m_accumulator / 20.f;}
|
return m_accumulator / 20.f;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// members
|
||||||
std::chrono::time_point<std::chrono::steady_clock> m_start { std::chrono::steady_clock::now() };
|
std::chrono::time_point<std::chrono::steady_clock> m_start { std::chrono::steady_clock::now() };
|
||||||
float m_accumulator { 1000.f / 30.f * 20.f }; // 20 last samples, initial 'neutral' rate of 30 fps
|
float m_accumulator { 1000.f / 30.f * 20.f }; // 20 last samples, initial 'neutral' rate of 30 fps
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1189,7 +1189,7 @@ void TTrack::create_geometry( gfx::geometrybank_handle const &Bank ) {
|
|||||||
{ szyna[ i ].texture.x,
|
{ szyna[ i ].texture.x,
|
||||||
szyna[ i ].texture.y } };
|
szyna[ i ].texture.y } };
|
||||||
|
|
||||||
if( false == iTrapezoid ) { continue; }
|
if( iTrapezoid == 0 ) { continue; }
|
||||||
// trapez albo przechyłki, to oddzielne punkty na końcu
|
// trapez albo przechyłki, to oddzielne punkty na końcu
|
||||||
|
|
||||||
rpts1[ 12 + i ] = {
|
rpts1[ 12 + i ] = {
|
||||||
|
|||||||
@@ -91,8 +91,6 @@ jawnie nazwę sekcji, ewentualnie nazwę zasilacza (zostanie zastąpiona wskazan
|
|||||||
sekcji z sąsiedniego przęsła).
|
sekcji z sąsiedniego przęsła).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
TTraction::TTraction( scene::node_data const &Nodedata ) : basic_node( Nodedata ) {}
|
|
||||||
|
|
||||||
glm::dvec3 LoadPoint( cParser &Input ) {
|
glm::dvec3 LoadPoint( cParser &Input ) {
|
||||||
// pobranie współrzędnych punktu
|
// pobranie współrzędnych punktu
|
||||||
glm::dvec3 point;
|
glm::dvec3 point;
|
||||||
@@ -104,6 +102,8 @@ glm::dvec3 LoadPoint( cParser &Input ) {
|
|||||||
return point;
|
return point;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TTraction::TTraction( scene::node_data const &Nodedata ) : basic_node( Nodedata ) {}
|
||||||
|
|
||||||
void
|
void
|
||||||
TTraction::Load( cParser *parser, glm::dvec3 const &pOrigin ) {
|
TTraction::Load( cParser *parser, glm::dvec3 const &pOrigin ) {
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ struct openal_source {
|
|||||||
bool is_looping { false };
|
bool is_looping { false };
|
||||||
sound_properties properties;
|
sound_properties properties;
|
||||||
sync_state sync { sync_state::good };
|
sync_state sync { sync_state::good };
|
||||||
|
// constructors
|
||||||
|
openal_source() = default;
|
||||||
// methods
|
// methods
|
||||||
template <class Iterator_>
|
template <class Iterator_>
|
||||||
openal_source &
|
openal_source &
|
||||||
@@ -102,6 +103,8 @@ class openal_renderer {
|
|||||||
friend class opengl_renderer;
|
friend class opengl_renderer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
openal_renderer() = default;
|
||||||
// destructor
|
// destructor
|
||||||
~openal_renderer();
|
~openal_renderer();
|
||||||
// methods
|
// methods
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class cFrustum {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// constructors:
|
// constructors:
|
||||||
|
cFrustum() = default;
|
||||||
// methods:
|
// methods:
|
||||||
// update the frustum to match current view orientation
|
// update the frustum to match current view orientation
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -267,6 +267,8 @@ typedef geometry_handle geometrybank_handle;
|
|||||||
class geometrybank_manager {
|
class geometrybank_manager {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
geometrybank_manager() = default;
|
||||||
// methods:
|
// methods:
|
||||||
// performs a resource sweep
|
// performs a resource sweep
|
||||||
void update();
|
void update();
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ struct opengl_technique {
|
|||||||
class opengl_camera {
|
class opengl_camera {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
opengl_camera() = default;
|
||||||
// methods:
|
// methods:
|
||||||
inline
|
inline
|
||||||
void
|
void
|
||||||
@@ -113,10 +115,10 @@ class opengl_renderer {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// types
|
// types
|
||||||
|
// constructors
|
||||||
|
opengl_renderer() = default;
|
||||||
// destructor
|
// destructor
|
||||||
~opengl_renderer() { gluDeleteQuadric( m_quadric ); }
|
~opengl_renderer() { gluDeleteQuadric( m_quadric ); }
|
||||||
|
|
||||||
// methods
|
// methods
|
||||||
bool
|
bool
|
||||||
Init( GLFWwindow *Window );
|
Init( GLFWwindow *Window );
|
||||||
|
|||||||
@@ -124,7 +124,6 @@ basic_cell::update_events() {
|
|||||||
void
|
void
|
||||||
basic_cell::update_sounds() {
|
basic_cell::update_sounds() {
|
||||||
|
|
||||||
auto const deltatime = Timer::GetDeltaRenderTime();
|
|
||||||
for( auto *sound : m_sounds ) {
|
for( auto *sound : m_sounds ) {
|
||||||
sound->play_event();
|
sound->play_event();
|
||||||
}
|
}
|
||||||
|
|||||||
4
scene.h
4
scene.h
@@ -63,6 +63,8 @@ class basic_cell {
|
|||||||
friend class opengl_renderer;
|
friend class opengl_renderer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
basic_cell() = default;
|
||||||
// methods
|
// methods
|
||||||
// legacy method, finds and assigns traction piece to specified pantograph of provided vehicle
|
// legacy method, finds and assigns traction piece to specified pantograph of provided vehicle
|
||||||
void
|
void
|
||||||
@@ -183,6 +185,8 @@ class basic_section {
|
|||||||
friend class opengl_renderer;
|
friend class opengl_renderer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
basic_section() = default;
|
||||||
// methods
|
// methods
|
||||||
// legacy method, finds and assigns traction piece to specified pantograph of provided vehicle
|
// legacy method, finds and assigns traction piece to specified pantograph of provided vehicle
|
||||||
void
|
void
|
||||||
|
|||||||
8
sky.h
8
sky.h
@@ -16,11 +16,13 @@ class TSky {
|
|||||||
|
|
||||||
friend class opengl_renderer;
|
friend class opengl_renderer;
|
||||||
|
|
||||||
|
public:
|
||||||
|
TSky() = default;
|
||||||
|
|
||||||
|
void Init();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TModel3d *mdCloud { nullptr };
|
TModel3d *mdCloud { nullptr };
|
||||||
|
|
||||||
public:
|
|
||||||
void Init();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|||||||
2
stars.h
2
stars.h
@@ -16,7 +16,7 @@ public:
|
|||||||
// methods:
|
// methods:
|
||||||
void init();
|
void init();
|
||||||
// constructors:
|
// constructors:
|
||||||
|
cStars() = default;
|
||||||
// deconstructor:
|
// deconstructor:
|
||||||
|
|
||||||
// members:
|
// members:
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ struct ui_panel {
|
|||||||
|
|
||||||
struct text_line {
|
struct text_line {
|
||||||
|
|
||||||
glm::vec4 color;
|
|
||||||
std::string data;
|
std::string data;
|
||||||
|
glm::vec4 color;
|
||||||
|
|
||||||
text_line( std::string const &Data, glm::vec4 const &Color):
|
text_line( std::string const &Data, glm::vec4 const &Color):
|
||||||
data(Data), color(Color)
|
data(Data), color(Color)
|
||||||
@@ -33,7 +33,7 @@ public:
|
|||||||
// parameters:
|
// parameters:
|
||||||
|
|
||||||
// constructors:
|
// constructors:
|
||||||
|
ui_layer() = default;
|
||||||
// destructor:
|
// destructor:
|
||||||
~ui_layer();
|
~ui_layer();
|
||||||
|
|
||||||
|
|||||||
@@ -19,13 +19,14 @@ struct TTranscript {
|
|||||||
class TTranscripts {
|
class TTranscripts {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// constructors
|
||||||
|
TTranscripts() = default;
|
||||||
// methods
|
// methods
|
||||||
void AddLine( std::string const &txt, float show, float hide, bool it );
|
void AddLine( std::string const &txt, float show, float hide, bool it );
|
||||||
// dodanie tekstów, długość dźwięku, czy istotne
|
// dodanie tekstów, długość dźwięku, czy istotne
|
||||||
void Add( std::string const &txt, bool background = false );
|
void Add( std::string const &txt, bool background = false );
|
||||||
// usuwanie niepotrzebnych (ok. 10 razy na sekundę)
|
// usuwanie niepotrzebnych (ok. 10 razy na sekundę)
|
||||||
void Update();
|
void Update();
|
||||||
|
|
||||||
// members
|
// members
|
||||||
std::deque<TTranscript> aLines;
|
std::deque<TTranscript> aLines;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user