Browse Source

Fixed CID 1197353

AlexVinS 9 years ago
parent
commit
2a62ca9522
3 changed files with 3 additions and 14 deletions
  1. 0 11
      lib/CArtHandler.cpp
  2. 0 1
      lib/CArtHandler.h
  3. 3 2
      server/CGameHandler.cpp

+ 0 - 11
lib/CArtHandler.cpp

@@ -1340,17 +1340,6 @@ bool CArtifactSet::isPositionFree(ArtifactPosition pos, bool onlyLockCheck /*= f
 	return true; //no slot means not used
 }
 
-si32 CArtifactSet::getArtTypeId(ArtifactPosition pos) const
-{
-	const CArtifactInstance * const a = getArt(pos);
-	if(!a)
-	{
-		logGlobal->warnStream() << (dynamic_cast<const CGHeroInstance*>(this))->name << " has no artifact at " << pos << " (getArtTypeId)";
-		return -1;
-	}
-	return a->artType->id;
-}
-
 ArtSlotInfo & CArtifactSet::retreiveNewArtSlot(ArtifactPosition slot)
 {
 	assert(!vstd::contains(artifactsWorn, slot));

+ 0 - 1
lib/CArtHandler.h

@@ -320,7 +320,6 @@ public:
 	/// Checks if hero possess artifact of given id (either in backack or worn)
 	bool hasArt(ui32 aid, bool onlyWorn = false, bool searchBackpackAssemblies = false) const;
 	bool isPositionFree(ArtifactPosition pos, bool onlyLockCheck = false) const;
-	si32 getArtTypeId(ArtifactPosition pos) const;
 
 	virtual ArtBearer::ArtBearer bearerType() const = 0;
 	virtual ~CArtifactSet() = default;

+ 3 - 2
server/CGameHandler.cpp

@@ -5284,9 +5284,10 @@ bool CGameHandler::sacrificeArtifact(const IMarket * m, const CGHeroInstance * h
 	COMPLAIN_RET_FALSE_IF(!a,"Cannot find artifact to sacrifice!");
 
 	int dmp, expToGive;
-	auto typId = hero->getArtTypeId(slot);
+	const CArtifactInstance * art = hero->getArt(slot);
+	COMPLAIN_RET_FALSE_IF((!art), "No artifact at position to sacrifice!");
 
-	COMPLAIN_RET_FALSE_IF(typId<0, "No artifact at position!");
+	si32 typId = art->artType->id;
 
 	m->getOffer(typId, 0, dmp, expToGive, EMarketMode::ARTIFACT_EXP);