From 5a4cc7d00ded1d5bcfd0f2dcaaecd70768013f3d Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Sun, 31 Aug 2025 16:02:43 +0200 Subject: [PATCH] Remove Network function name prefixes given namespace qualifiers --- src/openrct2-ui/ProvisionalElements.cpp | 4 +- src/openrct2-ui/input/Shortcuts.cpp | 6 +- src/openrct2-ui/windows/Guest.cpp | 8 +- src/openrct2-ui/windows/LoadSave.cpp | 4 +- src/openrct2-ui/windows/Multiplayer.cpp | 88 +- src/openrct2-ui/windows/NetworkStatus.cpp | 4 +- src/openrct2-ui/windows/Options.cpp | 6 +- src/openrct2-ui/windows/Player.cpp | 57 +- src/openrct2-ui/windows/Ride.cpp | 2 +- src/openrct2-ui/windows/RideConstruction.cpp | 4 +- src/openrct2-ui/windows/RideList.cpp | 8 +- src/openrct2-ui/windows/SavePrompt.cpp | 6 +- src/openrct2-ui/windows/Scenery.cpp | 8 +- src/openrct2-ui/windows/ServerList.cpp | 22 +- src/openrct2-ui/windows/ServerStart.cpp | 12 +- src/openrct2-ui/windows/Staff.cpp | 6 +- src/openrct2-ui/windows/StaffList.cpp | 2 +- src/openrct2-ui/windows/TopToolbar.cpp | 20 +- src/openrct2/Context.cpp | 22 +- src/openrct2/Context.h | 9 +- src/openrct2/Game.cpp | 2 +- src/openrct2/GameState.cpp | 44 +- src/openrct2/OpenRCT2.h | 7 +- src/openrct2/ReplayManager.cpp | 6 +- src/openrct2/actions/CheatSetAction.cpp | 2 +- src/openrct2/actions/CheatSetAction.h | 2 +- src/openrct2/actions/GameAction.cpp | 43 +- src/openrct2/actions/GameAction.h | 10 +- .../actions/NetworkModifyGroupAction.cpp | 4 +- src/openrct2/actions/PeepPickupAction.cpp | 30 +- src/openrct2/actions/PeepPickupAction.h | 4 +- src/openrct2/actions/PlayerKickAction.cpp | 6 +- src/openrct2/actions/PlayerKickAction.h | 4 +- src/openrct2/actions/PlayerSetGroupAction.cpp | 6 +- src/openrct2/actions/PlayerSetGroupAction.h | 4 +- src/openrct2/command_line/RootCommands.cpp | 10 +- .../command_line/SimulateCommands.cpp | 2 +- src/openrct2/command_line/UriHandler.cpp | 4 +- src/openrct2/config/Config.cpp | 2 +- src/openrct2/core/DataSerialiserTraits.h | 20 +- src/openrct2/entity/Guest.cpp | 20 +- src/openrct2/entity/MoneyEffect.cpp | 2 +- src/openrct2/interface/Chat.cpp | 8 +- src/openrct2/interface/InteractiveConsole.cpp | 20 +- src/openrct2/network/DiscordService.cpp | 8 +- src/openrct2/network/Network.h | 146 +-- src/openrct2/network/NetworkAction.cpp | 14 +- src/openrct2/network/NetworkAction.h | 8 +- src/openrct2/network/NetworkBase.cpp | 838 +++++++++--------- src/openrct2/network/NetworkBase.h | 38 +- src/openrct2/network/NetworkConnection.cpp | 34 +- src/openrct2/network/NetworkConnection.h | 8 +- src/openrct2/network/NetworkGroup.cpp | 14 +- src/openrct2/network/NetworkGroup.h | 6 +- src/openrct2/network/NetworkKey.cpp | 2 +- src/openrct2/network/NetworkPacket.cpp | 22 +- src/openrct2/network/NetworkPacket.h | 6 +- src/openrct2/network/NetworkPlayer.cpp | 10 +- src/openrct2/network/NetworkPlayer.h | 4 +- .../network/NetworkServerAdvertiser.cpp | 28 +- src/openrct2/network/NetworkTypes.h | 116 +-- src/openrct2/network/ServerList.cpp | 8 +- src/openrct2/network/Socket.cpp | 58 +- src/openrct2/network/Socket.h | 20 +- src/openrct2/park/ParkFile.cpp | 2 +- src/openrct2/ride/RideConstruction.cpp | 2 +- src/openrct2/scenario/Scenario.cpp | 8 +- src/openrct2/scripting/ScriptEngine.cpp | 14 +- .../scripting/bindings/network/ScNetwork.cpp | 56 +- .../scripting/bindings/network/ScPlayer.cpp | 24 +- .../bindings/network/ScPlayerGroup.cpp | 18 +- .../scripting/bindings/network/ScSocket.hpp | 30 +- src/openrct2/world/Scenery.cpp | 2 +- 73 files changed, 1060 insertions(+), 1044 deletions(-) diff --git a/src/openrct2-ui/ProvisionalElements.cpp b/src/openrct2-ui/ProvisionalElements.cpp index 2f29a94a89..d5520d0d8c 100644 --- a/src/openrct2-ui/ProvisionalElements.cpp +++ b/src/openrct2-ui/ProvisionalElements.cpp @@ -37,7 +37,7 @@ namespace OpenRCT2::Ui } // This is in non performant so only make network games suffer for it // non networked games do not need this as its to prevent desyncs. - if ((NetworkGetMode() != NETWORK_MODE_NONE) && windowMgr->FindByClass(WindowClass::TrackDesignPlace) != nullptr) + if ((Network::GetMode() != Network::Mode::none) && windowMgr->FindByClass(WindowClass::TrackDesignPlace) != nullptr) { TrackPlaceClearProvisionalTemporarily(); } @@ -57,7 +57,7 @@ namespace OpenRCT2::Ui } // This is in non performant so only make network games suffer for it // non networked games do not need this as its to prevent desyncs. - if ((NetworkGetMode() != NETWORK_MODE_NONE) && windowMgr->FindByClass(WindowClass::TrackDesignPlace) != nullptr) + if ((Network::GetMode() != Network::Mode::none) && windowMgr->FindByClass(WindowClass::TrackDesignPlace) != nullptr) { TrackPlaceRestoreProvisional(); } diff --git a/src/openrct2-ui/input/Shortcuts.cpp b/src/openrct2-ui/input/Shortcuts.cpp index 1736a5eda6..45018b6e98 100644 --- a/src/openrct2-ui/input/Shortcuts.cpp +++ b/src/openrct2-ui/input/Shortcuts.cpp @@ -351,7 +351,7 @@ static void ShortcutReduceGameSpeed() if (gLegacyScene == LegacyScene::titleSequence) return; - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) GameReduceGameSpeed(); } @@ -360,7 +360,7 @@ static void ShortcutIncreaseGameSpeed() if (gLegacyScene == LegacyScene::titleSequence) return; - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) GameIncreaseGameSpeed(); } @@ -832,7 +832,7 @@ void ShortcutManager::RegisterDefaultShortcuts() } }); RegisterShortcut(ShortcutId::kInterfaceMultiplayerShow, STR_SHORTCUT_SHOW_MULTIPLAYER, []() { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { OpenWindow(WindowClass::Multiplayer); } diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index 3f0f36bfe1..38a22971f8 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -654,7 +654,7 @@ namespace OpenRCT2::Ui::Windows nullLoc.SetNull(); GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Pickup, EntityId::FromUnderlying(number), nullLoc, - NetworkGetCurrentPlayerId() }; + Network::GetCurrentPlayerId() }; pickupAction.SetCallback( [peepnum = number](const GameActions::GameAction* ga, const GameActions::Result* result) { if (result->Error != GameActions::Status::Ok) @@ -923,7 +923,7 @@ namespace OpenRCT2::Ui::Windows _beingWatchedTimer++; // Disable peep watching thought for multiplayer as it's client specific - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) { // Create the "I have the strangest feeling I am being watched thought" if (_beingWatchedTimer >= 3840) @@ -1024,7 +1024,7 @@ namespace OpenRCT2::Ui::Windows GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Place, EntityId::FromUnderlying(number), { destCoords, tileElement->GetBaseZ() }, - NetworkGetCurrentPlayerId() }; + Network::GetCurrentPlayerId() }; pickupAction.SetCallback([](const GameActions::GameAction* ga, const GameActions::Result* result) { if (result->Error != GameActions::Status::Ok) return; @@ -1042,7 +1042,7 @@ namespace OpenRCT2::Ui::Windows GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Cancel, EntityId::FromUnderlying(number), { _pickedPeepX, 0, 0 }, - NetworkGetCurrentPlayerId() }; + Network::GetCurrentPlayerId() }; GameActions::Execute(&pickupAction); } diff --git a/src/openrct2-ui/windows/LoadSave.cpp b/src/openrct2-ui/windows/LoadSave.cpp index 7a10e705ae..6eae4c8544 100644 --- a/src/openrct2-ui/windows/LoadSave.cpp +++ b/src/openrct2-ui/windows/LoadSave.cpp @@ -546,7 +546,7 @@ namespace OpenRCT2::Ui::Windows const bool isSave = action == LoadSaveAction::save; // Pause the game if not on title scene, nor in network play. - if (gLegacyScene != LegacyScene::titleSequence && NetworkGetMode() == NETWORK_MODE_NONE) + if (gLegacyScene != LegacyScene::titleSequence && Network::GetMode() == Network::Mode::none) { gGamePaused |= GAME_PAUSED_MODAL; Audio::StopAll(); @@ -594,7 +594,7 @@ namespace OpenRCT2::Ui::Windows Config::Save(); // Unpause the game if not on title scene, nor in network play. - if (gLegacyScene != LegacyScene::titleSequence && NetworkGetMode() == NETWORK_MODE_NONE) + if (gLegacyScene != LegacyScene::titleSequence && Network::GetMode() == Network::Mode::none) { gGamePaused &= ~GAME_PAUSED_MODAL; Audio::Resume(); diff --git a/src/openrct2-ui/windows/Multiplayer.cpp b/src/openrct2-ui/windows/Multiplayer.cpp index c4a6161f9a..bde045229c 100644 --- a/src/openrct2-ui/windows/Multiplayer.cpp +++ b/src/openrct2-ui/windows/Multiplayer.cpp @@ -136,7 +136,7 @@ namespace OpenRCT2::Ui::Windows static bool IsServerPlayerInvisible() { - return NetworkIsServerPlayerInvisible() && !Config::Get().general.DebuggingTools; + return Network::IsServerPlayerInvisible() && !Config::Get().general.DebuggingTools; } class MultiplayerWindow final : public Window @@ -263,8 +263,8 @@ namespace OpenRCT2::Ui::Windows } case WIDX_RENAME_GROUP: { - int32_t groupIndex = NetworkGetGroupIndex(_selectedGroup); - const utf8* groupName = NetworkGetGroupName(groupIndex); + int32_t groupIndex = Network::GetGroupIndex(_selectedGroup); + const utf8* groupName = Network::GetGroupName(groupIndex); WindowTextInputRawOpen( this, widgetIndex, STR_GROUP_NAME, STR_ENTER_NEW_NAME_FOR_THIS_GROUP, {}, groupName, 32); break; @@ -307,12 +307,12 @@ namespace OpenRCT2::Ui::Windows // Server name is displayed word-wrapped, so figure out how high it will be. { int32_t numLines; - GfxWrapString(NetworkGetServerName(), baseWidth, FontStyle::Medium, nullptr, &numLines); + GfxWrapString(Network::GetServerName(), baseWidth, FontStyle::Medium, nullptr, &numLines); baseHeight += (numLines + 1) * lineHeight + (kListRowHeight / 2); } // Likewise, for the optional server description -- which can be a little longer. - const auto& descString = NetworkGetServerDescription(); + const auto& descString = Network::GetServerDescription(); if (!descString.empty()) { int32_t numLines; @@ -322,15 +322,15 @@ namespace OpenRCT2::Ui::Windows // Finally, account for provider info, if present. { - const auto& providerName = NetworkGetServerProviderName(); + const auto& providerName = Network::GetServerProviderName(); if (!providerName.empty()) baseHeight += kListRowHeight; - const auto& providerEmail = NetworkGetServerProviderEmail(); + const auto& providerEmail = Network::GetServerProviderEmail(); if (!providerEmail.empty()) baseHeight += kListRowHeight; - const auto& providerWebsite = NetworkGetServerProviderWebsite(); + const auto& providerWebsite = Network::GetServerProviderWebsite(); if (!providerWebsite.empty()) baseHeight += kListRowHeight; } @@ -354,7 +354,7 @@ namespace OpenRCT2::Ui::Windows { WindowSetResize(*this, { 420, 124 }, { 500, 450 }); - no_list_items = (IsServerPlayerInvisible() ? NetworkGetNumVisiblePlayers() : NetworkGetNumPlayers()); + no_list_items = (IsServerPlayerInvisible() ? Network::GetNumVisiblePlayers() : Network::GetNumPlayers()); widgets[WIDX_HEADER_PING].right = width - 5; @@ -366,7 +366,7 @@ namespace OpenRCT2::Ui::Windows { WindowSetResize(*this, { 320, 200 }, { 320, 500 }); - no_list_items = NetworkGetNumActions(); + no_list_items = Network::GetNumActions(); selected_list_item = -1; Invalidate(); @@ -419,7 +419,7 @@ namespace OpenRCT2::Ui::Windows WindowAlignTabs(this, WIDX_TAB1, WIDX_TAB4); // select other group if one is removed - while (NetworkGetGroupIndex(_selectedGroup) == -1 && _selectedGroup > 0) + while (Network::GetGroupIndex(_selectedGroup) == -1 && _selectedGroup > 0) { _selectedGroup--; } @@ -429,7 +429,7 @@ namespace OpenRCT2::Ui::Windows { WindowAlignTabs(this, WIDX_TAB1, WIDX_TAB4); - if (NetworkGetMode() == NETWORK_MODE_CLIENT) + if (Network::GetMode() == Network::Mode::client) { widgets[WIDX_KNOWN_KEYS_ONLY_CHECKBOX].type = WidgetType::empty; } @@ -482,13 +482,13 @@ namespace OpenRCT2::Ui::Windows case WIDX_DEFAULT_GROUP_DROPDOWN: { auto networkModifyGroup = GameActions::NetworkModifyGroupAction( - GameActions::ModifyGroupType::SetDefault, NetworkGetGroupID(selectedIndex)); + GameActions::ModifyGroupType::SetDefault, Network::GetGroupID(selectedIndex)); GameActions::Execute(&networkModifyGroup); break; } case WIDX_SELECTED_GROUP_DROPDOWN: { - _selectedGroup = NetworkGetGroupID(selectedIndex); + _selectedGroup = Network::GetGroupID(selectedIndex); break; } } @@ -522,23 +522,23 @@ namespace OpenRCT2::Ui::Windows { auto widget = &widgets[widgetIndex]; Widget* dropdownWidget = widget - 1; - auto numItems = NetworkGetNumGroups(); + auto numItems = Network::GetNumGroups(); WindowDropdownShowTextCustomWidth( windowPos + ScreenCoordsXY{ dropdownWidget->left, dropdownWidget->top }, dropdownWidget->height() + 1, colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); - for (auto i = 0; i < NetworkGetNumGroups(); i++) + for (auto i = 0; i < Network::GetNumGroups(); i++) { - gDropdown.items[i] = Dropdown::MenuLabel(NetworkGetGroupName(i)); + gDropdown.items[i] = Dropdown::MenuLabel(Network::GetGroupName(i)); } if (widget == &widgets[WIDX_DEFAULT_GROUP_DROPDOWN]) { - gDropdown.items[NetworkGetGroupIndex(NetworkGetDefaultGroup())].setChecked(true); + gDropdown.items[Network::GetGroupIndex(Network::GetDefaultGroup())].setChecked(true); } else if (widget == &widgets[WIDX_SELECTED_GROUP_DROPDOWN]) { - gDropdown.items[NetworkGetGroupIndex(_selectedGroup)].setChecked(true); + gDropdown.items[Network::GetGroupIndex(_selectedGroup)].setChecked(true); } } @@ -573,7 +573,7 @@ namespace OpenRCT2::Ui::Windows Invalidate(); } - screenSize = { 0, NetworkGetNumPlayers() * kScrollableRowHeight }; + screenSize = { 0, Network::GetNumPlayers() * kScrollableRowHeight }; int32_t i = screenSize.height - widgets[WIDX_LIST].bottom + widgets[WIDX_LIST].top + 21; if (i < 0) i = 0; @@ -593,7 +593,7 @@ namespace OpenRCT2::Ui::Windows Invalidate(); } - screenSize = { 0, NetworkGetNumActions() * kScrollableRowHeight }; + screenSize = { 0, Network::GetNumActions() * kScrollableRowHeight }; int32_t i = screenSize.height - widgets[WIDX_LIST].bottom + widgets[WIDX_LIST].top + 21; if (i < 0) i = 0; @@ -622,7 +622,7 @@ namespace OpenRCT2::Ui::Windows Invalidate(); int32_t player = (IsServerPlayerInvisible() ? index + 1 : index); - PlayerOpen(NetworkGetPlayerID(player)); + PlayerOpen(Network::GetPlayerID(player)); break; } @@ -684,7 +684,7 @@ namespace OpenRCT2::Ui::Windows auto screenCoords = ScreenCoordsXY{ 3, widgets[WIDX_CONTENT_PANEL].top + 7 }; int32_t newWidth = width - 6; - const auto& name = NetworkGetServerName(); + const auto& name = Network::GetServerName(); { auto ft = Formatter(); ft.Add(name.c_str()); @@ -692,7 +692,7 @@ namespace OpenRCT2::Ui::Windows screenCoords.y += kListRowHeight / 2; } - const auto& description = NetworkGetServerDescription(); + const auto& description = Network::GetServerDescription(); if (!description.empty()) { auto ft = Formatter(); @@ -701,7 +701,7 @@ namespace OpenRCT2::Ui::Windows screenCoords.y += kListRowHeight / 2; } - const auto& providerName = NetworkGetServerProviderName(); + const auto& providerName = Network::GetServerProviderName(); if (!providerName.empty()) { auto ft = Formatter(); @@ -710,7 +710,7 @@ namespace OpenRCT2::Ui::Windows screenCoords.y += kListRowHeight; } - const auto& providerEmail = NetworkGetServerProviderEmail(); + const auto& providerEmail = Network::GetServerProviderEmail(); if (!providerEmail.empty()) { auto ft = Formatter(); @@ -719,7 +719,7 @@ namespace OpenRCT2::Ui::Windows screenCoords.y += kListRowHeight; } - const auto& providerWebsite = NetworkGetServerProviderWebsite(); + const auto& providerWebsite = Network::GetServerProviderWebsite(); if (!providerWebsite.empty()) { auto ft = Formatter(); @@ -747,7 +747,7 @@ namespace OpenRCT2::Ui::Windows const int32_t firstPlayerInList = (IsServerPlayerInvisible() ? 1 : 0); int32_t listPosition = 0; - for (int32_t player = firstPlayerInList; player < NetworkGetNumPlayers(); player++) + for (int32_t player = firstPlayerInList; player < Network::GetNumPlayers(); player++) { if (screenCoords.y > rt.y + rt.height) { @@ -767,12 +767,12 @@ namespace OpenRCT2::Ui::Windows GfxFilterRect( rt, { 0, screenCoords.y, 800, screenCoords.y + kScrollableRowHeight - 1 }, FilterPaletteID::PaletteDarken1); - _buffer += NetworkGetPlayerName(player); + _buffer += Network::GetPlayerName(player); colour = colours[2]; } else { - if (NetworkGetPlayerFlags(player) & NETWORK_PLAYER_FLAG_ISSERVER) + if (Network::GetPlayerFlags(player) & Network::NETWORK_PLAYER_FLAG_ISSERVER) { _buffer += "{BABYBLUE}"; } @@ -780,7 +780,7 @@ namespace OpenRCT2::Ui::Windows { _buffer += "{BLACK}"; } - _buffer += NetworkGetPlayerName(player); + _buffer += Network::GetPlayerName(player); } screenCoords.x = 0; GfxClipString(_buffer.data(), 230, FontStyle::Medium); @@ -788,22 +788,22 @@ namespace OpenRCT2::Ui::Windows // Draw group name _buffer.resize(0); - int32_t group = NetworkGetGroupIndex(NetworkGetPlayerGroup(player)); + int32_t group = Network::GetGroupIndex(Network::GetPlayerGroup(player)); if (group != -1) { _buffer += "{BLACK}"; screenCoords.x = 173; - _buffer += NetworkGetGroupName(group); + _buffer += Network::GetGroupName(group); GfxClipString(_buffer.data(), 80, FontStyle::Medium); DrawText(rt, screenCoords, { colour }, _buffer.c_str()); } // Draw last action - int32_t action = NetworkGetPlayerLastAction(player, 2000); + int32_t action = Network::GetPlayerLastAction(player, 2000); auto ft = Formatter(); if (action != -999) { - ft.Add(NetworkGetActionNameStringID(action)); + ft.Add(Network::GetActionNameStringID(action)); } else { @@ -813,7 +813,7 @@ namespace OpenRCT2::Ui::Windows // Draw ping _buffer.resize(0); - int32_t ping = NetworkGetPlayerPing(player); + int32_t ping = Network::GetPlayerPing(player); if (ping <= 100) { _buffer += "{GREEN}"; @@ -844,11 +844,11 @@ namespace OpenRCT2::Ui::Windows thread_local std::string _buffer; Widget* widget = &widgets[WIDX_DEFAULT_GROUP]; - int32_t group = NetworkGetGroupIndex(NetworkGetDefaultGroup()); + int32_t group = Network::GetGroupIndex(Network::GetDefaultGroup()); if (group != -1) { _buffer.assign("{WINDOW_COLOUR_2}"); - _buffer += NetworkGetGroupName(group); + _buffer += Network::GetGroupName(group); auto ft = Formatter(); ft.Add(_buffer.c_str()); @@ -869,11 +869,11 @@ namespace OpenRCT2::Ui::Windows INSET_RECT_FLAG_BORDER_INSET); widget = &widgets[WIDX_SELECTED_GROUP]; - group = NetworkGetGroupIndex(_selectedGroup); + group = Network::GetGroupIndex(_selectedGroup); if (group != -1) { _buffer.assign("{WINDOW_COLOUR_2}"); - _buffer += NetworkGetGroupName(group); + _buffer += Network::GetGroupName(group); auto ft = Formatter(); ft.Add(_buffer.c_str()); DrawTextEllipsised( @@ -891,7 +891,7 @@ namespace OpenRCT2::Ui::Windows rt, { rtCoords, rtCoords + ScreenCoordsXY{ rt.width - 1, rt.height - 1 } }, ColourMapA[colours[1].colour].mid_light); - for (int32_t i = 0; i < NetworkGetNumActions(); i++) + for (int32_t i = 0; i < Network::GetNumActions(); i++) { if (i == selected_list_item) { @@ -905,10 +905,10 @@ namespace OpenRCT2::Ui::Windows if (screenCoords.y + kScrollableRowHeight + 1 >= rt.y) { - int32_t groupindex = NetworkGetGroupIndex(_selectedGroup); + int32_t groupindex = Network::GetGroupIndex(_selectedGroup); if (groupindex != -1) { - if (NetworkCanPerformAction(groupindex, static_cast(i))) + if (Network::CanPerformAction(groupindex, static_cast(i))) { screenCoords.x = 0; DrawText(rt, screenCoords, {}, u8"{WINDOW_COLOUR_2}✓"); @@ -917,7 +917,7 @@ namespace OpenRCT2::Ui::Windows // Draw action name auto ft = Formatter(); - ft.Add(NetworkGetActionNameStringID(i)); + ft.Add(Network::GetActionNameStringID(i)); DrawTextBasic(rt, { 10, screenCoords.y }, STR_WINDOW_COLOUR_2_STRINGID, ft); } screenCoords.y += kScrollableRowHeight; diff --git a/src/openrct2-ui/windows/NetworkStatus.cpp b/src/openrct2-ui/windows/NetworkStatus.cpp index 834a3cb32b..fdbbf39184 100644 --- a/src/openrct2-ui/windows/NetworkStatus.cpp +++ b/src/openrct2-ui/windows/NetworkStatus.cpp @@ -78,11 +78,11 @@ namespace OpenRCT2::Ui::Windows } if (text.empty()) { - NetworkShutdownClient(); + Network::ShutdownClient(); } else { - NetworkSendPassword(_password); + Network::SendPassword(_password); } } diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index 4755cc3c1d..dd37f6ea65 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -1885,7 +1885,7 @@ namespace OpenRCT2::Ui::Windows Config::Get().general.AllowEarlyCompletion ^= 1; // Only the server can control this setting and needs to send the // current value of allow_early_completion to all clients - if (NetworkGetMode() == NETWORK_MODE_SERVER) + if (Network::GetMode() == Network::Mode::server) { auto setAllowEarlyCompletionAction = GameActions::ScenarioSetSettingAction( GameActions::ScenarioSetSetting::AllowEarlyCompletion, Config::Get().general.AllowEarlyCompletion); @@ -2011,7 +2011,7 @@ namespace OpenRCT2::Ui::Windows // The real name setting of clients is fixed to that of the server // and the server cannot change the setting during gameplay to prevent desyncs - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { disabled_widgets |= (1uLL << WIDX_REAL_NAMES_GUESTS_CHECKBOX) | (1uLL << WIDX_REAL_NAMES_STAFF_CHECKBOX); widgets[WIDX_REAL_NAMES_GUESTS_CHECKBOX].tooltip = STR_OPTION_DISABLED_DURING_NETWORK_PLAY; @@ -2020,7 +2020,7 @@ namespace OpenRCT2::Ui::Windows // Disable the use of the allow_early_completion option during network play on clients. // This is to prevent confusion on clients because changing this setting during network play wouldn't change // the way scenarios are completed during this network-session - if (NetworkGetMode() == NETWORK_MODE_CLIENT) + if (Network::GetMode() == Network::Mode::client) { disabled_widgets |= (1uLL << WIDX_ALLOW_EARLY_COMPLETION); widgets[WIDX_ALLOW_EARLY_COMPLETION].tooltip = STR_OPTION_DISABLED_DURING_NETWORK_PLAY; diff --git a/src/openrct2-ui/windows/Player.cpp b/src/openrct2-ui/windows/Player.cpp index fcae4297be..0006bc4890 100644 --- a/src/openrct2-ui/windows/Player.cpp +++ b/src/openrct2-ui/windows/Player.cpp @@ -280,7 +280,7 @@ namespace OpenRCT2::Ui::Windows void UpdateViewport(bool scroll) { - int32_t playerIndex = NetworkGetPlayerIndex(static_cast(number)); + int32_t playerIndex = Network::GetPlayerIndex(static_cast(number)); if (playerIndex == -1) { return; @@ -288,7 +288,7 @@ namespace OpenRCT2::Ui::Windows if (viewport != nullptr) { - auto coord = NetworkGetPlayerLastActionCoord(playerIndex); + auto coord = Network::GetPlayerLastActionCoord(playerIndex); if (coord.x != 0 || coord.y != 0 || coord.z != 0) { auto centreLoc = centre_2d_coordinates(coord, viewport); @@ -327,10 +327,10 @@ namespace OpenRCT2::Ui::Windows void UpdateTitle() { auto ft = Formatter::Common(); - int32_t player = NetworkGetPlayerIndex(static_cast(number)); + int32_t player = Network::GetPlayerIndex(static_cast(number)); if (player != -1) { - ft.Add(NetworkGetPlayerName(player)); // set title caption to player name + ft.Add(Network::GetPlayerName(player)); // set title caption to player name } else { @@ -350,7 +350,7 @@ namespace OpenRCT2::Ui::Windows frame_no++; InvalidateWidget(WIDX_TAB_1 + page); - if (NetworkGetPlayerIndex(static_cast(number)) == -1) + if (Network::GetPlayerIndex(static_cast(number)) == -1) { Close(); return; @@ -370,7 +370,7 @@ namespace OpenRCT2::Ui::Windows void OnPrepareDrawOverview() { - int32_t playerIndex = NetworkGetPlayerIndex(static_cast(number)); + int32_t playerIndex = Network::GetPlayerIndex(static_cast(number)); if (playerIndex == -1) { return; @@ -407,9 +407,10 @@ namespace OpenRCT2::Ui::Windows } // Only enable kick button for other players - const bool canKick = NetworkCanPerformAction(NetworkGetCurrentPlayerGroupIndex(), NetworkPermission::KickPlayer); - const bool isServer = NetworkGetPlayerFlags(playerIndex) & NETWORK_PLAYER_FLAG_ISSERVER; - const bool isOwnWindow = (NetworkGetCurrentPlayerId() == number); + const bool canKick = Network::CanPerformAction( + Network::GetCurrentPlayerGroupIndex(), Network::Permission::KickPlayer); + const bool isServer = Network::GetPlayerFlags(playerIndex) & Network::NETWORK_PLAYER_FLAG_ISSERVER; + const bool isOwnWindow = (Network::GetCurrentPlayerId() == number); widgetSetEnabled(*this, WIDX_KICK, canKick && !isOwnWindow && !isServer); } @@ -418,21 +419,21 @@ namespace OpenRCT2::Ui::Windows DrawWidgets(rt); DrawTabImages(rt); - int32_t player = NetworkGetPlayerIndex(static_cast(number)); + int32_t player = Network::GetPlayerIndex(static_cast(number)); if (player == -1) { return; } // Draw current group - int32_t groupindex = NetworkGetGroupIndex(NetworkGetPlayerGroup(player)); + int32_t groupindex = Network::GetGroupIndex(Network::GetPlayerGroup(player)); if (groupindex != -1) { Widget* widget = &widgets[WIDX_GROUP]; thread_local std::string _buffer; _buffer.assign("{WINDOW_COLOUR_2}"); - _buffer += NetworkGetGroupName(groupindex); + _buffer += Network::GetGroupName(groupindex); auto ft = Formatter(); ft.Add(_buffer.c_str()); @@ -448,17 +449,17 @@ namespace OpenRCT2::Ui::Windows ft.Add(STR_PING); DrawTextBasic(rt, screenCoords, STR_WINDOW_COLOUR_2_STRINGID, ft); char ping[64]; - snprintf(ping, 64, "%d ms", NetworkGetPlayerPing(player)); + snprintf(ping, 64, "%d ms", Network::GetPlayerPing(player)); DrawText(rt, screenCoords + ScreenCoordsXY(30, 0), { colours[2] }, ping); // Draw last action screenCoords = windowPos + ScreenCoordsXY{ width / 2, height - 13 }; int32_t updatedWidth = this->width - 8; - int32_t lastaction = NetworkGetPlayerLastAction(player, 0); + int32_t lastaction = Network::GetPlayerLastAction(player, 0); ft = Formatter(); if (lastaction != -999) { - ft.Add(NetworkGetActionNameStringID(lastaction)); + ft.Add(Network::GetActionNameStringID(lastaction)); } else { @@ -492,12 +493,12 @@ namespace OpenRCT2::Ui::Windows WindowBase* mainWindow = WindowGetMain(); if (mainWindow != nullptr) { - int32_t player = NetworkGetPlayerIndex(static_cast(number)); + int32_t player = Network::GetPlayerIndex(static_cast(number)); if (player == -1) { return; } - auto coord = NetworkGetPlayerLastActionCoord(player); + auto coord = Network::GetPlayerLastActionCoord(player); if (coord.x || coord.y || coord.z) { WindowScrollToLocation(*mainWindow, coord); @@ -517,7 +518,7 @@ namespace OpenRCT2::Ui::Windows void OnDropdownOverview(WidgetIndex widgetIndex, int32_t dropdownIndex) { const auto playerId = static_cast(number); - const auto playerIdx = NetworkGetPlayerIndex(playerId); + const auto playerIdx = Network::GetPlayerIndex(playerId); if (playerIdx == -1) { return; @@ -526,7 +527,7 @@ namespace OpenRCT2::Ui::Windows { return; } - const auto groupId = NetworkGetGroupID(dropdownIndex); + const auto groupId = Network::GetGroupID(dropdownIndex); const auto windowHandle = std::make_pair(classification, number); auto playerSetGroupAction = GameActions::PlayerSetGroupAction(playerId, groupId); playerSetGroupAction.SetCallback( @@ -544,7 +545,7 @@ namespace OpenRCT2::Ui::Windows { Widget* dropdownWidget; int32_t numItems, i; - int32_t player = NetworkGetPlayerIndex(static_cast(number)); + int32_t player = Network::GetPlayerIndex(static_cast(number)); if (player == -1) { return; @@ -552,18 +553,18 @@ namespace OpenRCT2::Ui::Windows dropdownWidget = widget - 1; - numItems = NetworkGetNumGroups(); + numItems = Network::GetNumGroups(); WindowDropdownShowTextCustomWidth( { windowPos.x + dropdownWidget->left, windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); - for (i = 0; i < NetworkGetNumGroups(); i++) + for (i = 0; i < Network::GetNumGroups(); i++) { - gDropdown.items[i] = Dropdown::MenuLabel(NetworkGetGroupName(i)); + gDropdown.items[i] = Dropdown::MenuLabel(Network::GetGroupName(i)); } - gDropdown.items[NetworkGetGroupIndex(NetworkGetPlayerGroup(player))].setChecked(true); + gDropdown.items[Network::GetGroupIndex(Network::GetPlayerGroup(player))].setChecked(true); } #pragma endregion @@ -580,7 +581,7 @@ namespace OpenRCT2::Ui::Windows frame_no++; InvalidateWidget(WIDX_TAB_1 + page); - if (NetworkGetPlayerIndex(static_cast(number)) == -1) + if (Network::GetPlayerIndex(static_cast(number)) == -1) { Close(); } @@ -602,7 +603,7 @@ namespace OpenRCT2::Ui::Windows DrawWidgets(rt); DrawTabImages(rt); - int32_t player = NetworkGetPlayerIndex(static_cast(number)); + int32_t player = Network::GetPlayerIndex(static_cast(number)); if (player == -1) { return; @@ -612,13 +613,13 @@ namespace OpenRCT2::Ui::Windows + ScreenCoordsXY{ widgets[WIDX_PAGE_BACKGROUND].left + 4, widgets[WIDX_PAGE_BACKGROUND].top + 4 }; auto ft = Formatter(); - ft.Add(NetworkGetPlayerCommandsRan(player)); + ft.Add(Network::GetPlayerCommandsRan(player)); DrawTextBasic(rt, screenCoords, STR_COMMANDS_RAN, ft); screenCoords.y += kListRowHeight; ft = Formatter(); - ft.Add(NetworkGetPlayerMoneySpent(player)); + ft.Add(Network::GetPlayerMoneySpent(player)); DrawTextBasic(rt, screenCoords, STR_MONEY_SPENT, ft); } diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index d1aa01970d..ac35e3a74c 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -4003,7 +4003,7 @@ namespace OpenRCT2::Ui::Windows WindowAlignTabs(this, WIDX_TAB_1, WIDX_TAB_10); - if (Config::Get().general.DebuggingTools && NetworkGetMode() == NETWORK_MODE_NONE) + if (Config::Get().general.DebuggingTools && Network::GetMode() == Network::Mode::none) { widgets[WIDX_FORCE_BREAKDOWN].type = WidgetType::flatBtn; } diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index e15e71441c..bb93c844d8 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -2352,7 +2352,7 @@ namespace OpenRCT2::Ui::Windows } OpenRCT2::Audio::Play3D(OpenRCT2::Audio::SoundId::PlaceItem, trackPos); - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { _currentTrackSelectionFlags.set(TrackSelectionFlag::trackPlaceActionQueued); } @@ -4723,7 +4723,7 @@ namespace OpenRCT2::Ui::Windows type = TrackElemType::BeginStation; } } - if (NetworkGetMode() == NETWORK_MODE_CLIENT) + if (Network::GetMode() == Network::Mode::client) { // rideConstructionState needs to be set again to the proper value, this only affects the client _rideConstructionState = RideConstructionState::Selected; diff --git a/src/openrct2-ui/windows/RideList.cpp b/src/openrct2-ui/windows/RideList.cpp index 4638750c62..74870420f7 100644 --- a/src/openrct2-ui/windows/RideList.cpp +++ b/src/openrct2-ui/windows/RideList.cpp @@ -279,7 +279,7 @@ namespace OpenRCT2::Ui::Windows OpenAllRides(); break; case WIDX_QUICK_DEMOLISH: - if (NetworkGetMode() != NETWORK_MODE_CLIENT) + if (Network::GetMode() != Network::Mode::client) { _quickDemolishMode = !_quickDemolishMode; } @@ -470,7 +470,7 @@ namespace OpenRCT2::Ui::Windows // Open ride window const auto selectedRideId = _rideList[index].Id; - if (_quickDemolishMode && NetworkGetMode() != NETWORK_MODE_CLIENT) + if (_quickDemolishMode && Network::GetMode() != Network::Mode::client) { auto gameAction = GameActions::RideDemolishAction(selectedRideId, GameActions::RideModifyType::demolish); GameActions::Execute(&gameAction); @@ -582,8 +582,8 @@ namespace OpenRCT2::Ui::Windows widgets[WIDX_QUICK_DEMOLISH].top = widgets[WIDX_OPEN_CLOSE_ALL].bottom + 3; } widgets[WIDX_QUICK_DEMOLISH].bottom = widgets[WIDX_QUICK_DEMOLISH].top + 23; - widgets[WIDX_QUICK_DEMOLISH].type = NetworkGetMode() != NETWORK_MODE_CLIENT ? WidgetType::flatBtn - : WidgetType::empty; + widgets[WIDX_QUICK_DEMOLISH].type = Network::GetMode() != Network::Mode::client ? WidgetType::flatBtn + : WidgetType::empty; } /** diff --git a/src/openrct2-ui/windows/SavePrompt.cpp b/src/openrct2-ui/windows/SavePrompt.cpp index 53103df32d..d1ed82d840 100644 --- a/src/openrct2-ui/windows/SavePrompt.cpp +++ b/src/openrct2-ui/windows/SavePrompt.cpp @@ -102,7 +102,7 @@ namespace OpenRCT2::Ui::Windows InitScrollWidgets(); // Pause the game if not network play. - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) { gGamePaused |= GAME_PAUSED_MODAL; Audio::StopAll(); @@ -130,7 +130,7 @@ namespace OpenRCT2::Ui::Windows void OnClose() override { // Unpause the game - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) { gGamePaused &= ~GAME_PAUSED_MODAL; Audio::Resume(); @@ -219,7 +219,7 @@ namespace OpenRCT2::Ui::Windows * and game_load_or_quit() are not called by the original binary anymore. */ - if (gScreenAge < 3840 && NetworkGetMode() == NETWORK_MODE_NONE) + if (gScreenAge < 3840 && Network::GetMode() == Network::Mode::none) { GameLoadOrQuitNoSavePrompt(); return nullptr; diff --git a/src/openrct2-ui/windows/Scenery.cpp b/src/openrct2-ui/windows/Scenery.cpp index b7edf80c08..52736fde7f 100644 --- a/src/openrct2-ui/windows/Scenery.cpp +++ b/src/openrct2-ui/windows/Scenery.cpp @@ -303,8 +303,8 @@ namespace OpenRCT2::Ui::Windows if (gWindowSceneryScatterEnabled) windowMgr->CloseByClass(WindowClass::SceneryScatter); else if ( - NetworkGetMode() != NETWORK_MODE_CLIENT - || NetworkCanPerformCommand(NetworkGetCurrentPlayerGroupIndex(), -2)) + Network::GetMode() != Network::Mode::client + || Network::CanPerformCommand(Network::GetCurrentPlayerGroupIndex(), -2)) { SceneryScatterOpen(); } @@ -2970,8 +2970,8 @@ namespace OpenRCT2::Ui::Windows int32_t quantity = 1; bool isCluster = gWindowSceneryScatterEnabled - && (NetworkGetMode() != NETWORK_MODE_CLIENT - || NetworkCanPerformCommand(NetworkGetCurrentPlayerGroupIndex(), -2)); + && (Network::GetMode() != Network::Mode::client + || Network::CanPerformCommand(Network::GetCurrentPlayerGroupIndex(), -2)); if (isCluster) { diff --git a/src/openrct2-ui/windows/ServerList.cpp b/src/openrct2-ui/windows/ServerList.cpp index e2da64104b..cff65682c5 100644 --- a/src/openrct2-ui/windows/ServerList.cpp +++ b/src/openrct2-ui/windows/ServerList.cpp @@ -78,8 +78,8 @@ namespace OpenRCT2::Ui::Windows { private: u8string _playerName; - ServerList _serverList; - std::future, StringId>> _fetchFuture; + Network::ServerList _serverList; + std::future, StringId>> _fetchFuture; uint32_t _numPlayersOnline = 0; StringId _statusText = STR_SERVER_LIST_CONNECTING; @@ -283,7 +283,7 @@ namespace OpenRCT2::Ui::Windows case WIDX_ADD_SERVER: { - ServerListEntry entry; + Network::ServerListEntry entry; entry.Address = text; entry.Name = text; entry.Favourite = true; @@ -311,7 +311,7 @@ namespace OpenRCT2::Ui::Windows { COLOUR_WHITE }); // Draw version number - std::string version = NetworkGetVersion(); + std::string version = Network::GetVersion(); auto ft = Formatter(); ft.Add(version.c_str()); DrawTextBasic( @@ -399,7 +399,7 @@ namespace OpenRCT2::Ui::Windows else { // Server online... check version - bool correctVersion = serverDetails.Version == NetworkGetVersion(); + bool correctVersion = serverDetails.Version == Network::GetVersion(); compatibilitySpriteId = correctVersion ? SPR_G2_RCT1_OPEN_BUTTON_2 : SPR_G2_RCT1_CLOSE_BUTTON_2; } GfxDrawSprite(rt, ImageId(compatibilitySpriteId), { right, screenCoords.y + 1 }); @@ -442,7 +442,7 @@ namespace OpenRCT2::Ui::Windows auto wanF = _serverList.FetchOnlineServerListAsync(); // Merge or deal with errors - std::vector allEntries; + std::vector allEntries; try { auto entries = lanF.get(); @@ -461,7 +461,7 @@ namespace OpenRCT2::Ui::Windows allEntries.reserve(allEntries.capacity() + entries.size()); allEntries.insert(allEntries.end(), entries.begin(), entries.end()); } - catch (const MasterServerException& e) + catch (const Network::MasterServerException& e) { status = e.StatusText; } @@ -470,7 +470,7 @@ namespace OpenRCT2::Ui::Windows { status = STR_SERVER_LIST_NO_CONNECTION; } - return std::make_tuple(allEntries, status); + return std::make_pair(allEntries, status); }); } @@ -493,7 +493,7 @@ namespace OpenRCT2::Ui::Windows _statusText = statusText; } } - catch (const MasterServerException& e) + catch (const Network::MasterServerException& e) { _statusText = e.StatusText; } @@ -547,7 +547,7 @@ namespace OpenRCT2::Ui::Windows void JoinServer(std::string address) { - int32_t port = kNetworkDefaultPort; + int32_t port = Network::kNetworkDefaultPort; auto endBracketIndex = address.find(']'); auto colonIndex = address.find_last_of(':'); if (colonIndex != std::string::npos) @@ -569,7 +569,7 @@ namespace OpenRCT2::Ui::Windows address = address.substr(beginBracketIndex + 1, endBracketIndex - beginBracketIndex - 1); } - if (!NetworkBeginClient(address, port)) + if (!Network::BeginClient(address, port)) { ContextShowError(STR_UNABLE_TO_CONNECT_TO_SERVER, kStringIdNone, {}); } diff --git a/src/openrct2-ui/windows/ServerStart.cpp b/src/openrct2-ui/windows/ServerStart.cpp index f2f682df76..c1870f99b4 100644 --- a/src/openrct2-ui/windows/ServerStart.cpp +++ b/src/openrct2-ui/windows/ServerStart.cpp @@ -97,7 +97,7 @@ namespace OpenRCT2::Ui::Windows WindowStartTextbox(*this, widgetIndex, _name, 64); break; case WIDX_DESCRIPTION_INPUT: - WindowStartTextbox(*this, widgetIndex, _description, kMaxServerDescriptionLength); + WindowStartTextbox(*this, widgetIndex, _description, Network::kMaxServerDescriptionLength); break; case WIDX_GREETING_INPUT: WindowStartTextbox(*this, widgetIndex, _greeting, kChatInputSize); @@ -127,11 +127,11 @@ namespace OpenRCT2::Ui::Windows Invalidate(); break; case WIDX_START_SERVER: - NetworkSetPassword(_password); + Network::SetPassword(_password); ScenarioselectOpen(ScenarioSelectCallback); break; case WIDX_LOAD_SERVER: - NetworkSetPassword(_password); + Network::SetPassword(_password); auto intent = Intent(WindowClass::Loadsave); intent.PutEnumExtra(INTENT_EXTRA_LOADSAVE_ACTION, LoadSaveAction::load); intent.PutEnumExtra(INTENT_EXTRA_LOADSAVE_TYPE, LoadSaveType::park); @@ -249,7 +249,7 @@ namespace OpenRCT2::Ui::Windows private: char _port[7]; char _name[65]; - char _description[kMaxServerDescriptionLength]; + char _description[Network::kMaxServerDescriptionLength]; char _greeting[kChatInputSize]; char _password[33]; static void ScenarioSelectCallback(const utf8* path) @@ -257,7 +257,7 @@ namespace OpenRCT2::Ui::Windows GameNotifyMapChange(); if (GetContext()->LoadParkFromFile(path, false, true)) { - NetworkBeginServer(Config::Get().network.DefaultPort, Config::Get().network.ListenAddress); + Network::BeginServer(Config::Get().network.DefaultPort, Config::Get().network.ListenAddress); } } @@ -267,7 +267,7 @@ namespace OpenRCT2::Ui::Windows { GameNotifyMapChange(); GetContext()->LoadParkFromFile(path); - NetworkBeginServer(Config::Get().network.DefaultPort, Config::Get().network.ListenAddress); + Network::BeginServer(Config::Get().network.DefaultPort, Config::Get().network.ListenAddress); } } }; diff --git a/src/openrct2-ui/windows/Staff.cpp b/src/openrct2-ui/windows/Staff.cpp index bed04dd4cd..93e039abdb 100644 --- a/src/openrct2-ui/windows/Staff.cpp +++ b/src/openrct2-ui/windows/Staff.cpp @@ -384,7 +384,7 @@ namespace OpenRCT2::Ui::Windows nullLoc.SetNull(); GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Pickup, EntityId::FromUnderlying(number), nullLoc, - NetworkGetCurrentPlayerId() }; + Network::GetCurrentPlayerId() }; pickupAction.SetCallback( [peepnum = number](const GameActions::GameAction* ga, const GameActions::Result* result) { if (result->Error != GameActions::Status::Ok) @@ -712,7 +712,7 @@ namespace OpenRCT2::Ui::Windows GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Place, staffEntityId, { destCoords, tileElement->GetBaseZ() }, - NetworkGetCurrentPlayerId() }; + Network::GetCurrentPlayerId() }; pickupAction.SetCallback([](const GameActions::GameAction* ga, const GameActions::Result* result) { if (result->Error != GameActions::Status::Ok) return; @@ -730,7 +730,7 @@ namespace OpenRCT2::Ui::Windows GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Cancel, EntityId::FromUnderlying(number), { _pickedPeepOldX, 0, 0 }, - NetworkGetCurrentPlayerId() }; + Network::GetCurrentPlayerId() }; GameActions::Execute(&pickupAction); } diff --git a/src/openrct2-ui/windows/StaffList.cpp b/src/openrct2-ui/windows/StaffList.cpp index c32c1b9a5d..e1d4174e2b 100644 --- a/src/openrct2-ui/windows/StaffList.cpp +++ b/src/openrct2-ui/windows/StaffList.cpp @@ -554,7 +554,7 @@ namespace OpenRCT2::Ui::Windows nullLoc.SetNull(); GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Pickup, staff->Id, nullLoc, - NetworkGetCurrentPlayerId() }; + Network::GetCurrentPlayerId() }; pickupAction.SetCallback( [staffId = staff->Id](const GameActions::GameAction* ga, const GameActions::Result* result) { if (result->Error != GameActions::Status::Ok) diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index b79bf3c2eb..ed2bc5d50f 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -306,7 +306,7 @@ namespace OpenRCT2::Ui::Windows switch (widgetIndex) { case WIDX_PAUSE: - if (NetworkGetMode() != NETWORK_MODE_CLIENT) + if (Network::GetMode() != Network::Mode::client) { auto pauseToggleAction = GameActions::PauseToggleAction(); GameActions::Execute(&pauseToggleAction); @@ -699,16 +699,16 @@ namespace OpenRCT2::Ui::Windows void ApplyNetworkMode() { - switch (NetworkGetMode()) + switch (Network::GetMode()) { - case NETWORK_MODE_NONE: + case Network::Mode::none: widgets[WIDX_NETWORK].type = WidgetType::empty; widgets[WIDX_CHAT].type = WidgetType::empty; break; - case NETWORK_MODE_CLIENT: + case Network::Mode::client: widgets[WIDX_PAUSE].type = WidgetType::empty; [[fallthrough]]; - case NETWORK_MODE_SERVER: + case Network::Mode::server: widgets[WIDX_FASTFORWARD].type = WidgetType::empty; break; } @@ -983,12 +983,12 @@ namespace OpenRCT2::Ui::Windows screenPos.y++; // Draw (de)sync icon. - imgId = (NetworkIsDesynchronised() ? SPR_G2_MULTIPLAYER_DESYNC : SPR_G2_MULTIPLAYER_SYNC); + imgId = (Network::IsDesynchronised() ? SPR_G2_MULTIPLAYER_DESYNC : SPR_G2_MULTIPLAYER_SYNC); GfxDrawSprite(rt, ImageId(imgId), screenPos + ScreenCoordsXY{ 3, 11 }); // Draw number of players. auto ft = Formatter(); - ft.Add(NetworkGetNumVisiblePlayers()); + ft.Add(Network::GetNumVisiblePlayers()); auto colour = ColourWithFlags{ COLOUR_WHITE }.withFlag(ColourFlag::withOutline, true); DrawTextBasic(rt, screenPos + ScreenCoordsXY{ 23, 1 }, STR_COMMA16, ft, { colour, TextAlignment::RIGHT }); } @@ -1395,7 +1395,7 @@ namespace OpenRCT2::Ui::Windows colours[0].withFlag(ColourFlag::translucent, true), Dropdown::Flag::StayOpen, TOP_TOOLBAR_CHEATS_COUNT); // Disable items that are not yet available in multiplayer - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { gDropdown.items[DDIDX_OBJECT_SELECTION].setDisabled(true); gDropdown.items[DDIDX_INVENTIONS_LIST].setDisabled(true); @@ -1514,7 +1514,7 @@ namespace OpenRCT2::Ui::Windows { windowPos.x + widget.left, windowPos.y + widget.top }, widget.height() + 1, colours[0].withFlag(ColourFlag::translucent, true), 0, TOP_TOOLBAR_NETWORK_COUNT); - gDropdown.items[DDIDX_MULTIPLAYER_RECONNECT].setDisabled(!NetworkIsDesynchronised()); + gDropdown.items[DDIDX_MULTIPLAYER_RECONNECT].setDisabled(!Network::IsDesynchronised()); gDropdown.defaultIndex = DDIDX_MULTIPLAYER; } @@ -1530,7 +1530,7 @@ namespace OpenRCT2::Ui::Windows ContextOpenWindow(WindowClass::Multiplayer); break; case DDIDX_MULTIPLAYER_RECONNECT: - NetworkReconnect(); + Network::Reconnect(); break; } } diff --git a/src/openrct2/Context.cpp b/src/openrct2/Context.cpp index 80a6f5c2f7..cee23e502c 100644 --- a/src/openrct2/Context.cpp +++ b/src/openrct2/Context.cpp @@ -117,14 +117,14 @@ namespace OpenRCT2 std::unique_ptr _gameStateSnapshots; std::unique_ptr _assetPackManager; #ifdef __ENABLE_DISCORD__ - std::unique_ptr _discordService; + std::unique_ptr _discordService; #endif StdInOutConsole _stdInOutConsole; #ifdef ENABLE_SCRIPTING ScriptEngine _scriptEngine; #endif #ifndef DISABLE_NETWORK - NetworkBase _network; + Network::NetworkBase _network; #endif // Scenes @@ -303,7 +303,7 @@ namespace OpenRCT2 } #ifndef DISABLE_NETWORK - NetworkBase& GetNetwork() override + Network::NetworkBase& GetNetwork() override { return _network; } @@ -476,7 +476,7 @@ namespace OpenRCT2 #ifdef __ENABLE_DISCORD__ if (!gOpenRCT2Headless) { - _discordService = std::make_unique(); + _discordService = std::make_unique(); } #endif @@ -842,14 +842,14 @@ namespace OpenRCT2 if (!asScenario && (info.Type == FileType::park || info.Type == FileType::savedGame)) { #ifndef DISABLE_NETWORK - if (_network.GetMode() == NETWORK_MODE_CLIENT) + if (_network.GetMode() == Network::Mode::client) { _network.Close(); } #endif GameLoadInit(); #ifndef DISABLE_NETWORK - if (_network.GetMode() == NETWORK_MODE_SERVER) + if (_network.GetMode() == Network::Mode::server) { sendMap = true; } @@ -859,11 +859,11 @@ namespace OpenRCT2 { ScenarioBegin(gameState); #ifndef DISABLE_NETWORK - if (_network.GetMode() == NETWORK_MODE_SERVER) + if (_network.GetMode() == Network::Mode::server) { sendMap = true; } - if (_network.GetMode() == NETWORK_MODE_CLIENT) + if (_network.GetMode() == Network::Mode::client) { _network.Close(); } @@ -880,7 +880,7 @@ namespace OpenRCT2 #endif #ifdef USE_BREAKPAD - if (_network.GetMode() == NETWORK_MODE_NONE) + if (_network.GetMode() == Network::Mode::none) { StartSilentRecord(); } @@ -1155,7 +1155,7 @@ namespace OpenRCT2 if (isGameScene) { #ifndef DISABLE_NETWORK - if (gNetworkStart == NETWORK_MODE_SERVER) + if (gNetworkStart == Network::Mode::server) { if (gNetworkStartPort == 0) { @@ -1186,7 +1186,7 @@ namespace OpenRCT2 } #ifndef DISABLE_NETWORK - else if (gNetworkStart == NETWORK_MODE_CLIENT) + else if (gNetworkStart == Network::Mode::client) { if (gNetworkStartPort == 0) { diff --git a/src/openrct2/Context.h b/src/openrct2/Context.h index e007be6f13..05542a855d 100644 --- a/src/openrct2/Context.h +++ b/src/openrct2/Context.h @@ -77,8 +77,6 @@ enum CURSOR_PRESSED = CURSOR_DOWN | CURSOR_CHANGED, }; -class NetworkBase; - namespace OpenRCT2 { class AssetPackManager; @@ -102,6 +100,11 @@ namespace OpenRCT2 class LocalisationService; } + namespace Network + { + class NetworkBase; + } + namespace Scripting { class ScriptEngine; @@ -142,7 +145,7 @@ namespace OpenRCT2 virtual Drawing::IDrawingEngine* GetDrawingEngine() = 0; virtual Paint::Painter* GetPainter() = 0; #ifndef DISABLE_NETWORK - virtual NetworkBase& GetNetwork() = 0; + virtual Network::NetworkBase& GetNetwork() = 0; #endif virtual IScene* GetPreloaderScene() = 0; diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index 14bd313b33..f47ef51535 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -370,7 +370,7 @@ void GameLoadInit() auto& gameState = getGameState(); windowManager->SetMainView(gameState.savedView, gameState.savedViewZoom, gameState.savedViewRotation); - if (NetworkGetMode() != NETWORK_MODE_CLIENT) + if (Network::GetMode() != Network::Mode::client) { GameActions::ClearQueue(); } diff --git a/src/openrct2/GameState.cpp b/src/openrct2/GameState.cpp index bc2a00652b..bef80c4442 100644 --- a/src/openrct2/GameState.cpp +++ b/src/openrct2/GameState.cpp @@ -121,12 +121,12 @@ namespace OpenRCT2 } } - NetworkUpdate(); + Network::Update(); - if (NetworkGetMode() == NETWORK_MODE_CLIENT && NetworkGetStatus() == NETWORK_STATUS_CONNECTED - && NetworkGetAuthstatus() == NetworkAuth::Ok) + if (Network::GetMode() == Network::Mode::client && Network::GetStatus() == Network::Status::connected + && Network::GetAuthstatus() == Network::Auth::ok) { - numUpdates = std::clamp(NetworkGetServerTick() - getGameState().currentTicks, 0, 10); + numUpdates = std::clamp(Network::GetServerTick() - getGameState().currentTicks, 0, 10); } else { @@ -139,10 +139,10 @@ namespace OpenRCT2 } bool isPaused = GameIsPaused(); - if (NetworkGetMode() == NETWORK_MODE_SERVER && Config::Get().network.PauseServerIfNoClients) + if (Network::GetMode() == Network::Mode::server && Config::Get().network.PauseServerIfNoClients) { // If we are headless we always have 1 player (host), pause if no one else is around. - if (gOpenRCT2Headless && NetworkGetNumPlayers() == 1) + if (gOpenRCT2Headless && Network::GetNumPlayers() == 1) { isPaused |= true; } @@ -151,7 +151,7 @@ namespace OpenRCT2 bool didRunSingleFrame = false; if (isPaused) { - if (gDoSingleUpdate && NetworkGetMode() == NETWORK_MODE_NONE) + if (gDoSingleUpdate && Network::GetMode() == Network::Mode::none) { didRunSingleFrame = true; PauseToggle(); @@ -163,17 +163,17 @@ namespace OpenRCT2 // If the game is paused it will not call UpdateLogic at all. numUpdates = 0; - if (NetworkGetMode() == NETWORK_MODE_SERVER) + if (Network::GetMode() == Network::Mode::server) { // Make sure the client always knows about what tick the host is on. - NetworkSendTick(); + Network::SendTick(); } // Keep updating the money effect even when paused. getGameState().entities.UpdateMoneyEffect(); // Post-tick network update - NetworkProcessPending(); + Network::ProcessPending(); // Post-tick game actions. GameActions::ProcessQueue(); @@ -206,7 +206,7 @@ namespace OpenRCT2 break; } - NetworkFlush(); + Network::Flush(); if (!gOpenRCT2Headless) { @@ -251,41 +251,41 @@ namespace OpenRCT2 GetContext()->GetReplayManager()->Update(); - NetworkUpdate(); + Network::Update(); auto& gameState = getGameState(); - if (NetworkGetMode() == NETWORK_MODE_SERVER) + if (Network::GetMode() == Network::Mode::server) { - if (NetworkGamestateSnapshotsEnabled()) + if (Network::GamestateSnapshotsEnabled()) { gameStateCreateStateSnapshot(); } // Send current tick out. - NetworkSendTick(); + Network::SendTick(); } - else if (NetworkGetMode() == NETWORK_MODE_CLIENT) + else if (Network::GetMode() == Network::Mode::client) { // Don't run past the server, this condition can happen during map changes. - if (NetworkGetServerTick() == gameState.currentTicks) + if (Network::GetServerTick() == gameState.currentTicks) { gInUpdateCode = false; return; } // Check desync. - bool desynced = NetworkCheckDesynchronisation(); + bool desynced = Network::CheckDesynchronisation(); if (desynced) { // If desync debugging is enabled and we are still connected request the specific game state from server. - if (NetworkGamestateSnapshotsEnabled() && NetworkGetStatus() == NETWORK_STATUS_CONNECTED) + if (Network::GamestateSnapshotsEnabled() && Network::GetStatus() == Network::Status::connected) { // Create snapshot from this tick so we can compare it later // as we won't pause the game on this event. gameStateCreateStateSnapshot(); - NetworkRequestGamestateSnapshot(); + Network::RequestGamestateSnapshot(); } } } @@ -343,8 +343,8 @@ namespace OpenRCT2 GameActions::ProcessQueue(); - NetworkProcessPending(); - NetworkFlush(); + Network::ProcessPending(); + Network::Flush(); gameState.currentTicks++; diff --git a/src/openrct2/OpenRCT2.h b/src/openrct2/OpenRCT2.h index 37dbcbe4bc..f24ef8b3dc 100644 --- a/src/openrct2/OpenRCT2.h +++ b/src/openrct2/OpenRCT2.h @@ -51,7 +51,12 @@ extern u8string gSilentRecordingName; extern bool gSilentReplays; #ifndef DISABLE_NETWORK -extern int32_t gNetworkStart; +namespace OpenRCT2::Network +{ + enum class Mode : int32_t; +} + +extern OpenRCT2::Network::Mode gNetworkStart; extern std::string gNetworkStartHost; extern int32_t gNetworkStartPort; extern std::string gNetworkStartAddress; diff --git a/src/openrct2/ReplayManager.cpp b/src/openrct2/ReplayManager.cpp index 7c781ac618..f3db8ba3ba 100644 --- a/src/openrct2/ReplayManager.cpp +++ b/src/openrct2/ReplayManager.cpp @@ -249,7 +249,7 @@ namespace OpenRCT2 auto replayData = std::make_unique(); replayData->magic = kReplayMagic; replayData->version = kReplayVersion; - replayData->networkId = NetworkGetVersion(); + replayData->networkId = Network::GetVersion(); replayData->name = name; replayData->tickStart = currentTicks; if (maxTicks != k_MaxReplayTicks) @@ -715,11 +715,11 @@ namespace OpenRCT2 serialiser << data.networkId; #ifndef DISABLE_NETWORK // NOTE: This does not mean the replay will not function, only a warning. - if (data.networkId != NetworkGetVersion()) + if (data.networkId != Network::GetVersion()) { LOG_WARNING( "Replay network version mismatch: '%s', expected: '%s'", data.networkId.c_str(), - NetworkGetVersion().c_str()); + Network::GetVersion().c_str()); } #endif diff --git a/src/openrct2/actions/CheatSetAction.cpp b/src/openrct2/actions/CheatSetAction.cpp index 629539564a..07f6e55c69 100644 --- a/src/openrct2/actions/CheatSetAction.cpp +++ b/src/openrct2/actions/CheatSetAction.cpp @@ -279,7 +279,7 @@ namespace OpenRCT2::GameActions } } - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) { Config::Save(); } diff --git a/src/openrct2/actions/CheatSetAction.h b/src/openrct2/actions/CheatSetAction.h index 062fd18428..c96b0370b4 100644 --- a/src/openrct2/actions/CheatSetAction.h +++ b/src/openrct2/actions/CheatSetAction.h @@ -18,7 +18,7 @@ namespace OpenRCT2::GameActions using ParametersRange = std::pair, std::pair>; private: - NetworkCheatType_t _cheatType{ EnumValue(CheatType::Count) }; + Network::CheatType_t _cheatType{ EnumValue(CheatType::Count) }; int64_t _param1{}; int64_t _param2{}; diff --git a/src/openrct2/actions/GameAction.cpp b/src/openrct2/actions/GameAction.cpp index b4d468630a..cd8838e08e 100644 --- a/src/openrct2/actions/GameAction.cpp +++ b/src/openrct2/actions/GameAction.cpp @@ -82,11 +82,11 @@ namespace OpenRCT2::GameActions void Enqueue(GameAction::Ptr&& ga, uint32_t tick) { - if (ga->GetPlayer() == -1 && NetworkGetMode() != NETWORK_MODE_NONE) + if (ga->GetPlayer() == -1 && Network::GetMode() != Network::Mode::none) { // Server can directly invoke actions and will have no player id assigned // as that normally happens when receiving them over network. - ga->SetPlayer(NetworkGetCurrentPlayerId()); + ga->SetPlayer(Network::GetCurrentPlayerId()); } _actionQueue.emplace(tick, std::move(ga), _nextUniqueId++); } @@ -106,7 +106,7 @@ namespace OpenRCT2::GameActions // run all the game commands at the current tick const QueuedGameAction& queued = *_actionQueue.begin(); - if (NetworkGetMode() == NETWORK_MODE_CLIENT) + if (Network::GetMode() == Network::Mode::client) { if (queued.tick < currentTick) { @@ -143,10 +143,10 @@ namespace OpenRCT2::GameActions Guard::Assert(action != nullptr); Result result = Execute(action); - if (result.Error == Status::Ok && NetworkGetMode() == NETWORK_MODE_SERVER) + if (result.Error == Status::Ok && Network::GetMode() == Network::Mode::server) { // Relay this action to all other clients. - NetworkSendGameAction(action); + Network::SendGameAction(action); } _actionQueue.erase(_actionQueue.begin()); @@ -231,9 +231,9 @@ namespace OpenRCT2::GameActions static const char* GetRealm() { - if (NetworkGetMode() == NETWORK_MODE_CLIENT) + if (Network::GetMode() == Network::Mode::client) return "cl"; - if (NetworkGetMode() == NETWORK_MODE_SERVER) + if (Network::GetMode() == Network::Mode::server) return "sv"; return "sp"; } @@ -280,7 +280,7 @@ namespace OpenRCT2::GameActions const char* text = static_cast(output.GetData()); LOG_VERBOSE("%s", text); - NetworkAppendServerLog(text); + Network::AppendServerLog(text); } static Result ExecuteInternal(const GameAction* action, bool topLevel) @@ -311,7 +311,8 @@ namespace OpenRCT2::GameActions Result result = QueryInternal(action, topLevel); #ifdef ENABLE_SCRIPTING - if (result.Error == Status::Ok && ((NetworkGetMode() == NETWORK_MODE_NONE) || (flags & GAME_COMMAND_FLAG_NETWORKED))) + if (result.Error == Status::Ok + && ((Network::GetMode() == Network::Mode::none) || (flags & GAME_COMMAND_FLAG_NETWORKED))) { auto& scriptEngine = GetContext()->GetScriptEngine(); scriptEngine.RunGameActionHooks(*action, result, false); @@ -323,18 +324,18 @@ namespace OpenRCT2::GameActions if (topLevel) { // Networked games send actions to the server to be run - if (NetworkGetMode() == NETWORK_MODE_CLIENT) + if (Network::GetMode() == Network::Mode::client) { // As a client we have to wait or send it first. if (!(actionFlags & Flags::ClientOnly) && !(flags & GAME_COMMAND_FLAG_NETWORKED)) { LOG_VERBOSE("[%s] GameAction::Execute %s (Out)", GetRealm(), action->GetName()); - NetworkSendGameAction(action); + Network::SendGameAction(action); return result; } } - else if (NetworkGetMode() == NETWORK_MODE_SERVER || !gInUpdateCode) + else if (Network::GetMode() == Network::Mode::server || !gInUpdateCode) { // If player is the server it would execute right away as where clients execute the commands // at the beginning of the frame, so we have to put them into the queue. @@ -378,24 +379,24 @@ namespace OpenRCT2::GameActions if (!(actionFlags & Flags::ClientOnly) && result.Error == Status::Ok) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { - NetworkPlayerId_t playerId = action->GetPlayer(); + Network::PlayerId_t playerId = action->GetPlayer(); - int32_t playerIndex = NetworkGetPlayerIndex(playerId.id); + int32_t playerIndex = Network::GetPlayerIndex(playerId.id); Guard::Assert( playerIndex != -1, "Unable to find player %u for game action %u", playerId, action->GetType()); - NetworkSetPlayerLastAction(playerIndex, action->GetType()); - NetworkIncrementPlayerNumCommands(playerIndex); + Network::SetPlayerLastAction(playerIndex, action->GetType()); + Network::IncrementPlayerNumCommands(playerIndex); if (result.Cost > 0) { - NetworkAddPlayerMoneySpent(playerIndex, result.Cost); + Network::AddPlayerMoneySpent(playerIndex, result.Cost); } if (!result.Position.IsNull()) { - NetworkSetPlayerLastActionCoord(playerIndex, result.Position); + Network::SetPlayerLastActionCoord(playerIndex, result.Position); } } else @@ -435,12 +436,12 @@ namespace OpenRCT2::GameActions bool shouldShowError = !(flags & GAME_COMMAND_FLAG_GHOST) && !(flags & GAME_COMMAND_FLAG_NO_SPEND) && topLevel; // In network mode the error should be only shown to the issuer of the action. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { // If the action was never networked and query fails locally the player id is not assigned. // So compare only if the action went into the queue otherwise show errors by default. const bool isActionFromNetwork = (action->GetFlags() & GAME_COMMAND_FLAG_NETWORKED) != 0; - if (isActionFromNetwork && action->GetPlayer() != NetworkGetCurrentPlayerId()) + if (isActionFromNetwork && action->GetPlayer() != Network::GetCurrentPlayerId()) { shouldShowError = false; } diff --git a/src/openrct2/actions/GameAction.h b/src/openrct2/actions/GameAction.h index 7c215fbbde..d3a305df66 100644 --- a/src/openrct2/actions/GameAction.h +++ b/src/openrct2/actions/GameAction.h @@ -98,7 +98,7 @@ namespace OpenRCT2::GameActions } template - void Visit(std::string_view name, NetworkObjectId& param) + void Visit(std::string_view name, Network::NetworkObjectId& param) { Visit(name, param.id); } @@ -113,8 +113,8 @@ namespace OpenRCT2::GameActions private: GameCommand const _type; - NetworkPlayerId_t _playerId = { -1 }; // Callee - uint32_t _flags = 0; // GAME_COMMAND_FLAGS + Network::PlayerId_t _playerId = { -1 }; // Callee + uint32_t _flags = 0; // GAME_COMMAND_FLAGS uint32_t _networkId = 0; Callback_t _callback; @@ -137,12 +137,12 @@ namespace OpenRCT2::GameActions visitor.Visit("flags", _flags); } - NetworkPlayerId_t GetPlayer() const + Network::PlayerId_t GetPlayer() const { return _playerId; } - void SetPlayer(NetworkPlayerId_t playerId) + void SetPlayer(Network::PlayerId_t playerId) { _playerId = playerId; } diff --git a/src/openrct2/actions/NetworkModifyGroupAction.cpp b/src/openrct2/actions/NetworkModifyGroupAction.cpp index b8f00e5382..621c2059cd 100644 --- a/src/openrct2/actions/NetworkModifyGroupAction.cpp +++ b/src/openrct2/actions/NetworkModifyGroupAction.cpp @@ -47,11 +47,11 @@ namespace OpenRCT2::GameActions Result NetworkModifyGroupAction::Query() const { - return NetworkModifyGroups(GetPlayer(), _type, _groupId, _name, _permissionIndex, _permissionState, false); + return Network::ModifyGroups(GetPlayer(), _type, _groupId, _name, _permissionIndex, _permissionState, false); } Result NetworkModifyGroupAction::Execute() const { - return NetworkModifyGroups(GetPlayer(), _type, _groupId, _name, _permissionIndex, _permissionState, true); + return Network::ModifyGroups(GetPlayer(), _type, _groupId, _name, _permissionIndex, _permissionState, true); } } // namespace OpenRCT2::GameActions diff --git a/src/openrct2/actions/PeepPickupAction.cpp b/src/openrct2/actions/PeepPickupAction.cpp index 84fcd200f7..c30efbbe7a 100644 --- a/src/openrct2/actions/PeepPickupAction.cpp +++ b/src/openrct2/actions/PeepPickupAction.cpp @@ -18,7 +18,7 @@ namespace OpenRCT2::GameActions { - PeepPickupAction::PeepPickupAction(PeepPickupType type, EntityId entityId, const CoordsXYZ& loc, NetworkPlayerId_t owner) + PeepPickupAction::PeepPickupAction(PeepPickupType type, EntityId entityId, const CoordsXYZ& loc, Network::PlayerId_t owner) : _type(type) , _entityId(entityId) , _loc(loc) @@ -77,12 +77,12 @@ namespace OpenRCT2::GameActions { return Result(Status::Disallowed, STR_ERR_CANT_PLACE_PERSON_HERE, kStringIdNone); } - Peep* existing = NetworkGetPickupPeep(_owner); + Peep* existing = Network::GetPickupPeep(_owner); if (existing != nullptr) { // already picking up a peep PeepPickupAction existingPickupAction{ - PeepPickupType::Cancel, existing->Id, { NetworkGetPickupPeepOldX(_owner), 0, 0 }, _owner + PeepPickupType::Cancel, existing->Id, { Network::GetPickupPeepOldX(_owner), 0, 0 }, _owner }; auto result = QueryNested(&existingPickupAction); @@ -98,7 +98,7 @@ namespace OpenRCT2::GameActions break; case PeepPickupType::Place: res.Position = _loc; - if (NetworkGetPickupPeep(_owner) != peep) + if (Network::GetPickupPeep(_owner) != peep) { return Result(Status::Unknown, STR_ERR_CANT_PLACE_PERSON_HERE, kStringIdNone); } @@ -132,12 +132,12 @@ namespace OpenRCT2::GameActions { res.Position = peep->GetLocation(); - Peep* existing = NetworkGetPickupPeep(_owner); + Peep* existing = Network::GetPickupPeep(_owner); if (existing != nullptr) { // already picking up a peep PeepPickupAction existingPickupAction{ - PeepPickupType::Cancel, existing->Id, { NetworkGetPickupPeepOldX(_owner), 0, 0 }, _owner + PeepPickupType::Cancel, existing->Id, { Network::GetPickupPeepOldX(_owner), 0, 0 }, _owner }; auto result = ExecuteNested(&existingPickupAction); @@ -145,15 +145,15 @@ namespace OpenRCT2::GameActions { return result; } - if (_owner == NetworkGetCurrentPlayerId()) + if (_owner == Network::GetCurrentPlayerId()) { // prevent tool_cancel() gInputFlags.unset(InputFlag::toolActive); } } - NetworkSetPickupPeep(_owner, peep); - NetworkSetPickupPeepOldX(_owner, peep->x); + Network::SetPickupPeep(_owner, peep); + Network::SetPickupPeepOldX(_owner, peep->x); peep->Pickup(); } break; @@ -161,12 +161,12 @@ namespace OpenRCT2::GameActions { res.Position = peep->GetLocation(); - Peep* const pickedUpPeep = NetworkGetPickupPeep(_owner); + Peep* const pickedUpPeep = Network::GetPickupPeep(_owner); if (pickedUpPeep != nullptr) { pickedUpPeep->PickupAbort(_loc.x); } - NetworkSetPickupPeep(_owner, nullptr); + Network::SetPickupPeep(_owner, nullptr); } break; case PeepPickupType::Place: @@ -187,21 +187,21 @@ namespace OpenRCT2::GameActions void PeepPickupAction::CancelConcurrentPickups(Peep* pickedPeep) const { // This part is only relevant in multiplayer games. - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) return; // Not relevant for owner, owner gets to place it normally. - NetworkPlayerId_t currentPlayerId = NetworkGetCurrentPlayerId(); + Network::PlayerId_t currentPlayerId = Network::GetCurrentPlayerId(); if (currentPlayerId == _owner) return; - Peep* peep = NetworkGetPickupPeep(NetworkGetCurrentPlayerId()); + Peep* peep = Network::GetPickupPeep(Network::GetCurrentPlayerId()); if (peep != pickedPeep) return; // By assigning the peep to null before calling tool_cancel we can avoid // resetting the peep to the initial position. - NetworkSetPickupPeep(currentPlayerId, nullptr); + Network::SetPickupPeep(currentPlayerId, nullptr); ToolCancel(); } } // namespace OpenRCT2::GameActions diff --git a/src/openrct2/actions/PeepPickupAction.h b/src/openrct2/actions/PeepPickupAction.h index 7e7d558ce0..600080006c 100644 --- a/src/openrct2/actions/PeepPickupAction.h +++ b/src/openrct2/actions/PeepPickupAction.h @@ -28,11 +28,11 @@ namespace OpenRCT2::GameActions PeepPickupType _type{ PeepPickupType::Count }; EntityId _entityId{ EntityId::GetNull() }; CoordsXYZ _loc; - NetworkPlayerId_t _owner{ -1 }; + Network::PlayerId_t _owner{ -1 }; public: PeepPickupAction() = default; - PeepPickupAction(PeepPickupType type, EntityId entityId, const CoordsXYZ& loc, NetworkPlayerId_t owner); + PeepPickupAction(PeepPickupType type, EntityId entityId, const CoordsXYZ& loc, Network::PlayerId_t owner); void AcceptParameters(GameActionParameterVisitor&) final; diff --git a/src/openrct2/actions/PlayerKickAction.cpp b/src/openrct2/actions/PlayerKickAction.cpp index a4cb8ed914..d5b1f712c3 100644 --- a/src/openrct2/actions/PlayerKickAction.cpp +++ b/src/openrct2/actions/PlayerKickAction.cpp @@ -13,7 +13,7 @@ namespace OpenRCT2::GameActions { - PlayerKickAction::PlayerKickAction(NetworkPlayerId_t playerId) + PlayerKickAction::PlayerKickAction(Network::PlayerId_t playerId) : _playerId(playerId) { } @@ -36,11 +36,11 @@ namespace OpenRCT2::GameActions } Result PlayerKickAction::Query() const { - return NetworkKickPlayer(_playerId, false); + return Network::KickPlayer(_playerId, false); } Result PlayerKickAction::Execute() const { - return NetworkKickPlayer(_playerId, true); + return Network::KickPlayer(_playerId, true); } } // namespace OpenRCT2::GameActions diff --git a/src/openrct2/actions/PlayerKickAction.h b/src/openrct2/actions/PlayerKickAction.h index 2e6d3e3866..a23ac0af3c 100644 --- a/src/openrct2/actions/PlayerKickAction.h +++ b/src/openrct2/actions/PlayerKickAction.h @@ -16,12 +16,12 @@ namespace OpenRCT2::GameActions class PlayerKickAction final : public GameActionBase { private: - NetworkPlayerId_t _playerId{ -1 }; + Network::PlayerId_t _playerId{ -1 }; public: PlayerKickAction() = default; - PlayerKickAction(NetworkPlayerId_t playerId); + PlayerKickAction(Network::PlayerId_t playerId); void AcceptParameters(GameActionParameterVisitor&) final; diff --git a/src/openrct2/actions/PlayerSetGroupAction.cpp b/src/openrct2/actions/PlayerSetGroupAction.cpp index 838cc68a4f..12ed111af5 100644 --- a/src/openrct2/actions/PlayerSetGroupAction.cpp +++ b/src/openrct2/actions/PlayerSetGroupAction.cpp @@ -13,7 +13,7 @@ namespace OpenRCT2::GameActions { - PlayerSetGroupAction::PlayerSetGroupAction(NetworkPlayerId_t playerId, uint8_t groupId) + PlayerSetGroupAction::PlayerSetGroupAction(Network::PlayerId_t playerId, uint8_t groupId) : _playerId(playerId) , _groupId(groupId) { @@ -38,11 +38,11 @@ namespace OpenRCT2::GameActions } Result PlayerSetGroupAction::Query() const { - return NetworkSetPlayerGroup(GetPlayer(), _playerId, _groupId, false); + return Network::SetPlayerGroup(GetPlayer(), _playerId, _groupId, false); } Result PlayerSetGroupAction::Execute() const { - return NetworkSetPlayerGroup(GetPlayer(), _playerId, _groupId, true); + return Network::SetPlayerGroup(GetPlayer(), _playerId, _groupId, true); } } // namespace OpenRCT2::GameActions diff --git a/src/openrct2/actions/PlayerSetGroupAction.h b/src/openrct2/actions/PlayerSetGroupAction.h index 2bf7c16d9b..574d9d1882 100644 --- a/src/openrct2/actions/PlayerSetGroupAction.h +++ b/src/openrct2/actions/PlayerSetGroupAction.h @@ -16,12 +16,12 @@ namespace OpenRCT2::GameActions class PlayerSetGroupAction final : public GameActionBase { private: - NetworkPlayerId_t _playerId{ -1 }; + Network::PlayerId_t _playerId{ -1 }; uint8_t _groupId{ std::numeric_limits::max() }; public: PlayerSetGroupAction() = default; - PlayerSetGroupAction(NetworkPlayerId_t playerId, uint8_t groupId); + PlayerSetGroupAction(Network::PlayerId_t playerId, uint8_t groupId); void AcceptParameters(GameActionParameterVisitor&) final; diff --git a/src/openrct2/command_line/RootCommands.cpp b/src/openrct2/command_line/RootCommands.cpp index 36dfe84f5b..c77d02e27e 100644 --- a/src/openrct2/command_line/RootCommands.cpp +++ b/src/openrct2/command_line/RootCommands.cpp @@ -40,9 +40,9 @@ using namespace OpenRCT2; #endif // USE_BREAKPAD #ifndef DISABLE_NETWORK -int32_t gNetworkStart = NETWORK_MODE_NONE; +Network::Mode gNetworkStart = Network::Mode::none; std::string gNetworkStartHost; -int32_t gNetworkStartPort = kNetworkDefaultPort; +int32_t gNetworkStartPort = Network::kNetworkDefaultPort; std::string gNetworkStartAddress; static uint32_t _port = 0; @@ -304,7 +304,7 @@ exitcode_t HandleCommandHost(CommandLineArgEnumerator* enumerator) gOpenRCT2StartupAction = StartupAction::Open; String::set(gOpenRCT2StartupActionPath, sizeof(gOpenRCT2StartupActionPath), parkUri); - gNetworkStart = NETWORK_MODE_SERVER; + gNetworkStart = Network::Mode::server; gNetworkStartPort = _port; gNetworkStartAddress = String::toStd(_address); @@ -326,7 +326,7 @@ exitcode_t HandleCommandJoin(CommandLineArgEnumerator* enumerator) return EXITCODE_FAIL; } - gNetworkStart = NETWORK_MODE_CLIENT; + gNetworkStart = Network::Mode::client; gNetworkStartPort = _port; gNetworkStartHost = hostname; return EXITCODE_CONTINUE; @@ -452,7 +452,7 @@ static void PrintVersion() Console::WriteLine(versionInfo.c_str()); Console::WriteFormat("%s (%s)", OPENRCT2_PLATFORM, OPENRCT2_ARCHITECTURE); Console::WriteLine(); - Console::WriteFormat("Network version: %s", NetworkGetVersion().c_str()); + Console::WriteFormat("Network version: %s", Network::GetVersion().c_str()); Console::WriteLine(); #ifdef ENABLE_SCRIPTING Console::WriteFormat("Plugin API version: %d", OpenRCT2::Scripting::kPluginApiVersion); diff --git a/src/openrct2/command_line/SimulateCommands.cpp b/src/openrct2/command_line/SimulateCommands.cpp index 622feb811c..fcfbd82275 100644 --- a/src/openrct2/command_line/SimulateCommands.cpp +++ b/src/openrct2/command_line/SimulateCommands.cpp @@ -57,7 +57,7 @@ static exitcode_t HandleSimulate(CommandLineArgEnumerator* argEnumerator) gOpenRCT2Headless = true; #ifndef DISABLE_NETWORK - gNetworkStart = NETWORK_MODE_SERVER; + gNetworkStart = Network::Mode::server; #endif std::unique_ptr context(CreateContext()); diff --git a/src/openrct2/command_line/UriHandler.cpp b/src/openrct2/command_line/UriHandler.cpp index 9220449d58..1d165a948d 100644 --- a/src/openrct2/command_line/UriHandler.cpp +++ b/src/openrct2/command_line/UriHandler.cpp @@ -62,10 +62,10 @@ static exitcode_t HandleUriJoin(const std::vector& args) { std::string hostname; int32_t port; - if (args.size() > 1 && TryParseHostnamePort(args[1], &hostname, &port, kNetworkDefaultPort)) + if (args.size() > 1 && TryParseHostnamePort(args[1], &hostname, &port, Network::kNetworkDefaultPort)) { // Set the network start configuration - gNetworkStart = NETWORK_MODE_CLIENT; + gNetworkStart = Network::Mode::client; gNetworkStartHost = std::move(hostname); gNetworkStartPort = port; return EXITCODE_CONTINUE; diff --git a/src/openrct2/config/Config.cpp b/src/openrct2/config/Config.cpp index b03e350c0c..95e302f948 100644 --- a/src/openrct2/config/Config.cpp +++ b/src/openrct2/config/Config.cpp @@ -473,7 +473,7 @@ namespace OpenRCT2::Config auto model = &_config.network; model->PlayerName = std::move(playerName); - model->DefaultPort = reader->GetInt32("default_port", kNetworkDefaultPort); + model->DefaultPort = reader->GetInt32("default_port", ::Network::kNetworkDefaultPort); model->ListenAddress = reader->GetString("listen_address", ""); model->DefaultPassword = reader->GetString("default_password", ""); model->StayConnected = reader->GetBoolean("stay_connected", true); diff --git a/src/openrct2/core/DataSerialiserTraits.h b/src/openrct2/core/DataSerialiserTraits.h index 24d4ecabe8..1cebdbab01 100644 --- a/src/openrct2/core/DataSerialiserTraits.h +++ b/src/openrct2/core/DataSerialiserTraits.h @@ -186,27 +186,27 @@ struct DataSerializerTraitsT }; template<> -struct DataSerializerTraitsT +struct DataSerializerTraitsT { - static void encode(OpenRCT2::IStream* stream, const NetworkPlayerId_t& val) + static void encode(OpenRCT2::IStream* stream, const OpenRCT2::Network::PlayerId_t& val) { stream->WriteValue(ByteSwapBE(val.id)); } - static void decode(OpenRCT2::IStream* stream, NetworkPlayerId_t& val) + static void decode(OpenRCT2::IStream* stream, OpenRCT2::Network::PlayerId_t& val) { val.id = ByteSwapBE(stream->ReadValue()); } - static void log(OpenRCT2::IStream* stream, const NetworkPlayerId_t& val) + static void log(OpenRCT2::IStream* stream, const OpenRCT2::Network::PlayerId_t& val) { char playerId[28] = {}; snprintf(playerId, sizeof(playerId), "%u", val.id); stream->Write(playerId, strlen(playerId)); - int32_t playerIndex = NetworkGetPlayerIndex(val.id); + int32_t playerIndex = OpenRCT2::Network::GetPlayerIndex(val.id); if (playerIndex != -1) { - const char* playerName = NetworkGetPlayerName(playerIndex); + const char* playerName = OpenRCT2::Network::GetPlayerName(playerIndex); if (playerName != nullptr) { stream->Write(" \"", 2); @@ -591,17 +591,17 @@ struct DataSerializerTraitsT }; template<> -struct DataSerializerTraitsT +struct DataSerializerTraitsT { - static void encode(OpenRCT2::IStream* stream, const NetworkCheatType_t& val) + static void encode(OpenRCT2::IStream* stream, const OpenRCT2::Network::CheatType_t& val) { stream->WriteValue(ByteSwapBE(val.id)); } - static void decode(OpenRCT2::IStream* stream, NetworkCheatType_t& val) + static void decode(OpenRCT2::IStream* stream, OpenRCT2::Network::CheatType_t& val) { val.id = ByteSwapBE(stream->ReadValue()); } - static void log(OpenRCT2::IStream* stream, const NetworkCheatType_t& val) + static void log(OpenRCT2::IStream* stream, const OpenRCT2::Network::CheatType_t& val) { const char* cheatName = CheatsGetName(static_cast(val.id)); stream->Write(cheatName, strlen(cheatName)); diff --git a/src/openrct2/entity/Guest.cpp b/src/openrct2/entity/Guest.cpp index 8fa04c5836..2be6c8a39d 100644 --- a/src/openrct2/entity/Guest.cpp +++ b/src/openrct2/entity/Guest.cpp @@ -6430,7 +6430,7 @@ static bool PeepShouldWatchRide(TileElement* tileElement) { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) return false; @@ -6543,7 +6543,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6582,7 +6582,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6609,7 +6609,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6654,7 +6654,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6701,7 +6701,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6727,7 +6727,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6771,7 +6771,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6817,7 +6817,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; @@ -6843,7 +6843,7 @@ static bool GuestFindRideToLookAt(Guest& guest, uint8_t edge, RideId* rideToView { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue; diff --git a/src/openrct2/entity/MoneyEffect.cpp b/src/openrct2/entity/MoneyEffect.cpp index 001565a852..5cc63b25e5 100644 --- a/src/openrct2/entity/MoneyEffect.cpp +++ b/src/openrct2/entity/MoneyEffect.cpp @@ -68,7 +68,7 @@ void MoneyEffect::Create(money64 value, const CoordsXYZ& loc) { // If game actions return no valid location of the action we can not use the screen // coordinates as every client will have different ones. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { LOG_WARNING("Attempted to create money effect without a valid location in multiplayer"); return; diff --git a/src/openrct2/interface/Chat.cpp b/src/openrct2/interface/Chat.cpp index 8479f4352c..b1ef77c9c7 100644 --- a/src/openrct2/interface/Chat.cpp +++ b/src/openrct2/interface/Chat.cpp @@ -44,8 +44,8 @@ static int32_t ChatHistoryDrawString(RenderTarget& rt, const char* text, const S bool ChatAvailable() { - return NetworkGetMode() != NETWORK_MODE_NONE && NetworkGetStatus() == NETWORK_STATUS_CONNECTED - && NetworkGetAuthstatus() == NetworkAuth::Ok; + return Network::GetMode() != Network::Mode::none && Network::GetStatus() == Network::Status::connected + && Network::GetAuthstatus() == Network::Auth::ok; } void ChatOpen() @@ -243,7 +243,7 @@ void ChatAddHistory(std::string_view s) _chatHistoryTime.push_front(Platform::GetTicks()); // Log to file (src only as logging does its own timestamp) - NetworkAppendChatLog(s); + Network::AppendChatLog(s); CreateAudioChannel(SoundId::NewsItem, 0, kMixerVolumeMax, 0.5f, 1.5f, true); } @@ -255,7 +255,7 @@ void ChatInput(enum ChatInput input) case ChatInput::Send: if (!_chatCurrentLine.empty()) { - NetworkSendChat(_chatCurrentLine.c_str()); + Network::SendChat(_chatCurrentLine.c_str()); } ChatClearInput(); ChatClose(); diff --git a/src/openrct2/interface/InteractiveConsole.cpp b/src/openrct2/interface/InteractiveConsole.cpp index 92d3b6e31d..f77dbff8ca 100644 --- a/src/openrct2/interface/InteractiveConsole.cpp +++ b/src/openrct2/interface/InteractiveConsole.cpp @@ -1176,7 +1176,7 @@ static void ConsoleCommandOpen(InteractiveConsole& console, const arguments_t& a bool invalidTitle = false; if (argv[0] == "object_selection" && InvalidArguments(&invalidTitle, !title)) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { console.WriteLineError("Cannot open this window in multiplayer mode."); } @@ -1190,7 +1190,7 @@ static void ConsoleCommandOpen(InteractiveConsole& console, const arguments_t& a } else if (argv[0] == "inventions_list" && InvalidArguments(&invalidTitle, !title)) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { console.WriteLineError("Cannot open this window in multiplayer mode."); } @@ -1362,8 +1362,8 @@ static void ConsoleCommandSavePark([[maybe_unused]] InteractiveConsole& console, static void ConsoleCommandSay(InteractiveConsole& console, const arguments_t& argv) { - if (NetworkGetMode() == NETWORK_MODE_NONE || NetworkGetStatus() != NETWORK_STATUS_CONNECTED - || NetworkGetAuthstatus() != NetworkAuth::Ok) + if (Network::GetMode() == Network::Mode::none || Network::GetStatus() != Network::Status::connected + || Network::GetAuthstatus() != Network::Auth::ok) { console.WriteFormatLine("This command only works in multiplayer mode."); return; @@ -1371,7 +1371,7 @@ static void ConsoleCommandSay(InteractiveConsole& console, const arguments_t& ar if (!argv.empty()) { - NetworkSendChat(argv[0].c_str()); + Network::SendChat(argv[0].c_str()); return; } @@ -1380,7 +1380,7 @@ static void ConsoleCommandSay(InteractiveConsole& console, const arguments_t& ar static void ConsoleCommandReplayStartRecord(InteractiveConsole& console, const arguments_t& argv) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { console.WriteFormatLine("This command is currently not supported in multiplayer mode."); return; @@ -1423,7 +1423,7 @@ static void ConsoleCommandReplayStartRecord(InteractiveConsole& console, const a static void ConsoleCommandReplayStopRecord(InteractiveConsole& console, const arguments_t& argv) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { console.WriteFormatLine("This command is currently not supported in multiplayer mode."); return; @@ -1454,7 +1454,7 @@ static void ConsoleCommandReplayStopRecord(InteractiveConsole& console, const ar static void ConsoleCommandReplayStart(InteractiveConsole& console, const arguments_t& argv) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { console.WriteFormatLine("This command is currently not supported in multiplayer mode."); return; @@ -1492,7 +1492,7 @@ static void ConsoleCommandReplayStart(InteractiveConsole& console, const argumen static void ConsoleCommandReplayStop(InteractiveConsole& console, const arguments_t& argv) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { console.WriteFormatLine("This command is currently not supported in multiplayer mode."); return; @@ -1507,7 +1507,7 @@ static void ConsoleCommandReplayStop(InteractiveConsole& console, const argument static void ConsoleCommandReplayNormalise(InteractiveConsole& console, const arguments_t& argv) { - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { console.WriteFormatLine("This command is currently not supported in multiplayer mode."); } diff --git a/src/openrct2/network/DiscordService.cpp b/src/openrct2/network/DiscordService.cpp index a190b16fcd..c8dbd518d9 100644 --- a/src/openrct2/network/DiscordService.cpp +++ b/src/openrct2/network/DiscordService.cpp @@ -91,13 +91,13 @@ namespace OpenRCT2::Network { default: details = GetParkName(); - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) { state = "Playing Solo"; } else { - FmtString fmtServerName(NetworkGetServerName()); + FmtString fmtServerName(Network::GetServerName()); std::string serverName; for (const auto& token : fmtServerName) { @@ -115,10 +115,10 @@ namespace OpenRCT2::Network } state = serverName; - partyId = NetworkGetServerName(); + partyId = Network::GetServerName(); // NOTE: the party size is displayed next to state discordPresence.partyId = partyId.c_str(); - discordPresence.partySize = NetworkGetNumPlayers(); + discordPresence.partySize = Network::GetNumPlayers(); discordPresence.partyMax = 256; // TODO generate secrets for the server diff --git a/src/openrct2/network/Network.h b/src/openrct2/network/Network.h index 366efe0950..de3466dff5 100644 --- a/src/openrct2/network/Network.h +++ b/src/openrct2/network/Network.h @@ -38,86 +38,86 @@ namespace OpenRCT2::Network constexpr const char* kMasterServerURL = "https://servers.openrct2.io"; constexpr uint16_t kMaxServerDescriptionLength = 256; - enum class NetworkPermission : uint32_t; + enum class Permission : uint32_t; - void NetworkReconnect(); - void NetworkShutdownClient(); - int32_t NetworkBeginClient(const std::string& host, int32_t port); - int32_t NetworkBeginServer(int32_t port, const std::string& address); + void Reconnect(); + void ShutdownClient(); + int32_t BeginClient(const std::string& host, int32_t port); + int32_t BeginServer(int32_t port, const std::string& address); - [[nodiscard]] int32_t NetworkGetMode(); - [[nodiscard]] int32_t NetworkGetStatus(); - bool NetworkIsDesynchronised(); - bool NetworkCheckDesynchronisation(); - void NetworkRequestGamestateSnapshot(); - void NetworkSendTick(); - bool NetworkGamestateSnapshotsEnabled(); - void NetworkUpdate(); - void NetworkProcessPending(); - void NetworkFlush(); + [[nodiscard]] Mode GetMode(); + [[nodiscard]] Status GetStatus(); + bool IsDesynchronised(); + bool CheckDesynchronisation(); + void RequestGamestateSnapshot(); + void SendTick(); + bool GamestateSnapshotsEnabled(); + void Update(); + void ProcessPending(); + void Flush(); - [[nodiscard]] NetworkAuth NetworkGetAuthstatus(); - [[nodiscard]] uint32_t NetworkGetServerTick(); - [[nodiscard]] uint8_t NetworkGetCurrentPlayerId(); - [[nodiscard]] int32_t NetworkGetNumPlayers(); - [[nodiscard]] int32_t NetworkGetNumVisiblePlayers(); - [[nodiscard]] const char* NetworkGetPlayerName(uint32_t index); - [[nodiscard]] uint32_t NetworkGetPlayerFlags(uint32_t index); - [[nodiscard]] int32_t NetworkGetPlayerPing(uint32_t index); - [[nodiscard]] int32_t NetworkGetPlayerID(uint32_t index); - [[nodiscard]] money64 NetworkGetPlayerMoneySpent(uint32_t index); - [[nodiscard]] std::string NetworkGetPlayerIPAddress(uint32_t id); - [[nodiscard]] std::string NetworkGetPlayerPublicKeyHash(uint32_t id); - void NetworkIncrementPlayerNumCommands(uint32_t playerIndex); - void NetworkAddPlayerMoneySpent(uint32_t index, money64 cost); - [[nodiscard]] int32_t NetworkGetPlayerLastAction(uint32_t index, int32_t time); - void NetworkSetPlayerLastAction(uint32_t index, GameCommand command); - [[nodiscard]] CoordsXYZ NetworkGetPlayerLastActionCoord(uint32_t index); - void NetworkSetPlayerLastActionCoord(uint32_t index, const CoordsXYZ& coord); - [[nodiscard]] uint32_t NetworkGetPlayerCommandsRan(uint32_t index); - [[nodiscard]] int32_t NetworkGetPlayerIndex(uint32_t id); - [[nodiscard]] uint8_t NetworkGetPlayerGroup(uint32_t index); - void NetworkSetPlayerGroup(uint32_t index, uint32_t groupindex); - [[nodiscard]] int32_t NetworkGetGroupIndex(uint8_t id); - [[nodiscard]] int32_t NetworkGetCurrentPlayerGroupIndex(); - [[nodiscard]] uint8_t NetworkGetGroupID(uint32_t index); - [[nodiscard]] int32_t NetworkGetNumGroups(); - [[nodiscard]] const char* NetworkGetGroupName(uint32_t index); - [[nodiscard]] GameActions::Result NetworkSetPlayerGroup( - NetworkPlayerId_t actionPlayerId, NetworkPlayerId_t playerId, uint8_t groupId, bool isExecuting); - [[nodiscard]] GameActions::Result NetworkModifyGroups( - NetworkPlayerId_t actionPlayerId, GameActions::ModifyGroupType type, uint8_t groupId, const std::string& name, + [[nodiscard]] Auth GetAuthstatus(); + [[nodiscard]] uint32_t GetServerTick(); + [[nodiscard]] uint8_t GetCurrentPlayerId(); + [[nodiscard]] int32_t GetNumPlayers(); + [[nodiscard]] int32_t GetNumVisiblePlayers(); + [[nodiscard]] const char* GetPlayerName(uint32_t index); + [[nodiscard]] uint32_t GetPlayerFlags(uint32_t index); + [[nodiscard]] int32_t GetPlayerPing(uint32_t index); + [[nodiscard]] int32_t GetPlayerID(uint32_t index); + [[nodiscard]] money64 GetPlayerMoneySpent(uint32_t index); + [[nodiscard]] std::string GetPlayerIPAddress(uint32_t id); + [[nodiscard]] std::string GetPlayerPublicKeyHash(uint32_t id); + void IncrementPlayerNumCommands(uint32_t playerIndex); + void AddPlayerMoneySpent(uint32_t index, money64 cost); + [[nodiscard]] int32_t GetPlayerLastAction(uint32_t index, int32_t time); + void SetPlayerLastAction(uint32_t index, GameCommand command); + [[nodiscard]] CoordsXYZ GetPlayerLastActionCoord(uint32_t index); + void SetPlayerLastActionCoord(uint32_t index, const CoordsXYZ& coord); + [[nodiscard]] uint32_t GetPlayerCommandsRan(uint32_t index); + [[nodiscard]] int32_t GetPlayerIndex(uint32_t id); + [[nodiscard]] uint8_t GetPlayerGroup(uint32_t index); + void SetPlayerGroup(uint32_t index, uint32_t groupindex); + [[nodiscard]] int32_t GetGroupIndex(uint8_t id); + [[nodiscard]] int32_t GetCurrentPlayerGroupIndex(); + [[nodiscard]] uint8_t GetGroupID(uint32_t index); + [[nodiscard]] int32_t GetNumGroups(); + [[nodiscard]] const char* GetGroupName(uint32_t index); + [[nodiscard]] GameActions::Result SetPlayerGroup( + PlayerId_t actionPlayerId, PlayerId_t playerId, uint8_t groupId, bool isExecuting); + [[nodiscard]] GameActions::Result ModifyGroups( + PlayerId_t actionPlayerId, GameActions::ModifyGroupType type, uint8_t groupId, const std::string& name, uint32_t permissionIndex, GameActions::PermissionState permissionState, bool isExecuting); - [[nodiscard]] GameActions::Result NetworkKickPlayer(NetworkPlayerId_t playerId, bool isExecuting); - [[nodiscard]] uint8_t NetworkGetDefaultGroup(); - [[nodiscard]] int32_t NetworkGetNumActions(); - [[nodiscard]] StringId NetworkGetActionNameStringID(uint32_t index); - [[nodiscard]] int32_t NetworkCanPerformAction(uint32_t groupindex, NetworkPermission index); - [[nodiscard]] int32_t NetworkCanPerformCommand(uint32_t groupindex, int32_t index); - void NetworkSetPickupPeep(uint8_t playerid, Peep* peep); - [[nodiscard]] Peep* NetworkGetPickupPeep(uint8_t playerid); - void NetworkSetPickupPeepOldX(uint8_t playerid, int32_t x); - [[nodiscard]] int32_t NetworkGetPickupPeepOldX(uint8_t playerid); - [[nodiscard]] bool NetworkIsServerPlayerInvisible(); + [[nodiscard]] GameActions::Result KickPlayer(PlayerId_t playerId, bool isExecuting); + [[nodiscard]] uint8_t GetDefaultGroup(); + [[nodiscard]] int32_t GetNumActions(); + [[nodiscard]] StringId GetActionNameStringID(uint32_t index); + [[nodiscard]] int32_t CanPerformAction(uint32_t groupindex, Permission index); + [[nodiscard]] int32_t CanPerformCommand(uint32_t groupindex, int32_t index); + void SetPickupPeep(uint8_t playerid, Peep* peep); + [[nodiscard]] Peep* GetPickupPeep(uint8_t playerid); + void SetPickupPeepOldX(uint8_t playerid, int32_t x); + [[nodiscard]] int32_t GetPickupPeepOldX(uint8_t playerid); + [[nodiscard]] bool IsServerPlayerInvisible(); - void NetworkSendChat(const char* text, const std::vector& playerIds = {}); - void NetworkSendGameAction(const GameActions::GameAction* action); - void NetworkSendPassword(const std::string& password); + void SendChat(const char* text, const std::vector& playerIds = {}); + void SendGameAction(const GameActions::GameAction* action); + void SendPassword(const std::string& password); - void NetworkSetPassword(const char* password); + void SetPassword(const char* password); - void NetworkAppendChatLog(std::string_view text); - void NetworkAppendServerLog(const utf8* text); - [[nodiscard]] u8string NetworkGetServerName(); - [[nodiscard]] u8string NetworkGetServerDescription(); - [[nodiscard]] u8string NetworkGetServerGreeting(); - [[nodiscard]] u8string NetworkGetServerProviderName(); - [[nodiscard]] u8string NetworkGetServerProviderEmail(); - [[nodiscard]] u8string NetworkGetServerProviderWebsite(); + void AppendChatLog(std::string_view text); + void AppendServerLog(const utf8* text); + [[nodiscard]] u8string GetServerName(); + [[nodiscard]] u8string GetServerDescription(); + [[nodiscard]] u8string GetServerGreeting(); + [[nodiscard]] u8string GetServerProviderName(); + [[nodiscard]] u8string GetServerProviderEmail(); + [[nodiscard]] u8string GetServerProviderWebsite(); - [[nodiscard]] std::string NetworkGetVersion(); + [[nodiscard]] std::string GetVersion(); - [[nodiscard]] NetworkStats NetworkGetStats(); - [[nodiscard]] NetworkServerState NetworkGetServerState(); - [[nodiscard]] json_t NetworkGetServerInfoAsJson(); + [[nodiscard]] Stats GetStats(); + [[nodiscard]] ServerState GetServerState(); + [[nodiscard]] json_t GetServerInfoAsJson(); } // namespace OpenRCT2::Network diff --git a/src/openrct2/network/NetworkAction.cpp b/src/openrct2/network/NetworkAction.cpp index 978d4a6051..c281f8f364 100644 --- a/src/openrct2/network/NetworkAction.cpp +++ b/src/openrct2/network/NetworkAction.cpp @@ -18,7 +18,7 @@ namespace OpenRCT2::Network { - NetworkPermission NetworkActions::FindCommand(GameCommand command) + Permission NetworkActions::FindCommand(GameCommand command) { auto it = std::find_if(Actions.begin(), Actions.end(), [&command](NetworkAction const& action) { for (GameCommand currentCommand : action.Commands) @@ -32,24 +32,24 @@ namespace OpenRCT2::Network }); if (it != Actions.end()) { - return static_cast(it - Actions.begin()); + return static_cast(it - Actions.begin()); } - return NetworkPermission::Count; + return Permission::Count; } - NetworkPermission NetworkActions::FindCommandByPermissionName(const std::string& permission_name) + Permission NetworkActions::FindCommandByPermissionName(const std::string& permission_name) { auto it = std::find_if(Actions.begin(), Actions.end(), [&permission_name](NetworkAction const& action) { return action.PermissionName == permission_name; }); if (it != Actions.end()) { - return static_cast(it - Actions.begin()); + return static_cast(it - Actions.begin()); } - return NetworkPermission::Count; + return Permission::Count; } - const std::array(NetworkPermission::Count)> NetworkActions::Actions = { + const std::array(Permission::Count)> NetworkActions::Actions = { NetworkAction{ STR_ACTION_CHAT, "PERMISSION_CHAT", diff --git a/src/openrct2/network/NetworkAction.h b/src/openrct2/network/NetworkAction.h index 6cdde89dbf..5d754ae382 100644 --- a/src/openrct2/network/NetworkAction.h +++ b/src/openrct2/network/NetworkAction.h @@ -18,7 +18,7 @@ namespace OpenRCT2::Network { - enum class NetworkPermission : uint32_t + enum class Permission : uint32_t { Chat, Terraform, @@ -58,9 +58,9 @@ namespace OpenRCT2::Network class NetworkActions final { public: - static const std::array(NetworkPermission::Count)> Actions; + static const std::array(Permission::Count)> Actions; - static NetworkPermission FindCommand(GameCommand command); - static NetworkPermission FindCommandByPermissionName(const std::string& permission_name); + static Permission FindCommand(GameCommand command); + static Permission FindCommandByPermissionName(const std::string& permission_name); }; } // namespace OpenRCT2::Network diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index 8287662373..3beacd19fb 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -102,51 +102,51 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; #include #include - using namespace OpenRCT2; - - static void NetworkChatShowConnectedMessage(); - static void NetworkChatShowServerGreeting(); - static u8string NetworkGetKeysDirectory(); - static u8string NetworkGetPrivateKeyPath(u8string_view playerName); - static u8string NetworkGetPublicKeyPath(u8string_view playerName, u8string_view hash); +namespace OpenRCT2::Network +{ + static void ChatShowConnectedMessage(); + static void ChatShowServerGreeting(); + static u8string GetKeysDirectory(); + static u8string GetPrivateKeyPath(u8string_view playerName); + static u8string GetPublicKeyPath(u8string_view playerName, u8string_view hash); NetworkBase::NetworkBase(IContext& context) : System(context) { - mode = NETWORK_MODE_NONE; - status = NETWORK_STATUS_NONE; + mode = Mode::none; + status = Status::none; last_ping_sent_time = 0; _actionId = 0; - client_command_handlers[NetworkCommand::Auth] = &NetworkBase::Client_Handle_AUTH; - client_command_handlers[NetworkCommand::Map] = &NetworkBase::Client_Handle_MAP; - client_command_handlers[NetworkCommand::Chat] = &NetworkBase::Client_Handle_CHAT; - client_command_handlers[NetworkCommand::GameAction] = &NetworkBase::Client_Handle_GAME_ACTION; - client_command_handlers[NetworkCommand::Tick] = &NetworkBase::Client_Handle_TICK; - client_command_handlers[NetworkCommand::PlayerList] = &NetworkBase::Client_Handle_PLAYERLIST; - client_command_handlers[NetworkCommand::PlayerInfo] = &NetworkBase::Client_Handle_PLAYERINFO; - client_command_handlers[NetworkCommand::Ping] = &NetworkBase::Client_Handle_PING; - client_command_handlers[NetworkCommand::PingList] = &NetworkBase::Client_Handle_PINGLIST; - client_command_handlers[NetworkCommand::DisconnectMessage] = &NetworkBase::Client_Handle_SETDISCONNECTMSG; - client_command_handlers[NetworkCommand::ShowError] = &NetworkBase::Client_Handle_SHOWERROR; - client_command_handlers[NetworkCommand::GroupList] = &NetworkBase::Client_Handle_GROUPLIST; - client_command_handlers[NetworkCommand::Event] = &NetworkBase::Client_Handle_EVENT; - client_command_handlers[NetworkCommand::GameInfo] = &NetworkBase::Client_Handle_GAMEINFO; - client_command_handlers[NetworkCommand::Token] = &NetworkBase::Client_Handle_TOKEN; - client_command_handlers[NetworkCommand::ObjectsList] = &NetworkBase::Client_Handle_OBJECTS_LIST; - client_command_handlers[NetworkCommand::ScriptsHeader] = &NetworkBase::Client_Handle_SCRIPTS_HEADER; - client_command_handlers[NetworkCommand::ScriptsData] = &NetworkBase::Client_Handle_SCRIPTS_DATA; - client_command_handlers[NetworkCommand::GameState] = &NetworkBase::Client_Handle_GAMESTATE; + client_command_handlers[Command::auth] = &NetworkBase::Client_Handle_AUTH; + client_command_handlers[Command::map] = &NetworkBase::Client_Handle_MAP; + client_command_handlers[Command::chat] = &NetworkBase::Client_Handle_CHAT; + client_command_handlers[Command::gameAction] = &NetworkBase::Client_Handle_GAME_ACTION; + client_command_handlers[Command::tick] = &NetworkBase::Client_Handle_TICK; + client_command_handlers[Command::playerList] = &NetworkBase::Client_Handle_PLAYERLIST; + client_command_handlers[Command::playerInfo] = &NetworkBase::Client_Handle_PLAYERINFO; + client_command_handlers[Command::ping] = &NetworkBase::Client_Handle_PING; + client_command_handlers[Command::pingList] = &NetworkBase::Client_Handle_PINGLIST; + client_command_handlers[Command::disconnectMessage] = &NetworkBase::Client_Handle_SETDISCONNECTMSG; + client_command_handlers[Command::showError] = &NetworkBase::Client_Handle_SHOWERROR; + client_command_handlers[Command::groupList] = &NetworkBase::Client_Handle_GROUPLIST; + client_command_handlers[Command::event] = &NetworkBase::Client_Handle_EVENT; + client_command_handlers[Command::gameInfo] = &NetworkBase::Client_Handle_GAMEINFO; + client_command_handlers[Command::token] = &NetworkBase::Client_Handle_TOKEN; + client_command_handlers[Command::objectsList] = &NetworkBase::Client_Handle_OBJECTS_LIST; + client_command_handlers[Command::scriptsHeader] = &NetworkBase::Client_Handle_SCRIPTS_HEADER; + client_command_handlers[Command::scriptsData] = &NetworkBase::Client_Handle_SCRIPTS_DATA; + client_command_handlers[Command::gameState] = &NetworkBase::Client_Handle_GAMESTATE; - server_command_handlers[NetworkCommand::Auth] = &NetworkBase::ServerHandleAuth; - server_command_handlers[NetworkCommand::Chat] = &NetworkBase::ServerHandleChat; - server_command_handlers[NetworkCommand::GameAction] = &NetworkBase::ServerHandleGameAction; - server_command_handlers[NetworkCommand::Ping] = &NetworkBase::ServerHandlePing; - server_command_handlers[NetworkCommand::GameInfo] = &NetworkBase::ServerHandleGameInfo; - server_command_handlers[NetworkCommand::Token] = &NetworkBase::ServerHandleToken; - server_command_handlers[NetworkCommand::MapRequest] = &NetworkBase::ServerHandleMapRequest; - server_command_handlers[NetworkCommand::RequestGameState] = &NetworkBase::ServerHandleRequestGamestate; - server_command_handlers[NetworkCommand::Heartbeat] = &NetworkBase::ServerHandleHeartbeat; + server_command_handlers[Command::auth] = &NetworkBase::ServerHandleAuth; + server_command_handlers[Command::chat] = &NetworkBase::ServerHandleChat; + server_command_handlers[Command::gameAction] = &NetworkBase::ServerHandleGameAction; + server_command_handlers[Command::ping] = &NetworkBase::ServerHandlePing; + server_command_handlers[Command::gameInfo] = &NetworkBase::ServerHandleGameInfo; + server_command_handlers[Command::token] = &NetworkBase::ServerHandleToken; + server_command_handlers[Command::mapRequest] = &NetworkBase::ServerHandleMapRequest; + server_command_handlers[Command::requestGameState] = &NetworkBase::ServerHandleRequestGamestate; + server_command_handlers[Command::heartbeat] = &NetworkBase::ServerHandleHeartbeat; _chat_log_fs << std::unitbuf; _server_log_fs << std::unitbuf; @@ -154,7 +154,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; bool NetworkBase::Init() { - status = NETWORK_STATUS_READY; + status = Status::ready; ServerName.clear(); ServerDescription.clear(); @@ -167,7 +167,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Reconnect() { - if (status != NETWORK_STATUS_NONE) + if (status != Status::none) { Close(); } @@ -181,7 +181,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Close() { - if (status != NETWORK_STATUS_NONE) + if (status != Status::none) { // HACK Because Close() is closed all over the place, it sometimes gets called inside an Update // call. This then causes disposed data to be accessed. Therefore, save closing until the @@ -216,7 +216,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - void NetworkBase::DecayCooldown(NetworkPlayer* player) + void NetworkBase::DecayCooldown(Player* player) { if (player == nullptr) return; // No valid connection yet. @@ -233,24 +233,24 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::CloseConnection() { - if (mode == NETWORK_MODE_CLIENT) + if (mode == Mode::client) { _serverConnection.reset(); } - else if (mode == NETWORK_MODE_SERVER) + else if (mode == Mode::server) { _listenSocket.reset(); _advertiser.reset(); } - mode = NETWORK_MODE_NONE; - status = NETWORK_STATUS_NONE; - _lastConnectStatus = SocketStatus::Closed; + mode = Mode::none; + status = Status::none; + _lastConnectStatus = SocketStatus::closed; } bool NetworkBase::BeginClient(const std::string& host, uint16_t port) { - if (GetMode() != NETWORK_MODE_NONE) + if (GetMode() != Mode::none) { return false; } @@ -259,7 +259,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (!Init()) return false; - mode = NETWORK_MODE_CLIENT; + mode = Mode::client; LOG_INFO("Connecting to %s:%u", host.c_str(), port); _host = host; @@ -270,8 +270,8 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; _serverConnection->Socket->ConnectAsync(host, port); _serverState.gamestateSnapshotsEnabled = false; - status = NETWORK_STATUS_CONNECTING; - _lastConnectStatus = SocketStatus::Closed; + status = Status::connecting; + _lastConnectStatus = SocketStatus::closed; _clientMapLoaded = false; _serverTickData.clear(); @@ -283,7 +283,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; // risk of tick collision with the server map and title screen map. GameActions::SuspendQueue(); - auto keyPath = NetworkGetPrivateKeyPath(Config::Get().network.PlayerName); + auto keyPath = GetPrivateKeyPath(Config::Get().network.PlayerName); if (!File::Exists(keyPath)) { Console::WriteLine("Generating key... This may take a while"); @@ -291,7 +291,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; _key.Generate(); Console::WriteLine("Key generated, saving private bits as %s", keyPath.c_str()); - const auto keysDirectory = NetworkGetKeysDirectory(); + const auto keysDirectory = GetKeysDirectory(); if (!Path::CreateDirectory(keysDirectory)) { LOG_ERROR("Unable to create directory %s.", keysDirectory.c_str()); @@ -311,7 +311,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; const std::string hash = _key.PublicKeyHash(); const utf8* publicKeyHash = hash.c_str(); - keyPath = NetworkGetPublicKeyPath(Config::Get().network.PlayerName, publicKeyHash); + keyPath = GetPublicKeyPath(Config::Get().network.PlayerName, publicKeyHash); Console::WriteLine("Key generated, saving public bits as %s", keyPath.c_str()); try @@ -355,7 +355,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (!Init()) return false; - mode = NETWORK_MODE_SERVER; + mode = Mode::server; _userManager.Load(); @@ -386,12 +386,12 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; BeginChatLog(); BeginServerLog(); - NetworkPlayer* player = AddPlayer(Config::Get().network.PlayerName, ""); + Player* player = AddPlayer(Config::Get().network.PlayerName, ""); player->Flags |= NETWORK_PLAYER_FLAG_ISSERVER; player->Group = 0; player_id = player->Id; - if (NetworkGetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { // Add SERVER to users.json and save. NetworkUser* networkUser = _userManager.GetOrAddUser(player->KeyHash); @@ -402,10 +402,10 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; auto* szAddress = address.empty() ? "*" : address.c_str(); Console::WriteLine("Listening for clients on %s:%hu", szAddress, port); - NetworkChatShowConnectedMessage(); - NetworkChatShowServerGreeting(); + ChatShowConnectedMessage(); + ChatShowServerGreeting(); - status = NETWORK_STATUS_CONNECTED; + status = Status::connected; listening_port = port; _serverState.gamestateSnapshotsEnabled = Config::Get().network.DesyncDebugging; _advertiser = CreateServerAdvertiser(listening_port); @@ -416,27 +416,27 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return true; } - int32_t NetworkBase::GetMode() const noexcept + Mode NetworkBase::GetMode() const noexcept { return mode; } - int32_t NetworkBase::GetStatus() const noexcept + Status NetworkBase::GetStatus() const noexcept { return status; } - NetworkAuth NetworkBase::GetAuthStatus() + Auth NetworkBase::GetAuthStatus() { - if (GetMode() == NETWORK_MODE_CLIENT) + if (GetMode() == Mode::client) { return _serverConnection->AuthStatus; } - if (GetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { - return NetworkAuth::Ok; + return Auth::ok; } - return NetworkAuth::None; + return Auth::none; } uint32_t NetworkBase::GetServerTick() const noexcept @@ -444,7 +444,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return _serverState.tick; } - uint8_t NetworkBase::GetPlayerID() const noexcept + PlayerId_t NetworkBase::GetPlayerID() const noexcept { return player_id; } @@ -456,7 +456,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { auto clientIt = std::find_if( client_connection_list.begin(), client_connection_list.end(), - [player](const auto& conn) -> bool { return conn->Player == player; }); + [player](const auto& conn) -> bool { return conn->player == player; }); return clientIt != client_connection_list.end() ? clientIt->get() : nullptr; } return nullptr; @@ -473,12 +473,14 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; switch (GetMode()) { - case NETWORK_MODE_SERVER: + case Mode::server: UpdateServer(); break; - case NETWORK_MODE_CLIENT: + case Mode::client: UpdateClient(); break; + default: + break; } // If the Close() was called during the update, close it for real @@ -495,7 +497,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Flush() { - if (GetMode() == NETWORK_MODE_CLIENT) + if (GetMode() == Mode::client) { _serverConnection->SendQueuedData(); } @@ -522,7 +524,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } else { - DecayCooldown(connection->Player); + DecayCooldown(connection->player); } } @@ -551,15 +553,15 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; switch (status) { - case NETWORK_STATUS_CONNECTING: + case Status::connecting: { switch (_serverConnection->Socket->GetStatus()) { - case SocketStatus::Resolving: + case SocketStatus::resolving: { - if (_lastConnectStatus != SocketStatus::Resolving) + if (_lastConnectStatus != SocketStatus::resolving) { - _lastConnectStatus = SocketStatus::Resolving; + _lastConnectStatus = SocketStatus::resolving; char str_resolving[256]; FormatStringLegacy(str_resolving, 256, STR_MULTIPLAYER_RESOLVING, nullptr); @@ -571,11 +573,11 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } break; } - case SocketStatus::Connecting: + case SocketStatus::connecting: { - if (_lastConnectStatus != SocketStatus::Connecting) + if (_lastConnectStatus != SocketStatus::connecting) { - _lastConnectStatus = SocketStatus::Connecting; + _lastConnectStatus = SocketStatus::connecting; char str_connecting[256]; FormatStringLegacy(str_connecting, 256, STR_MULTIPLAYER_CONNECTING, nullptr); @@ -589,9 +591,9 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } break; } - case SocketStatus::Connected: + case SocketStatus::connected: { - status = NETWORK_STATUS_CONNECTED; + status = Status::connected; _serverConnection->ResetLastPacketTime(); Client_Send_TOKEN(); char str_authenticating[256]; @@ -599,7 +601,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; auto intent = Intent(WindowClass::NetworkStatus); intent.PutExtra(INTENT_EXTRA_MESSAGE, std::string{ str_authenticating }); - intent.PutExtra(INTENT_EXTRA_CALLBACK, []() -> void { ::GetContext()->GetNetwork().Close(); }); + intent.PutExtra(INTENT_EXTRA_CALLBACK, []() -> void { OpenRCT2::GetContext()->GetNetwork().Close(); }); ContextOpenIntent(&intent); break; } @@ -619,12 +621,12 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } break; } - case NETWORK_STATUS_CONNECTED: + case Status::connected: { if (!ProcessConnection(*_serverConnection)) { // Do not show disconnect message window when password window closed/canceled - if (_serverConnection->AuthStatus == NetworkAuth::RequirePassword) + if (_serverConnection->AuthStatus == Auth::requirePassword) { ContextForceCloseWindowByClass(WindowClass::NetworkStatus); } @@ -664,17 +666,19 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; break; } + + default: + break; } } auto NetworkBase::GetPlayerIteratorByID(uint8_t id) const { - return std::find_if(player_list.begin(), player_list.end(), [id](std::unique_ptr const& player) { - return player->Id == id; - }); + return std::find_if( + player_list.begin(), player_list.end(), [id](std::unique_ptr const& player) { return player->Id == id; }); } - NetworkPlayer* NetworkBase::GetPlayerByID(uint8_t id) const + Player* NetworkBase::GetPlayerByID(uint8_t id) const { auto it = GetPlayerIteratorByID(id); if (it != player_list.end()) @@ -712,14 +716,14 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return static_cast(player_list.size()); } - const char* NetworkBase::FormatChat(NetworkPlayer* fromPlayer, const char* text) + const char* NetworkBase::FormatChat(Player* fromPlayer, const char* text) { static std::string formatted; formatted.clear(); if (fromPlayer != nullptr) { - auto& network = GetContext()->GetNetwork(); + auto& network = OpenRCT2::GetContext()->GetNetwork(); auto it = network.GetGroupByID(fromPlayer->Id); std::string groupName = ""; std::vector colours; @@ -793,7 +797,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; // Sending the packet would cause the client to store a command that is behind the tick where he starts, // which would be essentially never executed. The clients do not require commands before the server has not sent // the map data. - if (client_connection->Player == nullptr) + if (client_connection->player == nullptr) { continue; } @@ -838,7 +842,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; bool NetworkBase::IsDesynchronised() const noexcept { - return _serverState.state == NetworkServerStatus::Desynced; + return _serverState.state == ServerStatus::desynced; } bool NetworkBase::CheckDesynchronizaton() @@ -846,10 +850,10 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; const auto currentTicks = getGameState().currentTicks; // Check synchronisation - if (GetMode() == NETWORK_MODE_CLIENT && _serverState.state != NetworkServerStatus::Desynced + if (GetMode() == Mode::client && _serverState.state != ServerStatus::desynced && !CheckSRAND(currentTicks, ScenarioRandState().s0)) { - _serverState.state = NetworkServerStatus::Desynced; + _serverState.state = ServerStatus::desynced; _serverState.desyncTick = currentTicks; char str_desync[256]; @@ -877,7 +881,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; Client_Send_RequestGameState(_serverState.desyncTick); } - NetworkServerState NetworkBase::GetServerState() const noexcept + ServerState NetworkBase::GetServerState() const noexcept { return _serverState; } @@ -886,7 +890,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { for (auto& client_connection : client_connection_list) { - if (client_connection->Player->Id == playerId) + if (client_connection->player->Id == playerId) { // Disconnect the client gracefully client_connection->SetLastDisconnectReason(STR_MULTIPLAYER_KICKED); @@ -906,7 +910,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerClientDisconnected() { - if (GetMode() == NETWORK_MODE_CLIENT) + if (GetMode() == Mode::client) { _serverConnection->Disconnect(); } @@ -974,7 +978,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; group_list.erase(group); } - if (GetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { _userManager.UnsetUsersOfGroup(id); _userManager.Save(); @@ -1018,7 +1022,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::SaveGroups() { - if (GetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { auto& env = GetContext().GetPlatformEnvironment(); auto path = Path::Combine(env.GetDirectoryPath(DirBase::user), u8"groups.json"); @@ -1055,7 +1059,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; // Spectator group auto spectator = std::make_unique(); spectator->SetName("Spectator"); - spectator->ToggleActionPermission(NetworkPermission::Chat); + spectator->ToggleActionPermission(Permission::Chat); spectator->Id = 1; group_list.push_back(std::move(spectator)); @@ -1063,13 +1067,13 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; auto user = std::make_unique(); user->SetName("User"); user->ActionsAllowed.fill(0xFF); - user->ToggleActionPermission(NetworkPermission::KickPlayer); - user->ToggleActionPermission(NetworkPermission::ModifyGroups); - user->ToggleActionPermission(NetworkPermission::SetPlayerGroup); - user->ToggleActionPermission(NetworkPermission::Cheat); - user->ToggleActionPermission(NetworkPermission::PasswordlessLogin); - user->ToggleActionPermission(NetworkPermission::ModifyTile); - user->ToggleActionPermission(NetworkPermission::EditScenarioOptions); + user->ToggleActionPermission(Permission::KickPlayer); + user->ToggleActionPermission(Permission::ModifyGroups); + user->ToggleActionPermission(Permission::SetPlayerGroup); + user->ToggleActionPermission(Permission::Cheat); + user->ToggleActionPermission(Permission::PasswordlessLogin); + user->ToggleActionPermission(Permission::ModifyTile); + user->ToggleActionPermission(Permission::EditScenarioOptions); user->Id = 2; group_list.push_back(std::move(user)); @@ -1196,11 +1200,11 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; // Log server start event utf8 logMessage[256]; - if (GetMode() == NETWORK_MODE_CLIENT) + if (GetMode() == Mode::client) { FormatStringLegacy(logMessage, sizeof(logMessage), STR_LOG_CLIENT_STARTED, nullptr); } - else if (GetMode() == NETWORK_MODE_SERVER) + else if (GetMode() == Mode::server) { FormatStringLegacy(logMessage, sizeof(logMessage), STR_LOG_SERVER_STARTED, nullptr); } @@ -1224,11 +1228,11 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { // Log server stopped event char logMessage[256]; - if (GetMode() == NETWORK_MODE_CLIENT) + if (GetMode() == Mode::client) { FormatStringLegacy(logMessage, sizeof(logMessage), STR_LOG_CLIENT_STOPPED, nullptr); } - else if (GetMode() == NETWORK_MODE_SERVER) + else if (GetMode() == Mode::server) { FormatStringLegacy(logMessage, sizeof(logMessage), STR_LOG_SERVER_STOPPED, nullptr); } @@ -1251,7 +1255,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; LOG_VERBOSE("Requesting gamestate from server for tick %u", tick); - NetworkPacket packet(NetworkCommand::RequestGameState); + NetworkPacket packet(Command::requestGameState); packet << tick; _serverConnection->QueuePacket(std::move(packet)); } @@ -1259,30 +1263,30 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Client_Send_TOKEN() { LOG_VERBOSE("requesting token"); - NetworkPacket packet(NetworkCommand::Token); - _serverConnection->AuthStatus = NetworkAuth::Requested; + NetworkPacket packet(Command::token); + _serverConnection->AuthStatus = Auth::requested; _serverConnection->QueuePacket(std::move(packet)); } void NetworkBase::Client_Send_AUTH( const std::string& name, const std::string& password, const std::string& pubkey, const std::vector& signature) { - NetworkPacket packet(NetworkCommand::Auth); - packet.WriteString(NetworkGetVersion()); + NetworkPacket packet(Command::auth); + packet.WriteString(GetVersion()); packet.WriteString(name); packet.WriteString(password); packet.WriteString(pubkey); assert(signature.size() <= static_cast(UINT32_MAX)); packet << static_cast(signature.size()); packet.Write(signature.data(), signature.size()); - _serverConnection->AuthStatus = NetworkAuth::Requested; + _serverConnection->AuthStatus = Auth::requested; _serverConnection->QueuePacket(std::move(packet)); } void NetworkBase::Client_Send_MAPREQUEST(const std::vector& objects) { LOG_VERBOSE("client requests %u objects", uint32_t(objects.size())); - NetworkPacket packet(NetworkCommand::MapRequest); + NetworkPacket packet(Command::mapRequest); packet << static_cast(objects.size()); for (const auto& object : objects) { @@ -1304,7 +1308,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendToken(NetworkConnection& connection) { - NetworkPacket packet(NetworkCommand::Token); + NetworkPacket packet(Command::token); packet << static_cast(connection.Challenge.size()); packet.Write(connection.Challenge.data(), connection.Challenge.size()); connection.QueuePacket(std::move(packet)); @@ -1317,7 +1321,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (objects.empty()) { - NetworkPacket packet(NetworkCommand::ObjectsList); + NetworkPacket packet(Command::objectsList); packet << static_cast(0) << static_cast(objects.size()); connection.QueuePacket(std::move(packet)); @@ -1328,7 +1332,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { const auto* object = objects[i]; - NetworkPacket packet(NetworkCommand::ObjectsList); + NetworkPacket packet(Command::objectsList); packet << static_cast(i) << static_cast(objects.size()); if (object->Identifier.empty()) @@ -1374,7 +1378,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } // Send the header packet. - NetworkPacket packetScriptHeader(NetworkCommand::ScriptsHeader); + NetworkPacket packetScriptHeader(Command::scriptsHeader); packetScriptHeader << static_cast(remotePlugins.size()); packetScriptHeader << static_cast(pluginData.GetLength()); connection.QueuePacket(std::move(packetScriptHeader)); @@ -1386,7 +1390,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { const uint32_t chunkSize = std::min(pluginData.GetLength() - dataOffset, kChunkSize); - NetworkPacket packet(NetworkCommand::ScriptsData); + NetworkPacket packet(Command::scriptsData); packet << chunkSize; packet.Write(pluginDataBuffer + dataOffset, chunkSize); @@ -1397,7 +1401,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; Guard::Assert(dataOffset == pluginData.GetLength()); #else - NetworkPacket packetScriptHeader(NetworkCommand::ScriptsHeader); + NetworkPacket packetScriptHeader(Command::scriptsHeader); packetScriptHeader << static_cast(0u); packetScriptHeader << static_cast(0u); #endif @@ -1407,25 +1411,25 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { LOG_VERBOSE("Sending heartbeat"); - NetworkPacket packet(NetworkCommand::Heartbeat); + NetworkPacket packet(Command::heartbeat); connection.QueuePacket(std::move(packet)); } - NetworkStats NetworkBase::GetStats() const + Stats NetworkBase::GetStats() const { - NetworkStats stats = {}; - if (mode == NETWORK_MODE_CLIENT) + Stats stats = {}; + if (mode == Mode::client) { - stats = _serverConnection->Stats; + stats = _serverConnection->stats; } else { for (auto& connection : client_connection_list) { - for (size_t n = 0; n < EnumValue(NetworkStatisticsGroup::Max); n++) + for (size_t n = 0; n < EnumValue(StatisticsGroup::Max); n++) { - stats.bytesReceived[n] += connection->Stats.bytesReceived[n]; - stats.bytesSent[n] += connection->Stats.bytesSent[n]; + stats.bytesReceived[n] += connection->stats.bytesReceived[n]; + stats.bytesSent[n] += connection->stats.bytesSent[n]; } } } @@ -1435,18 +1439,18 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendAuth(NetworkConnection& connection) { uint8_t new_playerid = 0; - if (connection.Player != nullptr) + if (connection.player != nullptr) { - new_playerid = connection.Player->Id; + new_playerid = connection.player->Id; } - NetworkPacket packet(NetworkCommand::Auth); + NetworkPacket packet(Command::auth); packet << static_cast(connection.AuthStatus) << new_playerid; - if (connection.AuthStatus == NetworkAuth::BadVersion) + if (connection.AuthStatus == Auth::badVersion) { - packet.WriteString(NetworkGetVersion()); + packet.WriteString(GetVersion()); } connection.QueuePacket(std::move(packet)); - if (connection.AuthStatus != NetworkAuth::Ok && connection.AuthStatus != NetworkAuth::RequirePassword) + if (connection.AuthStatus != Auth::ok && connection.AuthStatus != Auth::requirePassword) { connection.Disconnect(); } @@ -1482,7 +1486,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; for (size_t i = 0; i < header.size(); i += chunksize) { size_t datasize = std::min(chunksize, header.size() - i); - NetworkPacket packet(NetworkCommand::Map); + NetworkPacket packet(Command::map); packet << static_cast(header.size()) << static_cast(i); packet.Write(&header[i], datasize); if (connection != nullptr) @@ -1514,14 +1518,14 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Client_Send_CHAT(const char* text) { - NetworkPacket packet(NetworkCommand::Chat); + NetworkPacket packet(Command::chat); packet.WriteString(text); _serverConnection->QueuePacket(std::move(packet)); } void NetworkBase::ServerSendChat(const char* text, const std::vector& playerIds) { - NetworkPacket packet(NetworkCommand::Chat); + NetworkPacket packet(Command::chat); packet.WriteString(text); if (playerIds.empty()) @@ -1544,7 +1548,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Client_Send_GAME_ACTION(const GameActions::GameAction* action) { - NetworkPacket packet(NetworkCommand::GameAction); + NetworkPacket packet(Command::gameAction); uint32_t networkId = 0; networkId = ++_actionId; @@ -1565,7 +1569,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendGameAction(const GameActions::GameAction* action) { - NetworkPacket packet(NetworkCommand::GameAction); + NetworkPacket packet(Command::gameAction); DataSerialiser stream(true); action->Serialise(stream); @@ -1577,7 +1581,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendTick() { - NetworkPacket packet(NetworkCommand::Tick); + NetworkPacket packet(Command::tick); packet << getGameState().currentTicks << ScenarioRandState().s0; uint32_t flags = 0; // Simple counter which limits how often a sprite checksum gets sent. @@ -1604,7 +1608,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendPlayerInfo(int32_t playerId) { - NetworkPacket packet(NetworkCommand::PlayerInfo); + NetworkPacket packet(Command::playerInfo); packet << getGameState().currentTicks; auto* player = GetPlayerByID(playerId); @@ -1617,7 +1621,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendPlayerList() { - NetworkPacket packet(NetworkCommand::PlayerList); + NetworkPacket packet(Command::playerList); packet << getGameState().currentTicks << static_cast(player_list.size()); for (auto& player : player_list) { @@ -1628,14 +1632,14 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Client_Send_PING() { - NetworkPacket packet(NetworkCommand::Ping); + NetworkPacket packet(Command::ping); _serverConnection->QueuePacket(std::move(packet)); } void NetworkBase::ServerSendPing() { last_ping_sent_time = Platform::GetTicks(); - NetworkPacket packet(NetworkCommand::Ping); + NetworkPacket packet(Command::ping); for (auto& client_connection : client_connection_list) { client_connection->PingTime = Platform::GetTicks(); @@ -1645,7 +1649,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendPingList() { - NetworkPacket packet(NetworkCommand::PingList); + NetworkPacket packet(Command::pingList); packet << static_cast(player_list.size()); for (auto& player : player_list) { @@ -1656,7 +1660,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendSetDisconnectMsg(NetworkConnection& connection, const char* msg) { - NetworkPacket packet(NetworkCommand::DisconnectMessage); + NetworkPacket packet(Command::disconnectMessage); packet.WriteString(msg); connection.QueuePacket(std::move(packet)); } @@ -1666,7 +1670,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; json_t jsonObj = { { "name", Config::Get().network.ServerName }, { "requiresPassword", _password.size() > 0 }, - { "version", NetworkGetVersion() }, + { "version", GetVersion() }, { "players", GetNumVisiblePlayers() }, { "maxPlayers", Config::Get().network.Maxplayers }, { "description", Config::Get().network.ServerDescription }, @@ -1678,7 +1682,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendGameInfo(NetworkConnection& connection) { - NetworkPacket packet(NetworkCommand::GameInfo); + NetworkPacket packet(Command::gameInfo); #ifndef DISABLE_HTTP json_t jsonObj = GetServerInfoAsJson(); @@ -1701,14 +1705,14 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendShowError(NetworkConnection& connection, StringId title, StringId message) { - NetworkPacket packet(NetworkCommand::ShowError); + NetworkPacket packet(Command::showError); packet << title << message; connection.QueuePacket(std::move(packet)); } void NetworkBase::ServerSendGroupList(NetworkConnection& connection) { - NetworkPacket packet(NetworkCommand::GroupList); + NetworkPacket packet(Command::groupList); packet << static_cast(group_list.size()) << default_group; for (auto& group : group_list) { @@ -1719,7 +1723,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendEventPlayerJoined(const char* playerName) { - NetworkPacket packet(NetworkCommand::Event); + NetworkPacket packet(Command::event); packet << static_cast(SERVER_EVENT_PLAYER_JOINED); packet.WriteString(playerName); SendPacketToClients(packet); @@ -1727,7 +1731,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerSendEventPlayerDisconnected(const char* playerName, const char* reason) { - NetworkPacket packet(NetworkCommand::Event); + NetworkPacket packet(Command::event); packet << static_cast(SERVER_EVENT_PLAYER_DISCONNECTED); packet.WriteString(playerName); packet.WriteString(reason); @@ -1745,14 +1749,14 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; packetStatus = connection.ReadPacket(); switch (packetStatus) { - case NetworkReadPacket::Disconnected: + case NetworkReadPacket::disconnected: // closed connection or network error if (!connection.GetLastDisconnectReason()) { connection.SetLastDisconnectReason(STR_MULTIPLAYER_CONNECTION_CLOSED); } return false; - case NetworkReadPacket::Success: + case NetworkReadPacket::success: // done reading in packet ProcessPacket(connection, connection.InboundPacket); if (!connection.IsValid()) @@ -1760,14 +1764,14 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return false; } break; - case NetworkReadPacket::MoreData: + case NetworkReadPacket::moreData: // more data required to be read break; - case NetworkReadPacket::NoData: + case NetworkReadPacket::noData: // could not read anything from socket break; } - } while (packetStatus == NetworkReadPacket::Success && countProcessed < kMaxPacketsPerUpdate); + } while (packetStatus == NetworkReadPacket::success && countProcessed < kMaxPacketsPerUpdate); if (!connection.ReceivedPacketRecently()) { @@ -1783,13 +1787,13 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ProcessPacket(NetworkConnection& connection, NetworkPacket& packet) { - const auto& handlerList = GetMode() == NETWORK_MODE_SERVER ? server_command_handlers : client_command_handlers; + const auto& handlerList = GetMode() == Mode::server ? server_command_handlers : client_command_handlers; auto it = handlerList.find(packet.GetCommand()); if (it != handlerList.end()) { auto commandHandler = it->second; - if (connection.AuthStatus == NetworkAuth::Ok || !packet.CommandRequiresAuth()) + if (connection.AuthStatus == Auth::ok || !packet.CommandRequiresAuth()) { try { @@ -1808,11 +1812,11 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; // This is called at the end of each game tick, this where things should be processed that affects the game state. void NetworkBase::ProcessPending() { - if (GetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { ProcessDisconnectedClients(); } - else if (GetMode() == NETWORK_MODE_CLIENT) + else if (GetMode() == Mode::client) { ProcessPlayerInfo(); } @@ -1895,7 +1899,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ProcessPlayerList() { - if (GetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { // Avoid sending multiple times the player list, we mark the list invalidated on modifications // and then send at the end of the tick the final player list. @@ -1934,7 +1938,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; *player = pendingPlayer; if (player->Flags & NETWORK_PLAYER_FLAG_ISSERVER) { - _serverConnection->Player = player; + _serverConnection->player = player; } newPlayers.push_back(player->Id); } @@ -1971,7 +1975,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; player_list.erase( std::remove_if( player_list.begin(), player_list.end(), - [&removedPlayers](const std::unique_ptr& player) { + [&removedPlayers](const std::unique_ptr& player) { return std::find(removedPlayers.begin(), removedPlayers.end(), player->Id) != removedPlayers.end(); }), player_list.end()); @@ -1992,7 +1996,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; auto* player = GetPlayerByID(it->second.Id); if (player != nullptr) { - const NetworkPlayer& networkedInfo = it->second; + const Player& networkedInfo = it->second; player->Flags = networkedInfo.Flags; player->Group = networkedInfo.Group; player->LastAction = networkedInfo.LastAction; @@ -2043,7 +2047,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerClientDisconnected(std::unique_ptr& connection) { - NetworkPlayer* connection_player = connection->Player; + Player* connection_player = connection->player; if (connection_player == nullptr) return; @@ -2062,13 +2066,13 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } ChatAddHistory(text); - Peep* pickup_peep = NetworkGetPickupPeep(connection_player->Id); + Peep* pickup_peep = GetPickupPeep(connection_player->Id); if (pickup_peep != nullptr) { GameActions::PeepPickupAction pickupAction{ GameActions::PeepPickupType::Cancel, pickup_peep->Id, - { NetworkGetPickupPeepOldX(connection_player->Id), 0, 0 }, - NetworkGetCurrentPlayerId() }; + { GetPickupPeepOldX(connection_player->Id), 0, 0 }, + GetCurrentPlayerId() }; auto res = GameActions::Execute(&pickupAction); } ServerSendEventPlayerDisconnected( @@ -2082,32 +2086,32 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::RemovePlayer(std::unique_ptr& connection) { - NetworkPlayer* connection_player = connection->Player; + Player* connection_player = connection->player; if (connection_player == nullptr) return; player_list.erase( std::remove_if( player_list.begin(), player_list.end(), - [connection_player](std::unique_ptr& player) { return player.get() == connection_player; }), + [connection_player](std::unique_ptr& player) { return player.get() == connection_player; }), player_list.end()); // Send new player list. _playerListInvalidated = true; } - NetworkPlayer* NetworkBase::AddPlayer(const std::string& name, const std::string& keyhash) + Player* NetworkBase::AddPlayer(const std::string& name, const std::string& keyhash) { - NetworkPlayer* addedplayer = nullptr; + Player* addedplayer = nullptr; int32_t newid = -1; - if (GetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { // Find first unused player id for (int32_t id = 0; id < 255; id++) { if (std::find_if( player_list.begin(), player_list.end(), - [&id](std::unique_ptr const& player) { return player->Id == id; }) + [&id](std::unique_ptr const& player) { return player->Id == id; }) == player_list.end()) { newid = id; @@ -2121,8 +2125,8 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } if (newid != -1) { - std::unique_ptr player; - if (GetMode() == NETWORK_MODE_SERVER) + std::unique_ptr player; + if (GetMode() == Mode::server) { // Load keys host may have added manually _userManager.Load(); @@ -2130,7 +2134,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; // Check if the key is registered const NetworkUser* networkUser = _userManager.GetUserByHash(keyhash); - player = std::make_unique(); + player = std::make_unique(); player->Id = newid; player->KeyHash = keyhash; if (networkUser == nullptr) @@ -2152,7 +2156,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } else { - player = std::make_unique(); + player = std::make_unique(); player->Id = newid; player->Group = GetDefaultGroup(); player->SetName(String::trim(std::string(name))); @@ -2206,7 +2210,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Client_Handle_TOKEN(NetworkConnection& connection, NetworkPacket& packet) { - auto keyPath = NetworkGetPrivateKeyPath(Config::Get().network.PlayerName); + auto keyPath = GetPrivateKeyPath(Config::Get().network.PlayerName); if (!File::Exists(keyPath)) { LOG_ERROR("Key file (%s) was not found. Restart client to re-generate it.", keyPath.c_str()); @@ -2283,7 +2287,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; dataSize = snapshotMemory.GetLength() - bytesSent; } - NetworkPacket packetGameStateChunk(NetworkCommand::GameState); + NetworkPacket packetGameStateChunk(Command::gameState); packetGameStateChunk << tick << length << bytesSent << dataSize; packetGameStateChunk.Write(static_cast(snapshotMemory.GetData()) + bytesSent, dataSize); @@ -2304,17 +2308,17 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { uint32_t auth_status; packet >> auth_status >> const_cast(player_id); - connection.AuthStatus = static_cast(auth_status); + connection.AuthStatus = static_cast(auth_status); switch (connection.AuthStatus) { - case NetworkAuth::Ok: + case Auth::ok: Client_Send_GAMEINFO(); break; - case NetworkAuth::BadName: + case Auth::badName: connection.SetLastDisconnectReason(STR_MULTIPLAYER_BAD_PLAYER_NAME); connection.Disconnect(); break; - case NetworkAuth::BadVersion: + case Auth::badVersion: { auto version = std::string(packet.ReadString()); auto versionp = version.c_str(); @@ -2322,22 +2326,22 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; connection.Disconnect(); break; } - case NetworkAuth::BadPassword: + case Auth::badPassword: connection.SetLastDisconnectReason(STR_MULTIPLAYER_BAD_PASSWORD); connection.Disconnect(); break; - case NetworkAuth::VerificationFailure: + case Auth::verificationFailure: connection.SetLastDisconnectReason(STR_MULTIPLAYER_VERIFICATION_FAILURE); connection.Disconnect(); break; - case NetworkAuth::Full: + case Auth::full: connection.SetLastDisconnectReason(STR_MULTIPLAYER_SERVER_FULL); connection.Disconnect(); break; - case NetworkAuth::RequirePassword: + case Auth::requirePassword: ContextOpenWindowView(WV_NETWORK_PASSWORD); break; - case NetworkAuth::UnknownKeyDisallowed: + case Auth::unknownKeyDisallowed: connection.SetLastDisconnectReason(STR_MULTIPLAYER_UNKNOWN_KEY_DISALLOWED); connection.Disconnect(); break; @@ -2351,7 +2355,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerClientJoined(std::string_view name, const std::string& keyhash, NetworkConnection& connection) { auto player = AddPlayer(std::string(name), keyhash); - connection.Player = player; + connection.player = player; if (player != nullptr) { char text[256]; @@ -2391,7 +2395,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; auto captionString = GetContext()->GetLocalisationService().GetString(captionStringId); auto intent = Intent(INTENT_ACTION_PROGRESS_OPEN); intent.PutExtra(INTENT_EXTRA_MESSAGE, captionString); - intent.PutExtra(INTENT_EXTRA_CALLBACK, []() -> void { ::GetContext()->GetNetwork().Close(); }); + intent.PutExtra(INTENT_EXTRA_CALLBACK, []() -> void { OpenRCT2::GetContext()->GetNetwork().Close(); }); ContextOpenIntent(&intent); } @@ -2626,7 +2630,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - auto player_name = connection.Player->Name.c_str(); + auto player_name = connection.player->Name.c_str(); ServerSendMap(&connection); ServerSendEventPlayerJoined(player_name); ServerSendGroupList(connection); @@ -2634,7 +2638,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::ServerHandleAuth(NetworkConnection& connection, NetworkPacket& packet) { - if (connection.AuthStatus != NetworkAuth::Ok) + if (connection.AuthStatus != Auth::ok) { auto* hostName = connection.Socket->GetHostName(); auto gameversion = packet.ReadString(); @@ -2645,7 +2649,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; packet >> sigsize; if (pubkey.empty()) { - connection.AuthStatus = NetworkAuth::VerificationFailure; + connection.AuthStatus = Auth::verificationFailure; } else { @@ -2685,75 +2689,75 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (Config::Get().network.KnownKeysOnly && _userManager.GetUserByHash(hash) == nullptr) { LOG_VERBOSE("Connection %s: Hash %s, not known", hostName, hash.c_str()); - connection.AuthStatus = NetworkAuth::UnknownKeyDisallowed; + connection.AuthStatus = Auth::unknownKeyDisallowed; } else { - connection.AuthStatus = NetworkAuth::Verified; + connection.AuthStatus = Auth::verified; } } else { - connection.AuthStatus = NetworkAuth::VerificationFailure; + connection.AuthStatus = Auth::verificationFailure; LOG_VERBOSE("Connection %s: Signature verification failed!", hostName); } } catch (const std::exception&) { - connection.AuthStatus = NetworkAuth::VerificationFailure; + connection.AuthStatus = Auth::verificationFailure; LOG_VERBOSE("Connection %s: Signature verification failed, invalid data!", hostName); } } bool passwordless = false; - if (connection.AuthStatus == NetworkAuth::Verified) + if (connection.AuthStatus == Auth::verified) { const NetworkGroup* group = GetGroupByID(GetGroupIDByHash(connection.Key.PublicKeyHash())); if (group != nullptr) { - passwordless = group->CanPerformAction(NetworkPermission::PasswordlessLogin); + passwordless = group->CanPerformAction(Permission::PasswordlessLogin); } } - if (gameversion != NetworkGetVersion()) + if (gameversion != GetVersion()) { - connection.AuthStatus = NetworkAuth::BadVersion; + connection.AuthStatus = Auth::badVersion; LOG_INFO("Connection %s: Bad version.", hostName); } else if (name.empty()) { - connection.AuthStatus = NetworkAuth::BadName; + connection.AuthStatus = Auth::badName; LOG_INFO("Connection %s: Bad name.", connection.Socket->GetHostName()); } else if (!passwordless) { if (password.empty() && !_password.empty()) { - connection.AuthStatus = NetworkAuth::RequirePassword; + connection.AuthStatus = Auth::requirePassword; LOG_INFO("Connection %s: Requires password.", hostName); } else if (!password.empty() && _password != password) { - connection.AuthStatus = NetworkAuth::BadPassword; + connection.AuthStatus = Auth::badPassword; LOG_INFO("Connection %s: Bad password.", hostName); } } if (GetNumVisiblePlayers() >= Config::Get().network.Maxplayers) { - connection.AuthStatus = NetworkAuth::Full; + connection.AuthStatus = Auth::full; LOG_INFO("Connection %s: Server is full.", hostName); } - else if (connection.AuthStatus == NetworkAuth::Verified) + else if (connection.AuthStatus == Auth::verified) { const std::string hash = connection.Key.PublicKeyHash(); if (ProcessPlayerAuthenticatePluginHooks(connection, name, hash)) { - connection.AuthStatus = NetworkAuth::Ok; + connection.AuthStatus = Auth::ok; ServerClientJoined(name, hash, connection); } else { - connection.AuthStatus = NetworkAuth::VerificationFailure; + connection.AuthStatus = Auth::verificationFailure; LOG_INFO("Connection %s: Denied by plugin.", hostName); } } @@ -2814,12 +2818,12 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; GameNotifyMapChanged(); _serverState.tick = getGameState().currentTicks; // NetworkStatusOpen("Loaded new map from network"); - _serverState.state = NetworkServerStatus::Ok; + _serverState.state = ServerStatus::ok; _clientMapLoaded = true; gFirstTimeSaving = true; // Notify user he is now online and which shortcut key enables chat - NetworkChatShowConnectedMessage(); + ChatShowConnectedMessage(); // Fix invalid vehicle sprite sizes, thus preventing visual corruption of sprites FixInvalidVehicleSpriteSizes(); @@ -2943,26 +2947,26 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (szText.empty()) return; - if (connection.Player != nullptr) + if (connection.player != nullptr) { - NetworkGroup* group = GetGroupByID(connection.Player->Group); - if (group == nullptr || !group->CanPerformAction(NetworkPermission::Chat)) + NetworkGroup* group = GetGroupByID(connection.player->Group); + if (group == nullptr || !group->CanPerformAction(Permission::Chat)) { return; } } std::string text(szText); - if (connection.Player != nullptr) + if (connection.player != nullptr) { - if (!ProcessChatMessagePluginHooks(connection.Player->Id, text)) + if (!ProcessChatMessagePluginHooks(connection.player->Id, text)) { // Message not to be relayed return; } } - const char* formatted = FormatChat(connection.Player, text.c_str()); + const char* formatted = FormatChat(connection.player, text.c_str()); ChatAddHistory(formatted); ServerSendChat(formatted); } @@ -3008,7 +3012,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; uint32_t tick; GameCommand actionType; - NetworkPlayer* player = connection.Player; + Player* player = connection.player; if (player == nullptr) { return; @@ -3025,7 +3029,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (actionType != GameCommand::Custom) { // Check if player's group permission allows command to run - NetworkGroup* group = GetGroupByID(connection.Player->Group); + NetworkGroup* group = GetGroupByID(connection.player->Group); if (group == nullptr || group->CanPerformCommand(actionType) == false) { ServerSendShowError(connection, STR_CANT_DO_THIS, STR_PERMISSION_DENIED); @@ -3038,8 +3042,8 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (ga == nullptr) { LOG_ERROR( - "Received unregistered game action type: 0x%08X from player: (%d) %s", actionType, connection.Player->Id, - connection.Player->Name.c_str()); + "Received unregistered game action type: 0x%08X from player: (%d) %s", actionType, connection.player->Id, + connection.player->Name.c_str()); return; } @@ -3070,7 +3074,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; ga->Serialise(stream); // Set player to sender, should be 0 if sent from client. - ga->SetPlayer(NetworkPlayerId_t{ connection.Player->Id }); + ga->SetPlayer(PlayerId_t{ connection.player->Id }); GameActions::Enqueue(std::move(ga), tick); } @@ -3111,7 +3115,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; uint32_t tick; packet >> tick; - NetworkPlayer playerInfo; + Player playerInfo; playerInfo.Read(packet); _pendingPlayerInfo.emplace(tick, playerInfo); @@ -3128,7 +3132,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; for (uint32_t i = 0; i < size; i++) { - NetworkPlayer tempplayer; + Player tempplayer; tempplayer.Read(packet); pending.players.push_back(std::move(tempplayer)); @@ -3147,11 +3151,11 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { ping = 0; } - if (connection.Player != nullptr) + if (connection.player != nullptr) { - connection.Player->Ping = ping; + connection.player->Ping = ping; auto* windowMgr = Ui::GetWindowManager(); - windowMgr->InvalidateByNumber(WindowClass::Player, connection.Player->Id); + windowMgr->InvalidateByNumber(WindowClass::Player, connection.player->Id); } } @@ -3164,7 +3168,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; uint8_t id; uint16_t ping; packet >> id >> ping; - NetworkPlayer* player = GetPlayerByID(id); + Player* player = GetPlayerByID(id); if (player != nullptr) { player->Ping = ping; @@ -3245,7 +3249,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; void NetworkBase::Client_Send_GAMEINFO() { LOG_VERBOSE("requesting gameinfo"); - NetworkPacket packet(NetworkCommand::GameInfo); + NetworkPacket packet(Command::gameInfo); _serverConnection->QueuePacket(std::move(packet)); } @@ -3272,100 +3276,100 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - NetworkChatShowServerGreeting(); + ChatShowServerGreeting(); } - void NetworkReconnect() + void Reconnect() { GetContext()->GetNetwork().Reconnect(); } - void NetworkShutdownClient() + void ShutdownClient() { GetContext()->GetNetwork().ServerClientDisconnected(); } - int32_t NetworkBeginClient(const std::string& host, int32_t port) + int32_t BeginClient(const std::string& host, int32_t port) { return GetContext()->GetNetwork().BeginClient(host, port); } - int32_t NetworkBeginServer(int32_t port, const std::string& address) + int32_t BeginServer(int32_t port, const std::string& address) { return GetContext()->GetNetwork().BeginServer(port, address); } - void NetworkUpdate() + void Update() { GetContext()->GetNetwork().Update(); } - void NetworkProcessPending() + void ProcessPending() { GetContext()->GetNetwork().ProcessPending(); } - void NetworkFlush() + void Flush() { GetContext()->GetNetwork().Flush(); } - int32_t NetworkGetMode() + Mode GetMode() { return GetContext()->GetNetwork().GetMode(); } - int32_t NetworkGetStatus() + Status GetStatus() { return GetContext()->GetNetwork().GetStatus(); } - bool NetworkIsDesynchronised() + bool IsDesynchronised() { return GetContext()->GetNetwork().IsDesynchronised(); } - bool NetworkCheckDesynchronisation() + bool CheckDesynchronisation() { return GetContext()->GetNetwork().CheckDesynchronizaton(); } - void NetworkRequestGamestateSnapshot() + void RequestGamestateSnapshot() { return GetContext()->GetNetwork().RequestStateSnapshot(); } - void NetworkSendTick() + void SendTick() { GetContext()->GetNetwork().ServerSendTick(); } - NetworkAuth NetworkGetAuthstatus() + Auth GetAuthstatus() { return GetContext()->GetNetwork().GetAuthStatus(); } - uint32_t NetworkGetServerTick() + uint32_t GetServerTick() { return GetContext()->GetNetwork().GetServerTick(); } - uint8_t NetworkGetCurrentPlayerId() + uint8_t GetCurrentPlayerId() { return GetContext()->GetNetwork().GetPlayerID(); } - int32_t NetworkGetNumPlayers() + int32_t GetNumPlayers() { return GetContext()->GetNetwork().GetTotalNumPlayers(); } - int32_t NetworkGetNumVisiblePlayers() + int32_t GetNumVisiblePlayers() { return GetContext()->GetNetwork().GetNumVisiblePlayers(); } - const char* NetworkGetPlayerName(uint32_t index) + const char* GetPlayerName(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3373,7 +3377,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return static_cast(network.player_list[index]->Name.c_str()); } - uint32_t NetworkGetPlayerFlags(uint32_t index) + uint32_t GetPlayerFlags(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3381,7 +3385,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->Flags; } - int32_t NetworkGetPlayerPing(uint32_t index) + int32_t GetPlayerPing(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3389,7 +3393,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->Ping; } - int32_t NetworkGetPlayerID(uint32_t index) + int32_t GetPlayerID(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3397,7 +3401,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->Id; } - money64 NetworkGetPlayerMoneySpent(uint32_t index) + money64 GetPlayerMoneySpent(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3405,7 +3409,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->MoneySpent; } - std::string NetworkGetPlayerIPAddress(uint32_t id) + std::string GetPlayerIPAddress(uint32_t id) { auto& network = GetContext()->GetNetwork(); auto conn = network.GetPlayerConnection(id); @@ -3416,7 +3420,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return {}; } - std::string NetworkGetPlayerPublicKeyHash(uint32_t id) + std::string GetPlayerPublicKeyHash(uint32_t id) { auto& network = GetContext()->GetNetwork(); auto player = network.GetPlayerByID(id); @@ -3427,7 +3431,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return {}; } - void NetworkIncrementPlayerNumCommands(uint32_t playerIndex) + void IncrementPlayerNumCommands(uint32_t playerIndex) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(playerIndex, network.player_list); @@ -3435,7 +3439,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; network.player_list[playerIndex]->IncrementNumCommands(); } - void NetworkAddPlayerMoneySpent(uint32_t index, money64 cost) + void AddPlayerMoneySpent(uint32_t index, money64 cost) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3443,7 +3447,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; network.player_list[index]->AddMoneySpent(cost); } - int32_t NetworkGetPlayerLastAction(uint32_t index, int32_t time) + int32_t GetPlayerLastAction(uint32_t index, int32_t time) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3455,7 +3459,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->LastAction; } - void NetworkSetPlayerLastAction(uint32_t index, GameCommand command) + void SetPlayerLastAction(uint32_t index, GameCommand command) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3464,7 +3468,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; network.player_list[index]->LastActionTime = Platform::GetTicks(); } - CoordsXYZ NetworkGetPlayerLastActionCoord(uint32_t index) + CoordsXYZ GetPlayerLastActionCoord(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, GetContext()->GetNetwork().player_list); @@ -3472,7 +3476,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->LastActionCoord; } - void NetworkSetPlayerLastActionCoord(uint32_t index, const CoordsXYZ& coord) + void SetPlayerLastActionCoord(uint32_t index, const CoordsXYZ& coord) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3483,7 +3487,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - uint32_t NetworkGetPlayerCommandsRan(uint32_t index) + uint32_t GetPlayerCommandsRan(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, GetContext()->GetNetwork().player_list); @@ -3491,7 +3495,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->CommandsRan; } - int32_t NetworkGetPlayerIndex(uint32_t id) + int32_t GetPlayerIndex(uint32_t id) { auto& network = GetContext()->GetNetwork(); auto it = network.GetPlayerIteratorByID(id); @@ -3502,7 +3506,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return static_cast(network.GetPlayerIteratorByID(id) - network.player_list.begin()); } - uint8_t NetworkGetPlayerGroup(uint32_t index) + uint8_t GetPlayerGroup(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3510,7 +3514,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.player_list[index]->Group; } - void NetworkSetPlayerGroup(uint32_t index, uint32_t groupindex) + void SetPlayerGroup(uint32_t index, uint32_t groupindex) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.player_list); @@ -3519,7 +3523,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; network.player_list[index]->Group = network.group_list[groupindex]->Id; } - int32_t NetworkGetGroupIndex(uint8_t id) + int32_t GetGroupIndex(uint8_t id) { auto& network = GetContext()->GetNetwork(); auto it = network.GetGroupIteratorByID(id); @@ -3530,7 +3534,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return static_cast(network.GetGroupIteratorByID(id) - network.group_list.begin()); } - uint8_t NetworkGetGroupID(uint32_t index) + uint8_t GetGroupID(uint32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(index, network.group_list); @@ -3538,19 +3542,19 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.group_list[index]->Id; } - int32_t NetworkGetNumGroups() + int32_t GetNumGroups() { auto& network = GetContext()->GetNetwork(); return static_cast(network.group_list.size()); } - const char* NetworkGetGroupName(uint32_t index) + const char* GetGroupName(uint32_t index) { auto& network = GetContext()->GetNetwork(); return network.group_list[index]->GetName().c_str(); } - void NetworkChatShowConnectedMessage() + void ChatShowConnectedMessage() { auto windowManager = Ui::GetWindowManager(); std::string s = windowManager->GetKeyboardShortcutString("interface.misc.multiplayer_chat"); @@ -3559,16 +3563,16 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; utf8 buffer[256]; FormatStringLegacy(buffer, sizeof(buffer), STR_MULTIPLAYER_CONNECTED_CHAT_HINT, &sptr); - NetworkPlayer server; + Player server; server.Name = "Server"; const char* formatted = NetworkBase::FormatChat(&server, buffer); ChatAddHistory(formatted); } // Display server greeting if one exists - void NetworkChatShowServerGreeting() + void ChatShowServerGreeting() { - const auto& greeting = NetworkGetServerGreeting(); + const auto& greeting = GetServerGreeting(); if (!greeting.empty()) { thread_local std::string greeting_formatted; @@ -3578,11 +3582,10 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - GameActions::Result NetworkSetPlayerGroup( - NetworkPlayerId_t actionPlayerId, NetworkPlayerId_t playerId, uint8_t groupId, bool isExecuting) + GameActions::Result SetPlayerGroup(PlayerId_t actionPlayerId, PlayerId_t playerId, uint8_t groupId, bool isExecuting) { auto& network = GetContext()->GetNetwork(); - NetworkPlayer* player = network.GetPlayerByID(playerId); + Player* player = network.GetPlayerByID(playerId); NetworkGroup* fromgroup = network.GetGroupByID(actionPlayerId); if (player == nullptr) @@ -3610,7 +3613,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; { player->Group = groupId; - if (NetworkGetMode() == NETWORK_MODE_SERVER) + if (GetMode() == Mode::server) { // Add or update saved user NetworkUserManager& userManager = network._userManager; @@ -3624,7 +3627,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; windowMgr->InvalidateByNumber(WindowClass::Player, playerId); // Log set player group event - NetworkPlayer* game_command_player = network.GetPlayerByID(actionPlayerId); + Player* game_command_player = network.GetPlayerByID(actionPlayerId); NetworkGroup* new_player_group = network.GetGroupByID(groupId); char log_msg[256]; const char* args[3] = { @@ -3633,13 +3636,13 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; game_command_player->Name.c_str(), }; FormatStringLegacy(log_msg, 256, STR_LOG_SET_PLAYER_GROUP, args); - NetworkAppendServerLog(log_msg); + AppendServerLog(log_msg); } return GameActions::Result(); } - GameActions::Result NetworkModifyGroups( - NetworkPlayerId_t actionPlayerId, GameActions::ModifyGroupType type, uint8_t groupId, const std::string& name, + GameActions::Result ModifyGroups( + PlayerId_t actionPlayerId, GameActions::ModifyGroupType type, uint8_t groupId, const std::string& name, uint32_t permissionIndex, GameActions::PermissionState permissionState, bool isExecuting) { auto& network = GetContext()->GetNetwork(); @@ -3686,8 +3689,8 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; GameActions::Status::Disallowed, STR_THIS_GROUP_CANNOT_BE_MODIFIED, kStringIdNone); } NetworkGroup* mygroup = nullptr; - NetworkPlayer* player = network.GetPlayerByID(actionPlayerId); - auto networkPermission = static_cast(permissionIndex); + Player* player = network.GetPlayerByID(actionPlayerId); + auto networkPermission = static_cast(permissionIndex); if (player != nullptr && permissionState == GameActions::PermissionState::Toggle) { mygroup = network.GetGroupByID(player->Group); @@ -3778,10 +3781,10 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return GameActions::Result(); } - GameActions::Result NetworkKickPlayer(NetworkPlayerId_t playerId, bool isExecuting) + GameActions::Result KickPlayer(PlayerId_t playerId, bool isExecuting) { auto& network = GetContext()->GetNetwork(); - NetworkPlayer* player = network.GetPlayerByID(playerId); + Player* player = network.GetPlayerByID(playerId); if (player == nullptr) { // Player might be already removed by the PLAYERLIST command, need to refactor non-game commands executing too @@ -3797,7 +3800,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; if (isExecuting) { - if (network.GetMode() == NETWORK_MODE_SERVER) + if (network.GetMode() == Mode::server) { network.KickPlayer(playerId); @@ -3810,18 +3813,18 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return GameActions::Result(); } - uint8_t NetworkGetDefaultGroup() + uint8_t GetDefaultGroup() { auto& network = GetContext()->GetNetwork(); return network.GetDefaultGroup(); } - int32_t NetworkGetNumActions() + int32_t GetNumActions() { return static_cast(NetworkActions::Actions.size()); } - StringId NetworkGetActionNameStringID(uint32_t index) + StringId GetActionNameStringID(uint32_t index) { if (index < NetworkActions::Actions.size()) { @@ -3831,7 +3834,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return kStringIdNone; } - int32_t NetworkCanPerformAction(uint32_t groupindex, NetworkPermission index) + int32_t CanPerformAction(uint32_t groupindex, Permission index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(groupindex, network.group_list); @@ -3839,7 +3842,7 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.group_list[groupindex]->CanPerformAction(index); } - int32_t NetworkCanPerformCommand(uint32_t groupindex, int32_t index) + int32_t CanPerformCommand(uint32_t groupindex, int32_t index) { auto& network = GetContext()->GetNetwork(); Guard::IndexInRange(groupindex, network.group_list); @@ -3847,16 +3850,16 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return network.group_list[groupindex]->CanPerformCommand(static_cast(index)); // TODO } - void NetworkSetPickupPeep(uint8_t playerid, Peep* peep) + void SetPickupPeep(uint8_t playerid, Peep* peep) { auto& network = GetContext()->GetNetwork(); - if (network.GetMode() == NETWORK_MODE_NONE) + if (network.GetMode() == Mode::none) { _pickup_peep = peep; } else { - NetworkPlayer* player = network.GetPlayerByID(playerid); + Player* player = network.GetPlayerByID(playerid); if (player != nullptr) { player->PickupPeep = peep; @@ -3864,15 +3867,15 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - Peep* NetworkGetPickupPeep(uint8_t playerid) + Peep* GetPickupPeep(uint8_t playerid) { auto& network = GetContext()->GetNetwork(); - if (network.GetMode() == NETWORK_MODE_NONE) + if (network.GetMode() == Mode::none) { return _pickup_peep; } - NetworkPlayer* player = network.GetPlayerByID(playerid); + Player* player = network.GetPlayerByID(playerid); if (player != nullptr) { return player->PickupPeep; @@ -3880,16 +3883,16 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return nullptr; } - void NetworkSetPickupPeepOldX(uint8_t playerid, int32_t x) + void SetPickupPeepOldX(uint8_t playerid, int32_t x) { auto& network = GetContext()->GetNetwork(); - if (network.GetMode() == NETWORK_MODE_NONE) + if (network.GetMode() == Mode::none) { _pickup_peep_old_x = x; } else { - NetworkPlayer* player = network.GetPlayerByID(playerid); + Player* player = network.GetPlayerByID(playerid); if (player != nullptr) { player->PickupPeepOldX = x; @@ -3897,15 +3900,15 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - int32_t NetworkGetPickupPeepOldX(uint8_t playerid) + int32_t GetPickupPeepOldX(uint8_t playerid) { auto& network = GetContext()->GetNetwork(); - if (network.GetMode() == NETWORK_MODE_NONE) + if (network.GetMode() == Mode::none) { return _pickup_peep_old_x; } - NetworkPlayer* player = network.GetPlayerByID(playerid); + Player* player = network.GetPlayerByID(playerid); if (player != nullptr) { return player->PickupPeepOldX; @@ -3913,30 +3916,30 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; return -1; } - bool NetworkIsServerPlayerInvisible() + bool IsServerPlayerInvisible() { return GetContext()->GetNetwork().IsServerPlayerInvisible; } - int32_t NetworkGetCurrentPlayerGroupIndex() + int32_t GetCurrentPlayerGroupIndex() { auto& network = GetContext()->GetNetwork(); - NetworkPlayer* player = network.GetPlayerByID(network.GetPlayerID()); + Player* player = network.GetPlayerByID(network.GetPlayerID()); if (player != nullptr) { - return NetworkGetGroupIndex(player->Group); + return GetGroupIndex(player->Group); } return -1; } - void NetworkSendChat(const char* text, const std::vector& playerIds) + void SendChat(const char* text, const std::vector& playerIds) { auto& network = GetContext()->GetNetwork(); - if (network.GetMode() == NETWORK_MODE_CLIENT) + if (network.GetMode() == Mode::client) { network.Client_Send_CHAT(text); } - else if (network.GetMode() == NETWORK_MODE_SERVER) + else if (network.GetMode() == Mode::server) { std::string message = text; if (ProcessChatMessagePluginHooks(network.GetPlayerID(), message)) @@ -3957,24 +3960,26 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; } } - void NetworkSendGameAction(const GameActions::GameAction* action) + void SendGameAction(const GameActions::GameAction* action) { auto& network = GetContext()->GetNetwork(); switch (network.GetMode()) { - case NETWORK_MODE_SERVER: + case Mode::server: network.ServerSendGameAction(action); break; - case NETWORK_MODE_CLIENT: + case Mode::client: network.Client_Send_GAME_ACTION(action); break; + default: + break; } } - void NetworkSendPassword(const std::string& password) + void SendPassword(const std::string& password) { auto& network = GetContext()->GetNetwork(); - const auto keyPath = NetworkGetPrivateKeyPath(Config::Get().network.PlayerName); + const auto keyPath = GetPrivateKeyPath(Config::Get().network.PlayerName); if (!File::Exists(keyPath)) { LOG_ERROR("Private key %s missing! Restart the game to generate it.", keyPath.c_str()); @@ -4000,95 +4005,95 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; network.Client_Send_AUTH(Config::Get().network.PlayerName, password, pubkey, signature); } - void NetworkSetPassword(const char* password) + void SetPassword(const char* password) { auto& network = GetContext()->GetNetwork(); network.SetPassword(password); } - void NetworkAppendChatLog(std::string_view text) + void AppendChatLog(std::string_view text) { auto& network = GetContext()->GetNetwork(); network.AppendChatLog(text); } - void NetworkAppendServerLog(const utf8* text) + void AppendServerLog(const utf8* text) { auto& network = GetContext()->GetNetwork(); network.AppendServerLog(text); } - static u8string NetworkGetKeysDirectory() + static u8string GetKeysDirectory() { auto& env = GetContext()->GetPlatformEnvironment(); return Path::Combine(env.GetDirectoryPath(DirBase::user), u8"keys"); } - static u8string NetworkGetPrivateKeyPath(u8string_view playerName) + static u8string GetPrivateKeyPath(u8string_view playerName) { - return Path::Combine(NetworkGetKeysDirectory(), u8string(playerName) + u8".privkey"); + return Path::Combine(GetKeysDirectory(), u8string(playerName) + u8".privkey"); } - static u8string NetworkGetPublicKeyPath(u8string_view playerName, u8string_view hash) + static u8string GetPublicKeyPath(u8string_view playerName, u8string_view hash) { const auto filename = u8string(playerName) + u8"-" + u8string(hash) + u8".pubkey"; - return Path::Combine(NetworkGetKeysDirectory(), filename); + return Path::Combine(GetKeysDirectory(), filename); } - u8string NetworkGetServerName() + u8string GetServerName() { auto& network = GetContext()->GetNetwork(); return network.ServerName; } - u8string NetworkGetServerDescription() + u8string GetServerDescription() { auto& network = GetContext()->GetNetwork(); return network.ServerDescription; } - u8string NetworkGetServerGreeting() + u8string GetServerGreeting() { auto& network = GetContext()->GetNetwork(); return network.ServerGreeting; } - u8string NetworkGetServerProviderName() + u8string GetServerProviderName() { auto& network = GetContext()->GetNetwork(); return network.ServerProviderName; } - u8string NetworkGetServerProviderEmail() + u8string GetServerProviderEmail() { auto& network = GetContext()->GetNetwork(); return network.ServerProviderEmail; } - u8string NetworkGetServerProviderWebsite() + u8string GetServerProviderWebsite() { auto& network = GetContext()->GetNetwork(); return network.ServerProviderWebsite; } - std::string NetworkGetVersion() + std::string GetVersion() { return kNetworkStreamID; } - NetworkStats NetworkGetStats() + Stats GetStats() { auto& network = GetContext()->GetNetwork(); return network.GetStats(); } - NetworkServerState NetworkGetServerState() + ServerState GetServerState() { auto& network = GetContext()->GetNetwork(); return network.GetServerState(); } - bool NetworkGamestateSnapshotsEnabled() + bool GamestateSnapshotsEnabled() { - return NetworkGetServerState().gamestateSnapshotsEnabled; + return GetServerState().gamestateSnapshotsEnabled; } - json_t NetworkGetServerInfoAsJson() + json_t GetServerInfoAsJson() { auto& network = GetContext()->GetNetwork(); return network.GetServerInfoAsJson(); @@ -4100,269 +4105,268 @@ static constexpr uint32_t kMaxPacketsPerUpdate = 100; namespace OpenRCT2::Network { - int32_t NetworkGetMode() + Mode GetMode() { - return NETWORK_MODE_NONE; + return Mode::none; } - int32_t NetworkGetStatus() + Status GetStatus() { - return NETWORK_STATUS_NONE; + return Status::none; } - NetworkAuth NetworkGetAuthstatus() + Auth GetAuthstatus() { - return NetworkAuth::None; + return Auth::none; } - uint32_t NetworkGetServerTick() + uint32_t GetServerTick() { return getGameState().currentTicks; } - void NetworkFlush() + void Flush() { } - void NetworkSendTick() + void SendTick() { } - bool NetworkIsDesynchronised() + bool IsDesynchronised() { return false; } - bool NetworkGamestateSnapshotsEnabled() + bool GamestateSnapshotsEnabled() { return false; } - bool NetworkCheckDesynchronisation() + bool CheckDesynchronisation() { return false; } - void NetworkRequestGamestateSnapshot() + void RequestGamestateSnapshot() { } - void NetworkSendGameAction(const GameActions::GameAction* action) + void SendGameAction(const GameActions::GameAction* action) { } - void NetworkUpdate() + void Update() { } - void NetworkProcessPending() + void ProcessPending() { } - int32_t NetworkBeginClient(const std::string& host, int32_t port) + int32_t BeginClient(const std::string& host, int32_t port) { return 1; } - int32_t NetworkBeginServer(int32_t port, const std::string& address) + int32_t BeginServer(int32_t port, const std::string& address) { return 1; } - int32_t NetworkGetNumPlayers() + int32_t GetNumPlayers() { return 1; } - int32_t NetworkGetNumVisiblePlayers() + int32_t GetNumVisiblePlayers() { return 1; } - const char* NetworkGetPlayerName(uint32_t index) + const char* GetPlayerName(uint32_t index) { return "local (OpenRCT2 compiled without MP)"; } - uint32_t NetworkGetPlayerFlags(uint32_t index) + uint32_t GetPlayerFlags(uint32_t index) { return 0; } - int32_t NetworkGetPlayerPing(uint32_t index) + int32_t GetPlayerPing(uint32_t index) { return 0; } - int32_t NetworkGetPlayerID(uint32_t index) + int32_t GetPlayerID(uint32_t index) { return 0; } - money64 NetworkGetPlayerMoneySpent(uint32_t index) + money64 GetPlayerMoneySpent(uint32_t index) { return 0.00_GBP; } - std::string NetworkGetPlayerIPAddress(uint32_t id) + std::string GetPlayerIPAddress(uint32_t id) { return {}; } - std::string NetworkGetPlayerPublicKeyHash(uint32_t id) + std::string GetPlayerPublicKeyHash(uint32_t id) { return {}; } - void NetworkIncrementPlayerNumCommands(uint32_t playerIndex) + void IncrementPlayerNumCommands(uint32_t playerIndex) { } - void NetworkAddPlayerMoneySpent(uint32_t index, money64 cost) + void AddPlayerMoneySpent(uint32_t index, money64 cost) { } - int32_t NetworkGetPlayerLastAction(uint32_t index, int32_t time) + int32_t GetPlayerLastAction(uint32_t index, int32_t time) { return -999; } - void NetworkSetPlayerLastAction(uint32_t index, GameCommand command) + void SetPlayerLastAction(uint32_t index, GameCommand command) { } - CoordsXYZ NetworkGetPlayerLastActionCoord(uint32_t index) + CoordsXYZ GetPlayerLastActionCoord(uint32_t index) { return { 0, 0, 0 }; } - void NetworkSetPlayerLastActionCoord(uint32_t index, const CoordsXYZ& coord) + void SetPlayerLastActionCoord(uint32_t index, const CoordsXYZ& coord) { } - uint32_t NetworkGetPlayerCommandsRan(uint32_t index) + uint32_t GetPlayerCommandsRan(uint32_t index) { return 0; } - int32_t NetworkGetPlayerIndex(uint32_t id) + int32_t GetPlayerIndex(uint32_t id) { return -1; } - uint8_t NetworkGetPlayerGroup(uint32_t index) + uint8_t GetPlayerGroup(uint32_t index) { return 0; } - void NetworkSetPlayerGroup(uint32_t index, uint32_t groupindex) + void SetPlayerGroup(uint32_t index, uint32_t groupindex) { } - int32_t NetworkGetGroupIndex(uint8_t id) + int32_t GetGroupIndex(uint8_t id) { return -1; } - uint8_t NetworkGetGroupID(uint32_t index) + uint8_t GetGroupID(uint32_t index) { return 0; } - int32_t NetworkGetNumGroups() + int32_t GetNumGroups() { return 0; } - const char* NetworkGetGroupName(uint32_t index) + const char* GetGroupName(uint32_t index) { return ""; }; - GameActions::Result NetworkSetPlayerGroup( - NetworkPlayerId_t actionPlayerId, NetworkPlayerId_t playerId, uint8_t groupId, bool isExecuting) + GameActions::Result SetPlayerGroup(PlayerId_t actionPlayerId, PlayerId_t playerId, uint8_t groupId, bool isExecuting) { return GameActions::Result(); } - GameActions::Result NetworkModifyGroups( - NetworkPlayerId_t actionPlayerId, GameActions::ModifyGroupType type, uint8_t groupId, const std::string& name, + GameActions::Result ModifyGroups( + PlayerId_t actionPlayerId, GameActions::ModifyGroupType type, uint8_t groupId, const std::string& name, uint32_t permissionIndex, GameActions::PermissionState permissionState, bool isExecuting) { return GameActions::Result(); } - GameActions::Result NetworkKickPlayer(NetworkPlayerId_t playerId, bool isExecuting) + GameActions::Result KickPlayer(PlayerId_t playerId, bool isExecuting) { return GameActions::Result(); } - uint8_t NetworkGetDefaultGroup() + uint8_t GetDefaultGroup() { return 0; } - int32_t NetworkGetNumActions() + int32_t GetNumActions() { return 0; } - StringId NetworkGetActionNameStringID(uint32_t index) + StringId GetActionNameStringID(uint32_t index) { return -1; } - int32_t NetworkCanPerformAction(uint32_t groupindex, NetworkPermission index) + int32_t CanPerformAction(uint32_t groupindex, Permission index) { return 0; } - int32_t NetworkCanPerformCommand(uint32_t groupindex, int32_t index) + int32_t CanPerformCommand(uint32_t groupindex, int32_t index) { return 0; } - void NetworkSetPickupPeep(uint8_t playerid, Peep* peep) + void SetPickupPeep(uint8_t playerid, Peep* peep) { _pickup_peep = peep; } - Peep* NetworkGetPickupPeep(uint8_t playerid) + Peep* GetPickupPeep(uint8_t playerid) { return _pickup_peep; } - void NetworkSetPickupPeepOldX(uint8_t playerid, int32_t x) + void SetPickupPeepOldX(uint8_t playerid, int32_t x) { _pickup_peep_old_x = x; } - int32_t NetworkGetPickupPeepOldX(uint8_t playerid) + int32_t GetPickupPeepOldX(uint8_t playerid) { return _pickup_peep_old_x; } - void NetworkSendChat(const char* text, const std::vector& playerIds) + void SendChat(const char* text, const std::vector& playerIds) { } - void NetworkSendPassword(const std::string& password) + void SendPassword(const std::string& password) { } - void NetworkReconnect() + void Reconnect() { } - void NetworkShutdownClient() + void ShutdownClient() { } - void NetworkSetPassword(const char* password) + void SetPassword(const char* password) { } - uint8_t NetworkGetCurrentPlayerId() + uint8_t GetCurrentPlayerId() { return 0; } - int32_t NetworkGetCurrentPlayerGroupIndex() + int32_t GetCurrentPlayerGroupIndex() { return 0; } - bool NetworkIsServerPlayerInvisible() + bool IsServerPlayerInvisible() { return false; } - void NetworkAppendChatLog(std::string_view) + void AppendChatLog(std::string_view) { } - void NetworkAppendServerLog(const utf8* text) + void AppendServerLog(const utf8* text) { } - u8string NetworkGetServerName() + u8string GetServerName() { return u8string(); } - u8string NetworkGetServerDescription() + u8string GetServerDescription() { return u8string(); } - u8string NetworkGetServerGreeting() + u8string GetServerGreeting() { return u8string(); } - u8string NetworkGetServerProviderName() + u8string GetServerProviderName() { return u8string(); } - u8string NetworkGetServerProviderEmail() + u8string GetServerProviderEmail() { return u8string(); } - u8string NetworkGetServerProviderWebsite() + u8string GetServerProviderWebsite() { return u8string(); } - std::string NetworkGetVersion() + std::string GetVersion() { return "Multiplayer disabled"; } - NetworkStats NetworkGetStats() + Stats GetStats() { - return NetworkStats{}; + return Stats{}; } - NetworkServerState NetworkGetServerState() + ServerState GetServerState() { - return NetworkServerState{}; + return ServerState{}; } - json_t NetworkGetServerInfoAsJson() + json_t GetServerInfoAsJson() { return {}; } diff --git a/src/openrct2/network/NetworkBase.h b/src/openrct2/network/NetworkBase.h index e9fa53311b..64121028b5 100644 --- a/src/openrct2/network/NetworkBase.h +++ b/src/openrct2/network/NetworkBase.h @@ -44,7 +44,7 @@ namespace OpenRCT2::Network void ProcessPlayerList(); auto GetPlayerIteratorByID(uint8_t id) const; auto GetGroupIteratorByID(uint8_t id) const; - NetworkPlayer* GetPlayerByID(uint8_t id) const; + Player* GetPlayerByID(uint8_t id) const; NetworkGroup* GetGroupByID(uint8_t id) const; int32_t GetTotalNumPlayers() const noexcept; int32_t GetNumVisiblePlayers() const noexcept; @@ -55,11 +55,11 @@ namespace OpenRCT2::Network void BeginChatLog(); void AppendChatLog(std::string_view s); void CloseChatLog(); - NetworkStats GetStats() const; + Stats GetStats() const; json_t GetServerInfoAsJson() const; bool ProcessConnection(NetworkConnection& connection); void CloseConnection(); - NetworkPlayer* AddPlayer(const std::string& name, const std::string& keyhash); + Player* AddPlayer(const std::string& name, const std::string& keyhash); void ProcessPacket(NetworkConnection& connection, NetworkPacket& packet); public: // Server @@ -74,7 +74,7 @@ namespace OpenRCT2::Network void BeginServerLog(); void AppendServerLog(const std::string& s); void CloseServerLog(); - void DecayCooldown(NetworkPlayer* player); + void DecayCooldown(Player* player); void AddClient(std::unique_ptr&& socket); std::string GetMasterServerUrl(); std::string GenerateAdvertiseKey(); @@ -121,19 +121,19 @@ namespace OpenRCT2::Network public: // Client void Reconnect(); - int32_t GetMode() const noexcept; - NetworkAuth GetAuthStatus(); - int32_t GetStatus() const noexcept; - uint8_t GetPlayerID() const noexcept; + Mode GetMode() const noexcept; + Auth GetAuthStatus(); + Status GetStatus() const noexcept; + PlayerId_t GetPlayerID() const noexcept; void ProcessPlayerInfo(); void ProcessDisconnectedClients(); - static const char* FormatChat(NetworkPlayer* fromplayer, const char* text); + static const char* FormatChat(Player* fromplayer, const char* text); void SendPacketToClients(const NetworkPacket& packet, bool front = false, bool gameCmd = false) const; bool CheckSRAND(uint32_t tick, uint32_t srand0); bool CheckDesynchronizaton(); void RequestStateSnapshot(); bool IsDesynchronised() const noexcept; - NetworkServerState GetServerState() const noexcept; + ServerState GetServerState() const noexcept; void ServerClientDisconnected(); bool LoadMap(IStream* stream); void UpdateClient(); @@ -184,7 +184,7 @@ namespace OpenRCT2::Network std::string ServerProviderName; std::string ServerProviderEmail; std::string ServerProviderWebsite; - std::vector> player_list; + std::vector> player_list; std::vector> group_list; bool IsServerPlayerInvisible = false; @@ -195,13 +195,13 @@ namespace OpenRCT2::Network std::ofstream _chat_log_fs; uint32_t _lastUpdateTime = 0; uint32_t _currentDeltaTime = 0; - int32_t mode = NETWORK_MODE_NONE; + Mode mode = Network::Mode::none; uint8_t default_group = 0; bool _closeLock = false; bool _requireClose = false; private: // Server Data - std::unordered_map server_command_handlers; + std::unordered_map server_command_handlers; std::unique_ptr _listenSocket; std::unique_ptr _advertiser; std::list> client_connection_list; @@ -214,7 +214,7 @@ namespace OpenRCT2::Network private: // Client Data struct PlayerListUpdate { - std::vector players; + std::vector players; }; struct ServerTickData @@ -231,10 +231,10 @@ namespace OpenRCT2::Network MemoryStream data; }; - std::unordered_map client_command_handlers; + std::unordered_map client_command_handlers; std::unique_ptr _serverConnection; std::map _pendingPlayerLists; - std::multimap _pendingPlayerInfo; + std::multimap _pendingPlayerInfo; std::map _serverTickData; std::vector _missingObjects; std::string _host; @@ -242,15 +242,15 @@ namespace OpenRCT2::Network std::string _chatLogFilenameFormat = "%Y%m%d-%H%M%S.txt"; std::string _password; MemoryStream _serverGameState; - NetworkServerState _serverState; + ServerState _serverState; uint32_t _lastSentHeartbeat = 0; uint32_t last_ping_sent_time = 0; uint32_t server_connect_time = 0; uint32_t _actionId; - int32_t status = NETWORK_STATUS_NONE; + Status status = Network::Status::none; uint8_t player_id = 0; uint16_t _port = 0; - SocketStatus _lastConnectStatus = SocketStatus::Closed; + SocketStatus _lastConnectStatus = SocketStatus::closed; bool _requireReconnect = false; bool _clientMapLoaded = false; ServerScriptsData _serverScriptsData{}; diff --git a/src/openrct2/network/NetworkConnection.cpp b/src/openrct2/network/NetworkConnection.cpp index e710dfc2d3..d26ae140f8 100644 --- a/src/openrct2/network/NetworkConnection.cpp +++ b/src/openrct2/network/NetworkConnection.cpp @@ -47,7 +47,7 @@ namespace OpenRCT2::Network uint8_t* buffer = reinterpret_cast(&InboundPacket.Header); NetworkReadPacket status = Socket->ReceiveData(buffer, missingLength, &bytesRead); - if (status != NetworkReadPacket::Success) + if (status != NetworkReadPacket::success) { return status; } @@ -56,7 +56,7 @@ namespace OpenRCT2::Network if (InboundPacket.BytesTransferred < sizeof(InboundPacket.Header)) { // If still not enough data for header, keep waiting. - return NetworkReadPacket::MoreData; + return NetworkReadPacket::moreData; } // Normalise values. @@ -80,7 +80,7 @@ namespace OpenRCT2::Network if (missingLength > 0) { NetworkReadPacket status = Socket->ReceiveData(buffer, std::min(missingLength, kNetworkBufferSize), &bytesRead); - if (status != NetworkReadPacket::Success) + if (status != NetworkReadPacket::success) { return status; } @@ -96,11 +96,11 @@ namespace OpenRCT2::Network RecordPacketStats(InboundPacket, false); - return NetworkReadPacket::Success; + return NetworkReadPacket::success; } } - return NetworkReadPacket::MoreData; + return NetworkReadPacket::moreData; } static sfl::small_vector serializePacket(const NetworkPacket& packet) @@ -127,7 +127,7 @@ namespace OpenRCT2::Network void NetworkConnection::QueuePacket(const NetworkPacket& packet, bool front) { - if (AuthStatus == NetworkAuth::Ok || !packet.CommandRequiresAuth()) + if (AuthStatus == Auth::ok || !packet.CommandRequiresAuth()) { const auto payload = serializePacket(packet); if (front) @@ -150,7 +150,7 @@ namespace OpenRCT2::Network bool NetworkConnection::IsValid() const { - return !ShouldDisconnect && Socket->GetStatus() == SocketStatus::Connected; + return !ShouldDisconnect && Socket->GetStatus() == SocketStatus::connected; } void NetworkConnection::SendQueuedData() @@ -205,30 +205,30 @@ namespace OpenRCT2::Network void NetworkConnection::RecordPacketStats(const NetworkPacket& packet, bool sending) { uint32_t packetSize = static_cast(packet.BytesTransferred); - NetworkStatisticsGroup trafficGroup; + StatisticsGroup trafficGroup; switch (packet.GetCommand()) { - case NetworkCommand::GameAction: - trafficGroup = NetworkStatisticsGroup::Commands; + case Command::gameAction: + trafficGroup = StatisticsGroup::Commands; break; - case NetworkCommand::Map: - trafficGroup = NetworkStatisticsGroup::MapData; + case Command::map: + trafficGroup = StatisticsGroup::MapData; break; default: - trafficGroup = NetworkStatisticsGroup::Base; + trafficGroup = StatisticsGroup::Base; break; } if (sending) { - Stats.bytesSent[EnumValue(trafficGroup)] += packetSize; - Stats.bytesSent[EnumValue(NetworkStatisticsGroup::Total)] += packetSize; + stats.bytesSent[EnumValue(trafficGroup)] += packetSize; + stats.bytesSent[EnumValue(StatisticsGroup::Total)] += packetSize; } else { - Stats.bytesReceived[EnumValue(trafficGroup)] += packetSize; - Stats.bytesReceived[EnumValue(NetworkStatisticsGroup::Total)] += packetSize; + stats.bytesReceived[EnumValue(trafficGroup)] += packetSize; + stats.bytesReceived[EnumValue(StatisticsGroup::Total)] += packetSize; } } } // namespace OpenRCT2::Network diff --git a/src/openrct2/network/NetworkConnection.h b/src/openrct2/network/NetworkConnection.h index 599cc151b5..d3df99c01b 100644 --- a/src/openrct2/network/NetworkConnection.h +++ b/src/openrct2/network/NetworkConnection.h @@ -27,16 +27,16 @@ namespace OpenRCT2 namespace OpenRCT2::Network { - class NetworkPlayer; + class Player; class NetworkConnection final { public: std::unique_ptr Socket = nullptr; NetworkPacket InboundPacket; - NetworkAuth AuthStatus = NetworkAuth::None; - NetworkStats Stats = {}; - NetworkPlayer* Player = nullptr; + Auth AuthStatus = Auth::none; + Stats stats = {}; + Player* player = nullptr; uint32_t PingTime = 0; NetworkKey Key; std::vector Challenge; diff --git a/src/openrct2/network/NetworkGroup.cpp b/src/openrct2/network/NetworkGroup.cpp index 7dfd14884d..a8099d279d 100644 --- a/src/openrct2/network/NetworkGroup.cpp +++ b/src/openrct2/network/NetworkGroup.cpp @@ -39,8 +39,8 @@ namespace OpenRCT2::Network { const std::string permission = Json::GetString(jsonValue); - NetworkPermission action_id = NetworkActions::FindCommandByPermissionName(permission); - if (action_id != NetworkPermission::Count) + Permission action_id = NetworkActions::FindCommandByPermissionName(permission); + if (action_id != Permission::Count) { group.ToggleActionPermission(action_id); } @@ -57,7 +57,7 @@ namespace OpenRCT2::Network json_t actionsArray = json_t::array(); for (size_t i = 0; i < NetworkActions::Actions.size(); i++) { - if (CanPerformAction(static_cast(i))) + if (CanPerformAction(static_cast(i))) { actionsArray.emplace_back(NetworkActions::Actions[i].PermissionName); } @@ -96,7 +96,7 @@ namespace OpenRCT2::Network } } - void NetworkGroup::ToggleActionPermission(NetworkPermission index) + void NetworkGroup::ToggleActionPermission(Permission index) { size_t index_st = static_cast(index); size_t byte = index_st / 8; @@ -108,7 +108,7 @@ namespace OpenRCT2::Network ActionsAllowed[byte] ^= (1 << bit); } - bool NetworkGroup::CanPerformAction(NetworkPermission index) const noexcept + bool NetworkGroup::CanPerformAction(Permission index) const noexcept { size_t index_st = static_cast(index); size_t byte = index_st / 8; @@ -122,8 +122,8 @@ namespace OpenRCT2::Network bool NetworkGroup::CanPerformCommand(GameCommand command) const { - NetworkPermission action = NetworkActions::FindCommand(command); - if (action != NetworkPermission::Count) + Permission action = NetworkActions::FindCommand(command); + if (action != Permission::Count) { return CanPerformAction(action); } diff --git a/src/openrct2/network/NetworkGroup.h b/src/openrct2/network/NetworkGroup.h index 1cbf6d3c31..4fd7619b42 100644 --- a/src/openrct2/network/NetworkGroup.h +++ b/src/openrct2/network/NetworkGroup.h @@ -18,7 +18,7 @@ namespace OpenRCT2::Network { - enum class NetworkPermission : uint32_t; + enum class Permission : uint32_t; class NetworkGroup final { @@ -40,8 +40,8 @@ namespace OpenRCT2::Network void Read(NetworkPacket& packet); void Write(NetworkPacket& packet) const; - void ToggleActionPermission(NetworkPermission index); - bool CanPerformAction(NetworkPermission index) const noexcept; + void ToggleActionPermission(Permission index); + bool CanPerformAction(Permission index) const noexcept; bool CanPerformCommand(GameCommand command) const; /** diff --git a/src/openrct2/network/NetworkKey.cpp b/src/openrct2/network/NetworkKey.cpp index 0bf989582d..b00ae7d307 100644 --- a/src/openrct2/network/NetworkKey.cpp +++ b/src/openrct2/network/NetworkKey.cpp @@ -44,7 +44,7 @@ namespace OpenRCT2::Network } } - bool NetworkKey::IStream* stream) + bool NetworkKey::LoadPrivate(IStream* stream) { Guard::ArgumentNotNull(stream); diff --git a/src/openrct2/network/NetworkPacket.cpp b/src/openrct2/network/NetworkPacket.cpp index 8e3415ec39..648e8fa806 100644 --- a/src/openrct2/network/NetworkPacket.cpp +++ b/src/openrct2/network/NetworkPacket.cpp @@ -17,7 +17,7 @@ namespace OpenRCT2::Network { - NetworkPacket::NetworkPacket(NetworkCommand id) noexcept + NetworkPacket::NetworkPacket(Command id) noexcept : Header{ 0, id } { } @@ -32,7 +32,7 @@ namespace OpenRCT2::Network return Data.data(); } - NetworkCommand NetworkPacket::GetCommand() const noexcept + Command NetworkPacket::GetCommand() const noexcept { return Header.Id; } @@ -48,15 +48,15 @@ namespace OpenRCT2::Network { switch (GetCommand()) { - case NetworkCommand::Ping: - case NetworkCommand::Auth: - case NetworkCommand::Token: - case NetworkCommand::GameInfo: - case NetworkCommand::ObjectsList: - case NetworkCommand::ScriptsHeader: - case NetworkCommand::ScriptsData: - case NetworkCommand::MapRequest: - case NetworkCommand::Heartbeat: + case Command::ping: + case Command::auth: + case Command::token: + case Command::gameInfo: + case Command::objectsList: + case Command::scriptsHeader: + case Command::scriptsData: + case Command::mapRequest: + case Command::heartbeat: return false; default: return true; diff --git a/src/openrct2/network/NetworkPacket.h b/src/openrct2/network/NetworkPacket.h index 2ed0fd0974..fd31eebe21 100644 --- a/src/openrct2/network/NetworkPacket.h +++ b/src/openrct2/network/NetworkPacket.h @@ -22,7 +22,7 @@ namespace OpenRCT2::Network struct PacketHeader { uint16_t Size = 0; - NetworkCommand Id = NetworkCommand::Invalid; + Command Id = Command::invalid; }; static_assert(sizeof(PacketHeader) == 6); #pragma pack(pop) @@ -30,12 +30,12 @@ namespace OpenRCT2::Network struct NetworkPacket final { NetworkPacket() noexcept = default; - NetworkPacket(NetworkCommand id) noexcept; + NetworkPacket(Command id) noexcept; uint8_t* GetData() noexcept; const uint8_t* GetData() const noexcept; - NetworkCommand GetCommand() const noexcept; + Command GetCommand() const noexcept; void Clear() noexcept; bool CommandRequiresAuth() const noexcept; diff --git a/src/openrct2/network/NetworkPlayer.cpp b/src/openrct2/network/NetworkPlayer.cpp index e6d27923c6..8e594cdc3a 100644 --- a/src/openrct2/network/NetworkPlayer.cpp +++ b/src/openrct2/network/NetworkPlayer.cpp @@ -17,13 +17,13 @@ namespace OpenRCT2::Network { - void NetworkPlayer::SetName(std::string_view name) + void Player::SetName(std::string_view name) { // 36 == 31 + strlen(" #255"); Name = name.substr(0, 36); } - void NetworkPlayer::Read(NetworkPacket& packet) + void Player::Read(NetworkPacket& packet) { auto name = packet.ReadString(); SetName(name); @@ -31,21 +31,21 @@ namespace OpenRCT2::Network >> MoneySpent >> CommandsRan; } - void NetworkPlayer::Write(NetworkPacket& packet) + void Player::Write(NetworkPacket& packet) { packet.WriteString(Name); packet << Id << Flags << Group << LastAction << LastActionCoord.x << LastActionCoord.y << LastActionCoord.z << MoneySpent << CommandsRan; } - void NetworkPlayer::IncrementNumCommands() + void Player::IncrementNumCommands() { CommandsRan++; auto* windowMgr = Ui::GetWindowManager(); windowMgr->InvalidateByNumber(WindowClass::Player, Id); } - void NetworkPlayer::AddMoneySpent(money64 cost) + void Player::AddMoneySpent(money64 cost) { MoneySpent += cost; auto* windowMgr = Ui::GetWindowManager(); diff --git a/src/openrct2/network/NetworkPlayer.h b/src/openrct2/network/NetworkPlayer.h index 8b6cb2df14..04440be21b 100644 --- a/src/openrct2/network/NetworkPlayer.h +++ b/src/openrct2/network/NetworkPlayer.h @@ -23,7 +23,7 @@ namespace OpenRCT2::Network { struct NetworkPacket; - class NetworkPlayer final + class Player final { public: uint8_t Id = 0; @@ -42,7 +42,7 @@ namespace OpenRCT2::Network uint32_t LastDemolishRideTime = 0; uint32_t LastPlaceSceneryTime = 0; std::unordered_map CooldownTime; - NetworkPlayer() noexcept = default; + Player() noexcept = default; void SetName(std::string_view name); diff --git a/src/openrct2/network/NetworkServerAdvertiser.cpp b/src/openrct2/network/NetworkServerAdvertiser.cpp index 3ce192cccd..fb9d0e3ffd 100644 --- a/src/openrct2/network/NetworkServerAdvertiser.cpp +++ b/src/openrct2/network/NetworkServerAdvertiser.cpp @@ -38,10 +38,10 @@ namespace OpenRCT2::Network { enum class MasterServerStatus { - Ok = 200, - InvalidToken = 401, - ServerNotFound = 404, - InternalError = 500 + ok = 200, + invalidToken = 401, + serverNotFound = 404, + internalError = 500 }; #ifndef DISABLE_HTTP @@ -106,7 +106,7 @@ namespace OpenRCT2::Network auto ticks = Platform::GetTicks(); if (ticks > _lastListenTime + 500) { - if (_lanListener->GetStatus() != SocketStatus::Listening) + if (_lanListener->GetStatus() != SocketStatus::listening) { _lanListener->Listen(kNetworkLanBroadcastPort); } @@ -116,7 +116,7 @@ namespace OpenRCT2::Network size_t recievedBytes{}; std::unique_ptr endpoint; auto p = _lanListener->ReceiveData(buffer, sizeof(buffer) - 1, &recievedBytes, &endpoint); - if (p == NetworkReadPacket::Success) + if (p == NetworkReadPacket::success) { std::string sender = endpoint->GetHostname(); LOG_VERBOSE("Received %zu bytes from %s on LAN broadcast port", recievedBytes, sender.c_str()); @@ -136,7 +136,7 @@ namespace OpenRCT2::Network json_t GetBroadcastJson() { - json_t root = NetworkGetServerInfoAsJson(); + json_t root = Network::GetServerInfoAsJson(); root["port"] = _port; return root; } @@ -236,9 +236,9 @@ namespace OpenRCT2::Network { Guard::Assert(jsonRoot.is_object(), "OnRegistrationResponse expects parameter jsonRoot to be object"); - auto status = Json::GetEnum(jsonRoot["status"], MasterServerStatus::InternalError); + auto status = Json::GetEnum(jsonRoot["status"], MasterServerStatus::internalError); - if (status == MasterServerStatus::Ok) + if (status == MasterServerStatus::ok) { Console::WriteLine("Server successfully registered on master server"); json_t jsonToken = jsonRoot["token"]; @@ -263,7 +263,7 @@ namespace OpenRCT2::Network // Hack for https://github.com/OpenRCT2/OpenRCT2/issues/6277 // Master server may not reply correctly if using IPv6, retry forcing IPv4, // don't wait the full timeout. - if (!_forceIPv4 && status == MasterServerStatus::InternalError) + if (!_forceIPv4 && status == MasterServerStatus::internalError) { _forceIPv4 = true; _lastAdvertiseTime = 0; @@ -280,12 +280,12 @@ namespace OpenRCT2::Network { Guard::Assert(jsonRoot.is_object(), "OnHeartbeatResponse expects parameter jsonRoot to be object"); - auto status = Json::GetEnum(jsonRoot["status"], MasterServerStatus::InternalError); - if (status == MasterServerStatus::Ok) + auto status = Json::GetEnum(jsonRoot["status"], MasterServerStatus::internalError); + if (status == MasterServerStatus::ok) { // Master server has successfully updated our server status } - else if (status == MasterServerStatus::InvalidToken) + else if (status == MasterServerStatus::invalidToken) { _status = AdvertiseStatus::unregistered; _lastAdvertiseTime = 0; @@ -295,7 +295,7 @@ namespace OpenRCT2::Network json_t GetHeartbeatJson() { - uint32_t numPlayers = NetworkGetNumVisiblePlayers(); + uint32_t numPlayers = Network::GetNumVisiblePlayers(); json_t root = { { "token", _token }, diff --git a/src/openrct2/network/NetworkTypes.h b/src/openrct2/network/NetworkTypes.h index 3a488d936e..c4f59210da 100644 --- a/src/openrct2/network/NetworkTypes.h +++ b/src/openrct2/network/NetworkTypes.h @@ -26,11 +26,11 @@ namespace OpenRCT2::Network NETWORK_TICK_FLAG_CHECKSUMS = 1 << 0, }; - enum + enum class Mode : int32_t { - NETWORK_MODE_NONE, - NETWORK_MODE_CLIENT, - NETWORK_MODE_SERVER + none, + client, + server }; enum @@ -38,68 +38,68 @@ namespace OpenRCT2::Network NETWORK_PLAYER_FLAG_ISSERVER = 1 << 0, }; - enum + enum class Status : int32_t { - NETWORK_STATUS_NONE, - NETWORK_STATUS_READY, - NETWORK_STATUS_CONNECTING, - NETWORK_STATUS_CONNECTED + none, + ready, + connecting, + connected }; - enum class NetworkAuth : int32_t + enum class Auth : int32_t { - None, - Requested, - Ok, - BadVersion, - BadName, - BadPassword, - VerificationFailure, - Full, - RequirePassword, - Verified, - UnknownKeyDisallowed + none, + requested, + ok, + badVersion, + badName, + badPassword, + verificationFailure, + full, + requirePassword, + verified, + unknownKeyDisallowed }; - enum class NetworkCommand : uint32_t + enum class Command : uint32_t { - Auth, - Map, - Chat, - Tick = 4, - PlayerList, - Ping, - PingList, - DisconnectMessage, - GameInfo, - ShowError, - GroupList, - Event, - Token, - ObjectsList, - MapRequest, - GameAction, - PlayerInfo, - RequestGameState, - GameState, - ScriptsHeader, - ScriptsData, - Heartbeat, - Max, - Invalid = static_cast(-1), + auth, + map, + chat, + tick = 4, + playerList, + ping, + pingList, + disconnectMessage, + gameInfo, + showError, + groupList, + event, + token, + objectsList, + mapRequest, + gameAction, + playerInfo, + requestGameState, + gameState, + scriptsHeader, + scriptsData, + heartbeat, + max, + invalid = static_cast(-1), }; - static_assert(NetworkCommand::GameInfo == static_cast(9), "Master server expects this to be 9"); + static_assert(Command::gameInfo == static_cast(9), "Master server expects this to be 9"); - enum class NetworkServerStatus + enum class ServerStatus { - Ok, - Desynced + ok, + desynced }; - struct NetworkServerState + struct ServerState { - NetworkServerStatus state = NetworkServerStatus::Ok; + ServerStatus state = ServerStatus::ok; uint32_t desyncTick = 0; uint32_t tick = 0; uint32_t srand0 = 0; @@ -131,10 +131,10 @@ namespace OpenRCT2::Network // NOTE: When adding new types make sure to have no duplicate _TypeID's otherwise // there is no way to specialize templates if they have the exact symbol. - using NetworkPlayerId_t = NetworkObjectId; - using NetworkCheatType_t = NetworkObjectId; + using PlayerId_t = NetworkObjectId; + using CheatType_t = NetworkObjectId; - enum class NetworkStatisticsGroup : uint32_t + enum class StatisticsGroup : uint32_t { Total = 0, // Entire network traffic. Base, // Messages such as Tick, Ping @@ -143,9 +143,9 @@ namespace OpenRCT2::Network Max, }; - struct NetworkStats + struct Stats { - uint64_t bytesReceived[EnumValue(NetworkStatisticsGroup::Max)]; - uint64_t bytesSent[EnumValue(NetworkStatisticsGroup::Max)]; + uint64_t bytesReceived[EnumValue(StatisticsGroup::Max)]; + uint64_t bytesSent[EnumValue(StatisticsGroup::Max)]; }; } // namespace OpenRCT2::Network diff --git a/src/openrct2/network/ServerList.cpp b/src/openrct2/network/ServerList.cpp index 8eb3743759..5d602d328b 100644 --- a/src/openrct2/network/ServerList.cpp +++ b/src/openrct2/network/ServerList.cpp @@ -48,8 +48,8 @@ namespace OpenRCT2::Network return a.Local ? -1 : 1; } - bool serverACompatible = a.Version == NetworkGetVersion(); - bool serverBCompatible = b.Version == NetworkGetVersion(); + bool serverACompatible = a.Version == Network::GetVersion(); + bool serverBCompatible = b.Version == Network::GetVersion(); if (serverACompatible != serverBCompatible) { return serverACompatible ? -1 : 1; @@ -70,7 +70,7 @@ namespace OpenRCT2::Network bool ServerListEntry::IsVersionValid() const noexcept { - return Version.empty() || Version == NetworkGetVersion(); + return Version.empty() || Version == Network::GetVersion(); } std::optional ServerListEntry::FromJson(json_t& server) @@ -293,7 +293,7 @@ namespace OpenRCT2::Network size_t recievedLen{}; std::unique_ptr endpoint; auto p = udpSocket->ReceiveData(buffer, sizeof(buffer) - 1, &recievedLen, &endpoint); - if (p == NetworkReadPacket::Success) + if (p == NetworkReadPacket::success) { auto sender = endpoint->GetHostname(); LOG_VERBOSE("Received %zu bytes back from %s", recievedLen, sender.c_str()); diff --git a/src/openrct2/network/Socket.cpp b/src/openrct2/network/Socket.cpp index 6fc90cc7aa..9370d23f90 100644 --- a/src/openrct2/network/Socket.cpp +++ b/src/openrct2/network/Socket.cpp @@ -252,7 +252,7 @@ namespace OpenRCT2::Network class TcpSocket final : public ITcpSocket, protected Socket { private: - std::atomic _status{ SocketStatus::Closed }; + std::atomic _status{ SocketStatus::closed }; uint16_t _listeningPort = 0; SOCKET _socket = INVALID_SOCKET; @@ -265,7 +265,7 @@ namespace OpenRCT2::Network TcpSocket() noexcept = default; explicit TcpSocket(SOCKET socket, std::string hostName, std::string ipAddress) noexcept - : _status(SocketStatus::Connected) + : _status(SocketStatus::connected) , _socket(socket) , _ipAddress(std::move(ipAddress)) , _hostName(std::move(hostName)) @@ -306,7 +306,7 @@ namespace OpenRCT2::Network void Listen(const std::string& address, uint16_t port) override { - if (_status != SocketStatus::Closed) + if (_status != SocketStatus::closed) { throw std::runtime_error("Socket not closed."); } @@ -361,12 +361,12 @@ namespace OpenRCT2::Network } _listeningPort = port; - _status = SocketStatus::Listening; + _status = SocketStatus::listening; } std::unique_ptr Accept() override { - if (_status != SocketStatus::Listening) + if (_status != SocketStatus::listening) { throw std::runtime_error("Socket not listening."); } @@ -414,7 +414,7 @@ namespace OpenRCT2::Network void Connect(const std::string& address, uint16_t port) override { - if (_status != SocketStatus::Closed && _status != SocketStatus::Waiting) + if (_status != SocketStatus::closed && _status != SocketStatus::waiting) { throw std::runtime_error("Socket not closed."); } @@ -422,7 +422,7 @@ namespace OpenRCT2::Network try { // Resolve address - _status = SocketStatus::Resolving; + _status = SocketStatus::resolving; sockaddr_storage ss{}; socklen_t ss_len; @@ -431,7 +431,7 @@ namespace OpenRCT2::Network throw SocketException("Unable to resolve address."); } - _status = SocketStatus::Connecting; + _status = SocketStatus::connecting; _socket = socket(ss.ss_family, SOCK_STREAM, IPPROTO_TCP); if (_socket == INVALID_SOCKET) { @@ -488,7 +488,7 @@ namespace OpenRCT2::Network } if (error == 0) { - _status = SocketStatus::Connected; + _status = SocketStatus::connected; return; } } @@ -506,7 +506,7 @@ namespace OpenRCT2::Network void ConnectAsync(const std::string& address, uint16_t port) override { - if (_status != SocketStatus::Closed) + if (_status != SocketStatus::closed) { throw std::runtime_error("Socket not closed."); } @@ -514,7 +514,7 @@ namespace OpenRCT2::Network // When connect is called, the status is set to resolving, but we want to make sure // the status is changed before this async method exits. Otherwise, the consumer // might think the status has closed before it started to connect. - _status = SocketStatus::Waiting; + _status = SocketStatus::waiting; auto saddress = std::string(address); std::promise barrier; @@ -537,7 +537,7 @@ namespace OpenRCT2::Network void Finish() override { - if (_status == SocketStatus::Connected) + if (_status == SocketStatus::connected) { shutdown(_socket, SHUT_WR); } @@ -545,16 +545,16 @@ namespace OpenRCT2::Network void Disconnect() override { - if (_status == SocketStatus::Connected) + if (_status == SocketStatus::connected) { shutdown(_socket, SHUT_RDWR); } - _status = SocketStatus::Closed; + _status = SocketStatus::closed; } size_t SendData(const void* buffer, size_t size) override { - if (_status != SocketStatus::Connected) + if (_status != SocketStatus::connected) { throw std::runtime_error("Socket not connected."); } @@ -576,7 +576,7 @@ namespace OpenRCT2::Network NetworkReadPacket ReceiveData(void* buffer, size_t size, size_t* sizeReceived) override { - if (_status != SocketStatus::Connected) + if (_status != SocketStatus::connected) { throw std::runtime_error("Socket not connected."); } @@ -585,7 +585,7 @@ namespace OpenRCT2::Network if (readBytes == 0) { *sizeReceived = 0; - return NetworkReadPacket::Disconnected; + return NetworkReadPacket::disconnected; } if (readBytes == SOCKET_ERROR) @@ -605,14 +605,14 @@ namespace OpenRCT2::Network #endif // _WIN32 if (LAST_SOCKET_ERROR() != EWOULDBLOCK) { - return NetworkReadPacket::Disconnected; + return NetworkReadPacket::disconnected; } - return NetworkReadPacket::NoData; + return NetworkReadPacket::noData; } *sizeReceived = readBytes; - return NetworkReadPacket::Success; + return NetworkReadPacket::success; } void Close() override @@ -642,7 +642,7 @@ namespace OpenRCT2::Network closesocket(_socket); _socket = INVALID_SOCKET; } - _status = SocketStatus::Closed; + _status = SocketStatus::closed; } std::string GetIpAddressFromSocket(const sockaddr_in* addr) const @@ -668,7 +668,7 @@ namespace OpenRCT2::Network class UdpSocket final : public IUdpSocket, protected Socket { private: - SocketStatus _status = SocketStatus::Closed; + SocketStatus _status = SocketStatus::closed; uint16_t _listeningPort = 0; SOCKET _socket = INVALID_SOCKET; NetworkEndpoint _endpoint; @@ -701,7 +701,7 @@ namespace OpenRCT2::Network void Listen(const std::string& address, uint16_t port) override { - if (_status != SocketStatus::Closed) + if (_status != SocketStatus::closed) { throw std::runtime_error("Socket not closed."); } @@ -730,7 +730,7 @@ namespace OpenRCT2::Network } _listeningPort = port; - _status = SocketStatus::Listening; + _status = SocketStatus::listening; } size_t SendData(const std::string& address, uint16_t port, const void* buffer, size_t size) override @@ -760,7 +760,7 @@ namespace OpenRCT2::Network auto ss = &dest->GetAddress(); auto ss_len = dest->GetAddressLen(); - if (_status != SocketStatus::Listening) + if (_status != SocketStatus::listening) { _endpoint = *dest; } @@ -787,7 +787,7 @@ namespace OpenRCT2::Network { sockaddr_in senderAddr{}; socklen_t senderAddrLen = sizeof(sockaddr_in); - if (_status != SocketStatus::Listening) + if (_status != SocketStatus::listening) { senderAddrLen = _endpoint.GetAddressLen(); std::memcpy(&senderAddr, &_endpoint.GetAddress(), senderAddrLen); @@ -798,7 +798,7 @@ namespace OpenRCT2::Network if (readBytes <= 0) { *sizeReceived = 0; - return NetworkReadPacket::NoData; + return NetworkReadPacket::noData; } *sizeReceived = readBytes; @@ -806,7 +806,7 @@ namespace OpenRCT2::Network { *sender = std::make_unique(reinterpret_cast(&senderAddr), senderAddrLen); } - return NetworkReadPacket::Success; + return NetworkReadPacket::success; } void Close() override @@ -860,7 +860,7 @@ namespace OpenRCT2::Network closesocket(_socket); _socket = INVALID_SOCKET; } - _status = SocketStatus::Closed; + _status = SocketStatus::closed; } }; diff --git a/src/openrct2/network/Socket.h b/src/openrct2/network/Socket.h index 1499ace7e7..326fab98c6 100644 --- a/src/openrct2/network/Socket.h +++ b/src/openrct2/network/Socket.h @@ -17,20 +17,20 @@ namespace OpenRCT2::Network { enum class SocketStatus { - Closed, - Waiting, - Resolving, - Connecting, - Connected, - Listening, + closed, + waiting, + resolving, + connecting, + connected, + listening, }; enum class NetworkReadPacket : int32_t { - Success, - NoData, - MoreData, - Disconnected + success, + noData, + moreData, + disconnected }; /** diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp index 4a6a9e40cf..acdaff749d 100644 --- a/src/openrct2/park/ParkFile.cpp +++ b/src/openrct2/park/ParkFile.cpp @@ -511,7 +511,7 @@ namespace OpenRCT2 if (cs.getMode() == OrcaStream::Mode::reading) { auto earlyCompletion = cs.read(); - if (NetworkGetMode() == NETWORK_MODE_CLIENT) + if (Network::GetMode() == Network::Mode::client) { gAllowEarlyCompletionInNetworkPlay = earlyCompletion; } diff --git a/src/openrct2/ride/RideConstruction.cpp b/src/openrct2/ride/RideConstruction.cpp index 2828b4ac5f..b0ff6a221a 100644 --- a/src/openrct2/ride/RideConstruction.cpp +++ b/src/openrct2/ride/RideConstruction.cpp @@ -227,7 +227,7 @@ void RideClearForConstruction(Ride& ride) // Open circuit rides will go directly into building mode (creating ghosts) where it would normally clear the stats, // however this causes desyncs since it's directly run from the window and other clients would not get it. // To prevent these problems, unconditionally invalidate the test results on all clients in multiplayer games. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { InvalidateTestResults(ride); } diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index 94d5604a2e..bd98e14dcf 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -607,12 +607,12 @@ ResultWithMessage ScenarioPrepareForSave(GameState_t& gameState) */ bool AllowEarlyCompletion() { - switch (NetworkGetMode()) + switch (Network::GetMode()) { - case NETWORK_MODE_CLIENT: + case Network::Mode::client: return gAllowEarlyCompletionInNetworkPlay; - case NETWORK_MODE_NONE: - case NETWORK_MODE_SERVER: + case Network::Mode::none: + case Network::Mode::server: default: return Config::Get().general.AllowEarlyCompletion; } diff --git a/src/openrct2/scripting/ScriptEngine.cpp b/src/openrct2/scripting/ScriptEngine.cpp index aff46dee7e..1db154a36c 100644 --- a/src/openrct2/scripting/ScriptEngine.cpp +++ b/src/openrct2/scripting/ScriptEngine.cpp @@ -588,7 +588,7 @@ void ScriptEngine::RefreshPlugins() } // Turn on hot reload if not already enabled - if (!_hotReloadingInitialised && Config::Get().plugin.EnableHotReloading && NetworkGetMode() == NETWORK_MODE_NONE) + if (!_hotReloadingInitialised && Config::Get().plugin.EnableHotReloading && Network::GetMode() == Network::Mode::none) { SetupHotReloading(); } @@ -908,8 +908,8 @@ void ScriptEngine::StartTransientPlugins() bool ScriptEngine::ShouldStartPlugin(const std::shared_ptr& plugin) { - auto networkMode = NetworkGetMode(); - if (networkMode == NETWORK_MODE_CLIENT) + auto networkMode = Network::GetMode(); + if (networkMode == Network::Mode::client) { // Only client plugins and plugins downloaded from server should be started const auto& metadata = plugin->GetMetadata(); @@ -1561,9 +1561,9 @@ std::unique_ptr ScriptEngine::CreateGameAction( duk_pop(ctx); auto customAction = std::make_unique(actionid, json, pluginName); - if (customAction->GetPlayer() == -1 && NetworkGetMode() != NETWORK_MODE_NONE) + if (customAction->GetPlayer() == -1 && Network::GetMode() != Network::Mode::none) { - customAction->SetPlayer(NetworkGetCurrentPlayerId()); + customAction->SetPlayer(Network::GetCurrentPlayerId()); } return customAction; } @@ -1817,7 +1817,7 @@ std::string OpenRCT2::Scripting::ProcessString(const DukValue& value) bool OpenRCT2::Scripting::IsGameStateMutable() { // Allow single player to alter game state anywhere - if (NetworkGetMode() == NETWORK_MODE_NONE) + if (Network::GetMode() == Network::Mode::none) { return true; } @@ -1830,7 +1830,7 @@ bool OpenRCT2::Scripting::IsGameStateMutable() void OpenRCT2::Scripting::ThrowIfGameStateNotMutable() { // Allow single player to alter game state anywhere - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { auto& scriptEngine = GetContext()->GetScriptEngine(); auto& execInfo = scriptEngine.GetExecInfo(); diff --git a/src/openrct2/scripting/bindings/network/ScNetwork.cpp b/src/openrct2/scripting/bindings/network/ScNetwork.cpp index def44d2266..3b70579583 100644 --- a/src/openrct2/scripting/bindings/network/ScNetwork.cpp +++ b/src/openrct2/scripting/bindings/network/ScNetwork.cpp @@ -27,12 +27,14 @@ namespace OpenRCT2::Scripting std::string ScNetwork::mode_get() const { #ifndef DISABLE_NETWORK - switch (NetworkGetMode()) + switch (Network::GetMode()) { - case NETWORK_MODE_SERVER: + case Network::Mode::server: return "server"; - case NETWORK_MODE_CLIENT: + case Network::Mode::client: return "client"; + default: + break; } #endif return "none"; @@ -41,7 +43,7 @@ namespace OpenRCT2::Scripting int32_t ScNetwork::numPlayers_get() const { #ifndef DISABLE_NETWORK - return NetworkGetNumPlayers(); + return Network::GetNumPlayers(); #else return 0; #endif @@ -50,7 +52,7 @@ namespace OpenRCT2::Scripting int32_t ScNetwork::numGroups_get() const { #ifndef DISABLE_NETWORK - return NetworkGetNumGroups(); + return Network::GetNumGroups(); #else return 0; #endif @@ -59,7 +61,7 @@ namespace OpenRCT2::Scripting int32_t ScNetwork::defaultGroup_get() const { #ifndef DISABLE_NETWORK - return NetworkGetDefaultGroup(); + return Network::GetDefaultGroup(); #else return 0; #endif @@ -77,10 +79,10 @@ namespace OpenRCT2::Scripting { std::vector> groups; #ifndef DISABLE_NETWORK - auto numGroups = NetworkGetNumGroups(); + auto numGroups = Network::GetNumGroups(); for (int32_t i = 0; i < numGroups; i++) { - auto groupId = NetworkGetGroupID(i); + auto groupId = Network::GetGroupID(i); groups.push_back(std::make_shared(groupId)); } #endif @@ -91,10 +93,10 @@ namespace OpenRCT2::Scripting { std::vector> players; #ifndef DISABLE_NETWORK - auto numPlayers = NetworkGetNumPlayers(); + auto numPlayers = Network::GetNumPlayers(); for (int32_t i = 0; i < numPlayers; i++) { - auto playerId = NetworkGetPlayerID(i); + auto playerId = Network::GetPlayerID(i); players.push_back(std::make_shared(playerId)); } #endif @@ -105,7 +107,7 @@ namespace OpenRCT2::Scripting { std::shared_ptr player; #ifndef DISABLE_NETWORK - auto playerId = NetworkGetCurrentPlayerId(); + auto playerId = Network::GetCurrentPlayerId(); player = std::make_shared(playerId); #endif return player; @@ -117,16 +119,16 @@ namespace OpenRCT2::Scripting if (GetTargetAPIVersion() < kApiVersionNetworkIDs) { auto index = id; - auto numPlayers = NetworkGetNumPlayers(); + auto numPlayers = Network::GetNumPlayers(); if (index < numPlayers) { - auto playerId = NetworkGetPlayerID(index); + auto playerId = Network::GetPlayerID(index); return std::make_shared(playerId); } } else { - auto index = NetworkGetPlayerIndex(id); + auto index = Network::GetPlayerIndex(id); if (index != -1) { return std::make_shared(id); @@ -141,7 +143,7 @@ namespace OpenRCT2::Scripting { #ifndef DISABLE_NETWORK auto obj = OpenRCT2::Scripting::DukObject(_context); - auto networkStats = NetworkGetStats(); + auto networkStats = Network::GetStats(); { duk_push_array(_context); duk_uarridx_t index = 0; @@ -176,16 +178,16 @@ namespace OpenRCT2::Scripting if (GetTargetAPIVersion() < kApiVersionNetworkIDs) { auto index = id; - auto numGroups = NetworkGetNumGroups(); + auto numGroups = Network::GetNumGroups(); if (index < numGroups) { - auto groupId = NetworkGetGroupID(index); + auto groupId = Network::GetGroupID(index); return std::make_shared(groupId); } } else { - auto index = NetworkGetGroupIndex(id); + auto index = Network::GetGroupIndex(id); if (index != -1) { return std::make_shared(id); @@ -209,17 +211,17 @@ namespace OpenRCT2::Scripting if (GetTargetAPIVersion() < kApiVersionNetworkIDs) { auto index = id; - auto numGroups = NetworkGetNumGroups(); + auto numGroups = Network::GetNumGroups(); if (index < numGroups) { - auto groupId = NetworkGetGroupID(index); + auto groupId = Network::GetGroupID(index); auto networkAction = GameActions::NetworkModifyGroupAction(GameActions::ModifyGroupType::RemoveGroup, groupId); GameActions::Execute(&networkAction); } } else { - auto index = NetworkGetGroupIndex(id); + auto index = Network::GetGroupIndex(id); if (index != -1) { auto networkAction = GameActions::NetworkModifyGroupAction(GameActions::ModifyGroupType::RemoveGroup, id); @@ -235,17 +237,17 @@ namespace OpenRCT2::Scripting if (GetTargetAPIVersion() < kApiVersionNetworkIDs) { auto index = id; - auto numPlayers = NetworkGetNumPlayers(); + auto numPlayers = Network::GetNumPlayers(); if (index < numPlayers) { - auto playerId = NetworkGetPlayerID(index); + auto playerId = Network::GetPlayerID(index); auto kickPlayerAction = GameActions::PlayerKickAction(playerId); GameActions::Execute(&kickPlayerAction); } } else { - auto index = NetworkGetPlayerIndex(id); + auto index = Network::GetPlayerIndex(id); if (index != -1) { auto kickPlayerAction = GameActions::PlayerKickAction(id); @@ -260,7 +262,7 @@ namespace OpenRCT2::Scripting #ifndef DISABLE_NETWORK if (players.is_array()) { - if (NetworkGetMode() == NETWORK_MODE_SERVER) + if (Network::GetMode() == Network::Mode::server) { std::vector playerIds; auto playerArray = players.as_array(); @@ -273,7 +275,7 @@ namespace OpenRCT2::Scripting } if (!playerArray.empty()) { - NetworkSendChat(message.c_str(), playerIds); + Network::SendChat(message.c_str(), playerIds); } } else @@ -283,7 +285,7 @@ namespace OpenRCT2::Scripting } else { - NetworkSendChat(message.c_str()); + Network::SendChat(message.c_str()); } #endif } diff --git a/src/openrct2/scripting/bindings/network/ScPlayer.cpp b/src/openrct2/scripting/bindings/network/ScPlayer.cpp index e123e6a4c4..017a721755 100644 --- a/src/openrct2/scripting/bindings/network/ScPlayer.cpp +++ b/src/openrct2/scripting/bindings/network/ScPlayer.cpp @@ -31,10 +31,10 @@ namespace OpenRCT2::Scripting std::string ScPlayer::name_get() const { #ifndef DISABLE_NETWORK - auto index = NetworkGetPlayerIndex(_id); + auto index = Network::GetPlayerIndex(_id); if (index == -1) return {}; - return NetworkGetPlayerName(index); + return Network::GetPlayerName(index); #else return {}; #endif @@ -43,10 +43,10 @@ namespace OpenRCT2::Scripting int32_t ScPlayer::group_get() const { #ifndef DISABLE_NETWORK - auto index = NetworkGetPlayerIndex(_id); + auto index = Network::GetPlayerIndex(_id); if (index == -1) return {}; - return NetworkGetPlayerGroup(index); + return Network::GetPlayerGroup(index); #else return 0; #endif @@ -62,10 +62,10 @@ namespace OpenRCT2::Scripting int32_t ScPlayer::ping_get() const { #ifndef DISABLE_NETWORK - auto index = NetworkGetPlayerIndex(_id); + auto index = Network::GetPlayerIndex(_id); if (index == -1) return {}; - return NetworkGetPlayerPing(index); + return Network::GetPlayerPing(index); #else return 0; #endif @@ -74,10 +74,10 @@ namespace OpenRCT2::Scripting int32_t ScPlayer::commandsRan_get() const { #ifndef DISABLE_NETWORK - auto index = NetworkGetPlayerIndex(_id); + auto index = Network::GetPlayerIndex(_id); if (index == -1) return {}; - return NetworkGetPlayerCommandsRan(index); + return Network::GetPlayerCommandsRan(index); #else return 0; #endif @@ -86,10 +86,10 @@ namespace OpenRCT2::Scripting int32_t ScPlayer::moneySpent_get() const { #ifndef DISABLE_NETWORK - auto index = NetworkGetPlayerIndex(_id); + auto index = Network::GetPlayerIndex(_id); if (index == -1) return {}; - return NetworkGetPlayerMoneySpent(index); + return Network::GetPlayerMoneySpent(index); #else return 0; #endif @@ -97,12 +97,12 @@ namespace OpenRCT2::Scripting std::string ScPlayer::ipAddress_get() const { - return NetworkGetPlayerIPAddress(_id); + return Network::GetPlayerIPAddress(_id); } std::string ScPlayer::publicKeyHash_get() const { - return NetworkGetPlayerPublicKeyHash(_id); + return Network::GetPlayerPublicKeyHash(_id); } void ScPlayer::Register(duk_context* ctx) diff --git a/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp b/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp index ddd297098d..1c5f5c021d 100644 --- a/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp +++ b/src/openrct2/scripting/bindings/network/ScPlayerGroup.cpp @@ -34,10 +34,10 @@ namespace OpenRCT2::Scripting std::string ScPlayerGroup::name_get() const { #ifndef DISABLE_NETWORK - auto index = NetworkGetGroupIndex(_id); + auto index = Network::GetGroupIndex(_id); if (index == -1) return {}; - return NetworkGetGroupName(index); + return Network::GetGroupName(index); #else return {}; #endif @@ -71,16 +71,16 @@ namespace OpenRCT2::Scripting std::vector ScPlayerGroup::permissions_get() const { #ifndef DISABLE_NETWORK - auto index = NetworkGetGroupIndex(_id); + auto index = Network::GetGroupIndex(_id); if (index == -1) return {}; // Create array of permissions std::vector result; auto permissionIndex = 0; - for (const auto& action : NetworkActions::Actions) + for (const auto& action : Network::NetworkActions::Actions) { - if (NetworkCanPerformAction(index, static_cast(permissionIndex))) + if (Network::CanPerformAction(index, static_cast(permissionIndex))) { result.push_back(TransformPermissionKeyToJS(action.PermissionName)); } @@ -95,7 +95,7 @@ namespace OpenRCT2::Scripting void ScPlayerGroup::permissions_set(std::vector value) { #ifndef DISABLE_NETWORK - auto groupIndex = NetworkGetGroupIndex(_id); + auto groupIndex = Network::GetGroupIndex(_id); if (groupIndex == -1) return; @@ -105,13 +105,13 @@ namespace OpenRCT2::Scripting GameActions::Execute(&networkAction); std::vector enabledPermissions; - enabledPermissions.resize(NetworkActions::Actions.size()); + enabledPermissions.resize(Network::NetworkActions::Actions.size()); for (const auto& p : value) { auto permissionName = TransformPermissionKeyToInternal(p); auto permissionIndex = 0; - for (const auto& action : NetworkActions::Actions) + for (const auto& action : Network::NetworkActions::Actions) { if (action.PermissionName == permissionName) { @@ -124,7 +124,7 @@ namespace OpenRCT2::Scripting for (size_t i = 0; i < enabledPermissions.size(); i++) { auto toggle - = (enabledPermissions[i] != (NetworkCanPerformAction(groupIndex, static_cast(i)) != 0)); + = (enabledPermissions[i] != (Network::CanPerformAction(groupIndex, static_cast(i)) != 0)); if (toggle) { auto networkAction2 = GameActions::NetworkModifyGroupAction( diff --git a/src/openrct2/scripting/bindings/network/ScSocket.hpp b/src/openrct2/scripting/bindings/network/ScSocket.hpp index b17af3f277..0ceb4c13e1 100644 --- a/src/openrct2/scripting/bindings/network/ScSocket.hpp +++ b/src/openrct2/scripting/bindings/network/ScSocket.hpp @@ -136,7 +136,7 @@ namespace OpenRCT2::Scripting static constexpr uint32_t EVENT_ERROR = 3; EventList _eventList; - std::unique_ptr _socket; + std::unique_ptr _socket; bool _disposed{}; bool _connecting{}; bool _wasConnected{}; @@ -147,7 +147,7 @@ namespace OpenRCT2::Scripting { } - ScSocket(const std::shared_ptr& plugin, std::unique_ptr&& socket) + ScSocket(const std::shared_ptr& plugin, std::unique_ptr&& socket) : ScSocketBase(plugin) , _socket(std::move(socket)) { @@ -190,7 +190,7 @@ namespace OpenRCT2::Scripting } else { - _socket = CreateTcpSocket(); + _socket = Network::CreateTcpSocket(); try { _socket->ConnectAsync(host, port); @@ -320,14 +320,14 @@ namespace OpenRCT2::Scripting auto status = _socket->GetStatus(); if (_connecting) { - if (status == SocketStatus::Connected) + if (status == Network::SocketStatus::connected) { _connecting = false; _wasConnected = true; _eventList.Raise(EVENT_CONNECT_ONCE, GetPlugin(), {}, false); _eventList.RemoveAllListeners(EVENT_CONNECT_ONCE); } - else if (status == SocketStatus::Closed) + else if (status == Network::SocketStatus::closed) { _connecting = false; @@ -342,21 +342,21 @@ namespace OpenRCT2::Scripting _eventList.Raise(EVENT_ERROR, GetPlugin(), { dukErr }, true); } } - else if (status == SocketStatus::Connected) + else if (status == Network::SocketStatus::connected) { char buffer[16384]; size_t bytesRead{}; auto result = _socket->ReceiveData(buffer, sizeof(buffer), &bytesRead); switch (result) { - case NetworkReadPacket::Success: + case Network::NetworkReadPacket::success: RaiseOnData(std::string(buffer, bytesRead)); break; - case NetworkReadPacket::NoData: + case Network::NetworkReadPacket::noData: break; - case NetworkReadPacket::MoreData: + case Network::NetworkReadPacket::moreData: break; - case NetworkReadPacket::Disconnected: + case Network::NetworkReadPacket::disconnected: CloseSocket(); break; } @@ -398,7 +398,7 @@ namespace OpenRCT2::Scripting static constexpr uint32_t EVENT_CONNECTION = 0; EventList _eventList; - std::unique_ptr _socket; + std::unique_ptr _socket; std::vector> _scClientSockets; bool _disposed{}; @@ -406,7 +406,7 @@ namespace OpenRCT2::Scripting { if (_socket != nullptr) { - return _socket->GetStatus() == SocketStatus::Listening; + return _socket->GetStatus() == Network::SocketStatus::listening; } return false; } @@ -428,10 +428,10 @@ namespace OpenRCT2::Scripting { if (_socket == nullptr) { - _socket = CreateTcpSocket(); + _socket = Network::CreateTcpSocket(); } - if (_socket->GetStatus() == SocketStatus::Listening) + if (_socket->GetStatus() == Network::SocketStatus::listening) { duk_error(ctx, DUK_ERR_ERROR, "Server is already listening."); } @@ -506,7 +506,7 @@ namespace OpenRCT2::Scripting if (_socket == nullptr) return; - if (_socket->GetStatus() == SocketStatus::Listening) + if (_socket->GetStatus() == Network::SocketStatus::listening) { auto client = _socket->Accept(); if (client != nullptr) diff --git a/src/openrct2/world/Scenery.cpp b/src/openrct2/world/Scenery.cpp index da88a76030..68806ec7e8 100644 --- a/src/openrct2/world/Scenery.cpp +++ b/src/openrct2/world/Scenery.cpp @@ -134,7 +134,7 @@ void SceneryUpdateTile(const CoordsXY& sceneryPos) { // Ghosts are purely this-client-side and should not cause any interaction, // as that may lead to a desync. - if (NetworkGetMode() != NETWORK_MODE_NONE) + if (Network::GetMode() != Network::Mode::none) { if (tileElement->IsGhost()) continue;