Ticket #3476: 3476_start_time_lobby_v1.2.patch

File 3476_start_time_lobby_v1.2.patch, 4.5 KB (added by Imarok, 8 years ago)

Don't use hardcoded numbers for resizing

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

     
    615615        return;
    616616
    617617    Engine.GetGUIObjectByName("sgMapName").caption = translateMapTitle(game.niceMapName);
    618     Engine.GetGUIObjectByName("sgNbPlayers").caption = sprintf(
     618
     619    let sgGameStartTime = Engine.GetGUIObjectByName("sgGameStartTime");
     620    let sgNbPlayers = Engine.GetGUIObjectByName("sgNbPlayers");
     621    let sgPlayersNames = Engine.GetGUIObjectByName("sgPlayersNames");
     622   
     623    let playersNamesSize = sgPlayersNames.size;
     624    playersNamesSize.top = game.startTime ? sgGameStartTime.size.bottom : sgNbPlayers.size.bottom;
     625    playersNamesSize.rtop = game.startTime ? sgGameStartTime.size.rbottom : sgNbPlayers.size.rbottom;
     626    sgPlayersNames.size = playersNamesSize;
     627
     628    sgGameStartTime.hidden = !game.startTime;
     629    if (game.startTime)
     630        sgGameStartTime.caption = sprintf(
     631            translate("Game started at: %(time)s"), {
     632                "time": Engine.FormatMillisecondsIntoDateString(+game.startTime*1000, translate("HH:mm"))
     633            });
     634
     635    sgNbPlayers.caption = sprintf(
    619636        translate("Players: %(current)s/%(total)s"), {
    620637            "current": game.nbp,
    621638            "total": game.maxnbp
    622639        });
    623640
    624     Engine.GetGUIObjectByName("sgPlayersNames").caption = formatPlayerInfo(stringifiedTeamListToPlayerData(game.players));
     641    sgPlayersNames.caption = formatPlayerInfo(stringifiedTeamListToPlayerData(game.players));
    625642    Engine.GetGUIObjectByName("sgMapSize").caption = translateMapSize(game.mapSize);
    626643
    627644    let mapTypeIdx = g_MapTypes.Name.indexOf(game.mapType);
  • binaries/data/mods/public/gui/lobby/lobby.xml

     
    137137                <object size="5 284 100%-5 285" type="image" sprite="ModernWhiteLine" z="25"/>
    138138
    139139                <!-- Map Description -->
    140                 <object type="image" sprite="ModernDarkBoxWhite" size="3% 290 97% 75%">
     140                <object type="image" sprite="ModernDarkBoxWhite" size="3% 290 97% 65%">
    141141                    <object name="sgMapDescription" size="0 0 100% 100%" type="text" style="ModernText" font="sans-12"/>
    142142                </object>
    143143
    144                 <object type="image" sprite="ModernDarkBoxWhite" size="3% 75%+5 97% 99%">
     144                <object type="image" sprite="ModernDarkBoxWhite" size="3% 65%+5 97% 99%">
    145145                    <!-- Number of Players -->
    146                     <object name="sgNbPlayers" size="3% 3% 97% 12%" type="text" style="ModernLeftLabelText" text_align="center"/>
     146                    <object name="sgNbPlayers" size="3% 3% 97% 3%+15" type="text" style="ModernLeftLabelText" text_align="center"/>
     147                    <!-- Game Start Time -->
     148                    <object name="sgGameStartTime" size="3%+24 6% 97% 3%+35" type="text" style="ModernLeftLabelText" text_align="center"/>
    147149
    148150                    <!-- Player Names -->
    149                     <object name="sgPlayersNames" size="0 15% 100% 100%" type="text" style="MapPlayerList"/>
     151                    <object name="sgPlayersNames" size="0 0 100% 100%" type="text" style="MapPlayerList"/>
    150152                </object>
    151153            </object>
    152154            <object name="joinGameButton" type="button" style="ModernButtonRed" size="0 100%-85 100% 100%-60" hidden="true">
  • source/lobby/XmppClient.cpp

     
    502502    JSAutoRequest rq(cx);
    503503
    504504    scriptInterface.Eval("([])", ret);
    505     const char* stats[] = { "name", "ip", "port", "state", "nbp", "maxnbp", "players", "mapName", "niceMapName", "mapSize", "mapType", "victoryCondition" };
     505    const char* stats[] = { "name", "ip", "port", "state", "nbp", "maxnbp", "players", "mapName", "niceMapName", "mapSize", "mapType", "victoryCondition", "startTime" };
    506506    for(const glooxwrapper::Tag* const& t : m_GameList)
    507507    {
    508508        JS::RootedValue game(cx);
  • source/tools/XpartaMuPP/XpartaMuPP.py

     
    307307        self.gameList[JID]['state'] = 'running'
    308308      self.gameList[JID]['nbp'] = data['nbp']
    309309      self.gameList[JID]['players'] = data['players']
     310      if 'startTime' not in self.gameList[JID]:
     311       self.gameList[JID]['startTime'] = str(round(time.time()))
    310312
    311313## Class which manages different game reports from clients ##
    312314##   and calls leaderboard functions as appropriate.       ##