Originally Posted by
SirPuFFaLoT
Okay, so I know this has been asked before but I'd like to make the request again. Is there a way to put a colored box around the loot text that is on the ground? The direction arrow helps tremendously but it would really speed up my map runs if i could more easily locate the items. When I run solo it isn't too bad but there is more loot in 6 man parties and I am always lagging behind because I have to sift through the piles to locate an item that I know is there somewhere.
Something like this:
Anyways, Thank you for all that you have done. I am still trying to find that donate button.
new file:
Code:
public class ItemsOnGroundLabelElement : Element
{
public Entity ItemOnGround
{
get { return base.ReadObject<Entity>(Address + 0xC); }
}
public Element Label
{
get { return base.ReadObject<Element>(Address + 0x8); }
}
public new IEnumerable<ItemsOnGroundLabelElement> Children
{
get
{
int address = M.ReadInt(Address + 0x9ac);
for (int nextAddress = M.ReadInt(address); nextAddress != address; nextAddress = M.ReadInt(nextAddress))
{
yield return GetObject<ItemsOnGroundLabelElement>(nextAddress);
}
}
}
}
changes in IngameUIElements.cs
Code:
...
public IEnumerable<ItemsOnGroundLabelElement> ItemsOnGroundLabels
{
get
{
var itemsOnGroundLabelRoot = ReadObjectAt<ItemsOnGroundLabelElement>(16 + 0x120);
return itemsOnGroundLabelRoot.Children;
}
}
...
changes in ItemAlerter
Code:
var itemsOnGroundLabels = GameController.Game.IngameState.IngameUi.ItemsOnGroundLabels; //<-- new line
const int vMargin = 2;
foreach (KeyValuePair<EntityWrapper, AlertDrawStyle> kv in currentAlerts)
{
if (!kv.Key.IsValid) continue;
string text = GetItemName(kv);
if( null == text ) continue;
// begin new block
var element = itemsOnGroundLabels.FirstOrDefault(z => z.ItemOnGround.Address == kv.Key.Address);
if (element != null)
{
var rect = element.Label.GetClientRect();
rc.AddFrame(rect, Color.Red, 1);
}
// end new block