diff options
Diffstat (limited to 'src/game/ItemEnchantmentMgr.cpp')
-rw-r--r-- | src/game/ItemEnchantmentMgr.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/game/ItemEnchantmentMgr.cpp b/src/game/ItemEnchantmentMgr.cpp index f86ecf1ba67..d452f9f6429 100644 --- a/src/game/ItemEnchantmentMgr.cpp +++ b/src/game/ItemEnchantmentMgr.cpp @@ -86,11 +86,22 @@ void LoadRandomEnchantmentsTable() } } -uint32 GetItemEnchantMod(uint32 entry) +uint32 GetItemEnchantMod(int32 entry) { - if (!entry) return 0; + if (!entry) + return 0; + + EnchantmentStore::const_iterator tab; - EnchantmentStore::const_iterator tab = RandomItemEnch.find(entry); + if (entry == -1) + { + tab = RandomItemEnch.begin(); + entry = urand(1, RandomItemEnch.size()) - 1; + for (uint32 i = 0; i < entry; ++i) + ++tab; + } + else + tab = RandomItemEnch.find(entry); if (tab == RandomItemEnch.end()) { |