mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-15 10:40:01 +01:00
AdHoc relay server: Replace checkbox with "Auto" / "On" / "Off"
This commit is contained in:
1 parent
56b3c86742
commit
1852cae7c1
5 files changed
+34
-5
No files matched your search
+2
-2
@@ -71,7 +71,7 @@ static const std::string_view logSectionName = "LogDebug";
|
||||
static const std::string_view logSectionName = "Log";
|
||||
#endif
|
||||
|
||||
static const std::vector<std::string_view> defaultProAdhocServerList = {
|
||||
const std::vector<std::string_view> defaultProAdhocServerList = {
|
||||
"socom.cc", "psp.gameplayer.club", // TODO: Add some saved recent history too?
|
||||
};
|
||||
|
||||
@@ -1033,7 +1033,7 @@ static const ConfigSetting networkSettings[] = {
|
||||
ConfigSetting("EnableWlan", SETTING(g_Config, bEnableWlan), false, CfgFlag::PER_GAME),
|
||||
ConfigSetting("EnableAdhocServer", SETTING(g_Config, bEnableAdhocServer), false, CfgFlag::PER_GAME),
|
||||
ConfigSetting("proAdhocServer", SETTING(g_Config, sProAdhocServer), "socom.cc", CfgFlag::PER_GAME),
|
||||
ConfigSetting("UseServerRelay", SETTING(g_Config, bUseServerRelay), false, CfgFlag::PER_GAME),
|
||||
ConfigSetting("AdhocServerRelayMode", SETTING(g_Config, iAdhocServerRelayMode), (int)AdhocServerRelayMode::Auto, CfgFlag::PER_GAME),
|
||||
ConfigSetting("proAdhocServerList", SETTING(g_Config, proAdhocServerList), &defaultProAdhocServerList, CfgFlag::DEFAULT),
|
||||
ConfigSetting("PortOffset", SETTING(g_Config, iPortOffset), 10000, CfgFlag::PER_GAME),
|
||||
ConfigSetting("PrimaryDNSServer", SETTING(g_Config, sInfrastructureDNSServer), "67.222.156.250", CfgFlag::PER_GAME),
|
||||
|
||||
+3
-1
@@ -552,7 +552,7 @@ public:
|
||||
// Networking
|
||||
bool bEnableAdhocServer;
|
||||
std::string sProAdhocServer;
|
||||
bool bUseServerRelay;
|
||||
int iAdhocServerRelayMode;
|
||||
std::vector<std::string> proAdhocServerList;
|
||||
std::string sInfrastructureDNSServer;
|
||||
std::string sInfrastructureUsername; // Username used for Infrastructure play. Different restrictions.
|
||||
@@ -765,3 +765,5 @@ std::string CreateRandMAC();
|
||||
extern http::RequestManager g_DownloadManager;
|
||||
extern Config g_Config;
|
||||
|
||||
extern const std::vector<std::string_view> defaultProAdhocServerList;
|
||||
|
||||
@@ -81,6 +81,12 @@ enum class CPUCore {
|
||||
JIT_IR = 3,
|
||||
};
|
||||
|
||||
enum class AdhocServerRelayMode {
|
||||
Auto = 0,
|
||||
AlwaysOn = 1,
|
||||
AlwaysOff = 2,
|
||||
};
|
||||
|
||||
enum {
|
||||
ROTATION_AUTO = 0,
|
||||
ROTATION_LOCKED_HORIZONTAL = 1,
|
||||
|
||||
@@ -1648,7 +1648,25 @@ u32 sceNetAdhocInit() {
|
||||
// Since we are deleting GameMode Master here, we should probably need to make sure GameMode resources all cleared too.
|
||||
deleteAllGMB();
|
||||
|
||||
serverHasRelay = g_Config.bUseServerRelay;
|
||||
// If a server is in our default list, we know it supports relay.
|
||||
switch ((AdhocServerRelayMode)g_Config.iAdhocServerRelayMode) {
|
||||
case AdhocServerRelayMode::Auto:
|
||||
serverHasRelay = false;
|
||||
// If it's in our default server list, we know it supports relay.
|
||||
for (auto serverName : defaultProAdhocServerList) {
|
||||
if (serverName == g_Config.sProAdhocServer) {
|
||||
serverHasRelay = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case AdhocServerRelayMode::AlwaysOn:
|
||||
serverHasRelay = true;
|
||||
break;
|
||||
default:
|
||||
serverHasRelay = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (serverHasRelay) {
|
||||
aemu_post_office_init();
|
||||
|
||||
@@ -1049,7 +1049,10 @@ void GameSettingsScreen::CreateNetworkingSettings(UI::ViewGroup *networkingSetti
|
||||
}
|
||||
|
||||
networkingSettings->Add(new ItemHeader(n->T("Ad Hoc multiplayer")));
|
||||
networkingSettings->Add(new CheckBox(&g_Config.bUseServerRelay, n->T("Try to use server-provided packet relay")))->SetEnabled(!PSP_IsInited());
|
||||
|
||||
static const char *relayModes[] = {"Auto", "On", "Off"};
|
||||
PopupMultiChoice *relayModePopup = networkingSettings->Add(new PopupMultiChoice(&g_Config.iAdhocServerRelayMode, n->T("Try to use server-provided packet relay"), relayModes, 0, ARRAY_SIZE(relayModes), I18NCat::NETWORKING, screenManager()));
|
||||
relayModePopup->SetEnabled(!PSP_IsInited());
|
||||
networkingSettings->Add(new SettingHint(n->T("PacketRelayHint", "Available on servers that provide 'aemu_postoffice' packet relay, like socom.cc. Disable this for LAN or VPN play. Can be more reliable, but sometimes slower.")));
|
||||
|
||||
networkingSettings->Add(new ItemHeader(n->T("Ad Hoc server")));
|
||||
|
||||
Reference in new issue
Block a user