From 2b9d248aecbeb77458694154ca776bad35590d1a Mon Sep 17 00:00:00 2001 From: Akkadius Date: Tue, 28 Jan 2025 01:54:22 -0600 Subject: [PATCH] Speed up lazy loading --- zone/client_process.cpp | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/zone/client_process.cpp b/zone/client_process.cpp index 7d9959c2c..b2428ca51 100644 --- a/zone/client_process.cpp +++ b/zone/client_process.cpp @@ -294,24 +294,30 @@ bool Client::Process() { } } - if (m_lazy_load_bank && m_lazy_load_sent_bank_slots <= EQ::invslot::SHARED_BANK_END) { - const EQ::ItemInstance *inst = nullptr; + int lazy_load_bank_slots = 0; + for (int i = 0; i < 5000; i++) { + if (m_lazy_load_bank && m_lazy_load_sent_bank_slots <= EQ::invslot::SHARED_BANK_END) { + const EQ::ItemInstance *inst = nullptr; - // Jump the gaps - if (m_lazy_load_sent_bank_slots < EQ::invslot::BANK_BEGIN) { - m_lazy_load_sent_bank_slots = EQ::invslot::BANK_BEGIN; - } - else if (m_lazy_load_sent_bank_slots > EQ::invslot::BANK_END && - m_lazy_load_sent_bank_slots < EQ::invslot::SHARED_BANK_BEGIN) { - m_lazy_load_sent_bank_slots = EQ::invslot::SHARED_BANK_BEGIN; - } - else { - m_lazy_load_sent_bank_slots++; - } + // Jump the gaps + if (m_lazy_load_sent_bank_slots < EQ::invslot::BANK_BEGIN) { + m_lazy_load_sent_bank_slots = EQ::invslot::BANK_BEGIN; + } + else if (m_lazy_load_sent_bank_slots > EQ::invslot::BANK_END && + m_lazy_load_sent_bank_slots < EQ::invslot::SHARED_BANK_BEGIN) { + m_lazy_load_sent_bank_slots = EQ::invslot::SHARED_BANK_BEGIN; + } + else { + m_lazy_load_sent_bank_slots++; + } - inst = m_inv[m_lazy_load_sent_bank_slots]; - if (inst) { - SendItemPacket(m_lazy_load_sent_bank_slots, inst, ItemPacketType::ItemPacketTrade); + inst = m_inv[m_lazy_load_sent_bank_slots]; + if (inst) { + SendItemPacket(m_lazy_load_sent_bank_slots, inst, ItemPacketType::ItemPacketTrade); + lazy_load_bank_slots++; + } + } else { + break; } } }