Browse Source

fix boat assert

Laserlicht 1 month ago
parent
commit
60dacab361
2 changed files with 3 additions and 1 deletions
  1. 3 0
      lib/bonuses/CBonusSystemNode.cpp
  2. 0 1
      lib/mapObjects/CGHeroInstance.cpp

+ 3 - 0
lib/bonuses/CBonusSystemNode.cpp

@@ -184,6 +184,7 @@ CBonusSystemNode::~CBonusSystemNode()
 
 void CBonusSystemNode::attachTo(CBonusSystemNode & parent)
 {
+	assert(!vstd::contains(parentsToPropagate, &parent));
 	parentsToPropagate.push_back(&parent);
 
 	attachToSource(parent);
@@ -193,6 +194,7 @@ void CBonusSystemNode::attachTo(CBonusSystemNode & parent)
 		if(!parent.actsAsBonusSourceOnly())
 			newRedDescendant(parent);
 
+		assert(!vstd::contains(parent.children, this));
 		parent.children.push_back(this);
 	}
 
@@ -201,6 +203,7 @@ void CBonusSystemNode::attachTo(CBonusSystemNode & parent)
 
 void CBonusSystemNode::attachToSource(const CBonusSystemNode & parent)
 {
+	assert(!vstd::contains(parentsToInherit, &parent));
 	parentsToInherit.push_back(&parent);
 
 	++globalCounter;

+ 0 - 1
lib/mapObjects/CGHeroInstance.cpp

@@ -1319,7 +1319,6 @@ void CGHeroInstance::setBoat(CGBoat* newBoat)
 	if (newBoat)
 	{
 		boardedBoat = newBoat->id;
-		attachTo(*newBoat);
 		newBoat->setBoardedHero(this);
 	}
 	else if (boardedBoat.hasValue())