summaryrefslogtreecommitdiff
path: root/src/game/Tool.h
diff options
context:
space:
mode:
authorSimon 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)
commitba802b3243c3e1721a84126e2bed6c3b24532b27 (patch)
tree858767f6f853c798809b5c595cd813e493cd75b8 /src/game/Tool.h
parentf5547f267b9e73be3d8153df3dd36d7e3b69a2d9 (diff)
downloadpowder-ba802b3243c3e1721a84126e2bed6c3b24532b27.zip
powder-ba802b3243c3e1721a84126e2bed6c3b24532b27.tar.gz
Element search
Diffstat (limited to 'src/game/Tool.h')
-rw-r--r--src/game/Tool.h103
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_ */