mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-20 03:19:19 +02:00
milek7's branch merge; model file serialization, 64bit compatibility
This commit is contained in:
115
Ground.cpp
115
Ground.cpp
@@ -206,8 +206,14 @@ void TGroundNode::InitNormals()
|
||||
}
|
||||
if (Vertices[i].Normal == vector3(0, 0, 0))
|
||||
Vertices[i].Normal = (n1 + n2) / 2;
|
||||
if (Vertices[i + 1].Normal == vector3(0, 0, 0))
|
||||
Vertices[i + 1].Normal = n2;
|
||||
if (i + 1 < iNumVerts)
|
||||
{
|
||||
if (Vertices[i + 1].Normal == vector3(0, 0, 0))
|
||||
Vertices[i + 1].Normal = n2;
|
||||
}
|
||||
else
|
||||
WriteLog("odd number of vertices, normals may be wrong!");
|
||||
|
||||
break;
|
||||
case GL_TRIANGLE_FAN:
|
||||
|
||||
@@ -289,7 +295,6 @@ void TGroundNode::RenderVBO()
|
||||
(iType != TP_EVLAUNCH)) // McZapkie-070602: nie rysuj odleglych obiektow ale sprawdzaj
|
||||
// wyzwalacz zdarzen
|
||||
return;
|
||||
int i, a;
|
||||
switch (iType)
|
||||
{
|
||||
case TP_TRACTION:
|
||||
@@ -359,12 +364,11 @@ void TGroundNode::RenderAlphaVBO()
|
||||
return;
|
||||
if (mgn > fSquareRadius)
|
||||
return;
|
||||
int i, a;
|
||||
#ifdef _PROBLEND
|
||||
if ((PROBLEND)) // sprawdza, czy w nazwie nie ma @ //Q: 13122011 - Szociu: 27012012
|
||||
{
|
||||
glDisable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.45); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
glAlphaFunc(GL_GREATER, 0.45f); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
};
|
||||
#endif
|
||||
switch (iType)
|
||||
@@ -374,7 +378,7 @@ void TGroundNode::RenderAlphaVBO()
|
||||
{
|
||||
#ifdef _PROBLEND
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04);
|
||||
glAlphaFunc(GL_GREATER, 0.04f);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
#endif
|
||||
hvTraction->RenderVBO(mgn, iVboPtr);
|
||||
@@ -383,7 +387,7 @@ void TGroundNode::RenderAlphaVBO()
|
||||
case TP_MODEL:
|
||||
#ifdef _PROBLEND
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04);
|
||||
glAlphaFunc(GL_GREATER, 0.04f);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
#endif
|
||||
Model->RenderAlphaVBO(&pCenter);
|
||||
@@ -411,13 +415,13 @@ void TGroundNode::RenderAlphaVBO()
|
||||
// glEnable(GL_LIGHTING);
|
||||
#ifdef _PROBLEND
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04);
|
||||
glAlphaFunc(GL_GREATER, 0.04f);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
#endif
|
||||
}
|
||||
#ifdef _PROBLEND
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04);
|
||||
glAlphaFunc(GL_GREATER, 0.04f);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
#endif
|
||||
return;
|
||||
@@ -427,7 +431,7 @@ void TGroundNode::RenderAlphaVBO()
|
||||
RaRenderVBO();
|
||||
#ifdef _PROBLEND
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04);
|
||||
glAlphaFunc(GL_GREATER, 0.04f);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
#endif
|
||||
return;
|
||||
@@ -435,7 +439,7 @@ void TGroundNode::RenderAlphaVBO()
|
||||
}
|
||||
#ifdef _PROBLEND
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04);
|
||||
glAlphaFunc(GL_GREATER, 0.04f);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
#endif
|
||||
return;
|
||||
@@ -574,7 +578,6 @@ void TGroundNode::RenderDL()
|
||||
// obiektow ale sprawdzaj wyzwalacz
|
||||
// zdarzen
|
||||
return;
|
||||
int i, a;
|
||||
switch (iType)
|
||||
{
|
||||
case TP_TRACK:
|
||||
@@ -641,7 +644,6 @@ void TGroundNode::RenderAlphaDL()
|
||||
return;
|
||||
if (mgn > fSquareRadius)
|
||||
return;
|
||||
int i, a;
|
||||
switch (iType)
|
||||
{
|
||||
case TP_TRACTION:
|
||||
@@ -663,7 +665,7 @@ void TGroundNode::RenderAlphaDL()
|
||||
if ((PROBLEND)) // sprawdza, czy w nazwie nie ma @ //Q: 13122011 - Szociu: 27012012
|
||||
{
|
||||
glDisable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.45); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
glAlphaFunc(GL_GREATER, 0.45f); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
};
|
||||
#endif
|
||||
if (!DisplayListID) //||Global::bReCompile) //Ra: wymuszenie rekompilacji
|
||||
@@ -700,7 +702,7 @@ void TGroundNode::RenderAlphaDL()
|
||||
if ((PROBLEND)) // sprawdza, czy w nazwie nie ma @ //Q: 13122011 - Szociu: 27012012
|
||||
{
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04);
|
||||
glAlphaFunc(GL_GREATER, 0.04f);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
};
|
||||
#endif
|
||||
@@ -969,7 +971,7 @@ void TSubRect::Sort()
|
||||
*/
|
||||
//...
|
||||
// przeglądanie listy i tworzenie obiektów renderujących dla danej tekstury
|
||||
GLuint t = 0; // pomocniczy kod tekstury
|
||||
int t = 0; // pomocniczy kod tekstury
|
||||
n1 = nMeshed; // lista obiektów przetwarzanych na statyczne siatki
|
||||
while (n1)
|
||||
{ // dla każdej tekstury powinny istnieć co najmniej dwa obiekty, ale dla DL nie ma to znaczenia
|
||||
@@ -994,7 +996,6 @@ void TSubRect::Sort()
|
||||
|
||||
TTrack * TSubRect::FindTrack(vector3 *Point, int &iConnection, TTrack *Exclude)
|
||||
{ // szukanie toru, którego koniec jest najbliższy (*Point)
|
||||
TTrack *Track;
|
||||
for (int i = 0; i < iTracks; ++i)
|
||||
if (tTracks[i] != Exclude) // można użyć tabelę torów, bo jest mniejsza
|
||||
{
|
||||
@@ -1031,7 +1032,7 @@ void TSubRect::RaAnimate()
|
||||
return; // nie ma nic do animowania
|
||||
if (Global::bUseVBO)
|
||||
{ // odświeżenie VBO sektora
|
||||
if (true == GLEW_VERSION_1_5) // modyfikacje VBO są dostępne od OpenGL 1.5
|
||||
if (GLEW_VERSION_1_5) // modyfikacje VBO są dostępne od OpenGL 1.5
|
||||
glBindBuffer(GL_ARRAY_BUFFER, m_nVBOVertices);
|
||||
else // dla OpenGL 1.4 z GL_ARB_vertex_buffer_object odświeżenie całego sektora
|
||||
Release(); // opróżnienie VBO sektora, aby się odświeżył z nowymi ustawieniami
|
||||
@@ -1592,16 +1593,15 @@ TGroundNode * TGround::AddGroundNode(cParser *parser)
|
||||
{ // wczytanie wpisu typu "node"
|
||||
// parser->LoadTraction=Global::bLoadTraction; //Ra: tu nie potrzeba powtarzać
|
||||
string str, str1, str2, str3, str4, Skin, DriverType, asNodeName;
|
||||
int nv, ti, i, n;
|
||||
double tf, r, rmin, tf1, tf2, tf3, tf4, l, dist, mgn;
|
||||
int int1, int2;
|
||||
bool bError = false, curve;
|
||||
int nv, i;
|
||||
double tf, r, rmin, tf1, tf3;
|
||||
int int1;
|
||||
size_t int2;
|
||||
bool bError = false;
|
||||
vector3 pt, front, up, left, pos, tv;
|
||||
matrix4x4 mat2, mat1, mat;
|
||||
GLuint TexID;
|
||||
TGroundNode *tmp1;
|
||||
TTrack *Track;
|
||||
TTextSound *tmpsound;
|
||||
std::string token;
|
||||
parser->getTokens(2);
|
||||
*parser >> r >> rmin;
|
||||
@@ -1612,7 +1612,7 @@ TGroundNode * TGround::AddGroundNode(cParser *parser)
|
||||
*parser >> token;
|
||||
str = token;
|
||||
//str = AnsiString(token.c_str());
|
||||
TGroundNode *tmp, *tmp2;
|
||||
TGroundNode *tmp;
|
||||
tmp = new TGroundNode();
|
||||
tmp->asName = (asNodeName == "none" ? string("") : asNodeName);
|
||||
if (r >= 0)
|
||||
@@ -1674,10 +1674,10 @@ TGroundNode * TGround::AddGroundNode(cParser *parser)
|
||||
parser->getTokens(3);
|
||||
*parser >> tmp->hvTraction->NominalVoltage >> tmp->hvTraction->MaxCurrent >>
|
||||
tmp->hvTraction->fResistivity;
|
||||
if (tmp->hvTraction->fResistivity == 0.01) // tyle jest w sceneriach [om/km]
|
||||
tmp->hvTraction->fResistivity = 0.075; // taka sensowniejsza wartość za
|
||||
if (tmp->hvTraction->fResistivity == 0.01f) // tyle jest w sceneriach [om/km]
|
||||
tmp->hvTraction->fResistivity = 0.075f; // taka sensowniejsza wartość za
|
||||
// http://www.ikolej.pl/fileadmin/user_upload/Seminaria_IK/13_05_07_Prezentacja_Kruczek.pdf
|
||||
tmp->hvTraction->fResistivity *= 0.001; // teraz [om/m]
|
||||
tmp->hvTraction->fResistivity *= 0.001f; // teraz [om/m]
|
||||
parser->getTokens();
|
||||
*parser >> token;
|
||||
// Ra 2014-02: a tutaj damy symbol sieci i jej budowę, np.:
|
||||
@@ -1830,7 +1830,7 @@ TGroundNode * TGround::AddGroundNode(cParser *parser)
|
||||
*parser >> token;
|
||||
str = token;
|
||||
//str = AnsiString(token.c_str());
|
||||
tmp->tsStaticSound = new TTextSound(str, sqrt(tmp->fSquareRadius), tmp->pCenter.x, tmp->pCenter.y, tmp->pCenter.z, false, rmin);
|
||||
tmp->tsStaticSound = new TTextSound(str, sqrt(tmp->fSquareRadius), tmp->pCenter.x, tmp->pCenter.y, tmp->pCenter.z, false, false, rmin);
|
||||
if (rmin < 0.0)
|
||||
rmin =
|
||||
0.0; // przywrócenie poprawnej wartości, jeśli służyła do wyłączenia efektu Dopplera
|
||||
@@ -1860,7 +1860,7 @@ TGroundNode * TGround::AddGroundNode(cParser *parser)
|
||||
int2 = str4.find("."); // yB: wykorzystuje tutaj zmienna, ktora potem bedzie ladunkiem
|
||||
if (int2 != string::npos) // yB: jesli znalazl kropke, to ja przetwarza jako parametry
|
||||
{
|
||||
int dlugosc = str4.length();
|
||||
size_t dlugosc = str4.length();
|
||||
int1 = atoi(str4.substr(0, int2).c_str()); // niech sprzegiem bedzie do kropki cos
|
||||
str4 = str4.substr(int2 + 1, dlugosc - int2);
|
||||
}
|
||||
@@ -2243,7 +2243,7 @@ TGroundNode * TGround::AddGroundNode(cParser *parser)
|
||||
/*
|
||||
nv = i;
|
||||
*/
|
||||
nv = TempVerts.size();
|
||||
nv = (int)TempVerts.size();
|
||||
tmp->Init(nv); // utworzenie tablicy wierzchołków
|
||||
tmp->pCenter /= (nv > 0 ? nv : 1);
|
||||
|
||||
@@ -2544,9 +2544,6 @@ bool TGround::Init(std::string File)
|
||||
int OriginStackTop = 0;
|
||||
vector3 OriginStack[OriginStackMaxDepth]; // stos zagnieżdżenia origin
|
||||
|
||||
double tf;
|
||||
int ParamCount, ParamPos;
|
||||
|
||||
// ABu: Jezeli nie ma definicji w scenerii to ustawiane ponizsze wartosci:
|
||||
hh = 10; // godzina startu
|
||||
mm = 30; // minuty startu
|
||||
@@ -3351,7 +3348,7 @@ void TGround::InitTracks()
|
||||
TGroundNode *Current, *Model;
|
||||
TTrack *tmp; // znaleziony tor
|
||||
TTrack *Track;
|
||||
int iConnection, state;
|
||||
int iConnection;
|
||||
string name;
|
||||
// tracks=tracksfar=0;
|
||||
for (Current = nRootOfType[TP_TRACK]; Current; Current = Current->nNext)
|
||||
@@ -3770,7 +3767,7 @@ bool TGround::InitLaunchers()
|
||||
{
|
||||
TGroundNode *Current, *tmp;
|
||||
TEventLauncher *EventLauncher;
|
||||
int i;
|
||||
|
||||
for (Current = nRootOfType[TP_EVLAUNCH]; Current; Current = Current->nNext)
|
||||
{
|
||||
EventLauncher = Current->EvLaunch;
|
||||
@@ -3797,8 +3794,6 @@ bool TGround::InitLaunchers()
|
||||
|
||||
TTrack * TGround::FindTrack(vector3 Point, int &iConnection, TGroundNode *Exclude)
|
||||
{ // wyszukiwanie innego toru kończącego się w (Point)
|
||||
TTrack *Track;
|
||||
TGroundNode *Current;
|
||||
TTrack *tmp;
|
||||
iConnection = -1;
|
||||
TSubRect *sr;
|
||||
@@ -3845,8 +3840,6 @@ TTrack * TGround::FindTrack(vector3 Point, int &iConnection, TGroundNode *Exclud
|
||||
|
||||
TTraction * TGround::FindTraction(vector3 *Point, int &iConnection, TGroundNode *Exclude)
|
||||
{ // wyszukiwanie innego przęsła kończącego się w (Point)
|
||||
TTraction *Traction;
|
||||
TGroundNode *Current;
|
||||
TTraction *tmp;
|
||||
iConnection = -1;
|
||||
TSubRect *sr;
|
||||
@@ -4314,7 +4307,7 @@ bool TGround::CheckQuery()
|
||||
for (i = 0; i < 8; ++i)
|
||||
{ // dodawane do kolejki w kolejności zapisania
|
||||
if (tmpEvent->Params[i].asEvent)
|
||||
if (bCondition != bool(tmpEvent->iFlags & (conditional_else << i)))
|
||||
if (bCondition != (((tmpEvent->iFlags & (conditional_else << i)) != 0)))
|
||||
{
|
||||
if (tmpEvent->Params[i].asEvent != tmpEvent)
|
||||
AddToQuery(tmpEvent->Params[i].asEvent,
|
||||
@@ -4856,11 +4849,10 @@ TGround::Render( Math3D::vector3 const &Camera ) {
|
||||
bool TGround::RenderDL(vector3 pPosition)
|
||||
{ // renderowanie scenerii z Display List - faza nieprzezroczystych
|
||||
glDisable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.45); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
glAlphaFunc(GL_GREATER, 0.45f); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
++TGroundRect::iFrameNumber; // zwięszenie licznika ramek (do usuwniania nadanimacji)
|
||||
CameraDirection.x = sin(Global::pCameraRotation); // wektor kierunkowy
|
||||
CameraDirection.z = cos(Global::pCameraRotation);
|
||||
int tr, tc;
|
||||
TGroundNode *node;
|
||||
glColor3f(1.0f, 1.0f, 1.0f);
|
||||
glEnable(GL_LIGHTING);
|
||||
@@ -4917,7 +4909,7 @@ bool TGround::RenderDL(vector3 pPosition)
|
||||
bool TGround::RenderAlphaDL(vector3 pPosition)
|
||||
{ // renderowanie scenerii z Display List - faza przezroczystych
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
glAlphaFunc(GL_GREATER, 0.04f); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
TGroundNode *node;
|
||||
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
TSubRect *tmp;
|
||||
@@ -4946,11 +4938,10 @@ bool TGround::RenderAlphaDL(vector3 pPosition)
|
||||
bool TGround::RenderVBO(vector3 pPosition)
|
||||
{ // renderowanie scenerii z VBO - faza nieprzezroczystych
|
||||
glDisable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.45); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
glAlphaFunc(GL_GREATER, 0.45f); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
++TGroundRect::iFrameNumber; // zwięszenie licznika ramek
|
||||
CameraDirection.x = sin(Global::pCameraRotation); // wektor kierunkowy
|
||||
CameraDirection.z = cos(Global::pCameraRotation);
|
||||
int tr, tc;
|
||||
TGroundNode *node;
|
||||
glColor3f(1.0f, 1.0f, 1.0f);
|
||||
glEnable(GL_LIGHTING);
|
||||
@@ -5014,7 +5005,7 @@ bool TGround::RenderVBO(vector3 pPosition)
|
||||
bool TGround::RenderAlphaVBO(vector3 pPosition)
|
||||
{ // renderowanie scenerii z VBO - faza przezroczystych
|
||||
glEnable(GL_BLEND);
|
||||
glAlphaFunc(GL_GREATER, 0.04); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
glAlphaFunc(GL_GREATER, 0.04f); // im mniejsza wartość, tym większa ramka, domyślnie 0.1f
|
||||
TGroundNode *node;
|
||||
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
TSubRect *tmp;
|
||||
@@ -5062,14 +5053,14 @@ void TGround::WyslijEvent(const std::string &e, const std::string &d)
|
||||
DaneRozkaz r;
|
||||
r.iSygn = MAKE_ID4( 'E', 'U', '0', '7' );
|
||||
r.iComm = 2; // 2 - event
|
||||
int i = e.length(), j = d.length();
|
||||
size_t i = e.length(), j = d.length();
|
||||
r.cString[0] = char(i);
|
||||
strcpy(r.cString + 1, e.c_str()); // zakończony zerem
|
||||
r.cString[i + 2] = char(j); // licznik po zerze kończącym
|
||||
strcpy(r.cString + 3 + i, d.c_str()); // zakończony zerem
|
||||
COPYDATASTRUCT cData;
|
||||
cData.dwData = MAKE_ID4( 'E', 'U', '0', '7' ); // sygnatura
|
||||
cData.cbData = 12 + i + j; // 8+dwa liczniki i dwa zera kończące
|
||||
cData.cbData = (DWORD)(12 + i + j); // 8+dwa liczniki i dwa zera kończące
|
||||
cData.lpData = &r;
|
||||
Navigate( "TEU07SRK", WM_COPYDATA, (WPARAM)glfwGetWin32Window( Global::window ), (LPARAM)&cData );
|
||||
CommLog( Now() + " " + std::to_string(r.iComm) + " " + e + " sent" );
|
||||
@@ -5080,13 +5071,13 @@ void TGround::WyslijUszkodzenia(const std::string &t, char fl)
|
||||
DaneRozkaz r;
|
||||
r.iSygn = MAKE_ID4( 'E', 'U', '0', '7' );
|
||||
r.iComm = 13; // numer komunikatu
|
||||
int i = t.length();
|
||||
size_t i = t.length();
|
||||
r.cString[0] = char(fl);
|
||||
r.cString[1] = char(i);
|
||||
strcpy(r.cString + 2, t.c_str()); // z zerem kończącym
|
||||
COPYDATASTRUCT cData;
|
||||
cData.dwData = MAKE_ID4( 'E', 'U', '0', '7' ); // sygnatura
|
||||
cData.cbData = 11 + i; // 8+licznik i zero kończące
|
||||
cData.cbData = (DWORD)(11 + i); // 8+licznik i zero kończące
|
||||
cData.lpData = &r;
|
||||
Navigate( "TEU07SRK", WM_COPYDATA, (WPARAM)glfwGetWin32Window( Global::window ), (LPARAM)&cData );
|
||||
CommLog( Now() + " " + std::to_string(r.iComm) + " " + t + " sent");
|
||||
@@ -5097,12 +5088,12 @@ void TGround::WyslijString(const std::string &t, int n)
|
||||
DaneRozkaz r;
|
||||
r.iSygn = MAKE_ID4( 'E', 'U', '0', '7' );
|
||||
r.iComm = n; // numer komunikatu
|
||||
int i = t.length();
|
||||
size_t i = t.length();
|
||||
r.cString[0] = char(i);
|
||||
strcpy(r.cString + 1, t.c_str()); // z zerem kończącym
|
||||
COPYDATASTRUCT cData;
|
||||
cData.dwData = MAKE_ID4( 'E', 'U', '0', '7' ); // sygnatura
|
||||
cData.cbData = 10 + i; // 8+licznik i zero kończące
|
||||
cData.dwData = 'EU07'; // sygnatura
|
||||
cData.cbData = (DWORD)(10 + i); // 8+licznik i zero kończące
|
||||
cData.lpData = &r;
|
||||
Navigate( "TEU07SRK", WM_COPYDATA, (WPARAM)glfwGetWin32Window( Global::window ), (LPARAM)&cData );
|
||||
CommLog( Now() + " " + std::to_string(r.iComm) + " " + t + " sent");
|
||||
@@ -5119,7 +5110,8 @@ void TGround::WyslijNamiary(TGroundNode *t)
|
||||
DaneRozkaz r;
|
||||
r.iSygn = MAKE_ID4( 'E', 'U', '0', '7' );
|
||||
r.iComm = 7; // 7 - dane pojazdu
|
||||
int i = 32, j = t->asName.length();
|
||||
int i = 32;
|
||||
size_t j = t->asName.length();
|
||||
r.iPar[0] = i; // ilość danych liczbowych
|
||||
r.fPar[1] = Global::fTimeAngleDeg / 360.0; // aktualny czas (1.0=doba)
|
||||
r.fPar[2] = t->DynamicObject->MoverParameters->Loc.X; // pozycja X
|
||||
@@ -5179,8 +5171,8 @@ void TGround::WyslijNamiary(TGroundNode *t)
|
||||
r.cString[i] = char(j); // na końcu nazwa, żeby jakoś zidentyfikować
|
||||
strcpy(r.cString + i + 1, t->asName.c_str()); // zakończony zerem
|
||||
COPYDATASTRUCT cData;
|
||||
cData.dwData = MAKE_ID4( 'E', 'U', '0', '7' ); // sygnatura
|
||||
cData.cbData = 10 + i + j; // 8+licznik i zero kończące
|
||||
cData.dwData = 'EU07'; // sygnatura
|
||||
cData.cbData = (DWORD)(10 + i + j); // 8+licznik i zero kończące
|
||||
cData.lpData = &r;
|
||||
// WriteLog("Ramka gotowa");
|
||||
Navigate( "TEU07SRK", WM_COPYDATA, (WPARAM)glfwGetWin32Window( Global::window ), (LPARAM)&cData );
|
||||
@@ -5280,7 +5272,7 @@ TDynamicObject * TGround::DynamicNearest(vector3 pPosition, double distance, boo
|
||||
TDynamicObject *dyn = NULL;
|
||||
int c = GetColFromX(pPosition.x);
|
||||
int r = GetRowFromZ(pPosition.z);
|
||||
int i, j, k;
|
||||
int i, j;
|
||||
double sqm = distance * distance, sqd; // maksymalny promien poszukiwań do kwadratu
|
||||
for (j = r - 1; j <= r + 1; j++) // plus dwa zewnętrzne sektory, łącznie 9
|
||||
for (i = c - 1; i <= c + 1; i++)
|
||||
@@ -5318,7 +5310,7 @@ TDynamicObject * TGround::CouplerNearest(vector3 pPosition, double distance, boo
|
||||
TDynamicObject *dyn = NULL;
|
||||
int c = GetColFromX(pPosition.x);
|
||||
int r = GetRowFromZ(pPosition.z);
|
||||
int i, j, k;
|
||||
int i, j;
|
||||
double sqm = distance * distance, sqd; // maksymalny promien poszukiwań do kwadratu
|
||||
for (j = r - 1; j <= r + 1; j++) // plus dwa zewnętrzne sektory, łącznie 9
|
||||
for (i = c - 1; i <= c + 1; i++)
|
||||
@@ -5418,7 +5410,6 @@ void TGround::TerrainWrite()
|
||||
// chyba że dla danej tekstury wychodzi tylko jeden submodel.
|
||||
TModel3d *m = new TModel3d(); // wirtualny model roboczy z oddzielnymi submodelami
|
||||
TSubModel *sk; // wskaźnik roboczy na submodel kwadratu
|
||||
TSubModel *st; // wskaźnik roboczy na submodel tekstury
|
||||
// Zliczamy kwadraty z trójkątami, ilość tekstur oraz wierzchołków.
|
||||
// Ilość kwadratów i ilość tekstur określi ilość submodeli.
|
||||
// int sub=0; //całkowita ilość submodeli
|
||||
@@ -5497,7 +5488,6 @@ void TGround::TerrainWrite()
|
||||
void TGround::TrackBusyList()
|
||||
{ // wysłanie informacji o wszystkich zajętych odcinkach
|
||||
TGroundNode *Current;
|
||||
TTrack *Track;
|
||||
for (Current = nRootOfType[TP_TRACK]; Current; Current = Current->nNext)
|
||||
if (!Current->asName.empty()) // musi być nazwa
|
||||
#ifdef EU07_USE_OLD_TTRACK_DYNAMICS_ARRAY
|
||||
@@ -5538,13 +5528,12 @@ void TGround::IsolatedBusy(const std::string t)
|
||||
|
||||
void TGround::Silence(vector3 gdzie)
|
||||
{ // wyciszenie wszystkiego w sektorach przed przeniesieniem kamery z (gdzie)
|
||||
int tr, tc;
|
||||
TGroundNode *node;
|
||||
int n = 2 * iNumSubRects; //(2*==2km) promień wyświetlanej mapy w sektorach
|
||||
int c = GetColFromX(gdzie.x); // sektory wg dotychczasowej pozycji kamery
|
||||
int r = GetRowFromZ(gdzie.z);
|
||||
TSubRect *tmp;
|
||||
int i, j, k;
|
||||
int i, j;
|
||||
// renderowanie czołgowe dla obiektów aktywnych a niewidocznych
|
||||
for (j = r - n; j <= r + n; j++)
|
||||
for (i = c - n; i <= c + n; i++)
|
||||
|
||||
Reference in New Issue
Block a user