Commit aced1337 authored by ElderLich's avatar ElderLich

Bug Fix: Spectate in Room Loads Wrong Player Icons (Op uses Me/default)

In room lobby, switching to Spectate incorrectly remaps avatar slots, so opponent icons can load Me.png or stale/default icons instead of Op.png. This also affects DIY face assignment for watch/replay slots.
parent 6ea1f06a
...@@ -193,14 +193,14 @@ namespace MDPro3.Servant ...@@ -193,14 +193,14 @@ namespace MDPro3.Servant
duelFace1 = await Program.items.LoadConcreteItemIconAsync(Config.Get("DuelFace1", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 1); duelFace1 = await Program.items.LoadConcreteItemIconAsync(Config.Get("DuelFace1", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 1);
duelFace0Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("DuelFace0Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 2); duelFace0Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("DuelFace0Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 2);
duelFace1Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("DuelFace1Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 3); duelFace1Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("DuelFace1Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 3);
watchFace0 = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace0", Program.items.faces[0].id.ToString()), Items.ItemType.Face); watchFace0 = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace0", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 0);
watchFace1 = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace1", Program.items.faces[0].id.ToString()), Items.ItemType.Face); watchFace1 = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace1", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 1);
watchFace0Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace0Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face); watchFace0Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace0Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 2);
watchFace1Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace1Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face); watchFace1Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("WatchFace1Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 3);
replayFace0 = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace0", Program.items.faces[0].id.ToString()), Items.ItemType.Face); replayFace0 = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace0", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 0);
replayFace1 = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace1", Program.items.faces[0].id.ToString()), Items.ItemType.Face); replayFace1 = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace1", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 1);
replayFace0Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace0Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face); replayFace0Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace0Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 2);
replayFace1Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace1Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face); replayFace1Tag = await Program.items.LoadConcreteItemIconAsync(Config.Get("ReplayFace1Tag", Program.items.faces[0].id.ToString()), Items.ItemType.Face, 3);
defaultFace0 = await Program.items.LoadConcreteItemIconAsync("1010039", Items.ItemType.Face); defaultFace0 = await Program.items.LoadConcreteItemIconAsync("1010039", Items.ItemType.Face);
defaultFace1 = await Program.items.LoadConcreteItemIconAsync("1010001", Items.ItemType.Face); defaultFace1 = await Program.items.LoadConcreteItemIconAsync("1010001", Items.ItemType.Face);
......
...@@ -311,6 +311,11 @@ namespace MDPro3.UI ...@@ -311,6 +311,11 @@ namespace MDPro3.UI
public static PlayerPosition GetPlayerPosition(int player) public static PlayerPosition GetPlayerPosition(int player)
{ {
player = GetRoomPlayerIndex(player); player = GetRoomPlayerIndex(player);
bool spectatorInRoomLobby =
RoomServant.SelfType == 7
&& Program.instance.room != null
&& Program.instance.room.showing
&& !Program.instance.ocgcore.showing;
PlayerPosition position; PlayerPosition position;
if (player < 4) if (player < 4)
{ {
...@@ -326,9 +331,9 @@ namespace MDPro3.UI ...@@ -326,9 +331,9 @@ namespace MDPro3.UI
else else
{ {
if (player == 0) if (player == 0)
position = PlayerPosition.WatchMe; position = spectatorInRoomLobby ? PlayerPosition.Me : PlayerPosition.WatchMe;
else else
position = PlayerPosition.WatchOp; position = spectatorInRoomLobby ? PlayerPosition.Op : PlayerPosition.WatchOp;
} }
} }
else else
...@@ -350,13 +355,13 @@ namespace MDPro3.UI ...@@ -350,13 +355,13 @@ namespace MDPro3.UI
else else
{ {
if (player == 0) if (player == 0)
position = PlayerPosition.WatchMe; position = spectatorInRoomLobby ? PlayerPosition.Me : PlayerPosition.WatchMe;
else if (player == 1) else if (player == 1)
position = PlayerPosition.WatchMyTag; position = spectatorInRoomLobby ? PlayerPosition.MyTag : PlayerPosition.WatchMyTag;
else if (player == 2) else if (player == 2)
position = PlayerPosition.WatchOp; position = spectatorInRoomLobby ? PlayerPosition.Op : PlayerPosition.WatchOp;
else else
position = PlayerPosition.WatchOpTag; position = spectatorInRoomLobby ? PlayerPosition.OpTag : PlayerPosition.WatchOpTag;
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment