From 60dacab361ad7fa07fbfc390c83fd5a55a61d47d Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Sun, 2 Nov 2025 21:26:49 +0100 Subject: [PATCH] fix boat assert --- lib/bonuses/CBonusSystemNode.cpp | 3 +++ lib/mapObjects/CGHeroInstance.cpp | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/bonuses/CBonusSystemNode.cpp b/lib/bonuses/CBonusSystemNode.cpp index d13174d4d..1df3a67c0 100644 --- a/lib/bonuses/CBonusSystemNode.cpp +++ b/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; diff --git a/lib/mapObjects/CGHeroInstance.cpp b/lib/mapObjects/CGHeroInstance.cpp index cfb0ec938..11c3b57f4 100644 --- a/lib/mapObjects/CGHeroInstance.cpp +++ b/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())