diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-25 12:36:53 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-08-25 12:36:53 (GMT) |
| commit | 1c443ceb573c28a7e5beea50e94db88246ecac0e (patch) | |
| tree | 0c3546abb72c7c65f1eb621970406c7931573dbe /src/game/SampleTool.cpp | |
| parent | 52ec84198bcab2aa177ced1a9eba3343a097522a (diff) | |
| download | powder-1c443ceb573c28a7e5beea50e94db88246ecac0e.zip powder-1c443ceb573c28a7e5beea50e94db88246ecac0e.tar.gz | |
Sample tool samples decoration colour when deco menu is visible. fixes #146
Diffstat (limited to 'src/game/SampleTool.cpp')
| -rw-r--r-- | src/game/SampleTool.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/game/SampleTool.cpp b/src/game/SampleTool.cpp index a8880b3..a9c3290 100644 --- a/src/game/SampleTool.cpp +++ b/src/game/SampleTool.cpp @@ -2,6 +2,7 @@ #include "graphics/Graphics.h" #include "Tool.h" #include "GameModel.h" +#include "interface/Colour.h" VideoBuffer * SampleTool::GetIcon(int toolID, int width, int height) { @@ -21,16 +22,24 @@ VideoBuffer * SampleTool::GetIcon(int toolID, int width, int height) void SampleTool::Draw(Simulation * sim, Brush * brush, ui::Point position) { - int particleType = 0; - if(sim->pmap[position.Y][position.X]) - particleType = sim->parts[sim->pmap[position.Y][position.X]>>8].type; - else if(sim->photons[position.Y][position.X]) - particleType = sim->parts[sim->photons[position.Y][position.X]>>8].type; - - if(particleType) + if(gameModel->GetColourSelectorVisibility()) + { + pixel colour = gameModel->GetRenderer()->GetPixel(position.X, position.Y); + gameModel->SetColourSelectorColour(ui::Colour(PIXR(colour), PIXG(colour), PIXB(colour), 255)); + } + else { - Tool * elementTool = gameModel->GetElementTool(particleType); - if(elementTool) - gameModel->SetActiveTool(0, elementTool); + int particleType = 0; + if(sim->pmap[position.Y][position.X]) + particleType = sim->parts[sim->pmap[position.Y][position.X]>>8].type; + else if(sim->photons[position.Y][position.X]) + particleType = sim->parts[sim->photons[position.Y][position.X]>>8].type; + + if(particleType) + { + Tool * elementTool = gameModel->GetElementTool(particleType); + if(elementTool) + gameModel->SetActiveTool(0, elementTool); + } } } |
