mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-18 11:21:29 +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();
|
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)
|
EQ::ItemInstance::ItemInstance(SharedDatabase *db, uint32 item_id, int16 charges)
|
||||||
{
|
{
|
||||||
m_item = db->GetItem(item_id);
|
m_item = db->GetItem(item_id);
|
||||||
|
|||||||
@ -85,6 +85,8 @@ namespace EQ
|
|||||||
|
|
||||||
ItemInstance(SharedDatabase *db, uint32 item_id, int16 charges = 0);
|
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(ItemInstTypes use_type);
|
||||||
|
|
||||||
ItemInstance(const ItemInstance& copy);
|
ItemInstance(const ItemInstance& copy);
|
||||||
|
|||||||
@ -1413,7 +1413,7 @@ EQ::ItemInstance* SharedDatabase::CreateItem(
|
|||||||
return inst;
|
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;
|
EQ::ItemInstance* inst = nullptr;
|
||||||
if (item) {
|
if (item) {
|
||||||
// if maxcharges is -1 that means it is an unlimited use 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;
|
charges = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
inst = new EQ::ItemInstance(item, charges);
|
inst = new EQ::ItemInstance(item, item_unique_id, charges);
|
||||||
|
|
||||||
if (!inst) {
|
if (!inst) {
|
||||||
LogError("Error: valid item data returned a null reference for EQ::ItemInstance creation in SharedDatabase::CreateBaseItem()");
|
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 ornamentidfile = 0,
|
||||||
uint32 ornament_hero_model = 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 GetItemsCount(int32& item_count, uint32& max_id);
|
||||||
void LoadItems(void *data, uint32 size, int32 items, uint32 max_item_id);
|
void LoadItems(void *data, uint32 size, int32 items, uint32 max_item_id);
|
||||||
|
|||||||
@ -875,7 +875,7 @@ bool WorldDatabase::GetCharSelInventory(
|
|||||||
continue;
|
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) {
|
if (!inst) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user