Skip to content

Commit a7a5dad

Browse files
committed
little cleanup about update logic also fix equipment dont showing on login
1 parent 335c44a commit a7a5dad

File tree

2 files changed

+40
-43
lines changed

2 files changed

+40
-43
lines changed

Intersect.Client.Core/Interface/Game/Character/CharacterWindow.cs

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -363,28 +363,24 @@ private void UpdateEquippedItems(bool updateExtraBuffs = false)
363363

364364
for (var i = 0; i < Options.Instance.Equipment.Slots.Count; i++)
365365
{
366-
if (player.MyEquipment[i] > -1 && player.MyEquipment[i] < Options.Instance.Player.MaxInventory)
366+
var invSlot = player.MyEquipment[i];
367+
if (invSlot < 0 || invSlot >= Options.Instance.Player.MaxInventory)
367368
{
368-
if (player.Inventory[player.MyEquipment[i]].ItemId != Guid.Empty)
369-
{
370-
Items[i]
371-
.Update(
372-
player.Inventory[player.MyEquipment[i]].ItemId,
373-
player.Inventory[player.MyEquipment[i]].ItemProperties
374-
);
375-
if (updateExtraBuffs)
376-
{
377-
UpdateExtraBuffs(player.Inventory[player.MyEquipment[i]].ItemId);
378-
}
379-
}
380-
else
381-
{
382-
Items[i].Update(Guid.Empty, mItemProperties);
383-
}
369+
Items[i].Update(Guid.Empty, mItemProperties);
370+
continue;
384371
}
385-
else
372+
373+
var item = player.Inventory[invSlot];
374+
if (item.ItemId == Guid.Empty)
386375
{
387376
Items[i].Update(Guid.Empty, mItemProperties);
377+
continue;
378+
}
379+
380+
Items[i].Update(item.ItemId, item.ItemProperties);
381+
if (updateExtraBuffs)
382+
{
383+
UpdateExtraBuffs(item.ItemId);
388384
}
389385
}
390386
}

Intersect.Client.Core/Interface/Game/Character/EquipmentItem.cs

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.Diagnostics;
2+
using Intersect.Client.Framework.File_Management;
13
using Intersect.Client.Framework.GenericClasses;
24
using Intersect.Client.Framework.Gwen.Control;
35
using Intersect.Client.Framework.Gwen.Control.EventArguments;
@@ -20,7 +22,7 @@ public partial class EquipmentItem
2022

2123
private ItemProperties mItemProperties = null;
2224

23-
private bool mTexLoaded;
25+
private string? _loadedTexture;
2426

2527
private int mYindex;
2628

@@ -110,32 +112,31 @@ public FloatRect RenderBounds()
110112

111113
public void Update(Guid currentItemId, ItemProperties itemProperties)
112114
{
113-
if (currentItemId != mCurrentItemId || !mTexLoaded)
115+
if (!ItemDescriptor.TryGet(currentItemId, out var item))
114116
{
115-
mCurrentItemId = currentItemId;
116-
mItemProperties = itemProperties;
117-
var item = ItemDescriptor.Get(mCurrentItemId);
118-
if (item != null)
119-
{
120-
var itemTex = Globals.ContentManager.GetTexture(Framework.Content.TextureType.Item, item.Icon);
121-
if (itemTex != null)
122-
{
123-
ContentPanel.Show();
124-
ContentPanel.Texture = itemTex;
125-
ContentPanel.RenderColor = item.Color;
126-
}
127-
else
128-
{
129-
ContentPanel.Hide();
130-
}
131-
}
132-
else
133-
{
134-
ContentPanel.Hide();
135-
}
117+
ContentPanel.Hide();
118+
_loadedTexture = default;
119+
return;
120+
}
136121

137-
mTexLoaded = true;
122+
if (currentItemId == mCurrentItemId && ContentPanel.Texture?.Name == _loadedTexture)
123+
{
124+
return;
138125
}
139-
}
140126

127+
mCurrentItemId = currentItemId;
128+
mItemProperties = itemProperties;
129+
130+
if (GameContentManager.Current.GetTexture(Framework.Content.TextureType.Item, item.Icon) is not { } itemTexture)
131+
{
132+
ContentPanel.Hide();
133+
_loadedTexture = default;
134+
return;
135+
}
136+
137+
ContentPanel.Show();
138+
ContentPanel.Texture = itemTexture;
139+
ContentPanel.RenderColor = item.Color;
140+
_loadedTexture = ContentPanel.Texture?.Name;
141+
}
141142
}

0 commit comments

Comments
 (0)