mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 19:49:19 +02:00
Opcjonalna stara smuga (oldsmudge yes).
Symetryczność smugi z obu stron pojazdu (do testu).
This commit is contained in:
@@ -151,6 +151,7 @@ double Global::fFpsMax = 0.0; // g
|
|||||||
double Global::fFpsRadiusMax = 3000.0; // maksymalny promieñ renderowania
|
double Global::fFpsRadiusMax = 3000.0; // maksymalny promieñ renderowania
|
||||||
int Global::iFpsRadiusMax = 225; // maksymalny promieñ renderowania
|
int Global::iFpsRadiusMax = 225; // maksymalny promieñ renderowania
|
||||||
double Global::fRadiusFactor = 1.1; // wspó³czynnik jednorazowej zmiany promienia scenerii
|
double Global::fRadiusFactor = 1.1; // wspó³czynnik jednorazowej zmiany promienia scenerii
|
||||||
|
bool Global::bOldSmudge = false; // U¿ywanie starej smugi
|
||||||
|
|
||||||
// parametry testowe (do testowania scenerii i obiektów)
|
// parametry testowe (do testowania scenerii i obiektów)
|
||||||
bool Global::bWireFrame = false;
|
bool Global::bWireFrame = false;
|
||||||
@@ -428,6 +429,8 @@ void Global::ConfigParse(TQueryParserComp *qp, cParser *cp)
|
|||||||
iModifyTGA = GetNextSymbol().ToIntDef(0); // domyœlnie 0
|
iModifyTGA = GetNextSymbol().ToIntDef(0); // domyœlnie 0
|
||||||
else if (str == AnsiString("hideconsole")) // hunter-271211: ukrywanie konsoli
|
else if (str == AnsiString("hideconsole")) // hunter-271211: ukrywanie konsoli
|
||||||
bHideConsole = (GetNextSymbol().LowerCase() == AnsiString("yes"));
|
bHideConsole = (GetNextSymbol().LowerCase() == AnsiString("yes"));
|
||||||
|
else if (str == AnsiString("oldsmudge"))
|
||||||
|
bOldSmudge = (GetNextSymbol().LowerCase() == AnsiString("yes"));
|
||||||
else if (str ==
|
else if (str ==
|
||||||
AnsiString(
|
AnsiString(
|
||||||
"rollfix")) // Ra: poprawianie przechy³ki, aby wewnêtrzna szyna by³a "pozioma"
|
"rollfix")) // Ra: poprawianie przechy³ki, aby wewnêtrzna szyna by³a "pozioma"
|
||||||
|
|||||||
@@ -280,6 +280,8 @@ class Global
|
|||||||
static int iSlowMotionMask; // maska wy³¹czanych w³aœciwoœci
|
static int iSlowMotionMask; // maska wy³¹czanych w³aœciwoœci
|
||||||
static int iModifyTGA; // czy korygowaæ pliki TGA dla szybszego wczytywania
|
static int iModifyTGA; // czy korygowaæ pliki TGA dla szybszego wczytywania
|
||||||
static bool bHideConsole; // hunter-271211: ukrywanie konsoli
|
static bool bHideConsole; // hunter-271211: ukrywanie konsoli
|
||||||
|
static bool bOldSmudge; // U¿ywanie starej smugi
|
||||||
|
|
||||||
static TWorld *pWorld; // wskaŸnik na œwiat do usuwania pojazdów
|
static TWorld *pWorld; // wskaŸnik na œwiat do usuwania pojazdów
|
||||||
static TAnimModel *pTerrainCompact; // obiekt terenu do ewentualnego zapisania w pliku
|
static TAnimModel *pTerrainCompact; // obiekt terenu do ewentualnego zapisania w pliku
|
||||||
static AnsiString asTerrainModel; // nazwa obiektu terenu do zapisania w pliku
|
static AnsiString asTerrainModel; // nazwa obiektu terenu do zapisania w pliku
|
||||||
|
|||||||
58
World.cpp
58
World.cpp
@@ -664,6 +664,9 @@ bool TWorld::Init(HWND NhWnd, HDC hDC)
|
|||||||
}
|
}
|
||||||
// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); //{Texture blends with object
|
// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); //{Texture blends with object
|
||||||
// background}
|
// background}
|
||||||
|
if (Global::bOldSmudge == true)
|
||||||
|
light = TTexturesManager::GetTextureID(szTexturePath, szSceneryPath, "smuga.tga");
|
||||||
|
else
|
||||||
light = TTexturesManager::GetTextureID(szTexturePath, szSceneryPath, "smuga2.tga");
|
light = TTexturesManager::GetTextureID(szTexturePath, szSceneryPath, "smuga2.tga");
|
||||||
// Camera.Reset();
|
// Camera.Reset();
|
||||||
ResetTimers();
|
ResetTimers();
|
||||||
@@ -1497,6 +1500,50 @@ bool TWorld::Update()
|
|||||||
// 3. jeœli smuga w³aczona, wyrenderowaæ pojazd u¿ytkownia po dodaniu smugi do sceny
|
// 3. jeœli smuga w³aczona, wyrenderowaæ pojazd u¿ytkownia po dodaniu smugi do sceny
|
||||||
if (Train->Controlled()->Battery)
|
if (Train->Controlled()->Battery)
|
||||||
{ // trochê na skróty z t¹ bateri¹
|
{ // trochê na skróty z t¹ bateri¹
|
||||||
|
if (Global::bOldSmudge == true)
|
||||||
|
{
|
||||||
|
glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_ONE);
|
||||||
|
// glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_DST_COLOR);
|
||||||
|
// glBlendFunc(GL_SRC_ALPHA_SATURATE,GL_ONE);
|
||||||
|
glDisable(GL_DEPTH_TEST);
|
||||||
|
glDisable(GL_LIGHTING);
|
||||||
|
glDisable(GL_FOG);
|
||||||
|
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, light); // Select our texture
|
||||||
|
glBegin(GL_QUADS);
|
||||||
|
float fSmudge =
|
||||||
|
Train->Dynamic()->MoverParameters->DimHalf.y + 7; // gdzie zaczynaæ smugê
|
||||||
|
if (Train->Controlled()->iLights[0] & 21)
|
||||||
|
{ // wystarczy jeden zapalony z przodu
|
||||||
|
glTexCoord2f(0, 0);
|
||||||
|
glVertex3f(15.0, 0.0, +fSmudge); // rysowanie wzglêdem po³o¿enia modelu
|
||||||
|
glTexCoord2f(1, 0);
|
||||||
|
glVertex3f(-15.0, 0.0, +fSmudge);
|
||||||
|
glTexCoord2f(1, 1);
|
||||||
|
glVertex3f(-15.0, 2.5, 250.0);
|
||||||
|
glTexCoord2f(0, 1);
|
||||||
|
glVertex3f(15.0, 2.5, 250.0);
|
||||||
|
}
|
||||||
|
if (Train->Controlled()->iLights[1] & 21)
|
||||||
|
{ // wystarczy jeden zapalony z ty³u
|
||||||
|
glTexCoord2f(0, 0);
|
||||||
|
glVertex3f(-15.0, 0.0, -fSmudge);
|
||||||
|
glTexCoord2f(1, 0);
|
||||||
|
glVertex3f(15.0, 0.0, -fSmudge);
|
||||||
|
glTexCoord2f(1, 1);
|
||||||
|
glVertex3f(15.0, 2.5, -250.0);
|
||||||
|
glTexCoord2f(0, 1);
|
||||||
|
glVertex3f(-15.0, 2.5, -250.0);
|
||||||
|
}
|
||||||
|
glEnd();
|
||||||
|
|
||||||
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
// glEnable(GL_LIGHTING); //i tak siê w³¹czy potem
|
||||||
|
glEnable(GL_FOG);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
glBlendFunc(GL_DST_COLOR, GL_ONE);
|
glBlendFunc(GL_DST_COLOR, GL_ONE);
|
||||||
// glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE);
|
// glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE);
|
||||||
// glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_ONE);
|
// glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_ONE);
|
||||||
@@ -1530,10 +1577,12 @@ bool TWorld::Update()
|
|||||||
for (int i = 15; i <= 35; i++)
|
for (int i = 15; i <= 35; i++)
|
||||||
{
|
{
|
||||||
float z = i * i * i * 0.01f;//25/4;
|
float z = i * i * i * 0.01f;//25/4;
|
||||||
glTexCoord2f(0, 0); glVertex3f(10 / 2 + 3 * i / 4, 6.0 + 0.3*z, -13 - 1.7*z / 3);
|
float C = (36 - i*0.5)*0.05*0.1;
|
||||||
glTexCoord2f(1, 0); glVertex3f(-10 / 2 - 3 * i / 4, 6.0 + 0.3*z, -13 - 1.7*z / 3);
|
glColor4f(C, C, C, 0.25f);
|
||||||
glTexCoord2f(1, 1); glVertex3f(-10 / 2 - 3 * i / 4, -5.0 - 0.5*z, -13 - 1.7*z / 3);
|
glTexCoord2f(0, 0); glVertex3f(10 / 2 + 2 * i / 4, 6.0 + 0.3*z, -13 - 1.7*z / 3);
|
||||||
glTexCoord2f(0, 1); glVertex3f(10 / 2 + 3 * i / 4, -5.0 - 0.5*z, -13 - 1.7*z / 3);
|
glTexCoord2f(1, 0); glVertex3f(-10 / 2 - 2 * i / 4, 6.0 + 0.3*z, -13 - 1.7*z / 3);
|
||||||
|
glTexCoord2f(1, 1); glVertex3f(-10 / 2 - 2 * i / 4, -5.0 - 0.5*z, -13 - 1.7*z / 3);
|
||||||
|
glTexCoord2f(0, 1); glVertex3f(10 / 2 + 2 * i / 4, -5.0 - 0.5*z, -13 - 1.7*z / 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
glEnd();
|
glEnd();
|
||||||
@@ -1545,6 +1594,7 @@ bool TWorld::Update()
|
|||||||
glEnable(GL_LIGHTING); //i tak siê w³¹czy potem
|
glEnable(GL_LIGHTING); //i tak siê w³¹czy potem
|
||||||
glEnable(GL_FOG);
|
glEnable(GL_FOG);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
glEnable(GL_LIGHTING); // po renderowaniu smugi jest to wy³¹czone
|
glEnable(GL_LIGHTING); // po renderowaniu smugi jest to wy³¹czone
|
||||||
// Ra: pojazd u¿ytkownika nale¿a³o by renderowaæ po smudze, aby go nie rozœwietla³a
|
// Ra: pojazd u¿ytkownika nale¿a³o by renderowaæ po smudze, aby go nie rozœwietla³a
|
||||||
Global::bSmudge = false; // aby model u¿ytkownika siê teraz wyrenderowa³
|
Global::bSmudge = false; // aby model u¿ytkownika siê teraz wyrenderowa³
|
||||||
|
|||||||
Reference in New Issue
Block a user