Ticket #3476: 3476_start_time_lobby_v1.1.patch

File 3476_start_time_lobby_v1.1.patch, 3.9 KB (added by Imarok, 8 years ago)

Display game start time

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

     
    615615        return;
    616616
    617617    Engine.GetGUIObjectByName("sgMapName").caption = translateMapTitle(game.niceMapName);
     618
     619    let playersNamesSize = Engine.GetGUIObjectByName("sgPlayersNames").size;
     620    playersNamesSize.top = game.startTime ? 35 : 20;
     621    Engine.GetGUIObjectByName("sgPlayersNames").size = playersNamesSize;
     622
     623    Engine.GetGUIObjectByName("sgGameStartTime").hidden = !game.startTime;
     624    if (game.startTime)
     625        Engine.GetGUIObjectByName("sgGameStartTime").caption = sprintf(
     626            translate("Game started at: %(time)s"), {
     627                "time": Engine.FormatMillisecondsIntoDateString(+game.startTime*1000, translate("HH:mm"))
     628            });
     629
    618630    Engine.GetGUIObjectByName("sgNbPlayers").caption = sprintf(
    619631        translate("Players: %(current)s/%(total)s"), {
    620632            "current": game.nbp,
  • 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%+20" type="text" style="ModernLeftLabelText" text_align="center"/>
     147                    <!-- Game Start Time -->
     148                    <object name="sgGameStartTime" size="3%+24 6% 97% 3%+44" 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 3% 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.       ##