Merge pull request #311 from MohamedWaheed/dev
fixed issue #223 about disabling shadows/ground texturesdev-mp
commit
7ad8925ac8
|
@ -3124,68 +3124,68 @@ void CEngine::Draw3DScene()
|
||||||
|
|
||||||
m_app->StartPerformanceCounter(PCNT_RENDER_TERRAIN);
|
m_app->StartPerformanceCounter(PCNT_RENDER_TERRAIN);
|
||||||
|
|
||||||
// Draw terrain with shadows, if shadows enabled
|
// Draw terrain
|
||||||
if (m_shadowVisible)
|
|
||||||
|
m_lightMan->UpdateDeviceLights(ENG_OBJTYPE_TERRAIN);
|
||||||
|
|
||||||
|
for (int objRank = 0; objRank < static_cast<int>(m_objects.size()); objRank++)
|
||||||
{
|
{
|
||||||
m_lightMan->UpdateDeviceLights(ENG_OBJTYPE_TERRAIN);
|
if (! m_objects[objRank].used)
|
||||||
|
continue;
|
||||||
|
|
||||||
for (int objRank = 0; objRank < static_cast<int>(m_objects.size()); objRank++)
|
if (m_objects[objRank].type != ENG_OBJTYPE_TERRAIN)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (! m_objects[objRank].drawWorld)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
m_device->SetTransform(TRANSFORM_WORLD, m_objects[objRank].transform);
|
||||||
|
|
||||||
|
if (! IsVisible(objRank))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
int baseObjRank = m_objects[objRank].baseObjRank;
|
||||||
|
if (baseObjRank == -1)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
assert(baseObjRank >= 0 && baseObjRank < static_cast<int>( m_baseObjects.size() ));
|
||||||
|
|
||||||
|
EngineBaseObject& p1 = m_baseObjects[baseObjRank];
|
||||||
|
if (! p1.used)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (int l2 = 0; l2 < static_cast<int>( p1.next.size() ); l2++)
|
||||||
{
|
{
|
||||||
if (! m_objects[objRank].used)
|
EngineBaseObjTexTier& p2 = p1.next[l2];
|
||||||
continue;
|
|
||||||
|
|
||||||
if (m_objects[objRank].type != ENG_OBJTYPE_TERRAIN)
|
SetTexture(p2.tex1, 0);
|
||||||
continue;
|
SetTexture(p2.tex2, 1);
|
||||||
|
|
||||||
if (! m_objects[objRank].drawWorld)
|
for (int l3 = 0; l3 < static_cast<int>( p2.next.size() ); l3++)
|
||||||
continue;
|
|
||||||
|
|
||||||
m_device->SetTransform(TRANSFORM_WORLD, m_objects[objRank].transform);
|
|
||||||
|
|
||||||
if (! IsVisible(objRank))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
int baseObjRank = m_objects[objRank].baseObjRank;
|
|
||||||
if (baseObjRank == -1)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
assert(baseObjRank >= 0 && baseObjRank < static_cast<int>( m_baseObjects.size() ));
|
|
||||||
|
|
||||||
EngineBaseObject& p1 = m_baseObjects[baseObjRank];
|
|
||||||
if (! p1.used)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for (int l2 = 0; l2 < static_cast<int>( p1.next.size() ); l2++)
|
|
||||||
{
|
{
|
||||||
EngineBaseObjTexTier& p2 = p1.next[l2];
|
EngineBaseObjLODTier& p3 = p2.next[l3];
|
||||||
|
|
||||||
SetTexture(p2.tex1, 0);
|
if (! IsWithinLODLimit(m_objects[objRank].distance, p3.lodLevel))
|
||||||
SetTexture(p2.tex2, 1);
|
continue;
|
||||||
|
|
||||||
for (int l3 = 0; l3 < static_cast<int>( p2.next.size() ); l3++)
|
for (int l4 = 0; l4 < static_cast<int>( p3.next.size() ); l4++)
|
||||||
{
|
{
|
||||||
EngineBaseObjLODTier& p3 = p2.next[l3];
|
EngineBaseObjDataTier& p4 = p3.next[l4];
|
||||||
|
|
||||||
if (! IsWithinLODLimit(m_objects[objRank].distance, p3.lodLevel))
|
SetMaterial(p4.material);
|
||||||
continue;
|
SetState(p4.state);
|
||||||
|
|
||||||
for (int l4 = 0; l4 < static_cast<int>( p3.next.size() ); l4++)
|
DrawObject(p4);
|
||||||
{
|
|
||||||
EngineBaseObjDataTier& p4 = p3.next[l4];
|
|
||||||
|
|
||||||
SetMaterial(p4.material);
|
|
||||||
SetState(p4.state);
|
|
||||||
|
|
||||||
DrawObject(p4);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draws the shadows
|
|
||||||
DrawShadow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draws the shadows , if shadows enabled
|
||||||
|
if (m_shadowVisible)
|
||||||
|
DrawShadow();
|
||||||
|
|
||||||
|
|
||||||
m_app->StopPerformanceCounter(PCNT_RENDER_TERRAIN);
|
m_app->StopPerformanceCounter(PCNT_RENDER_TERRAIN);
|
||||||
|
|
||||||
// Draw other objects (and if shadows disabled, also terrain)
|
// Draw other objects (and if shadows disabled, also terrain)
|
||||||
|
|
Loading…
Reference in New Issue