Merge pull request #4468 from citra-emu/multiplayer-v4/main
Multiplayer version 4
This commit is contained in:
commit
eabc9727d8
60 changed files with 2395 additions and 308 deletions
|
@ -734,4 +734,21 @@ void InstallInterfaces(Core::System& system) {
|
|||
std::make_shared<CFG_NOR>()->InstallAsService(service_manager);
|
||||
}
|
||||
|
||||
std::string GetConsoleIdHash(Core::System& system) {
|
||||
u64_le console_id{};
|
||||
std::array<u8, sizeof(console_id)> buffer;
|
||||
if (system.IsPoweredOn()) {
|
||||
auto cfg = GetModule(system);
|
||||
ASSERT_MSG(cfg, "CFG Module missing!");
|
||||
console_id = cfg->GetConsoleUniqueId();
|
||||
} else {
|
||||
console_id = std::make_unique<Service::CFG::Module>()->GetConsoleUniqueId();
|
||||
}
|
||||
std::memcpy(buffer.data(), &console_id, sizeof(console_id));
|
||||
|
||||
std::array<u8, CryptoPP::SHA256::DIGESTSIZE> hash;
|
||||
CryptoPP::SHA256().CalculateDigest(hash.data(), buffer.data(), sizeof(buffer));
|
||||
return fmt::format("{:02x}", fmt::join(hash.begin(), hash.end(), ""));
|
||||
}
|
||||
|
||||
} // namespace Service::CFG
|
||||
|
|
|
@ -415,4 +415,7 @@ std::shared_ptr<Module> GetModule(Core::System& system);
|
|||
|
||||
void InstallInterfaces(Core::System& system);
|
||||
|
||||
/// Convenience function for getting a SHA256 hash of the Console ID
|
||||
std::string GetConsoleIdHash(Core::System& system);
|
||||
|
||||
} // namespace Service::CFG
|
||||
|
|
|
@ -140,7 +140,9 @@ std::list<Network::WifiPacket> GetReceivedBeacons(const MacAddress& sender) {
|
|||
/// Sends a WifiPacket to the room we're currently connected to.
|
||||
void SendPacket(Network::WifiPacket& packet) {
|
||||
if (auto room_member = Network::GetRoomMember().lock()) {
|
||||
if (room_member->GetState() == Network::RoomMember::State::Joined) {
|
||||
if (room_member->GetState() == Network::RoomMember::State::Joined ||
|
||||
room_member->GetState() == Network::RoomMember::State::Moderator) {
|
||||
|
||||
packet.transmitter_address = room_member->GetMacAddress();
|
||||
room_member->SendWifiPacket(packet);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue