From 91d4f90de6ec43faed7c5c2eb8ca2e6e52089dd9 Mon Sep 17 00:00:00 2001 From: goat Date: Wed, 22 Apr 2020 21:57:13 +0200 Subject: [PATCH] fix: use for loop when showing party members TODO: fix IEnumerable support --- Dalamud/Game/ClientState/PartyList.cs | 10 +++------- Dalamud/Interface/DalamudDataWindow.cs | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Dalamud/Game/ClientState/PartyList.cs b/Dalamud/Game/ClientState/PartyList.cs index cf46f5ce4..536af33e6 100644 --- a/Dalamud/Game/ClientState/PartyList.cs +++ b/Dalamud/Game/ClientState/PartyList.cs @@ -80,7 +80,7 @@ namespace Dalamud.Game.ClientState public PartyListEnumerator(PartyList list) { - party = list; + this.party = list; } public bool MoveNext() @@ -102,13 +102,9 @@ namespace Dalamud.Game.ClientState public void Dispose() {} } - public IEnumerator GetEnumerator() { - return new PartyListEnumerator(this); - } + public IEnumerator GetEnumerator() => new PartyListEnumerator(this); - IEnumerator IEnumerable.GetEnumerator() { - return GetEnumerator(); - } + IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); public int Length => !this.isReady ? 0 : Marshal.ReadByte(partyListBegin + 0xF0); diff --git a/Dalamud/Interface/DalamudDataWindow.cs b/Dalamud/Interface/DalamudDataWindow.cs index cc30dc017..cb1607fb8 100644 --- a/Dalamud/Interface/DalamudDataWindow.cs +++ b/Dalamud/Interface/DalamudDataWindow.cs @@ -122,8 +122,18 @@ namespace Dalamud.Interface ImGui.TextUnformatted("Data not ready."); } else { - partyString += $"{this.dalamud.ClientState.PartyList.Count} Members"; - partyString = this.dalamud.ClientState.PartyList.Aggregate(partyString, (current, member) => current + $"{member.CharacterName} - {member.ObjectKind} - {member.Actor.ActorId}"); + partyString += $"{this.dalamud.ClientState.PartyList.Count} Members\n"; + for (var i = 0; i < this.dalamud.ClientState.PartyList.Count; i++) { + var member = this.dalamud.ClientState.PartyList[i]; + if (member == null) { + partyString += + $"[{i}] was null\n"; + continue; + } + + partyString += + $"[{i}] {member.CharacterName} - {member.ObjectKind} - {member.Actor.ActorId}\n"; + } ImGui.TextUnformatted(partyString); }