diff --git a/src/Renderer.cpp b/src/Renderer.cpp index 10a92054b..c8f301fe1 100644 --- a/src/Renderer.cpp +++ b/src/Renderer.cpp @@ -701,7 +701,7 @@ void Renderer::render_parts() fireg = graphicscache[t].fireg; fireb = graphicscache[t].fireb; } - else + else if(!(colour_mode & COLOUR_BASC)) { if (ptypes[t].graphics_func) { @@ -789,6 +789,13 @@ void Renderer::render_parts() colb = sin(frequency*q) * 16 + colb; if(pixel_mode & (FIREMODE | PMODE_GLOW)) pixel_mode = (pixel_mode & ~(FIREMODE|PMODE_GLOW)) | PMODE_BLUR; } + else if(colour_mode & COLOUR_BASC) + { + colr = PIXR(ptypes[t].pcolors); + colg = PIXG(ptypes[t].pcolors); + colb = PIXB(ptypes[t].pcolors); + pixel_mode = PMODE_FLAT; + } //Apply decoration colour if(!colour_mode) diff --git a/src/render/RenderView.cpp b/src/render/RenderView.cpp index 3c9811d8b..e44c72f72 100644 --- a/src/render/RenderView.cpp +++ b/src/render/RenderView.cpp @@ -157,6 +157,11 @@ RenderView::RenderView(): colourModes.push_back(tCheckbox); tCheckbox->SetActionCallback(new ColourModeAction(this, COLOUR_GRAD)); AddComponent(tCheckbox); + + tCheckbox = new ui::Checkbox(ui::Point(536, YRES+4), ui::Point(50, 16), "Basic"); + colourModes.push_back(tCheckbox); + tCheckbox->SetActionCallback(new ColourModeAction(this, COLOUR_BASC)); + AddComponent(tCheckbox); } void RenderView::OnMouseDown(int x, int y, unsigned button) diff --git a/src/simulation/ElementGraphics.h b/src/simulation/ElementGraphics.h index 2f0946bb9..e84db945b 100644 --- a/src/simulation/ElementGraphics.h +++ b/src/simulation/ElementGraphics.h @@ -37,6 +37,7 @@ #define COLOUR_HEAT 0x00000001 #define COLOUR_LIFE 0x00000002 #define COLOUR_GRAD 0x00000004 +#define COLOUR_BASC 0x00000008 #define COLOUR_DEFAULT 0x00000000