1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Dwellings & Banks will register custom names for their objects

This commit is contained in:
Ivan Savenko
2023-01-11 00:49:31 +02:00
parent bc27faea57
commit 7b82387a49
2 changed files with 24 additions and 1 deletions

View File

@@ -16,6 +16,7 @@
#include "../TerrainHandler.h" #include "../TerrainHandler.h"
#include "../mapping/CMap.h" #include "../mapping/CMap.h"
#include "../CHeroHandler.h" #include "../CHeroHandler.h"
#include "../CGeneralTextHandler.h"
#include "../CCreatureHandler.h" #include "../CCreatureHandler.h"
#include "JsonRandom.h" #include "JsonRandom.h"
#include "../CModHandler.h" #include "../CModHandler.h"
@@ -150,8 +151,18 @@ CDwellingInstanceConstructor::CDwellingInstanceConstructor()
} }
bool CDwellingInstanceConstructor::hasNameTextID() const
{
return true;
}
void CDwellingInstanceConstructor::initTypeData(const JsonNode & input) void CDwellingInstanceConstructor::initTypeData(const JsonNode & input)
{ {
if (input.Struct().count("name") == 0)
logMod->warn("Dwelling %s missing name!", getJsonKey());
VLC->generaltexth->registerString(getNameTextID(), input["name"].String());
const JsonVector & levels = input["creatures"].Vector(); const JsonVector & levels = input["creatures"].Vector();
const auto totalLevels = levels.size(); const auto totalLevels = levels.size();
@@ -272,9 +283,18 @@ CBankInstanceConstructor::CBankInstanceConstructor()
} }
bool CBankInstanceConstructor::hasNameTextID() const
{
return true;
}
void CBankInstanceConstructor::initTypeData(const JsonNode & input) void CBankInstanceConstructor::initTypeData(const JsonNode & input)
{ {
//TODO: name = input["name"].String(); if (input.Struct().count("name") == 0)
logMod->warn("Bank %s missing name!", getJsonKey());
VLC->generaltexth->registerString(getNameTextID(), input["name"].String());
levels = input["levels"].Vector(); levels = input["levels"].Vector();
bankResetDuration = static_cast<si32>(input["resetDuration"].Float()); bankResetDuration = static_cast<si32>(input["resetDuration"].Float());
} }

View File

@@ -127,6 +127,7 @@ protected:
void initTypeData(const JsonNode & input) override; void initTypeData(const JsonNode & input) override;
public: public:
bool hasNameTextID() const override;
CDwellingInstanceConstructor(); CDwellingInstanceConstructor();
CGObjectInstance * create(std::shared_ptr<const ObjectTemplate> tmpl = nullptr) const override; CGObjectInstance * create(std::shared_ptr<const ObjectTemplate> tmpl = nullptr) const override;
@@ -218,6 +219,8 @@ public:
CGObjectInstance * create(std::shared_ptr<const ObjectTemplate> tmpl = nullptr) const override; CGObjectInstance * create(std::shared_ptr<const ObjectTemplate> tmpl = nullptr) const override;
void configureObject(CGObjectInstance * object, CRandomGenerator & rng) const override; void configureObject(CGObjectInstance * object, CRandomGenerator & rng) const override;
bool hasNameTextID() const override;
std::unique_ptr<IObjectInfo> getObjectInfo(std::shared_ptr<const ObjectTemplate> tmpl) const override; std::unique_ptr<IObjectInfo> getObjectInfo(std::shared_ptr<const ObjectTemplate> tmpl) const override;
template <typename Handler> void serialize(Handler &h, const int version) template <typename Handler> void serialize(Handler &h, const int version)