Added States for monsters and corpses (#43)
This commit is contained in:
@@ -44,6 +44,7 @@ func (gd *GameReader) GetData() data.Data {
|
||||
Found: corpseUnit.Address != 0,
|
||||
IsHovered: corpseUnit.IsHovered,
|
||||
Position: corpseUnit.Position,
|
||||
States: corpseUnit.States,
|
||||
},
|
||||
Game: data.OnlineGame{
|
||||
LastGameName: gd.LastGameName(),
|
||||
|
||||
@@ -48,6 +48,7 @@ func (gd *GameReader) Monsters(playerPosition data.Position, hover data.HoverDat
|
||||
statCount := gd.Process.ReadUInt(statsListExPtr+0x38, Uint64)
|
||||
|
||||
stats := gd.getMonsterStats(statCount, statPtr)
|
||||
states := gd.GetStates(statsListExPtr)
|
||||
|
||||
// This excludes good NPCs but includes Mercs
|
||||
if !gd.shouldBeIgnored(txtFileNo) || stats[stat.Experience] > 0 {
|
||||
@@ -59,8 +60,9 @@ func (gd *GameReader) Monsters(playerPosition data.Position, hover data.HoverDat
|
||||
X: int(posX),
|
||||
Y: int(posY),
|
||||
},
|
||||
Stats: stats,
|
||||
Type: getMonsterType(flag),
|
||||
Stats: stats,
|
||||
Type: getMonsterType(flag),
|
||||
States: states,
|
||||
}
|
||||
|
||||
if isCorpse == 0 {
|
||||
@@ -146,6 +148,7 @@ func (gd *GameReader) Corpses(playerPosition data.Position, hover data.HoverData
|
||||
statCount := gd.Process.ReadUInt(statsListExPtr+0x38, Uint64)
|
||||
|
||||
stats := gd.getMonsterStats(statCount, statPtr)
|
||||
states := gd.GetStates(statsListExPtr)
|
||||
|
||||
hovered := hover.IsHovered && hover.UnitType == 1 && hover.UnitID == data.UnitID(unitID)
|
||||
|
||||
@@ -158,8 +161,9 @@ func (gd *GameReader) Corpses(playerPosition data.Position, hover data.HoverData
|
||||
X: int(posX),
|
||||
Y: int(posY),
|
||||
},
|
||||
Stats: stats,
|
||||
Type: getMonsterType(flag),
|
||||
Stats: stats,
|
||||
Type: getMonsterType(flag),
|
||||
States: states,
|
||||
}
|
||||
|
||||
corpses = append(corpses, m)
|
||||
|
||||
@@ -45,7 +45,7 @@ func (gd *GameReader) GetRawPlayerUnits() RawPlayerUnits {
|
||||
statsListExPtr := uintptr(gd.Process.ReadUInt(playerUnit+0x88, Uint64))
|
||||
baseStats := gd.getStatsList(statsListExPtr + 0x30)
|
||||
stats := gd.getStatsList(statsListExPtr + 0x88)
|
||||
states := gd.getStates(statsListExPtr)
|
||||
states := gd.GetStates(statsListExPtr)
|
||||
|
||||
rawPlayerUnits = append(rawPlayerUnits, RawPlayerUnit{
|
||||
UnitID: data.UnitID(unitID),
|
||||
@@ -140,8 +140,8 @@ func (gd *GameReader) getSkills(skillListPtr uintptr) map[skill.ID]skill.Points
|
||||
return skills
|
||||
}
|
||||
|
||||
func (gd *GameReader) getStates(statsListExPtr uintptr) []state.State {
|
||||
var states []state.State
|
||||
func (gd *GameReader) GetStates(statsListExPtr uintptr) state.States {
|
||||
var states state.States
|
||||
for i := 0; i < 6; i++ {
|
||||
offset := i * 4
|
||||
stateByte := gd.Process.ReadUInt(statsListExPtr+0xAD0+uintptr(offset), Uint32)
|
||||
|
||||
Reference in New Issue
Block a user