private void ACR_PopulateChatSelect(uint PlayerObject)
{
PlayerState Player = TryGetPlayerState(PlayerObject);
if (Player == null)
return;
Player.CharacterIdsShown.Clear();
Player.ChatSelectLocalPlayersShown = 0;
Player.ChatSelectLocalDMsShown = 0;
Player.ChatSelectRemotePlayersShown = 0;
Player.ChatSelectRemoteDMsShown = 0;
ClearListBox(Player.ObjectId, "ChatSelect", "LocalPlayerList");
ClearListBox(Player.ObjectId, "ChatSelect", "LocalDMList");
ClearListBox(Player.ObjectId, "ChatSelect", "RemotePlayerList");
ClearListBox(Player.ObjectId, "ChatSelect", "RemoteDMList");
int bExpanded = GetLocalInt(Player.ObjectId, "chatselect_expanded");
lock (WorldManager)
{
var OnlineServers = from S in WorldManager.Servers
where S.Online &&
S.Characters.Count > 0
select S;
foreach (GameServer Server in OnlineServers)
{
if (Server.DatabaseId == GetDatabase().ACR_GetServerID() || bExpanded == FALSE)
{
if (Server.DatabaseId == GetDatabase().ACR_GetServerID())
{
foreach (GameCharacter Character in Server.Characters)
{
if (Character.Player.IsDM)
{
AddListBoxRow(Player.ObjectId, "ChatSelect", "LocalDMList", Character.CharacterName, "RosterData=/t \"" + Character.CharacterName + "\"", "", "5=/t \"" + Character.CharacterName + "\" ", "");
Player.CharacterIdsShown.Add(Character.CharacterId);
Player.ChatSelectLocalDMsShown += 1;
}
else
{
AddListBoxRow(Player.ObjectId, "ChatSelect", "LocalPlayerList", Character.CharacterName, "RosterData=/t \"" + Character.CharacterName + "\"", "", "5=/t \"" + Character.CharacterName + "\" ", "");
Player.CharacterIdsShown.Add(Character.CharacterId);
Player.ChatSelectLocalPlayersShown += 1;
}
}
}
else
{
if (Player.Flags.HasFlag(PlayerStateFlags.ChatSelectShowLocalPlayersOnlyWhenCollapsed))
continue;
foreach (GameCharacter Character in Server.Characters)
{
if (Character.Player.IsDM)
{
AddListBoxRow(Player.ObjectId, "ChatSelect", "LocalDMList", Character.CharacterName, "RosterData=#t \"" + Character.CharacterName + "\"", "", "5=#t \"" + Character.CharacterName + "\" ", "");
Player.CharacterIdsShown.Add(Character.CharacterId);
Player.ChatSelectLocalDMsShown += 1;
}
else
{
AddListBoxRow(Player.ObjectId, "ChatSelect", "LocalPlayerList", Character.CharacterName, "RosterData=#t \"" + Character.CharacterName + "\"", "", "5=#t \"" + Character.CharacterName + "\" ", "");
Player.CharacterIdsShown.Add(Character.CharacterId);
Player.ChatSelectLocalPlayersShown += 1;
}
}
}
}
else
{
foreach (GameCharacter Character in Server.Characters)
{
if (Character.Player.IsDM)
{
AddListBoxRow(Player.ObjectId, "ChatSelect", "RemoteDMList", Character.CharacterName, "RosterData=#t \"" + Character.CharacterName + "\"", "", "5=#t \"" + Character.CharacterName + "\" ", "");
Player.CharacterIdsShown.Add(Character.CharacterId);
Player.ChatSelectRemoteDMsShown += 1;
}
else
{
AddListBoxRow(Player.ObjectId, "ChatSelect", "RemotePlayerList", Character.CharacterName, "RosterData=#t \"" + Character.CharacterName + "\"", "", "5=#t \"" + Character.CharacterName + "\" ", "");
Player.CharacterIdsShown.Add(Character.CharacterId);
Player.ChatSelectRemotePlayersShown += 1;
}
}
}
}
}
Player.UpdateChatSelectGUIHeaders();
}