1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-29 23:07:48 +02:00

Advance Json serializer

* added bool, numeric and string support
* added some enum support
* PoC implementation of logical id condition
* Refactoring
This commit is contained in:
AlexVinS
2016-02-14 14:22:46 +03:00
parent 67b03b9658
commit ec760632a6
11 changed files with 517 additions and 248 deletions

View File

@@ -17,9 +17,14 @@ class JsonNode;
class JsonSerializer: public JsonSerializeFormat
{
public:
static const bool saving = true;
JsonSerializer(JsonNode & root_);
void serializeBool(const std::string & fieldName, bool & value) override;
void serializeBoolEnum(const std::string & fieldName, const std::string & trueValue, const std::string & falseValue, bool & value) override;
void serializeLIC(const std::string & fieldName, const TDecoder & decoder, const TEncoder & encoder, const std::vector<bool> & standard, std::vector<bool> & value) override;
void serializeString(const std::string & fieldName, std::string & value) override;
protected:
void serializeFloat(const std::string & fieldName, double & value) override;
void serializeIntEnum(const std::string & fieldName, const std::vector<std::string> & enumMap, const si32 defaultValue, si32 & value) override;
};