ソースを参照

fix assertion

Andrii Danylchenko 2 年 前
コミット
1555c51313
1 ファイル変更14 行追加1 行削除
  1. 14 1
      lib/NetPacksLib.cpp

+ 14 - 1
lib/NetPacksLib.cpp

@@ -1171,9 +1171,22 @@ DLL_LINKAGE void AssembledArtifact::applyGs(CGameState *gs)
 	const CArtifactInstance *transformedArt = al.getArt();
 	assert(transformedArt);
 	bool combineEquipped = !ArtifactUtils::isSlotBackpack(al.slot);
-	assert(vstd::contains(transformedArt->assemblyPossibilities(artSet, combineEquipped), builtArt));
+
+	assert(vstd::contains_if(transformedArt->assemblyPossibilities(artSet, combineEquipped), [=](const CArtifact * art)->bool
+		{
+			return art->id == builtArt->id;
+		}));
+
 	UNUSED(transformedArt);
 
+	if(!vstd::contains_if(transformedArt->assemblyPossibilities(artSet, combineEquipped), [=](const CArtifact * art)->bool
+		{
+			return art->id == builtArt->id;
+		}))
+	{
+		throw std::exception("Bad");
+	}
+
 	auto combinedArt = new CCombinedArtifactInstance(builtArt);
 	gs->map->addNewArtifactInstance(combinedArt);
 	// Retrieve all constituents