[Orxonox-commit 5674] r10334 - in code/branches/multiplayerFS15: data/gui/scripts src/libraries/network src/libraries/network/packet

frovelli at orxonox.net frovelli at orxonox.net
Thu Mar 26 13:38:24 CET 2015


Author: frovelli
Date: 2015-03-26 13:38:24 +0100 (Thu, 26 Mar 2015)
New Revision: 10334

Modified:
   code/branches/multiplayerFS15/data/gui/scripts/MultiplayerMenu.lua
   code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc
   code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.h
   code/branches/multiplayerFS15/src/libraries/network/ServerList.cc
   code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc
   code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h
Log:
Added serverlist ping display in LAN

Modified: code/branches/multiplayerFS15/data/gui/scripts/MultiplayerMenu.lua
===================================================================
--- code/branches/multiplayerFS15/data/gui/scripts/MultiplayerMenu.lua	2015-03-25 19:58:23 UTC (rev 10333)
+++ code/branches/multiplayerFS15/data/gui/scripts/MultiplayerMenu.lua	2015-03-26 12:38:24 UTC (rev 10334)
@@ -92,6 +92,7 @@
         local index = 0
         local servername = ""
         local serverip = ""
+        local serverrtt = ""
         while true do
             servername = discovery:getServerListItemName(index)
             if servername == "" then
@@ -101,12 +102,14 @@
             if serverip == "" then
                 break
             end
-            table.insert(P.serverList, {servername, serverip})
+            serverrtt = discovery:getServerListItemRTT(index)
+
+            table.insert(P.serverList, {servername, serverip, serverrtt})
             index = index + 1
         end
         index = 1
         for k,v in pairs(P.serverList) do
-            local item = CEGUI.createListboxTextItem( v[1] .. ": " .. v[2] )
+            local item = CEGUI.createListboxTextItem( v[1] .. ": " .. v[2] .. " Ping: " .. v[3] .."ms" )
             item:setID(index)
             index = index + 1
             item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
@@ -124,6 +127,7 @@
         local index = 0
         local servername = ""
         local serverip = ""
+        local serverrtt = ""
         while true do
             servername = discovery:getServerListItemName(index)
             if servername == "" then
@@ -133,12 +137,14 @@
             if serverip == "" then
                 break
             end
-            table.insert(P.serverList, {servername, serverip})
+            serverrtt = discovery:getServerListItemRTT(index)
+
+            table.insert(P.serverList, {servername, serverip, serverrtt})
             index = index + 1
         end
         index = 1
         for k,v in pairs(P.serverList) do
-            local item = CEGUI.createListboxTextItem( v[1] .. ": " .. v[2] )
+            local item = CEGUI.createListboxTextItem( v[1] .. ": " .. v[2] .. " Ping: " .. v[3] .."ms" )
             item:setID(index)
             index = index + 1
             item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
@@ -149,4 +155,3 @@
 end
 
 return P
-

Modified: code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc	2015-03-25 19:58:23 UTC (rev 10333)
+++ code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.cc	2015-03-26 12:38:24 UTC (rev 10334)
@@ -123,5 +123,16 @@
       return this->servers_[index].getServerIP();
   }
 
+  std::string LANDiscovery::getServerListItemRTT(unsigned int index)
+  {
+    if( index >= this->servers_.size() )
+      return BLANKSTRING;
+    else{
+      uint32_t serverrtt = this->servers_[index].getServerRTT();
+      return Ogre::StringConverter::toString(serverrtt);
+    }
 
+  }
+
+
 } // namespace orxonox

Modified: code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.h
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.h	2015-03-25 19:58:23 UTC (rev 10333)
+++ code/branches/multiplayerFS15/src/libraries/network/LANDiscovery.h	2015-03-26 12:38:24 UTC (rev 10334)
@@ -32,6 +32,7 @@
 #include "NetworkPrereqs.h"
 #include "packet/ServerInformation.h"
 #include "util/Singleton.h"
+#include <OgreStringConverter.h>
 
 #include <vector>
 
@@ -50,8 +51,9 @@
       void discover(); // tolua_export
       std::string getServerListItemName( unsigned int index ); // tolua_export
       std::string getServerListItemIP( unsigned int index ); // tolua_export
+      std::string getServerListItemRTT( unsigned int index ); // tolua_export
       static LANDiscovery& getInstance(){ return Singleton<LANDiscovery>::getInstance(); } // tolua_export
-      
+
     private:
       static LANDiscovery* singletonPtr_s;
       ENetHost* host_;

Modified: code/branches/multiplayerFS15/src/libraries/network/ServerList.cc
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/ServerList.cc	2015-03-25 19:58:23 UTC (rev 10333)
+++ code/branches/multiplayerFS15/src/libraries/network/ServerList.cc	2015-03-26 12:38:24 UTC (rev 10334)
@@ -29,7 +29,7 @@
 #include "ServerList.h"
 
 namespace orxonox
-{ 
+{
   ServerList::ServerList()
   { /* create a new list */ }
 
@@ -38,26 +38,26 @@
     serverlist.clear();
   }
 
-  int 
+  int
   ServerList::addServer( packet::ServerInformation toadd,
     ENetPeer *peer )
-  { 
+  {
     ServerListElem toAdd;
     toAdd.ServerInfo = toadd;
     toAdd.peer = peer;
 
-    this->serverlist.push_back( toAdd ); 
+    this->serverlist.push_back( toAdd );
     return 0;
   }
 
-  bool 
+  bool
   ServerList::delServerByName( std::string name )
-  { 
+  {
     /* get an iterator */
     std::list<ServerListElem>::iterator i;
 
     /* loop through list elements */
-    for( i = serverlist.begin(); i != serverlist.end(); ++i ) 
+    for( i = serverlist.begin(); i != serverlist.end(); ++i )
       if( (*i).ServerInfo.getServerName() == name )
       { /* found this name, remove and quit */
         this->serverlist.erase( i );
@@ -67,12 +67,12 @@
   }
 
   bool ServerList::delServerByAddress( std::string address )
-  { 
+  {
     /* get an iterator */
     std::list<ServerListElem>::iterator i;
 
     /* loop through list elements */
-    for( i = serverlist.begin(); i != serverlist.end(); ++i ) 
+    for( i = serverlist.begin(); i != serverlist.end(); ++i )
       if( (*i).ServerInfo.getServerIP() == address )
       { /* found this name, remove and quit */
         this->serverlist.erase( i );
@@ -89,7 +89,7 @@
     std::list<ServerListElem>::iterator i;
 
     /* loop through list elements */
-    for( i = serverlist.begin(); i != serverlist.end(); ++i ) 
+    for( i = serverlist.begin(); i != serverlist.end(); ++i )
       if( (*i).ServerInfo.getServerIP() == address )
       { /* found the target, return it */
         ServerListSearchResult res = { (*i), true };
@@ -109,9 +109,9 @@
 
     /* iterate, return when name found */
     /* loop through list elements */
-    for( i = serverlist.begin(); i != serverlist.end(); ++i ) 
+    for( i = serverlist.begin(); i != serverlist.end(); ++i )
       if( (*i).ServerInfo.getServerName() == name )
-      { 
+      {
         ServerListSearchResult res = { (*i), true };
         return res;
       }
@@ -123,25 +123,25 @@
 
   /* SORTING */
   /* sort by name */
-  bool sub_compare_names( ServerListElem no1, 
+  bool sub_compare_names( ServerListElem no1,
     ServerListElem no2 )
   { return no1.ServerInfo.getServerName() > no2.ServerInfo.getServerName(); }
 
   void ServerList::sortByName()
-  { 
-    this->serverlist.sort( sub_compare_names ); 
+  {
+    this->serverlist.sort( sub_compare_names );
   }
-  
+
   /* sort by ping */
-  bool sub_compare_pings( ServerListElem no1, 
+  bool sub_compare_pings( ServerListElem no1,
     ServerListElem no2 )
-  { 
-    return no1.ServerInfo.getServerName() > no2.ServerInfo.getServerName();
+  {
+    return no1.ServerInfo.getServerRTT() > no2.ServerInfo.getServerRTT();
   }
 
   void ServerList::sortByPing()
   {
-    this->serverlist.sort( sub_compare_pings ); 
+    this->serverlist.sort( sub_compare_pings );
   }
 
 }

Modified: code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc	2015-03-25 19:58:23 UTC (rev 10333)
+++ code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.cc	2015-03-26 12:38:24 UTC (rev 10334)
@@ -38,12 +38,12 @@
 {
   namespace packet
   {
-    
+
     ServerInformation::ServerInformation()
     {
-      
+
     }
-    
+
     ServerInformation::ServerInformation(ENetEvent* event)
     {
       char serverIP[64];
@@ -68,7 +68,7 @@
 
     ServerInformation::~ServerInformation()
     {
-      
+
     }
 
     void ServerInformation::send(ENetPeer* peer)
@@ -80,10 +80,10 @@
       saveAndIncrease(this->serverName_, temp2);
       ENetPacket* packet = enet_packet_create( temp, size, 0 );
       enet_peer_send(peer, 0, packet);
-      
+
       delete[] temp;
     }
-  
+
   } // namespace packet
 
   std::ostream& operator<<(std::ostream& out, const ENetAddress& address)
@@ -94,4 +94,3 @@
       return out;
   }
 } // namespace orxonox
-

Modified: code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h
===================================================================
--- code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h	2015-03-25 19:58:23 UTC (rev 10333)
+++ code/branches/multiplayerFS15/src/libraries/network/packet/ServerInformation.h	2015-03-26 12:38:24 UTC (rev 10334)
@@ -44,14 +44,14 @@
         ServerInformation();
         ServerInformation(ENetEvent* event);
         ~ServerInformation();
-        
+
         void          send( ENetPeer* peer );
         std::string   getServerIP() { return this->serverIP_; }
         std::string   getServerName() { return this->serverName_; }
         void          setServerName(std::string name) { this->serverName_ = name; }
         void          setServerIP( std::string IP ) { this->serverIP_ = IP; }
         uint32_t      getServerRTT() { return this->serverRTT_; }
-        
+
       private:
         std::string   serverName_;
         std::string   serverIP_;




More information about the Orxonox-commit mailing list