Ticket #4369: 4369_stay_ready_v2.patch

File 4369_stay_ready_v2.patch, 3.8 KB (added by Imarok, 7 years ago)

Replace nested ternaries with arrays

  • binaries/data/mods/public/gui/gamesetup/gamesetup.js

     
    137137 * Highlight ready players.
    138138 */
    139139const g_ReadyColor = "green";
     140const g_StayReadyColor = "blue";
    140141
    141142/**
    142143 * Placeholder item for the map-dropdownlist.
     
    172173
    173174/**
    174175 * Whether the current player is ready to start the game.
     176 * 0 - not ready
     177 * 1 - ready
     178 * 2 - stay ready
    175179 */
    176180var g_IsReady;
    177181
     
    687691{
    688692    --g_ReadyChanged;
    689693
    690     if (g_ReadyChanged < 1 && g_PlayerAssignments[message.guid].player != -1)
     694    if (g_ReadyChanged < 1 && g_PlayerAssignments[message.guid].player != -1 && message.status < 2)
    691695        addChatMessage({
    692696            "type": message.status == 1 ? "ready" : "not-ready",
    693697            "guid": message.guid
     
    18381842
    18391843function toggleReady()
    18401844{
    1841     setReady(!g_IsReady);
     1845    setReady((g_IsReady + 1) % 3);
    18421846}
    18431847
    18441848function setReady(ready, sendMessage = true)
     
    18521856        return;
    18531857
    18541858    let button = Engine.GetGUIObjectByName("startGame");
     1859    button.caption = [
     1860        translate("I'm ready"), translate("Stay ready"),
     1861        translate("I'm not ready!")][+g_IsReady];
    18551862
    1856     button.caption = g_IsReady ?
    1857         translate("I'm not ready!") :
    1858         translate("I'm ready");
    1859 
    1860     button.tooltip = g_IsReady ?
    1861         translate("State that you are not ready to play.") :
    1862         translate("State that you are ready to play!");
     1863    button.tooltip = [
     1864        translate("State that you are ready to play!"),
     1865        translate("Stay ready even when the game settings change."),
     1866        translate("State that you are not ready to play.")
     1867        ][+g_IsReady];
    18631868}
    18641869
    18651870function updateReadyUI()
     
    18781883        let pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[g_PlayerAssignments[guid].player - 1] : {};
    18791884        isAI[g_PlayerAssignments[guid].player] = false;
    18801885        if (g_PlayerAssignments[guid].status || !g_IsNetworked)
    1881             Engine.GetGUIObjectByName("playerName[" + (g_PlayerAssignments[guid].player - 1) + "]").caption = '[color="' + g_ReadyColor + '"]' + translate(getSetting(pData, pDefs, "Name")) + '[/color]';
     1886            Engine.GetGUIObjectByName("playerName[" + (g_PlayerAssignments[guid].player - 1) + "]").caption =
     1887                '[color="' + (g_PlayerAssignments[guid].status == 1 ? g_ReadyColor : g_StayReadyColor) + '"]' +
     1888                translate(getSetting(pData, pDefs, "Name")) + '[/color]';
    18821889        else
    18831890        {
    18841891            Engine.GetGUIObjectByName("playerName[" + (g_PlayerAssignments[guid].player - 1) + "]").caption = translate(getSetting(pData, pDefs, "Name"));
     
    18941901        let pData = g_GameAttributes.settings.PlayerData ? g_GameAttributes.settings.PlayerData[playerid] : {};
    18951902        let pDefs = g_DefaultPlayerData ? g_DefaultPlayerData[playerid] : {};
    18961903        if (isAI[playerid + 1])
    1897             Engine.GetGUIObjectByName("playerName[" + playerid + "]").caption = '[color="' + g_ReadyColor + '"]' + translate(getSetting(pData, pDefs, "Name")) + '[/color]';
     1904            Engine.GetGUIObjectByName("playerName[" + playerid + "]").caption =
     1905                '[color="' + g_StayReadyColor + '"]' + translate(getSetting(pData, pDefs, "Name")) + '[/color]';
    18981906    }
    18991907
    19001908    // The host is not allowed to start until everyone is ready.
     
    19311939        Engine.ClearAllPlayerReady();
    19321940        setReady(true);
    19331941    }
    1934     else
     1942    else if (g_IsReady != 2)
    19351943        setReady(false, false);
    19361944}
    19371945
  • source/network/NetServer.cpp

     
    774774void CNetServerWorker::ClearAllPlayerReady()
    775775{
    776776    for (PlayerAssignmentMap::iterator it = m_PlayerAssignments.begin(); it != m_PlayerAssignments.end(); ++it)
    777         it->second.m_Status = 0;
     777        if (it->second.m_Status != 2)
     778            it->second.m_Status = 0;
    778779
    779780    SendPlayerAssignments();
    780781}