mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-17 22:39:17 +02:00
refactor: replace null with nullptr
This commit is contained in:
10
Console.cpp
10
Console.cpp
@@ -72,14 +72,14 @@ void SetLedState( unsigned char Code, bool bOn ) {
|
|||||||
int Console::iBits = 0; // zmienna statyczna - obiekt Console jest jednen wspólny
|
int Console::iBits = 0; // zmienna statyczna - obiekt Console jest jednen wspólny
|
||||||
int Console::iMode = 0;
|
int Console::iMode = 0;
|
||||||
int Console::iConfig = 0;
|
int Console::iConfig = 0;
|
||||||
TPoKeys55 *Console::PoKeys55[2] = {NULL, NULL};
|
TPoKeys55 *Console::PoKeys55[2] = {nullptr, nullptr};
|
||||||
TLPT *Console::LPT = NULL;
|
TLPT *Console::LPT = nullptr;
|
||||||
int Console::iSwitch[8]; // bistabilne w kabinie, załączane z [Shift], wyłączane bez
|
int Console::iSwitch[8]; // bistabilne w kabinie, załączane z [Shift], wyłączane bez
|
||||||
int Console::iButton[8]; // monostabilne w kabinie, załączane podczas trzymania klawisza
|
int Console::iButton[8]; // monostabilne w kabinie, załączane podczas trzymania klawisza
|
||||||
|
|
||||||
Console::Console()
|
Console::Console()
|
||||||
{
|
{
|
||||||
PoKeys55[0] = PoKeys55[1] = NULL;
|
PoKeys55[0] = PoKeys55[1] = nullptr;
|
||||||
for (int i = 0; i < 8; ++i)
|
for (int i = 0; i < 8; ++i)
|
||||||
{ // zerowanie przełączników
|
{ // zerowanie przełączników
|
||||||
iSwitch[i] = 0; // bity 0..127 - bez [Ctrl], 128..255 - z [Ctrl]
|
iSwitch[i] = 0; // bity 0..127 - bez [Ctrl], 128..255 - z [Ctrl]
|
||||||
@@ -118,7 +118,7 @@ int Console::On()
|
|||||||
else
|
else
|
||||||
{ // połączenie nie wyszło, ma być NULL
|
{ // połączenie nie wyszło, ma być NULL
|
||||||
delete LPT;
|
delete LPT;
|
||||||
LPT = NULL;
|
LPT = nullptr;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4: // PoKeys
|
case 4: // PoKeys
|
||||||
@@ -131,7 +131,7 @@ int Console::On()
|
|||||||
else
|
else
|
||||||
{ // połączenie nie wyszło, ma być NULL
|
{ // połączenie nie wyszło, ma być NULL
|
||||||
delete PoKeys55[0];
|
delete PoKeys55[0];
|
||||||
PoKeys55[0] = NULL;
|
PoKeys55[0] = nullptr;
|
||||||
WriteLog("PoKeys not found!");
|
WriteLog("PoKeys not found!");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -76,13 +76,13 @@ bool TPoKeys55::Connect()
|
|||||||
// First populate a list of plugged in devices (by specifying "DIGCF_PRESENT"), which are of the
|
// First populate a list of plugged in devices (by specifying "DIGCF_PRESENT"), which are of the
|
||||||
// specified class GUID.
|
// specified class GUID.
|
||||||
DeviceInfoTable =
|
DeviceInfoTable =
|
||||||
SetupDiGetClassDevs(&InterfaceClassGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
|
SetupDiGetClassDevs(&InterfaceClassGuid, nullptr, nullptr, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
|
||||||
// Now look through the list we just populated. We are trying to see if any of them match our
|
// Now look through the list we just populated. We are trying to see if any of them match our
|
||||||
// device.
|
// device.
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
InterfaceDataStructure->cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
|
InterfaceDataStructure->cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
|
||||||
if (SetupDiEnumDeviceInterfaces(DeviceInfoTable, NULL, &InterfaceClassGuid, InterfaceIndex,
|
if (SetupDiEnumDeviceInterfaces(DeviceInfoTable, nullptr, &InterfaceClassGuid, InterfaceIndex,
|
||||||
InterfaceDataStructure))
|
InterfaceDataStructure))
|
||||||
{
|
{
|
||||||
ErrorStatus = GetLastError();
|
ErrorStatus = GetLastError();
|
||||||
@@ -113,11 +113,11 @@ bool TPoKeys55::Connect()
|
|||||||
// First query for the size of the hardware ID, so we can know how big a buffer to allocate
|
// First query for the size of the hardware ID, so we can know how big a buffer to allocate
|
||||||
// for the data.
|
// for the data.
|
||||||
SetupDiGetDeviceRegistryProperty(DeviceInfoTable, &DevInfoData, SPDRP_HARDWAREID,
|
SetupDiGetDeviceRegistryProperty(DeviceInfoTable, &DevInfoData, SPDRP_HARDWAREID,
|
||||||
&dwRegType, NULL, 0, &dwRegSize);
|
&dwRegType, nullptr, 0, &dwRegSize);
|
||||||
// Allocate a buffer for the hardware ID.
|
// Allocate a buffer for the hardware ID.
|
||||||
// PropertyValueBuffer=(BYTE*)malloc(dwRegSize);
|
// PropertyValueBuffer=(BYTE*)malloc(dwRegSize);
|
||||||
PropertyValueBuffer = new BYTE[dwRegSize];
|
PropertyValueBuffer = new BYTE[dwRegSize];
|
||||||
if (PropertyValueBuffer == NULL) // if null,error,couldn't allocate enough memory
|
if (PropertyValueBuffer == nullptr) // if null,error,couldn't allocate enough memory
|
||||||
{ // Can't really recover from this situation,just exit instead.
|
{ // Can't really recover from this situation,just exit instead.
|
||||||
// ShowMessage("Allocation PropertyValueBuffer impossible");
|
// ShowMessage("Allocation PropertyValueBuffer impossible");
|
||||||
SetupDiDestroyDeviceInfoList(
|
SetupDiDestroyDeviceInfoList(
|
||||||
@@ -132,7 +132,7 @@ bool TPoKeys55::Connect()
|
|||||||
// and PID,in the example
|
// and PID,in the example
|
||||||
// format "Vid_04d8&Pid_003f".
|
// format "Vid_04d8&Pid_003f".
|
||||||
SetupDiGetDeviceRegistryProperty(DeviceInfoTable, &DevInfoData, SPDRP_HARDWAREID,
|
SetupDiGetDeviceRegistryProperty(DeviceInfoTable, &DevInfoData, SPDRP_HARDWAREID,
|
||||||
&dwRegType, PropertyValueBuffer, dwRegSize, NULL);
|
&dwRegType, PropertyValueBuffer, dwRegSize, nullptr);
|
||||||
// Now check if the first string in the hardware ID matches the device ID of my USB device.
|
// Now check if the first string in the hardware ID matches the device ID of my USB device.
|
||||||
// ListBox1->Items->Add((char*)PropertyValueBuffer);
|
// ListBox1->Items->Add((char*)PropertyValueBuffer);
|
||||||
DeviceIDFromRegistry = reinterpret_cast<char*>(PropertyValueBuffer);
|
DeviceIDFromRegistry = reinterpret_cast<char*>(PropertyValueBuffer);
|
||||||
@@ -157,12 +157,11 @@ bool TPoKeys55::Connect()
|
|||||||
// get the structure (after we have allocated enough memory for the structure.)
|
// get the structure (after we have allocated enough memory for the structure.)
|
||||||
DetailedInterfaceDataStructure->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
|
DetailedInterfaceDataStructure->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
|
||||||
// First call populates "StructureSize" with the correct value
|
// First call populates "StructureSize" with the correct value
|
||||||
SetupDiGetDeviceInterfaceDetail(DeviceInfoTable, InterfaceDataStructure, NULL, 0,
|
SetupDiGetDeviceInterfaceDetail(DeviceInfoTable, InterfaceDataStructure, nullptr, 0,
|
||||||
&StructureSize, NULL);
|
&StructureSize, nullptr);
|
||||||
DetailedInterfaceDataStructure =
|
DetailedInterfaceDataStructure =
|
||||||
(PSP_DEVICE_INTERFACE_DETAIL_DATA)(malloc(StructureSize)); // Allocate enough memory
|
(PSP_DEVICE_INTERFACE_DETAIL_DATA)(malloc(StructureSize)); // Allocate enough memory
|
||||||
if (DetailedInterfaceDataStructure ==
|
if (DetailedInterfaceDataStructure == nullptr) // if null,error,couldn't allocate enough memory
|
||||||
NULL) // if null,error,couldn't allocate enough memory
|
|
||||||
{ // Can't really recover from this situation,just exit instead.
|
{ // Can't really recover from this situation,just exit instead.
|
||||||
SetupDiDestroyDeviceInfoList(
|
SetupDiDestroyDeviceInfoList(
|
||||||
DeviceInfoTable); // Clean up the old structure we no longer need.
|
DeviceInfoTable); // Clean up the old structure we no longer need.
|
||||||
@@ -171,19 +170,18 @@ bool TPoKeys55::Connect()
|
|||||||
DetailedInterfaceDataStructure->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
|
DetailedInterfaceDataStructure->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
|
||||||
// Now call SetupDiGetDeviceInterfaceDetail() a second time to receive the goods.
|
// Now call SetupDiGetDeviceInterfaceDetail() a second time to receive the goods.
|
||||||
SetupDiGetDeviceInterfaceDetail(DeviceInfoTable, InterfaceDataStructure,
|
SetupDiGetDeviceInterfaceDetail(DeviceInfoTable, InterfaceDataStructure,
|
||||||
DetailedInterfaceDataStructure, StructureSize, NULL,
|
DetailedInterfaceDataStructure, StructureSize, nullptr, nullptr);
|
||||||
NULL);
|
|
||||||
// We now have the proper device path,and we can finally open read and write handles to
|
// We now have the proper device path,and we can finally open read and write handles to
|
||||||
// the device.
|
// the device.
|
||||||
// We store the handles in the global variables "WriteHandle" and "ReadHandle",which we
|
// We store the handles in the global variables "WriteHandle" and "ReadHandle",which we
|
||||||
// will use later to actually communicate.
|
// will use later to actually communicate.
|
||||||
WriteHandle = CreateFile((DetailedInterfaceDataStructure->DevicePath), GENERIC_WRITE,
|
WriteHandle = CreateFile((DetailedInterfaceDataStructure->DevicePath), GENERIC_WRITE,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
|
FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, 0);
|
||||||
ErrorStatus = GetLastError();
|
ErrorStatus = GetLastError();
|
||||||
// if (ErrorStatus==ERROR_SUCCESS)
|
// if (ErrorStatus==ERROR_SUCCESS)
|
||||||
// ToggleLedBtn->Enabled=true;//Make button no longer greyed out
|
// ToggleLedBtn->Enabled=true;//Make button no longer greyed out
|
||||||
ReadHandle = CreateFile((DetailedInterfaceDataStructure->DevicePath), GENERIC_READ,
|
ReadHandle = CreateFile((DetailedInterfaceDataStructure->DevicePath), GENERIC_READ,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
|
FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, 0);
|
||||||
ErrorStatus = GetLastError();
|
ErrorStatus = GetLastError();
|
||||||
if (ErrorStatus == ERROR_SUCCESS)
|
if (ErrorStatus == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -536,7 +536,7 @@ TMoverParameters::TMoverParameters(double VelInitial, std::string TypeNameInit,
|
|||||||
{
|
{
|
||||||
Couplers[b].AllowedFlag = 3; // domyślnie hak i hamulec, inne trzeba włączyć jawnie w FIZ
|
Couplers[b].AllowedFlag = 3; // domyślnie hak i hamulec, inne trzeba włączyć jawnie w FIZ
|
||||||
Couplers[b].CouplingFlag = 0;
|
Couplers[b].CouplingFlag = 0;
|
||||||
Couplers[b].Connected = NULL;
|
Couplers[b].Connected = nullptr;
|
||||||
Couplers[b].ConnectedNr = 0; // Ra: to nie ma znaczenia jak nie podłączony
|
Couplers[b].ConnectedNr = 0; // Ra: to nie ma znaczenia jak nie podłączony
|
||||||
Couplers[b].Render = false;
|
Couplers[b].Render = false;
|
||||||
Couplers[b].CForce = 0.0;
|
Couplers[b].CForce = 0.0;
|
||||||
@@ -4630,7 +4630,7 @@ void TMoverParameters::UpdatePipePressure(double dt)
|
|||||||
|
|
||||||
LocBrakePress = LocHandle->GetCP();
|
LocBrakePress = LocHandle->GetCP();
|
||||||
for (int b = 0; b < 2; b++)
|
for (int b = 0; b < 2; b++)
|
||||||
if (((TrainType & (dt_ET41 | dt_ET42)) != 0) && (Couplers[b].Connected != NULL)) // nie podoba mi się to rozwiązanie, chyba trzeba
|
if (((TrainType & (dt_ET41 | dt_ET42)) != 0) && (Couplers[b].Connected != nullptr)) // nie podoba mi się to rozwiązanie, chyba trzeba
|
||||||
// dodać jakiś wpis do fizyki na to
|
// dodać jakiś wpis do fizyki na to
|
||||||
if (((Couplers[b].Connected->TrainType & (dt_ET41 | dt_ET42)) != 0) && ((Couplers[b].CouplingFlag & 36) == 36))
|
if (((Couplers[b].Connected->TrainType & (dt_ET41 | dt_ET42)) != 0) && ((Couplers[b].CouplingFlag & 36) == 36))
|
||||||
LocBrakePress = std::max(Couplers[b].Connected->LocHandle->GetCP(), LocBrakePress);
|
LocBrakePress = std::max(Couplers[b].Connected->LocHandle->GetCP(), LocBrakePress);
|
||||||
@@ -4779,7 +4779,7 @@ void TMoverParameters::UpdateScndPipePressure(double dt)
|
|||||||
dv2 = 0;
|
dv2 = 0;
|
||||||
|
|
||||||
// sprzeg 1
|
// sprzeg 1
|
||||||
if (Couplers[0].Connected != NULL)
|
if (Couplers[0].Connected != nullptr)
|
||||||
if (TestFlag(Couplers[0].CouplingFlag, ctrain_scndpneumatic))
|
if (TestFlag(Couplers[0].CouplingFlag, ctrain_scndpneumatic))
|
||||||
{
|
{
|
||||||
c = Couplers[0].Connected; // skrot
|
c = Couplers[0].Connected; // skrot
|
||||||
@@ -4789,7 +4789,7 @@ void TMoverParameters::UpdateScndPipePressure(double dt)
|
|||||||
c->Pipe2->Flow(-dv1);
|
c->Pipe2->Flow(-dv1);
|
||||||
}
|
}
|
||||||
// sprzeg 2
|
// sprzeg 2
|
||||||
if (Couplers[1].Connected != NULL)
|
if (Couplers[1].Connected != nullptr)
|
||||||
if (TestFlag(Couplers[1].CouplingFlag, ctrain_scndpneumatic))
|
if (TestFlag(Couplers[1].CouplingFlag, ctrain_scndpneumatic))
|
||||||
{
|
{
|
||||||
c = Couplers[1].Connected; // skrot
|
c = Couplers[1].Connected; // skrot
|
||||||
@@ -4798,7 +4798,7 @@ void TMoverParameters::UpdateScndPipePressure(double dt)
|
|||||||
c->switch_physics(true);
|
c->switch_physics(true);
|
||||||
c->Pipe2->Flow(-dv2);
|
c->Pipe2->Flow(-dv2);
|
||||||
}
|
}
|
||||||
if ((Couplers[1].Connected != NULL) && (Couplers[0].Connected != NULL))
|
if ((Couplers[1].Connected != nullptr) && (Couplers[0].Connected != nullptr))
|
||||||
if ((TestFlag(Couplers[0].CouplingFlag, ctrain_scndpneumatic)) && (TestFlag(Couplers[1].CouplingFlag, ctrain_scndpneumatic)))
|
if ((TestFlag(Couplers[0].CouplingFlag, ctrain_scndpneumatic)) && (TestFlag(Couplers[1].CouplingFlag, ctrain_scndpneumatic)))
|
||||||
{
|
{
|
||||||
dV = 0.00025 * dt * PF(Couplers[0].Connected->ScndPipePress, Couplers[1].Connected->ScndPipePress, Spz * 0.25);
|
dV = 0.00025 * dt * PF(Couplers[0].Connected->ScndPipePress, Couplers[1].Connected->ScndPipePress, Spz * 0.25);
|
||||||
@@ -4869,7 +4869,7 @@ double TMoverParameters::GetDVc(double dt)
|
|||||||
dv1 = 0;
|
dv1 = 0;
|
||||||
dv2 = 0;
|
dv2 = 0;
|
||||||
// sprzeg 1
|
// sprzeg 1
|
||||||
if (Couplers[0].Connected != NULL)
|
if (Couplers[0].Connected != nullptr)
|
||||||
if (TestFlag(Couplers[0].CouplingFlag, ctrain_pneumatic))
|
if (TestFlag(Couplers[0].CouplingFlag, ctrain_pneumatic))
|
||||||
{ //*0.85
|
{ //*0.85
|
||||||
c = Couplers[0].Connected; // skrot //0.08 //e/D * L/D = e/D^2 * L
|
c = Couplers[0].Connected; // skrot //0.08 //e/D * L/D = e/D^2 * L
|
||||||
@@ -4879,7 +4879,7 @@ double TMoverParameters::GetDVc(double dt)
|
|||||||
c->Pipe->Flow(-dv1);
|
c->Pipe->Flow(-dv1);
|
||||||
}
|
}
|
||||||
// sprzeg 2
|
// sprzeg 2
|
||||||
if (Couplers[1].Connected != NULL)
|
if (Couplers[1].Connected != nullptr)
|
||||||
if (TestFlag(Couplers[1].CouplingFlag, ctrain_pneumatic))
|
if (TestFlag(Couplers[1].CouplingFlag, ctrain_pneumatic))
|
||||||
{
|
{
|
||||||
c = Couplers[1].Connected; // skrot
|
c = Couplers[1].Connected; // skrot
|
||||||
|
|||||||
@@ -1086,7 +1086,7 @@ void eu07_application::init_files()
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
DeleteFile("log.txt");
|
DeleteFile("log.txt");
|
||||||
DeleteFile("errors.txt");
|
DeleteFile("errors.txt");
|
||||||
CreateDirectory("logs", NULL);
|
CreateDirectory("logs", nullptr);
|
||||||
#elif __unix__
|
#elif __unix__
|
||||||
unlink("log.txt");
|
unlink("log.txt");
|
||||||
unlink("errors.txt");
|
unlink("errors.txt");
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ openal_buffer::openal_buffer( std::string const &Filename ) :
|
|||||||
if (sf == nullptr)
|
if (sf == nullptr)
|
||||||
throw std::runtime_error("sound: sf_open failed");
|
throw std::runtime_error("sound: sf_open failed");
|
||||||
|
|
||||||
sf_command(sf, SFC_SET_NORM_FLOAT, NULL, SF_TRUE);
|
sf_command(sf, SFC_SET_NORM_FLOAT, nullptr, SF_TRUE);
|
||||||
|
|
||||||
float *fbuf = new float[si.frames * si.channels];
|
float *fbuf = new float[si.frames * si.channels];
|
||||||
if (sf_readf_float(sf, fbuf, si.frames) != si.frames)
|
if (sf_readf_float(sf, fbuf, si.frames) != si.frames)
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ piped_proc::piped_proc(std::string cmd, bool write)
|
|||||||
|
|
||||||
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
|
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
|
||||||
saAttr.bInheritHandle = TRUE;
|
saAttr.bInheritHandle = TRUE;
|
||||||
saAttr.lpSecurityDescriptor = NULL;
|
saAttr.lpSecurityDescriptor = nullptr;
|
||||||
|
|
||||||
if (!CreatePipe(&pipe_rd, &pipe_wr, &saAttr, 0)) {
|
if (!CreatePipe(&pipe_rd, &pipe_wr, &saAttr, 0)) {
|
||||||
ErrorLog("piped_proc: CreatePipe failed!");
|
ErrorLog("piped_proc: CreatePipe failed!");
|
||||||
@@ -66,7 +66,7 @@ piped_proc::piped_proc(std::string cmd, bool write)
|
|||||||
siStartInfo.hStdInput = pipe_rd;
|
siStartInfo.hStdInput = pipe_rd;
|
||||||
siStartInfo.dwFlags |= STARTF_USESTDHANDLES;
|
siStartInfo.dwFlags |= STARTF_USESTDHANDLES;
|
||||||
|
|
||||||
if (!CreateProcessA(NULL, (char*)cmd.c_str(), NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &siStartInfo, &process)) {
|
if (!CreateProcessA(nullptr, (char*)cmd.c_str(), nullptr, nullptr, TRUE, CREATE_NO_WINDOW, nullptr, nullptr, &siStartInfo, &process)) {
|
||||||
ErrorLog("piped_proc: CreateProcess failed!");
|
ErrorLog("piped_proc: CreateProcess failed!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -92,7 +92,7 @@ size_t piped_proc::read(unsigned char *buf, size_t len)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
DWORD read = 0;
|
DWORD read = 0;
|
||||||
BOOL ret = ReadFile(pipe_rd, buf, len, &read, NULL);
|
BOOL ret = ReadFile(pipe_rd, buf, len, &read, nullptr);
|
||||||
|
|
||||||
return read;
|
return read;
|
||||||
}
|
}
|
||||||
@@ -103,7 +103,7 @@ size_t piped_proc::write(unsigned char *buf, size_t len)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
DWORD wrote = 0;
|
DWORD wrote = 0;
|
||||||
BOOL ret = WriteFile(pipe_wr, buf, len, &wrote, NULL);
|
BOOL ret = WriteFile(pipe_wr, buf, len, &wrote, nullptr);
|
||||||
|
|
||||||
return wrote;
|
return wrote;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,16 +36,16 @@ TAnimContainer::TAnimContainer()
|
|||||||
vTranslateTo = glm::dvec3(0.0, 0.0, 0.0); // docelowe przesunięcie
|
vTranslateTo = glm::dvec3(0.0, 0.0, 0.0); // docelowe przesunięcie
|
||||||
fTranslateSpeed = 0.0;
|
fTranslateSpeed = 0.0;
|
||||||
fAngleSpeed = 0.0;
|
fAngleSpeed = 0.0;
|
||||||
pSubModel = NULL;
|
pSubModel = nullptr;
|
||||||
iAnim = 0; // położenie początkowe
|
iAnim = 0; // położenie początkowe
|
||||||
evDone = NULL; // powiadamianie o zakończeniu animacji
|
evDone = nullptr; // powiadamianie o zakończeniu animacji
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TAnimContainer::Init(TSubModel *pNewSubModel)
|
bool TAnimContainer::Init(TSubModel *pNewSubModel)
|
||||||
{
|
{
|
||||||
fRotateSpeed = 0.0f;
|
fRotateSpeed = 0.0f;
|
||||||
pSubModel = pNewSubModel;
|
pSubModel = pNewSubModel;
|
||||||
return (pSubModel != NULL);
|
return (pSubModel != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TAnimContainer::SetRotateAnim(glm::vec3 vNewRotateAngles, double fNewRotateSpeed)
|
void TAnimContainer::SetRotateAnim(glm::vec3 vNewRotateAngles, double fNewRotateSpeed)
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ using namespace Mtable;
|
|||||||
|
|
||||||
float TSubModel::fSquareDist = 0.f;
|
float TSubModel::fSquareDist = 0.f;
|
||||||
std::uintptr_t TSubModel::iInstance; // numer renderowanego egzemplarza obiektu
|
std::uintptr_t TSubModel::iInstance; // numer renderowanego egzemplarza obiektu
|
||||||
texture_handle const *TSubModel::ReplacableSkinId = NULL;
|
texture_handle const *TSubModel::ReplacableSkinId = nullptr;
|
||||||
int TSubModel::iAlpha = 0x30300030; // maska do testowania flag tekstur wymiennych
|
int TSubModel::iAlpha = 0x30300030; // maska do testowania flag tekstur wymiennych
|
||||||
TModel3d *TSubModel::pRoot; // Ra: tymczasowo wskaźnik na model widoczny z submodelu
|
TModel3d *TSubModel::pRoot; // Ra: tymczasowo wskaźnik na model widoczny z submodelu
|
||||||
std::string *TSubModel::pasText;
|
std::string *TSubModel::pasText;
|
||||||
@@ -1116,7 +1116,7 @@ TSubModel *TSubModel::GetFromName(std::string const &search, bool i)
|
|||||||
if (result)
|
if (result)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
return NULL;
|
return nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
// WORD hbIndices[18]={3,0,1,5,4,2,1,0,4,1,5,3,2,3,5,2,4,0};
|
// WORD hbIndices[18]={3,0,1,5,4,2,1,0,4,1,5,3,2,3,5,2,4,0};
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ int AirCoupler::GetStatus()
|
|||||||
*/
|
*/
|
||||||
void AirCoupler::Clear()
|
void AirCoupler::Clear()
|
||||||
{
|
{
|
||||||
ModelOn = NULL;
|
ModelOn = nullptr;
|
||||||
ModelOff = NULL;
|
ModelOff = nullptr;
|
||||||
ModelxOn = NULL;
|
ModelxOn = nullptr;
|
||||||
On = false;
|
On = false;
|
||||||
xOn = false;
|
xOn = false;
|
||||||
}
|
}
|
||||||
@@ -73,9 +73,9 @@ void AirCoupler::Load(cParser *Parser, TModel3d *Model)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ModelOn = NULL;
|
ModelOn = nullptr;
|
||||||
ModelxOn = NULL;
|
ModelxOn = nullptr;
|
||||||
ModelOff = NULL;
|
ModelOff = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ void TSpeedPos::Clear()
|
|||||||
fSectionVelocityDist = 0.0; //brak długości
|
fSectionVelocityDist = 0.0; //brak długości
|
||||||
fDist = 0.0;
|
fDist = 0.0;
|
||||||
vPos = glm::dvec3(0, 0, 0);
|
vPos = glm::dvec3(0, 0, 0);
|
||||||
trTrack = NULL; // brak wskaźnika
|
trTrack = nullptr; // brak wskaźnika
|
||||||
};
|
};
|
||||||
|
|
||||||
void TSpeedPos::CommandCheck()
|
void TSpeedPos::CommandCheck()
|
||||||
@@ -1918,7 +1918,7 @@ TController::TController(bool AI, TDynamicObject *NewControll, bool InitPsyche,
|
|||||||
|
|
||||||
if( WriteLogFlag ) {
|
if( WriteLogFlag ) {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
CreateDirectory( "physicslog", NULL );
|
CreateDirectory( "physicslog", nullptr);
|
||||||
#elif __unix__
|
#elif __unix__
|
||||||
mkdir( "physicslog", 0744 );
|
mkdir( "physicslog", 0744 );
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -71,9 +71,27 @@ TextureTest( std::string const &Name ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
void TAnimPant::common_pantograph_settings()
|
||||||
|
{ // wspólne ustawienia, liczone po przypisaniu wymiarów ramion
|
||||||
|
vPos = glm::dvec3(0, 0, 0);
|
||||||
|
fAngleL0 = glm::radians(2.8547285515689267247882521833308);
|
||||||
|
fAngleL = fAngleL0; // początkowy kąt dolnego ramienia
|
||||||
|
fAngleU0 = acos((fLenL1 * cos(fAngleL) + fHoriz) / fLenU1); // górne ramię
|
||||||
|
fAngleU = fAngleU0; // początkowy kąt
|
||||||
|
PantWys = fLenL1 * sin(fAngleL) + fLenU1 * sin(fAngleU) + fHeight; // wysokość początkowa
|
||||||
|
PantTraction = PantWys;
|
||||||
|
hvPowerWire = nullptr;
|
||||||
|
fWidthExtra = 0.381f; //(2.032m-1.027)/2
|
||||||
|
// poza obszarem roboczym jest aproksymacja łamaną o 5 odcinkach
|
||||||
|
fHeightExtra[0] = 0.0f; //+0.0762
|
||||||
|
fHeightExtra[1] = -0.01f; //+0.1524
|
||||||
|
fHeightExtra[2] = -0.03f; //+0.2286
|
||||||
|
fHeightExtra[3] = -0.07f; //+0.3048
|
||||||
|
fHeightExtra[4] = -0.15f; //+0.3810
|
||||||
|
}
|
||||||
|
|
||||||
void TAnimPant::AKP_4E()
|
void TAnimPant::AKP_4E()
|
||||||
{ // ustawienie wymiarów dla pantografu AKP-4E
|
{ // ustawienie wymiarów dla pantografu AKP-4E
|
||||||
vPos = glm::dvec3(0, 0, 0); // przypisanie domyśnych współczynników do pantografów
|
|
||||||
fLenL1 = 1.22; // 1.176289 w modelach
|
fLenL1 = 1.22; // 1.176289 w modelach
|
||||||
fLenU1 = 1.755; // 1.724482197 w modelach
|
fLenU1 = 1.755; // 1.724482197 w modelach
|
||||||
fHoriz = 0.535; // 0.54555075 przesunięcie ślizgu w długości pojazdu względem
|
fHoriz = 0.535; // 0.54555075 przesunięcie ślizgu w długości pojazdu względem
|
||||||
@@ -81,27 +99,10 @@ void TAnimPant::AKP_4E()
|
|||||||
// ramienia
|
// ramienia
|
||||||
fHeight = 0.07; // wysokość ślizgu ponad oś obrotu
|
fHeight = 0.07; // wysokość ślizgu ponad oś obrotu
|
||||||
fWidth = 0.635; // połowa szerokości ślizgu, 0.635 dla AKP-1 i AKP-4E
|
fWidth = 0.635; // połowa szerokości ślizgu, 0.635 dla AKP-1 i AKP-4E
|
||||||
fAngleL0 = glm::radians(2.8547285515689267247882521833308);
|
common_pantograph_settings();
|
||||||
fAngleL = fAngleL0; // początkowy kąt dolnego ramienia
|
|
||||||
// fAngleU0=acos((1.22*cos(fAngleL)+0.535)/1.755); //górne ramię
|
|
||||||
fAngleU0 = acos((fLenL1 * cos(fAngleL) + fHoriz) / fLenU1); // górne ramię
|
|
||||||
fAngleU = fAngleU0; // początkowy kąt
|
|
||||||
// PantWys=1.22*sin(fAngleL)+1.755*sin(fAngleU); //wysokość początkowa
|
|
||||||
PantWys = fLenL1 * sin(fAngleL) + fLenU1 * sin(fAngleU) + fHeight; // wysokość początkowa
|
|
||||||
PantTraction = PantWys;
|
|
||||||
hvPowerWire = NULL;
|
|
||||||
fWidthExtra = 0.381f; //(2.032m-1.027)/2
|
|
||||||
// poza obszarem roboczym jest aproksymacja łamaną o 5 odcinkach
|
|
||||||
fHeightExtra[0] = 0.0f; //+0.0762
|
|
||||||
fHeightExtra[1] = -0.01f; //+0.1524
|
|
||||||
fHeightExtra[2] = -0.03f; //+0.2286
|
|
||||||
fHeightExtra[3] = -0.07f; //+0.3048
|
|
||||||
fHeightExtra[4] = -0.15f; //+0.3810
|
|
||||||
};
|
};
|
||||||
void TAnimPant::WBL85()
|
void TAnimPant::WBL85()
|
||||||
{ // ustawienie wymiarów dla pantografu WBL88
|
{ // ustawienie wymiarów dla pantografu WBL88
|
||||||
vPos = glm::dvec3(0, 0, 0); // przypisanie domyśnych współczynników do pantografów
|
|
||||||
|
|
||||||
// mnozniki animacji ramion dla pantografu WBL88
|
// mnozniki animacji ramion dla pantografu WBL88
|
||||||
rd1rf = 1.f;
|
rd1rf = 1.f;
|
||||||
rd2rf = 1.2;
|
rd2rf = 1.2;
|
||||||
@@ -115,27 +116,10 @@ void TAnimPant::WBL85()
|
|||||||
// osi obrotu dolnego ramienia
|
// osi obrotu dolnego ramienia
|
||||||
fHeight = 0.09353; // wysokość ślizgu ponad oś obrotu
|
fHeight = 0.09353; // wysokość ślizgu ponad oś obrotu
|
||||||
fWidth = 0.4969; // połowa szerokości ślizgu
|
fWidth = 0.4969; // połowa szerokości ślizgu
|
||||||
fAngleL0 = glm::radians(2.8547285515689267247882521833308);
|
common_pantograph_settings();
|
||||||
fAngleL = fAngleL0; // początkowy kąt dolnego ramienia
|
|
||||||
// fAngleU0=acos((1.22*cos(fAngleL)+0.535)/1.755); //górne ramię
|
|
||||||
fAngleU0 = acos((fLenL1 * cos(fAngleL) + fHoriz) / fLenU1); // górne ramię
|
|
||||||
fAngleU = fAngleU0; // początkowy kąt
|
|
||||||
// PantWys=1.22*sin(fAngleL)+1.755*sin(fAngleU); //wysokość początkowa
|
|
||||||
PantWys = fLenL1 * sin(fAngleL) + fLenU1 * sin(fAngleU) + fHeight; // wysokość początkowa
|
|
||||||
PantTraction = PantWys;
|
|
||||||
hvPowerWire = NULL;
|
|
||||||
fWidthExtra = 0.381f; //(2.032m-1.027)/2
|
|
||||||
// poza obszarem roboczym jest aproksymacja łamaną o 5 odcinkach
|
|
||||||
fHeightExtra[0] = 0.0f; //+0.0762
|
|
||||||
fHeightExtra[1] = -0.01f; //+0.1524
|
|
||||||
fHeightExtra[2] = -0.03f; //+0.2286
|
|
||||||
fHeightExtra[3] = -0.07f; //+0.3048
|
|
||||||
fHeightExtra[4] = -0.15f; //+0.3810
|
|
||||||
};
|
};
|
||||||
void TAnimPant::EC160_200()
|
void TAnimPant::EC160_200()
|
||||||
{ // ustawienie wymiarów dla pantografow EC160 lub EC200
|
{ // ustawienie wymiarów dla pantografow EC160 lub EC200
|
||||||
vPos = glm::dvec3(0, 0, 0); // przypisanie domyśnych współczynników do pantografów
|
|
||||||
|
|
||||||
// mnozniki animacji ramion dla pantografow EC160 lub EC200
|
// mnozniki animacji ramion dla pantografow EC160 lub EC200
|
||||||
rd1rf = 1.f;
|
rd1rf = 1.f;
|
||||||
rd2rf = 0.85;
|
rd2rf = 0.85;
|
||||||
@@ -149,27 +133,10 @@ void TAnimPant::EC160_200()
|
|||||||
// osi obrotu dolnego ramienia
|
// osi obrotu dolnego ramienia
|
||||||
fHeight = 0.09353; // wysokość ślizgu ponad oś obrotu
|
fHeight = 0.09353; // wysokość ślizgu ponad oś obrotu
|
||||||
fWidth = 0.4969; // połowa szerokości ślizgu
|
fWidth = 0.4969; // połowa szerokości ślizgu
|
||||||
fAngleL0 = glm::radians(2.8547285515689267247882521833308);
|
common_pantograph_settings();
|
||||||
fAngleL = fAngleL0; // początkowy kąt dolnego ramienia
|
|
||||||
// fAngleU0=acos((1.22*cos(fAngleL)+0.535)/1.755); //górne ramię
|
|
||||||
fAngleU0 = acos((fLenL1 * cos(fAngleL) + fHoriz) / fLenU1); // górne ramię
|
|
||||||
fAngleU = fAngleU0; // początkowy kąt
|
|
||||||
// PantWys=1.22*sin(fAngleL)+1.755*sin(fAngleU); //wysokość początkowa
|
|
||||||
PantWys = fLenL1 * sin(fAngleL) + fLenU1 * sin(fAngleU) + fHeight; // wysokość początkowa
|
|
||||||
PantTraction = PantWys;
|
|
||||||
hvPowerWire = NULL;
|
|
||||||
fWidthExtra = 0.381f; //(2.032m-1.027)/2
|
|
||||||
// poza obszarem roboczym jest aproksymacja łamaną o 5 odcinkach
|
|
||||||
fHeightExtra[0] = 0.0f; //+0.0762
|
|
||||||
fHeightExtra[1] = -0.01f; //+0.1524
|
|
||||||
fHeightExtra[2] = -0.03f; //+0.2286
|
|
||||||
fHeightExtra[3] = -0.07f; //+0.3048
|
|
||||||
fHeightExtra[4] = -0.15f; //+0.3810
|
|
||||||
};
|
};
|
||||||
void TAnimPant::DSAx()
|
void TAnimPant::DSAx()
|
||||||
{ // ustawienie wymiarów dla pantografow z rodziny DSA
|
{ // ustawienie wymiarów dla pantografow z rodziny DSA
|
||||||
vPos = glm::dvec3(0, 0, 0); // przypisanie domyśnych współczynników do pantografów
|
|
||||||
|
|
||||||
// mnozniki animacji ramion dla pantografow z rodziny DSA
|
// mnozniki animacji ramion dla pantografow z rodziny DSA
|
||||||
rd1rf = 1.f;
|
rd1rf = 1.f;
|
||||||
rd2rf = 1.025;
|
rd2rf = 1.025;
|
||||||
@@ -183,22 +150,7 @@ void TAnimPant::DSAx()
|
|||||||
// osi obrotu dolnego ramienia
|
// osi obrotu dolnego ramienia
|
||||||
fHeight = 0.09353; // wysokość ślizgu ponad oś obrotu
|
fHeight = 0.09353; // wysokość ślizgu ponad oś obrotu
|
||||||
fWidth = 0.4969; // połowa szerokości ślizgu
|
fWidth = 0.4969; // połowa szerokości ślizgu
|
||||||
fAngleL0 = glm::radians(2.8547285515689267247882521833308);
|
common_pantograph_settings();
|
||||||
fAngleL = fAngleL0; // początkowy kąt dolnego ramienia
|
|
||||||
// fAngleU0=acos((1.22*cos(fAngleL)+0.535)/1.755); //górne ramię
|
|
||||||
fAngleU0 = acos((fLenL1 * cos(fAngleL) + fHoriz) / fLenU1); // górne ramię
|
|
||||||
fAngleU = fAngleU0; // początkowy kąt
|
|
||||||
// PantWys=1.22*sin(fAngleL)+1.755*sin(fAngleU); //wysokość początkowa
|
|
||||||
PantWys = fLenL1 * sin(fAngleL) + fLenU1 * sin(fAngleU) + fHeight; // wysokość początkowa
|
|
||||||
PantTraction = PantWys;
|
|
||||||
hvPowerWire = NULL;
|
|
||||||
fWidthExtra = 0.381f; //(2.032m-1.027)/2
|
|
||||||
// poza obszarem roboczym jest aproksymacja łamaną o 5 odcinkach
|
|
||||||
fHeightExtra[0] = 0.0f; //+0.0762
|
|
||||||
fHeightExtra[1] = -0.01f; //+0.1524
|
|
||||||
fHeightExtra[2] = -0.03f; //+0.2286
|
|
||||||
fHeightExtra[3] = -0.07f; //+0.3048
|
|
||||||
fHeightExtra[4] = -0.15f; //+0.3810
|
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
int TAnim::TypeSet(int i, TMoverParameters currentMover, int fl)
|
int TAnim::TypeSet(int i, TMoverParameters currentMover, int fl)
|
||||||
@@ -218,7 +170,7 @@ int TAnim::TypeSet(int i, TMoverParameters currentMover, int fl)
|
|||||||
break; // 1-drzwi
|
break; // 1-drzwi
|
||||||
case 2:
|
case 2:
|
||||||
iFlags = 0x020;
|
iFlags = 0x020;
|
||||||
fParam = fl ? new float[fl] : NULL;
|
fParam = fl ? new float[fl] : nullptr;
|
||||||
iFlags += fl << 8;
|
iFlags += fl << 8;
|
||||||
break; // 2-wahacz, dźwignia itp.
|
break; // 2-wahacz, dźwignia itp.
|
||||||
case 3:
|
case 3:
|
||||||
@@ -389,7 +341,7 @@ TDynamicObject * TDynamicObject::FirstFind(int &coupler_nr, int cf)
|
|||||||
for (int i = 0; i < 300; i++) // ograniczenie do 300 na wypadek zapętlenia składu
|
for (int i = 0; i < 300; i++) // ograniczenie do 300 na wypadek zapętlenia składu
|
||||||
{
|
{
|
||||||
if (!temp)
|
if (!temp)
|
||||||
return NULL; // Ra: zabezpieczenie przed ewentaulnymi błędami sprzęgów
|
return nullptr; // Ra: zabezpieczenie przed ewentaulnymi błędami sprzęgów
|
||||||
if ((temp->MoverParameters->Couplers[coupler_nr].CouplingFlag & cf) != cf)
|
if ((temp->MoverParameters->Couplers[coupler_nr].CouplingFlag & cf) != cf)
|
||||||
return temp; // nic nie ma już dalej podłączone sprzęgiem cf
|
return temp; // nic nie ma już dalej podłączone sprzęgiem cf
|
||||||
if (coupler_nr == end::front)
|
if (coupler_nr == end::front)
|
||||||
@@ -415,7 +367,7 @@ TDynamicObject * TDynamicObject::FirstFind(int &coupler_nr, int cf)
|
|||||||
return temp; // jeśli jednak z tyłu nic nie ma
|
return temp; // jeśli jednak z tyłu nic nie ma
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return NULL; // to tylko po wyczerpaniu pętli
|
return nullptr; // to tylko po wyczerpaniu pętli
|
||||||
};
|
};
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
@@ -1446,7 +1398,7 @@ TDynamicObject * TDynamicObject::ABuScanNearestObject(glm::vec3 pos, TTrack *Tra
|
|||||||
TDynamicObject *FoundedObj;
|
TDynamicObject *FoundedObj;
|
||||||
FoundedObj =
|
FoundedObj =
|
||||||
ABuFindNearestObject(pos, Track, this, CouplNr); // zwraca numer sprzęgu znalezionego pojazdu
|
ABuFindNearestObject(pos, Track, this, CouplNr); // zwraca numer sprzęgu znalezionego pojazdu
|
||||||
if (FoundedObj == NULL)
|
if (FoundedObj == nullptr)
|
||||||
{
|
{
|
||||||
double ActDist; // Przeskanowana odleglosc.
|
double ActDist; // Przeskanowana odleglosc.
|
||||||
double CurrDist = 0; // Aktualna dlugosc toru.
|
double CurrDist = 0; // Aktualna dlugosc toru.
|
||||||
@@ -1478,11 +1430,11 @@ TDynamicObject * TDynamicObject::ABuScanNearestObject(glm::vec3 pos, TTrack *Tra
|
|||||||
ScanDir = -ScanDir;
|
ScanDir = -ScanDir;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Track != NULL)
|
if (Track != nullptr)
|
||||||
{ // jesli jest kolejny odcinek toru
|
{ // jesli jest kolejny odcinek toru
|
||||||
CurrDist = Track->Length();
|
CurrDist = Track->Length();
|
||||||
FoundedObj = ABuFindNearestObject(pos, Track, this, CouplNr);
|
FoundedObj = ABuFindNearestObject(pos, Track, this, CouplNr);
|
||||||
if (FoundedObj != NULL)
|
if (FoundedObj != nullptr)
|
||||||
ActDist = ScanDist;
|
ActDist = ScanDist;
|
||||||
}
|
}
|
||||||
else // Jesli nie ma, to wychodzimy.
|
else // Jesli nie ma, to wychodzimy.
|
||||||
@@ -1505,7 +1457,7 @@ void TDynamicObject::ABuBogies()
|
|||||||
{ // Obracanie wozkow na zakretach. Na razie
|
{ // Obracanie wozkow na zakretach. Na razie
|
||||||
// uwzględnia tylko zakręty,
|
// uwzględnia tylko zakręty,
|
||||||
// bez zadnych gorek i innych przeszkod.
|
// bez zadnych gorek i innych przeszkod.
|
||||||
if ((smBogie[0] != NULL) && (smBogie[1] != NULL))
|
if ((smBogie[0] != nullptr) && (smBogie[1] != nullptr))
|
||||||
{
|
{
|
||||||
// modelRot.z=ABuAcos(Axle0.pPosition-Axle1.pPosition); //kąt obrotu pojazdu
|
// modelRot.z=ABuAcos(Axle0.pPosition-Axle1.pPosition); //kąt obrotu pojazdu
|
||||||
// [rad]
|
// [rad]
|
||||||
@@ -1661,13 +1613,13 @@ int TDynamicObject::Dettach(int dir)
|
|||||||
TDynamicObject *d = this;
|
TDynamicObject *d = this;
|
||||||
while (d)
|
while (d)
|
||||||
{
|
{
|
||||||
d->ctOwner = NULL; // usuwanie właściciela
|
d->ctOwner = nullptr; // usuwanie właściciela
|
||||||
d = d->Prev();
|
d = d->Prev();
|
||||||
}
|
}
|
||||||
d = Next();
|
d = Next();
|
||||||
while (d)
|
while (d)
|
||||||
{
|
{
|
||||||
d->ctOwner = NULL; // usuwanie właściciela
|
d->ctOwner = nullptr; // usuwanie właściciela
|
||||||
d = d->Next(); // i w drugą stronę
|
d = d->Next(); // i w drugą stronę
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1872,8 +1824,8 @@ TDynamicObject::TDynamicObject() {
|
|||||||
vFront = vWorldFront;
|
vFront = vWorldFront;
|
||||||
vLeft = vWorldLeft;
|
vLeft = vWorldLeft;
|
||||||
iNumAxles = 0;
|
iNumAxles = 0;
|
||||||
MoverParameters = NULL;
|
MoverParameters = nullptr;
|
||||||
Mechanik = NULL;
|
Mechanik = nullptr;
|
||||||
MechInside = false;
|
MechInside = false;
|
||||||
// McZapkie-270202
|
// McZapkie-270202
|
||||||
Controller = AIdriver;
|
Controller = AIdriver;
|
||||||
@@ -1881,7 +1833,7 @@ TDynamicObject::TDynamicObject() {
|
|||||||
// NextConnected = PrevConnected = NULL;
|
// NextConnected = PrevConnected = NULL;
|
||||||
// NextConnectedNo = PrevConnectedNo = 2; // ABu: Numery sprzegow. 2=nie podłączony
|
// NextConnectedNo = PrevConnectedNo = 2; // ABu: Numery sprzegow. 2=nie podłączony
|
||||||
bEnabled = true;
|
bEnabled = true;
|
||||||
MyTrack = NULL;
|
MyTrack = nullptr;
|
||||||
// McZapkie-260202
|
// McZapkie-260202
|
||||||
dWheelAngle[0] = 0.0;
|
dWheelAngle[0] = 0.0;
|
||||||
dWheelAngle[1] = 0.0;
|
dWheelAngle[1] = 0.0;
|
||||||
@@ -1889,19 +1841,19 @@ TDynamicObject::TDynamicObject() {
|
|||||||
// Winger 160204 - pantografy
|
// Winger 160204 - pantografy
|
||||||
// PantVolume = 3.5;
|
// PantVolume = 3.5;
|
||||||
NoVoltTime = 0;
|
NoVoltTime = 0;
|
||||||
mdModel = NULL;
|
mdModel = nullptr;
|
||||||
mdKabina = NULL;
|
mdKabina = nullptr;
|
||||||
// smWiazary[0]=smWiazary[1]=NULL;
|
// smWiazary[0]=smWiazary[1]=NULL;
|
||||||
smWahacze[0] = smWahacze[1] = smWahacze[2] = smWahacze[3] = NULL;
|
smWahacze[0] = smWahacze[1] = smWahacze[2] = smWahacze[3] = nullptr;
|
||||||
fWahaczeAmp = 0;
|
fWahaczeAmp = 0;
|
||||||
smBrakeMode = NULL;
|
smBrakeMode = nullptr;
|
||||||
smLoadMode = NULL;
|
smLoadMode = nullptr;
|
||||||
mdLoad = NULL;
|
mdLoad = nullptr;
|
||||||
mdLowPolyInt = NULL;
|
mdLowPolyInt = nullptr;
|
||||||
//smMechanik0 = smMechanik1 = NULL;
|
//smMechanik0 = smMechanik1 = NULL;
|
||||||
smBuforLewy[0] = smBuforLewy[1] = NULL;
|
smBuforLewy[0] = smBuforLewy[1] = nullptr;
|
||||||
smBuforPrawy[0] = smBuforPrawy[1] = NULL;
|
smBuforPrawy[0] = smBuforPrawy[1] = nullptr;
|
||||||
smBogie[0] = smBogie[1] = NULL;
|
smBogie[0] = smBogie[1] = nullptr;
|
||||||
bogieRot[0] = bogieRot[1] = glm::dvec3(0, 0, 0);
|
bogieRot[0] = bogieRot[1] = glm::dvec3(0, 0, 0);
|
||||||
modelRot = glm::dvec3(0, 0, 0);
|
modelRot = glm::dvec3(0, 0, 0);
|
||||||
cp1 = cp2 = sp1 = sp2 = 0;
|
cp1 = cp2 = sp1 = sp2 = 0;
|
||||||
@@ -1915,16 +1867,16 @@ TDynamicObject::TDynamicObject() {
|
|||||||
// ustawienie liczby modeli animowanych podczas konstruowania obiektu a nie na 0
|
// ustawienie liczby modeli animowanych podczas konstruowania obiektu a nie na 0
|
||||||
// prowadzi prosto do wysypów jeśli źle zdefiniowane mmd
|
// prowadzi prosto do wysypów jeśli źle zdefiniowane mmd
|
||||||
iAnimations = 0; // na razie nie ma żadnego
|
iAnimations = 0; // na razie nie ma żadnego
|
||||||
pAnimated = NULL;
|
pAnimated = nullptr;
|
||||||
fShade = 0.0; // standardowe oświetlenie na starcie
|
fShade = 0.0; // standardowe oświetlenie na starcie
|
||||||
iHornWarning = 1; // numer syreny do użycia po otrzymaniu sygnału do jazdy
|
iHornWarning = 1; // numer syreny do użycia po otrzymaniu sygnału do jazdy
|
||||||
asDestination = "none"; // stojący nigdzie nie jedzie
|
asDestination = "none"; // stojący nigdzie nie jedzie
|
||||||
pValveGear = NULL; // Ra: tymczasowo
|
pValveGear = nullptr; // Ra: tymczasowo
|
||||||
iCabs = 0; // maski bitowe modeli kabin
|
iCabs = 0; // maski bitowe modeli kabin
|
||||||
smBrakeSet = NULL; // nastawa hamulca (wajcha)
|
smBrakeSet = nullptr; // nastawa hamulca (wajcha)
|
||||||
smLoadSet = NULL; // nastawa ładunku (wajcha)
|
smLoadSet = nullptr; // nastawa ładunku (wajcha)
|
||||||
smWiper = NULL; // wycieraczka (poniekąd też wajcha)
|
smWiper = nullptr; // wycieraczka (poniekąd też wajcha)
|
||||||
ctOwner = NULL; // na początek niczyj
|
ctOwner = nullptr; // na początek niczyj
|
||||||
iOverheadMask = 0; // maska przydzielana przez AI pojazdom posiadającym
|
iOverheadMask = 0; // maska przydzielana przez AI pojazdom posiadającym
|
||||||
// pantograf, aby wymuszały
|
// pantograf, aby wymuszały
|
||||||
// jazdę bezprądową
|
// jazdę bezprądową
|
||||||
@@ -5246,8 +5198,8 @@ void TDynamicObject::LoadMMediaFile( std::string const &TypeName, std::string co
|
|||||||
std::string asFileName = asBaseDir + TypeName + ".mmd";
|
std::string asFileName = asBaseDir + TypeName + ".mmd";
|
||||||
std::string asAnimName;
|
std::string asAnimName;
|
||||||
bool Stop_InternalData = false;
|
bool Stop_InternalData = false;
|
||||||
pants = NULL; // wskaźnik pierwszego obiektu animującego dla pantografów
|
pants = nullptr; // wskaźnik pierwszego obiektu animującego dla pantografów
|
||||||
wipers = NULL; // wskaznik pierwszego obiektu animujacego dla wycieraczek
|
wipers = nullptr; // wskaznik pierwszego obiektu animujacego dla wycieraczek
|
||||||
{
|
{
|
||||||
// preliminary check whether the file exists
|
// preliminary check whether the file exists
|
||||||
cParser parser( TypeName + ".mmd", cParser::buffer_FILE, asBaseDir );
|
cParser parser( TypeName + ".mmd", cParser::buffer_FILE, asBaseDir );
|
||||||
@@ -5507,7 +5459,7 @@ void TDynamicObject::LoadMMediaFile( std::string const &TypeName, std::string co
|
|||||||
// m(3)[1]=m[3][1]+0.054; //w górę o wysokość ślizgu (na razie tak)
|
// m(3)[1]=m[3][1]+0.054; //w górę o wysokość ślizgu (na razie tak)
|
||||||
pants[i].fParamPants->vPos.z = m[3][0]; // przesunięcie w bok (asymetria)
|
pants[i].fParamPants->vPos.z = m[3][0]; // przesunięcie w bok (asymetria)
|
||||||
pants[i].fParamPants->vPos.y = m[3][1]; // przesunięcie w górę odczytane z modelu
|
pants[i].fParamPants->vPos.y = m[3][1]; // przesunięcie w górę odczytane z modelu
|
||||||
if ((sm = pants[i].smElement[0]->ChildGet()) != NULL)
|
if ((sm = pants[i].smElement[0]->ChildGet()) != nullptr)
|
||||||
{ // jeśli ma potomny, można policzyć długość (odległość potomnego od osi obrotu)
|
{ // jeśli ma potomny, można policzyć długość (odległość potomnego od osi obrotu)
|
||||||
m = float4x4(*sm->GetMatrix()); // wystarczyłby wskaźnik, nie trzeba kopiować
|
m = float4x4(*sm->GetMatrix()); // wystarczyłby wskaźnik, nie trzeba kopiować
|
||||||
// może trzeba: pobrać macierz dolnego ramienia, wyzerować przesunięcie, przemnożyć przez macierz górnego
|
// może trzeba: pobrać macierz dolnego ramienia, wyzerować przesunięcie, przemnożyć przez macierz górnego
|
||||||
@@ -5521,7 +5473,7 @@ void TDynamicObject::LoadMMediaFile( std::string const &TypeName, std::string co
|
|||||||
// //normalnie ok. 0.05
|
// //normalnie ok. 0.05
|
||||||
// pants[i].fParamPants->fAngleL0=pants[i].fParamPants->fAngleL;
|
// pants[i].fParamPants->fAngleL0=pants[i].fParamPants->fAngleL;
|
||||||
pants[i].fParamPants->fAngleL = pants[i].fParamPants->fAngleL0; // początkowy kąt dolnego ramienia
|
pants[i].fParamPants->fAngleL = pants[i].fParamPants->fAngleL0; // początkowy kąt dolnego ramienia
|
||||||
if ((sm = sm->ChildGet()) != NULL)
|
if ((sm = sm->ChildGet()) != nullptr)
|
||||||
{ // jeśli dalej jest ślizg, można policzyć długość górnego ramienia
|
{ // jeśli dalej jest ślizg, można policzyć długość górnego ramienia
|
||||||
m = float4x4(*sm->GetMatrix()); // wystarczyłby wskaźnik,
|
m = float4x4(*sm->GetMatrix()); // wystarczyłby wskaźnik,
|
||||||
// nie trzeba kopiować trzeba by uwzględnić macierz dolnego ramienia, żeby uzyskać kąt do poziomu...
|
// nie trzeba kopiować trzeba by uwzględnić macierz dolnego ramienia, żeby uzyskać kąt do poziomu...
|
||||||
|
|||||||
@@ -113,7 +113,8 @@ class TAnimPant
|
|||||||
float rg1rf{1.f}; // mnoznik obrotu ramienia gornego 1
|
float rg1rf{1.f}; // mnoznik obrotu ramienia gornego 1
|
||||||
float rg2rf{1.f}; // mnoznik obrotu ramienia gornego 2
|
float rg2rf{1.f}; // mnoznik obrotu ramienia gornego 2
|
||||||
float slizgrf{1.f}; // mnoznik obrotu slizgacza
|
float slizgrf{1.f}; // mnoznik obrotu slizgacza
|
||||||
void AKP_4E();
|
void common_pantograph_settings();
|
||||||
|
void AKP_4E();
|
||||||
void WBL85();
|
void WBL85();
|
||||||
void DSAx();
|
void DSAx();
|
||||||
void EC160_200();
|
void EC160_200();
|
||||||
|
|||||||
@@ -594,7 +594,7 @@ TTrain::TTrain()
|
|||||||
pMechOffset = glm::dvec3(0, 0, 0);
|
pMechOffset = glm::dvec3(0, 0, 0);
|
||||||
fBlinkTimer = 0;
|
fBlinkTimer = 0;
|
||||||
fHaslerTimer = 0;
|
fHaslerTimer = 0;
|
||||||
DynamicSet(NULL); // ustawia wszystkie mv*
|
DynamicSet(nullptr); // ustawia wszystkie mv*
|
||||||
//-----
|
//-----
|
||||||
pMechSittingPosition = glm::dvec3(0, 0, 0); // ABu: 180404
|
pMechSittingPosition = glm::dvec3(0, 0, 0); // ABu: 180404
|
||||||
fTachoTimer = 0.0; // włączenie skoków wskazań prędkościomierza
|
fTachoTimer = 0.0; // włączenie skoków wskazań prędkościomierza
|
||||||
@@ -647,7 +647,7 @@ bool TTrain::Init(TDynamicObject *NewDynamicObject, bool e3d)
|
|||||||
|
|
||||||
DynamicSet(NewDynamicObject);
|
DynamicSet(NewDynamicObject);
|
||||||
if (!e3d)
|
if (!e3d)
|
||||||
if (DynamicObject->Mechanik == NULL)
|
if (DynamicObject->Mechanik == nullptr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
DynamicObject->MechInside = true;
|
DynamicObject->MechInside = true;
|
||||||
@@ -10854,7 +10854,7 @@ void TTrain::DynamicSet(TDynamicObject *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
mvControlled = DynamicObject->FindPowered()->MoverParameters;
|
mvControlled = DynamicObject->FindPowered()->MoverParameters;
|
||||||
mvSecond = NULL; // gdyby się nic nie znalazło
|
mvSecond = nullptr; // gdyby się nic nie znalazło
|
||||||
if (mvOccupied->Power > 1.0) // dwuczłonowe lub ukrotnienia, żeby nie szukać każdorazowo
|
if (mvOccupied->Power > 1.0) // dwuczłonowe lub ukrotnienia, żeby nie szukać każdorazowo
|
||||||
if (mvOccupied->Couplers[1].Connected ? mvOccupied->Couplers[1].AllowedFlag & coupling::control : false)
|
if (mvOccupied->Couplers[1].Connected ? mvOccupied->Couplers[1].AllowedFlag & coupling::control : false)
|
||||||
{ // gdy jest człon od sprzęgu 1, a sprzęg łączony
|
{ // gdy jest człon od sprzęgu 1, a sprzęg łączony
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ const int iLewo3[4] = {1, 3, 2, 1}; // segmenty do skręcania w lewo
|
|||||||
const int iPrawo3[4] = {-2, -1, -3, -2}; // segmenty do skręcania w prawo
|
const int iPrawo3[4] = {-2, -1, -3, -2}; // segmenty do skręcania w prawo
|
||||||
const int iProsto3[4] = {1, -1, 2, 1}; // segmenty do jazdy prosto
|
const int iProsto3[4] = {1, -1, 2, 1}; // segmenty do jazdy prosto
|
||||||
const int iEnds3[13] = {3, 0, 2, 1, 2, 0, -1, 1, 0, 2, 0, 3, 1}; // numer sąsiedniego toru na końcu segmentu "-1"
|
const int iEnds3[13] = {3, 0, 2, 1, 2, 0, -1, 1, 0, 2, 0, 3, 1}; // numer sąsiedniego toru na końcu segmentu "-1"
|
||||||
TIsolated *TIsolated::pRoot = NULL;
|
TIsolated *TIsolated::pRoot = nullptr;
|
||||||
|
|
||||||
TTrack::profiles_array TTrack::m_profiles;
|
TTrack::profiles_array TTrack::m_profiles;
|
||||||
TTrack::profiles_map TTrack::m_profilesmap;
|
TTrack::profiles_map TTrack::m_profilesmap;
|
||||||
@@ -1067,7 +1067,7 @@ bool TTrack::AddDynamicObject(TDynamicObject *Dynamic)
|
|||||||
// Ra: usunąć po upowszechnieniu się odcinków izolowanych
|
// Ra: usunąć po upowszechnieniu się odcinków izolowanych
|
||||||
if (iCategoryFlag & 0x100) // jeśli usuwaczek
|
if (iCategoryFlag & 0x100) // jeśli usuwaczek
|
||||||
{
|
{
|
||||||
Dynamic->MyTrack = NULL; // trzeba by to uzależnić od kierunku ruchu...
|
Dynamic->MyTrack = nullptr; // trzeba by to uzależnić od kierunku ruchu...
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if( Global.iMultiplayer ) {
|
if( Global.iMultiplayer ) {
|
||||||
@@ -1839,16 +1839,15 @@ bool TTrack::Switch(int i, float const t, float const d)
|
|||||||
{ // 0: rozłączenie sąsiednich torów od obrotnicy
|
{ // 0: rozłączenie sąsiednich torów od obrotnicy
|
||||||
if (trPrev) // jeśli jest tor od Point1 obrotnicy
|
if (trPrev) // jeśli jest tor od Point1 obrotnicy
|
||||||
if (iPrevDirection) // 0:dołączony Point1, 1:dołączony Point2
|
if (iPrevDirection) // 0:dołączony Point1, 1:dołączony Point2
|
||||||
trPrev->trNext = NULL; // rozłączamy od Point2
|
trPrev->trNext = nullptr; // rozłączamy od Point2
|
||||||
else
|
else
|
||||||
trPrev->trPrev = NULL; // rozłączamy od Point1
|
trPrev->trPrev = nullptr; // rozłączamy od Point1
|
||||||
if (trNext) // jeśli jest tor od Point2 obrotnicy
|
if (trNext) // jeśli jest tor od Point2 obrotnicy
|
||||||
if (iNextDirection) // 0:dołączony Point1, 1:dołączony Point2
|
if (iNextDirection) // 0:dołączony Point1, 1:dołączony Point2
|
||||||
trNext->trNext = NULL; // rozłączamy od Point2
|
trNext->trNext = nullptr; // rozłączamy od Point2
|
||||||
else
|
else
|
||||||
trNext->trPrev = NULL; // rozłączamy od Point1
|
trNext->trPrev = nullptr; // rozłączamy od Point1
|
||||||
trNext = trPrev =
|
trNext = trPrev = nullptr; // na końcu rozłączamy obrotnicę (wkaźniki do sąsiadów już niepotrzebne)
|
||||||
NULL; // na końcu rozłączamy obrotnicę (wkaźniki do sąsiadów już niepotrzebne)
|
|
||||||
fVelocity = 0.0; // AI, nie ruszaj się!
|
fVelocity = 0.0; // AI, nie ruszaj się!
|
||||||
if (SwitchExtension->pOwner)
|
if (SwitchExtension->pOwner)
|
||||||
SwitchExtension->pOwner->RaTrackAnimAdd(this); // dodanie do listy animacyjnej
|
SwitchExtension->pOwner->RaTrackAnimAdd(this); // dodanie do listy animacyjnej
|
||||||
@@ -1975,7 +1974,7 @@ void TTrack::RaAnimListAdd(TTrack *t)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SwitchExtension->pNextAnim = t;
|
SwitchExtension->pNextAnim = t;
|
||||||
t->SwitchExtension->pNextAnim = NULL; // nowo dodawany nie może mieć ogona
|
t->SwitchExtension->pNextAnim = nullptr; // nowo dodawany nie może mieć ogona
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -2155,10 +2154,10 @@ int TTrack::TestPoint(const glm::dvec3 *Point)
|
|||||||
switch (eType)
|
switch (eType)
|
||||||
{
|
{
|
||||||
case tt_Normal: // zwykły odcinek
|
case tt_Normal: // zwykły odcinek
|
||||||
if (trPrev == NULL)
|
if (trPrev == nullptr)
|
||||||
if (Equal(Segment->FastGetPoint_0(), Point))
|
if (Equal(Segment->FastGetPoint_0(), Point))
|
||||||
return 0;
|
return 0;
|
||||||
if (trNext == NULL)
|
if (trNext == nullptr)
|
||||||
if (Equal(Segment->FastGetPoint_1(), Point))
|
if (Equal(Segment->FastGetPoint_1(), Point))
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
@@ -2168,14 +2167,14 @@ int TTrack::TestPoint(const glm::dvec3 *Point)
|
|||||||
// Ra: TODO: jak się zmieni na bezpośrednie odwołania do segmentow zwrotnicy,
|
// Ra: TODO: jak się zmieni na bezpośrednie odwołania do segmentow zwrotnicy,
|
||||||
// to się wykoleja, ponieważ trNext zależy od przełożenia
|
// to się wykoleja, ponieważ trNext zależy od przełożenia
|
||||||
Switch(0);
|
Switch(0);
|
||||||
if (trPrev == NULL)
|
if (trPrev == nullptr)
|
||||||
// if (Equal(SwitchExtension->Segments[0]->FastGetPoint_0(),Point))
|
// if (Equal(SwitchExtension->Segments[0]->FastGetPoint_0(),Point))
|
||||||
if (Equal(Segment->FastGetPoint_0(), Point))
|
if (Equal(Segment->FastGetPoint_0(), Point))
|
||||||
{
|
{
|
||||||
Switch(state);
|
Switch(state);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (trNext == NULL)
|
if (trNext == nullptr)
|
||||||
// if (Equal(SwitchExtension->Segments[0]->FastGetPoint_1(),Point))
|
// if (Equal(SwitchExtension->Segments[0]->FastGetPoint_1(),Point))
|
||||||
if (Equal(Segment->FastGetPoint_1(), Point))
|
if (Equal(Segment->FastGetPoint_1(), Point))
|
||||||
{
|
{
|
||||||
@@ -2183,14 +2182,14 @@ int TTrack::TestPoint(const glm::dvec3 *Point)
|
|||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
Switch(1); // można by się pozbyć tego przełączania
|
Switch(1); // można by się pozbyć tego przełączania
|
||||||
if (trPrev == NULL) // Ra: z tym chyba nie potrzeba łączyć
|
if (trPrev == nullptr) // Ra: z tym chyba nie potrzeba łączyć
|
||||||
// if (Equal(SwitchExtension->Segments[1]->FastGetPoint_0(),Point))
|
// if (Equal(SwitchExtension->Segments[1]->FastGetPoint_0(),Point))
|
||||||
if (Equal(Segment->FastGetPoint_0(), Point))
|
if (Equal(Segment->FastGetPoint_0(), Point))
|
||||||
{
|
{
|
||||||
Switch(state); // Switch(0);
|
Switch(state); // Switch(0);
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
if (trNext == NULL) // TODO: to zależy od przełożenia zwrotnicy
|
if (trNext == nullptr) // TODO: to zależy od przełożenia zwrotnicy
|
||||||
// if (Equal(SwitchExtension->Segments[1]->FastGetPoint_1(),Point))
|
// if (Equal(SwitchExtension->Segments[1]->FastGetPoint_1(),Point))
|
||||||
if (Equal(Segment->FastGetPoint_1(), Point))
|
if (Equal(Segment->FastGetPoint_1(), Point))
|
||||||
{
|
{
|
||||||
@@ -2675,7 +2674,7 @@ TTrack * TTrack::Connected(int s, double &d) const
|
|||||||
d = -d;
|
d = -d;
|
||||||
return SwitchExtension->pNexts[1];
|
return SwitchExtension->pNexts[1];
|
||||||
}
|
}
|
||||||
return NULL;
|
return nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
// creates rail profile data for current track
|
// creates rail profile data for current track
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ TTrack * TTrackFollower::SetCurrentTrack(TTrack *pTrack, int end)
|
|||||||
}
|
}
|
||||||
if ((end ? iSegment : -iSegment) < 0)
|
if ((end ? iSegment : -iSegment) < 0)
|
||||||
fDirection = -fDirection; // wtórna zmiana
|
fDirection = -fDirection; // wtórna zmiana
|
||||||
pTrack->SwitchForced(abs(iSegment) - 1, NULL); // wybór zapamiętanego segmentu
|
pTrack->SwitchForced(abs(iSegment) - 1, nullptr); // wybór zapamiętanego segmentu
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user