diff options
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); + } } } |
