Ticket #3120: 3120.v6.patch

File 3120.v6.patch, 3.3 KB (added by Jared Ryan Bills, 8 years ago)

Added changes from IRC review.

  • 0ad/binaries/data/mods/public/gui/credits/texts/programming.json

     
    134134            {"nick": "njm"},
    135135            {"nick": "NoMonkey", "name": "John Mena"},
    136136            {"nick": "notpete", "name": "Rich Cross"},
     137            {"nick": "Offensive ePeen", "name": "Jared Ryan Bills"},
    137138            {"nick": "Ols", "name": "Oliver Whiteman"},
    138139            {"nick": "olsner", "name": "Simon Brenner"},
    139140            {"nick": "otero"},
  • 0ad/binaries/data/mods/public/gui/gamesetup/gamesetup.js

     
    10341034}
    10351035
    10361036/**
     1037 * Called when the map changes or the number of players changes
     1038 */
     1039function resizePlayerData(defPData, ply)
     1040{
     1041    if (g_IsNetworked)
     1042        // Unassign excess players
     1043        for (let guid in g_PlayerAssignments)
     1044        {
     1045            let player = g_PlayerAssignments[guid].player;
     1046            if (player > ply)
     1047                Engine.AssignNetworkPlayer(player, "");
     1048        }
     1049    else
     1050        // Reassign player 1
     1051        g_PlayerAssignments = {
     1052            "local": {
     1053                "name": singleplayerName(),
     1054                "player": 1
     1055            }
     1056        };
     1057    let pData = g_GameAttributes.settings.PlayerData;
     1058    return ply > pData.length ?
     1059        pData.concat(defPData.slice(pData.length, ply)) :
     1060        pData.slice(0, ply);
     1061}
     1062
     1063/**
    10371064 * Called when the host choses the number of players on a random map.
    10381065 * @param {Number} num
    10391066 */
     
    10421069    if (g_IsInGuiUpdate || !g_IsController || g_GameAttributes.mapType != "random")
    10431070        return;
    10441071
    1045     // Unassign players from nonexistent slots
    1046     if (g_IsNetworked)
    1047     {
    1048         for (let i = g_MaxPlayers; i > num; --i)
    1049             Engine.AssignNetworkPlayer(i, "");
    1050     }
    1051     else if (g_PlayerAssignments.local.player > num)
    1052         g_PlayerAssignments.local.player = 1;
    1053 
    10541072    // Update player data
    1055     let pData = g_GameAttributes.settings.PlayerData;
    1056     if (num < pData.length)
    1057         g_GameAttributes.settings.PlayerData = pData.slice(0, num);
    1058     else
    1059         for (let i = pData.length; i < num; ++i)
    1060             g_GameAttributes.settings.PlayerData.push(g_DefaultPlayerData[i]);
     1073    g_GameAttributes.settings.PlayerData = resizePlayerData(g_DefaultPlayerData, num);
    10611074
    10621075    updateGameAttributes();
    10631076}
     
    11651178        delete g_GameAttributes.settings.LastManStanding;
    11661179    }
    11671180
     1181    // Persist player data settings on map change
     1182    if (g_GameAttributes.mapType == "skirmish")
     1183        mapSettings.PlayerData = resizePlayerData(mapSettings.PlayerData, mapSettings.PlayerData.length);
     1184
    11681185    if (mapSettings.PlayerData)
    11691186        sanitizePlayerData(mapSettings.PlayerData);
    11701187
     
    11841201            g_GameAttributes.settings.PlayerData[i].AIDiff = g_DefaultPlayerData[i].AIDiff;
    11851202    }
    11861203
    1187     if (g_IsNetworked)
    1188         // Unassign excess players
    1189         for (let guid in g_PlayerAssignments)
    1190         {
    1191             let player = g_PlayerAssignments[guid].player;
    1192             if (player > g_GameAttributes.settings.PlayerData.length)
    1193                 Engine.AssignNetworkPlayer(player, "");
    1194         }
    1195     else
    1196         g_PlayerAssignments = {
    1197             "local": {
    1198                 "name": singleplayerName(),
    1199                 "player": 1
    1200             }
    1201         };
    1202 
    12031204    updateGameAttributes();
    12041205}
    12051206