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()); int EnchantmentID = atoi(StringSplit((*it).ToString(), "=")[0].c_str());
if (EnchantmentID == a_EnchantmentID) 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; break;
} }
} }
@ -3554,51 +3554,51 @@ void cClientHandle::CheckEnchantmentConflicts(cEnchantmentsVector & a_Enchantmen
if (FirstEnchantmentID == cEnchantments::enchProtection) if (FirstEnchantmentID == cEnchantments::enchProtection)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFireProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBlastProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBlastProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProjectileProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProjectileProtection);
} }
else if (FirstEnchantmentID == cEnchantments::enchFireProtection) else if (FirstEnchantmentID == cEnchantments::enchFireProtection)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBlastProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBlastProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProjectileProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProjectileProtection);
} }
else if (FirstEnchantmentID == cEnchantments::enchBlastProtection) else if (FirstEnchantmentID == cEnchantments::enchBlastProtection)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFireProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProjectileProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProjectileProtection);
} }
else if (FirstEnchantmentID == cEnchantments::enchProjectileProtection) else if (FirstEnchantmentID == cEnchantments::enchProjectileProtection)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFireProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFireProtection);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBlastProtection); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBlastProtection);
} }
else if (FirstEnchantmentID == cEnchantments::enchSharpness) else if (FirstEnchantmentID == cEnchantments::enchSharpness)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSmite); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSmite);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBaneOfArthropods); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBaneOfArthropods);
} }
else if (FirstEnchantmentID == cEnchantments::enchSmite) else if (FirstEnchantmentID == cEnchantments::enchSmite)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSharpness); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSharpness);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchBaneOfArthropods); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchBaneOfArthropods);
} }
else if (FirstEnchantmentID == cEnchantments::enchBaneOfArthropods) else if (FirstEnchantmentID == cEnchantments::enchBaneOfArthropods)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSharpness); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSharpness);
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchSmite); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchSmite);
} }
else if (FirstEnchantmentID == cEnchantments::enchSilkTouch) else if (FirstEnchantmentID == cEnchantments::enchSilkTouch)
{ {
RemoveEnchantmentFromVector(a_Enchantments, cEnchantments::enchFortune); RemoveEnchantmentFromVector(&a_Enchantments, cEnchantments::enchFortune);
} }
else if (FirstEnchantmentID == 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 */ /** Called when the player will enchant a Item */
void HandleEnchantItem(Byte & WindowID, Byte & Enchantment); void HandleEnchantItem(Byte & WindowID, Byte & Enchantment);
void AddEnchantmentWeight(cEnchantmentsVector & a_Enchantments, int a_Weight, cEnchantments a_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); void CheckEnchantmentConflicts(cEnchantmentsVector & a_Enchantments, cEnchantments a_FirstEnchantment);
private: private: