1
0
forked from mirrors/0ad

Session chat cleanup

Remove g_PlayerAssignments from calls to findGuidForPlayerID, since the
argument was removed in ae92736b02.
Simplify formatChatMessage by moving playercolor-detection to
formatDefeatMessage and formatChatCommand.

This was SVN commit r17541.
This commit is contained in:
elexis
2015-12-22 21:45:09 +00:00
parent cf7b8329fb
commit 03adf0111a
@@ -93,7 +93,7 @@ var g_NotificationsTypes =
{
let message = {
"type": "message",
"guid": findGuidForPlayerID(g_PlayerAssignments, player) || -1,
"guid": findGuidForPlayerID(player) || -1,
"text": notification.message
};
@@ -105,7 +105,7 @@ var g_NotificationsTypes =
"aichat": function(notification, player)
{
let message = {
"guid": findGuidForPlayerID(g_PlayerAssignments, player) || -1,
"guid": findGuidForPlayerID(player) || -1,
"type": "message",
"text": notification.message,
"translate": true
@@ -134,7 +134,7 @@ var g_NotificationsTypes =
{
addChatMessage({
"type": "defeat",
"guid": findGuidForPlayerID(g_PlayerAssignments, player),
"guid": findGuidForPlayerID(player),
"player": player
});
@@ -259,16 +259,20 @@ function updateTimeNotifications()
/**
* Returns [username, playercolor] for the given player.
*/
function getUsernameAndColor(player)
function getUsernameAndColor(playerID)
{
// This case is hit for AIs, whose names don't exist in g_PlayerAssignments.
let color = g_Players[player].color;
return [
escapeText(g_Players[player].name),
color.r + " " + color.g + " " + color.b,
playerID > -1 ? escapeText(g_Players[playerID].name) : translate("Unknown Player"),
playerID > -1 ? rgbToGuiColor(g_Players[playerID].color) : "white"
];
}
function getUsernameAndColorByGUID(guid)
{
return getUsernameAndColor(g_PlayerAssignments[guid] ? g_PlayerAssignments[guid].player : -1);
}
/**
* Processes a CNetMessage (see NetMessage.h, NetMessages.h) sent by the CNetServer.
* Saves the received object to mainlog.html.
@@ -464,34 +468,10 @@ function addChatMessage(msg)
*/
function formatChatMessage(msg)
{
let playerColor, username;
// No context by default. May be set by parseChatCommands().
msg.context = "";
if (msg.guid && g_PlayerAssignments[msg.guid])
{
let n = g_PlayerAssignments[msg.guid].player;
// Observers have an ID of -1 which is not a valid index.
if (n < 0)
n = 0;
playerColor = g_Players[n].color.r + " " + g_Players[n].color.g + " " + g_Players[n].color.b;
username = escapeText(g_PlayerAssignments[msg.guid].name);
}
else if (msg.type == "defeat" && msg.player)
{
[username, playerColor] = getUsernameAndColor(msg.player);
}
else if (msg.type == "message")
{
[username, playerColor] = getUsernameAndColor(msg.player);
}
else
{
playerColor = "255 255 255";
username = translate("Unknown player");
}
let [username, playerColor] = getUsernameAndColorByGUID(msg.guid || -1);
let colorizedPlayername = { "player": "[color=\"" + playerColor + "\"]" + username + "[/color]" };
switch (msg.type)
@@ -501,11 +481,11 @@ function formatChatMessage(msg)
case "disconnect": return sprintf(translate("%(player)s has left the game."), colorizedPlayername);
case "rejoined": return sprintf(translate("%(player)s has rejoined the game."), colorizedPlayername);
case "clientlist": return formatClientList();
case "defeat": return formatDefeatMessage(msg, playerColor, username);
case "defeat": return formatDefeatMessage(msg);
case "diplomacy": return formatDiplomacyMessage(msg);
case "tribute": return formatTributeMessage(msg);
case "attack": return formatAttackMessage(msg);
case "message": return formatChatCommand(msg, playerColor, username);
case "message": return formatChatCommand(msg);
}
error("Invalid chat message " + uneval(msg));
@@ -519,13 +499,14 @@ function formatClientList()
{ "users": getUsernameList().join(translate(", ")) });
}
function formatDefeatMessage(msg, username, playerColor)
function formatDefeatMessage(msg)
{
// In singleplayer, the local player is "You". "You has" is incorrect.
if (!g_IsNetworked && msg.player == Engine.GetPlayerID())
return translate("You have been defeated.");
else
return sprintf(translate("%(player)s has been defeated."), { "player": "[color=\"" + playerColor + "\"]" + username + "[/color]" });
let [username, playerColor] = getUsernameAndColor(msg.player);
return sprintf(translate("%(player)s has been defeated."), { "player": "[color=\"" + playerColor + "\"]" + username + "[/color]" });
}
function formatDiplomacyMessage(msg)
@@ -609,7 +590,7 @@ function formatAttackMessage(msg)
return sprintf(message, { "attacker": "[color=\"" + playerColor + "\"]" + username + "[/color]" });
}
function formatChatCommand(msg, playerColor, username)
function formatChatCommand(msg)
{
parseChatCommands(msg);
@@ -632,6 +613,7 @@ function formatChatCommand(msg, playerColor, username)
else
message = escapeText(msg.text);
let [username, playerColor] = getUsernameAndColorByGUID(msg.guid);
if (msg.me)
{
if (msg.context)