summaryrefslogtreecommitdiff
path: root/ConditionalSprite.h
diff options
context:
space:
mode:
authorKris Parker2009-11-13 22:26:17 +0000
committerKris Parker2009-11-13 22:26:17 +0000
commit1cb48474b399549ca64dca40ab2ad20a80d3db30 (patch)
tree74f3a8754eba20def409d7687997eab510d1709c /ConditionalSprite.h
parenta71d4adc7da44c0d5fa70eaba700afea6bb4f89d (diff)
downloadstonesense-1cb48474b399549ca64dca40ab2ad20a80d3db30.tar.gz
stonesense-1cb48474b399549ca64dca40ab2ad20a80d3db30.tar.bz2
stonesense-1cb48474b399549ca64dca40ab2ad20a80d3db30.tar.xz
First pass at merging new building config
Diffstat (limited to 'ConditionalSprite.h')
-rw-r--r--ConditionalSprite.h55
1 files changed, 49 insertions, 6 deletions
diff --git a/ConditionalSprite.h b/ConditionalSprite.h
index 21c4b36..3ebb566 100644
--- a/ConditionalSprite.h
+++ b/ConditionalSprite.h
@@ -2,17 +2,60 @@
#include "BlockCondition.h"
-class ConditionalSprite
+// generic superclass
+class SpriteNode
+{
+ public:
+ SpriteNode(void){};
+ virtual ~SpriteNode(void){};
+
+ // this returns true if the sprite matched, and also adds
+ // sprites to the block as required
+ virtual bool BlockMatches(Block* b)=0;
+ // adds a child if appropriate (vestigial in some cases)
+ virtual void addChild(SpriteNode* child){};
+};
+
+// root nesting structure
+class RootBlock : public SpriteNode
+{
+ vector<SpriteNode*> children;
+
+ public:
+ RootBlock(void);
+ ~RootBlock(void);
+
+ bool BlockMatches(Block* b);
+ void addChild(SpriteNode* child);
+};
+
+// nesting conditional structure
+class SpriteBlock : public ConditionalNode, public SpriteNode
+{
+ BlockCondition* conditions;
+ vector<SpriteNode*> children;
+ SpriteNode* elsenode;
+
+ public:
+ SpriteBlock(void);
+ ~SpriteBlock(void);
+
+ bool BlockMatches(Block* b);
+ bool addCondition(BlockCondition* cond);
+ void addChild(SpriteNode* child);
+ void addElse(SpriteNode* child);
+};
+
+// display element
+class SpriteElement : public SpriteNode
{
private:
public:
- vector<t_SpriteWithOffset> sprites;
- vector<BlockCondition> conditions;
+ t_SpriteWithOffset sprite;
-
- ConditionalSprite(void);
- ~ConditionalSprite(void){}
+ SpriteElement(void);
+ ~SpriteElement(void){};
bool BlockMatches(Block* b);
};