// Copyright 2020 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include "Common/CommonTypes.h" namespace NetPlay { struct SyncIdentifier { u64 dol_elf_size = 0; std::string game_id; u16 revision = 0; u8 disc_number = 0; bool is_datel = false; // This hash is intended to be (but is not guaranteed to be): // 1. Identical for discs with no differences that affect netplay/TAS sync // 2. Different for discs with differences that affect netplay/TAS sync // 3. Much faster than hashing the entire disc // The way the hash is calculated may change with updates to Dolphin. std::array sync_hash{}; bool operator==(const SyncIdentifier&) const = default; }; // The order of entries in this enum matters, as the lowest value is // treated as the "best" available option. enum class SyncIdentifierComparison : u8 { SameGame, DifferentHash, DifferentDiscNumber, DifferentRevision, DifferentRegion, DifferentGame, Unknown, }; } // namespace NetPlay