X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=tools%2Fsetupgen%2Fenum.h;fp=tools%2Fsetupgen%2Fenum.h;h=26723b22382098a12136ebcbdbb029aea3eba23c;hb=3b551a2caabdfebaac592b5fcbbeb6cbfe2fd43f;hp=0000000000000000000000000000000000000000;hpb=8420959665d2a2cfeed3e50dc0d706b9b7570414;p=libs%2Fgame.git diff --git a/tools/setupgen/enum.h b/tools/setupgen/enum.h new file mode 100644 index 0000000..26723b2 --- /dev/null +++ b/tools/setupgen/enum.h @@ -0,0 +1,43 @@ +#ifndef ENUM_H_ +#define ENUM_H_ + +#include +#include +#include +#include +#include + +class Enum +{ +public: + class Loader: public Msp::DataFile::ObjectLoader + { + public: + Loader(Enum &); + + private: + void init_actions() override; + + void value(const Msp::DataFile::Symbol &, int); + void value_auto(const Msp::DataFile::Symbol &); + }; + + struct Value + { + std::string name; + std::optional value; + }; + +private: + std::string name; + std::vector values; + +public: + Enum(const std::string &); + + void define_type(Msp::IO::Base &) const; + void declare_conversions(Msp::IO::Base &) const; + void define_conversions(Msp::IO::Base &) const; +}; + +#endif