From 48f855c499501e1d2109f7f2792fc69c87aa24ac Mon Sep 17 00:00:00 2001 From: Warmist Date: Fri, 28 Jun 2013 23:34:47 +0300 Subject: [PATCH] Added occlusionON|occlusionOFF commands --- plugins/rendermax/renderer_light.cpp | 10 +++++----- plugins/rendermax/renderer_light.hpp | 5 +++++ plugins/rendermax/rendermax.cpp | 10 +++++++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/plugins/rendermax/renderer_light.cpp b/plugins/rendermax/renderer_light.cpp index 4f5bdd90c..00a5ebd8f 100644 --- a/plugins/rendermax/renderer_light.cpp +++ b/plugins/rendermax/renderer_light.cpp @@ -175,7 +175,7 @@ rect2d getMapViewport() } return mkrect_wh(1,1,view_rb,view_height+1); } -lightingEngineViewscreen::lightingEngineViewscreen(renderer_light* target):lightingEngine(target) +lightingEngineViewscreen::lightingEngineViewscreen(renderer_light* target):lightingEngine(target),doDebug(false) { reinit(); defaultSettings(); @@ -428,10 +428,10 @@ void lightingEngineViewscreen::updateWindow() return; } - //if(showOcupancy) - //std::swap(ocupancy,myRenderer->lightGrid); - //else - std::swap(lightMap,myRenderer->lightGrid); + if(doDebug) + std::swap(ocupancy,myRenderer->lightGrid); + else + std::swap(lightMap,myRenderer->lightGrid); rect2d vp=getMapViewport(); myRenderer->invalidateRect(vp.first.x,vp.first.y,vp.second.x-vp.first.x,vp.second.y-vp.first.y); diff --git a/plugins/rendermax/renderer_light.hpp b/plugins/rendermax/renderer_light.hpp index 5a53242b0..ad90ca5eb 100644 --- a/plugins/rendermax/renderer_light.hpp +++ b/plugins/rendermax/renderer_light.hpp @@ -79,6 +79,7 @@ public: virtual void clear()=0; virtual void setHour(float h)=0; + virtual void debug(bool enable)=0; protected: renderer_light* myRenderer; }; @@ -140,6 +141,8 @@ public: void loadSettings(); void clear(); + + void debug(bool enable){doDebug=enable;}; private: df::coord2d worldToViewportCoord(const df::coord2d& in,const DFHack::rect2d& r,const df::coord2d& window2d) ; @@ -188,6 +191,8 @@ public: void lightWorkerThread(void * arg); private: lightCell getSkyColor(float v); + bool doDebug; + //settings float daySpeed; float dayHour; //<0 to cycle diff --git a/plugins/rendermax/rendermax.cpp b/plugins/rendermax/rendermax.cpp index 6a1b40890..24ba8c4d8 100644 --- a/plugins/rendermax/rendermax.cpp +++ b/plugins/rendermax/rendermax.cpp @@ -49,7 +49,8 @@ DFhackCExport command_result plugin_init (color_ostream &out, std::vector |cycle - set time to x or cycle (same effect if x<0)\n" + " rendermax light sun |cycle - set time to x (in hours) or cycle (same effect if x<0)\n" + " rendermax light occlusionON|occlusionOFF - debug the occlusion map\n" " rendermax disable\n" )); return CR_OK; @@ -385,6 +386,13 @@ static command_result rendermax(color_ostream &out, vector & parameters engine->setHour(h); } } + else if(parameters[1]=="occlusionON") + { + engine->debug(true); + }else if(parameters[1]=="occlusionOFF") + { + engine->debug(false); + } } else out.printerr("Light mode already enabled");