- std::set<std::string> parsedDefinitions;
-
- std::map<std::string, graphics::Animation *> animations;
- std::map<std::string, battle::Hero *> heroes;
- std::map<std::string, battle::Monster *> monsters;
- std::map<std::string, int> numbers;
- std::map<std::string, graphics::Sprite *> sprites;
+ enum Type {
+ BOOLEAN,
+ COMPLEX_ANIMATION,
+ FONT,
+ FRAME,
+ GAUGE,
+ HERO,
+ IMAGE,
+ MONSTER,
+ NUMBER,
+ PARTY_LAYOUT,
+ PROPERTY_LIST_ARRAY,
+ SIMPLE_ANIMATION,
+ SPELL,
+ SPRITE,
+ STRING,
+ TARGETING_MODE,
+ VECTOR,
+ VALUE_ARRAY,
+ };
+ struct ParsedDefinition {
+ ParsedDefinition(const Definition *dfn, Type type, int index)
+ : dfn(dfn), type(type), index(index) { }
+ const Definition *dfn;
+ Type type;
+ int index;
+ };
+ std::map<std::string, ParsedDefinition> parsedDefinitions;
+
+ std::vector<bool> booleans;
+ std::vector<graphics::ComplexAnimation *> complexAnimations;
+ std::vector<graphics::Font *> fonts;
+ std::vector<graphics::Frame *> frames;
+ std::vector<graphics::Gauge *> gauges;
+ std::vector<battle::Hero *> heroes;
+ std::vector<SDL_Surface *> images;
+ std::vector<battle::Monster *> monsters;
+ std::vector<int> numbers;
+ std::vector<battle::PartyLayout *> partyLayouts;
+ std::vector<PropertyList *> propertyLists;
+ std::vector<std::vector<PropertyList *> > propertyListArrays;
+ std::vector<graphics::SimpleAnimation *> simpleAnimations;
+ std::vector<common::Spell *> spells;
+ std::vector<graphics::Sprite *> sprites;
+ std::vector<const char *> strings;
+ std::vector<common::TargetingMode *> targetingModes;
+ std::vector<std::vector<Value *> > valueArrays;
+ std::vector<geometry::Vector<int> > vectors;