[7087] Use signed type as expected for item material field. This also fix -1 value output for it.

Also disable Class/Subclass item_template check by dbc data for avoid unexpected log spam (dbc have some wrong values for this fields).
This commit is contained in:
VladimirMangos 2009-01-14 23:24:58 +03:00
parent 1b7b00a1f5
commit c7a5537bac
6 changed files with 16 additions and 13 deletions

View file

@ -418,7 +418,7 @@ void WorldSession::HandleItemQuerySingleOpcode( WorldPacket & recv_data )
data << pProto->PageMaterial; data << pProto->PageMaterial;
data << pProto->StartQuest; data << pProto->StartQuest;
data << pProto->LockID; data << pProto->LockID;
data << pProto->Material; data << int32(pProto->Material);
data << pProto->Sheath; data << pProto->Sheath;
data << pProto->RandomProperty; data << pProto->RandomProperty;
data << pProto->RandomSuffix; data << pProto->RandomSuffix;

View file

@ -535,7 +535,7 @@ struct ItemPrototype
uint32 PageMaterial; uint32 PageMaterial;
uint32 StartQuest; // id from QuestCache.wdb uint32 StartQuest; // id from QuestCache.wdb
uint32 LockID; uint32 LockID;
uint32 Material; // id from Material.dbc int32 Material; // id from Material.dbc
uint32 Sheath; uint32 Sheath;
uint32 RandomProperty; // id from ItemRandomProperties.dbc uint32 RandomProperty; // id from ItemRandomProperties.dbc
uint32 RandomSuffix; // id from ItemRandomSuffix.dbc uint32 RandomSuffix; // id from ItemRandomSuffix.dbc

View file

@ -1598,11 +1598,14 @@ void ObjectMgr::LoadItemPrototypes()
if(dbcitem) if(dbcitem)
{ {
/* disabled: have some strange wrong cases for Class/Subclass values.
for enable also uncomment Class/Sublcas fields in ItemEntry structure and in Itemfmt[]
if(proto->Class != dbcitem->Class || proto->SubClass != dbcitem->SubClass) if(proto->Class != dbcitem->Class || proto->SubClass != dbcitem->SubClass)
{ {
sLog.outErrorDb("Item (Entry: %u) not correct (Class: %u, Sub: %u) pair, must be (Class: %u, Sub: %u) (still using DB value).",i,proto->Class,proto->SubClass,dbcitem->Class,dbcitem->SubClass); sLog.outErrorDb("Item (Entry: %u) not correct (Class: %u, Sub: %u) pair, must be (Class: %u, Sub: %u) (still using DB value).",i,proto->Class,proto->SubClass,dbcitem->Class,dbcitem->SubClass);
// It safe let use Class/Subclass from DB // It safe let use Class/Subclass from DB
} }
*/
if(proto->Unk0 != dbcitem->Unk0) if(proto->Unk0 != dbcitem->Unk0)
{ {
@ -1612,7 +1615,7 @@ void ObjectMgr::LoadItemPrototypes()
if(proto->Material != dbcitem->Material) if(proto->Material != dbcitem->Material)
{ {
sLog.outErrorDb("Item (Entry: %u) not correct %u material, must be %u (still using DB value).",i,proto->Material,dbcitem->Material); sLog.outErrorDb("Item (Entry: %u) not correct %i material, must be %i (still using DB value).",i,proto->Material,dbcitem->Material);
// It safe let use Material from DB // It safe let use Material from DB
} }

View file

@ -808,14 +808,14 @@ struct GtRegenMPPerSptEntry
struct ItemEntry struct ItemEntry
{ {
uint32 ID; uint32 ID; // 0
uint32 Class; //uint32 Class; // 1
uint32 SubClass; //uint32 SubClass; // 2
uint32 Unk0; uint32 Unk0; // 3
uint32 Material; int32 Material; // 4
uint32 DisplayId; uint32 DisplayId; // 5
uint32 InventoryType; uint32 InventoryType; // 6
uint32 Sheath; uint32 Sheath; // 7
}; };
struct ItemDisplayInfoEntry struct ItemDisplayInfoEntry

View file

@ -51,7 +51,7 @@ const char GtOCTRegenHPfmt[]="f";
//const char GtOCTRegenMPfmt[]="f"; //const char GtOCTRegenMPfmt[]="f";
const char GtRegenHPPerSptfmt[]="f"; const char GtRegenHPPerSptfmt[]="f";
const char GtRegenMPPerSptfmt[]="f"; const char GtRegenMPPerSptfmt[]="f";
const char Itemfmt[]="niiiiiii"; const char Itemfmt[]="nxxiiiii";
//const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx"; //const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx";
//const char ItemCondExtCostsEntryfmt[]="xiii"; //const char ItemCondExtCostsEntryfmt[]="xiii";
const char ItemExtendedCostEntryfmt[]="niiiiiiiiiiiiix"; const char ItemExtendedCostEntryfmt[]="niiiiiiiiiiiiix";

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7086" #define REVISION_NR "7087"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__