diff options
| author | Simon 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) |
| commit | 8e689fdd080ff24b9beb68852ff9b7c74594f119 (patch) | |
| tree | 0260bce01d5e49427c6cfc364845b1f9e8c0c1d4 /src/graphics/Renderer.cpp | |
| parent | 3e60181dbe8fe291c27f909738a8210111557665 (diff) | |
| parent | 46b767da0c14745a6cd807637249ec0b5b57b8f1 (diff) | |
| download | powder-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.cpp | 13 |
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) |
