From a2790bd9cbc487fe0931c9a7cd9a35a5d72d946e Mon Sep 17 00:00:00 2001 From: titison Date: Mon, 27 Oct 2014 16:16:50 +0100 Subject: [PATCH] Make them actually usable. added ep bars. Of course its not finished yet --- source/glest_game/game/game.cpp | 3 ++ source/glest_game/graphics/renderer.cpp | 40 +++++++++++++++++++++---- source/glest_game/graphics/renderer.h | 1 + 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index a0fc693c..dc8a4c88 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -5223,6 +5223,9 @@ void Game::render3d(){ if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] renderFps = %d took msecs: %lld [renderObjects]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,renderFps,chrono.getMillis()); if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start(); + //renderOnTopBars (aka Healthbars) + renderer.renderOnTopBars(); + //objects renderer.renderObjects(avgRenderFps); if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] renderFps = %d took msecs: %lld [renderObjects]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,renderFps,chrono.getMillis()); diff --git a/source/glest_game/graphics/renderer.cpp b/source/glest_game/graphics/renderer.cpp index 5ce3d710..7cc723ad 100644 --- a/source/glest_game/graphics/renderer.cpp +++ b/source/glest_game/graphics/renderer.cpp @@ -5445,11 +5445,6 @@ void Renderer::renderSelectionEffects() { glColor4f(unit->getHpRatio(), 0, 0, 0.3f); } renderSelectionCircle(currVec, unit->getType()->getSize(), selectionCircleRadius); - if(unit->getType()->getMaxEp() > 0) { - renderSelectionHpBar((currVec+Vec3f(0,unit->getType()->getHeight(),0)),unit->getType()->getSize(),unit->getHpRatio(),0.08,unit->getEpRatio()); - } else { - renderSelectionHpBar((currVec+Vec3f(0,unit->getType()->getHeight(),0)),unit->getType()->getSize(),unit->getHpRatio(),0.05); - } if( showDebugUI == true && (showDebugUILevel & debugui_unit_titles) == debugui_unit_titles) { @@ -5615,6 +5610,41 @@ void Renderer::renderSelectionEffects() { glPopAttrib(); } +void Renderer::renderOnTopBars(){ + if(GlobalStaticFlags::getIsNonGraphicalModeEnabled() == true) { + return; + } + + Config &config= Config::getInstance(); + if(config.getBool("RecordMode","false") == true) { + return; + } + + glPushAttrib(GL_ENABLE_BIT | GL_CURRENT_BIT | GL_DEPTH_BUFFER_BIT); + glDisable(GL_LIGHTING); + glDisable(GL_TEXTURE_2D); + glDepthFunc(GL_ALWAYS); + glDisable(GL_STENCIL_TEST); + glDisable(GL_CULL_FACE); + glEnable(GL_BLEND); + glLineWidth(2.f); + + VisibleQuadContainerCache &qCache = getQuadCache(); + if(qCache.visibleQuadUnitList.empty() == false) { + for(int visibleUnitIndex = 0; + visibleUnitIndex < (int)qCache.visibleQuadUnitList.size(); ++visibleUnitIndex) { + Unit *unit = qCache.visibleQuadUnitList[visibleUnitIndex]; + Vec3f currVec= unit->getCurrVectorFlat(); + if(unit->getType()->getMaxEp() > 0) { + renderSelectionHpBar((currVec+Vec3f(0,unit->getType()->getHeight(),0)),unit->getType()->getSize(),unit->getHpRatio(),0.08,unit->getEpRatio()); + } else { + renderSelectionHpBar((currVec+Vec3f(0,unit->getType()->getHeight(),0)),unit->getType()->getSize(),unit->getHpRatio(),0.05); + } + } + } + glPopAttrib(); +} + void Renderer::renderWaterEffects(){ if(GlobalStaticFlags::getIsNonGraphicalModeEnabled() == true) { return; diff --git a/source/glest_game/graphics/renderer.h b/source/glest_game/graphics/renderer.h index a48777a3..fa15818b 100644 --- a/source/glest_game/graphics/renderer.h +++ b/source/glest_game/graphics/renderer.h @@ -549,6 +549,7 @@ public: void renderUnitsToBuild(const int renderFps); void renderSelectionEffects(); + void renderOnTopBars(); void renderWaterEffects(); void renderHud(); void renderMinimap();