Browse Source

crash fixed

SoundSSGood 11 months ago
parent
commit
27b59dd7ee
2 changed files with 37 additions and 37 deletions
  1. 21 21
      client/widgets/CArtifactsOfHeroBase.cpp
  2. 16 16
      client/widgets/CArtifactsOfHeroMarket.cpp

+ 21 - 21
client/widgets/CArtifactsOfHeroBase.cpp

@@ -103,38 +103,38 @@ void CArtifactsOfHeroBase::setShowPopupArtPlacesCallback(const CArtPlace::ClickF
 
 void CArtifactsOfHeroBase::clickPressedArtPlace(CComponentHolder & artPlace, const Point & cursorPosition)
 {
-	auto ownedPlace = getArtPlace(cursorPosition);
-	assert(ownedPlace != nullptr);
-
-	if(ownedPlace->isLocked())
-		return;
+	if(auto ownedPlace = getArtPlace(cursorPosition))
+	{
+		if(ownedPlace->isLocked())
+			return;
 
-	if(clickPressedCallback)
-		clickPressedCallback(*ownedPlace, cursorPosition);
+		if(clickPressedCallback)
+			clickPressedCallback(*ownedPlace, cursorPosition);
+	}
 }
 
 void CArtifactsOfHeroBase::showPopupArtPlace(CComponentHolder & artPlace, const Point & cursorPosition)
 {
-	auto ownedPlace = getArtPlace(cursorPosition);
-	assert(ownedPlace != nullptr);
-
-	if(ownedPlace->isLocked())
-		return;
+	if(auto ownedPlace = getArtPlace(cursorPosition))
+	{
+		if(ownedPlace->isLocked())
+			return;
 
-	if(showPopupCallback)
-		showPopupCallback(*ownedPlace, cursorPosition);
+		if(showPopupCallback)
+			showPopupCallback(*ownedPlace, cursorPosition);
+	}
 }
 
 void CArtifactsOfHeroBase::gestureArtPlace(CComponentHolder & artPlace, const Point & cursorPosition)
 {
-	auto ownedPlace = getArtPlace(cursorPosition);
-	assert(ownedPlace != nullptr);
-
-	if(ownedPlace->isLocked())
-		return;
+	if(auto ownedPlace = getArtPlace(cursorPosition))
+	{
+		if(ownedPlace->isLocked())
+			return;
 
-	if(gestureCallback)
-		gestureCallback(*ownedPlace, cursorPosition);
+		if(gestureCallback)
+			gestureCallback(*ownedPlace, cursorPosition);
+	}
 }
 
 void CArtifactsOfHeroBase::setHero(const CGHeroInstance * hero)

+ 16 - 16
client/widgets/CArtifactsOfHeroMarket.cpp

@@ -24,24 +24,24 @@ CArtifactsOfHeroMarket::CArtifactsOfHeroMarket(const Point & position, const int
 
 void CArtifactsOfHeroMarket::clickPressedArtPlace(CComponentHolder & artPlace, const Point & cursorPosition)
 {
-	auto ownedPlace = getArtPlace(cursorPosition);
-	assert(ownedPlace != nullptr);
-
-	if(ownedPlace->isLocked())
-		return;
-
-	if(const auto art = getArt(ownedPlace->slot))
+	if(auto ownedPlace = getArtPlace(cursorPosition))
 	{
-		if(onSelectArtCallback && art->getType()->isTradable())
-		{
-			unmarkSlots();
-			artPlace.selectSlot(true);
-			onSelectArtCallback(ownedPlace.get());
-		}
-		else
+		if(ownedPlace->isLocked())
+			return;
+
+		if(const auto art = getArt(ownedPlace->slot))
 		{
-			if(onClickNotTradableCallback)
-				onClickNotTradableCallback();
+			if(onSelectArtCallback && art->getType()->isTradable())
+			{
+				unmarkSlots();
+				artPlace.selectSlot(true);
+				onSelectArtCallback(ownedPlace.get());
+			}
+			else
+			{
+				if(onClickNotTradableCallback)
+					onClickNotTradableCallback();
+			}
 		}
 	}
 }