18 bool initialized =
false;
19 std::unique_ptr<Transport>
network;
22 std::array<std::uint32_t, rules::MaxPlayers>
playerOwners{};
95 static const std::vector<std::uint8_t>
stopPacket{
'S',
'T',
'O',
'P', 0, 0, 0, 0};
264 static_cast<unsigned>(message.
action) >= 80u &&
270 auto local = message;
281 std::int64_t numberA,
282 std::int64_t numberB,
283 std::int64_t numberC,
284 std::int64_t numberD,
285 std::wstring_view stringA)
290 message.fromPlayer = fromPlayer;
291 message.toPlayer = toPlayer;
293 message.numberA = numberA;
294 message.numberB = numberB;
295 message.numberC = numberC;
296 message.numberD = numberD;
298 const std::size_t
count =
301 message.stringA.size() - 1
307 message.stringA.begin()
310 message.stringA[
count] =
L'\0';
388 message = std::move(*
found);
410 if (
network->gameplayEnabled())
420 [&](
const auto& queued) { return queued.sourceId == received.sourceId; }) &&
std::shared_ptr< const data::HmdTextureImage > source
bool receiveAction(actions::Message &message)
bool startConfiguredNetwork()
std::size_t currentQueueSize()
bool consumeHostDisconnected()
std::size_t queuedActionCount()
std::string_view networkError()
constexpr std::size_t MessageQueueCapacity
bool authenticSender(const rules::GameState &state, const actions::Message &message)
bool startNetwork(std::unique_ptr< Transport > transport)
void setNetworkStarter(std::function< bool()> starter)
std::uint32_t playerOwner(rules::PlayerNumber player)
bool sendAction(const actions::Message &message)
void noteClientResynchronized()
void setPlayerOwner(rules::PlayerNumber player, std::uint32_t source)
bool receiveVoiceChatOnly(actions::Message &message)
constexpr PlayerNumber BankPlayer
std::uint8_t PlayerNumber
constexpr PlayerNumber SpectatorPlayer
constexpr PlayerNumber MaxPlayers
constexpr PlayerNumber AllPlayers
rules::PlayerNumber toPlayer
rules::PlayerNumber fromPlayer
std::vector< std::uint8_t > binaryDataA