diff options
| author | Kris Parker | 2009-11-13 22:26:17 +0000 |
|---|---|---|
| committer | Kris Parker | 2009-11-13 22:26:17 +0000 |
| commit | 1cb48474b399549ca64dca40ab2ad20a80d3db30 (patch) | |
| tree | 74f3a8754eba20def409d7687997eab510d1709c /ConditionalSprite.h | |
| parent | a71d4adc7da44c0d5fa70eaba700afea6bb4f89d (diff) | |
| download | stonesense-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.h | 55 |
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);
};
|
