summaryrefslogtreecommitdiffstats
path: root/Portal.h
diff options
context:
space:
mode:
Diffstat (limited to 'Portal.h')
-rw-r--r--Portal.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/Portal.h b/Portal.h
index 8cb91c9..3596bc2 100644
--- a/Portal.h
+++ b/Portal.h
@@ -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_*/