|
|
@@ -33,22 +33,26 @@ void QuestArtifactPlacer::init()
|
|
|
|
|
|
void QuestArtifactPlacer::addQuestArtZone(std::shared_ptr<Zone> otherZone)
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
questArtZones.push_back(otherZone);
|
|
|
}
|
|
|
|
|
|
void QuestArtifactPlacer::addQuestArtifact(const ArtifactID& id)
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
logGlobal->info("Need to place quest artifact artifact %s", VLC->artifacts()->getById(id)->getNameTranslated());
|
|
|
questArtifactsToPlace.emplace_back(id);
|
|
|
}
|
|
|
|
|
|
void QuestArtifactPlacer::rememberPotentialArtifactToReplace(CGObjectInstance* obj)
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
artifactsToReplace.push_back(obj);
|
|
|
}
|
|
|
|
|
|
std::vector<CGObjectInstance*> QuestArtifactPlacer::getPossibleArtifactsToReplace() const
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
return artifactsToReplace;
|
|
|
}
|
|
|
|
|
|
@@ -109,16 +113,19 @@ void QuestArtifactPlacer::placeQuestArtifacts(CRandomGenerator * rand)
|
|
|
|
|
|
void QuestArtifactPlacer::dropReplacedArtifact(CGObjectInstance* obj)
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
boost::remove(artifactsToReplace, obj);
|
|
|
}
|
|
|
|
|
|
size_t QuestArtifactPlacer::getMaxQuestArtifactCount() const
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
return questArtifacts.size();
|
|
|
}
|
|
|
|
|
|
ArtifactID QuestArtifactPlacer::drawRandomArtifact()
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
if (!questArtifacts.empty())
|
|
|
{
|
|
|
ArtifactID ret = questArtifacts.back();
|
|
|
@@ -134,5 +141,6 @@ ArtifactID QuestArtifactPlacer::drawRandomArtifact()
|
|
|
|
|
|
void QuestArtifactPlacer::addRandomArtifact(ArtifactID artid)
|
|
|
{
|
|
|
+ Lock lock(externalAccessMutex);
|
|
|
questArtifacts.push_back(artid);
|
|
|
}
|