mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-09 18:45:40 +00:00
NetPlay: Supply every player's ping data to the client
This means that we now have feature parity with the combined server before.
This commit is contained in:
parent
a3a222bf5b
commit
59ab60f37f
@ -35,7 +35,7 @@ std::string NetPlayClient::Player::ToString() const
|
|||||||
ss << name << '[' << (char)(pid+'0') << "] : " << revision << " |";
|
ss << name << '[' << (char)(pid+'0') << "] : " << revision << " |";
|
||||||
for (unsigned int i=0; i<4; ++i)
|
for (unsigned int i=0; i<4; ++i)
|
||||||
ss << (pad_map[i]>=0 ? (char)(pad_map[i]+'1') : '-');
|
ss << (pad_map[i]>=0 ? (char)(pad_map[i]+'1') : '-');
|
||||||
ss << '|';
|
ss << " | " << ping << "ms";
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,6 +293,21 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NP_MSG_PLAYER_PING_DATA:
|
||||||
|
{
|
||||||
|
PlayerId pid;
|
||||||
|
packet >> pid;
|
||||||
|
|
||||||
|
{
|
||||||
|
std::lock_guard<std::recursive_mutex> lkp(m_crit.players);
|
||||||
|
Player& player = m_players[pid];
|
||||||
|
packet >> player.ping;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_dialog->Update();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
PanicAlertT("Unknown message received with id : %d", mid);
|
PanicAlertT("Unknown message received with id : %d", mid);
|
||||||
break;
|
break;
|
||||||
|
@ -94,6 +94,7 @@ protected:
|
|||||||
std::string name;
|
std::string name;
|
||||||
PadMapping pad_map[4];
|
PadMapping pad_map[4];
|
||||||
std::string revision;
|
std::string revision;
|
||||||
|
u32 ping;
|
||||||
};
|
};
|
||||||
|
|
||||||
Common::FifoQueue<NetPad> m_pad_buffer[4];
|
Common::FifoQueue<NetPad> m_pad_buffer[4];
|
||||||
|
@ -23,7 +23,7 @@ struct Rpt : public std::vector<u8>
|
|||||||
|
|
||||||
typedef std::vector<Rpt> NetWiimote;
|
typedef std::vector<Rpt> NetWiimote;
|
||||||
|
|
||||||
#define NETPLAY_VERSION "Dolphin NetPlay 2013-07-19"
|
#define NETPLAY_VERSION "Dolphin NetPlay 2013-08-05"
|
||||||
|
|
||||||
// messages
|
// messages
|
||||||
enum
|
enum
|
||||||
@ -50,6 +50,7 @@ enum
|
|||||||
|
|
||||||
NP_MSG_PING = 0xE0,
|
NP_MSG_PING = 0xE0,
|
||||||
NP_MSG_PONG = 0xE1,
|
NP_MSG_PONG = 0xE1,
|
||||||
|
NP_MSG_PLAYER_PING_DATA = 0xE2,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef u8 MessageId;
|
typedef u8 MessageId;
|
||||||
|
@ -456,6 +456,14 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, sf::SocketTCP& socket)
|
|||||||
|
|
||||||
if (m_ping_key == ping_key)
|
if (m_ping_key == ping_key)
|
||||||
player.ping = ping;
|
player.ping = ping;
|
||||||
|
|
||||||
|
sf::Packet spac;
|
||||||
|
spac << (MessageId)NP_MSG_PLAYER_PING_DATA;
|
||||||
|
spac << player.pid;
|
||||||
|
spac << player.ping;
|
||||||
|
|
||||||
|
std::lock_guard<std::recursive_mutex> lks(m_crit.send);
|
||||||
|
SendToClients(spac);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ private:
|
|||||||
std::string revision;
|
std::string revision;
|
||||||
|
|
||||||
sf::SocketTCP socket;
|
sf::SocketTCP socket;
|
||||||
u64 ping;
|
u32 ping;
|
||||||
u32 current_game;
|
u32 current_game;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user