Fixed speech bubbles, server sends the ID of a speaking character instead of the name
This commit is contained in:
@@ -1688,11 +1688,19 @@ namespace Barotrauma
|
|||||||
Vector2 closestItemPos = closestItem != null ? closestItem.DrawPosition : Vector2.Zero;
|
Vector2 closestItemPos = closestItem != null ? closestItem.DrawPosition : Vector2.Zero;
|
||||||
closestItemPos.Y = -closestItemPos.Y;
|
closestItemPos.Y = -closestItemPos.Y;
|
||||||
GUI.DrawLine(spriteBatch, closestItemPos - new Vector2(0, 5), closestItemPos + new Vector2(0, 5), Color.Lime, 0, 10);
|
GUI.DrawLine(spriteBatch, closestItemPos - new Vector2(0, 5), closestItemPos + new Vector2(0, 5), Color.Lime, 0, 10);
|
||||||
|
|
||||||
|
Vector2 pos = DrawPosition;
|
||||||
|
pos.Y = -pos.Y;
|
||||||
|
|
||||||
|
if (speechBubbleTimer > 0.0f)
|
||||||
|
{
|
||||||
|
GUI.SpeechBubbleIcon.Draw(spriteBatch, pos - Vector2.UnitY * 100.0f,
|
||||||
|
speechBubbleColor * Math.Min(speechBubbleTimer, 1.0f), 0.0f,
|
||||||
|
Math.Min((float)speechBubbleTimer, 1.0f));
|
||||||
|
}
|
||||||
|
|
||||||
if (this == controlled) return;
|
if (this == controlled) return;
|
||||||
|
|
||||||
Vector2 pos = DrawPosition;
|
|
||||||
pos.Y = -pos.Y;
|
|
||||||
|
|
||||||
if (info != null)
|
if (info != null)
|
||||||
{
|
{
|
||||||
@@ -1720,13 +1728,6 @@ namespace Barotrauma
|
|||||||
|
|
||||||
GUI.DrawProgressBar(spriteBatch, healthBarPos, new Vector2(100.0f, 15.0f), health / maxHealth, Color.Lerp(Color.Red, Color.Green, health / maxHealth) * 0.8f);
|
GUI.DrawProgressBar(spriteBatch, healthBarPos, new Vector2(100.0f, 15.0f), health / maxHealth, Color.Lerp(Color.Red, Color.Green, health / maxHealth) * 0.8f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (speechBubbleTimer > 0.0f)
|
|
||||||
{
|
|
||||||
GUI.SpeechBubbleIcon.Draw(spriteBatch, pos - Vector2.UnitY * 100.0f,
|
|
||||||
speechBubbleColor * Math.Min(speechBubbleTimer, 1.0f), 0.0f,
|
|
||||||
Math.Min((float)speechBubbleTimer, 1.0f));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -146,19 +146,44 @@ namespace Barotrauma.Networking
|
|||||||
msg.Write((byte)ServerNetObject.CHAT_MESSAGE);
|
msg.Write((byte)ServerNetObject.CHAT_MESSAGE);
|
||||||
msg.Write(NetStateID);
|
msg.Write(NetStateID);
|
||||||
msg.Write((byte)Type);
|
msg.Write((byte)Type);
|
||||||
msg.Write(SenderName);
|
|
||||||
msg.Write(Text);
|
msg.Write(Text);
|
||||||
|
|
||||||
|
msg.Write(Sender != null);
|
||||||
|
if (Sender != null)
|
||||||
|
{
|
||||||
|
msg.Write(Sender.ID);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
msg.Write(SenderName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static public void ClientRead(NetIncomingMessage msg)
|
static public void ClientRead(NetIncomingMessage msg)
|
||||||
{
|
{
|
||||||
UInt32 ID = msg.ReadUInt32();
|
UInt32 ID = msg.ReadUInt32();
|
||||||
ChatMessageType type = (ChatMessageType)msg.ReadByte();
|
ChatMessageType type = (ChatMessageType)msg.ReadByte();
|
||||||
string senderName = msg.ReadString();
|
|
||||||
string txt = msg.ReadString();
|
string txt = msg.ReadString();
|
||||||
|
|
||||||
|
string senderName = "";
|
||||||
|
Character senderCharacter = null;
|
||||||
|
bool hasSenderCharacter = msg.ReadBoolean();
|
||||||
|
if (hasSenderCharacter)
|
||||||
|
{
|
||||||
|
senderCharacter = Entity.FindEntityByID(msg.ReadUInt16()) as Character;
|
||||||
|
if (senderCharacter != null)
|
||||||
|
{
|
||||||
|
senderName = senderCharacter.Name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
senderName = msg.ReadString();
|
||||||
|
}
|
||||||
|
|
||||||
if (ID > LastID)
|
if (ID > LastID)
|
||||||
{
|
{
|
||||||
GameMain.Client.AddChatMessage(txt, type, senderName);
|
GameMain.Client.AddChatMessage(txt, type, senderName, senderCharacter);
|
||||||
LastID = ID;
|
LastID = ID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1337,7 +1337,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(myReceivedMessage))
|
if (!string.IsNullOrWhiteSpace(myReceivedMessage))
|
||||||
{
|
{
|
||||||
AddChatMessage(myReceivedMessage, (ChatMessageType)type, senderName);
|
AddChatMessage(myReceivedMessage, (ChatMessageType)type, senderName, senderCharacter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
if (message.Sender != null)
|
if (message.Sender != null)
|
||||||
{
|
{
|
||||||
message.Sender.ShowSpeechBubble(2.0f, ChatMessage.MessageColor[(int)ChatMessageType.Default]);
|
message.Sender.ShowSpeechBubble(2.0f, ChatMessage.MessageColor[(int)message.Type]);
|
||||||
}
|
}
|
||||||
|
|
||||||
GameMain.NetLobbyScreen.NewChatMessage(message);
|
GameMain.NetLobbyScreen.NewChatMessage(message);
|
||||||
|
|||||||
Reference in New Issue
Block a user