1
0

Fixed conflicting enchantments checking

This commit is contained in:
daniel0916 2014-04-16 14:52:09 +02:00
parent a12a9117c2
commit a0725747af
2 changed files with 24 additions and 24 deletions

View File

@ -3530,15 +3530,15 @@ void cClientHandle::AddEnchantmentWeight(cEnchantmentsVector & a_Enchantments, i
void cClientHandle::RemoveEnchantmentFromVector(cEnchantmentsVector & a_Enchantments, int a_EnchantmentID)
void cClientHandle::RemoveEnchantmentFromVector(cEnchantmentsVector * a_Enchantments, int a_EnchantmentID)
{
for (cEnchantmentsVector::iterator it = a_Enchantments.begin(); it != a_Enchantments.end(); ++it)
for (cEnchantmentsVector::iterator it = a_Enchantments->begin(); it != a_Enchantments->end(); ++it)
{
int EnchantmentID = atoi(StringSplit((*it).ToString(), "=")[0].c_str());
if (EnchantmentID == a_EnchantmentID)
{
a_Enchantments.erase(std::remove(a_Enchantments.begin(), a_Enchantments.end(), *it), a_Enchantments.end());
a_Enchantments->erase(std::remove(a_Enchantments->begin(), a_Enchantments->end(), *it), a_Enchantments->end());
break;
}
}
@ -3554,51 +3554,51 @@ void cClientHandle::CheckEnchantmentConflicts(cEnchantmentsVector & a_Enchantmen
if (FirstEnchantmentID == cEnchantments::enchProtection)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBlastProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProjectileProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBlastProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProjectileProtection);
}
else if (FirstEnchantmentID == cEnchantments::enchFireProtection)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBlastProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProjectileProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBlastProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProjectileProtection);
}
else if (FirstEnchantmentID == cEnchantments::enchBlastProtection)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProjectileProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProjectileProtection);
}
else if (FirstEnchantmentID == cEnchantments::enchProjectileProtection)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBlastProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBlastProtection);
}
else if (FirstEnchantmentID == cEnchantments::enchSharpness)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSmite);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBaneOfArthropods);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSmite);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBaneOfArthropods);
}
else if (FirstEnchantmentID == cEnchantments::enchSmite)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSharpness);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBaneOfArthropods);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSharpness);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBaneOfArthropods);
}
else if (FirstEnchantmentID == cEnchantments::enchBaneOfArthropods)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSharpness);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSmite);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSharpness);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSmite);
}
else if (FirstEnchantmentID == cEnchantments::enchSilkTouch)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFortune);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFortune);
}
else if (FirstEnchantmentID == cEnchantments::enchFortune)
{
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSilkTouch);
RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSilkTouch);
}
}

View File

@ -249,7 +249,7 @@ public:
/** Called when the player will enchant a Item */
void HandleEnchantItem(Byte & WindowID, Byte & Enchantment);
void AddEnchantmentWeight(cEnchantmentsVector & a_Enchantments, int a_Weight, cEnchantments a_Enchantment);
void RemoveEnchantmentFromVector(cEnchantmentsVector & a_Enchantments, int a_EnchantmentID);
void RemoveEnchantmentFromVector(cEnchantmentsVector * a_Enchantments, int a_EnchantmentID);
void CheckEnchantmentConflicts(cEnchantmentsVector & a_Enchantments, cEnchantments a_FirstEnchantment);
private: