Ticket #3409: t3409_v6.patch

File t3409_v6.patch, 4.7 KB (added by Sergey Kushnirenko, 8 years ago)
  • binaries/data/mods/public/gui/gamesetup/gamesetup.js

     
    4646    "banned": (msg, user) => systemMessage(sprintf(translate("%(username)s has been banned"), { "username": user })),
    4747    "chat": (msg, user) => sprintf(translate("%(username)s %(message)s"), {
    4848        "username": senderFont(sprintf(translate("<%(username)s>"), { "username": user })),
    49         "message": escapeText(msg.text || "")
     49        "message": colorizePlayernameInWideText(msg.text || "")
    5050    }),
    5151    "ready": (msg, user) => sprintf(translate("* %(username)s is ready!"), {
    5252        "username": user
     
    115115const g_UnassignedColor = "140 140 140";
    116116
    117117/**
     118 * Highlight unassigned players in the dropdownlist.
     119 */
     120const g_UnassignedPlayerColor = "170 170 250";
     121
     122/**
     123 * Highlight observer players in the dropdownlist.
     124 */
     125const g_ObserverColor = "170 170 250";
     126
     127/**
    118128 * Highlight ready players.
    119129 */
    120130const g_ReadyColor = "green";
     
    213223        g_DefaultPlayerData[i].Civ = "random";
    214224}
    215225
     226function colorizePlayernameInWideText(message)
     227{
     228    var colorizedNames = [];
     229    var names = [];
     230    var ret = "";
     231
     232    for (let guid in g_PlayerAssignments)
     233    {
     234        let player = g_PlayerAssignments[guid];
     235        if (player.player > 0)
     236        {
     237            colorizedNames.push(colorizePlayernameByGUID(guid, player.name));
     238            names.push(player.name);
     239      }
     240        else
     241        {
     242            colorizedNames.push(player.name);
     243            names.push(player.name);
     244        }
     245    }
     246
     247    var tmpBuffer = "";
     248    var fixedMessage = "";
     249    for(let charIndex in message)
     250    {
     251        tmpBuffer += message[charIndex];
     252
     253        for(let nameIndex in names)
     254        {
     255            var beginCharIndex = tmpBuffer.indexOf( names[ nameIndex ] );
     256            if( beginCharIndex != -1 )
     257            {
     258                var leftPartBuffer = tmpBuffer.substr( 0, beginCharIndex );
     259                fixedMessage += escapeText( leftPartBuffer ) + colorizedNames[ nameIndex ];
     260                tmpBuffer = "";
     261            }
     262        }
     263  }
     264
     265    if( tmpBuffer.length != 0 )
     266        fixedMessage += escapeText( tmpBuffer );
     267
     268    return fixedMessage;
     269}
     270
    216271/**
    217272 * Called after the first tick.
    218273 */
     
    14221477    let aiAssignments = {};
    14231478    let noAssignment;
    14241479    let assignedCount = 0;
     1480    var unnasignedPlayers = [];
    14251481
     1482    //add assigned players
    14261483    for (let guid in g_PlayerAssignments)
    14271484    {
    14281485        let player = g_PlayerAssignments[guid].player;
    14291486
     1487        if (player == -1)
     1488            continue;
     1489   
    14301490        hostNameList.push(g_PlayerAssignments[guid].name);
    14311491        hostGuidList.push(guid);
    14321492        assignments[player] = hostNameList.length-1;
     1493        assignedCount++;
     1494    }
     1495   
     1496    //add observer players
     1497    for (let guid in g_PlayerAssignments)
     1498    {
     1499        let player = g_PlayerAssignments[guid].player;
    14331500
    14341501        if (player != -1)
    1435             assignedCount++;
    1436     }
     1502            continue;
    14371503
     1504        hostNameList.push("[color=\""+ g_ObserverColor + "\"]" + g_PlayerAssignments[guid].name + "[/color]");
     1505        hostGuidList.push(guid);
     1506        assignments[player] = hostNameList.length-1;
     1507    }
     1508   
    14381509    // Only enable start button if we have enough assigned players
    14391510    if (g_IsController)
    14401511        Engine.GetGUIObjectByName("startGame").enabled = assignedCount > 0;
  • binaries/data/mods/public/gui/session/messages.js

     
    238238        g_Selection.rebuildSelection({});
    239239    }
    240240};
    241 
    242241/**
    243242 * Loads all known cheat commands.
    244243 *
     
    566582    });
    567583}
    568584
     585function colorizePlayernameInWideText(message)
     586{
     587    var colorizedNames = [];
     588    var names = [];
     589    var ret = "";
     590
     591    for (let id in g_Players)
     592    {
     593        let player = g_Players[id];
     594        colorizedNames.push( colorizePlayernameByID(id) );
     595        names.push( player.name );
     596    }
     597
     598    var tmpBuffer = "";
     599    var fixedMessage = "";
     600    for(let charIndex in message)
     601    {
     602        tmpBuffer += message[charIndex];
     603
     604        for(let nameIndex in names)
     605        {
     606            var beginCharIndex = tmpBuffer.indexOf( names[ nameIndex ] );
     607            if( beginCharIndex != -1 )
     608            {
     609                var leftPartBuffer = tmpBuffer.substr( 0, beginCharIndex );
     610                fixedMessage += escapeText( leftPartBuffer ) + colorizedNames[ nameIndex ];
     611                tmpBuffer = "";
     612            }
     613        }
     614  }
     615
     616    if( tmpBuffer.length != 0 )
     617        fixedMessage += escapeText( tmpBuffer );
     618
     619    return fixedMessage;
     620}
     621
    569622function formatDiplomacyMessage(msg)
    570623{
    571624    let messageType;
     
    649709        }
    650710    }
    651711    else
    652         msg.text = escapeText(msg.text);
     712        msg.text = colorizePlayernameInWideText(msg.text);
    653713
    654714    // GUID for players, playerID for AIs
    655715    let coloredUsername = msg.guid != -1 ? colorizePlayernameByGUID(msg.guid) : colorizePlayernameByID(msg.player);