diff --git a/pkg/data/items.go b/pkg/data/items.go index f5080e9..540070e 100644 --- a/pkg/data/items.go +++ b/pkg/data/items.go @@ -75,16 +75,24 @@ type UnitID int type Item struct { ID int UnitID - Name item.Name - Quality item.Quality - Position Position - Location item.Location - Ethereal bool - IsHovered bool - BaseStats stat.Stats - Stats stat.Stats - Identified bool - IsRuneword bool + Name item.Name + Quality item.Quality + Position Position + Location item.Location + Ethereal bool + IsHovered bool + BaseStats stat.Stats + Stats stat.Stats + Identified bool + IsRuneword bool + IsNamed bool + IsStartItem bool + IsEar bool + IsBroken bool + IsEquipped bool + HasSockets bool + InTradeOrStoreScreen bool + IsInSocket bool } type Drop struct { diff --git a/pkg/data/stat/stats.go b/pkg/data/stat/stats.go index f78c253..7f8b69f 100644 --- a/pkg/data/stat/stats.go +++ b/pkg/data/stat/stats.go @@ -785,15 +785,15 @@ var StatStringMap = map[int]map[int]string{ 19: {0: "+# to Attack Rating"}, // tohit 20: {0: "#% Increased Chance of Blocking"}, // toblock 21: { - 0: "Adds #-# Damage", // mindamage + 0: "#-# Damage", // mindamage 1: "+# to Minimum Damage", // plusmindamage }, 22: { - 0: "maxdamage ????", + 0: "#", // maxdamage 1: "+# to Maximum Damage", // plusmaxdamage }, - 23: {0: "secondarymindamage ????"}, - 24: {0: "secondarymaxdamage ????"}, + 23: {0: "#"}, //minimum dmg for 2hand weapons - secondarymindamage + 24: {0: "#"}, // maximum dmg for 2hand weapons - secondarymaxdamage 25: {0: "damagepercent ????"}, 26: {0: "manarecovery ????"}, 27: {0: "Regenerate Mana #%"}, // manarecoverybonus @@ -840,17 +840,17 @@ var StatStringMap = map[int]map[int]string{ 65: {0: "stamdrainmaxdam ????"}, 66: {0: "stunlength ????"}, 67: {0: "+#% Faster Run/Walk"}, - 68: {0: "+#% Increased Attack Speed"}, + 68: {0: "#"}, // attackrate 69: {0: "otheranimrate ????"}, 70: {0: "Quantity: #"}, 71: {0: "Value: #"}, 72: {0: "Durability: # of #"}, // durability - 73: {0: "Increase Maximum Durability #%"}, // maxdurability + 73: {0: "#"}, // maxdurability 74: {0: "Replenish Life +#"}, // hpregen 75: {0: "Increase Maximum Durability #%"}, //itemmaxdurabilitypercent 76: {0: "Increase Maximum Life #%"}, //itemmaxmanapercent 77: {0: "Increase Maximum Mana #%"}, //itemmaxmanapercent - 78: {0: "itemattackertakesdamage"}, //itemattackertakesdamage + 78: {0: "Attacker Takes Damage of #"}, //itemattackertakesdamage 79: {0: "#% Extra Gold from Monsters"}, //itemgoldbonus 80: {0: "#% Better Chance of Getting Magic Items"}, //itemmagicbonus 81: {0: "Knockback"}, //itemknockback diff --git a/pkg/memory/item.go b/pkg/memory/item.go index 95699ed..4196956 100644 --- a/pkg/memory/item.go +++ b/pkg/memory/item.go @@ -266,13 +266,38 @@ func (gd *GameReader) getItemStats(statsListExPtr uintptr) (stat.Stats, stat.Sta } func setProperties(item *data.Item, flags uint32) { - if 0x00400000&flags != 0 { - item.Ethereal = true - } - if 0x00000010&flags != 0 { - item.Identified = true - } - if 0x04000000&flags != 0 { + if 0x4000000&flags != 0 { item.IsRuneword = true } + if 0x1000000&flags != 0 { + item.IsNamed = true + } + if 0x400000&flags != 0 { + item.Ethereal = true + } + if 0x20000&flags != 0 { + item.IsStartItem = true + } + if 0x10000&flags != 0 { + item.IsEar = true + } + if 0x2000&flags != 0 { + item.InTradeOrStoreScreen = true + } + if 0x800&flags != 0 { + item.HasSockets = true + } + if 0x100&flags != 0 { + item.IsBroken = true + } + if 0x10&flags != 0 { + item.Identified = true + } + // Only jewels and runes, gems don't work + if 0x8&flags != 0 { + item.IsInSocket = true + } + if 0x1&flags != 0 { + item.IsEquipped = true + } }