Ticket #3409: t3409_v6.patch
File t3409_v6.patch, 4.7 KB (added by , 8 years ago) |
---|
-
binaries/data/mods/public/gui/gamesetup/gamesetup.js
46 46 "banned": (msg, user) => systemMessage(sprintf(translate("%(username)s has been banned"), { "username": user })), 47 47 "chat": (msg, user) => sprintf(translate("%(username)s %(message)s"), { 48 48 "username": senderFont(sprintf(translate("<%(username)s>"), { "username": user })), 49 "message": escapeText(msg.text || "")49 "message": colorizePlayernameInWideText(msg.text || "") 50 50 }), 51 51 "ready": (msg, user) => sprintf(translate("* %(username)s is ready!"), { 52 52 "username": user … … 115 115 const g_UnassignedColor = "140 140 140"; 116 116 117 117 /** 118 * Highlight unassigned players in the dropdownlist. 119 */ 120 const g_UnassignedPlayerColor = "170 170 250"; 121 122 /** 123 * Highlight observer players in the dropdownlist. 124 */ 125 const g_ObserverColor = "170 170 250"; 126 127 /** 118 128 * Highlight ready players. 119 129 */ 120 130 const g_ReadyColor = "green"; … … 213 223 g_DefaultPlayerData[i].Civ = "random"; 214 224 } 215 225 226 function 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 216 271 /** 217 272 * Called after the first tick. 218 273 */ … … 1422 1477 let aiAssignments = {}; 1423 1478 let noAssignment; 1424 1479 let assignedCount = 0; 1480 var unnasignedPlayers = []; 1425 1481 1482 //add assigned players 1426 1483 for (let guid in g_PlayerAssignments) 1427 1484 { 1428 1485 let player = g_PlayerAssignments[guid].player; 1429 1486 1487 if (player == -1) 1488 continue; 1489 1430 1490 hostNameList.push(g_PlayerAssignments[guid].name); 1431 1491 hostGuidList.push(guid); 1432 1492 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; 1433 1500 1434 1501 if (player != -1) 1435 assignedCount++; 1436 } 1502 continue; 1437 1503 1504 hostNameList.push("[color=\""+ g_ObserverColor + "\"]" + g_PlayerAssignments[guid].name + "[/color]"); 1505 hostGuidList.push(guid); 1506 assignments[player] = hostNameList.length-1; 1507 } 1508 1438 1509 // Only enable start button if we have enough assigned players 1439 1510 if (g_IsController) 1440 1511 Engine.GetGUIObjectByName("startGame").enabled = assignedCount > 0; -
binaries/data/mods/public/gui/session/messages.js
238 238 g_Selection.rebuildSelection({}); 239 239 } 240 240 }; 241 242 241 /** 243 242 * Loads all known cheat commands. 244 243 * … … 566 582 }); 567 583 } 568 584 585 function 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 569 622 function formatDiplomacyMessage(msg) 570 623 { 571 624 let messageType; … … 649 709 } 650 710 } 651 711 else 652 msg.text = escapeText(msg.text);712 msg.text = colorizePlayernameInWideText(msg.text); 653 713 654 714 // GUID for players, playerID for AIs 655 715 let coloredUsername = msg.guid != -1 ? colorizePlayernameByGUID(msg.guid) : colorizePlayernameByID(msg.player);