diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-24 18:22:58 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-06-24 18:22:58 (GMT) |
| commit | ba802b3243c3e1721a84126e2bed6c3b24532b27 (patch) | |
| tree | 858767f6f853c798809b5c595cd813e493cd75b8 /src/game/Tool.h | |
| parent | f5547f267b9e73be3d8153df3dd36d7e3b69a2d9 (diff) | |
| download | powder-ba802b3243c3e1721a84126e2bed6c3b24532b27.zip powder-ba802b3243c3e1721a84126e2bed6c3b24532b27.tar.gz | |
Element search
Diffstat (limited to 'src/game/Tool.h')
| -rw-r--r-- | src/game/Tool.h | 103 |
1 files changed, 31 insertions, 72 deletions
diff --git a/src/game/Tool.h b/src/game/Tool.h index 4a78be8..819620d 100644 --- a/src/game/Tool.h +++ b/src/game/Tool.h @@ -12,33 +12,25 @@ using namespace std; +#include "interface/Point.h" + +class Simulation; +class Brush; + class Tool { protected: int toolID; string toolName; public: - Tool(int id, string name, int r, int g, int b): - toolID(id), - toolName(name), - colRed(r), - colGreen(g), - colBlue(b) - { - } - string GetName() { return toolName; } - virtual ~Tool() {} - virtual void Click(Simulation * sim, Brush * brush, ui::Point position) { } - virtual void Draw(Simulation * sim, Brush * brush, ui::Point position) { - sim->ToolBrush(position.X, position.Y, toolID, brush); - } - virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->ToolLine(position1.X, position1.Y, position2.X, position2.Y, toolID, brush); - } - virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->ToolBox(position1.X, position1.Y, position2.X, position2.Y, toolID, brush); - } - virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) {}; + Tool(int id, string name, int r, int g, int b); + string GetName(); + virtual ~Tool(); + virtual void Click(Simulation * sim, Brush * brush, ui::Point position); + virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); + virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); int colRed, colBlue, colGreen; }; @@ -75,67 +67,34 @@ public: class ElementTool: public Tool { public: - ElementTool(int id, string name, int r, int g, int b): - Tool(id, name, r, g, b) - { - } - virtual ~ElementTool() {} - virtual void Draw(Simulation * sim, Brush * brush, ui::Point position){ - sim->CreateParts(position.X, position.Y, toolID, brush); - } - virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->CreateLine(position1.X, position1.Y, position2.X, position2.Y, toolID, brush); - } - virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->CreateBox(position1.X, position1.Y, position2.X, position2.Y, toolID, 0); - } - virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) { - sim->FloodParts(position.X, position.Y, toolID, -1, -1, 0); - } + ElementTool(int id, string name, int r, int g, int b); + virtual ~ElementTool(); + virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); + virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); }; class WallTool: public Tool { public: - WallTool(int id, string name, int r, int g, int b): - Tool(id, name, r, g, b) - { - } - virtual ~WallTool() {} - virtual void Draw(Simulation * sim, Brush * brush, ui::Point position){ - sim->CreateWalls(position.X, position.Y, 1, 1, toolID, 0, brush); - } - virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->CreateWallLine(position1.X, position1.Y, position2.X, position2.Y, 1, 1, toolID, 0, brush); - } - virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->CreateWallBox(position1.X, position1.Y, position2.X, position2.Y, toolID, 0); - } - virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) { - sim->FloodWalls(position.X, position.Y, toolID, -1, -1, 0); - } + WallTool(int id, string name, int r, int g, int b); + virtual ~WallTool(); + virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); + virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); }; class GolTool: public Tool { public: - GolTool(int id, string name, int r, int g, int b): - Tool(id, name, r, g, b) - { - } - virtual ~GolTool() {} - virtual void Draw(Simulation * sim, Brush * brush, ui::Point position){ - sim->CreateParts(position.X, position.Y, PT_LIFE|(toolID<<8), brush); - } - virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->CreateLine(position1.X, position1.Y, position2.X, position2.Y, PT_LIFE|(toolID<<8), brush); - } - virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2) { - sim->CreateBox(position1.X, position1.Y, position2.X, position2.Y, PT_LIFE|(toolID<<8), 0); - } - virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position) { - sim->FloodParts(position.X, position.Y, PT_LIFE|(toolID<<8), -1, -1, 0); - } + GolTool(int id, string name, int r, int g, int b); + virtual ~GolTool(); + virtual void Draw(Simulation * sim, Brush * brush, ui::Point position); + virtual void DrawLine(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawRect(Simulation * sim, Brush * brush, ui::Point position1, ui::Point position2); + virtual void DrawFill(Simulation * sim, Brush * brush, ui::Point position); }; #endif /* TOOL_H_ */ |
