1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-21 21:17:49 +02:00
This commit is contained in:
nordsoft 2023-10-09 04:26:08 +02:00
parent 6a7b23c007
commit b7568a160c
3 changed files with 28 additions and 3 deletions

View File

@ -19,6 +19,8 @@
#include <vcmi/FactionService.h>
#include <vcmi/HeroType.h>
#include <vcmi/HeroTypeService.h>
#include <vcmi/HeroClass.h>
#include <vcmi/HeroClassService.h>
#include <vcmi/spells/Spell.h>
#include <vcmi/spells/Service.h>
@ -103,6 +105,25 @@ namespace GameConstants
#endif
}
si32 HeroClassID::decode(const std::string & identifier)
{
auto rawId = VLC->identifiers()->getIdentifier(ModScope::scopeMap(), "heroClass", identifier);
if(rawId)
return rawId.value();
else
return -1;
}
std::string HeroClassID::encode(const si32 index)
{
return VLC->heroClasses()->getByIndex(index)->getJsonKey();
}
std::string HeroClassID::entityType()
{
return "heroClass";
}
si32 HeroTypeID::decode(const std::string & identifier)
{
auto rawId = VLC->identifiers()->getIdentifier(ModScope::scopeMap(), "hero", identifier);

View File

@ -223,6 +223,10 @@ class HeroClassID : public Identifier<HeroClassID>
{
public:
using Identifier<HeroClassID>::Identifier;
///json serialization helpers
DLL_LINKAGE static si32 decode(const std::string & identifier);
DLL_LINKAGE static std::string encode(const si32 index);
static std::string entityType();
};
class HeroTypeID : public Identifier<HeroTypeID>

View File

@ -154,9 +154,9 @@ void Rewardable::Limiter::serializeJson(JsonSerializeFormat & handler)
handler.serializeInt("manaPercentage", manaPercentage);
handler.serializeInt("heroExperience", heroExperience);
handler.serializeInt("heroLevel", heroLevel);
handler.serializeIdArray("hero", heroes);
handler.serializeIdArray("heroClass", heroClasses);
handler.serializeIdArray("color", players);
handler.serializeIdArray("heroes", heroes);
handler.serializeIdArray("heroClasses", heroClasses);
handler.serializeIdArray("colors", players);
handler.serializeInt("manaPoints", manaPoints);
handler.serializeIdArray("artifacts", artifacts);
handler.enterArray("creatures").serializeStruct(creatures);