mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-23 21:29:13 +02:00
Show per-type object names in editor
This commit is contained in:
parent
dddb599bf9
commit
8ed5f412e2
@ -57,6 +57,8 @@ CObjectClassesHandler::CObjectClassesHandler()
|
|||||||
SET_HANDLER_CLASS("shrine", ShrineInstanceConstructor);
|
SET_HANDLER_CLASS("shrine", ShrineInstanceConstructor);
|
||||||
SET_HANDLER_CLASS("hillFort", HillFortInstanceConstructor);
|
SET_HANDLER_CLASS("hillFort", HillFortInstanceConstructor);
|
||||||
SET_HANDLER_CLASS("shipyard", ShipyardInstanceConstructor);
|
SET_HANDLER_CLASS("shipyard", ShipyardInstanceConstructor);
|
||||||
|
SET_HANDLER_CLASS("monster", CreatureInstanceConstructor);
|
||||||
|
SET_HANDLER_CLASS("resource", ResourceInstanceConstructor);
|
||||||
|
|
||||||
SET_HANDLER_CLASS("static", CObstacleConstructor);
|
SET_HANDLER_CLASS("static", CObstacleConstructor);
|
||||||
SET_HANDLER_CLASS("", CObstacleConstructor);
|
SET_HANDLER_CLASS("", CObstacleConstructor);
|
||||||
@ -73,7 +75,6 @@ CObjectClassesHandler::CObjectClassesHandler()
|
|||||||
SET_HANDLER("artifact", CGArtifact);
|
SET_HANDLER("artifact", CGArtifact);
|
||||||
SET_HANDLER("borderGate", CGBorderGate);
|
SET_HANDLER("borderGate", CGBorderGate);
|
||||||
SET_HANDLER("borderGuard", CGBorderGuard);
|
SET_HANDLER("borderGuard", CGBorderGuard);
|
||||||
SET_HANDLER("monster", CGCreature);
|
|
||||||
SET_HANDLER("denOfThieves", CGDenOfthieves);
|
SET_HANDLER("denOfThieves", CGDenOfthieves);
|
||||||
SET_HANDLER("event", CGEvent);
|
SET_HANDLER("event", CGEvent);
|
||||||
SET_HANDLER("garrison", CGGarrison);
|
SET_HANDLER("garrison", CGGarrison);
|
||||||
@ -87,7 +88,6 @@ CObjectClassesHandler::CObjectClassesHandler()
|
|||||||
SET_HANDLER("pandora", CGPandoraBox);
|
SET_HANDLER("pandora", CGPandoraBox);
|
||||||
SET_HANDLER("prison", CGHeroInstance);
|
SET_HANDLER("prison", CGHeroInstance);
|
||||||
SET_HANDLER("questGuard", CGQuestGuard);
|
SET_HANDLER("questGuard", CGQuestGuard);
|
||||||
SET_HANDLER("resource", CGResource);
|
|
||||||
SET_HANDLER("scholar", CGScholar);
|
SET_HANDLER("scholar", CGScholar);
|
||||||
SET_HANDLER("seerHut", CGSeerHut);
|
SET_HANDLER("seerHut", CGSeerHut);
|
||||||
SET_HANDLER("sign", CGSignBottle);
|
SET_HANDLER("sign", CGSignBottle);
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "../TerrainHandler.h"
|
#include "../TerrainHandler.h"
|
||||||
#include "../VCMI_Lib.h"
|
#include "../VCMI_Lib.h"
|
||||||
|
|
||||||
|
#include "../mapObjects/CGCreature.h"
|
||||||
#include "../mapObjects/CGHeroInstance.h"
|
#include "../mapObjects/CGHeroInstance.h"
|
||||||
#include "../mapObjects/CGMarket.h"
|
#include "../mapObjects/CGMarket.h"
|
||||||
#include "../mapObjects/CGTownInstance.h"
|
#include "../mapObjects/CGTownInstance.h"
|
||||||
@ -35,6 +36,26 @@ bool CObstacleConstructor::isStaticObject()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CreatureInstanceConstructor::hasNameTextID() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string CreatureInstanceConstructor::getNameTextID() const
|
||||||
|
{
|
||||||
|
return VLC->creatures()->getByIndex(getSubIndex())->getNamePluralTextID();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ResourceInstanceConstructor::hasNameTextID() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string ResourceInstanceConstructor::getNameTextID() const
|
||||||
|
{
|
||||||
|
return TextIdentifier("core", "restypes", getSubIndex()).get();
|
||||||
|
}
|
||||||
|
|
||||||
void CTownInstanceConstructor::initTypeData(const JsonNode & input)
|
void CTownInstanceConstructor::initTypeData(const JsonNode & input)
|
||||||
{
|
{
|
||||||
VLC->modh->identifiers.requestIdentifier("faction", input["faction"], [&](si32 index)
|
VLC->modh->identifiers.requestIdentifier("faction", input["faction"], [&](si32 index)
|
||||||
@ -86,6 +107,16 @@ void CTownInstanceConstructor::randomizeObject(CGTownInstance * object, CRandomG
|
|||||||
object->appearance = templ;
|
object->appearance = templ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CTownInstanceConstructor::hasNameTextID() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string CTownInstanceConstructor::getNameTextID() const
|
||||||
|
{
|
||||||
|
return faction->getNameTextID();
|
||||||
|
}
|
||||||
|
|
||||||
void CHeroInstanceConstructor::initTypeData(const JsonNode & input)
|
void CHeroInstanceConstructor::initTypeData(const JsonNode & input)
|
||||||
{
|
{
|
||||||
VLC->modh->identifiers.requestIdentifier(
|
VLC->modh->identifiers.requestIdentifier(
|
||||||
@ -133,6 +164,16 @@ void CHeroInstanceConstructor::randomizeObject(CGHeroInstance * object, CRandomG
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CHeroInstanceConstructor::hasNameTextID() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string CHeroInstanceConstructor::getNameTextID() const
|
||||||
|
{
|
||||||
|
return heroClass->getNameTextID();
|
||||||
|
}
|
||||||
|
|
||||||
void BoatInstanceConstructor::initTypeData(const JsonNode & input)
|
void BoatInstanceConstructor::initTypeData(const JsonNode & input)
|
||||||
{
|
{
|
||||||
layer = EPathfindingLayer::SAIL;
|
layer = EPathfindingLayer::SAIL;
|
||||||
|
@ -22,6 +22,7 @@ class CGTownInstance;
|
|||||||
class CGHeroInstance;
|
class CGHeroInstance;
|
||||||
class CGMarket;
|
class CGMarket;
|
||||||
class CHeroClass;
|
class CHeroClass;
|
||||||
|
class CGCreature;
|
||||||
class CBank;
|
class CBank;
|
||||||
class CGBoat;
|
class CGBoat;
|
||||||
class CFaction;
|
class CFaction;
|
||||||
@ -33,6 +34,20 @@ public:
|
|||||||
bool isStaticObject() override;
|
bool isStaticObject() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CreatureInstanceConstructor : public CDefaultObjectTypeHandler<CGCreature>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool hasNameTextID() const override;
|
||||||
|
std::string getNameTextID() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ResourceInstanceConstructor : public CDefaultObjectTypeHandler<CGResource>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
bool hasNameTextID() const override;
|
||||||
|
std::string getNameTextID() const override;
|
||||||
|
};
|
||||||
|
|
||||||
class CTownInstanceConstructor : public CDefaultObjectTypeHandler<CGTownInstance>
|
class CTownInstanceConstructor : public CDefaultObjectTypeHandler<CGTownInstance>
|
||||||
{
|
{
|
||||||
JsonNode filtersJson;
|
JsonNode filtersJson;
|
||||||
@ -48,6 +63,9 @@ public:
|
|||||||
void randomizeObject(CGTownInstance * object, CRandomGenerator & rng) const override;
|
void randomizeObject(CGTownInstance * object, CRandomGenerator & rng) const override;
|
||||||
void afterLoadFinalization() override;
|
void afterLoadFinalization() override;
|
||||||
|
|
||||||
|
bool hasNameTextID() const override;
|
||||||
|
std::string getNameTextID() const override;
|
||||||
|
|
||||||
template <typename Handler> void serialize(Handler &h, const int version)
|
template <typename Handler> void serialize(Handler &h, const int version)
|
||||||
{
|
{
|
||||||
h & filtersJson;
|
h & filtersJson;
|
||||||
@ -72,6 +90,9 @@ public:
|
|||||||
void randomizeObject(CGHeroInstance * object, CRandomGenerator & rng) const override;
|
void randomizeObject(CGHeroInstance * object, CRandomGenerator & rng) const override;
|
||||||
void afterLoadFinalization() override;
|
void afterLoadFinalization() override;
|
||||||
|
|
||||||
|
bool hasNameTextID() const override;
|
||||||
|
std::string getNameTextID() const override;
|
||||||
|
|
||||||
template <typename Handler> void serialize(Handler &h, const int version)
|
template <typename Handler> void serialize(Handler &h, const int version)
|
||||||
{
|
{
|
||||||
h & filtersJson;
|
h & filtersJson;
|
||||||
|
@ -107,6 +107,8 @@ void registerTypesMapObjectTypes(Serializer &s)
|
|||||||
s.template registerType<AObjectTypeHandler, ShrineInstanceConstructor>();
|
s.template registerType<AObjectTypeHandler, ShrineInstanceConstructor>();
|
||||||
s.template registerType<AObjectTypeHandler, ShipyardInstanceConstructor>();
|
s.template registerType<AObjectTypeHandler, ShipyardInstanceConstructor>();
|
||||||
s.template registerType<AObjectTypeHandler, HillFortInstanceConstructor>();
|
s.template registerType<AObjectTypeHandler, HillFortInstanceConstructor>();
|
||||||
|
s.template registerType<AObjectTypeHandler, CreatureInstanceConstructor>();
|
||||||
|
s.template registerType<AObjectTypeHandler, ResourceInstanceConstructor>();
|
||||||
|
|
||||||
#define REGISTER_GENERIC_HANDLER(TYPENAME) s.template registerType<AObjectTypeHandler, CDefaultObjectTypeHandler<TYPENAME> >()
|
#define REGISTER_GENERIC_HANDLER(TYPENAME) s.template registerType<AObjectTypeHandler, CDefaultObjectTypeHandler<TYPENAME> >()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user