mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-15 00:01:28 +00:00
WIP for world item unique id for CharSelect Screen
This commit is contained in:
parent
8c6a99dc18
commit
a81ec11ea3
@ -89,6 +89,29 @@ EQ::ItemInstance::ItemInstance(const ItemData* item, int16 charges)
|
||||
m_SerialNumber = GetNextItemInstSerialNumber();
|
||||
}
|
||||
|
||||
EQ::ItemInstance::ItemInstance(const ItemData *item, const std::string &item_unique_id, int16 charges)
|
||||
{
|
||||
if (item) {
|
||||
m_item = new ItemData(*item);
|
||||
}
|
||||
|
||||
m_charges = charges;
|
||||
|
||||
if (m_item && m_item->IsClassCommon()) {
|
||||
m_color = m_item->Color;
|
||||
}
|
||||
|
||||
if (m_item && IsEvolving()) {
|
||||
SetTimer("evolve", RuleI(EvolvingItems, DelayUponEquipping));
|
||||
}
|
||||
|
||||
m_SerialNumber = GetNextItemInstSerialNumber();
|
||||
|
||||
if (m_item && !item_unique_id.empty()) {
|
||||
SetUniqueID(item_unique_id);
|
||||
}
|
||||
}
|
||||
|
||||
EQ::ItemInstance::ItemInstance(SharedDatabase *db, uint32 item_id, int16 charges)
|
||||
{
|
||||
m_item = db->GetItem(item_id);
|
||||
@ -2019,4 +2042,4 @@ std::string EQ::ItemInstance::GenerateUniqueID()
|
||||
|
||||
LogInventoryDetail("Generated an item serial number {}", unique_hash);
|
||||
return unique_hash;
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,6 +85,8 @@ namespace EQ
|
||||
|
||||
ItemInstance(SharedDatabase *db, uint32 item_id, int16 charges = 0);
|
||||
|
||||
ItemInstance(const ItemData *item, const std::string &item_unique_id, int16 charges = 0);
|
||||
|
||||
ItemInstance(ItemInstTypes use_type);
|
||||
|
||||
ItemInstance(const ItemInstance& copy);
|
||||
|
||||
@ -1413,7 +1413,7 @@ EQ::ItemInstance* SharedDatabase::CreateItem(
|
||||
return inst;
|
||||
}
|
||||
|
||||
EQ::ItemInstance* SharedDatabase::CreateBaseItem(const EQ::ItemData* item, int16 charges) {
|
||||
EQ::ItemInstance* SharedDatabase::CreateBaseItem(const EQ::ItemData* item, int16 charges, const std::string &item_unique_id) {
|
||||
EQ::ItemInstance* inst = nullptr;
|
||||
if (item) {
|
||||
// if maxcharges is -1 that means it is an unlimited use item.
|
||||
@ -1427,7 +1427,7 @@ EQ::ItemInstance* SharedDatabase::CreateBaseItem(const EQ::ItemData* item, int16
|
||||
charges = 1;
|
||||
}
|
||||
|
||||
inst = new EQ::ItemInstance(item, charges);
|
||||
inst = new EQ::ItemInstance(item, item_unique_id, charges);
|
||||
|
||||
if (!inst) {
|
||||
LogError("Error: valid item data returned a null reference for EQ::ItemInstance creation in SharedDatabase::CreateBaseItem()");
|
||||
|
||||
@ -155,7 +155,7 @@ public:
|
||||
uint32 ornamentidfile = 0,
|
||||
uint32 ornament_hero_model = 0
|
||||
);
|
||||
EQ::ItemInstance *CreateBaseItem(const EQ::ItemData *item, int16 charges = 0);
|
||||
EQ::ItemInstance *CreateBaseItem(const EQ::ItemData *item, int16 charges = 0, const std::string &item_unique_id = "");
|
||||
|
||||
void GetItemsCount(int32& item_count, uint32& max_id);
|
||||
void LoadItems(void *data, uint32 size, int32 items, uint32 max_item_id);
|
||||
|
||||
@ -875,7 +875,7 @@ bool WorldDatabase::GetCharSelInventory(
|
||||
continue;
|
||||
}
|
||||
|
||||
EQ::ItemInstance *inst = content_db.CreateBaseItem(item, e.charges);
|
||||
EQ::ItemInstance *inst = content_db.CreateBaseItem(item, e.charges, e.item_unique_id);
|
||||
|
||||
if (!inst) {
|
||||
continue;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user