diff options
Diffstat (limited to 'Portal.h')
-rw-r--r-- | Portal.h | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -16,6 +16,7 @@ class Portal : public LevelObject, public VertexProvider { Vertex vertices[4]; float s, c; + bool connected[4]; void updateVertices() { @@ -54,6 +55,10 @@ class Portal : public LevelObject, public VertexProvider { orient = 0; + for(int i = 0; i < 4; i++) { + connected[i] = false; + } + updateOrient(); } @@ -109,13 +114,25 @@ class Portal : public LevelObject, public VertexProvider { return 1; } + virtual bool canMove() const {return true;} + virtual void moveVertex(size_t id, float x, float y) { move(x, y); } + virtual bool canRotate() const {return true;} + virtual void rotateVertex(size_t id, Vertex m, float a) { rotate(m, a); } + + virtual bool canConnectVertex(size_t id) const { + return !connected[id]; + } + + virtual void connectVertex(size_t id) { + connected[id] = true; + } }; #endif /*PORTAL_H_*/ |