|
@@ -285,10 +285,9 @@ void CObjectClassesHandler::loadObject(std::string scope, std::string name, cons
|
|
|
VLC->identifiersHandler->registerObject(scope, "object", name, object->id);
|
|
|
}
|
|
|
|
|
|
-void CObjectClassesHandler::loadSubObject(const std::string & identifier, JsonNode config, si32 ID, si32 subID)
|
|
|
+void CObjectClassesHandler::loadSubObject(const std::string & identifier, JsonNode config, MapObjectID ID, MapObjectSubID subID)
|
|
|
{
|
|
|
config.setType(JsonNode::JsonType::DATA_STRUCT); // ensure that input is not NULL
|
|
|
- assert(ID < objects.size());
|
|
|
assert(objects[ID]);
|
|
|
|
|
|
if ( subID >= objects[ID]->objects.size())
|
|
@@ -298,9 +297,8 @@ void CObjectClassesHandler::loadSubObject(const std::string & identifier, JsonNo
|
|
|
loadSubObject(config.meta, identifier, config, objects[ID], subID);
|
|
|
}
|
|
|
|
|
|
-void CObjectClassesHandler::removeSubObject(si32 ID, si32 subID)
|
|
|
+void CObjectClassesHandler::removeSubObject(MapObjectID ID, MapObjectSubID subID)
|
|
|
{
|
|
|
- assert(ID < objects.size());
|
|
|
assert(objects[ID]);
|
|
|
assert(subID < objects[ID]->objects.size());
|
|
|
objects[ID]->objects[subID] = nullptr;
|
|
@@ -311,7 +309,7 @@ std::vector<bool> CObjectClassesHandler::getDefaultAllowed() const
|
|
|
return std::vector<bool>(); //TODO?
|
|
|
}
|
|
|
|
|
|
-TObjectTypeHandler CObjectClassesHandler::getHandlerFor(si32 type, si32 subtype) const
|
|
|
+TObjectTypeHandler CObjectClassesHandler::getHandlerFor(MapObjectID type, MapObjectSubID subtype) const
|
|
|
{
|
|
|
try
|
|
|
{
|
|
@@ -352,9 +350,9 @@ TObjectTypeHandler CObjectClassesHandler::getHandlerFor(CompoundMapObjectID comp
|
|
|
return getHandlerFor(compoundIdentifier.primaryID, compoundIdentifier.secondaryID);
|
|
|
}
|
|
|
|
|
|
-std::set<si32> CObjectClassesHandler::knownObjects() const
|
|
|
+std::set<MapObjectID> CObjectClassesHandler::knownObjects() const
|
|
|
{
|
|
|
- std::set<si32> ret;
|
|
|
+ std::set<MapObjectID> ret;
|
|
|
|
|
|
for(auto * entry : objects)
|
|
|
if (entry)
|
|
@@ -363,9 +361,9 @@ std::set<si32> CObjectClassesHandler::knownObjects() const
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-std::set<si32> CObjectClassesHandler::knownSubObjects(si32 primaryID) const
|
|
|
+std::set<MapObjectSubID> CObjectClassesHandler::knownSubObjects(MapObjectID primaryID) const
|
|
|
{
|
|
|
- std::set<si32> ret;
|
|
|
+ std::set<MapObjectSubID> ret;
|
|
|
|
|
|
if (!objects.at(primaryID))
|
|
|
{
|
|
@@ -461,7 +459,7 @@ void CObjectClassesHandler::generateExtraMonolithsForRMG()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-std::string CObjectClassesHandler::getObjectName(si32 type, si32 subtype) const
|
|
|
+std::string CObjectClassesHandler::getObjectName(MapObjectID type, MapObjectSubID subtype) const
|
|
|
{
|
|
|
const auto handler = getHandlerFor(type, subtype);
|
|
|
if (handler && handler->hasNameTextID())
|
|
@@ -470,7 +468,7 @@ std::string CObjectClassesHandler::getObjectName(si32 type, si32 subtype) const
|
|
|
return objects[type]->getNameTranslated();
|
|
|
}
|
|
|
|
|
|
-SObjectSounds CObjectClassesHandler::getObjectSounds(si32 type, si32 subtype) const
|
|
|
+SObjectSounds CObjectClassesHandler::getObjectSounds(MapObjectID type, MapObjectSubID subtype) const
|
|
|
{
|
|
|
// TODO: these objects may have subID's that does not have associated handler:
|
|
|
// Prison: uses hero type as subID
|
|
@@ -479,19 +477,18 @@ SObjectSounds CObjectClassesHandler::getObjectSounds(si32 type, si32 subtype) co
|
|
|
if(type == Obj::PRISON || type == Obj::HERO || type == Obj::SPELL_SCROLL)
|
|
|
subtype = 0;
|
|
|
|
|
|
- assert(type < objects.size());
|
|
|
assert(objects[type]);
|
|
|
assert(subtype < objects[type]->objects.size());
|
|
|
|
|
|
return getHandlerFor(type, subtype)->getSounds();
|
|
|
}
|
|
|
|
|
|
-std::string CObjectClassesHandler::getObjectHandlerName(si32 type) const
|
|
|
+std::string CObjectClassesHandler::getObjectHandlerName(MapObjectID type) const
|
|
|
{
|
|
|
return objects.at(type)->handlerName;
|
|
|
}
|
|
|
|
|
|
-std::string CObjectClassesHandler::getJsonKey(si32 type) const
|
|
|
+std::string CObjectClassesHandler::getJsonKey(MapObjectID type) const
|
|
|
{
|
|
|
return objects.at(type)->getJsonKey();
|
|
|
}
|