diff --git a/changelog.txt b/changelog.txt index 9494adfce..8d28ad3de 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,8 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 02/06/2015 == +Uleat: Updated returns for Inventory and ItemInst const iterators. (const == const) + == 02/03/2015 == Trevius: Crashfix for TempName() when numbers are passed at the end of the name. Uleat: Tweaking of item type exclusions to alleviate strobing conditions with light sources diff --git a/common/item.cpp b/common/item.cpp index 82da305f1..4119c7058 100644 --- a/common/item.cpp +++ b/common/item.cpp @@ -1060,7 +1060,7 @@ int Inventory::GetSlotByItemInstCollection(const std::map &col } if (t_inst && !t_inst->IsType(ItemClassContainer)) { - for (auto b_iter = t_inst->_begin(); b_iter != t_inst->_end(); ++b_iter) { + for (auto b_iter = t_inst->_cbegin(); b_iter != t_inst->_cend(); ++b_iter) { if (b_iter->second == inst) { return Inventory::CalcSlotId(iter->first, b_iter->first); } @@ -1095,7 +1095,7 @@ void Inventory::dumpBagContents(ItemInst *inst, iter_inst *it) { return; // Go through bag, if bag - for (itb = inst->_begin(); itb != inst->_end(); ++itb) { + for (itb = inst->_cbegin(); itb != inst->_cend(); ++itb) { ItemInst* baginst = itb->second; if (!baginst || !baginst->GetItem()) continue; @@ -1204,7 +1204,7 @@ int16 Inventory::_HasItem(std::map& bucket, uint32 item_id, ui if (!inst->IsType(ItemClassContainer)) { continue; } - for (auto bag_iter = inst->_begin(); bag_iter != inst->_end(); ++bag_iter) { + for (auto bag_iter = inst->_cbegin(); bag_iter != inst->_cend(); ++bag_iter) { auto bag_inst = bag_iter->second; if (bag_inst == nullptr) { continue; } @@ -1235,7 +1235,7 @@ int16 Inventory::_HasItem(ItemInstQueue& iqueue, uint32 item_id, uint8 quantity) uint8 quantity_found = 0; - for (auto iter = iqueue.begin(); iter != iqueue.end(); ++iter) { + for (auto iter = iqueue.cbegin(); iter != iqueue.cend(); ++iter) { auto inst = *iter; if (inst == nullptr) { continue; } @@ -1252,7 +1252,7 @@ int16 Inventory::_HasItem(ItemInstQueue& iqueue, uint32 item_id, uint8 quantity) if (!inst->IsType(ItemClassContainer)) { continue; } - for (auto bag_iter = inst->_begin(); bag_iter != inst->_end(); ++bag_iter) { + for (auto bag_iter = inst->_cbegin(); bag_iter != inst->_cend(); ++bag_iter) { auto bag_inst = bag_iter->second; if (bag_inst == nullptr) { continue; } @@ -1289,7 +1289,7 @@ int16 Inventory::_HasItemByUse(std::map& bucket, uint8 use, ui if (!inst->IsType(ItemClassContainer)) { continue; } - for (auto bag_iter = inst->_begin(); bag_iter != inst->_end(); ++bag_iter) { + for (auto bag_iter = inst->_cbegin(); bag_iter != inst->_cend(); ++bag_iter) { auto bag_inst = bag_iter->second; if (bag_inst == nullptr) { continue; } @@ -1309,7 +1309,7 @@ int16 Inventory::_HasItemByUse(ItemInstQueue& iqueue, uint8 use, uint8 quantity) { uint8 quantity_found = 0; - for (auto iter = iqueue.begin(); iter != iqueue.end(); ++iter) { + for (auto iter = iqueue.cbegin(); iter != iqueue.cend(); ++iter) { auto inst = *iter; if (inst == nullptr) { continue; } @@ -1321,7 +1321,7 @@ int16 Inventory::_HasItemByUse(ItemInstQueue& iqueue, uint8 use, uint8 quantity) if (!inst->IsType(ItemClassContainer)) { continue; } - for (auto bag_iter = inst->_begin(); bag_iter != inst->_end(); ++bag_iter) { + for (auto bag_iter = inst->_cbegin(); bag_iter != inst->_cend(); ++bag_iter) { auto bag_inst = bag_iter->second; if (bag_inst == nullptr) { continue; } @@ -1355,7 +1355,7 @@ int16 Inventory::_HasItemByLoreGroup(std::map& bucket, uint32 if (!inst->IsType(ItemClassContainer)) { continue; } - for (auto bag_iter = inst->_begin(); bag_iter != inst->_end(); ++bag_iter) { + for (auto bag_iter = inst->_cbegin(); bag_iter != inst->_cend(); ++bag_iter) { auto bag_inst = bag_iter->second; if (bag_inst == nullptr) { continue; } @@ -1378,7 +1378,7 @@ int16 Inventory::_HasItemByLoreGroup(std::map& bucket, uint32 // Internal Method: Checks an inventory queue type bucket for a particular item int16 Inventory::_HasItemByLoreGroup(ItemInstQueue& iqueue, uint32 loregroup) { - for (auto iter = iqueue.begin(); iter != iqueue.end(); ++iter) { + for (auto iter = iqueue.cbegin(); iter != iqueue.cend(); ++iter) { auto inst = *iter; if (inst == nullptr) { continue; } @@ -1395,7 +1395,7 @@ int16 Inventory::_HasItemByLoreGroup(ItemInstQueue& iqueue, uint32 loregroup) if (!inst->IsType(ItemClassContainer)) { continue; } - for (auto bag_iter = inst->_begin(); bag_iter != inst->_end(); ++bag_iter) { + for (auto bag_iter = inst->_cbegin(); bag_iter != inst->_cend(); ++bag_iter) { auto bag_inst = bag_iter->second; if (bag_inst == nullptr) { continue; } diff --git a/common/item.h b/common/item.h index fd30b5ea0..8554d1c55 100644 --- a/common/item.h +++ b/common/item.h @@ -86,8 +86,8 @@ public: // Public Methods ///////////////////////// - inline std::list::const_iterator begin() { return m_list.begin(); } - inline std::list::const_iterator end() { return m_list.end(); } + inline std::list::const_iterator cbegin() { return m_list.cbegin(); } + inline std::list::const_iterator cend() { return m_list.cend(); } inline int size() { return static_cast(m_list.size()); } // TODO: change to size_t inline bool empty() { return m_list.empty(); } @@ -140,8 +140,8 @@ public: ItemInst* GetItem(int16 slot_id) const; ItemInst* GetItem(int16 slot_id, uint8 bagidx) const; - inline std::list::const_iterator cursor_begin() { return m_cursor.begin(); } - inline std::list::const_iterator cursor_end() { return m_cursor.end(); } + inline std::list::const_iterator cursor_cbegin() { return m_cursor.cbegin(); } + inline std::list::const_iterator cursor_cend() { return m_cursor.cend(); } inline int CursorSize() { return m_cursor.size(); } inline bool CursorEmpty() { return m_cursor.empty(); } @@ -425,8 +425,8 @@ protected: ////////////////////////// // Protected Members ////////////////////////// - iter_contents _begin() { return m_contents.begin(); } - iter_contents _end() { return m_contents.end(); } + iter_contents _cbegin() { return m_contents.cbegin(); } + iter_contents _cend() { return m_contents.cend(); } friend class Inventory; diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 331c50435..40dc0e35a 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -1838,9 +1838,9 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app) if (loaditems) { /* Dont load if a length error occurs */ BulkSendInventoryItems(); /* Send stuff on the cursor which isnt sent in bulk */ - for (auto iter = m_inv.cursor_begin(); iter != m_inv.cursor_end(); ++iter) { + for (auto iter = m_inv.cursor_cbegin(); iter != m_inv.cursor_cend(); ++iter) { /* First item cursor is sent in bulk inventory packet */ - if (iter == m_inv.cursor_begin()) + if (iter == m_inv.cursor_cbegin()) continue; const ItemInst *inst = *iter; SendItemPacket(MainCursor, inst, ItemPacketSummonItem); diff --git a/zone/command.cpp b/zone/command.cpp index c34bc1b9d..622f1d973 100644 --- a/zone/command.cpp +++ b/zone/command.cpp @@ -2618,7 +2618,7 @@ void command_peekinv(Client *c, const Seperator *sep) } else { int cursorDepth = 0; - for (auto it = targetClient->GetInv().cursor_begin(); (it != targetClient->GetInv().cursor_end()); ++it, ++cursorDepth) { + for (auto it = targetClient->GetInv().cursor_cbegin(); (it != targetClient->GetInv().cursor_cend()); ++it, ++cursorDepth) { inst_main = *it; item_data = (inst_main == nullptr) ? nullptr : inst_main->GetItem(); linker.SetItemInst(inst_main); diff --git a/zone/corpse.cpp b/zone/corpse.cpp index 0dd4ed1f3..9f91b584b 100644 --- a/zone/corpse.cpp +++ b/zone/corpse.cpp @@ -361,8 +361,8 @@ Corpse::Corpse(Client* client, int32 in_rezexp) : Mob ( database.QueryDatabase(ss.str().c_str()); } - auto start = client->GetInv().cursor_begin(); - auto finish = client->GetInv().cursor_end(); + auto start = client->GetInv().cursor_cbegin(); + auto finish = client->GetInv().cursor_cend(); database.SaveCursor(client->CharacterID(), start, finish); client->CalcBonuses(); diff --git a/zone/inventory.cpp b/zone/inventory.cpp index 1da2fb13d..94138fbe5 100644 --- a/zone/inventory.cpp +++ b/zone/inventory.cpp @@ -619,7 +619,7 @@ void Client::DropItem(int16 slot_id) // Save client inventory change to database if (slot_id == MainCursor) { SendCursorBuffer(); - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(CharacterID(), s, e); } else { database.SaveInventory(CharacterID(), nullptr, slot_id); @@ -772,7 +772,7 @@ void Client::DeleteItemInInventory(int16 slot_id, int8 quantity, bool client_upd const ItemInst* inst = nullptr; if (slot_id == MainCursor) { - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); if(update_db) database.SaveCursor(character_id, s, e); } @@ -826,7 +826,7 @@ bool Client::PushItemOnCursor(const ItemInst& inst, bool client_update) SendItemPacket(MainCursor, &inst, ItemPacketSummonItem); } - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); return database.SaveCursor(CharacterID(), s, e); } @@ -851,7 +851,7 @@ bool Client::PutItemInInventory(int16 slot_id, const ItemInst& inst, bool client } if (slot_id == MainCursor) { - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); return database.SaveCursor(this->CharacterID(), s, e); } else { @@ -870,7 +870,7 @@ void Client::PutLootInInventory(int16 slot_id, const ItemInst &inst, ServerLootI SendLootItemInPacket(&inst, slot_id); if (slot_id == MainCursor) { - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(this->CharacterID(), s, e); } else { @@ -1009,7 +1009,7 @@ void Client::MoveItemCharges(ItemInst &from, int16 to_slot, uint8 type) from.SetCharges(from.GetCharges() - charges_to_move); SendLootItemInPacket(tmp_inst, to_slot); if (to_slot == MainCursor) { - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(this->CharacterID(), s, e); } else { @@ -1567,7 +1567,7 @@ bool Client::SwapItem(MoveItem_Struct* move_in) { { SendCursorBuffer(); } - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(character_id, s, e); } else @@ -1726,7 +1726,7 @@ bool Client::SwapItem(MoveItem_Struct* move_in) { { SendCursorBuffer(); } - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(character_id, s, e); } else { @@ -1734,7 +1734,7 @@ bool Client::SwapItem(MoveItem_Struct* move_in) { } if (dst_slot_id == MainCursor) { - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(character_id, s, e); } else { @@ -2170,7 +2170,7 @@ void Client::RemoveNoRent(bool client_update) } local.clear(); - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(this->CharacterID(), s, e); } } @@ -2298,7 +2298,7 @@ void Client::RemoveDuplicateLore(bool client_update) } local_2.clear(); - auto s = m_inv.cursor_begin(), e = m_inv.cursor_end(); + auto s = m_inv.cursor_cbegin(), e = m_inv.cursor_cend(); database.SaveCursor(this->CharacterID(), s, e); } } @@ -2826,9 +2826,9 @@ bool Client::InterrogateInventory(Client* requester, bool log, bool silent, bool } int limbo = 0; - for (auto cursor_itr = m_inv.cursor_begin(); cursor_itr != m_inv.cursor_end(); ++cursor_itr, ++limbo) { + for (auto cursor_itr = m_inv.cursor_cbegin(); cursor_itr != m_inv.cursor_cend(); ++cursor_itr, ++limbo) { // m_inv.cursor_begin() is referenced as MainCursor in MapPossessions above - if (cursor_itr == m_inv.cursor_begin()) + if (cursor_itr == m_inv.cursor_cbegin()) continue; instmap[8000 + limbo] = *cursor_itr;