浏览代码

Merge pull request #2135 from SoundSSGood/assert-failure-fix

CWindowWithArtifacts assert fix
Ivan Savenko 2 年之前
父节点
当前提交
c21d31289e
共有 2 个文件被更改,包括 2 次插入5 次删除
  1. 1 2
      client/widgets/CWindowWithArtifacts.cpp
  2. 1 3
      lib/NetPacksLib.cpp

+ 1 - 2
client/widgets/CWindowWithArtifacts.cpp

@@ -229,8 +229,7 @@ void CWindowWithArtifacts::artifactMoved(const ArtifactLocation & srcLoc, const
 	// we have a different artifact may look surprising... but it's valid.
 
 	auto pickedArtInst = std::get<const CArtifactInstance*>(curState.value());
-	assert(srcLoc.isHolder(std::get<const CGHeroInstance*>(curState.value())));
-	assert(srcLoc.getArt() == pickedArtInst);
+	assert(!pickedArtInst || destLoc.isHolder(std::get<const CGHeroInstance*>(curState.value())));
 
 	auto artifactMovedBody = [this, withRedraw, &srcLoc, &destLoc, &pickedArtInst](auto artSetWeak) -> void
 	{

+ 1 - 3
lib/NetPacksLib.cpp

@@ -1835,9 +1835,7 @@ void EraseArtifact::applyGs(CGameState *gs)
 void MoveArtifact::applyGs(CGameState * gs)
 {
 	CArtifactInstance * art = src.getArt();
-	if(!ArtifactUtils::isSlotBackpack(dst.slot))
-		assert(!dst.getArt());
-
+	assert(!ArtifactUtils::isSlotEquipment(dst.slot) || !dst.getArt());
 	art->move(src, dst);
 }