*Fix a crash due to an invalidated iterator. Closes #420

--HG--
branch : trunk
This commit is contained in:
maximius
2009-11-23 13:57:42 -08:00
parent 75a500218d
commit 11f574b12e

View File

@@ -882,7 +882,7 @@ void LootTemplate::LootGroup::Process(Loot& loot, uint16 lootMode) const
itemSource = 1;
float Roll = rand_chance();
// check each explicitly chanced entry in the template and modify its chance based on quality
for (itr = ExplicitPossibleDrops.begin(); itr != ExplicitPossibleDrops.end(); ++itr)
for (itr = ExplicitPossibleDrops.begin(); itr != ExplicitPossibleDrops.end(); ExplicitPossibleDrops.erase(itr))
{
if (itr->chance >= 100.0f)
{
@@ -896,8 +896,6 @@ void LootTemplate::LootGroup::Process(Loot& loot, uint16 lootMode) const
item = &*itr;
break;
}
// this item failed it's roll, so don't roll for it again
ExplicitPossibleDrops.erase(itr);
}
}
if (item == NULL && !EqualPossibleDrops.empty()) // If nothing selected yet - an item is taken from equal-chanced part