From 3abce62bbaff73802ab28eee17cebcf10a599d43 Mon Sep 17 00:00:00 2001 From: Yunfan Li Date: Mon, 24 Jun 2024 00:21:59 +0800 Subject: [PATCH] [Performance] Look object stack --- src/LootObjectStack.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/LootObjectStack.cpp b/src/LootObjectStack.cpp index 4a047a16..23324da8 100644 --- a/src/LootObjectStack.cpp +++ b/src/LootObjectStack.cpp @@ -249,16 +249,17 @@ bool LootObject::IsLootPossible(Player* bot) bool LootObjectStack::Add(ObjectGuid guid) { + if (availableLoot.size() >= MAX_LOOT_OBJECT_COUNT) { + availableLoot.shrink(time(nullptr) - 30); + } + + if (availableLoot.size() >= MAX_LOOT_OBJECT_COUNT) { + availableLoot.clear(); + } + if (!availableLoot.insert(guid).second) return false; - if (availableLoot.size() < MAX_LOOT_OBJECT_COUNT) - return true; - - std::vector ordered = OrderByDistance(); - for (size_t i = MAX_LOOT_OBJECT_COUNT; i < ordered.size(); i++) - Remove(ordered[i].guid); - return true; }