summaryrefslogtreecommitdiff
path: root/src/graphics/Renderer.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2013-01-26 17:15:02 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2013-01-26 17:15:02 (GMT)
commit8e689fdd080ff24b9beb68852ff9b7c74594f119 (patch)
tree0260bce01d5e49427c6cfc364845b1f9e8c0c1d4 /src/graphics/Renderer.cpp
parent3e60181dbe8fe291c27f909738a8210111557665 (diff)
parent46b767da0c14745a6cd807637249ec0b5b57b8f1 (diff)
downloadpowder-8e689fdd080ff24b9beb68852ff9b7c74594f119.zip
powder-8e689fdd080ff24b9beb68852ff9b7c74594f119.tar.gz
Merge branch 'master' of github.com:FacialTurd/The-Powder-Toy
Diffstat (limited to 'src/graphics/Renderer.cpp')
-rw-r--r--src/graphics/Renderer.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp
index 98b94b1..50c9ba4 100644
--- a/src/graphics/Renderer.cpp
+++ b/src/graphics/Renderer.cpp
@@ -15,6 +15,8 @@
#include "simulation/Elements.h"
#include "simulation/ElementGraphics.h"
#include "simulation/Air.h"
+#include "cat/LuaScriptInterface.h"
+#include "cat/LuaScriptHelper.h"
extern "C"
{
#include "hmap.h"
@@ -1158,7 +1160,11 @@ void Renderer::render_parts()
{
if (elements[t].Graphics)
{
- if ((*(elements[t].Graphics))(this, &(sim->parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb)) //That's a lot of args, a struct might be better
+ if (lua_gr_func[t])
+ {
+ luacon_graphicsReplacement(this, &(sim->parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb, i);
+ }
+ else if ((*(elements[t].Graphics))(this, &(sim->parts[i]), nx, ny, &pixel_mode, &cola, &colr, &colg, &colb, &firea, &firer, &fireg, &fireb)) //That's a lot of args, a struct might be better
{
graphicscache[t].isready = 1;
graphicscache[t].pixel_mode = pixel_mode;
@@ -2624,9 +2630,14 @@ std::vector<unsigned int> Renderer::GetRenderMode()
void Renderer::CompileDisplayMode()
{
+ int old_display_mode = display_mode;
display_mode = 0;
for(int i = 0; i < display_modes.size(); i++)
display_mode |= display_modes[i];
+ if(!(display_mode & DISPLAY_PERS) && (old_display_mode & DISPLAY_PERS))
+ {
+ ClearAccumulation();
+ }
}
void Renderer::AddDisplayMode(unsigned int mode)