1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-15 01:24:45 +02:00

First version that works - banning objects is possible

This commit is contained in:
Tomasz Zieliński
2024-08-21 20:16:41 +02:00
parent 7fe9c473b4
commit 85ee859b6e
9 changed files with 612 additions and 104 deletions

71
lib/rmg/ObjectInfo.cpp Normal file
View File

@ -0,0 +1,71 @@
/*
* 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"
VCMI_LIB_NAMESPACE_BEGIN
ObjectInfo::ObjectInfo():
destroyObject([](CGObjectInstance * obj){}),
maxPerZone(std::numeric_limits<ui32>::max())
{
}
ObjectInfo::ObjectInfo(const ObjectInfo & other)
{
templates = other.templates;
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;
value = other.value;
probability = other.probability;
maxPerZone = other.maxPerZone;
generateObject = other.generateObject;
destroyObject = other.destroyObject;
return *this;
}
void ObjectInfo::setTemplates(MapObjectID type, MapObjectSubID subtype, TerrainId terrainType)
{
auto templHandler = VLC->objtypeh->getHandlerFor(type, subtype);
if(!templHandler)
return;
templates = templHandler->getTemplates(terrainType);
}
/*
bool ObjectInfo::matchesId(const CompoundMapObjectID & id) const
{
for (const auto & templ : templates)
{
if (id.primaryID == templ->id && id.secondaryID == templ->subid)
return true;
}
return false;
}
*/
VCMI_LIB_NAMESPACE_END