12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*
- * ObjectInfo.cpp, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
- #include "StdInc.h"
- #include "ObjectInfo.h"
- #include "../VCMI_Lib.h"
- #include "../mapObjectConstructors/CObjectClassesHandler.h"
- #include "../mapObjectConstructors/AObjectTypeHandler.h"
- #include "../serializer/JsonSerializeFormat.h"
- VCMI_LIB_NAMESPACE_BEGIN
- ObjectInfo::ObjectInfo(si32 ID, si32 subID):
- primaryID(ID),
- secondaryID(subID),
- destroyObject([](CGObjectInstance * obj){}),
- maxPerZone(std::numeric_limits<ui32>::max())
- {
- }
- ObjectInfo::ObjectInfo(CompoundMapObjectID id):
- ObjectInfo(id.primaryID, id.secondaryID)
- {
- }
- ObjectInfo::ObjectInfo(const ObjectInfo & other)
- {
- templates = other.templates;
- primaryID = other.primaryID;
- secondaryID = other.secondaryID;
- value = other.value;
- probability = other.probability;
- maxPerZone = other.maxPerZone;
- generateObject = other.generateObject;
- destroyObject = other.destroyObject;
- }
- ObjectInfo & ObjectInfo::operator=(const ObjectInfo & other)
- {
- if (this == &other)
- return *this;
- templates = other.templates;
- primaryID = other.primaryID;
- secondaryID = other.secondaryID;
- value = other.value;
- probability = other.probability;
- maxPerZone = other.maxPerZone;
- generateObject = other.generateObject;
- destroyObject = other.destroyObject;
- return *this;
- }
- void ObjectInfo::setAllTemplates(MapObjectID type, MapObjectSubID subtype)
- {
- auto templHandler = VLC->objtypeh->getHandlerFor(type, subtype);
- if(!templHandler)
- return;
-
- templates = templHandler->getTemplates();
- }
- void ObjectInfo::setTemplates(MapObjectID type, MapObjectSubID subtype, TerrainId terrainType)
- {
- auto templHandler = VLC->objtypeh->getHandlerFor(type, subtype);
- if(!templHandler)
- return;
-
- templates = templHandler->getTemplates(terrainType);
- }
- CompoundMapObjectID ObjectInfo::getCompoundID() const
- {
- return CompoundMapObjectID(primaryID, secondaryID);
- }
- VCMI_LIB_NAMESPACE_END
|