* Bring back the cube shading, but with fixed lighting.

This commit is contained in:
iProgramInCpp
2023-08-07 12:21:32 +03:00
parent b77d42b04a
commit 6c1a54e3f0
11 changed files with 60 additions and 10 deletions

View File

@@ -53,13 +53,11 @@ void Cube::addBox(float x, float y, float z, int d, int e, int f, float g)
m_faces[4] = PolygonQuad(&m_verts[1], &m_verts[0], &m_verts[3], &m_verts[2], m + f, n + f, m + f + d, n + f + e); // z1 face
m_faces[5] = PolygonQuad(&m_verts[4], &m_verts[5], &m_verts[6], &m_verts[7], m + f + d + f, n + f, m + f + d + f + d, n + f + e); // z2 face
#ifdef ENH_ENTITY_SHADING
m_faces[0].setColor(0.6f, 0.6f, 0.6f);
m_faces[1].setColor(0.6f, 0.6f, 0.6f);
m_faces[4].setColor(0.8f, 0.8f, 0.8f);
m_faces[5].setColor(0.8f, 0.8f, 0.8f);
m_faces[3].setColor(0.5f, 0.5f, 0.5f);
#endif
if (field_18)
{
@@ -85,11 +83,7 @@ void Cube::compile(float f)
void Cube::draw()
{
#ifdef ENH_ENTITY_SHADING
drawArrayVT(m_buffer, 36, sizeof(Tesselator::Vertex));
#else
drawArrayVTC(m_buffer, 36, sizeof(Tesselator::Vertex));
#endif
}
void Cube::drawSlow(float f)
@@ -217,6 +211,21 @@ void Cube::translateTo(float f)
if (field_C != 0.0f) glRotatef(field_C * c, 1.0f, 0.0f, 0.0f);
}
void Cube::setBrightness(float f)
{
if (m_brightness != f)
m_bCompiled = false;
m_brightness = f;
m_faces[0].setColor(0.6f * f, 0.6f * f, 0.6f * f);
m_faces[1].setColor(0.6f * f, 0.6f * f, 0.6f * f);
m_faces[2].setColor(1.0f * f, 1.0f * f, 1.0f * f);
m_faces[3].setColor(0.5f * f, 0.5f * f, 0.5f * f);
m_faces[4].setColor(0.8f * f, 0.8f * f, 0.8f * f);
m_faces[5].setColor(0.8f * f, 0.8f * f, 0.8f * f);
}
void Cube::setPos(float x, float y, float z)
{
m_posX = x;