diff --git a/World.cpp b/World.cpp index 9839e026..35e79974 100644 --- a/World.cpp +++ b/World.cpp @@ -738,16 +738,8 @@ void TWorld::OnKeyDown(int cKey) switch (cKey) { case VK_F1: { - // czas i relacja - if( Global::iTextMode == cKey ) - Global::iTextMode = - ( Global::iPause && ( cKey != VK_F1 ) ? - VK_F1 : - 0 ); // wyłączenie napisów, chyba że pauza - else - Global::iTextMode = cKey; - // advance world clock in debug mode if( DebugModeFlag ) { + // additional time speedup keys in debug mode if( Console::Pressed( VK_CONTROL ) ) { // ctrl-f3 GlobalTime->UpdateMTableTime( 20.0 * 60.0 ); @@ -757,6 +749,19 @@ void TWorld::OnKeyDown(int cKey) GlobalTime->UpdateMTableTime( 5.0 * 60.0 ); } } + if( ( false == Console::Pressed( VK_CONTROL ) ) + && ( false == Console::Pressed( VK_SHIFT ) ) ) { + // czas i relacja + if( Global::iTextMode == cKey ) { + // wyłączenie napisów, chyba że pauza + Global::iTextMode = + ( Global::iPause && ( cKey != VK_F1 ) ? + VK_F1 : + 0 ); + } + else + Global::iTextMode = cKey; + } break; } case VK_F2: { @@ -3126,7 +3131,7 @@ world_environment::render() { m_skydome.Render(); m_stars.render(); -// m_clouds.Render(); + m_clouds.Render( m_skydome.GetAverageColor() * 2.5f ); if( DebugModeFlag == true ) { // mark sun position for easier debugging diff --git a/sky.cpp b/sky.cpp index c6766f44..78932cf7 100644 --- a/sky.cpp +++ b/sky.cpp @@ -22,21 +22,22 @@ TSky::TSky(){}; void TSky::Init() { - WriteLog(Global::asSky.c_str()); - WriteLog("init"); + WriteLog( "Clouds init" ); if ((Global::asSky != "1") && (Global::asSky != "0")) - // { - mdCloud = TModelsManager::GetModel(Global::asSky.c_str()); - // } + mdCloud = TModelsManager::GetModel( Global::asSky ); }; -void TSky::Render() +void TSky::Render( float3 const &Tint ) { if (mdCloud) { // jeśli jest model nieba #ifdef EU07_USE_OLD_LIGHTING_MODEL // TODO: re-implement this glLightfv(GL_LIGHT0, GL_POSITION, lightPos); +#else + ::glEnable( GL_LIGHTING ); + ::glDisable( GL_LIGHT0 ); + ::glLightModelfv( GL_LIGHT_MODEL_AMBIENT, &Tint.x ); #endif if (Global::bUseVBO) { // renderowanie z VBO @@ -52,6 +53,11 @@ void TSky::Render() glPopMatrix(); // TODO: re-implement this glLightfv(GL_LIGHT0, GL_POSITION, Global::lightPos); +#else + GLfloat noambient[] = { 0.0f, 0.0f, 0.0f, 1.0f }; + ::glLightModelfv( GL_LIGHT_MODEL_AMBIENT, noambient ); + ::glEnable( GL_LIGHT0 ); + ::glDisable( GL_LIGHTING ); #endif } }; diff --git a/sky.h b/sky.h index 709c2887..1117957a 100644 --- a/sky.h +++ b/sky.h @@ -11,6 +11,7 @@ http://mozilla.org/MPL/2.0/. #pragma once #include "Model3d.h" +#include "Float3d.h" class TSky { @@ -21,7 +22,7 @@ class TSky TSky(); ~TSky(); void Init(); - void Render(); + void Render( float3 const &Tint = float3(1.0f, 1.0f, 1.0f) ); }; //---------------------------------------------------------------------------